Index: GK308_keyboard_only_24g/a.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/a.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/a.bat	(working copy)
@@ -0,0 +1,10 @@
+e pu
+e 8043 00
+
+::e hu output/romcode.rom 2000
+::e ku
+::e pu
+e hu output/ramcode.rom 0
+e pu
+e su output/sched.rom
+e cu
\ No newline at end of file
Index: GK308_keyboard_only_24g/do.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/do.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/do.bat	(working copy)
@@ -0,0 +1,104 @@
+@set FPGA_PATH=fpgajic\fpga
+@set ROM_PATH=.
+@set MV_PATCH=mv\src\yichip
+@set YC_PATCH_FILE=yc_patch_yc1021.h
+@set enc=1
+@set enckey=0000000000000000
+@rem set device_option=rfbqb
+@rem set device_option=mouse
+@rem set device_option=shutter
+@rem set device_option=shutter_dy
+@rem set device_option=hci
+@rem set device_option=antilost
+@rem set device_option=dongle
+@rem set device_option=module
+@set device_option=keyboard
+@rem set device_option=car
+@rem set device_option=remote_car
+@rem set device_option=mesh
+@rem set device_option=otp
+@rem set device_option=flippen
+@echo off
+
+set now_path=%~dp0
+set util_path=%now_path%util
+
+setlocal enabledelayedexpansion
+for %%f in (program\ble_protocol_stack\*.prog) do @set progs=!progs! %%f
+for %%f in (program\g24_protocol_stack\*.prog) do @set progs=!progs! %%f
+for %%f in (program\mesh_protocol_stack\*.prog) do @set progs=!progs! %%f
+for %%f in (program\*.prog) do @if not %%f==program\bt.prog if not %%f==program\patch.prog if not %%f==program\sim.prog set progs=!progs! %%f
+type program\bt.prog %progs% %light_progs% > output\bt_program23.meta
+
+for %%f in (format\ble_protocol_stack\*.format) do set fmts=!fmts! %%f
+for %%f in (format\g24_protocol_stack\*.format) do set fmts=!fmts! %%f
+for %%f in (format\mesh_protocol_stack\*.format) do set fmts=!fmts! %%f
+for %%f in (format\*.format) do @if not %%f==format\bt.format if not %%f==format\command.format set fmts=!fmts! %%f
+type format\bt.format %fmts% format\command.format > output\bt_format.meta
+::perl util/memalloc.pl output/bt_format.meta
+
+if "%device_option%" equ "hci" (
+  copy sched\hci_boot.dat output\sched.rom
+) else if "%device_option%" equ "keyboard" (
+  copy sched\keyboard.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "mouse" (
+  copy sched\mouse.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "module" (
+  copy sched\DM_module.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter" (
+  copy sched\shutter.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter_dy" (
+  copy sched\shutter_dy.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "antilost" (
+  copy sched\antilost.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "dongle" (
+  copy sched\dongle.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "car" (
+  copy sched\car.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "remote_car" (
+  copy sched\remote_car.dat + sched\1305.dat output\sched.rom
+ ) else if "%device_option%" equ "mesh" (
+  copy sched\1305.dat +sched\mesh.dat output\sched.rom
+) else if "%device_option%" equ "otp" (
+  copy sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "flippen" (
+  copy sched\mouse.dat + sched\flippen.dat + sched\1305.dat output\sched.rom
+)else  (
+
+cd ..
+echo **********************************
+echo Error: illegal device_option !
+echo **********************************
+goto end
+) 
+
+perl util/mergepatch.pl 
+
+cd output
+osiuasm bt_program23 -O-W
+
+%util_path%/geneep  -n -s -i
+
+echo create auth rom
+perl ../util/mergepatch.pl mouse_ble_att_list usb_kbdata_vendor_define usb_kbdata usb_msdata usb_devicedata usb_confdata ble_shutter_gatt_list ble_shutter_key_value_list ble_car_att_list sha256 
+perl ../util/romcrc.pl romcode.rom
+perl  ../util/mergepatch.pl otp
+
+
+if "%device_option%" equ "keyboard" (
+cd ..\output
+copy eeprom.dat ..\util\eeprom.dat
+cd ..\util
+eeprom2fulleeprom.exe eeprom.dat 64>compare2.dat
+crc16.exe compare2.dat 2 >..\output\eeprom.dat
+del eeprom.dat
+del compare2.dat
+cd ..\output
+copy eeprom.dat ..\output\flash.dat 
+)
+
+
+:end
+
+
+
Index: GK308_keyboard_only_24g/eotp.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/eotp.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/eotp.bat	(working copy)
@@ -0,0 +1,5 @@
+e pu
+e 8043 00
+e otp output/otp.dat 0
+e otr 0 20
+e ku
Index: GK308_keyboard_only_24g/ep.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/ep.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/ep.bat	(working copy)
@@ -0,0 +1,7 @@
+e pu
+e 8043 00
+e er 0 20
+e ew 0 11223344
+e ep output/eeprom.dat 0
+e er 0 20
+e ku
\ No newline at end of file
Index: GK308_keyboard_only_24g/format/app.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app.format	(working copy)
@@ -0,0 +1,379 @@
+
+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
+0 mem_bistfix_val
+2 mem_bistfix_addr_sched
+2 mem_bistfix_addr_x
+2 mem_bistfix_addr_patch
+1 mem_bistfix_val_xram
+4 mem_bistfix_val_patchram
+
+/*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
+
+2 mem_reference_inter1p8v_2v_adc_io_data
+2 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+2 mem_reference_inter1p8v_1v_adc_io_data
+2 mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+
+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
+
+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
+1 mem_adc_cal_c7
+
+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
+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
+0x81 FLASH_COMMAND_PAGE_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
+	1 mem_otp_adc_ratio
+	7 mem_otp_coordinate
+	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*/
+(
+1 DVC_OP_2G4
+2 DVC_OP_BLE
+
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+7 DVC_OP_MOUSE_2G4
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0b DVC_OP_REMOTE_CONTROL
+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
+0x92aa USB_KBDATA_VENDOR_DEFINE_ADDR
+0x92c5 USB_KBDATA_ADDR
+0x9307 USB_MSDATA_ADDR
+0x93fb USB_DEVICEDATA_ADDR
+0x940e USB_CONFDATA_ADDR
+0x944a KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+0x94fc KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+0x95b8 KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+0x9684 BLE_SHUTTER_GATT_LIST_ADDR
+0x97bd BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x97e5 BLE_CAR_ATT_LIST_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
+)
+
+
+//mem_adc_reference_mode 
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
+
+
Index: GK308_keyboard_only_24g/format/app_adpcm.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_adpcm.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/app_car.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_car.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_car.format	(working copy)
@@ -0,0 +1,104 @@
+
+
+xmemalloc g24_rx_car(
+1 mem_car_le_24g_tx_pair_mode
+2 mem_car_le_24g_ch_count
+4 mem_car_24g_addr_other
+12 mem_car_24g_tx_payload_temp
+12 mem_car_24g_rx_payload_temp
+
+1 mem_car_24g_loselink_count
+1 mem_car_ble_connted_flag
+4 mem_car_full_control_remote_lap
+2 mem_100ms_adv_control_timer
+2 mem_100ms_factory_test_control_timer
+	
+1 mem_pwm_flag	
+1 mem_period_count
+1 mem_timer_count
+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_pwm_gpio
+
+
+6 mem_otp_lot_xy_temp
+1 mem_f_flag
+1 mem_b_flag
+1 mem_adv_control_start_flag  
+1 mem_stop_4w1_flag 
+1 mem_factory_control_flag
+1 mem_car_gpio_control_mode
+
+1 mem_car_le_queue_each_size
+1 mem_car_le_queue_length
+1 mem_car_le_queue_current_num
+1 mem_car_le_queue_read_ptr
+1 mem_car_le_queue_write_ptr
+80 mem_car_le_queue_ele
+11 mem_car_ble_write_data
+400 mem_car_ble_att_list
+
+60 mem_otp_sys_cfg_temp
+
+)
+
+
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+
+(
+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
+)
+
+(
+0x0e HANDLE_OF_NOTIFY
+0x11 HANDLE_OF_WRITE
+)
+
+(
+0 G24_UNCONNECT
+1 G24_CONNECTED
+)
+
+(
+12 LEN_OF_24G_PAYLOAD
+11 LEN_OF_ACK_PAYLOAD
+)
+
+
+(
+0XAA G24_TX_PAIR_REQUEST
+0XBB G24_RX_PAIR_RESPONES
+0XCC G24_TX_REMOTE_CONTROL
+0XDD G24_RX_CONTROL_ACK
+0XEE G24_ERROR
+0xFF INVALID_PIN_NUM
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+
+(
+0x1f00 OTP_SYS_PARAM_CFG
+0x1fda OTP_MAC_ADDR
+0X1fdb OTP_MAC_ADDR_PIECENUM
+)
+
Index: GK308_keyboard_only_24g/format/app_dongle.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_dongle.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_dongle.format	(working copy)
@@ -0,0 +1,142 @@
+
+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
+32 mem_dg_usb_device_name
+1 mem_dg_kb_bind_success
+1 mem_dg_pc_sleep_flag
+
+1 mem_dg_24g_tx_power_default
+1 mem_dg_kb_bit_consumer_blank_data_enable
+4 mem_dg_kb_bit_consumer_sta_data
+4 mem_dg_kb_bit_consumer_last_data
+4 mem_dg_device_version
+)
+
+
+//otp address offset
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+0x1fc0 DONGLE_KB_BIND_OTP_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
+5 KB_BIT_CONSUMER_REPORT_ID
+8 KB_N_KEY_ROLLOVER_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: GK308_keyboard_only_24g/format/app_kb.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_kb.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_kb.format	(working copy)
@@ -0,0 +1,567 @@
+xmemalloc g24_tx_hid_keyboard(
+1 mem_power_on_flag
+8 mem_keyboard_flag
+
+//switch device
+1 mem_keyboard_switch_count_temp
+3 mem_keyboard_switch_device_to_g24
+3 mem_keyboard_switch_device_to_bt1
+3 mem_keyboard_switch_device_to_bt2
+3 mem_keyboard_switch_device_to_bt3
+3 mem_keyboard_switch_device_to_usb
+1 mem_keyboard_switch_device_flag
+1 mem_keyboard_switch_g24_enable
+1 mem_keyboard_switch_bt_enable
+1 mem_keyboard_switch_g24_press_timer
+1 mem_keyboard_switch_bt_press_timer
+
+
+//adc
+2 mem_keyboard_vdd_full_vol
+2 mem_keyboard_vdd_empty_vol
+2 mem_keyboard_vdd_low_vol
+1 mem_keyboard_power_type
+
+//pwm
+6 mem_rgb_pwm_conf
+1 mem_rgb_pwm_breathe_flag
+1 mem_rgb_on_color_temp
+7 mem_rgb_on_color
+1 mem_pwm_lpm_mode_flag
+2 mem_keyboard_rgb_on_timer
+4 mem_ui_check_timer_setup
+2 mem_customize_timer_setup
+1 mem_backlight_breathe_type
+
+//le
+3 mem_keyboard_le_lap_temp
+1 mem_keyboard_le_change_vid_pid_flag
+1 mem_keybaord_le_pnp_vid_source
+2 mem_keyboard_le_vid
+2 mem_keyboard_le_pid
+2 mem_keyboard_le_product_version
+2 mem_keyboard_le_hid_map
+22 mem_keyboard_blob_response_consumer_customize
+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
+
+//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
+
+//gpio
+1 mem_keyboard_pb_button_gpio
+1 mem_mcu_stb_gpio
+1 mem_mcu_clk_gpio
+1 mem_mcu_rstb_gpio
+1 mem_keyboard_num_led_gpio
+1 mem_keyboard_caps_led_gpio
+1 mem_keyboard_scroll_led_gpio
+1 mem_keyboard_power_led_gpio
+1 mem_keyboard_low_voltage_alarm_gpio
+1 mem_keyboard_24g_led_gpio
+1 mem_keyboard_bt1_led_gpio
+1 mem_keyboard_bt2_led_gpio
+1 mem_keyboard_bt3_led_gpio
+
+1 mem_keyboard_led_r_gpio
+1 mem_keyboard_led_g_gpio
+1 mem_keyboard_led_b_gpio
+
+8 mem_key_row_gpio
+21 mem_key_col_gpio
+12 mem_key_excol_gpio
+2 mem_kb_row_ptr
+2 mem_kb_col_ptr
+2 mem_kb_excol_ptr
+
+// keyscan
+21 mem_keyscan_value_current
+21 mem_keyscan_value_check
+21 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
+10 mem_keyboard_keyvalue_buffer
+1 mem_keboard_n_key_rollover_send_flag
+15 mem_keyboard_n_key_rollover_data
+168 mem_keyboard_keyvalue_map
+10 mem_keyboard_tx_data
+1 mem_keyboard_data_send_flag
+
+1 mem_keyboard_fn_flag
+1 mem_keyboard_control_key_flag
+1 mem_keyboard_alt_flag
+1 mem_keyboard_shift_flag
+1 mem_keyboard_bt_button_flag
+1 mem_keyboard_pairing_type
+
+1 mem_24g_repeat_send_flag
+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_lock_flag
+1 mem_keyboard_fn_lock_keyvalue
+
+2 mem_keyboard_commbination_key_bt
+2 mem_keyboard_commbination_key_24g
+2 mem_keyboard_commbination_fast_conn_bt
+1 mem_keyboard_commbination_press_type
+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
+
+//memory
+1 mem_keyboard_device_info_store_flag
+1 mem_otp_store_device_info_flag
+1 mem_otp_store_system_flag
+24 mem_otp_read_retention_memory
+2 mem_otp_read_retention_offset
+2 mem_otp_read_retention_max_size
+
+//led
+1 mem_keyboard_device_poweron_timer_init
+1 mem_keyboard_device_poweron_timer
+2 mem_keyboard_num_caps_scoll_led_on_timer
+1 mem_keyboard_mode_led_on_timer
+1 mem_keyboard_adc_low_volatage_led_timer_count
+2 mem_adc_low_volatage_led_blink_timer
+1 mem_keyboard_low_volatage_led_flag
+1 mem_keyboard_low_volatage_led_blink_count
+1 mem_keyboard_low_volatage_led_blink_new_data_enable
+1 mem_keyboard_pair_led_flag
+1 mem_keyboard_pair_led_blink_count
+
+//usb
+1 mem_usb_vdd_status_current
+1 mem_usb_vdd_status_last
+1 mem_usb_wait_updata_timer
+9 mem_keyboard_usb_vid_pid
+
+2 mem_keyboard_recognition_code
+
+12 mem_keyscan_exmcu_value_new
+177 mem_keyboard_le_table
+
+1 mem_keyboard_delay_lpm_flag
+4 mem_keyboard_evt_btclk
+1 mem_keyboard_evt_timer_count
+1 mem_keyboard_scan_enter_lpm
+1 mem_keyboard_reuse_led_bit
+
+0 mem_keyboard_end
+)
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x00 DEVICE_DATA_TPYE_KEYBOARD
+)
+
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+0x05 HID_REPORTID_BIT_CONSUMER_KEY
+0x08 HID_REPORTID_N_KEY_ROLLOVER
+)
+
+(
+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_VOL_DOWN
+0xea 	HID_KEY_MULTIKEY_VOL_UP
+0xeb 	HID_KEY_MULTIKEY_MUTE
+0xec 	HID_KEY_MULTIKEY_PRE_TRACK
+0xed 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xee 	HID_KEY_MULTIKEY_PALY
+0xef 	HID_KEY_MULTIKEY_STOP
+0xf0 	HID_KEY_AC_HOME
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_MY_COMPUTER
+0xf3 	HID_KEY_AC_FAVORITES
+0xf4 	HID_KEY_CALCULATOR
+0xf5 	HID_KEY_AC_SEARCH
+0xf6 	HID_KEY_AC_BACK
+0xf7 	HID_KEY_OS_SOFT_KB
+0xf8 	HID_KEY_LIGHT_DOWN
+0xf9 	HID_KEY_LIGHT_UP
+0xfa 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfb	HID_KEY_MAC_EJECT
+0xfc	HID_KEY_AC_FORWARD
+0xfd	HID_KEY_AC_STOP
+0xfe	HID_KEY_AC_REFRESH
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+0xae     	HID_KEY_PB
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN 					 
+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_ANDROID
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+
+(
+//keyboard_function_flag
+0x08 KEYBOARD_FLAG_LEN
+//byte 0
+0x00 KEYBOARD_24G_PAIRING_FLAG
+0x01 KEYBOARD_STORE_MEMORY_FLAG
+0x02 KEYBOARD_LOW_VOLTAGE_FLAG
+0x03 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x04 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 1
+0x08 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+0x09 KEYBOARD_ENABLE_16M
+0x0a KEYBOARD_DISABLE_ICE
+0x0b KEYBOARD_ENABLE_ADC
+0x0c KEYBOARD_ENABLE_FLASH
+0x0d KEYBOARD_ENABLE_2K_EEPROM
+0x0e KEYBOARD_ENABLE_EEPROM
+0x0f KEYBOARD_ENABLE_OTP
+
+//byte 2
+0x10 KEYBOARD_ENABLE_24G
+0x11 KEYBOARD_ENABLE_AUTO_24G_PARING
+0x12 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x13 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x14 KEYBOARD_ENABLE_24G_2M_PHY
+0x15 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+
+//byte 3
+0x18 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+0x19 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x1a KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x1b KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+
+//byte 4
+0x20 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+0x21 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+0x22 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+0x23 KEYBOARD_ENABLE_MOUSE
+0x24 KEYBOARD_ENABLE_USB
+
+//byte 5
+0x28 KEYBOARD_ENABLE_030_POWER_LED
+0x29 KEYBOARD_ENABLE_LOW_LED
+0x2a KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+0x2b KEYBOARD_ENABLE_BACKLIGHT
+
+//byte 6
+0x30 KEYBOARD_ENABLE_FN_ARROW
+0x31 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+0x32 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+0x33 KEYBOARD_ENABLE_FN_OS_SWITCH
+0x34 KEYBOARD_ENABLE_FN_LOCK
+
+//byte 7
+0x38 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x39 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+0x3a KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+0x3b KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+0x3c KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+0x3d KEYBOARD_ENABLE_SDA_MULTI_R_LINE
+0x3e KEYBOARD_ENABLE_SDA_MULTI_ICE_LINE
+
+)
+
+(
+//eeprom address offect
+0x00 KEYBOARD_INFO_EEPROM_OFFECT
+0x00 KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT
+0x01 KEYBOARD_BLE_ADDR_EEPROM_OFFECT
+0x28 KEYBOARD_STORE_FLAG
+0x2b KEYBOARD_G24_ADDR_EEPROM_OFFECT	//4bytes
+0x2f KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET
+0x31 KEYBOARD_FN_FLAG_EEPROM_OFFSET
+0x36 KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET
+0x39 KEYBOARD_RGB_TPYE_OFFSET
+
+0x00 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO
+0x01 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR
+0x02 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR
+0x03 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK
+0x04 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM
+0x05 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE
+)
+
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+
+(
+0x01 KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR
+0x02 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR
+0x03 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN
+)
+
+(
+0x20 KEYBOARD_BLE_L2CAP_TXBUFF_SIZE
+)
+
+(
+0 KEYBOARD_BATTARY_1V5
+1 KEYBOARD_BATTARY_3V0
+2 KEYBOARD_BATTARY_4V2
+)
+
+
Index: GK308_keyboard_only_24g/format/app_module.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_module.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/app_mouse.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_mouse.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_mouse.format	(working copy)
@@ -0,0 +1,491 @@
+
+memalloc mouse(
+2 mem_init_cnt
+2 mem_data_pre
+2 mem_data_current
+3 mem_data_sum
+2 mem_data_value
+)
+
+xmemalloc g24_tx_hid_mouse(
+// Mouse Work Area
+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_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_gnd
+1 mem_sensor_angle_vin
+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_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
+
+1 mem_device_temp_gpio
+
+//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
+//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
+
+//lost-packet compensation
+1 mem_mouse_24g_fast_hop_count_2ms
+3 mem_mouse_24g_short_sleep_set_4ms
+3 mem_mouse_24g_long_sleep_set_4ms
+3 mem_mouse_24g_short_sleep_set_8ms
+3 mem_mouse_24g_long_sleep_set_8ms
+
+4 mem_mouse_24g_tsniff
+4 mem_mouse_24g_tsniff_2ms
+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
+
+//sensor param
+1 mem_sensor_id1
+1 mem_sensor_id2
+
+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
+30 mem_sensor_8650_init
+30 mem_sensor_ka8ul_init
+16 mem_sensor_8009_init
+18 mem_sensor_ka8g2_init
+12 mem_sensor_p6520_init
+12 mem_sensor_ka5857_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
+
+
+// mouse key
+10 mem_customer_key_press_init
+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
+
+//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_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_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_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_addr_increase_count
+2 mem_otp_offset_le_addr_increase_count_end
+
+2 mem_otp_offset_app_initflag
+
+//usb
+1 mem_usb_tx_interval_retention
+9 mem_usb_vid_pid_retention
+30 mem_usb_device_name_retention
+
+// commbation key
+1 mem_mouse_commbination_key_bt
+1 mem_mouse_commbination_key_24g
+1 mem_mouse_commbination_key_dpi
+1 mem_mouse_commbination_key_select_device
+1 mem_mouse_commbination_dpi_timer
+1 mem_mouse_commbination_select_device_timer
+1 mem_mouse_commbination_key_count
+1 mem_mouse_pair_flag
+//patch area
+)
+
+
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+0x07 MOUSE_ENABLE_SPI2
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0b MOUSE_ENABLE_16M
+0x0c MOUSE_ENABLE_USB
+0x0d MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0e MOUSE_ENABLE_LOAD_AND_STORE_DPI
+0x0f MOUSE_ENABLE_24G
+
+//byte 3
+0x10 MOUSE_ENABLE_FLASH
+0x11 MOUSE_ENABLE_EEPROM
+0x12 MOUSE_ENABLE_OTP
+0x13 MOUSE_ENABLE_ADC
+0x14 MOUSE_ENABLE_KEYBOARD
+0x15 MOUSE_ENABLE_DOUBLE_DPI_KEY
+0x16 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+
+//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
+
+//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
+
+//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
+
+
+//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
+0x57 KA5857_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
+0X0d KA5857
+
+
+//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
+)
+
+(
+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 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+
Index: GK308_keyboard_only_24g/format/app_rec.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_rec.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_rec.format	(working copy)
@@ -0,0 +1,412 @@
+
+memalloc rec(
+
+0 mem_malloc_rec_start
+
+//ota
+2 mem_rec_queue_ota_sptr
+2 mem_rec_queue_ota_eptr
+2 mem_rec_queue_ota_rptr
+2 mem_rec_queue_ota_wptr
+0 mem_rec_queue_ota_buf	//1280
+0 mem_rec_voice_raw_start
+799 mem_rec_voice_raw
+1 mem_rec_voice_raw_end
+
+//audio
+1 mem_rec_voice_queue_count
+20 mem_rec_queue_buf
+100 mem_rec_adpcm
+
+//nec
+255 mem_rec_nec_rx_start
+1 mem_rec_nec_rx_end
+255 mem_rec_nec_rx_store_start
+1 mem_rec_nec_rx_store_end
+
+4 mem_rec_ota_flash_buf_head
+0 mem_rec_ota_flash_buf	//300
+
+4 mem_rec_nec_flash_write_head
+0 mem_rec_nec_rx_info
+1 mem_rec_nec_rx_len
+2 mem_rec_nec_rx_perid_freq
+255 mem_rec_nec_rx_data
+1 mem_rec_nec_rx_analysis_end
+1 mem_rec_nec_rx_count
+
+1 mem_rec_nec_timer
+1 mem_rec_nec_timeout
+2 mem_rec_nec_usercode
+1 mem_rec_nec_datacode
+
+1 mem_rec_nec_learn_key_num
+1 mem_rec_nec_learn_key_state
+1 mem_rec_nec_learn_enable_flag
+4 mem_rec_nec_learn_timeout
+1 mem_rec_nec_learn_state
+
+20 mem_rec_period_cal
+2 mem_rec_period_cal_ptr
+1 mem_rec_period_cal_count
+20 mem_rec_nec_period_array
+
+2 mem_rec_nec_store_sptr
+2 mem_rec_nec_store_eptr
+2 mem_rec_nec_store_wptr
+
+1 mem_rec_nec_receive_data0
+1 mem_rec_nec_receive_data1
+1 mem_rec_nec_receive_data2
+3 mem_rec_nec_receive_data
+1 mem_rec_nec_data
+
+1 mem_rec_nec_period
+1 mem_rec_nec_duty
+1 mem_rec_nec_freq
+2 mem_rec_nec_carry_time
+
+4 mem_rec_nec_learn_stime
+4 mem_rec_nec_learn_ntime
+4 mem_rec_nec_learn_outtime
+1 mem_rec_nec_learn_succ
+2 mem_rec_nec_learn_succ_ptr
+
+1 mem_rec_nec_learn_send_flag
+1 mem_rec_nec_led_state
+1 mem_rec_nec_led_blink_count
+
+1 mem_malloc_rec_end
+)
+
+
+xmemalloc rec(
+0 mem_xmalloc_rec_start
+1215 mem_rec_le_att_list
+
+//led
+0 mem_rec_led_style
+1 mem_rec_led_style_type
+1 mem_rec_led_style_blink_count
+1 mem_rec_led_style_gpio
+2 mem_rec_led_style_on_time
+2 mem_rec_led_style_off_time
+2 mem_rec_led_style_on_callback
+2 mem_rec_led_style_off_callback
+
+//led2 
+0 mem_rec_led2_style
+1 mem_rec_led2_style_type
+1 mem_rec_led2_style_blink_count
+1 mem_rec_led2_style_gpio
+2 mem_rec_led2_style_on_time
+2 mem_rec_led2_style_off_time
+2 mem_rec_led2_style_on_callback
+2 mem_rec_led2_style_off_callback
+
+//led ble pair
+0 mem_rec_le_pair_led_style
+1 mem_rec_le_pair_led_style_type
+1 mem_rec_le_pair_led_style_blink_count
+1 mem_rec_le_pair_led_style_gpio
+2 mem_rec_le_pair_led_style_on_time
+2 mem_rec_le_pair_led_style_off_time
+
+//led ble reconn
+0 mem_rec_le_reconn_led_style
+1 mem_rec_le_reconn_led_style_type
+1 mem_rec_le_reconn_led_style_blink_count
+1 mem_rec_le_reconn_led_style_gpio
+2 mem_rec_le_reconn_led_style_on_time
+2 mem_rec_le_reconn_led_style_off_time
+
+//led adc low power
+0 mem_rec_adc_low_led_style
+1 mem_rec_adc_low_led_style_type
+1 mem_rec_adc_low_led_style_blink_count
+1 mem_rec_adc_low_led_style_gpio
+2 mem_rec_adc_low_led_style_on_time
+2 mem_rec_adc_low_led_style_off_time
+
+
+//10ms timer
+4 mem_rec_ui_timer_btclk
+1 mem_rec_ui_timer_count
+2 mem_rec_cb_timer
+
+//tscan
+1 mem_rec_tscan_timer
+1 mem_rec_tscan_timeout
+
+1 mem_rec_tscan_row_nums
+1 mem_rec_tscan_col_nums
+2 mem_rec_tscan_col_gpio_ptr
+1 mem_rec_tscan_row_scanned
+1 mem_rec_tscan_col_scanned
+1 mem_rec_tscan_record_row
+1 mem_rec_tscan_record_col
+10 mem_rec_tscan_row_gpio
+10 mem_rec_tscan_col_gpio
+1 mem_rec_tscan_sequence
+1 mem_rec_tscan_gpio_nums
+1 mem_rec_tscan_row_scan_loop_count
+0 mem_rec_key_state
+1 mem_rec_tscan_gndkey_state
+1 mem_rec_tscan_key_state
+2 mem_rec_tscan_record_temp
+1 mem_rec_tscan_key_need_send_flag
+1 mem_rec_tscan_current_key_num
+1 mem_rec_gpio_wakeup_source
+1 mem_rec_tscan_gndkey_record_temp
+1 mem_rec_tscan_gndkey_need_send_flag
+
+40 mem_rec_tscan_key_nums_list
+10 mem_rec_tscan_gndkey_nums_list
+
+//combin key
+8 mem_rec_tscan_key_num_bit
+8 mem_rec_tscan_combin_key_num_bit
+2 mem_rec_tscan_current_gpio_ptr
+2 mem_rec_tscan_record_now
+1 mem_rec_combin_key_timeout
+1 mem_rec_combin_key_timer
+
+//tscan debounce
+1 mem_rec_gpio_bit_first
+1 mem_rec_gpio_bit_second
+1 mem_rec_gpio_bit_check
+1 mem_rec_gpio_for_wake_pullup
+
+//keypad
+1 mem_rec_keypad_type
+160 mem_rec_key_keyboard_value_list
+48 mem_rec_key_consumer_value_list
+64 mem_rec_key_mouse_value_list
+48 mem_rec_key_nec_value_list
+
+0 mem_rec_key_press_le
+3 mem_rec_key1_press_le
+3 mem_rec_key2_press_le
+3 mem_rec_key3_press_le
+3 mem_rec_key4_press_le
+3 mem_rec_key5_press_le
+3 mem_rec_key6_press_le
+3 mem_rec_key7_press_le
+3 mem_rec_key8_press_le
+3 mem_rec_key9_press_le
+3 mem_rec_key10_press_le
+3 mem_rec_key11_press_le
+3 mem_rec_key12_press_le
+3 mem_rec_key13_press_le
+3 mem_rec_key14_press_le
+3 mem_rec_key15_press_le
+3 mem_rec_key16_press_le
+3 mem_rec_key17_press_le
+3 mem_rec_key18_press_le
+3 mem_rec_key19_press_le
+3 mem_rec_key20_press_le
+3 mem_rec_key21_press_le
+
+3 mem_rec_key_release_le
+21 mem_rec_key_map
+1 mem_rec_gnd_key_offset
+1 mem_rec_keypad_fun
+
+
+//ble param
+1 mem_rec_le_enable_notify
+1 mem_rec_le_data_len
+1 mem_rec_le_connect_state
+
+//gatt
+2 mem_rec_report_id1_handle
+2 mem_rec_report_id2_handle
+2 mem_rec_report_id3_handle
+2 mem_rec_report_id4_handle
+
+//queue
+1 mem_rec_queue_each_size
+1 mem_rec_queue_length
+1 mem_rec_queue_curr_num
+1 mem_rec_queue_read_ptr
+1 mem_rec_queue_write_ptr
+32 mem_rec_queue_ele
+
+//adpcm
+16 mem_rec_ad_indexTable1
+356 mem_rec_ad_stepsizeTable1
+
+4 mem_rec_ad_state_valpred1
+4 mem_rec_ad_state_index1
+1 mem_rec_ad_in_numSamples1
+2 mem_rec_ad_in_ptr1
+2 mem_rec_ad_out_ptr1
+1 mem_rec_ad_sign1
+1 mem_rec_ad_delta1
+4 mem_rec_ad_step1
+4 mem_rec_ad_valpred1
+4 mem_rec_ad_index1
+4 mem_rec_ad_vpdiff1
+4 mem_rec_ad_inputbuffer1
+1 mem_rec_ad_bufferstep1	
+
+4 mem_rec_ad_val1
+4 mem_rec_ad_outputbuffer1
+4 mem_rec_ad_diff1
+
+1 mem_rec_voice_enable
+20 mem_rec_voice_notify
+2 mem_rec_adc_dma_rptr
+
+2 mem_rec_voice_notify_apk_handle
+2 mem_rec_voice_notify_box_handle
+2 mem_rec_control_notify_apk_handle
+2 mem_rec_control_notify_box_handle
+
+//filter policy
+1 mem_rec_white_list_num
+1 mem_rec_le_scan_filter_policy
+4 mem_rec_white_list_flash_write_head
+48 mem_rec_white_list
+1 mem_rec_le_req_type
+
+//nec 
+1 mem_rec_nec_send_gpio
+1 mem_rec_nec_receive_gpio
+
+//ota
+2 mem_rec_ota_write_index
+4 mem_rec_ota_write_length
+2 mem_rec_ota_write_data_addr
+3 mem_rec_ota_write_flash_addr
+3 mem_rec_ota_write_flash_addr_start
+4 mem_rec_ota_total_sum
+1 mem_rec_ota_update_flash_mode
+
+2 mem_rec_ota_version
+2 mem_rec_ota_buck_size
+2 mem_rec_ota_packet_max_len
+1 mem_rec_ota_work_mode
+
+2 mem_rec_ota_notify_handle
+1 mem_rec_ota_notify_opcode
+1 mem_rec_ota_notify_result
+9 mem_rec_ota_notify_data
+
+0 mem_rec_ota_le_conn_update_param
+2 mem_rec_ota_le_interval_min
+2 mem_rec_ota_le_interval_max
+2 mem_rec_ota_le_latency
+2 mem_rec_ota_le_timeout
+
+1 mem_rec_ota_reset_timeout
+1 mem_rec_ota_le_conn_param_update
+1 mem_rec_ota_enable
+1 mem_rec_le_packet_size
+
+3 mem_rec_ota_flash_base_addr
+3 mem_rec_ota_flash_offset_addr
+
+2 mem_rec_queue_ota_count
+2 mem_rec_ota_queue_size
+
+3 mem_rec_code_a_flash_addr
+3 mem_rec_code_b_flash_addr
+
+
+
+1 mem_xmalloc_rec_end
+)
+
+
+(
+1 KEY_DOWN 
+0 KEY_UP 
+)
+
+(
+0x00 KEYPAD_TYPE_CONSUMER
+0x01 KEYPAD_TYPE_MOUSE
+0x02 KEYPAD_TYPE_KEYPAD
+0x03 KEYPAD_TYPE_NEC
+)
+
+(
+0x03 MAX_QUEUE_UNIT
+)
+
+(
+0x100 NEC_STORE_BUF_SIZE
+0x3fff NEC_LEAR_HEAD
+)
+
+(
+0 INDEX_0
+1 INDEX_1
+2 INDEX_2
+3 INDEX_3
+4 INDEX_4
+5 INDEX_5
+6 INDEX_6
+7 INDEX_7
+8 INDEX_8
+9 INDEX_9
+10 INDEX_10
+11 INDEX_11
+12 INDEX_12
+13 INDEX_13
+14 INDEX_14
+15 INDEX_15
+16 INDEX_16
+17 INDEX_17
+18 INDEX_18
+19 INDEX_19
+20 INDEX_20
+)
+
+(
+0x00 NONE_FILTER
+0x01 WHITE_LIST_SCAN_FILTER
+0x02 WHITE_LIST_CONNECT_FILTER
+0x03 WHITE_LIST_CONN_SCAN_FILTER
+)
+
+(
+0xAB OTA_EVENT
+0xBA OTA_COMMAND
+)
+
+(
+0x10 OTA_PORTOCOL_VERSION_REQUEST
+0x11 OTA_BUCK_SIZE_REQUEST
+0x12 OTA_WORK_MODE_REQUEST
+0x13 OTA_SWITCH_WORK_MODE_REQUEST
+0x14 OTA_FLASH_CHECKSUM_REQUEST
+0x15 OTA_START_REQUEST
+0x16 OTA_DATA_WRITE_CMD
+0x17 OTA_DATA_WRITE_REQUEST
+0x18 OTA_END_REQUEST
+)
+
+(
+0x00 OTA_UPDATE_FLASH_NORMAL
+)
+
+(
+0x00 OTA_RESULT_SUCCESS
+0x01 OTA_RESULT_WORKMODE_NOT_SUPPORT
+0x02 OTA_RESULT_WORKMODE_ERROR
+0x03 OTA_RESULT_FLASHMODE_NOT_SUPPORT
+0x04 OTA_RESULT_INDEX_ERROR
+0x05 OTA_RESULT_LENGTH_ERROR
+0x06 OTA_RESULT_BUCK_SIZE_ERROR
+0x07 OTA_RESULT_WRITE_FLASH_ERROR
+0xFF OTA_RESULT_ERROR
+)
+
+(
+0x01 OTA_LE_CONN_PARAM_UPDATE_ENABLE
+0x00 OTA_LE_CONN_PARAM_UPDATE_DISABLE
+)
+
+
Index: GK308_keyboard_only_24g/format/app_remote_car.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_remote_car.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_remote_car.format	(working copy)
@@ -0,0 +1,43 @@
+
+xmemalloc g24_tx_remote(
+
+4 mem_remote_lpm_gpio_config_flag
+1 mem_remote_lpm_gpio_config_io_temp
+
+1 mem_24g_tx_led_map
+1 mem_24g_led_count
+2 mem_24g_lpm_timer_count
+2 mem_24g_lpm_enter_count	
+6 mem_remote_otp_lot_xy_temp
+4 mem_remote_full_control_remote_lap
+
+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
+
+1 mem_remote_le_24g_recv_ack_flag
+1 mem_key_public_gpio
+1 mem_remote_mult_key
+
+2 mem_remote_le_24g_ch_count
+1 mem_le_24g_tx_send_flag
+1 mem_remote_le_24g_tx_pair_mode
+4 mem_remote_24g_addr_other
+
+12 mem_remote_24g_tx_payload_temp
+12 mem_remote_24g_rx_payload_temp
+
+)
+
+
Index: GK308_keyboard_only_24g/format/app_shutter.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_shutter.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_shutter.format	(working copy)
@@ -0,0 +1,194 @@
+
+
+xmemalloc shutter(
+
+////////////////////////////////////
+//ble shutter configsuoy
+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
+
+5 mem_key0_press
+5 mem_key1_press
+5 mem_key2_press
+
+5 mem_key0_release
+5 mem_key1_release
+5 mem_key2_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
+)
+
+
+
+
+(
+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: GK308_keyboard_only_24g/format/app_shutter_dy.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_shutter_dy.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/app_shutter_dy.format	(working copy)
@@ -0,0 +1,289 @@
+
+
+xmemalloc shutter_dy(
+
+////////////////////////////////////
+//shutter common config
+
+//timers
+1 mem_shutter_1s_timer
+2 mem_shutter_timer_625us
+
+//patch variable
+11 mem_rf_init_data_new
+2 mem_key_value_xmem
+230 mem_shutter_le_hid_map
+412 mem_shutter_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
+10 mem_shutter_key_state7
+10 mem_shutter_key_state8
+
+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
+10 mem_dy_key7_press
+10 mem_dy_key8_press
+
+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
+15 mem_key7_release_new
+15 mem_key8_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_key7_long_press
+3 mem_key8_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
+3 mem_key7_long_release
+3 mem_key8_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
+10 mem_key6_press_i
+10 mem_key7_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
+15 mem_key7_release_new_i
+15 mem_key8_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_key7_long_press_i
+3 mem_key8_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
+3 mem_key7_long_release_i
+3 mem_key8_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
+550 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
+9 mem_shutter_dy_key_conf
+11 mem_le_dy_adv_data
+12 mem_le_dy_scan_data
+8 mem_ble_shutter_dy_interval_min_android
+8 mem_ble_shutter_dy_interval_min_ios
+8 mem_shutter_ble_discovery_time_conf
+2 mem_queue_dy_each_size
+
+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
+
+1 mem_shutter_dy_le_enc_timer
+0 mem_shutter_end
+)
+
+
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+
+
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+
+//otp address offset
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//璧峰鍦板潃
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //缁撴潫鍦板潃
+)
+
+
+(
+//uart config
+115200 UART_BAUD
+)
+
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X55 ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0xfff IPHONE_ONCE_MAX_MOVE_VALUE
+)
+
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+
Index: GK308_keyboard_only_24g/format/ble_protocol_stack/le.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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 =========== */
+
+
+)
+
+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
+
+/* test */
+1 mem_le_testtype
+1 mem_cmd_le_create_conn
+
+//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: GK308_keyboard_only_24g/format/ble_protocol_stack/le_advertising.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le_advertising.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_att.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_att.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_att.format	(working copy)
@@ -0,0 +1,205 @@
+
+xmemalloc(
+	1 mem_le_l2cap_att_states
+
+
+	/* should be together */
+	1 mem_le_att_opcode
+	2 mem_le_att_handle
+	1 mem_le_search_res
+
+	2 mem_le_notify_handle
+	1 mem_le_search_uuid_length
+	16 mem_le_search_uuid
+)
+
+amemalloc mem_temp_block2(
+	2 mem_le_search_handle_start
+	2 mem_le_search_handle_end
+	0 mem_le_att_offset
+	1 mem_le_search_att_type_length
+	16 mem_le_search_att_type
+
+	1 mem_le_curr_att_len
+
+	2 mem_le_cur_attlist_start_ptr
+	2 mem_le_cur_handle_start
+	2 mem_le_cur_handle_end
+	1 mem_le_cur_uuid_length
+	16 mem_le_cur_uuid
+	2 mem_le_cur_handle
+)
+
+
+amemalloc mem_le_rxbuf(
+//data channel ATT start PDU
+	1 mem_le_rxbuf_data_att_header
+	1 mem_le_rxbuf_data_att_length
+	2 mem_le_rxbuf_data_att_l2cap_length
+	2 mem_le_rxbuf_data_att_cid
+	1 mem_le_rxbuf_data_att_opcode
+	250 mem_le_rxbuf_data_att_payload
+)
+
+
+amemalloc mem_le_rxbuf(
+//data channel ATT continue PDU
+	1 mem_le_rxbuf_data_continue_header
+	1 mem_le_rxbuf_data_continue_length
+	255 mem_le_rxbuf_data_continue_payload
+)
+
+amemalloc mem_le_rxbuf(
+//data channel ATT write request PDU
+	1 mem_le_rxbuf_data_att_write_header
+	1 mem_le_rxbuf_data_att_write_length
+	2 mem_le_rxbuf_data_att_write_l2cap_length
+	2 mem_le_rxbuf_data_att_write_cid
+	1 mem_le_rxbuf_data_att_write_opcode
+	2 mem_le_rxbuf_data_att_write_handle
+	248 mem_le_rxbuf_data_att_write_payload
+)
+
+amemalloc mem_le_rxbuf(
+//data channel ATT prepare write request PDU
+	1 mem_le_rxbuf_data_prepare_att_write_header
+	1 mem_le_rxbuf_data_prepare_att_write_length
+	2 mem_le_rxbuf_data_prepare_att_write_l2cap_length
+	2 mem_le_rxbuf_data_prepare_att_write_cid
+	1 mem_le_rxbuf_data_prepare_att_write_opcode
+	2 mem_le_rxbuf_data_prepare_att_write_handle
+	2 mem_le_rxbuf_data_prepare_att_write_offset
+	246 mem_le_rxbuf_data_prepare_att_write_payload
+)
+
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+
+
+
+(
+0 BIT_CHARACTERISTIC_BROADCAST
+1 BIT_CHARACTERISTIC_READ
+2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
+3 BIT_CHARACTERISTIC_WRITE
+4 BIT_CHARACTERISTIC_NOTIFY
+5 BIT_CHARACTERISTIC_INDICATE
+6 BIT_CHARACTERISTIC_SIGNED_WRITE
+7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
+)
+
+/* ATT OPCODE */
+(
+0x01 ATTOP_ERROR_RESPONSE
+0x02 ATTOP_EXCHANGE_MTU_REQUEST
+0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+0x04 ATTOP_FIND_INFORMATION_REQUEST
+0x05 ATTOP_FIND_INFORMATION_RESPONSE
+0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+0x08 ATTOP_READ_BY_TYPE_REQUEST
+0x09 ATTOP_READ_BY_TYPE_RESPONSE
+0x0A ATTOP_READ_REQUEST
+0x0B ATTOP_READ_RESPONSE
+0x0C ATTOP_READ_BLOB_REQUEST
+0x0D ATTOP_READ_BLOB_RESPONSE
+0x0E ATTOP_READ_MULTIPLE_REQUEST
+0x0F ATTOP_READ_MULTIPLE_RESPONSE
+0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+0x12 ATTOP_WRITE_REQUEST
+0x13 ATTOP_WRITE_RESPONSE
+0x16 ATTOP_PREPARE_WRITE_REQUEST
+0x17 ATTOP_PREPARE_WRITE_RESPONSE
+0x18 ATTOP_EXECUTE_WRITE_REQUEST
+0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+0x1D ATTOP_HANDLE_VALUE_INDICATION
+0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+0x52 ATTOP_WRITE_COMMAND
+0xD2 ATTOP_SIGNED_WRITE_COMMAND
+0x1f ATTOP_CONTINUE
+0x9e EMPTY_LE_DATA_PRE
+0x9f EMPTY_LE_DATA
+)
+
+/* ATT error code */
+(
+0x01 ATT_ERR_INVALID_HANDLE
+0x02 ATT_ERR_READ_NOT_PERMITTED
+0x03 ATT_ERR_WRITE_NOT_PERMITTED
+0x04 ATT_ERR_INVALID_PDU
+0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+0x07 ATT_ERR_INVALID_OFFSET
+0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+0x09 ATT_ERR_PREPARE_QUEUE_FULL
+0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+0x0E ATT_ERR_UNLIKELY_ERROR
+0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+)
+
+/* GATT Specifications*/
+(
+0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+0X2901 CHARACTERTIC_USER_DESCRIPTION
+0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+0X2905 CHARACTERTIC_AGGREGATE
+0X2906 VALID_RANGE
+0X2907 EXTERNAL_REPORT_REFERENCE
+0X2908 REPORT_REFERENCE
+0X290B ENVIR_SENSING_CONFIGURATION
+0X290C ENVIR_SENSING_MEASUREMENT
+0X290D ENVIR_SENSING_TRIGGER_SETTING
+)
+
+
+/*	SERVICE UUID	*/
+(
+0x1800 UUID_SERVICE_GENERIC_ACC
+0x1801 UUID_SERVICE_GENERIC_ATT
+0x180a UUID_SERVICE_DEVICE_INFO
+0x180f UUID_SERVICE_BATTERY
+0x1812 UUID_SERVICE_HIDS
+0x2800 UUID_GATT_PRIMARY_SERVICE
+0x2801 UUID_GATT_SECONDARY_SERVICE
+0X2802 UUID_GATT_INCLUDE
+0X2803 UUID_GATT_CHARACTERISTIC
+0X2A00 UUID_CHRCTR_DEVICE_NAME
+0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+0X2A23 UUID_CHRCTR_SYSTEM_ID 
+0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+0X2A26 UUID_CHRCTR_FIRMWARE
+0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+0X2A33 UUID_CHRCTR_MOUSE_INPUT
+0X2A4A UUID_CHRCTR_HID_INFO
+0X2A4B UUID_CHRCTR_REPORT_MAP
+0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+0X2A4D UUID_CHRCTR_REPORT
+0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+
+
+(
+23 ATT_DEFAULT_MTU 
+)
+
+
+
Index: GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_att_wechat.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_att_wechat.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_signalling.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_signalling.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_smp.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le_l2cap_smp.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/ble_protocol_stack/le_ll.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ble_protocol_stack/le_ll.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/bt.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/bt.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/bt.format	(working copy)
@@ -0,0 +1,653 @@
+
+	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
+20 mem_rf_init_data
+endif
+1 mem_otp_charge_pump_x
+1 mem_otp_dpll_ibais_x
+
+1 mem_xtal_freq
+)
+
+(//mem_system_clk
+12 SYSTEM_CLK_12M
+24 SYSTEM_CLK_24M
+)
+
+(//bluetooth tx power
+0x00 TX_POWER_0DB
+0x03 TX_POWER_3DB
+0x05 TX_POWER_5DB
+0x06 TX_POWER_6DB
+0x07 TX_POWER_7DB
+0x0a TX_POWER_10DB
+
+0x83 TX_POWER_F3DB
+0x85 TX_POWER_F5DB
+0x8a TX_POWER_F10DB
+0x94 TX_POWER_F20DB
+0x9e TX_POWER_F30DB
+0xaa TX_POWER_FACTORY
+)
+
+
+	/* context */
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	/* 3.0 only */
+	
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+0x1c coffset_le_supervision_timer
+0x20 coffset_le_instant
+0x22 coffset_le_channels
+0x23 coffset_le_op
+0x24 coffset_le_access
+0x28 coffset_le_crcinit
+0x2b coffset_le_window_size
+0x2c coffset_le_slave_latency
+0x2e coffset_le_slave_superto
+0x30 coffset_le_channel_map
+0x35 coffset_le_rx_phy
+0x36 coffset_le_tx_phy
+0x37 coffset_le_new_map
+0x37 coffset_le_new_m2s_phy
+0x38 coffset_le_new_s2m_phy
+0x37 coffest_le_new_transmitwindowsize
+0x38 coffest_le_new_transmitwindowoffset
+0x3a coffest_le_new_conninterval
+0x3c coffest_le_new_connslavelatency
+0x3e coffest_le_new_connsupervisiontimeout
+0x40 coffset_le_sk
+0x50 coffset_le_peer_sca
+0x53 coffset_le_transmit_window
+	
+83 context_size
+1 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+/* ========= parameters ============== */
+(
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+
+/* 24Mhz clock setting */
+ifdef CLK24M
+0x1c86 param_tx_setup
+0x0c00 param_rf_setup
+0x0c00 param_conn_access 
+0x1a00 param_rx_setup
+0x0776 param_clke_cal
+0x0a00 param_pll_setup
+4000 param_dpll_start_delay
+7500 param_halfclk
+60084 param_halfclk_neg
+-60084 param_halfclk_neg1
+else
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x0600 param_rf_setup
+0x0600 param_conn_access 
+0x03bb param_clke_cal
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+3750 param_rt_rthalfslot
+
+480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
+288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
+282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
+endif
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+
+ifdef SIM
+1 param_chgpump_delay_100us
+6 param_chgpump_delay_500us
+12 param_chgpump_delay_1ms
+else
+1000 param_chgpump_delay_100us
+6000 param_chgpump_delay_500us
+12000 param_chgpump_delay_1ms
+endif
+
+
+0x000a04 param_lmp_version
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+39 param_fcomp_div
+2 param_fcomp_mul
+
+)
+
+
+/* ========== flag[6] =============== */
+(
+0        always        /* always 1 */
+1        true          /* set/rstn by verify,compare,icompare (true) */
+2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
+3        timeout       /* read only, the timeout from timers */
+4        init_adpcm
+5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
+6        crc_failed    /* level, cleared by hop_start */
+7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
+8        enable_parity /* level */
+9        enable_crc    /* level */
+10       enable_hec    /* level */
+11       decode_fec1   /* level */
+12       decode_fec2   /* level */
+13       decode_fec0   /* level */
+14       encrypt       /* level */
+15       crc16       /* for caculate ccitt crc16 */
+16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
+20       rqst_freq    /* pulse, to start calculating frequency */
+21       recalc        /* pulse, to recalculate the fhs_parity */
+22       init_encrypt  /* pulse, issued to initialize encrption */
+23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
+24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
+25       user10    /* user10 */
+26       kc_p_activate  /* pulse to recalc the kc_p */
+27       encode_fec1   /* level */
+28       encode_fec2   /* level */
+29       encode_fec0   /* level */
+30       packet_end    /* pulse */
+32       is_tx         /* level */
+33       is_rx         /* level */
+34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
+35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
+36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
+37       expire       /* level, read only, when selected clock source exceed timeup value */
+38       meet         /* level, read only, when selected clock source meet timeup value */
+39       tx_clear     /* level, read only, indicate tx pipe is cleared */
+40       user         /* user0 */
+41       master        /* user1 */
+42       rxon         /* user2 */
+43       wake           /* user3 */
+44       user2        /* user4 */
+45       match         /* user5 */
+46       attempt        /* user6 */
+47       user3          /* user7 */
+48       clknt         /* user8 */
+49	   user7 	/* user9 */
+50       synchronize   /* synchronize lpo and regular version of the clock */
+51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
+52       blank         /* C0 only, means pdata == 0 */
+53       modone          /* set divide operation is done */
+55       aes_ready	/* set when aes is ok */
+56       encode_fec3   /* level */
+57       dewhiten_code_calc   /* dewhiten code calculate */
+58       lr_s2en       /* long range s2 enable */
+60	   ble_coded_info	//1:s2 0:s8
+63       never         /* read only, always 0 */
+)
+
+default flag = always
+
+/* ========== reg[6] =============== */
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contu  /* contr uart */
+3	 contru	/*contr uart*/
+3	 contwu	/*contw uart*/
+4        am_addr      /* verify during rx, read and send during tx */ /* ro */
+5        contw        /* last mem_addr during write */
+6        contr        /* last mem_addr during read */
+7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
+8        debug    /* can be wired out for observation */
+9        access   /* the 72 bit access word */
+10       contus   /* contw uart */
+11       timeup        /* when does certain counter expire */
+12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
+13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
+14       white_init    /* init value of the whitening */
+15       crc24_init        /* init crc24 lfsr, 24 bits */
+16       contue    /* set interrupts, 40 bits */
+17       rega          /* general purpose register, 32 bits */
+18       regb          /* general purpose register, 32 bits */
+19       regc          /* general purpose register, 17 bits */
+20       regab         /* concat of {rega,regb}, thus 64 bits */
+21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
+
+23       freq_index   /* 7 bit read only */
+24       regd    /* 32 bit regext[1,0] */
+25       clkn              /* {clkn_bt, clkn_rt} */
+26       clke              /* {clke_bt, clke_rt} */
+27       stop_watch		
+28       fhs_misc   /* SR, SP, pscan mode */
+29       fhs_class  /* class field in fhs */
+30       fhs0   /* read only, bit 0-71 of fhs word */
+31       fhs1   /* read only, bit 72-142 of fhs word */
+32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
+33       bt_clk /* r/w, the bt_clk for freq hopping */
+34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
+35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+36       freq_mode
+37       xin   /* x parameter, read only */
+38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
+39 	   auxcnt
+40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
+41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+42       branch_addr	/* last branch address */
+43       rege         /* 64bit regext[3,2] */
+44       lap
+45       uap
+46       nap         
+47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
+48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
+49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
+50       kc_ls             /* secret key,                71: 0 */
+51       kc_ms             /* secret key,               127:72 */
+52       g1l               /* encryption length                */
+53		mask3ff		/* for mask 0x3ff operation */
+54       aes_ctrl		
+55       regf			/* 64bit regext[5,4] */
+56       regext_index   /* index of regext */
+57	     loopcnt
+58      stack			/* current return address */
+59       stack_ptr		/* stack depth */
+61         pc /* direct goto */
+62       null              /* to nowhere */
+63       pdata /* the shift register */
+)
+default reg = pdata
+
+/* regext_index */
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+/* ========== radio_ctrl========= */
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+/* assign BPWR = radio_ctrl[0]; */
+/* assign PARAMP = radio_ctrl[1]; */
+/* assign XTALPU = radio_ctrl[2]; */
+/* assign SYNTHPU = radio_ctrl[3]; */
+/* assign TXPU = radio_ctrl[4]; */
+/* assign RXPU = radio_ctrl[5]; */
+/* assign SLCTRL = radio_ctrl[6]; */
+/* assign XTALSEL_MUX_SEL = radio_ctrl[7] */
+
+
+/* =========== destination[4] ============== */
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+
+/* =========== source[4] ============= */
+(
+1 txf
+3 demod
+)
+default source = 0
+
+
+/* ============== mark ============= */
+(
+5  mark_loopback
+9  mark_context
+13 mark_lpm_mult_enable
+14 mark_usb_first_resp
+15 mark_old_packet
+16 mark_adv
+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
+6 G24_TIMER_KB_BIT_CONSUMER_BLANK
+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: GK308_keyboard_only_24g/format/command.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/command.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/debug.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/debug.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/debug.format	(working copy)
@@ -0,0 +1,6 @@
+xmemalloc(
+
+1 mem_rf_debug_rx_gpio
+1 mem_rf_debug_tx_gpio
+)
+
Index: GK308_keyboard_only_24g/format/g24_protocol_stack/24g.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/g24_protocol_stack/24g.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/g24_protocol_stack/24g_pair.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/g24_protocol_stack/24g_pair.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/g24_protocol_stack/24g_receiver.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/g24_protocol_stack/24g_receiver.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/g24_protocol_stack/24g_reconn.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/g24_protocol_stack/24g_reconn.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/g24_protocol_stack/24g_rssi.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/g24_protocol_stack/24g_rssi.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/g24_protocol_stack/24g_transmitter.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/g24_protocol_stack/24g_transmitter.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/g24_protocol_stack/24g_txpower_ctrl.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/g24_protocol_stack/24g_txpower_ctrl.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/hci.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/hci.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/hid.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/hid.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/hid.format	(working copy)
@@ -0,0 +1,212 @@
+
+//dpi eeprom addr
+xmemalloc g24_tx_hid(
+
+// adc
+//adc struct
+0 mem_device_vdd_calculate_set
+2 mem_device_vdd_full_vol
+2 mem_device_vdd_empty_vol
+2 mem_device_vdd_low_vol
+2 mem_device_vdd_now_vol
+1 mem_adc_channel_gpio
+1 mem_adc_low_volatage_led_timer_count
+1 mem_device_adc_last_low_voltage_flag
+2 mem_device_discovery_timeout
+2 mem_device_24g_pair_timeout_init
+1 mem_device_direct_timeout
+1 mem_device_24g_reconn_timeout_init
+1 mem_device_24g_pair_tx_power
+1 mem_device_normal_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
+
+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
+
+1 mem_device_switch_gpio
+1 mem_device_reuse_2ice_gpio
+1 mem_sensor_motion_gpio
+
+//mouse wheel
+1 mem_whee_a_data_gpio
+1 mem_whee_b_data_gpio
+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
+
+// usb
+1 mem_wire_usb_interval
+1 mem_usb_addr
+1 mem_usb_vdd_status
+1 mem_usb_keyboard_flag
+
+//three devices param
+//eeprom/flash
+0 mem_device_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_device_24g_addr
+2 mem_random_addr_increase_count
+
+1 mem_keyboard_24g_fn_lock
+1 mem_keyboard_bt1_fn_lock
+1 mem_keyboard_bt2_fn_lock
+1 mem_keyboard_bt3_fn_lock
+1 mem_keyboard_usb_fn_lock
+1 mem_keyboard_bt1_computer_system
+1 mem_keyboard_bt2_computer_system
+1 mem_keyboard_bt3_computer_system
+1 mem_backlight_on_flag
+1 mem_backlight_on_type
+1 mem_backlight_on_level
+1 mem_backlight_breath_speed
+67 mem_mouse_retention
+0 mem_device_information_end
+
+6 mem_device_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_device_search_dongle_interval
+1 mem_device_search_dongle_ch
+1 mem_device_search_dongle_count
+1 mem_device_search_dongle_action
+1 mem_24g_enter_lpm_timer
+1 mem_mouse_24g_enter_lpm_enable
+1 mem_keyboard_led_status
+
+
+// mouse configured param
+8 mem_mouse_flag 
+1 mem_device_number
+1 mem_device_flag_temp
+1 mem_device_otp_flag_temp
+1 mem_device_fast_direct_timeout
+2 mem_device_24g_power_on_fast_conn_timer
+2 mem_device_24g_search_dongle_time_init
+2 mem_device_no_data_timeout
+1 mem_device_direct_timer
+
+10 mem_customer_key_press
+1 mem_customer_key
+1 mem_customer_data_trigger
+1 mem_customer_data_trigger_last
+3 mem_device_set_analog_bit_set
+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
+
+
+1 mem_24g_shutdown_flag
+1 mem_24g_long_sleep_set_level
+
+2 mem_tx_power_factory_param
+
+1 mem_mouse_24g_long_sleep_flag
+
+//no motion pin
+1 mem_mouse_long_mult_count
+1 mem_mouse_long_mult_flag
+1 mem_mouse_current_mult_timer
+
+1 mem_reconn_times
+1 mem_reconn_times_init
+2 mem_device_no_data_timer
+8 mem_mouse_rssi_signal_buf				
+4 mem_btclk_sensor
+1 mem_device_fast_conn_flag
+2 mem_device_discovery_timer
+1 mem_device_need_soft_reset
+
+// le
+1 mem_device_le_bb_connected_flag
+1 mem_device_le_reconnect_flag
+1 mem_device_send_secutiry_request_timer
+
+3 mem_device_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_le_conn_param_reject
+64 mem_le_tx_buffer0_omemalloc
+64 mem_le_tx_buffer1_omemalloc
+64 mem_le_tx_buffer2_omemalloc
+64 mem_le_tx_buffer3_omemalloc
+1 mem_le_connect_status_flag
+1 mem_le_start_encrypt_timer
+
+7 mem_device_addr_temp
+1 mem_lpm_mult_init
+1 mem_qdec_set_flag
+
+)
+
+
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+
+0x5a USB_INTERFACE_INSERT
+0xa5 USB_INTERFACE_REMOVE
+
+
+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
+
+)
\ No newline at end of file
Index: GK308_keyboard_only_24g/format/l2cap.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/l2cap.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/memblocks.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/memblocks.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/memblocks.format	(working copy)
@@ -0,0 +1,40 @@
+//
+//
+//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: GK308_keyboard_only_24g/format/patch.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/patch.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/regs.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/regs.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/regs.format	(working copy)
@@ -0,0 +1,557 @@
+(
+	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
+
+	0x8100 core_clkn
+	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
+
+	
+
+
+
+    
+    
+)
+
+(
+
+4 BIST_CTRL_FIX_SCHED_RAM
+5 BIST_CTRL_FIX_XRAM
+6 BIST_CTRL_FIX_PATCH_RAM
+
+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
+	9 CLOCK_OFF_NEC
+	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
+0xFF  GPIO_DISABLE
+)
+
Index: GK308_keyboard_only_24g/format/security.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/security.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/simple_pairing.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/simple_pairing.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/ui.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/ui.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/format/usb.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/usb.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/usb.format	(working copy)
@@ -0,0 +1,258 @@
+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_n_key_rollvoer_data
+8 mem_usb_kb_multikey
+8 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
+0x23 USB_EP2_BIT_CONSUMER
+0x24 USB_EP2_N_KEY_ROLLOVER
+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: GK308_keyboard_only_24g/format/utility.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/format/utility.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/output/RELEASE/test_OTP_SVN6129_ATX_GK308.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/RELEASE/test_OTP_SVN6129_ATX_GK308.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/RELEASE/test_OTP_SVN6129_ATX_GK308.dat	(working copy)
@@ -0,0 +1,4592 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+c0
+0b
+ca
+22
+e1
+7c
+1f
+7a
+25
+d7
+f3
+ad
+40
+04
+3b
+dd
+e9
+5a
+99
+ad
+56
+0a
+f0
+ab
+cf
+1a
+6d
+b9
+bc
+78
+b7
+40
+09
+eb
+eb
+6e
+37
+52
+b7
+e6
+0c
+2a
+3b
+b1
+db
+d0
+65
+93
+2e
+08
+46
+e6
+e0
+78
+14
+c5
+ab
+c9
+07
+33
+00
+30
+28
+4d
+08
+9e
+8a
+41
+0d
+f5
+8e
+55
+da
+a3
+ba
+96
+95
+4a
+c4
+ff
+d0
+d3
+62
+38
+c3
+b7
+09
+6f
+c5
+30
+f2
+88
+fd
+cd
+51
+32
+63
+33
+a5
+41
+0e
+01
+4f
+3e
+a5
+42
+89
+3e
+95
+a9
+0b
+fb
+2c
+46
+71
+b2
+38
+02
+b1
+4d
+47
+f1
+cd
+de
+c4
+a8
+b1
+b3
+71
+4e
+a2
+2d
+3f
+55
+85
+18
+62
+aa
+f5
+ce
+78
+dd
+10
+16
+e5
+ea
+d1
+81
+05
+8b
+22
+8d
+4e
+b0
+93
+eb
+a8
+2e
+0c
+8c
+96
+72
+3c
+9e
+3f
+c7
+10
+a5
+45
+5b
+a1
+ac
+21
+7d
+90
+c2
+01
+aa
+95
+6f
+64
+46
+81
+64
+b4
+45
+17
+88
+9d
+d9
+da
+a3
+48
+51
+3e
+fb
+94
+6f
+48
+62
+fe
+ff
+d4
+e7
+9d
+e9
+57
+95
+0f
+1c
+95
+10
+c2
+48
+3a
+ee
+cd
+88
+e3
+18
+d8
+52
+58
+ef
+da
+52
+49
+5a
+b7
+f9
+62
+80
+68
+9a
+8d
+ec
+f6
+f3
+e3
+a4
+42
+4a
+2d
+a0
+d1
+0d
+ec
+d9
+0b
+01
+0b
+40
+84
+e1
+60
+91
+b8
+03
+7f
+6c
+42
+7c
+89
+d1
+76
+01
+18
+e5
+a3
+d0
+55
+6b
+48
+28
+db
+c6
+a1
+44
+7a
+2a
+2f
+0f
+14
+34
+cd
+73
+f7
+f0
+b2
+ea
+07
+f9
+ef
+64
+aa
+16
+87
+2c
+87
+87
+6a
+40
+3f
+2e
+2d
+a4
+65
+6e
+21
+10
+9b
+b8
+48
+f1
+0c
+ca
+0e
+73
+e3
+7f
+5c
+7c
+00
+15
+22
+72
+44
+71
+fa
+61
+e3
+ac
+5f
+b9
+22
+23
+b4
+33
+4d
+ae
+75
+2c
+02
+0f
+ee
+4a
+4a
+94
+3b
+c6
+6b
+29
+83
+5a
+2b
+a0
+6f
+0b
+57
+6b
+24
+ed
+1e
+84
+ba
+38
+6f
+0f
+1f
+0c
+b8
+d5
+d8
+47
+71
+13
+3c
+d5
+43
+10
+cd
+ed
+fa
+8c
+60
+80
+70
+95
+ba
+d7
+72
+ec
+eb
+39
+6d
+2f
+c8
+0b
+47
+0d
+4c
+8b
+5c
+96
+3a
+5a
+9f
+27
+0d
+74
+b7
+42
+a1
+bd
+67
+30
+e0
+72
+8f
+38
+0b
+66
+48
+e4
+80
+2c
+48
+20
+43
+93
+45
+e7
+66
+27
+f2
+3f
+5c
+58
+a6
+bf
+7f
+85
+b8
+e9
+f7
+9d
+50
+f6
+e0
+e2
+af
+75
+e7
+98
+86
+ee
+23
+ba
+dc
+9f
+ad
+13
+9c
+1c
+c2
+19
+1b
+90
+8d
+43
+f8
+2d
+be
+60
+34
+4d
+f6
+bc
+65
+94
+b7
+2b
+0f
+f4
+4d
+93
+f2
+7c
+c5
+a3
+1c
+28
+34
+dc
+de
+32
+f6
+33
+c1
+54
+2d
+c0
+89
+d2
+dc
+5e
+74
+0e
+42
+2a
+ae
+15
+8a
+92
+f2
+c7
+6f
+20
+63
+de
+8b
+ed
+a9
+e6
+3a
+9f
+0b
+43
+0c
+ac
+57
+a1
+b1
+8a
+63
+a6
+04
+aa
+d4
+91
+2e
+a5
+e9
+d1
+8b
+aa
+86
+38
+7e
+3b
+d4
+f8
+3d
+00
+f1
+36
+3a
+29
+df
+63
+ea
+bd
+19
+d0
+99
+3c
+c5
+bf
+35
+7f
+90
+ca
+4c
+93
+9c
+74
+1b
+cb
+27
+cb
+03
+be
+8e
+fd
+f9
+af
+90
+0d
+27
+4c
+33
+63
+92
+3c
+26
+24
+32
+d9
+fa
+25
+91
+64
+b9
+e2
+7b
+cd
+1f
+ea
+88
+ca
+b0
+b4
+3e
+c9
+fa
+f1
+b8
+9d
+c1
+f6
+4a
+4c
+09
+73
+a5
+c7
+ca
+11
+27
+2a
+0b
+e5
+8d
+24
+07
+d6
+1c
+61
+4f
+c7
+f5
+94
+f5
+35
+06
+2a
+2d
+03
+8a
+ba
+04
+48
+7b
+0b
+11
+63
+78
+0d
+1b
+96
+e4
+82
+38
+76
+b4
+1b
+c1
+10
+d4
+1b
+ad
+46
+3d
+01
+d1
+d0
+1c
+b8
+e2
+2b
+21
+95
+0b
+a7
+e1
+69
+09
+a5
+5b
+f6
+0d
+39
+08
+c3
+a4
+2b
+ec
+38
+58
+c2
+4b
+2f
+1f
+1b
+69
+92
+bd
+4e
+ea
+5c
+d2
+21
+19
+ac
+c9
+9c
+41
+8d
+9b
+66
+9c
+ba
+f4
+af
+75
+70
+13
+75
+2f
+a0
+22
+28
+aa
+79
+5c
+31
+a1
+b0
+3f
+7b
+6c
+f7
+95
+9a
+cf
+96
+56
+d3
+36
+66
+fa
+ef
+9a
+6f
+ae
+30
+6b
+c6
+dc
+83
+cc
+6d
+8b
+68
+1b
+c3
+e7
+72
+97
+75
+ad
+60
+e5
+46
+b1
+ba
+5d
+0b
+a4
+1f
+d5
+c6
+f9
+0f
+3f
+4f
+d1
+e6
+a1
+0d
+ad
+b4
+bb
+e3
+dc
+e2
+78
+fd
+74
+0b
+19
+65
+ca
+55
+20
+33
+e1
+66
+74
+0d
+df
+32
+db
+8c
+ed
+3a
+90
+30
+a5
+10
+9e
+9b
+be
+d7
+ba
+eb
+47
+be
+57
+df
+ec
+63
+a0
+f8
+ec
+6c
+13
+4f
+9e
+78
+7a
+6a
+bd
+06
+2c
+e3
+75
+c2
+41
+1a
+63
+df
+5a
+cd
+9a
+e6
+91
+73
+37
+98
+9a
+66
+cb
+84
+76
+d3
+a4
+93
+32
+21
+1f
+87
+88
+19
+06
+c2
+24
+b2
+5d
+16
+dd
+7a
+af
+23
+76
+37
+12
+1d
+b5
+cc
+94
+82
+d4
+79
+06
+55
+b7
+b7
+a4
+a7
+9c
+06
+ca
+93
+51
+c1
+e6
+a9
+20
+1d
+30
+6d
+b9
+0b
+99
+5b
+54
+3b
+d0
+2d
+8f
+15
+f0
+1d
+14
+aa
+f5
+e7
+06
+59
+ed
+f8
+24
+eb
+ff
+7b
+53
+2d
+9e
+41
+13
+0f
+a0
+d9
+72
+65
+35
+47
+55
+42
+52
+b6
+15
+83
+aa
+33
+19
+3c
+18
+c8
+6f
+43
+35
+66
+01
+6a
+a9
+8b
+95
+78
+5d
+d1
+04
+bc
+f2
+c7
+ff
+36
+23
+cb
+27
+7f
+3c
+d3
+4b
+a9
+c3
+d2
+a0
+a6
+49
+6b
+29
+62
+33
+31
+44
+6f
+9e
+2a
+c5
+d5
+64
+be
+70
+0b
+2c
+11
+53
+e5
+18
+ac
+5d
+80
+3d
+a7
+7f
+38
+1c
+f0
+25
+61
+42
+fc
+ba
+58
+93
+ff
+ce
+ef
+31
+b2
+bf
+94
+e3
+9f
+b3
+e2
+ef
+ce
+37
+a4
+41
+94
+84
+95
+eb
+d9
+82
+bb
+fc
+29
+cb
+a1
+e5
+36
+88
+7f
+35
+1d
+89
+3a
+5f
+63
+1f
+a5
+b4
+6d
+43
+80
+05
+0d
+3a
+95
+55
+b2
+79
+74
+61
+b0
+5e
+c5
+f9
+c5
+5f
+9b
+b6
+51
+54
+66
+a4
+e3
+62
+07
+e9
+f3
+17
+17
+76
+8e
+a5
+d6
+04
+78
+4b
+60
+79
+86
+a0
+e9
+2f
+94
+5e
+f2
+de
+4f
+5f
+1e
+9e
+16
+7a
+05
+ad
+68
+64
+77
+2a
+9c
+88
+33
+fd
+47
+59
+29
+8a
+1a
+5a
+90
+0f
+ce
+aa
+a2
+2d
+56
+b9
+df
+1b
+f1
+3d
+03
+87
+48
+1f
+91
+26
+0c
+1a
+bc
+7b
+ae
+0a
+a4
+84
+29
+c3
+31
+08
+5e
+eb
+3a
+9a
+8a
+aa
+2b
+c0
+21
+d0
+6e
+af
+0a
+38
+fb
+e3
+70
+78
+6b
+48
+3b
+9a
+08
+b4
+f2
+1c
+e2
+26
+93
+6f
+24
+dd
+d3
+62
+67
+3c
+80
+df
+df
+d6
+fb
+0f
+db
+3f
+de
+9a
+c0
+e5
+7d
+0e
+3c
+8b
+10
+02
+41
+ed
+86
+9a
+49
+83
+e5
+d5
+cc
+2a
+7c
+41
+12
+ca
+4c
+03
+88
+fa
+f2
+65
+3b
+17
+ad
+dd
+76
+40
+a4
+7b
+cc
+5b
+86
+8f
+9a
+71
+af
+c1
+e8
+38
+8b
+02
+cb
+23
+61
+6b
+73
+bf
+c9
+7f
+bd
+c4
+cb
+b7
+37
+e9
+7c
+ec
+03
+a9
+fd
+55
+2e
+cf
+2c
+25
+1f
+2a
+e8
+23
+79
+8e
+ea
+de
+91
+9b
+73
+cf
+97
+04
+0f
+01
+51
+6c
+12
+26
+04
+bb
+32
+7c
+ba
+ef
+81
+5d
+44
+c0
+6b
+86
+5a
+a4
+41
+bb
+c8
+39
+3c
+37
+91
+d9
+11
+31
+94
+f7
+af
+70
+42
+01
+b0
+a2
+73
+56
+cd
+b7
+6a
+d4
+78
+c8
+ed
+59
+26
+3a
+14
+3f
+19
+c5
+45
+a3
+f7
+fa
+d7
+4e
+e2
+37
+13
+68
+32
+73
+8d
+cd
+15
+43
+48
+55
+46
+30
+50
+30
+fb
+cc
+7d
+7e
+7a
+1f
+ff
+ad
+8d
+76
+c8
+5f
+ae
+31
+b6
+c7
+75
+be
+4f
+fa
+c9
+74
+21
+13
+2d
+80
+d0
+86
+e6
+e8
+69
+f9
+aa
+b4
+23
+77
+98
+08
+2e
+b4
+c0
+d4
+ca
+a6
+d4
+fe
+73
+c6
+a1
+da
+3d
+59
+da
+8b
+ba
+54
+82
+de
+39
+87
+b9
+b1
+9e
+d8
+66
+cc
+d8
+c2
+1f
+f0
+f9
+67
+c8
+c0
+59
+a7
+b5
+28
+62
+3c
+94
+ce
+3d
+36
+0e
+93
+26
+76
+fe
+18
+cb
+75
+50
+7a
+b3
+34
+a4
+b2
+c9
+00
+1e
+eb
+e8
+65
+cf
+59
+24
+7b
+87
+25
+03
+b0
+20
+f4
+78
+4a
+3b
+06
+71
+5b
+e6
+4a
+92
+e7
+28
+25
+a5
+66
+21
+9d
+23
+c3
+80
+9d
+8b
+a8
+cb
+97
+a6
+99
+4a
+f4
+c6
+61
+12
+32
+82
+57
+2b
+17
+b3
+e0
+15
+e2
+23
+8b
+a9
+0d
+18
+0f
+ae
+66
+8f
+17
+b2
+63
+fd
+f1
+71
+c2
+ad
+75
+ea
+e1
+ba
+bd
+ca
+20
+18
+fd
+ad
+81
+67
+d3
+f8
+8b
+e1
+ff
+ff
+93
+f3
+f5
+97
+dd
+99
+db
+ce
+4f
+79
+fa
+1b
+e5
+7e
+d4
+8f
+bc
+e2
+39
+fa
+79
+b8
+fc
+8a
+02
+3d
+48
+08
+07
+1b
+03
+e3
+a9
+f4
+04
+d2
+f9
+8e
+f5
+d8
+56
+86
+c3
+32
+4d
+44
+8c
+f9
+86
+88
+07
+1c
+63
+a0
+5e
+c3
+96
+b6
+aa
+b7
+e5
+ce
+85
+56
+42
+1f
+c9
+49
+9e
+6d
+ac
+91
+08
+33
+3e
+e8
+c1
+d3
+0c
+91
+42
+07
+72
+75
+1a
+8a
+74
+58
+f1
+bb
+06
+41
+d4
+88
+75
+09
+f4
+1c
+53
+c8
+0b
+a8
+2f
+9c
+ff
+99
+8c
+f2
+5b
+14
+eb
+d4
+85
+66
+0f
+ba
+64
+6e
+8c
+69
+13
+2d
+99
+b6
+e1
+4b
+d0
+ec
+6d
+62
+2f
+46
+8e
+2f
+ce
+a8
+6e
+91
+19
+23
+f1
+27
+3a
+d0
+b0
+eb
+24
+77
+eb
+eb
+76
+fe
+0a
+b8
+df
+88
+84
+8d
+80
+c9
+61
+09
+ed
+4f
+85
+bb
+b8
+00
+13
+c6
+55
+b4
+ce
+9e
+e9
+c0
+8a
+bc
+a1
+87
+fb
+f2
+88
+0f
+68
+b9
+68
+94
+3f
+36
+ab
+22
+73
+fa
+cf
+dc
+44
+a1
+0f
+93
+7b
+cf
+aa
+61
+c0
+4e
+9f
+00
+a5
+47
+48
+54
+8c
+60
+0f
+87
+af
+ba
+99
+9e
+77
+26
+5a
+08
+22
+73
+ea
+6b
+14
+e3
+eb
+b0
+b5
+cc
+ba
+43
+35
+48
+61
+f1
+1b
+5f
+f8
+b1
+f9
+40
+87
+1a
+76
+ea
+49
+ae
+1f
+c5
+db
+da
+b1
+88
+74
+fe
+8f
+25
+17
+b4
+5d
+db
+80
+4a
+af
+08
+c8
+1f
+33
+ee
+a3
+d8
+46
+3b
+3d
+7f
+19
+e5
+ae
+fb
+0d
+df
+30
+2e
+2e
+da
+99
+36
+34
+77
+3f
+14
+91
+7b
+ba
+38
+90
+90
+cf
+d0
+73
+9b
+e5
+43
+25
+03
+b1
+bc
+be
+2d
+52
+b0
+28
+48
+96
+b2
+47
+cd
+46
+20
+20
+f3
+9f
+07
+00
+ef
+6b
+ec
+40
+cd
+be
+fc
+05
+c4
+3f
+65
+b3
+fa
+d7
+42
+bf
+b6
+ea
+10
+87
+88
+97
+08
+9d
+70
+10
+9d
+64
+09
+32
+9e
+c6
+04
+cb
+11
+e2
+2b
+af
+55
+b8
+70
+5c
+be
+b7
+a5
+71
+d0
+cf
+ec
+e9
+12
+e7
+88
+75
+80
+22
+f1
+c0
+88
+be
+9e
+c0
+06
+67
+af
+95
+18
+79
+12
+50
+ec
+f9
+81
+6d
+ff
+d7
+c5
+ce
+8e
+e9
+61
+f4
+03
+a9
+e4
+e7
+67
+1f
+ba
+24
+a0
+9f
+26
+ac
+0a
+83
+9a
+10
+ba
+fe
+ef
+5f
+04
+fb
+d8
+02
+b8
+da
+14
+0a
+1e
+e2
+1b
+8d
+53
+5a
+ec
+f8
+5b
+de
+a1
+93
+fd
+1a
+80
+08
+cb
+78
+b4
+12
+d9
+b8
+80
+8c
+93
+41
+c2
+48
+e0
+28
+75
+a3
+23
+b7
+16
+31
+5d
+82
+87
+6e
+9d
+d8
+7b
+61
+50
+5b
+4f
+3d
+2a
+86
+4c
+64
+08
+13
+12
+d2
+87
+76
+22
+f0
+63
+1c
+a1
+9a
+e1
+1e
+25
+30
+6b
+38
+60
+ad
+a6
+62
+2d
+87
+fb
+49
+94
+be
+fa
+ef
+a2
+01
+44
+26
+41
+90
+bc
+8a
+a1
+43
+9f
+c0
+b8
+61
+7d
+18
+bf
+d6
+56
+98
+3c
+61
+44
+03
+41
+d4
+b1
+77
+bc
+b4
+40
+a9
+1d
+f6
+97
+a1
+fc
+32
+ca
+cb
+01
+7e
+b7
+f0
+61
+37
+74
+93
+8c
+47
+6d
+29
+4f
+bd
+2f
+30
+38
+2d
+6a
+53
+ae
+6a
+e9
+13
+8f
+45
+aa
+55
+3e
+c1
+30
+14
+4f
+99
+a6
+a8
+9e
+e4
+22
+0a
+6f
+e4
+ee
+df
+4c
+95
+54
+b2
+fd
+6b
+99
+9d
+10
+0b
+21
+60
+82
+f9
+23
+ac
+40
+0e
+82
+50
+10
+58
+4a
+5e
+1f
+1d
+9a
+9f
+68
+53
+1a
+6c
+6e
+ef
+c9
+26
+8f
+7c
+65
+1c
+9d
+b2
+27
+d3
+ea
+e6
+3b
+5a
+19
+9d
+ea
+8c
+0d
+39
+5b
+5f
+17
+dc
+bd
+84
+0a
+b3
+9c
+b5
+7e
+b1
+08
+62
+a9
+f8
+ed
+77
+49
+e3
+5c
+e8
+47
+ea
+c2
+48
+03
+b4
+26
+f7
+b9
+03
+1b
+26
+81
+8e
+49
+0f
+67
+52
+4a
+b7
+c1
+e1
+57
+d5
+e0
+8c
+31
+c6
+e4
+6d
+63
+0e
+45
+db
+af
+99
+11
+b2
+d1
+0e
+de
+2a
+d5
+30
+02
+aa
+b9
+dd
+aa
+14
+a3
+04
+4b
+d5
+ae
+19
+83
+94
+54
+7b
+fb
+d2
+a1
+d4
+da
+8a
+99
+12
+48
+ca
+28
+fc
+7b
+b6
+95
+30
+08
+ea
+36
+a1
+1f
+2d
+7c
+8c
+dc
+d3
+bf
+de
+be
+b2
+a7
+70
+d0
+13
+8d
+7f
+be
+a4
+d7
+4c
+8e
+a7
+84
+a4
+64
+bc
+53
+0d
+d9
+75
+1d
+73
+7a
+91
+e6
+6a
+ba
+1e
+04
+af
+dc
+6b
+fc
+23
+1a
+5f
+08
+71
+20
+1e
+b1
+8f
+f2
+2e
+30
+1d
+1b
+bf
+0a
+35
+64
+e8
+9a
+a2
+d9
+60
+b9
+94
+41
+ab
+9f
+81
+92
+16
+ad
+36
+e2
+87
+1e
+1b
+ce
+ce
+08
+03
+ab
+f3
+68
+af
+05
+69
+19
+aa
+bb
+7d
+60
+b5
+05
+29
+b0
+2e
+71
+b7
+10
+62
+d4
+08
+b1
+30
+96
+08
+27
+b6
+56
+bd
+5e
+b2
+7b
+af
+03
+d0
+0a
+36
+0f
+4b
+64
+a8
+2e
+56
+ea
+3c
+79
+61
+d5
+20
+bc
+b3
+ba
+16
+ae
+61
+38
+21
+a6
+99
+91
+61
+57
+fa
+0e
+44
+16
+c2
+1e
+2f
+69
+a6
+d8
+96
+e0
+30
+aa
+07
+71
+96
+3e
+39
+10
+21
+4b
+47
+83
+85
+c5
+03
+76
+2a
+1b
+e0
+16
+7b
+a3
+b5
+96
+6d
+f9
+26
+51
+aa
+94
+d9
+b3
+1a
+90
+6d
+03
+61
+59
+9a
+5f
+58
+76
+38
+a9
+42
+07
+42
+ef
+ae
+68
+7b
+97
+74
+65
+41
+a1
+34
+ba
+5a
+76
+4b
+fc
+41
+fc
+0e
+94
+5f
+fe
+e0
+19
+22
+e2
+e0
+1d
+da
+ea
+0a
+3d
+4a
+a6
+c3
+d1
+89
+c9
+44
+5f
+9f
+ff
+11
+12
+b0
+47
+e0
+01
+27
+0c
+28
+9b
+cc
+34
+48
+45
+0b
+3e
+48
+3c
+fc
+67
+a8
+33
+46
+5e
+37
+b2
+b7
+a8
+2b
+26
+7a
+60
+4d
+78
+52
+7a
+f4
+27
+89
+2d
+86
+55
+21
+6b
+c7
+c1
+56
+d7
+68
+80
+2b
+ea
+d6
+1b
+6f
+3c
+98
+95
+3c
+f6
+ea
+a2
+47
+86
+5b
+0b
+09
+d1
+7c
+d9
+31
+20
+97
+65
+90
+80
+c4
+e5
+0f
+af
+b7
+df
+1b
+1f
+13
+3c
+40
+db
+c4
+c0
+25
+82
+98
+f5
+e2
+ba
+f2
+46
+41
+36
+7d
+3b
+4b
+15
+b5
+41
+46
+de
+f2
+ff
+7c
+aa
+cf
+02
+86
+26
+fb
+20
+87
+4e
+c9
+ca
+93
+cf
+6e
+c5
+18
+e6
+d2
+4e
+42
+9b
+15
+0c
+87
+14
+fe
+2f
+7f
+c0
+46
+4d
+e9
+51
+5b
+c7
+d7
+47
+bb
+88
+35
+65
+3a
+be
+05
+85
+9d
+fc
+5e
+dd
+9e
+cd
+ef
+5d
+0d
+7a
+7a
+a1
+b3
+56
+5a
+e3
+a2
+b1
+cb
+e0
+2b
+7d
+f6
+bf
+b0
+eb
+8e
+61
+cf
+e7
+7a
+10
+6f
+14
+2c
+2d
+60
+39
+2d
+07
+fb
+0d
+c1
+a6
+b5
+8d
+a8
+bb
+fe
+b8
+95
+cc
+d2
+d2
+77
+bc
+21
+c7
+9e
+c4
+a0
+c9
+f0
+04
+1c
+2c
+1a
+01
+43
+72
+8f
+85
+ca
+71
+de
+b0
+9f
+27
+ed
+04
+8a
+cf
+f4
+c1
+70
+e7
+93
+cb
+39
+a5
+74
+f2
+6a
+52
+0f
+f4
+86
+f1
+35
+03
+6b
+c8
+8e
+7e
+28
+55
+2e
+5b
+44
+15
+e6
+ac
+20
+ca
+2e
+4c
+30
+e7
+45
+39
+10
+6a
+a3
+63
+4c
+3a
+2b
+61
+50
+09
+01
+0a
+e6
+a2
+21
+dd
+dd
+bb
+f7
+9e
+13
+c3
+82
+56
+41
+36
+7e
+be
+39
+e2
+52
+08
+9b
+b0
+0c
+3a
+4e
+d6
+c0
+c4
+d3
+4f
+1e
+e3
+6a
+75
+73
+5b
+d9
+bd
+03
+7e
+7a
+b0
+3f
+86
+66
+20
+a3
+13
+81
+c8
+a0
+6d
+99
+1e
+31
+b6
+f9
+d6
+33
+b1
+29
+63
+bb
+f7
+38
+c3
+13
+ef
+40
+4f
+c9
+db
+b8
+93
+bb
+43
+25
+2b
+4f
+04
+18
+a2
+9b
+e8
+85
+5a
+77
+90
+3b
+6f
+e9
+52
+59
+58
+86
+9f
+33
+d1
+f6
+b0
+f7
+4f
+a6
+a8
+db
+c9
+79
+0a
+4d
+ec
+5c
+f4
+8c
+d8
+69
+6e
+a7
+04
+b7
+a5
+6e
+1d
+a7
+32
+36
+21
+0a
+83
+7b
+bf
+97
+3f
+c1
+a4
+8a
+06
+82
+62
+00
+7a
+23
+0a
+8c
+22
+13
+6e
+c2
+a7
+44
+61
+aa
+55
+40
+00
+00
+40
+01
+00
+00
+04
+20
+01
+00
+40
+19
+12
+40
+12
+00
+04
+00
+10
+04
+00
+00
+00
+08
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+20
+04
+00
+00
+00
+00
+00
+08
+00
+aa
+55
+08
+00
+8e
+48
+00
+89
+0f
+00
+00
+02
+1f
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+35
+0e
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+94
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+00
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+5f
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+6c
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6d
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+07
+00
+ab
+48
+ac
+01
+b4
+00
+d2
+00
+01
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+00
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+00
+aa
+55
+01
+00
+53
+46
+00
+aa
+55
+02
+00
+4f
+46
+58
+02
+aa
+55
+02
+00
+1e
+47
+70
+17
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+02
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+06
+00
+95
+4a
+ff
+ff
+29
+0e
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+01
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+01
+00
+14
+49
+81
+aa
+55
+01
+00
+13
+49
+80
+aa
+55
+02
+00
+16
+49
+80
+80
+aa
+55
+01
+00
+15
+49
+ff
+aa
+55
+04
+00
+18
+49
+80
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+07
+06
+ff
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+10
+11
+12
+13
+14
+15
+0c
+09
+0d
+03
+04
+c6
+c5
+c4
+c3
+80
+0a
+0b
+85
+83
+82
+81
+c7
+84
+0e
+0f
+ff
+ff
+aa
+55
+98
+00
+c7
+49
+48
+66
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+00
+35
+1e
+1a
+39
+16
+64
+1b
+00
+3a
+1f
+08
+3c
+07
+3d
+06
+00
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+b1
+7f
+e2
+00
+e6
+b0
+46
+89
+2a
+00
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+66
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+6b
+58
+52
+00
+50
+4a
+4d
+00
+e1
+e5
+00
+00
+00
+00
+00
+00
+e3
+00
+00
+00
+00
+00
+00
+00
+00
+e7
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+0f
+00
+84
+4a
+00
+fb
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+45
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+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
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+1c
+8b
+66
+be
Index: GK308_keyboard_only_24g/output/auth.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/auth.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/auth.rom	(working copy)
@@ -0,0 +1,1911 @@
+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
+f5
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+2a
+ff
+00
+81
+00
+c0
+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
+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
+41
+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
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+f3
+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
+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
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+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
+f3
+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: GK308_keyboard_only_24g/output/bt_format.meta
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_format.meta	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_format.meta	(working copy)
@@ -0,0 +1,8134 @@
+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_ucode_status
+0x01bc mem_spid_tbuf
+0x01bd mem_iicd_tbuf
+0x01bd mem_addr_hi
+0x01be mem_addr_mi
+0x01bf mem_addr_lo
+0x01c0 mem_iicd_addr
+0x01c1 mem_spid_rbuf
+0x01c5 mem_ucode_buf
+0x01c7 mem_ucode_len
+0x01c9 mem_sched_addr
+0x01cb mem_ucode_keybuf
+0x01db mem_otp_temp
+0x01fb mem_app_evt_timer_count
+0x01fc mem_input_store
+0x020c mem_ec_loopc
+0x020e mem_aes_cmac_data_length
+0x020f mem_dat
+0x026f mem_ax_256//32 bytes
+0x028f mem_ay_256// 32 bytes
+0x02af mem_az_256// 32 bytes
+0x02cf mem_bx_256// 32 bytes
+0x02ef mem_by_256// 31 bytes
+0x030f mem_bz_256//32 bytes
+0x030f mem_tmp1
+0x030f memahbak
+0x0327 mem_tmp5
+0x032f mem_cx_256//32 bytes
+0x034f mem_cy_256// 32 bytes
+0x036e mem_cy5_256// 1 byte
+0x036f mem_cz_256// 32 bytes
+0x038f mem_k_256//32 bytes
+0x03af mem_tmp1_256//32 bytes
+0x03cf mem_tmp5_256
+0x03ef mem_tmp2_256
+0x040f mem_tmp3_256
+0x040f mem_t1_256
+0x042f mem_tmp0_256
+0x042f mem_t0_256
+0x044f mem_t2_256
+0x046f mem_t3_256
+0x048f mem_t7_256
+0x04af mem_p
+0x04c7 mem_a
+0x04df mem_b
+0x04f7 mem_gx
+0x050f mem_gy
+0x0527 memh0
+0x0547 mem_p_256
+0x0567 mem_a_256
+0x0587 mem_gx_256
+0x05a7 mem_gy_256
+0x05c7 mem_le_slat
+0x05d7 mem_sp_state_start
+0x05d7 mem_sp_dhkey_invalid
+0x05d8 mem_gkey
+0x05dc mem_sp_state_end
+0x05dc mem_le_pubkey_remote_x_256
+0x05fc mem_le_pubkey_remote_y_256
+0x061c mem_le_dhkey_256
+0x063c mem_sp_confirm_remote
+0x064c mem_ipc_skip_continue_proc
+0x064d mem_fifo_temp
+0x064e mem_pdatatemp
+0x0656 mem_temp//8 bytes
+0x065e mem_timeup// 4 bytes
+0x0662 mem_rega//4 bytes
+0x0666 mem_regb//4 bytes
+0x066a mem_regc//3 bytes
+0x066d mem_contr//2 bytes
+0x066f mem_contw//2 bytes
+0x0671 mem_contus
+0x0673 mem_contue
+0x0675 mem_contu
+0x0677 mem_queue
+0x0679 mem_loopcnt
+0x067b mem_saved_gpio_in
+0x067f mem_module_rx_error_data_buffer
+0x067f mem_le_adv_channel_map_temp
+0x067f mem_le_data_len_temp//1byte
+0x067f mem_event_cmd_response_content//2byte
+0x067f mem_le_prand//16byte
+0x067f mem_AES_CMAC_k//16 bytes
+0x067f mem_regext_index//1 bytes
+0x067f mem_temp_block0
+0x0680 mem_le_data_temp//15bytes
+0x0680 mem_temp_block1
+0x068f mem_le_tx_buf_temp//48byte
+0x068f mem_le_aes_128//16byte
+0x068f mem_regext//64 bytes
+0x068f mem_AES_CMAC_k1//16 bytes
+0x068f mem_temp_block2
+0x069f mem_AES_CMAC_k2//16 bytes
+0x069f mem_temp_block3
+0x06af mem_AES_CMAC_temp// 16 bytes
+0x06af mem_temp_block4
+0x06bf mem_AES_CMAC_M_last// 16 bytes
+0x06bf mem_module_uart_cmd
+0x06c0 mem_module_uart_opcode
+0x06c1 mem_module_uart_len
+0x06c2 mem_module_temp_nl_discard_packet
+0x06c3 mem_temp_block5
+0x06cf mem_le_mackey//16 bytes
+0x06cf mem_app_receive_temp
+0x06cf mem_key_value_temp
+0x06d1 mem_key_value
+0x06d3 mem_key_value_temp1
+0x06d4 mem_key_value_temp2
+0x06d5 mem_key_value_temp3
+0x06d6 mem_key_value_temp4
+0x06d7 mem_key_value_temp5
+0x06d8 mem_key_value_temp6
+0x06d9 mem_temp_block6
+0x06df mem_scale_ratio
+0x06e2 mem_xcnt
+0x06e5 mem_scale_ratio_temp
+0x06e7 mem_hci_opcode_ocf
+0x06e9 mem_hci_opcode_ogf
+0x06ea mem_hci_event_head_type
+0x06eb mem_hci_event_head_event_code
+0x06ec mem_hci_event_para_total_length
+0x06ed mem_hci_command_complete_num_hci_command_packet
+0x06ee mem_hci_command_complete_command_opcode
+0x06ee mem_hci_opcode
+0x06f0 mem_hci_command_complete_return_parameter
+0x06f0 mem_hci_command_complete_return_parameter_status
+0x06f1 mem_hci_command_complete_return_parameter_chip_id
+0x06e7 mem_module_le_rx_data_len
+0x06e9 mem_module_le_rx_data_address
+0x06eb mem_module_le_rx_data_handle
+0x06e7 mem_init_cnt
+0x06e9 mem_data_pre
+0x06eb mem_data_current
+0x06ed mem_data_sum
+0x06f0 mem_data_value
+0x06e7 mem_malloc_rec_start
+0x06e7 mem_rec_queue_ota_sptr
+0x06e9 mem_rec_queue_ota_eptr
+0x06eb mem_rec_queue_ota_rptr
+0x06ed mem_rec_queue_ota_wptr
+0x06ef mem_rec_queue_ota_buf//1280
+0x06ef mem_rec_voice_raw_start
+0x06ef mem_rec_voice_raw
+0x0a0e mem_rec_voice_raw_end
+0x0a0f mem_rec_voice_queue_count
+0x0a10 mem_rec_queue_buf
+0x0a24 mem_rec_adpcm
+0x0a88 mem_rec_nec_rx_start
+0x0b87 mem_rec_nec_rx_end
+0x0b88 mem_rec_nec_rx_store_start
+0x0c87 mem_rec_nec_rx_store_end
+0x0c88 mem_rec_ota_flash_buf_head
+0x0c8c mem_rec_ota_flash_buf//300
+0x0c8c mem_rec_nec_flash_write_head
+0x0c90 mem_rec_nec_rx_info
+0x0c90 mem_rec_nec_rx_len
+0x0c91 mem_rec_nec_rx_perid_freq
+0x0c93 mem_rec_nec_rx_data
+0x0d92 mem_rec_nec_rx_analysis_end
+0x0d93 mem_rec_nec_rx_count
+0x0d94 mem_rec_nec_timer
+0x0d95 mem_rec_nec_timeout
+0x0d96 mem_rec_nec_usercode
+0x0d98 mem_rec_nec_datacode
+0x0d99 mem_rec_nec_learn_key_num
+0x0d9a mem_rec_nec_learn_key_state
+0x0d9b mem_rec_nec_learn_enable_flag
+0x0d9c mem_rec_nec_learn_timeout
+0x0da0 mem_rec_nec_learn_state
+0x0da1 mem_rec_period_cal
+0x0db5 mem_rec_period_cal_ptr
+0x0db7 mem_rec_period_cal_count
+0x0db8 mem_rec_nec_period_array
+0x0dcc mem_rec_nec_store_sptr
+0x0dce mem_rec_nec_store_eptr
+0x0dd0 mem_rec_nec_store_wptr
+0x0dd2 mem_rec_nec_receive_data0
+0x0dd3 mem_rec_nec_receive_data1
+0x0dd4 mem_rec_nec_receive_data2
+0x0dd5 mem_rec_nec_receive_data
+0x0dd8 mem_rec_nec_data
+0x0dd9 mem_rec_nec_period
+0x0dda mem_rec_nec_duty
+0x0ddb mem_rec_nec_freq
+0x0ddc mem_rec_nec_carry_time
+0x0dde mem_rec_nec_learn_stime
+0x0de2 mem_rec_nec_learn_ntime
+0x0de6 mem_rec_nec_learn_outtime
+0x0dea mem_rec_nec_learn_succ
+0x0deb mem_rec_nec_learn_succ_ptr
+0x0ded mem_rec_nec_learn_send_flag
+0x0dee mem_rec_nec_led_state
+0x0def mem_rec_nec_led_blink_count
+0x0df0 mem_malloc_rec_end
+0x06e7 mem_le_test_sync
+0x06e9 mem_le_test_pcnt
+0x06eb mem_tst_pktcnt_crc
+0x06ed mem_tst_pktcnt_dmh
+0x06ef mem_tmp_buffer_head
+0x06f2 mem_tmp_buffer
+0x06e7 mem_usb_status
+0x06e9 mem_usb_fifo_empty
+0x06ea mem_usb_read_len
+0x06ec mem_usb_txbuf
+0x072d mem_usb_txbuf1
+0x0737 mem_usb_txbuf2
+0x0741 mem_usb_rxbuf
+0x0781 mem_usb_rxbuf_end
+0x0782 mem_bufptr
+0x0784 mem_remain
+0x0785 mem_hidreportdesc_kb
+0x0787 mem_hidreportdesc_m
+0x0789 mem_devicedesc
+0x079c mem_confdesc
+0x07d8 mem_string0
+0x07dd mem_string1
+0x07fb mem_string2
+0x0819 mem_string3
+0x0837 mem_cb_usb_config
+0x0839 mem_usb_tx_interval
+0x083a mem_usb_vid_pid
+0x0843 mem_usb_zero_packet
+0x0845 mem_usb_ones_packet
+0x0847 mem_usb_two_packet
+0x0849 mem_usb0_state
+0x084a mem_usb_offline_check_gpio
+0x084b mem_usb_clear_mem_start
+0x084b mem_usb_setup
+0x084b mem_usb_setup_bmRequestType
+0x084c mem_usb_setup_bRequest
+0x084d mem_usb_setup_bValue
+0x084e mem_usb_setup_bValueH
+0x084f mem_usb_setup_wIndex
+0x0851 mem_usb_setup_bLength
+0x0852 mem_usb_setup_bLengthH
+0x0853 mem_usb0_set_report_data
+0x0893 mem_usb0_get_report_data
+0x08d3 mem_usb_setup_bValue_temp
+0x08d5 mem_usb0_get_set_report
+0x08d6 mem_usb0_data_ready_report
+0x08d7 mem_usb_tx_win_enable
+0x08d8 mem_usb_tx_mac_enable
+0x08d9 mem_usb_idle_flag
+0x08da mem_usb_idle_rate
+0x08db mem_usb_get_protocol_flag
+0x08dc mem_usb_set_protocol_status
+0x08dd mem_usb_set_protocol_value
+0x08de mem_usb_state
+0x08df mem_usb_remote_wakeup
+0x08e0 mem_usb_clear_remote_wakeup
+0x08e1 mem_sdsystem_wakeup_flag
+0x08e2 mem_usb_ep0_stall_status
+0x08e3 mem_usb_ep1_stall_status
+0x08e4 mem_usb_ep2_stall_status
+0x08e5 mem_usb_ep3_stall_status
+0x08e6 mem_dsc_info_data_pointer
+0x08e8 mem_dsc_info_len
+0x08e9 mem_usb_ep1_data
+0x08ea mem_usb_ep2_data
+0x08eb mem_usb_tx_enable
+0x08ec mem_usb_device_enumeration_endflag
+0x08ed mem_usb_wakestate_onetime_flag
+0x08ee mem_usb_mac_wakeup_trig
+0x08ef mem_usb_set_high_addr_flag
+0x08f0 mem_usb_clear_halt
+0x08f1 mem_usb_mouse_data
+0x0901 mem_usb_kb_data
+0x0911 mem_usb_kb_n_key_rollvoer_data
+0x0921 mem_usb_kb_multikey
+0x0929 mem_usb_kb_system
+0x0931 mem_usb_test_cnt
+0x0933 mem_usb_test_kb
+0x093d mem_usb_clear_mem_end
+0x093d mem_usb_ccid_buf
+0x097d mem_dg_rssi_noise_buffer
+0x0a7d mem_dg_rssi_noise_dg_buffer
+0x0b7d mem_dg_rssi_noise_ms_buffer
+0x0c7d 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
+0x068f mem_le_search_handle_start
+0x0691 mem_le_search_handle_end
+0x0693 mem_le_att_offset
+0x0693 mem_le_search_att_type_length
+0x0694 mem_le_search_att_type
+0x06a4 mem_le_curr_att_len
+0x06a5 mem_le_cur_attlist_start_ptr
+0x06a7 mem_le_cur_handle_start
+0x06a9 mem_le_cur_handle_end
+0x06ab mem_le_cur_uuid_length
+0x06ac mem_le_cur_uuid
+0x06bc 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
+0x01db mem_otp_adc
+0x01e3 mem_otp_adc_ratio
+0x01e4 mem_otp_coordinate
+0x01eb mem_otp_core_ldo
+0x01ec mem_otp_verf_bg
+0x01ed mem_otp_charge_pump
+0x01ee mem_otp_dpll_ibais
+0x01ef mem_otp_temp1
+0x01f7 mem_otp_hv_sel
+0x01f8 mem_otp_ldo_vsel
+0x01f9 mem_otp_load_delay
+0x01fa 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
+0x415d mem_otp_charge_pump_x
+0x415e mem_otp_dpll_ibais_x
+0x415f mem_xtal_freq
+0x4160 mem_version
+0x4161 mem_company_id
+0x4163 mem_sub_version
+0x4165 mem_le_dsniff
+0x4167 mem_le_conn_interval
+0x4169 mem_le_tx_ifs_defference
+0x416a mem_le_tx2m_delay
+0x416b mem_le_txheader
+0x416c mem_le_txlen
+0x416d mem_le_txpayload
+0x426d mem_le_name_len
+0x426e mem_le_name
+0x428c mem_le_ltk
+0x429c mem_ltk_exists
+0x429d mem_le_rconfirm
+0x42ad mem_le_srand
+0x42bd mem_le_iat
+0x42be mem_le_rat
+0x42bf mem_le_preq
+0x42c0 mem_le_preq_iocap
+0x42c1 mem_le_preq_oob
+0x42c2 mem_le_preq_auth
+0x42c3 mem_le_preq_max_keysize
+0x42c4 mem_le_preq_init_key_distribution
+0x42c5 mem_le_preq_resp_key_distribution
+0x42c6 mem_le_pres
+0x42c7 mem_le_pres_iocap
+0x42c8 mem_le_pres_oob
+0x42c9 mem_le_pres_auth
+0x42ca mem_le_pres_max_keysize
+0x42cb mem_le_pres_init_key_distribution
+0x42cc mem_le_pres_resp_key_distribution
+0x42cd mem_le_conn_param
+0x42cd mem_le_conn_peer_addr_type
+0x42ce mem_le_conn_peer_addr
+0x42d4 mem_le_conn_own_addr_type
+0x42d5 mem_le_interval_min
+0x42d7 mem_le_interval_max
+0x42d9 mem_le_latency
+0x42db mem_le_timeout
+0x42dd mem_le_lap
+0x42e0 mem_le_uap
+0x42e1 mem_le_nap
+0x42e3 mem_le_local_mtu
+0x42e5 mem_le_remote_mtu
+0x42e7 mem_le_skdm
+0x42ef mem_le_skds
+0x42f7 mem_le_init_superto
+0x42f9 mem_ui_le_uuid_table
+0x42fb mem_le_secure_connect_flag
+0x42fc mem_le_secure_connect_state
+0x42fd mem_le_sc_confirm_gkey_flag
+0x42fe mem_le_pairing_state
+0x42ff mem_le_enc_state
+0x4300 mem_le_pairing_mode
+0x4301 mem_le_tk
+0x4305 mem_le_ediv
+0x4307 mem_le_rand
+0x430f mem_le_irk
+0x431f mem_le_transmit_window
+0x4323 mem_le_configuration
+0x4324 mem_le_fixed_ltk
+0x4334 mem_le_pairing_handle
+0x4336 mem_le_packet_llid
+0x4337 mem_le_l2cap_size
+0x4339 mem_le_packet_len_recved
+0x433b mem_le_payload_ptr
+0x433d mem_le_testtype
+0x433e mem_cmd_le_create_conn
+0x433f mem_le_signaling_identifier
+0x4340 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x4342 mem_le_md_count
+0x4343 mem_ble_l2cap_tx_buff0_ptr
+0x4345 mem_ble_l2cap_tx_buff_size_ptr
+0x4347 mem_le_scan_enable
+0x4348 mem_le_scan_interval
+0x434a mem_le_scan_window
+0x434c mem_le_adv_data_len
+0x434d mem_le_adv_data
+0x436c mem_le_scan_data_len
+0x436d mem_le_scan_data
+0x438c mem_le_adv_enable
+0x438d mem_le_adv_param
+0x438d mem_le_adv_interval
+0x438f mem_le_adv_type
+0x4390 mem_le_adv_own_addr_type
+0x4391 mem_le_adv_direct_addr
+0x4397 mem_le_adv_channel_map
+0x4398 mem_le_scan_params
+0x4398 mem_le_scan_type
+0x4399 mem_le_scan_own_addr_type
+0x439a mem_le_l2cap_att_states
+0x439b mem_le_att_opcode
+0x439c mem_le_att_handle
+0x439e mem_le_search_res
+0x439f mem_le_notify_handle
+0x43a1 mem_le_search_uuid_length
+0x43a2 mem_le_search_uuid
+0x43b2 mem_le_local_feature
+0x43ba mem_le_tx_phys
+0x43bb mem_le_rx_phys
+0x43bc mem_remote_rx_max_octets
+0x43be mem_remote_rx_max_time
+0x43c0 mem_remote_tx_max_octets
+0x43c2 mem_remote_tx_max_time
+0x43c4 mem_local_rx_max_octets
+0x43c6 mem_local_rx_max_time
+0x43c8 mem_local_tx_max_octets
+0x43ca mem_local_tx_max_time
+0x43cc mem_ucode_ptr
+0x43ce mem_ucode_flag
+0x43cf mem_device_option
+0x43d0 mem_peripheral_lock_flag
+0x43d1 mem_bistfix_val
+0x43d1 mem_bistfix_addr_sched
+0x43d3 mem_bistfix_addr_x
+0x43d5 mem_bistfix_addr_patch
+0x43d7 mem_bistfix_val_xram
+0x43d8 mem_bistfix_val_patchram
+0x43dc mem_cb_check_wakelock
+0x43de mem_cb_before_hibernate
+0x43e0 mem_cb_before_lpm
+0x43e2 mem_cb_le_process
+0x43e4 mem_cb_idle_process
+0x43e6 mem_cb_bb_event_process
+0x43e8 mem_cb_att_write
+0x43ea mem_cb_ble_transmit
+0x43ec mem_cb_event_timer
+0x43ee mem_cb_bt_set_mult
+0x43f0 mem_cb_spi_flash_write_complate
+0x43f2 mem_cb_before_lpm_sleep
+0x43f4 mem_eeprom_base
+0x43f6 mem_wake_up_delay_timer
+0x43f7 mem_app_connection_options
+0x43f8 mem_app_disconn_reason
+0x43fa mem_app_disconn_reason_flag
+0x43fc mem_xrecord_mode
+0x43fd mem_eeprom_block_size
+0x43fe mem_spi_init_clk
+0x43ff mem_spi_init_delay_time
+0x4400 mem_spi_ncs_gpio
+0x4401 mem_nv_data_ptr
+0x4403 mem_nv_data_number
+0x4404 mem_queue_ptr
+0x4406 mem_reference_inter1p8v_2v_adc_io_data
+0x4408 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x440a mem_reference_inter1p8v_1v_adc_io_data
+0x440c mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x440e mem_adc_reference3v_ft_data
+0x440e mem_adc_reference3v_gpio1v_ft_data
+0x4410 mem_adc_reference3v_gpio2v_ft_data
+0x4412 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4414 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4416 mem_adc_reference3v_inter1v_ft_data
+0x4418 mem_adc_reference3v_inter1v_now_data
+0x441a mem_adc_reference_mode
+0x441b mem_reference_voltage
+0x441d mem_adc_config_flag
+0x441e mem_adc_channel
+0x441f mem_adc_clkdiv
+0x4420 mem_adc_current_value
+0x4422 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4423 mem_adc_saddr_ptr
+0x4425 mem_adc_eaddr_ptr
+0x4427 mem_adc_dma_enable
+0x4428 mem_adc_cal_c0
+0x4429 mem_adc_cal_c1
+0x442a mem_adc_cal_c2
+0x442b mem_adc_cal_c3
+0x442c mem_adc_cal_c4
+0x442d mem_adc_cal_c5
+0x442e mem_adc_cal_c6
+0x442f mem_adc_cal_c7
+0x4430 mem_spi_write_addr
+0x4433 mem_spi_write_ptr
+0x4435 mem_spi_write_len
+0x4437 mem_spi_write_flash_sm
+0x4438 mem_spi_cs_gpio
+0x4439 mem_spi_si_gpio
+0x443a mem_spi_so_gpio
+0x443b mem_spi_sclk_gpio
+0x443c mem_spi_wp_gpio
+0x443d mem_spi_hold_gpio
+0x443e mem_eeprom_wp_gpio
+0x443f mem_eeprom_scl_gpio
+0x4440 mem_eeprom_sda_gpio
+0x4441 mem_kscan_ptr
+0x4443 mem_key_num_ptr
+0x4443 mem_keyscan_ptr
+0x4445 mem_key_value_retention
+0x4447 mem_power_param_ptr
+0x4449 mem_seqi
+0x444a mem_set_cdb_on
+0x444b mem_syn_cal_ctrl
+0x444c mem_nec_decode_error_value
+0x444d mem_wdt_always_work
+0x444e mem_power_ctrl_disable
+0x444f mem_ring_ibias_trim
+0x4450 mem_ring_ibias_vtune_low
+0x4452 mem_ring_ibias_vtune_high
+0x4454 mem_ring_ibias_calc_adc_gpio
+0x4455 mem_ring_ibias_calc_adc_channel
+0x4456 mem_rf_debug_rx_gpio
+0x4457 mem_rf_debug_tx_gpio
+0x4458 mem_l2cap_xmem_start
+0x4458 mem_used_map
+0x4459 mem_tx_fifo0
+0x4459 mem_tx_fifo0_map
+0x445a mem_tx_fifo0_ptr
+0x445c mem_tx_fifo1
+0x445c mem_tx_fifo1_map
+0x445d mem_tx_fifo1_ptr
+0x445f mem_tx_fifo2
+0x445f mem_tx_fifo2_map
+0x4460 mem_tx_fifo2_ptr
+0x4462 mem_tx_fifo3
+0x4462 mem_tx_fifo3_map
+0x4463 mem_tx_fifo3_ptr
+0x4465 mem_tx_fifo_end
+0x4465 mem_l2cap_lpm_txbuf_ptr
+0x4467 mem_l2cap_xmem_end
+0x4467 mem_ccm_pcnt_tx
+0x446c mem_ccm_pcnt_rx
+0x4471 mem_ccm_last_mic
+0x4475 mem_ccm_iv
+0x4475 mem_ccm_ivm
+0x4479 mem_ccm_ivs
+0x447d mem_ccm_len
+0x447f mem_ccm_rx_ptr
+0x4481 mem_sc_only_mode
+0x4482 mem_sp_debug_mode
+0x4483 mem_secure_connections_enable
+0x4484 mem_sc_calc
+0x4485 mem_sc_local_key_invalid
+0x4486 mem_sc_private_key_256
+0x44a6 mem_sc_pubkey_local_x_256
+0x44c6 mem_sc_pubkey_local_y_256
+0x44e6 mem_sp_state_xmem
+0x44e6 mem_authentication_passkey_times
+0x44e7 mem_passkey_1bit
+0x44e8 mem_sp_state_xmem_end
+0x44e8 mem_ipc_lock_bt
+0x44e9 mem_ipc_lock_c51
+0x44ea mem_ipc_fifo_bt2c51
+0x44f2 mem_ipc_fifo_c512bt
+0x44fa mem_ui_button_timer
+0x44fb mem_ui_button_last_state
+0x44fc mem_ui_timer_last_btclk
+0x4500 mem_ui_state_map
+0x4502 mem_ui_button_timeout
+0x4503 mem_ui_button_gpio
+0x4504 mem_ui_led_init_state_set
+0x4505 mem_ui_led_struct_num
+0x4506 mem_ui_led_struct_ptr
+0x4508 mem_24g_lap
+0x450e mem_24g_rxbuf
+0x4530 mem_24g_txbuf
+0x4550 mem_24g_txpayload
+0x4574 mem_24g_rxpayload
+0x4594 mem_24g_rxdata_length
+0x4595 mem_24g_pid
+0x4596 mem_24g_no_ack
+0x4597 mem_24g_sta_crc
+0x459a mem_24g_last_crc
+0x459d mem_24g_sta_pid
+0x459e mem_24g_last_pid
+0x459f mem_24g_datalen
+0x45a0 mem_24g_data_type
+0x45a1 mem_24g_txlen
+0x45a2 mem_24g_rx_window
+0x45a4 mem_24g_ch
+0x45a5 mem_24g_current_ch_number
+0x45a6 mem_24g_addr
+0x45aa mem_24g_ch_map1
+0x45ae mem_24g_ch_map2
+0x45b2 mem_24g_ch_map3
+0x45b6 mem_24g_ch_map4
+0x45ba mem_24g_tx_btclk
+0x45be mem_24g_interval
+0x45bf mem_24g_interval_min
+0x45c0 mem_24g_interval_max
+0x45c1 mem_24g_syncword
+0x45c3 mem_24g_syncword_crc8
+0x45c4 mem_24g_get_syncword_crc8
+0x45c5 mem_24g_pair_switch
+0x45c6 mem_24g_enter_hibernate
+0x45ce mem_24g_rx_phy
+0x45cf mem_24g_tx_phy
+0x45d0 mem_24g_ch_map_update
+0x45d1 mem_24g_ch_update_map1
+0x45d5 mem_24g_ch_update_map2
+0x45d9 mem_24g_ch_update_map3
+0x45dd mem_24g_ch_update_map4
+0x45e1 mem_24g_disable_fec1
+0x45e2 mem_24g_off_type
+0x45e3 mem_24g_pair_addr
+0x45e7 mem_24g_pair_ch
+0x45e8 mem_24g_pair_tx_power
+0x45e9 mem_rssi_buff_index
+0x45ea mem_24g_device1_bind_step
+0x45eb mem_24g_device2_bind_step
+0x45ec mem_24g_bind_device_status
+0x45ed mem_24g_bind_payload
+0x45f5 mem_24g_device1_bind_disable
+0x45f6 mem_24g_device2_bind_disable
+0x45f7 mem_cb_24g_receive_process
+0x45f9 mem_cb_24g_ackpayload
+0x45fb mem_cb_24g_data_device1
+0x45fd mem_cb_24g_data_device2
+0x45ff mem_24g_rxdata_temp
+0x4621 mem_24g_abort_packet
+0x4622 mem_24g_hop_btclk
+0x4626 mem_24g_hop_interval
+0x4627 mem_24g_pair_mode
+0x4628 mem_24g_ackpayload_enable
+0x4629 mem_24g_hop_packet
+0x462a mem_24g_mode_switch
+0x462b mem_24g_nodata_timer_enable
+0x462c mem_24g_mode_init
+0x462d mem_24g_work_mode
+0x462e mem_24g_time_slice
+0x462f mem_24g_self_last_ch
+0x4630 mem_24g_self_ch_number
+0x4631 mem_24g_self_config_ch_once
+0x4632 mem_24g_device1_last_ch
+0x4633 mem_24g_device1_ch_number
+0x4634 mem_24g_device1_config_ch_once
+0x4635 mem_24g_device2_last_ch
+0x4636 mem_24g_device2_ch_number
+0x4637 mem_24g_device2_config_ch_once
+0x4638 mem_24g_led_status
+0x4639 mem_24g_bind_mode_continue
+0x463a mem_tx_power_temp
+0x463b mem_24g_mode_B_S_switch
+0x463c mem_24g_mode_B_S_switch_init
+0x463d mem_24g_mode_B_S_switch_cnt
+0x463f mem_24g_mode_B_S_switch_exit
+0x4640 mem_24g_B_S_time_slice
+0x4641 mem_24g_B_S_mode_switch_disable
+0x4642 mem_24g_bind_device_living
+0x4643 mem_24g_transmitter_addr
+0x4647 mem_24g_device1_addr
+0x464b mem_24g_device2_addr
+0x464f mem_rssi_noise_avg
+0x4650 mem_rssi_noise_index
+0x4651 mem_rssi_noise_self_avg
+0x4652 mem_rssi_noise_device1_avg
+0x4653 mem_rssi_noise_device2_avg
+0x4654 mem_rssi_noise_self_index
+0x4655 mem_rssi_noise_device1_index
+0x4656 mem_rssi_noise_device2_index
+0x4657 mem_rssi_noise_buffer_ptr
+0x4659 mem_rssi_noise_self_buffer_ptr
+0x465b mem_rssi_noise_device1_buffer_ptr
+0x465d mem_rssi_noise_device2_buffer_ptr
+0x465f mem_car_le_24g_tx_pair_mode
+0x4660 mem_car_le_24g_ch_count
+0x4662 mem_car_24g_addr_other
+0x4666 mem_car_24g_tx_payload_temp
+0x4672 mem_car_24g_rx_payload_temp
+0x467e mem_car_24g_loselink_count
+0x467f mem_car_ble_connted_flag
+0x4680 mem_car_full_control_remote_lap
+0x4684 mem_100ms_adv_control_timer
+0x4686 mem_100ms_factory_test_control_timer
+0x4688 mem_pwm_flag
+0x4689 mem_period_count
+0x468a mem_timer_count
+0x468b mem_car_motor_gpio_num
+0x468c mem_car_motor_gpio_map
+0x468c mem_car_motor_left_gpio
+0x468d mem_car_motor_right_gpio
+0x468e mem_car_motor_front_gpio
+0x468f mem_car_motor_back_gpio
+0x4690 mem_car_pwm_gpio
+0x4691 mem_otp_lot_xy_temp
+0x4697 mem_f_flag
+0x4698 mem_b_flag
+0x4699 mem_adv_control_start_flag
+0x469a mem_stop_4w1_flag
+0x469b mem_factory_control_flag
+0x469c mem_car_gpio_control_mode
+0x469d mem_car_le_queue_each_size
+0x469e mem_car_le_queue_length
+0x469f mem_car_le_queue_current_num
+0x46a0 mem_car_le_queue_read_ptr
+0x46a1 mem_car_le_queue_write_ptr
+0x46a2 mem_car_le_queue_ele
+0x46f2 mem_car_ble_write_data
+0x46fd mem_car_ble_att_list
+0x488d mem_otp_sys_cfg_temp
+0x48c9 mem_ad_indexTable
+0x48d9 mem_ad_stepsizeTable
+0x4a3d mem_ad_state_valpred
+0x4a41 mem_ad_state_index
+0x4a45 mem_ad_in_numSamples
+0x4a46 mem_ad_in_ptr
+0x4a48 mem_ad_out_ptr
+0x4a4a mem_ad_sign
+0x4a4b mem_ad_delta
+0x4a4c mem_ad_step
+0x4a50 mem_ad_valpred
+0x4a54 mem_ad_index
+0x4a58 mem_ad_vpdiff
+0x4a5c mem_ad_inputbuffer
+0x4a60 mem_ad_bufferstep
+0x465f mem_dg_kb_bind_flag
+0x4660 mem_dg_kb_data_sta_data
+0x4668 mem_dg_kb_data_last_data
+0x4670 mem_dg_kb_multikey_sta_data
+0x4673 mem_dg_kb_multikey_last_data
+0x4676 mem_dg_kb_system_sta_data
+0x4679 mem_dg_kb_system_last_data
+0x467c mem_dg_kb_blank_data_enable
+0x467d mem_dg_kb_mul_blank_data_enable
+0x467e mem_dg_kb_system_crtl_blank_data_enable
+0x467f mem_dg_ms_blank_data_enable
+0x4680 mem_dg_sys_config
+0x4681 mem_dg_usb_vid_pid
+0x468a mem_dg_usb_tx_interval
+0x468b mem_dg_usb_device_name
+0x46ab mem_dg_kb_bind_success
+0x46ac mem_dg_pc_sleep_flag
+0x46ad mem_dg_24g_tx_power_default
+0x46ae mem_dg_kb_bit_consumer_blank_data_enable
+0x46af mem_dg_kb_bit_consumer_sta_data
+0x46b3 mem_dg_kb_bit_consumer_last_data
+0x46b7 mem_dg_device_version
+0x45ea mem_rssi_hex_received
+0x45eb mem_24g_pair_sm
+0x45ec mem_24g_pair_no_ack
+0x45ed mem_24g_pair_timeout_init
+0x45ef mem_24g_pair_timeout
+0x45f1 mem_24g_pair_count
+0x45f3 mem_24g_reconn_timeout_init
+0x45f5 mem_24g_reconn_timeout
+0x45f7 mem_24g_reconn_count
+0x45f9 mem_24g_reconn_type
+0x45fa mem_24g_fast_conn_enable
+0x45fb mem_24g_fast_conn_addr
+0x45ff mem_24g_receiver_addr
+0x4603 mem_24g_fast_conn_temp_ch
+0x4604 mem_24g_receiver_temp_ch
+0x4605 mem_24g_device_temp_ch
+0x4606 mem_rssi_signal_index
+0x4607 mem_rssi_signal_buf_ptr
+0x4609 mem_cb_24g_transmit_data
+0x460b mem_cb_24g_search_receiver
+0x460d mem_cb_24g_lpm_before
+0x460f mem_cb_24g_transmit_short_sleep
+0x4611 mem_cb_24g_transmit_long_sleep
+0x4613 mem_24g_conn_sm
+0x4614 mem_24g_ensure
+0x4615 mem_24g_txfail_cnt
+0x4617 mem_24g_attempt_fail_flag
+0x4618 mem_24g_retry
+0x4619 mem_24g_abort_pac
+0x461a mem_24g_max_retry
+0x461b mem_24g_device_addr
+0x461f mem_24g_short_sleep_set
+0x4622 mem_24g_long_sleep_set
+0x462a mem_24g_long_sleep_set1
+0x462e mem_24g_pac_index
+0x462f mem_24g_transmit_by_interrupt
+0x4630 mem_24g_transmit_by_interrupt_exit_count
+0x4632 mem_24g_transmit_by_interrupt_exit_count_init
+0x4634 mem_24g_long_sleep_param_update_timer_init
+0x4636 mem_24g_long_sleep_param_update_timer
+0x4638 mem_24g_fast_hop_count
+0x4639 mem_24g_retransmit
+0x463b mem_rssi_avg_received
+0x463c mem_power_ctrl_level
+0x463d mem_power_ctrl_pac_succ_cnt
+0x463e mem_power_ctrl_pac_succ_cnt_init
+0x463f mem_rssi_dis_min_24g
+0x4640 mem_rssi_dis_max_24g
+0x4641 mem_rssi_hex_received_max_value
+0x4642 mem_rssi_dis_min_ble
+0x4643 mem_rssi_dis_max_ble
+0x4644 mem_device_vdd_calculate_set
+0x4644 mem_device_vdd_full_vol
+0x4646 mem_device_vdd_empty_vol
+0x4648 mem_device_vdd_low_vol
+0x464a mem_device_vdd_now_vol
+0x464c mem_adc_channel_gpio
+0x464d mem_adc_low_volatage_led_timer_count
+0x464e mem_device_adc_last_low_voltage_flag
+0x464f mem_device_discovery_timeout
+0x4651 mem_device_24g_pair_timeout_init
+0x4653 mem_device_direct_timeout
+0x4654 mem_device_24g_reconn_timeout_init
+0x4655 mem_device_24g_pair_tx_power
+0x4656 mem_device_normal_tx_power
+0x4657 mem_rssi_dis_min_24g_init
+0x4658 mem_rssi_dis_max_24g_init
+0x4659 mem_rssi_hex_received_max_value_init
+0x465a mem_rssi_dis_min_ble_init
+0x465b mem_rssi_dis_max_ble_init
+0x465c mem_mouse_key
+0x465d mem_mouse_x
+0x465f mem_mouse_y
+0x4661 mem_mouse_z
+0x4662 mem_mouse_tz
+0x4663 mem_mouse_xy_h
+0x4664 mem_mouse_key_last
+0x4665 mem_device_switch_gpio
+0x4666 mem_device_reuse_2ice_gpio
+0x4667 mem_sensor_motion_gpio
+0x4668 mem_whee_a_data_gpio
+0x4669 mem_whee_b_data_gpio
+0x466a mem_wheel_tb_old_pinlevel
+0x466b mem_wheel_tb_new_pinlevel
+0x466c mem_wheel_tog
+0x466d mem_mouse_tz_data
+0x466e mem_mwheel_b_old_pinlevel
+0x466f mem_mwheel_b_new_pinlevel
+0x4670 mem_mwheel_tog
+0x4671 mem_mouse_z_data
+0x4672 mem_mouse_wheel_trigger
+0x4673 mem_mouse_wheel_trigger_timer
+0x4674 mem_wire_usb_interval
+0x4675 mem_usb_addr
+0x4676 mem_usb_vdd_status
+0x4677 mem_usb_keyboard_flag
+0x4678 mem_device_information_start
+0x4678 mem_device_flag
+0x4679 mem_device1_type
+0x467a mem_device1_addr
+0x4680 mem_device1_locall_addr
+0x4686 mem_device2_type
+0x4687 mem_device2_addr
+0x468d mem_device2_locall_addr
+0x4693 mem_device3_type
+0x4694 mem_device3_addr
+0x469a mem_device3_locall_addr
+0x46a0 mem_store_flag
+0x46a2 mem_mouse_dpi
+0x46a3 mem_device_24g_addr
+0x46a7 mem_random_addr_increase_count
+0x46a9 mem_keyboard_24g_fn_lock
+0x46aa mem_keyboard_bt1_fn_lock
+0x46ab mem_keyboard_bt2_fn_lock
+0x46ac mem_keyboard_bt3_fn_lock
+0x46ad mem_keyboard_usb_fn_lock
+0x46ae mem_keyboard_bt1_computer_system
+0x46af mem_keyboard_bt2_computer_system
+0x46b0 mem_keyboard_bt3_computer_system
+0x46b1 mem_backlight_on_flag
+0x46b2 mem_backlight_on_type
+0x46b3 mem_backlight_on_level
+0x46b4 mem_backlight_breath_speed
+0x46b5 mem_mouse_retention
+0x46f8 mem_device_information_end
+0x46f8 mem_device_compare_addr
+0x46fe mem_flash_base
+0x4701 mem_write_flash_head_temp
+0x4705 mem_store_information_delay_timer
+0x4706 mem_store_information_delay_timer_init
+0x4707 mem_device_search_dongle_interval
+0x4708 mem_device_search_dongle_ch
+0x4709 mem_device_search_dongle_count
+0x470a mem_device_search_dongle_action
+0x470b mem_24g_enter_lpm_timer
+0x470c mem_mouse_24g_enter_lpm_enable
+0x470d mem_keyboard_led_status
+0x470e mem_mouse_flag
+0x4716 mem_device_number
+0x4717 mem_device_flag_temp
+0x4718 mem_device_otp_flag_temp
+0x4719 mem_device_fast_direct_timeout
+0x471a mem_device_24g_power_on_fast_conn_timer
+0x471c mem_device_24g_search_dongle_time_init
+0x471e mem_device_no_data_timeout
+0x4720 mem_device_direct_timer
+0x4721 mem_customer_key_press
+0x472b mem_customer_key
+0x472c mem_customer_data_trigger
+0x472d mem_customer_data_trigger_last
+0x472e mem_device_set_analog_bit_set
+0x4731 mem_bt_discovery_count
+0x4732 mem_select_device_count
+0x4733 mem_mouse_commbination_key
+0x4734 mem_select_device_button_statue
+0x4735 mem_commbination_key_statue
+0x4736 mem_combination_ui_button_count
+0x4737 mem_24g_shutdown_flag
+0x4738 mem_24g_long_sleep_set_level
+0x4739 mem_tx_power_factory_param
+0x473b mem_mouse_24g_long_sleep_flag
+0x473c mem_mouse_long_mult_count
+0x473d mem_mouse_long_mult_flag
+0x473e mem_mouse_current_mult_timer
+0x473f mem_reconn_times
+0x4740 mem_reconn_times_init
+0x4741 mem_device_no_data_timer
+0x4743 mem_mouse_rssi_signal_buf
+0x474b mem_btclk_sensor
+0x474f mem_device_fast_conn_flag
+0x4750 mem_device_discovery_timer
+0x4752 mem_device_need_soft_reset
+0x4753 mem_device_le_bb_connected_flag
+0x4754 mem_device_le_reconnect_flag
+0x4755 mem_device_send_secutiry_request_timer
+0x4756 mem_device_le_lap_temp
+0x4759 mem_le_adv_ind
+0x475c mem_le_adv_direct_ind
+0x475f mem_le_adv_swift_pair
+0x4773 mem_le_data_len
+0x4774 mem_le_keyboard_handle
+0x4776 mem_le_multimedia_handle
+0x4778 mem_le_systemctrl_handle
+0x477a mem_le_battery_level_handle
+0x477c mem_le_battery_level_percentage
+0x477d mem_le_battery_level_updata_timer_init
+0x477f mem_le_battery_level_updata_timer
+0x4781 mem_le_conn_param_reject
+0x4782 mem_le_tx_buffer0_omemalloc
+0x47c2 mem_le_tx_buffer1_omemalloc
+0x4802 mem_le_tx_buffer2_omemalloc
+0x4842 mem_le_tx_buffer3_omemalloc
+0x4882 mem_le_connect_status_flag
+0x4883 mem_le_start_encrypt_timer
+0x4884 mem_device_addr_temp
+0x488b mem_lpm_mult_init
+0x488c mem_qdec_set_flag
+0x488d mem_power_on_flag
+0x488e mem_keyboard_flag
+0x4896 mem_keyboard_switch_count_temp
+0x4897 mem_keyboard_switch_device_to_g24
+0x489a mem_keyboard_switch_device_to_bt1
+0x489d mem_keyboard_switch_device_to_bt2
+0x48a0 mem_keyboard_switch_device_to_bt3
+0x48a3 mem_keyboard_switch_device_to_usb
+0x48a6 mem_keyboard_switch_device_flag
+0x48a7 mem_keyboard_switch_g24_enable
+0x48a8 mem_keyboard_switch_bt_enable
+0x48a9 mem_keyboard_switch_g24_press_timer
+0x48aa mem_keyboard_switch_bt_press_timer
+0x48ab mem_keyboard_vdd_full_vol
+0x48ad mem_keyboard_vdd_empty_vol
+0x48af mem_keyboard_vdd_low_vol
+0x48b1 mem_keyboard_power_type
+0x48b2 mem_rgb_pwm_conf
+0x48b8 mem_rgb_pwm_breathe_flag
+0x48b9 mem_rgb_on_color_temp
+0x48ba mem_rgb_on_color
+0x48c1 mem_pwm_lpm_mode_flag
+0x48c2 mem_keyboard_rgb_on_timer
+0x48c4 mem_ui_check_timer_setup
+0x48c8 mem_customize_timer_setup
+0x48ca mem_backlight_breathe_type
+0x48cb mem_keyboard_le_lap_temp
+0x48ce mem_keyboard_le_change_vid_pid_flag
+0x48cf mem_keybaord_le_pnp_vid_source
+0x48d0 mem_keyboard_le_vid
+0x48d2 mem_keyboard_le_pid
+0x48d4 mem_keyboard_le_product_version
+0x48d6 mem_keyboard_le_hid_map
+0x48d8 mem_keyboard_blob_response_consumer_customize
+0x48ee mem_le_search_service_uuid
+0x48fe mem_le_connect_ios_mac_flag
+0x48ff mem_le_search_mac_uuid
+0x4901 mem_le_search_mac_manu_name
+0x490a mem_keybord_appearance
+0x490c mem_keyboard_le_send_conn_param_update
+0x490d mem_keyboard_le_send_conn_param_update_timer
+0x490e mem_le_start_auto_reco_timer
+0x490f mem_keyboard_pb_button_gpio
+0x4910 mem_mcu_stb_gpio
+0x4911 mem_mcu_clk_gpio
+0x4912 mem_mcu_rstb_gpio
+0x4913 mem_keyboard_num_led_gpio
+0x4914 mem_keyboard_caps_led_gpio
+0x4915 mem_keyboard_scroll_led_gpio
+0x4916 mem_keyboard_power_led_gpio
+0x4917 mem_keyboard_low_voltage_alarm_gpio
+0x4918 mem_keyboard_24g_led_gpio
+0x4919 mem_keyboard_bt1_led_gpio
+0x491a mem_keyboard_bt2_led_gpio
+0x491b mem_keyboard_bt3_led_gpio
+0x491c mem_keyboard_led_r_gpio
+0x491d mem_keyboard_led_g_gpio
+0x491e mem_keyboard_led_b_gpio
+0x491f mem_key_row_gpio
+0x4927 mem_key_col_gpio
+0x493c mem_key_excol_gpio
+0x4948 mem_kb_row_ptr
+0x494a mem_kb_col_ptr
+0x494c mem_kb_excol_ptr
+0x494e mem_keyscan_value_current
+0x4963 mem_keyscan_value_check
+0x4978 mem_keyscan_value_old
+0x498d mem_keyscan_exmcu_value
+0x4998 mem_keyscan_value_ptr
+0x499a mem_keyscan_exmcu_value_ptr
+0x499c mem_keyscan_value_temp
+0x499d mem_keyscan_col_loop_count
+0x499e mem_keyscan_exmcu_wait_wake_count
+0x49a0 mem_same_keyvalue_timerout_flag
+0x49a1 mem_same_keyvalue_timer_init
+0x49a3 mem_same_keyvalue_timer
+0x49a5 mem_keyboard_current_col_press_key_count
+0x49a6 mem_keyboard_all_press_key_count
+0x49a7 mem_keyboard_same_row_press_key_count
+0x49a8 mem_keyboard_ghost_flag
+0x49a9 mem_keyboard_data_change_flag
+0x49aa mem_keyboard_keyvalue_temp
+0x49ab mem_keyboard_press_flag_temp
+0x49ac mem_keyboard_keyvalue_bit_loop_count
+0x49ad mem_keyboard_keyvalue_buffer
+0x49b7 mem_keboard_n_key_rollover_send_flag
+0x49b8 mem_keyboard_n_key_rollover_data
+0x49c7 mem_keyboard_keyvalue_map
+0x4a6f mem_keyboard_tx_data
+0x4a79 mem_keyboard_data_send_flag
+0x4a7a mem_keyboard_fn_flag
+0x4a7b mem_keyboard_control_key_flag
+0x4a7c mem_keyboard_alt_flag
+0x4a7d mem_keyboard_shift_flag
+0x4a7e mem_keyboard_bt_button_flag
+0x4a7f mem_keyboard_pairing_type
+0x4a80 mem_24g_repeat_send_flag
+0x4a81 mem_keyboard_led_status_get
+0x4a82 mem_keyboard_led_status_get_timer
+0x4a83 mem_keyboard_led_status_get_timer_last
+0x4a84 mem_keyboard_fn_esc_f1_f12
+0x4a84 mem_keyboard_fn_first
+0x4a85 mem_keyboard_fn_esc
+0x4a86 mem_keyboard_fn_f1
+0x4a87 mem_keyboard_fn_f2
+0x4a88 mem_keyboard_fn_f3
+0x4a89 mem_keyboard_fn_f4
+0x4a8a mem_keyboard_fn_f5
+0x4a8b mem_keyboard_fn_f6
+0x4a8c mem_keyboard_fn_f7
+0x4a8d mem_keyboard_fn_f8
+0x4a8e mem_keyboard_fn_f9
+0x4a8f mem_keyboard_fn_f10
+0x4a90 mem_keyboard_fn_f11
+0x4a91 mem_keyboard_fn_f12
+0x4a92 mem_keyboard_fn_del
+0x4a93 mem_keyboard_fn_lock_flag
+0x4a94 mem_keyboard_fn_lock_keyvalue
+0x4a95 mem_keyboard_commbination_key_bt
+0x4a97 mem_keyboard_commbination_key_24g
+0x4a99 mem_keyboard_commbination_fast_conn_bt
+0x4a9b mem_keyboard_commbination_press_type
+0x4a9c mem_keyboard_commbination_key_step
+0x4a9d mem_keyboard_commbination_control_key_value
+0x4a9e mem_keyboard_commbination_standard_key_value
+0x4a9f mem_keyboard_commbination_control_key_delay_release_timer
+0x4aa0 mem_keyboard_consumer_key_status
+0x4aa1 mem_kb_computer_system
+0x4aa2 mem_keyboard_device_info_store_flag
+0x4aa3 mem_otp_store_device_info_flag
+0x4aa4 mem_otp_store_system_flag
+0x4aa5 mem_otp_read_retention_memory
+0x4abd mem_otp_read_retention_offset
+0x4abf mem_otp_read_retention_max_size
+0x4ac1 mem_keyboard_device_poweron_timer_init
+0x4ac2 mem_keyboard_device_poweron_timer
+0x4ac3 mem_keyboard_num_caps_scoll_led_on_timer
+0x4ac5 mem_keyboard_mode_led_on_timer
+0x4ac6 mem_keyboard_adc_low_volatage_led_timer_count
+0x4ac7 mem_adc_low_volatage_led_blink_timer
+0x4ac9 mem_keyboard_low_volatage_led_flag
+0x4aca mem_keyboard_low_volatage_led_blink_count
+0x4acb mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4acc mem_keyboard_pair_led_flag
+0x4acd mem_keyboard_pair_led_blink_count
+0x4ace mem_usb_vdd_status_current
+0x4acf mem_usb_vdd_status_last
+0x4ad0 mem_usb_wait_updata_timer
+0x4ad1 mem_keyboard_usb_vid_pid
+0x4ada mem_keyboard_recognition_code
+0x4adc mem_keyscan_exmcu_value_new
+0x4ae8 mem_keyboard_le_table
+0x4b99 mem_keyboard_delay_lpm_flag
+0x4b9a mem_keyboard_evt_btclk
+0x4b9e mem_keyboard_evt_timer_count
+0x4b9f mem_keyboard_scan_enter_lpm
+0x4ba0 mem_keyboard_reuse_led_bit
+0x4ba1 mem_keyboard_end
+0x488d mem_mouse_param_config
+0x488d mem_lbutton_gpio
+0x488e mem_mbutton_gpio
+0x488f mem_rbutton_gpio
+0x4890 mem_bk_button_gpio
+0x4891 mem_fw_button_gpio
+0x4892 mem_dpi_button_gpio
+0x4893 mem_mouse_sensor_sclk_gpio
+0x4894 mem_mouse_sensor_sdio_gpio
+0x4895 mem_select_sensor_angle_gpio
+0x4896 mem_sensor_angle_default
+0x4897 mem_sensor_angle_gnd
+0x4898 mem_sensor_angle_vin
+0x4899 mem_config_sensor_dpi
+0x489a mem_whee_ta_data_gpio
+0x489b mem_whee_tb_data_gpio
+0x489c mem_matrix_public_gpio
+0x489d mem_config_select_device_button_gpio
+0x489e mem_customer_key_gpio
+0x489f mem_firebutton_gpio
+0x48a0 mem_dpi_another_button_gpio
+0x48a1 mem_mouse_logo_led_gpio
+0x48a2 mem_mouse_1io2led_multi_24gled
+0x48a3 mem_mouse_1io2led_multi_bt1led
+0x48a4 mem_mouse_1io2led_multi_bt2led
+0x48a5 mem_mouse_low_voltage_alarm_gpio
+0x48a6 mem_mouse_dpi_gpio
+0x48a7 mem_mouse_param_config_end
+0x48a7 mem_device_temp_gpio
+0x48a8 mem_mouse_multi_led_blink_enable
+0x48a9 mem_mouse_multi_led_type
+0x48aa mem_mouse_multi_led_state
+0x48ab mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x48ac mem_mouse_le_reconn_blink_limit
+0x48ad mem_mouse_multi_led_powon_timer_init//power on time
+0x48ae mem_mouse_multi_led_powon_timer
+0x48af mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x48b0 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x48b1 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x48b2 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x48b3 mem_mouse_multi_led_blink_timer
+0x48b4 mem_mouse_low_led_blink_timer//low blink time
+0x48b5 mem_mouse_low_led_blink_half_timer
+0x48b6 mem_mouse_multi_24gled_blink_count_init//24g count
+0x48b7 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x48b8 mem_mouse_multi_led_blink_count
+0x48b9 mem_mouse_multi_lowled_blink_count_init//low count
+0x48ba mem_mouse_multi_low_led_blink_count
+0x48bb mem_mouse_logo_led_on_time_init
+0x48bd mem_mouse_dpi_led_delay_count
+0x48be mem_mouse_dpi_led_delay_count_init
+0x48bf mem_mouse_24g_fast_hop_count_2ms
+0x48c0 mem_mouse_24g_short_sleep_set_4ms
+0x48c3 mem_mouse_24g_long_sleep_set_4ms
+0x48c6 mem_mouse_24g_short_sleep_set_8ms
+0x48c9 mem_mouse_24g_long_sleep_set_8ms
+0x48cc mem_mouse_24g_tsniff
+0x48d0 mem_mouse_24g_tsniff_2ms
+0x48d4 mem_mouse_24g_tsniff_4ms
+0x48d8 mem_mouse_24g_tsniff_8ms
+0x48dc mem_mouse_24g_short_sleep_set_init
+0x48df mem_mouse_24g_tx_count
+0x48e0 mem_mouse_24g_tx_time_last
+0x48e6 mem_mouse_24g_tx_time_last_delt
+0x48ea mem_mouse_24g_tx_time_sum
+0x48ef mem_mouse_24g_tx_time_sum_count
+0x48f0 mem_mouse_24g_tx_time_offset
+0x48f1 mem_mouse_24g_sleep_miss
+0x48f2 mem_mouse_24g_sleep_time_temp
+0x48f6 mem_mouse_24g_sleep_miss_temp
+0x48fa mem_mouse_sleep_deal_type
+0x48fb mem_sensor_id1
+0x48fc mem_sensor_id2
+0x48fd mem_mouse_move_flag
+0x48fe mem_mouse_asm_flag
+0x48ff mem_mouse_x_pre
+0x4901 mem_mouse_y_pre
+0x4903 mem_mouse_data_xtemp
+0x4904 mem_mouse_data_ytemp
+0x4905 mem_mouse_dpi_seting
+0x4905 mem_320x_dpi_0
+0x4906 mem_320x_dpi_1
+0x4907 mem_320x_dpi_2
+0x4908 mem_320x_dpi_3
+0x4909 mem_3212_dpi_0
+0x490a mem_3212_dpi_1
+0x490b mem_3212_dpi_2
+0x490c mem_3212_dpi_3
+0x490d mem_ka8g2_dpi_0
+0x490e mem_ka8g2_dpi_1
+0x490f mem_ka8g2_dpi_2
+0x4910 mem_ka8g2_dpi_3
+0x4911 mem_sensor_s201_dpi
+0x4911 mem_sensor_s201_dpi_0
+0x4912 mem_sensor_s201_dpi_1
+0x4913 mem_sensor_s201_dpi_2
+0x4914 mem_sensor_s201_dpi_3
+0x4915 mem_sensor_s201_dpi_4
+0x4916 mem_mouse_cpi_count
+0x4917 mem_mouse_dpi_button_state
+0x4918 mem_mouse_dpi_long_press_flag
+0x4919 mem_sensor_3212_init
+0x4923 mem_sensor_3204_init
+0x492d mem_sensor_3205_init
+0x4937 mem_sensor_32xx_init
+0x4951 mem_sensor_32xx_init_1
+0x4973 mem_sensor_8650_init
+0x4991 mem_sensor_ka8ul_init
+0x49af mem_sensor_8009_init
+0x49bf mem_sensor_ka8g2_init
+0x49d1 mem_sensor_p6520_init
+0x49dd mem_sensor_ka5857_init
+0x49e9 mem_sensor_poweron_init
+0x49f1 mem_sensor_ka8g2_poweron_init
+0x49f9 mem_mouse_clear_sensor_data_flag
+0x49fa mem_config_sensor_type
+0x49fb mem_config_sensor_angle
+0x49fc mem_bluetooth_125hz_cnt
+0x49fd mem_customer_key_press_init
+0x4a07 mem_mouse_lkey_press_status
+0x4a08 mem_mouse_rkey_press_status
+0x4a09 mem_mouse_mkey_press_status
+0x4a0a mem_mouse_bkkey_press_status
+0x4a0b mem_mouse_fwkey_press_status
+0x4a0c mem_mouse_dpikey_press_status
+0x4a0d mem_mouse_pbkey_press_status
+0x4a0e mem_mouse_customerkey_press_status
+0x4a0f mem_mouse_key_temp
+0x4a10 mem_mouse_key_status
+0x4a11 mem_mouse_matrix_key_cow_count
+0x4a12 mem_mouse_matrix_key_row_count
+0x4a13 mem_mouse_ghost_flag
+0x4a14 mem_fire_key_status
+0x4a15 mem_fire_key_delay
+0x4a19 mem_fire_key_flag
+0x4a1a mem_dpi_another_press_status
+0x4a1b mem_dpi_another_button_state
+0x4a1c mem_dpi_another_button_down_enable
+0x4a1d mem_mouse_key_temp_patch
+0x4a1e mem_le_name_patch_len
+0x4a1f mem_le_name_patch
+0x4a32 mem_device_flag_last
+0x4a33 mem_device_flag_value
+0x4a34 mem_mouse_le_addr1_last
+0x4a3a mem_mouse_le_addr1_temp
+0x4a40 mem_mouse_le_locall_addr1_last
+0x4a46 mem_mouse_le_locall_addr1_temp
+0x4a4c mem_mouse_le_addr2_last
+0x4a52 mem_mouse_le_addr2_temp
+0x4a58 mem_mouse_le_locall_addr2_last
+0x4a5e mem_mouse_le_locall_addr2_temp
+0x4a64 mem_mouse_dpi_last
+0x4a65 mem_mouse_dpi_temp
+0x4a66 mem_mouse_otp_dpi_value
+0x4a67 mem_mouse_24g_addr_last
+0x4a6b mem_mouse_24g_addr_temp
+0x4a6f mem_random_addr_increase_count_last
+0x4a71 mem_random_addr_increase_count_temp
+0x4a73 mem_otp_offset_le_addr2
+0x4a75 mem_otp_offset_le_addr2_end
+0x4a77 mem_otp_offset_le_locall_addr2
+0x4a79 mem_otp_offset_le_locall_addr2_end
+0x4a7b mem_otp_offset_dpi
+0x4a7d mem_otp_offset_dpi_end
+0x4a7f mem_otp_offset_device_flag
+0x4a81 mem_otp_offset_device_flag_end
+0x4a83 mem_otp_offset_24g_addr
+0x4a85 mem_otp_offset_24g_addr_end
+0x4a87 mem_otp_offset_le_addr1
+0x4a89 mem_otp_offset_le_addr1_end
+0x4a8b mem_otp_offset_le_locall_addr1
+0x4a8d mem_otp_offset_le_locall_addr1_end
+0x4a8f mem_otp_offset_le_addr_increase_count
+0x4a91 mem_otp_offset_le_addr_increase_count_end
+0x4a93 mem_otp_offset_app_initflag
+0x4a95 mem_usb_tx_interval_retention
+0x4a96 mem_usb_vid_pid_retention
+0x4a9f mem_usb_device_name_retention
+0x4abd mem_mouse_commbination_key_bt
+0x4abe mem_mouse_commbination_key_24g
+0x4abf mem_mouse_commbination_key_dpi
+0x4ac0 mem_mouse_commbination_key_select_device
+0x4ac1 mem_mouse_commbination_dpi_timer
+0x4ac2 mem_mouse_commbination_select_device_timer
+0x4ac3 mem_mouse_commbination_key_count
+0x4ac4 mem_mouse_pair_flag
+0x4644 mem_remote_lpm_gpio_config_flag
+0x4648 mem_remote_lpm_gpio_config_io_temp
+0x4649 mem_24g_tx_led_map
+0x464a mem_24g_led_count
+0x464b mem_24g_lpm_timer_count
+0x464d mem_24g_lpm_enter_count
+0x464f mem_remote_otp_lot_xy_temp
+0x4655 mem_remote_full_control_remote_lap
+0x4659 mem_remote_car_key_conf0
+0x4659 mem_remote_car_key_conf0_pin
+0x465a mem_remote_car_key_conf1
+0x465a mem_remote_car_key_conf1_pin
+0x465b mem_remote_car_key_conf2
+0x465b mem_remote_car_key_conf2_pin
+0x465c mem_remote_car_key_conf3
+0x465c mem_remote_car_key_conf3_pin
+0x465d mem_remote_car_key_conf4
+0x465d mem_remote_car_key_conf4_pin
+0x465e mem_remote_car_key_conf5
+0x465e mem_remote_car_key_conf5_pin
+0x465f mem_remote_car_key_conf6
+0x465f mem_remote_car_key_conf6_pin
+0x4660 mem_remote_le_24g_recv_ack_flag
+0x4661 mem_key_public_gpio
+0x4662 mem_remote_mult_key
+0x4663 mem_remote_le_24g_ch_count
+0x4665 mem_le_24g_tx_send_flag
+0x4666 mem_remote_le_24g_tx_pair_mode
+0x4667 mem_remote_24g_addr_other
+0x466b mem_remote_24g_tx_payload_temp
+0x4677 mem_remote_24g_rx_payload_temp
+0x4508 mem_hci_uart_tx_gpio
+0x4509 mem_hci_uart_rx_gpio
+0x450a mem_hci_uart_rts_gpio
+0x450b mem_hci_uart_cts_gpio
+0x450c mem_hci_pwm_12mhz_gpio
+0x4508 mem_soft_version_num
+0x450a mem_module_wake_up_gpio
+0x450b mem_module_state_gpio
+0x450c mem_module_connect_state_gpio
+0x450d mem_current_packet_length
+0x450f mem_module_state
+0x4510 mem_module_mcu_wake_pin
+0x4511 mem_module_mcu_wake_delay_us
+0x4515 mem_module_le_lpm_mult
+0x4516 mem_module_bluetooth_stauts_by_command
+0x4517 mem_module_uart_rx_buffer
+0x4519 mem_module_uart_rx_buffer_end
+0x451b mem_module_uart_tx_buffer
+0x451d mem_module_uart_tx_buffer_end
+0x451f mem_module_uarta_baud_rate
+0x4521 mem_module_read_vdd_flag
+0x4522 mem_module_read_vdd_count
+0x4523 mem_module_vdd_quotient
+0x4524 mem_module_vdd_remainder
+0x4525 mem_module_ble_data_uart_max_length
+0x4526 mem_module_flag
+0x4528 mem_module_hci_notify_len
+0x4529 mem_module_hci_notify_handle
+0x452b mem_module_hci_nofiy_addr
+0x452d mem_module_hci_notify_type
+0x452e mem_le_conn_flag
+0x452f mem_module_le_att_list
+0x4787 mem_module_le_att_list_end
+0x4787 mem_module_nv_data
+0x4787 mem_module_nv_data0
+0x47a9 mem_module_nv_data1
+0x47cb mem_module_nv_data2
+0x47ed mem_module_nv_data3
+0x480f mem_module_nv_data4
+0x4831 mem_module_nv_data_end
+0x4508 mem_xmalloc_rec_start
+0x4508 mem_rec_le_att_list
+0x49c7 mem_rec_led_style
+0x49c7 mem_rec_led_style_type
+0x49c8 mem_rec_led_style_blink_count
+0x49c9 mem_rec_led_style_gpio
+0x49ca mem_rec_led_style_on_time
+0x49cc mem_rec_led_style_off_time
+0x49ce mem_rec_led_style_on_callback
+0x49d0 mem_rec_led_style_off_callback
+0x49d2 mem_rec_led2_style
+0x49d2 mem_rec_led2_style_type
+0x49d3 mem_rec_led2_style_blink_count
+0x49d4 mem_rec_led2_style_gpio
+0x49d5 mem_rec_led2_style_on_time
+0x49d7 mem_rec_led2_style_off_time
+0x49d9 mem_rec_led2_style_on_callback
+0x49db mem_rec_led2_style_off_callback
+0x49dd mem_rec_le_pair_led_style
+0x49dd mem_rec_le_pair_led_style_type
+0x49de mem_rec_le_pair_led_style_blink_count
+0x49df mem_rec_le_pair_led_style_gpio
+0x49e0 mem_rec_le_pair_led_style_on_time
+0x49e2 mem_rec_le_pair_led_style_off_time
+0x49e4 mem_rec_le_reconn_led_style
+0x49e4 mem_rec_le_reconn_led_style_type
+0x49e5 mem_rec_le_reconn_led_style_blink_count
+0x49e6 mem_rec_le_reconn_led_style_gpio
+0x49e7 mem_rec_le_reconn_led_style_on_time
+0x49e9 mem_rec_le_reconn_led_style_off_time
+0x49eb mem_rec_adc_low_led_style
+0x49eb mem_rec_adc_low_led_style_type
+0x49ec mem_rec_adc_low_led_style_blink_count
+0x49ed mem_rec_adc_low_led_style_gpio
+0x49ee mem_rec_adc_low_led_style_on_time
+0x49f0 mem_rec_adc_low_led_style_off_time
+0x49f2 mem_rec_ui_timer_btclk
+0x49f6 mem_rec_ui_timer_count
+0x49f7 mem_rec_cb_timer
+0x49f9 mem_rec_tscan_timer
+0x49fa mem_rec_tscan_timeout
+0x49fb mem_rec_tscan_row_nums
+0x49fc mem_rec_tscan_col_nums
+0x49fd mem_rec_tscan_col_gpio_ptr
+0x49ff mem_rec_tscan_row_scanned
+0x4a00 mem_rec_tscan_col_scanned
+0x4a01 mem_rec_tscan_record_row
+0x4a02 mem_rec_tscan_record_col
+0x4a03 mem_rec_tscan_row_gpio
+0x4a0d mem_rec_tscan_col_gpio
+0x4a17 mem_rec_tscan_sequence
+0x4a18 mem_rec_tscan_gpio_nums
+0x4a19 mem_rec_tscan_row_scan_loop_count
+0x4a1a mem_rec_key_state
+0x4a1a mem_rec_tscan_gndkey_state
+0x4a1b mem_rec_tscan_key_state
+0x4a1c mem_rec_tscan_record_temp
+0x4a1e mem_rec_tscan_key_need_send_flag
+0x4a1f mem_rec_tscan_current_key_num
+0x4a20 mem_rec_gpio_wakeup_source
+0x4a21 mem_rec_tscan_gndkey_record_temp
+0x4a22 mem_rec_tscan_gndkey_need_send_flag
+0x4a23 mem_rec_tscan_key_nums_list
+0x4a4b mem_rec_tscan_gndkey_nums_list
+0x4a55 mem_rec_tscan_key_num_bit
+0x4a5d mem_rec_tscan_combin_key_num_bit
+0x4a65 mem_rec_tscan_current_gpio_ptr
+0x4a67 mem_rec_tscan_record_now
+0x4a69 mem_rec_combin_key_timeout
+0x4a6a mem_rec_combin_key_timer
+0x4a6b mem_rec_gpio_bit_first
+0x4a6c mem_rec_gpio_bit_second
+0x4a6d mem_rec_gpio_bit_check
+0x4a6e mem_rec_gpio_for_wake_pullup
+0x4a6f mem_rec_keypad_type
+0x4a70 mem_rec_key_keyboard_value_list
+0x4b10 mem_rec_key_consumer_value_list
+0x4b40 mem_rec_key_mouse_value_list
+0x4b80 mem_rec_key_nec_value_list
+0x4bb0 mem_rec_key_press_le
+0x4bb0 mem_rec_key1_press_le
+0x4bb3 mem_rec_key2_press_le
+0x4bb6 mem_rec_key3_press_le
+0x4bb9 mem_rec_key4_press_le
+0x4bbc mem_rec_key5_press_le
+0x4bbf mem_rec_key6_press_le
+0x4bc2 mem_rec_key7_press_le
+0x4bc5 mem_rec_key8_press_le
+0x4bc8 mem_rec_key9_press_le
+0x4bcb mem_rec_key10_press_le
+0x4bce mem_rec_key11_press_le
+0x4bd1 mem_rec_key12_press_le
+0x4bd4 mem_rec_key13_press_le
+0x4bd7 mem_rec_key14_press_le
+0x4bda mem_rec_key15_press_le
+0x4bdd mem_rec_key16_press_le
+0x4be0 mem_rec_key17_press_le
+0x4be3 mem_rec_key18_press_le
+0x4be6 mem_rec_key19_press_le
+0x4be9 mem_rec_key20_press_le
+0x4bec mem_rec_key21_press_le
+0x4bef mem_rec_key_release_le
+0x4bf2 mem_rec_key_map
+0x4c07 mem_rec_gnd_key_offset
+0x4c08 mem_rec_keypad_fun
+0x4c09 mem_rec_le_enable_notify
+0x4c0a mem_rec_le_data_len
+0x4c0b mem_rec_le_connect_state
+0x4c0c mem_rec_report_id1_handle
+0x4c0e mem_rec_report_id2_handle
+0x4c10 mem_rec_report_id3_handle
+0x4c12 mem_rec_report_id4_handle
+0x4c14 mem_rec_queue_each_size
+0x4c15 mem_rec_queue_length
+0x4c16 mem_rec_queue_curr_num
+0x4c17 mem_rec_queue_read_ptr
+0x4c18 mem_rec_queue_write_ptr
+0x4c19 mem_rec_queue_ele
+0x4c39 mem_rec_ad_indexTable1
+0x4c49 mem_rec_ad_stepsizeTable1
+0x4dad mem_rec_ad_state_valpred1
+0x4db1 mem_rec_ad_state_index1
+0x4db5 mem_rec_ad_in_numSamples1
+0x4db6 mem_rec_ad_in_ptr1
+0x4db8 mem_rec_ad_out_ptr1
+0x4dba mem_rec_ad_sign1
+0x4dbb mem_rec_ad_delta1
+0x4dbc mem_rec_ad_step1
+0x4dc0 mem_rec_ad_valpred1
+0x4dc4 mem_rec_ad_index1
+0x4dc8 mem_rec_ad_vpdiff1
+0x4dcc mem_rec_ad_inputbuffer1
+0x4dd0 mem_rec_ad_bufferstep1
+0x4dd1 mem_rec_ad_val1
+0x4dd5 mem_rec_ad_outputbuffer1
+0x4dd9 mem_rec_ad_diff1
+0x4ddd mem_rec_voice_enable
+0x4dde mem_rec_voice_notify
+0x4df2 mem_rec_adc_dma_rptr
+0x4df4 mem_rec_voice_notify_apk_handle
+0x4df6 mem_rec_voice_notify_box_handle
+0x4df8 mem_rec_control_notify_apk_handle
+0x4dfa mem_rec_control_notify_box_handle
+0x4dfc mem_rec_white_list_num
+0x4dfd mem_rec_le_scan_filter_policy
+0x4dfe mem_rec_white_list_flash_write_head
+0x4e02 mem_rec_white_list
+0x4e32 mem_rec_le_req_type
+0x4e33 mem_rec_nec_send_gpio
+0x4e34 mem_rec_nec_receive_gpio
+0x4e35 mem_rec_ota_write_index
+0x4e37 mem_rec_ota_write_length
+0x4e3b mem_rec_ota_write_data_addr
+0x4e3d mem_rec_ota_write_flash_addr
+0x4e40 mem_rec_ota_write_flash_addr_start
+0x4e43 mem_rec_ota_total_sum
+0x4e47 mem_rec_ota_update_flash_mode
+0x4e48 mem_rec_ota_version
+0x4e4a mem_rec_ota_buck_size
+0x4e4c mem_rec_ota_packet_max_len
+0x4e4e mem_rec_ota_work_mode
+0x4e4f mem_rec_ota_notify_handle
+0x4e51 mem_rec_ota_notify_opcode
+0x4e52 mem_rec_ota_notify_result
+0x4e53 mem_rec_ota_notify_data
+0x4e5c mem_rec_ota_le_conn_update_param
+0x4e5c mem_rec_ota_le_interval_min
+0x4e5e mem_rec_ota_le_interval_max
+0x4e60 mem_rec_ota_le_latency
+0x4e62 mem_rec_ota_le_timeout
+0x4e64 mem_rec_ota_reset_timeout
+0x4e65 mem_rec_ota_le_conn_param_update
+0x4e66 mem_rec_ota_enable
+0x4e67 mem_rec_le_packet_size
+0x4e68 mem_rec_ota_flash_base_addr
+0x4e6b mem_rec_ota_flash_offset_addr
+0x4e6e mem_rec_queue_ota_count
+0x4e70 mem_rec_ota_queue_size
+0x4e72 mem_rec_code_a_flash_addr
+0x4e75 mem_rec_code_b_flash_addr
+0x4e78 mem_xmalloc_rec_end
+0x4508 mem_ble_shutter_enable_notify
+0x4509 mem_ble_shutter_reconn_adv_interval
+0x450b mem_ble_shutter_discovery_adv_interval
+0x450d mem_ble_shutter_reconn_timeout
+0x450f mem_ble_shutter_reconn_timer
+0x4511 mem_ble_shutter_reconn_blink_on_time
+0x4513 mem_ble_shutter_reconn_blink_off_time
+0x4515 mem_ble_shutter_discovery_blink_on_time
+0x4517 mem_ble_shutter_discovery_blink_off_time
+0x4519 mem_ble_shutter_interval_min
+0x451b mem_ble_shutter_interval_max
+0x451d mem_ble_shutter_latency
+0x451f mem_ble_shutter_timeout
+0x4521 mem_ble_shutter_interval_min_new
+0x4523 mem_ble_shutter_interval_max_new
+0x4525 mem_ble_shutter_latency_new
+0x4527 mem_ble_shutter_timeout_new
+0x4529 mem_ble_shutter_discovery_timeout
+0x452b mem_ble_shutter_connect_timeout
+0x452d mem_shutter_sleep_timeout
+0x452f mem_shutter_sleep_timer
+0x4531 mem_shutter_hard_soft_switch_case
+0x4532 mem_shutter_soft_switch_button_gpio
+0x4533 mem_shutter_soft_switch_power_state
+0x4534 mem_shutter_soft_switch_poweron_time
+0x4535 mem_shutter_soft_switch_poweroff_time
+0x4536 mem_shutter_soft_switch_poweron_callback_function
+0x4538 mem_shutter_soft_switch_poweroff_callback_function
+0x453a mem_shutter_keyscan
+0x453a mem_shutter_key_num
+0x453b mem_cb_shutter_keycan
+0x453d mem_shutter_key_conf0
+0x453e mem_shutter_key_conf1
+0x453f mem_key0_press
+0x4544 mem_key1_press
+0x4549 mem_key2_press
+0x454e mem_key0_release
+0x4553 mem_key1_release
+0x4558 mem_key2_release
+0x455d mem_ble_data_buffer1
+0x4562 mem_ble_data_buffer2
+0x4567 mem_ble_data_buffer3
+0x456c mem_ble_data_buffer4
+0x4571 mem_ble_data_buffer5
+0x4576 mem_ble_data_buffer6
+0x457b mem_ble_data_buffer7
+0x4580 mem_ble_data_buffer8
+0x4585 mem_ble_data_buffer9_58
+0x45b7 mem_queue_each_size
+0x45b8 mem_queue_length
+0x45b9 mem_queue_curr_num
+0x45ba mem_queue_read_ptr
+0x45bb mem_queue_write_ptr
+0x45bc mem_queue_ele
+0x45dc mem_shutter_nv_data
+0x4686 mem_shutter_led_struct_app_led
+0x4686 mem_shutter_led_struct_app_led_type
+0x4687 mem_shutter_led_struct_app_led_blink_count
+0x4688 mem_shutter_led_struct_app_led_gpio
+0x4689 mem_shutter_led_struct_app_led_on_time
+0x468b mem_shutter_led_struct_app_led_off_time
+0x468d mem_shutter_led_struct_app_led_on_callback
+0x468f mem_shutter_led_struct_app_led_off_callback
+0x4691 mem_shutter_power_off_led_style
+0x4691 mem_shutter_power_off_led_style_type
+0x4692 mem_shutter_power_off_led_style_blink_count
+0x4693 mem_shutter_power_off_led_style_gpio
+0x4694 mem_shutter_power_off_led_style_on_time
+0x4696 mem_shutter_power_off_led_style_off_time
+0x4698 mem_shutter_power_off_led_style_on_callback
+0x469a mem_shutter_power_off_led_style_off_callback
+0x469c mem_shutter_soft_swtich_botton_down
+0x469d mem_shutter_soft_swtich_led_struct_temp
+0x46a8 mem_shutter_power_off_timeout
+0x46a9 mem_shutter_power_off_timer
+0x46aa mem_shutter_key_conf0_temp
+0x46ac mem_shutter_led_struct_app_led_gpio_temp
+0x46ad mem_shutter_hard_soft_switch_case_temp
+0x46ae mem_shutter_soft_switch_button_gpio_temp
+0x46af mem_shutter_soft_switch_first_power_on
+0x46b0 mem_shutter_dy_conf
+0x46b1 mem_shutter_1s_timer
+0x46b2 mem_shutter_timer_625us
+0x46b4 mem_rf_init_data_new
+0x46bf mem_key_value_xmem
+0x46c1 mem_shutter_le_hid_map
+0x47a7 mem_shutter_le_uuid_sup
+0x4943 mem_shutter_le_map_len_android
+0x4945 mem_shutter_le_map_len_ios
+0x4947 mem_dy_le_search_service_uuid
+0x4957 mem_iphone_flag
+0x4958 mem_send_data_delay
+0x4959 mem_key_send_clk
+0x495d mem_shutter_key_state0
+0x4967 mem_shutter_key_state1
+0x4971 mem_shutter_key_state2
+0x497b mem_shutter_key_state3
+0x4985 mem_shutter_key_state4
+0x498f mem_shutter_key_state5
+0x4999 mem_shutter_key_state6
+0x49a3 mem_shutter_key_state7
+0x49ad mem_shutter_key_state8
+0x49b7 mem_dy_key0_press
+0x49c1 mem_dy_key1_press
+0x49cb mem_dy_key2_press
+0x49d5 mem_dy_key3_press
+0x49df mem_dy_key4_press
+0x49e9 mem_dy_key5_press
+0x49f3 mem_dy_key6_press
+0x49fd mem_dy_key7_press
+0x4a07 mem_dy_key8_press
+0x4a11 mem_key0_release_new
+0x4a20 mem_key1_release_new
+0x4a2f mem_key2_release_new
+0x4a3e mem_key3_release_new
+0x4a4d mem_key4_release_new
+0x4a5c mem_key5_release_new
+0x4a6b mem_key6_release_new
+0x4a7a mem_key7_release_new
+0x4a89 mem_key8_release_new
+0x4a98 mem_key0_long_press
+0x4a9b mem_key1_long_press
+0x4a9e mem_key2_long_press
+0x4aa1 mem_key3_long_press
+0x4aa4 mem_key4_long_press
+0x4aa7 mem_key5_long_press
+0x4aaa mem_key6_long_press
+0x4aad mem_key7_long_press
+0x4ab0 mem_key8_long_press
+0x4ab3 mem_key0_long_release
+0x4ab6 mem_key1_long_release
+0x4ab9 mem_key2_long_release
+0x4abc mem_key3_long_release
+0x4abf mem_key4_long_release
+0x4ac2 mem_key5_long_release
+0x4ac5 mem_key6_long_release
+0x4ac8 mem_key7_long_release
+0x4acb mem_key8_long_release
+0x4ace mem_combine_key0
+0x4ad0 mem_combine_key1
+0x4ad2 mem_combine_key2
+0x4ad4 mem_combine_key3
+0x4ad6 mem_combine_key4
+0x4ad8 mem_combine_key5
+0x4ada mem_combine_key_state0
+0x4adc mem_combine_key0_press
+0x4ae6 mem_combine_key1_press
+0x4af0 mem_combine_key2_press
+0x4afa mem_combine_key3_press
+0x4b04 mem_combine_key4_press
+0x4b0e mem_combine_key5_press
+0x4b18 mem_combine_key_release
+0x4b22 mem_shutter_move_data
+0x4b26 mem_key0_press_i
+0x4b30 mem_key1_press_i
+0x4b3a mem_key2_press_i
+0x4b44 mem_key3_press_i
+0x4b4e mem_key4_press_i
+0x4b58 mem_key5_press_i
+0x4b62 mem_key6_press_i
+0x4b6c mem_key7_press_i
+0x4b76 mem_key0_release_new_i
+0x4b85 mem_key1_release_new_i
+0x4b94 mem_key2_release_new_i
+0x4ba3 mem_key3_release_new_i
+0x4bb2 mem_key4_release_new_i
+0x4bc1 mem_key5_release_new_i
+0x4bd0 mem_key6_release_new_i
+0x4bdf mem_key7_release_new_i
+0x4bee mem_key8_release_new_i
+0x4bfd mem_key0_long_press_i
+0x4c00 mem_key1_long_press_i
+0x4c03 mem_key2_long_press_i
+0x4c06 mem_key3_long_press_i
+0x4c09 mem_key4_long_press_i
+0x4c0c mem_key5_long_press_i
+0x4c0f mem_key6_long_press_i
+0x4c12 mem_key7_long_press_i
+0x4c15 mem_key8_long_press_i
+0x4c18 mem_key0_long_release_i
+0x4c1b mem_key1_long_release_i
+0x4c1e mem_key2_long_release_i
+0x4c21 mem_key3_long_release_i
+0x4c24 mem_key4_long_release_i
+0x4c27 mem_key5_long_release_i
+0x4c2a mem_key6_long_release_i
+0x4c2d mem_key7_long_release_i
+0x4c30 mem_key8_long_release_i
+0x4c33 mem_key3_release_new_t
+0x4c3d mem_key3_release_new_i_t
+0x4c47 mem_key3_press_count
+0x4c48 mem_shutter_like_timeout
+0x4c49 mem_shutter_key_pressed
+0x4c4a mem_shutter_combine_key_release
+0x4c4b mem_shutter_mousekey_value_list
+0x4e71 mem_shutter_back_count
+0x4e72 mem_shutter_le_conned
+0x4e73 mem_move_config
+0x4e73 mem_shutter_iphone_beyond_x_count
+0x4e74 mem_shutter_iphone_beyond_y_count
+0x4e75 mem_shutter_move_data_x
+0x4e77 mem_shutter_move_data_y
+0x4e79 mem_last_shutter_le_iphone_flag
+0x4e7a mem_move_config_end
+0x4e7a mem_shutter_back_count_cache
+0x4e7b mem_shutter_iphone_beyond_x_cache
+0x4e7c mem_shutter_iphone_beyond_y_cache
+0x4e7d mem_shutter_iphone_move_mid
+0x4e87 mem_shutter_long_key_released_flag
+0x4e88 mem_shutter_move_mid_timer
+0x4e89 mem_shutter_pairing_success
+0x4e8a mem_combine_key_release_value
+0x4e8c mem_last_press_key_value
+0x4e8d mem_shutter_first_move
+0x4e8e mem_move_mode_set
+0x4e8f mem_move_mode_key_index
+0x4e90 mem_move_mode_trigger_enable
+0x4e91 mem_shutter_android_move_mid
+0x4e96 mem_shutter_iphone_up_mid
+0x4ea0 mem_shutter_iphone_like_mid
+0x4eaa mem_shutter_key_num_conf
+0x4eab mem_shutter_dy_key_conf
+0x4eb4 mem_le_dy_adv_data
+0x4ebf mem_le_dy_scan_data
+0x4ecb mem_ble_shutter_dy_interval_min_android
+0x4ed3 mem_ble_shutter_dy_interval_min_ios
+0x4edb mem_shutter_ble_discovery_time_conf
+0x4ee3 mem_queue_dy_each_size
+0x4ee5 mem_shutter_led_on_light_dark_led_conf
+0x4eec mem_shutter_led_off_light_dark_led_conf
+0x4ef3 mem_shutter_reconn_blink_on_time_conf
+0x4ef7 mem_shutter_discovery_blink_on_time_conf
+0x4efb mem_shutter_efuse_start_offset
+0x4efd mem_shutter_efuse_end_offset
+0x4eff mem_initial_move_conf
+0x4eff mem_android_initial_move_x
+0x4f01 mem_android_initial_move_y
+0x4f03 mem_iphone_initial_move_x
+0x4f05 mem_iphone_initial_move_y
+0x4f07 mem_otp_move_config
+0x4f07 mem_otp_shutter_move_data_x
+0x4f09 mem_otp_shutter_move_data_y
+0x4f0b mem_otp_last_shutter_le_iphone_flag
+0x4f0c mem_otp_move_config_end
+0x4f0c mem_otp_write_offset_addr
+0x4f0e mem_otp_read_offset_addr
+0x4f10 mem_otp_read_ios_android_addr
+0x4f12 mem_shutter_le_pairing_handle
+0x4f14 mem_shutter_temp_count
+0x4f16 mem_shutter_first_read_flag
+0x4f17 mem_shutter_valid_data_flag
+0x4f18 mem_shutter_volume_timer
+0x4f19 mem_shutter_link_timer
+0x4f1a mem_shutter_link_data
+0x4f22 mem_shutter_link_data_i
+0x4f2a mem_shutter_link_loop_flag
+0x4f2b mem_shutter_dy_le_enc_timer
+0x4f2c mem_shutter_end
+
+
+	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
+16 mark_adv
+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
+6 G24_TIMER_KB_BIT_CONSUMER_BLANK
+13 G24_TIMER_MS_BLANK
+12 G24_TIMER_KB_MUL_BLANK
+10 G24_TIMER_KB_SYS_CRTL_BLANK
+14 G24_TIMER_KB_BLANK
+
+1 USB_TIMER_NAK
+15 USB_TIMER_WAKEUP
+)
+
+(
+
+27 hci_cmd_le_create_conn
+29 hci_cmd_le_disconn
+30 hci_cmd_le_att_req
+)
+
+
+
+
+(
+0 mode_le
+1 mode_master
+)
+
+(
+0 state_inconn
+1 state_insniff
+)
+(
+3 op_disconn
+)
+
+
+
+//mem_lpm_wake_lock
+(
+0 wake_lock_ble_rx
+1 wake_lock_ble_tx
+
+3 wake_lock_key_press
+4 wake_lock_ble_tx_patch
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(//mem_fcomp_div
+0x18 XTAL_24M
+0x10 XTAL_16M
+)
+
+( //verion
+6 BLUETOOTH_CORE_SPECIFICATION_4_0
+7 BLUETOOTH_CORE_SPECIFICATION_4_1
+8 BLUETOOTH_CORE_SPECIFICATION_4_2
+9 BLUETOOTH_CORE_SPECIFICATION_5_0
+10 BLUETOOTH_CORE_SPECIFICATION_5_1
+)
+
+(
+0x050e COMPANY_ID_YICHIP
+)
+
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+)
+
+
+
+
+
+
+
+
+
+(//mem_le_T_IFS
+150 PARAM_T_IFS_150US
+20000 PARAM_20MS_INIT
+-11 PARAM_SYNC_TIME_DIFFERENCE
+40 PARAM_CODED_C1_TERM1_TIME_40US
+1666 PARAM_WINDOWN_SIZE
+//T_IFS = 150-modem(CRC time)
+15000 param_sifs
+)
+
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+	//BLE ErrorCodes
+	(    
+	0x01 ERROR_UNKNOWN_HCI_COMMAND
+	0x02 ERROR_NO_CONNECTION
+	0x03 ERROR_HARDWARE_FAILURE
+	0x04 ERROR_PAGE_TIMEOUT
+	0x05 ERROR_AUTHENTICATION_FAILURE
+	0x06 ERROR_KEY_MISSING
+	0x07 ERROR_MEMORY_FULL
+	0x08 ERROR_CONNECTION_TIMEOUT
+	0x09 ERROR_MAX_CONNECTIONS
+	0x0A ERROR_MAX_SCO_CONNECTIONS
+	0x0B ERROR_MAX_ACL_CONNECTIONS
+	0x0C ERROR_COMMAND_DISALLOWED
+	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
+	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
+	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+	0x10 ERROR_HOST_TIMEOUT
+	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
+	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
+	0x14 ERROR_REMOTE_LOW_RESOURCES
+	0x15 ERROR_REMOTE_POWERING_OFF
+	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+	0x17 ERROR_REPEATED_ATTEMPTS
+	0x18 ERROR_PAIRING_NOT_ALLOWED
+	0x19 ERROR_UNKNOWN_LMP_PDU
+	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
+	0x1B ERROR_SCO_OFFSET_REJECTED
+	0x1C ERROR_SCO_INTERVAL_REJECTED
+	0x1D ERROR_SCO_AIR_MODE_REJECTED
+	0x1E ERROR_INVALID_LMP_PARAMETER
+	0x1F ERROR_UNSPECIFIED_ERROR
+	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
+	0x22 ERROR_LMP_RESPONSE_TIMEOUT
+	0x23 ERROR_ERROR_TRANSACTION_COLLISION
+	0x24 ERROR_LMP_PDU_NOT_ALLOWED
+	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x26 ERROR_UNIT_KEY_USED
+	0x27 ERROR_QOS_NOT_SUPPORTED
+	0x28 ERROR_INSTANT_PASSED
+	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
+	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
+	0x2d ERROR_QOS_REJECTED
+	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+	0x2f ERROR_INSUFFICIENT_SECURITY
+	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+	0x32 ERROR_ROLE_SWITCH_PENDING
+	0x34 ERROR_RESERVED_SLOT_VIOLATION
+	0x35 ERROR_ROLE_SWITCH_FAILED
+	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+	0x38 ERROR_HOST_BUSY_PAIRING
+	0x3d ERROR_MIC_FAILURE
+	)
+
+
+	//modified_name
+	(
+	0X20 SPACE	
+	)
+	
+	(
+	0x0004 LE_L2CAP_CID_ATT
+	0x0005 LE_L2CAP_CID_SIGNAL
+	0x0006 LE_L2CAP_CID_SMP
+	)
+
+	//LE address type
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	//LE address type bitmap
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	//LE SCAN TYPE
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+
+	//LE SCAN ENABLE
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+
+	//LE FIND INFORMATION RESPONSE
+	//THE FORMAT OF THE INFORMATION DATA
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+
+//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+7 lestate_update_phy
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+5 lemode_2m
+6 lemode_lr
+7 lemode_lr_s8
+
+0x20 mode_2m
+0x40 mode_lr_s2
+0xc0 mode_lr_s8
+
+)
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+6 txdat
+)
+
+(
+0x00 LLID_RESERVED
+0x01 LLID_CONTINUE
+0x02 LLID_START
+0x03 LLID_LE_LL
+0x01 LLID_EMPTY
+)
+
+(
+4 LE_TX_BUFF_COUNT
+3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
+
+12 LE_MD_MAX_COUNT
+)
+
+
+(
+0 LE_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_BIT
+)
+
+
+
+
+
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+
+(
+39 LE_CCM_DIRECTIONBIT
+)
+(
+36 BR_CCM_0_LENGTH_CONTINUATION
+37 BR_CCM_DIRECTIONBIT
+)
+
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+
+
+
+//mem_le_enc_state
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_RCV_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_RCV_START_ENC_RSP
+4 FLAG_LE_SEND_START_ENC_RSP
+5 FLAG_LE_SEND_START_ENC_REQ
+0xff FLAG_LE_ENC_END
+)
+
+(//mem_le_configuration
+//bit0:use fixed key , ble passkey pairing
+0 BIT_BLE_PASSKEY_FIXED_KEY
+//bit1:ble pairing use fixed long term key
+1 BIT_BLE_PAIRING_FIXED_LTK
+//bit2:ble transmit packet will set more data flag
+2 BIT_BLE_TRANSMIT_PACKET_BY_MD
+//bit3:master read handle, with requires an authenticated link
+3 BIT_BLE_READ_AUTH
+//bit4:master write handle, with requires an authenticated link
+4 BIT_BLE_WRITE_AUTH
+//bit5:cannot enter long sleep
+5 BIT_BLE_SHORT_MULT
+//bit6:DEAL baseband packet
+6 BIT_BLE_DEAL_BB_PACKET
+)
+
+
+
+
+
+
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0x16	GAP_ADTYPE_SERVICE_DATA
+0x2a	GAP_ADTYPE_MESH_MESSAGE
+0x2b 	GAP_ADTYPE_MESH_BEACON
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+3 AUX_SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+5 AUX_CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+
+(
+0xa0 param_le_sca
+)
+
+
+
+
+
+
+
+
+
+
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+
+
+
+(
+0 BIT_CHARACTERISTIC_BROADCAST
+1 BIT_CHARACTERISTIC_READ
+2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
+3 BIT_CHARACTERISTIC_WRITE
+4 BIT_CHARACTERISTIC_NOTIFY
+5 BIT_CHARACTERISTIC_INDICATE
+6 BIT_CHARACTERISTIC_SIGNED_WRITE
+7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
+)
+
+
+(
+0x01 ATTOP_ERROR_RESPONSE
+0x02 ATTOP_EXCHANGE_MTU_REQUEST
+0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+0x04 ATTOP_FIND_INFORMATION_REQUEST
+0x05 ATTOP_FIND_INFORMATION_RESPONSE
+0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+0x08 ATTOP_READ_BY_TYPE_REQUEST
+0x09 ATTOP_READ_BY_TYPE_RESPONSE
+0x0A ATTOP_READ_REQUEST
+0x0B ATTOP_READ_RESPONSE
+0x0C ATTOP_READ_BLOB_REQUEST
+0x0D ATTOP_READ_BLOB_RESPONSE
+0x0E ATTOP_READ_MULTIPLE_REQUEST
+0x0F ATTOP_READ_MULTIPLE_RESPONSE
+0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+0x12 ATTOP_WRITE_REQUEST
+0x13 ATTOP_WRITE_RESPONSE
+0x16 ATTOP_PREPARE_WRITE_REQUEST
+0x17 ATTOP_PREPARE_WRITE_RESPONSE
+0x18 ATTOP_EXECUTE_WRITE_REQUEST
+0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+0x1D ATTOP_HANDLE_VALUE_INDICATION
+0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+0x52 ATTOP_WRITE_COMMAND
+0xD2 ATTOP_SIGNED_WRITE_COMMAND
+0x1f ATTOP_CONTINUE
+0x9e EMPTY_LE_DATA_PRE
+0x9f EMPTY_LE_DATA
+)
+
+
+(
+0x01 ATT_ERR_INVALID_HANDLE
+0x02 ATT_ERR_READ_NOT_PERMITTED
+0x03 ATT_ERR_WRITE_NOT_PERMITTED
+0x04 ATT_ERR_INVALID_PDU
+0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+0x07 ATT_ERR_INVALID_OFFSET
+0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+0x09 ATT_ERR_PREPARE_QUEUE_FULL
+0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+0x0E ATT_ERR_UNLIKELY_ERROR
+0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+)
+
+
+(
+0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+0X2901 CHARACTERTIC_USER_DESCRIPTION
+0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+0X2905 CHARACTERTIC_AGGREGATE
+0X2906 VALID_RANGE
+0X2907 EXTERNAL_REPORT_REFERENCE
+0X2908 REPORT_REFERENCE
+0X290B ENVIR_SENSING_CONFIGURATION
+0X290C ENVIR_SENSING_MEASUREMENT
+0X290D ENVIR_SENSING_TRIGGER_SETTING
+)
+
+
+
+(
+0x1800 UUID_SERVICE_GENERIC_ACC
+0x1801 UUID_SERVICE_GENERIC_ATT
+0x180a UUID_SERVICE_DEVICE_INFO
+0x180f UUID_SERVICE_BATTERY
+0x1812 UUID_SERVICE_HIDS
+0x2800 UUID_GATT_PRIMARY_SERVICE
+0x2801 UUID_GATT_SECONDARY_SERVICE
+0X2802 UUID_GATT_INCLUDE
+0X2803 UUID_GATT_CHARACTERISTIC
+0X2A00 UUID_CHRCTR_DEVICE_NAME
+0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+0X2A23 UUID_CHRCTR_SYSTEM_ID 
+0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+0X2A26 UUID_CHRCTR_FIRMWARE
+0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+0X2A33 UUID_CHRCTR_MOUSE_INPUT
+0X2A4A UUID_CHRCTR_HID_INFO
+0X2A4B UUID_CHRCTR_REPORT_MAP
+0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+0X2A4D UUID_CHRCTR_REPORT
+0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+
+
+(
+23 ATT_DEFAULT_MTU 
+)
+
+
+
+
+
+
+(
+0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+)
+
+(
+0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+)
+
+
+
+
+
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+
+
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+
+(
+0x00 FLAG_LE_NO_BONDING_NO_MITM
+0x01 FLAG_LE_BONDING_NO_MITM
+0x04 FLAG_LE_NO_BONDING_MITM
+0x05 FLAG_LE_BONDING_MITM
+0x09 FLAG_LE_BONDING_NO_MITM_SECURE
+0x0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+
+//mem_le_pairing_state
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
+3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
+4 FLAG_LE_PAIRING_WAIT_STK_GENERATION
+5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
+6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
+7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
+8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
+9 FLAG_LE_PAIRING_AFTER_AUTH
+10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+11 FLAG_LE_PARING_SEND_ENC_INFORMATION
+12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+
+
+(
+0x01 SMP_PAIRING_REQUEST
+0x02 SMP_PAIRING_RESPONSE
+0x03 SMP_PAIRING_CONFIRM
+0x04 SMP_PAIRING_RANDOM
+0x05 SMP_PAIRING_FAILED
+0x06 SMP_ENCRYPTION_INFORMATION
+0x07 SMP_MASTER_IDENTIFICATION
+0x08 SMP_IDENTITY_INFORMATION
+0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+0x0A SMP_SIGNING_INFORMATION
+0x0B SMP_SECURITY_REQUEST
+0x0c SMP_PAIRING_PUBLIC_KEY
+0x0d SMP_PAIRING_DHKEY_CHECK
+)
+
+(// pairing failed reason
+0x00 PAIRING_FAILED_RESERVED
+0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+0X0A PAIRING_FAILED_INVALID_PARAMETERS
+0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+)
+
+
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+
+
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+
+
+
+
+
+(
+0x00 LL_CONNECTION_UPDATE_IND
+0x01 LL_CHANNEL_MAP_IND
+0x02 LL_TERMINATE_IND
+0x03 LL_ENC_REQ
+0x04 LL_ENC_RSP
+0x05 LL_START_ENC_REQ
+0x06 LL_START_ENC_RSP
+0x07 LL_UNKNOWN_RSP
+0x08 LL_FEATURE_REQ
+0x09 LL_FEATURE_RSP
+0x0A LL_PAUSE_ENC_REQ
+0x0B LL_PAUSE_ENC_RSP
+0x0C LL_VERSION_IND
+0x0D LL_REJECT_IND
+0x0E LL_SLAVE_FEATURE_REQ
+0x0F LL_CONNECTION_PARAM_REQ
+0x10 LL_CONNECTION_PARAM_RSP
+0x11 LL_REJECT_IND_EXT
+0x12 LL_PING_REQ
+0x13 LL_PING_RSP
+0x14 LL_LENGTH_REQ
+0x15 LL_LENGTH_RSP
+0x16 LL_PHY_REQ
+0x17 LL_PHY_RSP
+0x18 LL_PHY_UPDATE_IND
+0x19 LL_MIN_USED_CHANNELS_IND
+0x1A LL_CTE_REQ
+0x1B LL_CTE_RSP
+0x1C LL_PERIODIC_SYNC_IND
+0x1D LL_CLOCK_ACCURACY_REQ
+0x1E LL_CLOCK_ACCURACY_RSP
+0x1F LL_CIS_REQ
+0x20 LL_CIS_RSP
+0x21 LL_CIS_IND
+0x22 LL_CIS_TERMINATE_IND
+0x23 LL_POWER_CONTROL_REQ
+0x24 LL_POWER_CONTROL_RSP
+0x25 LL_POWER_CHANGE_IND
+)
+
+
+
+(//bit map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0 BIT_LL_FEATURE_LE_ENCRYPTION
+1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
+3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+4 BIT_LL_FEATURE_LE_PING
+5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+6 BIT_LL_FEATURE_LL_PRIVACY
+7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+8 BIT_LL_FEATURE_LE_2M_PHY
+9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+11 BIT_LL_FEATURE_LE_CODED_PHY
+12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
+13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
+14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+15 BIT_LL_FEATURE_LE_POWER_CLASS_1
+16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//function map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0x1 FUN_LL_FEATURE_LE_ENCRYPTION
+0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
+0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+0x10 FUN_LL_FEATURE_LE_PING
+0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+0x40 FUN_LL_FEATURE_LL_PRIVACY
+0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+0x100 FUN_LL_FEATURE_LE_2M_PHY
+0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+0x800 FUN_LL_FEATURE_LE_CODED_PHY
+0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
+0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
+0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
+0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+
+(//bit of mem_le_tx_phys and mem_le_rx_phys
+0x00 BIT_LE_1M_PHY
+0x01 BIT_LE_2M_PHY
+0x02 BIT_LE_CODED_PHY
+
+0x02 BIT_LE_CODED_PHY_S2
+0x07 BIT_LE_CODED_PHY_S8
+)
+
+(//map of mem_le_tx_phys and mem_le_rx_phys
+0x01 FUN_TX_LL_1M_PHY
+0x02 FUN_TX_LL_2M_PHY
+0x04 FUN_TX_LL_CODED_PHY
+
+0x01 FUN_RX_LL_1M_PHY
+0x02 FUN_RX_LL_2M_PHY
+0x04 FUN_RX_LL_CODED_PHY
+)
+
+
+
+
+
+
+
+(//mem_24g_data_type
+1 TYPE_MS
+2 TYPE_KB
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+
+(
+0 ERR_NULL
+1 ERR_SYNC_TO
+2 ERR_HEC
+3 ERR_LR_LEN
+4 ERR_TYPE
+5 ERR_LEN_OVER
+6 ERR_CRC
+)
+
+
+
+
+
+
+
+
+(//mem_24g_pair_sm
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+4 STATE_24G_PAIRING_4
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0X14 STATE_24G_PAIRING_4_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+0x01 DATATYPE_DEVICE1	//mouse
+0x02 DATATYPE_DEVICE2	//keyboard
+0xaa DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK		//bind step 3
+0xff DATATYPE_ATTEMP	//reconn
+)
+
+(
+5 BIND_MODE_CONTINUE
+)
+
+
+
+
+(
+0 bit_ack_24g
+)
+
+
+
+
+(//mem_24g_reconn_type
+0 DEFAULT_24G_DEVICE
+1 FAST_CONN_AND_RECEIVER
+2 FAST_CONN_AND_3_0_ADDR
+3 RECEIVER_AND_3_0_ADDR
+4 PAIR_AND_3_0_ADDR
+)
+
+
+
+
+
+
+
+
+
+(
+0x50 RSSI_THRESH_NOISE
+)
+
+
+
+
+
+
+
+(
+1 NO_ACK_24G
+0 WITH_ACK_24G
+)
+
+(//mem_24g_conn_sm
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+
+(//mem_24g_transmit_by_interrupt
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+
+
+(
+1 OFFSET_DATA_TYPE
+2 OFFSET_LR_DATA_TYPE
+)
+
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
+0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+63500 G24_8MS_INTERVAL_PARAM		//8ms
+12210 G24_4MS_INTERVAL_PARAM
+)
+
+
+
+
+
+
+(
+50 POWER_CTRL_DECRS_THRESHOLD
+)
+
+
+
+
+
+(
+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
+0x81 FLASH_COMMAND_PAGE_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
+)
+
+
+
+
+(
+1 DVC_OP_2G4
+2 DVC_OP_BLE
+
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+7 DVC_OP_MOUSE_2G4
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0b DVC_OP_REMOTE_CONTROL
+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
+0x92aa USB_KBDATA_VENDOR_DEFINE_ADDR
+0x92c5 USB_KBDATA_ADDR
+0x9307 USB_MSDATA_ADDR
+0x93fb USB_DEVICEDATA_ADDR
+0x940e USB_CONFDATA_ADDR
+0x944a KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+0x94fc KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+0x95b8 KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+0x9684 BLE_SHUTTER_GATT_LIST_ADDR
+0x97bd BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x97e5 BLE_CAR_ATT_LIST_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
+)
+
+
+//mem_adc_reference_mode 
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
+
+
+
+
+
+
+
+
+
+
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+
+(
+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
+)
+
+(
+0x0e HANDLE_OF_NOTIFY
+0x11 HANDLE_OF_WRITE
+)
+
+(
+0 G24_UNCONNECT
+1 G24_CONNECTED
+)
+
+(
+12 LEN_OF_24G_PAYLOAD
+11 LEN_OF_ACK_PAYLOAD
+)
+
+
+(
+0XAA G24_TX_PAIR_REQUEST
+0XBB G24_RX_PAIR_RESPONES
+0XCC G24_TX_REMOTE_CONTROL
+0XDD G24_RX_CONTROL_ACK
+0XEE G24_ERROR
+0xFF INVALID_PIN_NUM
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+
+(
+0x1f00 OTP_SYS_PARAM_CFG
+0x1fda OTP_MAC_ADDR
+0X1fdb OTP_MAC_ADDR_PIECENUM
+)
+
+
+
+
+
+
+//otp address offset
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+0x1fc0 DONGLE_KB_BIND_OTP_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
+5 KB_BIT_CONSUMER_REPORT_ID
+8 KB_N_KEY_ROLLOVER_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
+)
+
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x00 DEVICE_DATA_TPYE_KEYBOARD
+)
+
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+0x05 HID_REPORTID_BIT_CONSUMER_KEY
+0x08 HID_REPORTID_N_KEY_ROLLOVER
+)
+
+(
+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_VOL_DOWN
+0xea 	HID_KEY_MULTIKEY_VOL_UP
+0xeb 	HID_KEY_MULTIKEY_MUTE
+0xec 	HID_KEY_MULTIKEY_PRE_TRACK
+0xed 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xee 	HID_KEY_MULTIKEY_PALY
+0xef 	HID_KEY_MULTIKEY_STOP
+0xf0 	HID_KEY_AC_HOME
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_MY_COMPUTER
+0xf3 	HID_KEY_AC_FAVORITES
+0xf4 	HID_KEY_CALCULATOR
+0xf5 	HID_KEY_AC_SEARCH
+0xf6 	HID_KEY_AC_BACK
+0xf7 	HID_KEY_OS_SOFT_KB
+0xf8 	HID_KEY_LIGHT_DOWN
+0xf9 	HID_KEY_LIGHT_UP
+0xfa 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfb	HID_KEY_MAC_EJECT
+0xfc	HID_KEY_AC_FORWARD
+0xfd	HID_KEY_AC_STOP
+0xfe	HID_KEY_AC_REFRESH
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+0xae     	HID_KEY_PB
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN 					 
+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_ANDROID
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+
+(
+//keyboard_function_flag
+0x08 KEYBOARD_FLAG_LEN
+//byte 0
+0x00 KEYBOARD_24G_PAIRING_FLAG
+0x01 KEYBOARD_STORE_MEMORY_FLAG
+0x02 KEYBOARD_LOW_VOLTAGE_FLAG
+0x03 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x04 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 1
+0x08 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+0x09 KEYBOARD_ENABLE_16M
+0x0a KEYBOARD_DISABLE_ICE
+0x0b KEYBOARD_ENABLE_ADC
+0x0c KEYBOARD_ENABLE_FLASH
+0x0d KEYBOARD_ENABLE_2K_EEPROM
+0x0e KEYBOARD_ENABLE_EEPROM
+0x0f KEYBOARD_ENABLE_OTP
+
+//byte 2
+0x10 KEYBOARD_ENABLE_24G
+0x11 KEYBOARD_ENABLE_AUTO_24G_PARING
+0x12 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x13 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x14 KEYBOARD_ENABLE_24G_2M_PHY
+0x15 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+
+//byte 3
+0x18 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+0x19 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x1a KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x1b KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+
+//byte 4
+0x20 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+0x21 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+0x22 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+0x23 KEYBOARD_ENABLE_MOUSE
+0x24 KEYBOARD_ENABLE_USB
+
+//byte 5
+0x28 KEYBOARD_ENABLE_030_POWER_LED
+0x29 KEYBOARD_ENABLE_LOW_LED
+0x2a KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+0x2b KEYBOARD_ENABLE_BACKLIGHT
+
+//byte 6
+0x30 KEYBOARD_ENABLE_FN_ARROW
+0x31 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+0x32 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+0x33 KEYBOARD_ENABLE_FN_OS_SWITCH
+0x34 KEYBOARD_ENABLE_FN_LOCK
+
+//byte 7
+0x38 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x39 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+0x3a KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+0x3b KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+0x3c KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+0x3d KEYBOARD_ENABLE_SDA_MULTI_R_LINE
+0x3e KEYBOARD_ENABLE_SDA_MULTI_ICE_LINE
+
+)
+
+(
+//eeprom address offect
+0x00 KEYBOARD_INFO_EEPROM_OFFECT
+0x00 KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT
+0x01 KEYBOARD_BLE_ADDR_EEPROM_OFFECT
+0x28 KEYBOARD_STORE_FLAG
+0x2b KEYBOARD_G24_ADDR_EEPROM_OFFECT	//4bytes
+0x2f KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET
+0x31 KEYBOARD_FN_FLAG_EEPROM_OFFSET
+0x36 KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET
+0x39 KEYBOARD_RGB_TPYE_OFFSET
+
+0x00 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO
+0x01 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR
+0x02 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR
+0x03 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK
+0x04 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM
+0x05 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE
+)
+
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+
+(
+0x01 KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR
+0x02 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR
+0x03 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN
+)
+
+(
+0x20 KEYBOARD_BLE_L2CAP_TXBUFF_SIZE
+)
+
+(
+0 KEYBOARD_BATTARY_1V5
+1 KEYBOARD_BATTARY_3V0
+2 KEYBOARD_BATTARY_4V2
+)
+
+
+
+
+
+
+(//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
+)
+
+
+
+
+
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+0x07 MOUSE_ENABLE_SPI2
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0b MOUSE_ENABLE_16M
+0x0c MOUSE_ENABLE_USB
+0x0d MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0e MOUSE_ENABLE_LOAD_AND_STORE_DPI
+0x0f MOUSE_ENABLE_24G
+
+//byte 3
+0x10 MOUSE_ENABLE_FLASH
+0x11 MOUSE_ENABLE_EEPROM
+0x12 MOUSE_ENABLE_OTP
+0x13 MOUSE_ENABLE_ADC
+0x14 MOUSE_ENABLE_KEYBOARD
+0x15 MOUSE_ENABLE_DOUBLE_DPI_KEY
+0x16 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+
+//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
+
+//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
+
+//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
+
+
+//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
+0x57 KA5857_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
+0X0d KA5857
+
+
+//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
+)
+
+(
+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 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+
+
+
+
+
+
+(
+1 KEY_DOWN 
+0 KEY_UP 
+)
+
+(
+0x00 KEYPAD_TYPE_CONSUMER
+0x01 KEYPAD_TYPE_MOUSE
+0x02 KEYPAD_TYPE_KEYPAD
+0x03 KEYPAD_TYPE_NEC
+)
+
+(
+0x03 MAX_QUEUE_UNIT
+)
+
+(
+0x100 NEC_STORE_BUF_SIZE
+0x3fff NEC_LEAR_HEAD
+)
+
+(
+0 INDEX_0
+1 INDEX_1
+2 INDEX_2
+3 INDEX_3
+4 INDEX_4
+5 INDEX_5
+6 INDEX_6
+7 INDEX_7
+8 INDEX_8
+9 INDEX_9
+10 INDEX_10
+11 INDEX_11
+12 INDEX_12
+13 INDEX_13
+14 INDEX_14
+15 INDEX_15
+16 INDEX_16
+17 INDEX_17
+18 INDEX_18
+19 INDEX_19
+20 INDEX_20
+)
+
+(
+0x00 NONE_FILTER
+0x01 WHITE_LIST_SCAN_FILTER
+0x02 WHITE_LIST_CONNECT_FILTER
+0x03 WHITE_LIST_CONN_SCAN_FILTER
+)
+
+(
+0xAB OTA_EVENT
+0xBA OTA_COMMAND
+)
+
+(
+0x10 OTA_PORTOCOL_VERSION_REQUEST
+0x11 OTA_BUCK_SIZE_REQUEST
+0x12 OTA_WORK_MODE_REQUEST
+0x13 OTA_SWITCH_WORK_MODE_REQUEST
+0x14 OTA_FLASH_CHECKSUM_REQUEST
+0x15 OTA_START_REQUEST
+0x16 OTA_DATA_WRITE_CMD
+0x17 OTA_DATA_WRITE_REQUEST
+0x18 OTA_END_REQUEST
+)
+
+(
+0x00 OTA_UPDATE_FLASH_NORMAL
+)
+
+(
+0x00 OTA_RESULT_SUCCESS
+0x01 OTA_RESULT_WORKMODE_NOT_SUPPORT
+0x02 OTA_RESULT_WORKMODE_ERROR
+0x03 OTA_RESULT_FLASHMODE_NOT_SUPPORT
+0x04 OTA_RESULT_INDEX_ERROR
+0x05 OTA_RESULT_LENGTH_ERROR
+0x06 OTA_RESULT_BUCK_SIZE_ERROR
+0x07 OTA_RESULT_WRITE_FLASH_ERROR
+0xFF OTA_RESULT_ERROR
+)
+
+(
+0x01 OTA_LE_CONN_PARAM_UPDATE_ENABLE
+0x00 OTA_LE_CONN_PARAM_UPDATE_DISABLE
+)
+
+
+
+
+
+
+
+
+
+
+
+(
+0 BLE_SHUTTER
+1 CLASSIC_SHUTTER
+)
+
+(
+0x0000 NVRAM_EEPROM_OFFSET
+)
+
+(
+0x1b3a SHUTTER_EEPROM_CONFIG_CRC
+)
+
+(
+5 MAX_QUEUE_NUM
+5 SHUTTER_BLE_DATA_BUFFER
+5 SHUTTER_CLASSIC_DATA_BUFFER
+)
+
+
+(
+0x13	GATT_CONSUMER_NOTIFY_HANDLE
+0x14	GATT_CONSUMER_WRITE_HANDLE
+0x17	GATT_KEYBOARD_NOTIFY_HANDLE
+0x18	GATT_KEYBOARD_WRITE_HANDLE
+)
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE
+//100ms
+0x00a0	SLOW_ADV_INTERVAL_VALUE
+)
+
+
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+///////////////////////////////////////////////////////////////////////////////////////
+
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+
+
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+
+(//Data Rom Buffer Addr
+313		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+)
+
+
+(//soft switch power state
+0		SS_STATE_POWER_UP
+1		SS_STATE_POWER_ON
+2		SS_STATE_POWER_OFF
+)
+
+(
+0		SS_POWER_STATE_OFFSET
+1		SS_POWER_ON_TIME
+2		SS_POWER_OFF_TIME
+3		SS_POWER_ON_CB
+5		SS_POWER_OFF_CB
+
+)
+
+(
+
+0x4FFE SIM_IIC_SCL_GPIO_NUM
+0x4FFF SIM_IIC_SDA_GPIO_NUM
+
+)
+
+(
+0 SHUTTER_TYPE
+1 SHUTTER_DY_TYPE
+)
+
+
+
+
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+
+
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+
+//otp address offset
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//璧峰鍦板潃
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //缁撴潫鍦板潃
+)
+
+
+(
+//uart config
+115200 UART_BAUD
+)
+
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X55 ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0xfff IPHONE_ONCE_MAX_MOVE_VALUE
+)
+
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+
+
+
+
+
+
+(
+0x07 HCI_UART_TX_GPIO_NUM
+0x06 HCI_UART_RX_GPIO_NUM
+0x09 HCI_UART_RTS_GPIO_NUM
+0x0a HCI_UART_CTS_GPIO_NUM
+0x0c HCI_PMW_12MHZ_GPIO_NUM
+)
+
+(
+0x00 COMMAND_SUCCEEDED
+0x01 COMMAND_UNKNOWN
+0x0c COMMAND_DISALLOWED
+)
+
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+)
+
+(
+0x00 BT_ACL_START_NO_FLUSH
+0x01 BT_ACL_CONT
+0x02 BT_ACL_START
+)
+
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
+0x04 HCI_OGF_INFOMATIONAL_PARAM
+0x05 HCI_OGF_STATUS_PARAM
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LE_CONTROLLER
+0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
+)
+
+// HCI link control opcode command field values, OGF=1
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+
+
+// HCI link policy commands OCF value, OGF=2
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+
+// HCI host controller and baseband commands OCF values, OGF=3
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+
+
+// HCI informational parameters OCF values, OGF=4
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+
+// HCI status parameters OCF values, OGF=5
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+
+// HCI testing command OCF values, OGF=6
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+
+// HCI vendor specific command OCF values -OGF=3F
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+
+0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
+0X13 HCI_VENDOR_CMD_PATCH_SEC
+0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
+)
+
+//HCI LE controller command OCF values, OGF=8
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+// HCI event code
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+//HCI LE SUBEVENT CODE
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+
+
+//dpi eeprom addr
+
+
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+
+0x5a USB_INTERFACE_INSERT
+0xa5 USB_INTERFACE_REMOVE
+
+
+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
+
+)
+
+
+
+
+//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
+
+	0x8100 core_clkn
+	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
+
+	
+
+
+
+    
+    
+)
+
+(
+
+4 BIST_CTRL_FIX_SCHED_RAM
+5 BIST_CTRL_FIX_XRAM
+6 BIST_CTRL_FIX_PATCH_RAM
+
+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
+	9 CLOCK_OFF_NEC
+	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
+0xFF  GPIO_DISABLE
+)
+
+
+
+
+
+
+
+
+
+(
+  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
+0x23 USB_EP2_BIT_CONSUMER
+0x24 USB_EP2_N_KEY_ROLLOVER
+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: GK308_keyboard_only_24g/output/bt_program23.icode
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.icode	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.icode	(working copy)
@@ -0,0 +1,24807 @@
+ 00000000  0x0000001c bbit1  0x00000008 , 0x00000016 
+ 00000001  0x0000001e beq  0x0000001a , 0x00000052 
+ 00000002  0x0000001f beq  0x00000028 , 0x00000093 
+ 00000003  0x00000020 beq  0x0000003e , 0x00000153 
+ 00000004  0x00000021 beq  0x00000040 , 0x000000d8 
+ 00000005  0x00000022 beq  0x00000043 , 0x0000010c 
+ 00000006  0x00000023 beq  0x00000044 , 0x00000269 
+ 00000007  0x00000024 beq  0x00000049 , 0x0000027b 
+ 00000008  0x00000025 beq  0x0000004c , 0x000000f2 
+ 00000009  0x00000026 beq  0x00000054 , 0x000002e7 
+ 00000010  0x00000027 beq  0x00000056 , 0x00000152 
+ 00000011  0x00000028 beq  0x00000059 , 0x000001bd 
+ 00000012  0x00000029 beq  0x0000005c , 0x000001c0 
+ 00000013  0x0000002a beq  0x0000006a , 0x000001a8 
+ 00000014  0x0000002b beq  0x0000007c , 0x00000256 
+ 00000015  0x0000002c beq  0x00000082 , 0x00000257 
+ 00000016  0x0000002d beq  0x000000a3 , 0x000047fb 
+ 00000017  0x0000002e beq  0x000000e9 , 0x0000005d 
+ 00000018  0x0000002f beq  0x000000ea , 0x0000005a 
+ 00000019  0x00000030 beq  0x000000cf , 0x000000a1 
+ 00000020  0x00000031 beq  0x000000fa , 0x0000008f 
+ 00000021  0x00000032 branch  0x0000233e 
+ 00000022  0x00000034 beq  0x000000ad , 0x0000003a 
+ 00000023  0x00000035 beq  0x000000bd , 0x0000003d 
+ 00000024  0x00000036 beq  0x000000c2 , 0x000002e6 
+ 00000025  0x00000037 beq  0x000000f3 , 0x0000001c 
+ 00000026  0x00000038 rtneq  0x000000ff 
+ 00000027  0x00000039 branch  0x0000233e 
+ 00000028  0x0000003d until  0x0000003e , 0x00000033 
+ 00000029  0x0000003e jam  0x00000060 , 0x00008a86 
+ 00000030  0x0000003f jam  0x0000003b , 0x00008a8b 
+ 00000031  0x00000041 call  0x0000229d 
+ 00000032  0x00000042 jam  0x00000000 , 0x00008043 
+ 00000033  0x00000043 jam  0x00000005 , 0x00008042 
+ 00000034  0x00000044 setarg  0x00557474 
+ 00000035  0x00000045 store  0x00000003 , 0x00008968 
+ 00000036  0x00000046 jam  0x0000006e , 0x00008960 
+ 00000037  0x00000047 call  0x00002135 
+ 00000038  0x00000048 call  0x00002287 
+ 00000039  0x00000049 call  0x00002281 
+ 00000040  0x0000004a jam  0x0000000c , 0x00004148 
+ 00000041  0x0000004f call  0x00006f53 
+ 00000042  0x00000050 call  0x000022cb 
+ 00000043  0x00000051 branch  0x00006ac9 
+ 00000044  0x00000054 nbranch  0x0000002f , 0x0000002b 
+ 00000045  0x00000055 until  0x0000003e , 0x00000033 
+ 00000046  0x00000056 until  0x0000003e , 0x00000033 
+ 00000047  0x00000058 call  0x00003e9a 
+ 00000048  0x00000059 nbranch  0x00002002 , 0x00000028 
+ 00000049  0x0000005a fetch  0x00000001 , 0x0000488d 
+ 00000050  0x0000005b branch  0x00002002 , 0x00000034 
+ 00000051  0x0000005c fetch  0x00000001 , 0x0000490f 
+ 00000052  0x0000005d rtneq  0x000000ff 
+ 00000053  0x0000005e copy  0x0000003f , 0x00000007 
+ 00000054  0x0000005f fetch  0x00000004 , 0x0000067b 
+ 00000055  0x00000060 qisolate0  0x0000003f 
+ 00000056  0x00000061 call  0x0000469b , 0x00000001 
+ 00000057  0x00000062 branch  0x00002002 
+ 00000058  0x00000065 fetch  0x00000004 , 0x00004576 
+ 00000059  0x00000066 rtn  0x00000034 
+ 00000060  0x00000067 branch  0x000032ad 
+ 00000061  0x0000006a fetch  0x00000002 , 0x000045f7 
+ 00000062  0x0000006b and_into  0x000000e0 , 0x0000003f 
+ 00000063  0x0000006c branch  0x00000044 , 0x00000034 
+ 00000064  0x0000006d fetch  0x00000002 , 0x000045f7 
+ 00000065  0x0000006e increase  0x00000001 , 0x0000003f 
+ 00000066  0x0000006f store  0x00000002 , 0x000045f7 
+ 00000067  0x00000070 rtn 
+ 00000068  0x00000073 call  0x00003557 
+ 00000069  0x00000074 call  0x0000362a 
+ 00000070  0x00000075 nbranch  0x0000355e , 0x00000018 
+ 00000071  0x00000076 nbranch  0x0000355e , 0x0000002f 
+ 00000072  0x00000077 call  0x0000004a 
+ 00000073  0x00000078 branch  0x00003540 
+ 00000074  0x0000007a call  0x00003647 
+ 00000075  0x0000007b fetch  0x00000001 , 0x0000450f 
+ 00000076  0x0000007c compare  0x00000008 , 0x0000003f , 0x000000f8 
+ 00000077  0x0000007d nrtn  0x00000001 
+ 00000078  0x0000007e fetch  0x00000001 , 0x00004510 
+ 00000079  0x0000007f beq  0x000000ff , 0x000047fb 
+ 00000080  0x00000080 store  0x00000001 , 0x0000470d 
+ 00000081  0x00000081 rtn 
+ 00000082  0x00000084 until  0x0000003e , 0x00000033 
+ 00000083  0x00000085 jam  0x0000000d , 0x00008946 
+ 00000084  0x00000086 jam  0x00000010 , 0x0000896f 
+ 00000085  0x00000087 jam  0x000000cd , 0x00008a13 
+ 00000086  0x00000089 fetch  0x00000001 , 0x00008a06 
+ 00000087  0x0000008a and  0x0000003f , 0x000000fc , 0x0000003f 
+ 00000088  0x0000008b store  0x00000001 , 0x00008a06 
+ 00000089  0x0000008c branch  0x00002255 
+ 00000090  0x0000008f call  0x00006b28 
+ 00000091  0x00000090 call  0x00006b63 
+ 00000092  0x00000091 branch  0x00006b26 
+ 00000093  0x00000096 call  0x00006b22 
+ 00000094  0x00000097 call  0x00006b2f 
+ 00000095  0x00000098 call  0x00006b29 
+ 00000096  0x0000009a ifetcht  0x00000001 , 0x00000011 
+ 00000097  0x0000009b increase  0x00000001 , 0x00000011 
+ 00000098  0x0000009c force  0x00000000 , 0x00000007 
+ 00000099  0x0000009e set0  0x00000022 , 0x00000000 
+ 00000100  0x000000a0 qisolate0  0x00000002 
+ 00000101  0x000000a1 branch  0x00000087 , 0x00000001 
+ 00000102  0x000000a2 fetch  0x00000001 , 0x00008046 
+ 00000103  0x000000a3 set1  0x00000006 , 0x0000003f 
+ 00000104  0x000000a4 set1  0x00000007 , 0x0000003f 
+ 00000105  0x000000a5 store  0x00000001 , 0x00008046 
+ 00000106  0x000000a6 jam  0x00000002 , 0x00008047 
+ 00000107  0x000000a7 jam  0x00000082 , 0x00008047 
+ 00000108  0x000000a8 set0  0x00000007 , 0x0000003f 
+ 00000109  0x000000a9 store  0x00000001 , 0x00008046 
+ 00000110  0x000000aa jam  0x0000008a , 0x00008047 
+ 00000111  0x000000ab nop  0x0000000b 
+ 00000112  0x000000ac jam  0x000000ca , 0x00008047 
+ 00000113  0x000000ad nop  0x00000021 
+ 00000114  0x000000ae jam  0x0000004a , 0x00008047 
+ 00000115  0x000000af nop  0x0000002c 
+ 00000116  0x000000b0 jam  0x000000ca , 0x00008047 
+ 00000117  0x000000b1 nop  0x00000016 
+ 00000118  0x000000b2 jam  0x0000008a , 0x00008047 
+ 00000119  0x000000b3 nop  0x00000021 
+ 00000120  0x000000b4 jam  0x00000082 , 0x00008047 
+ 00000121  0x000000b5 nop  0x00000001 
+ 00000122  0x000000b6 jam  0x00000092 , 0x00008047 
+ 00000123  0x000000b7 nop  0x0000000a 
+ 00000124  0x000000b8 jam  0x000000b2 , 0x00008047 
+ 00000125  0x000000b9 fetch  0x00000001 , 0x00008007 
+ 00000126  0x000000ba jam  0x00000092 , 0x00008047 
+ 00000127  0x000000bb nop  0x00000001 
+ 00000128  0x000000bc jam  0x00000082 , 0x00008047 
+ 00000129  0x000000bd nop  0x00000001 
+ 00000130  0x000000be qisolate0  0x0000003f 
+ 00000131  0x000000bf branch  0x00000063 , 0x00000001 
+ 00000132  0x000000c0 bmark1  0x00000022 , 0x00000087 
+ 00000133  0x000000c1 set1  0x00000022 , 0x00000000 
+ 00000134  0x000000c2 branch  0x00000064 
+ 00000135  0x000000c5 fetch  0x00000002 , 0x00008044 
+ 00000136  0x000000c6 increase  0x00000001 , 0x0000003f 
+ 00000137  0x000000c7 store  0x00000002 , 0x00008044 
+ 00000138  0x000000c8 increase  0x00000001 , 0x00000007 
+ 00000139  0x000000c9 compare  0x00000008 , 0x00000007 , 0x0000000f 
+ 00000140  0x000000ca nbranch  0x00000063 , 0x00000001 
+ 00000141  0x000000cb loop  0x00000060 
+ 00000142  0x000000cc branch  0x00006b26 
+ 00000143  0x000000cf set1  0x00000007 , 0x00000002 
+ 00000144  0x000000d0 call  0x00006ee0 
+ 00000145  0x000000d1 nsetflag  0x00000001 , 0x00000007 , 0x00000002 
+ 00000146  0x000000d2 branch  0x00006eac 
+ 00000147  0x000000d6 call  0x000023f0 
+ 00000148  0x000000d7 fetch  0x00000003 , 0x000040bd 
+ 00000149  0x000000d8 rtn  0x00000034 
+ 00000150  0x000000d9 fetch  0x00000001 , 0x00004a7a 
+ 00000151  0x000000da nrtn  0x00000034 
+ 00000152  0x000000db fetch  0x00000001 , 0x00004a7b 
+ 00000153  0x000000dc nrtn  0x00000034 
+ 00000154  0x000000dd fetch  0x00000001 , 0x00004720 
+ 00000155  0x000000de nrtn  0x00000034 
+ 00000156  0x000000df fetch  0x00000002 , 0x00004750 
+ 00000157  0x000000e0 nrtn  0x00000034 
+ 00000158  0x000000e1 fetch  0x00000001 , 0x00004a9f 
+ 00000159  0x000000e2 nrtn  0x00000034 
+ 00000160  0x000000e3 branch  0x00002467 
+ 00000161  0x000000e9 call  0x00003717 
+ 00000162  0x000000ea call  0x00007384 
+ 00000163  0x000000eb call  0x000000a6 
+ 00000164  0x000000ec call  0x000000bf 
+ 00000165  0x000000ed branch  0x00003eb0 
+ 00000166  0x000000f0 rtn  0x0000002b 
+ 00000167  0x000000f1 call  0x000035c8 
+ 00000168  0x000000f2 call  0x0000323a 
+ 00000169  0x000000f3 call  0x000000ac 
+ 00000170  0x000000f4 jam  0x0000000a , 0x000040a6 
+ 00000171  0x000000f5 branch  0x00003ec1 
+ 00000172  0x000000f8 call  0x00003ef4 
+ 00000173  0x000000f9 call  0x000000af 
+ 00000174  0x000000fa branch  0x00003edd 
+ 00000175  0x000000fd setarg  0x00009000 
+ 00000176  0x000000fe store  0x00000002 , 0x000042f9 
+ 00000177  0x000000ff fetch  0x00000008 , 0x0000488e 
+ 00000178  0x00000100 bbit1  0x00000023 , 0x0000680c 
+ 00000179  0x00000101 setarg  0x000095b8 
+ 00000180  0x00000102 store  0x00000002 , 0x000048d6 
+ 00000181  0x00000103 fetch  0x00000008 , 0x0000488e 
+ 00000182  0x00000104 bbit1  0x00000020 , 0x0000680c 
+ 00000183  0x00000105 bbit1  0x00000021 , 0x0000680c 
+ 00000184  0x00000106 setarg  0x000094fc 
+ 00000185  0x00000107 store  0x00000002 , 0x000048d6 
+ 00000186  0x00000108 fetch  0x00000008 , 0x0000488e 
+ 00000187  0x00000109 bbit1  0x00000022 , 0x0000680c 
+ 00000188  0x0000010a setarg  0x00004ae8 
+ 00000189  0x0000010b store  0x00000002 , 0x000048d6 
+ 00000190  0x0000010c branch  0x0000680c 
+ 00000191  0x0000010f fetch  0x00000001 , 0x00004917 
+ 00000192  0x00000110 fetcht  0x00000001 , 0x00004914 
+ 00000193  0x00000111 isub  0x00000002 , 0x0000003e 
+ 00000194  0x00000112 call  0x000000cc , 0x00000005 
+ 00000195  0x00000113 fetch  0x00000001 , 0x00004917 
+ 00000196  0x00000114 fetcht  0x00000001 , 0x00004913 
+ 00000197  0x00000115 isub  0x00000002 , 0x0000003e 
+ 00000198  0x00000116 call  0x000000d0 , 0x00000005 
+ 00000199  0x00000117 fetch  0x00000001 , 0x00004917 
+ 00000200  0x00000118 fetcht  0x00000001 , 0x00004915 
+ 00000201  0x00000119 isub  0x00000002 , 0x0000003e 
+ 00000202  0x0000011a branch  0x000000d4 , 0x00000005 
+ 00000203  0x0000011b rtn 
+ 00000204  0x0000011e fetch  0x00000001 , 0x00004ba0 
+ 00000205  0x0000011f set1  0x00000001 , 0x0000003f 
+ 00000206  0x00000120 store  0x00000001 , 0x00004ba0 
+ 00000207  0x00000121 rtn 
+ 00000208  0x00000123 fetch  0x00000001 , 0x00004ba0 
+ 00000209  0x00000124 set1  0x00000000 , 0x0000003f 
+ 00000210  0x00000125 store  0x00000001 , 0x00004ba0 
+ 00000211  0x00000126 rtn 
+ 00000212  0x00000128 fetch  0x00000001 , 0x00004ba0 
+ 00000213  0x00000129 set1  0x00000002 , 0x0000003f 
+ 00000214  0x0000012a store  0x00000001 , 0x00004ba0 
+ 00000215  0x0000012b rtn 
+ 00000216  0x0000012d fetch  0x00000008 , 0x0000488e 
+ 00000217  0x0000012e bbit1  0x0000000f , 0x000000db 
+ 00000218  0x0000012f branch  0x00003fd8 
+ 00000219  0x00000132 fetch  0x00000002 , 0x00004abd 
+ 00000220  0x00000134 fetcht  0x00000002 , 0x00004abf 
+ 00000221  0x00000135 isub  0x00000002 , 0x0000003e 
+ 00000222  0x00000136 rtn  0x00000002 
+ 00000223  0x00000137 fetch  0x00000001 , 0x00004678 
+ 00000224  0x00000138 beq  0x00000000 , 0x000000e3 
+ 00000225  0x00000139 beq  0x00000001 , 0x00003feb 
+ 00000226  0x0000013a rtn 
+ 00000227  0x0000013d fetcht  0x00000002 , 0x00004abd 
+ 00000228  0x0000013e setarg  0x00001fb0 
+ 00000229  0x00000141 isub  0x00000002 , 0x00000012 
+ 00000230  0x00000142 arg  0x000046a3 , 0x00000011 
+ 00000231  0x00000143 arg  0x00000004 , 0x00000039 
+ 00000232  0x00000144 call  0x00006b33 
+ 00000233  0x00000145 fetcht  0x00000002 , 0x00004abd 
+ 00000234  0x00000146 increase  0x00000004 , 0x00000002 
+ 00000235  0x00000147 storet  0x00000002 , 0x00004abd 
+ 00000236  0x00000148 rtn 
+ 00000237  0x0000014b call  0x0000413c 
+ 00000238  0x0000014c call  0x00004166 
+ 00000239  0x0000014d call  0x0000419d 
+ 00000240  0x0000014e call  0x000041a3 
+ 00000241  0x0000014f branch  0x000041a9 
+ 00000242  0x00000152 call  0x000000f5 
+ 00000243  0x00000153 call  0x00000275 
+ 00000244  0x00000154 branch  0x00004333 
+ 00000245  0x00000157 call  0x00003ef9 
+ 00000246  0x00000158 setarg  0x00000000 
+ 00000247  0x00000159 store  0x00000002 , 0x0000499e 
+ 00000248  0x0000015a arg  0x0000494e , 0x00000006 
+ 00000249  0x0000015b arg  0x00004963 , 0x00000005 
+ 00000250  0x0000015c arg  0x00000014 , 0x00000039 
+ 00000251  0x0000015d call  0x00007cdc 
+ 00000252  0x0000015e call  0x000043af 
+ 00000253  0x0000015f setarg  0x0000494e 
+ 00000254  0x00000160 store  0x00000002 , 0x00004998 
+ 00000255  0x00000161 setarg  0x00004adc 
+ 00000256  0x00000162 store  0x00000002 , 0x0000499a 
+ 00000257  0x00000163 call  0x000043ad 
+ 00000258  0x00000164 call  0x000043ab 
+ 00000259  0x00000166 fetch  0x00000002 , 0x0000499e 
+ 00000260  0x00000167 increase  0x00000001 , 0x0000003f 
+ 00000261  0x00000168 store  0x00000002 , 0x0000499e 
+ 00000262  0x00000169 bbit1  0x00000009 , 0x000000f5 
+ 00000263  0x0000016a fetcht  0x00000001 , 0x00004911 
+ 00000264  0x0000016b call  0x00006ee0 
+ 00000265  0x0000016c nbranch  0x00000103 , 0x00000001 
+ 00000266  0x0000016d call  0x000043af 
+ 00000267  0x0000016e branch  0x0000434a 
+ 00000268  0x00000171 call  0x000040e0 
+ 00000269  0x00000172 call  0x000040cc 
+ 00000270  0x00000173 call  0x000040dd 
+ 00000271  0x00000177 call  0x00000124 
+ 00000272  0x00000178 call  0x0000428f 
+ 00000273  0x00000179 call  0x000042c4 
+ 00000274  0x0000017c call  0x0000326c 
+ 00000275  0x0000017d call  0x00003507 
+ 00000276  0x0000017e call  0x000058f6 
+ 00000277  0x0000017f call  0x000042b5 
+ 00000278  0x00000180 call  0x000042bf 
+ 00000279  0x00000183 call  0x00004299 
+ 00000280  0x00000184 call  0x000042a4 
+ 00000281  0x00000185 call  0x0000550d 
+ 00000282  0x00000186 call  0x000042ad 
+ 00000283  0x00000187 call  0x00005510 
+ 00000284  0x00000188 call  0x000042b2 
+ 00000285  0x00000189 call  0x000042a1 
+ 00000286  0x0000018b call  0x00005527 
+ 00000287  0x0000018c call  0x0000429e 
+ 00000288  0x0000018d call  0x000042c9 
+ 00000289  0x0000018e call  0x000042cc 
+ 00000290  0x00000192 call  0x000002a3 
+ 00000291  0x00000194 branch  0x000042d5 
+ 00000292  0x00000197 fetch  0x00000001 , 0x000048a6 
+ 00000293  0x00000198 bbit1  0x00000000 , 0x0000012a 
+ 00000294  0x00000199 call  0x00000142 
+ 00000295  0x0000019a fetch  0x00000001 , 0x000048a6 
+ 00000296  0x0000019b bbit1  0x00000001 , 0x00000136 
+ 00000297  0x0000019c branch  0x00000148 
+ 00000298  0x0000019f fetch  0x00000001 , 0x000048a9 
+ 00000299  0x000001a0 sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00000300  0x000001a1 nrtn  0x00000002 
+ 00000301  0x000001a2 increase  0x00000001 , 0x0000003f 
+ 00000302  0x000001a3 store  0x00000001 , 0x000048a9 
+ 00000303  0x000001a4 rtnne  0x00000019 
+ 00000304  0x000001a5 jam  0x00000000 , 0x000048a7 
+ 00000305  0x000001a6 fetch  0x00000001 , 0x00004678 
+ 00000306  0x000001a7 rtneq  0x00000004 
+ 00000307  0x000001a8 call  0x0000014e 
+ 00000308  0x000001a9 call  0x000048e6 
+ 00000309  0x000001aa branch  0x00004680 
+ 00000310  0x000001ad fetch  0x00000001 , 0x000048aa 
+ 00000311  0x000001ae sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00000312  0x000001af nrtn  0x00000002 
+ 00000313  0x000001b0 increase  0x00000001 , 0x0000003f 
+ 00000314  0x000001b1 store  0x00000001 , 0x000048aa 
+ 00000315  0x000001b2 rtnne  0x00000019 
+ 00000316  0x000001b3 jam  0x00000000 , 0x000048a8 
+ 00000317  0x000001b4 fetch  0x00000001 , 0x00004678 
+ 00000318  0x000001b5 rtneq  0x00000004 
+ 00000319  0x000001b6 call  0x0000014e 
+ 00000320  0x000001b7 call  0x00006824 
+ 00000321  0x000001b8 branch  0x00004675 
+ 00000322  0x000001bc jam  0x00000000 , 0x000048a9 
+ 00000323  0x000001bd fetch  0x00000001 , 0x000048a7 
+ 00000324  0x000001be rtn  0x00000034 
+ 00000325  0x000001bf jam  0x00000000 , 0x000048a7 
+ 00000326  0x000001c0 call  0x0000014e 
+ 00000327  0x000001c1 branch  0x00006c99 
+ 00000328  0x000001c4 jam  0x00000000 , 0x000048aa 
+ 00000329  0x000001c5 fetch  0x00000001 , 0x000048a8 
+ 00000330  0x000001c6 rtn  0x00000034 
+ 00000331  0x000001c7 jam  0x00000000 , 0x000048a8 
+ 00000332  0x000001c8 call  0x00004045 
+ 00000333  0x000001c9 branch  0x00006c99 
+ 00000334  0x000001cc fetch  0x00000008 , 0x0000488e 
+ 00000335  0x000001cd bbit1  0x0000000f , 0x00005594 
+ 00000336  0x000001ce bbit1  0x0000000e , 0x00004045 
+ 00000337  0x000001cf rtn 
+ 00000338  0x000001d2 branch  0x00004677 
+ 00000339  0x000001d6 fetch  0x00000008 , 0x0000488e 
+ 00000340  0x000001d8 bbit1  0x0000000f , 0x00000163 
+ 00000341  0x000001d9 branch  0x00003ec8 
+ 00000342  0x000001dc fetch  0x00000008 , 0x0000488e 
+ 00000343  0x000001dd bbit0  0x0000003d , 0x0000015d 
+ 00000344  0x000001de fetcht  0x00000001 , 0x00004440 
+ 00000345  0x000001df call  0x00004f0a 
+ 00000346  0x000001e0 fetcht  0x00000001 , 0x00004440 
+ 00000347  0x000001e1 call  0x00006ee0 
+ 00000348  0x000001e2 branch  0x00000156 , 0x00000001 
+ 00000349  0x000001e4 call  0x00004049 
+ 00000350  0x000001e5 arg  0x00000080 , 0x00000002 
+ 00000351  0x000001e6 arg  0x00004678 , 0x00000011 
+ 00000352  0x000001e7 arg  0x00000000 , 0x00000012 
+ 00000353  0x000001e8 call  0x00006cd7 
+ 00000354  0x000001e9 branch  0x00003fa2 
+ 00000355  0x000001eb fetch  0x00000001 , 0x00004678 
+ 00000356  0x000001ec beq  0x00000000 , 0x00000166 
+ 00000357  0x000001ed branch  0x00003f33 
+ 00000358  0x000001f0 arg  0x00000008 , 0x00000018 
+ 00000359  0x000001f1 fetch  0x00000002 , 0x00004abf 
+ 00000360  0x000001f2 idiv  0x00000018 
+ 00000361  0x000001f3 call  0x00007d64 
+ 00000362  0x000001f4 quotient  0x0000003f 
+ 00000363  0x000001f5 store  0x00000002 , 0x0000064e 
+ 00000364  0x000001f6 arg  0x00001fac , 0x0000003f 
+ 00000365  0x000001f8 arg  0x00000004 , 0x00000002 
+ 00000366  0x000001f9 arg  0x00000004 , 0x0000002b 
+ 00000367  0x000001fa branch  0x00000170 
+ 00000368  0x000001fd store  0x00000002 , 0x00000650 
+ 00000369  0x000001fe storet  0x00000001 , 0x00000656 
+ 00000370  0x000001ff arg  0x00004aa5 , 0x00000011 
+ 00000371  0x00000200 arg  0x00000000 , 0x00000013 
+ 00000372  0x00000203 fetch  0x00000002 , 0x00000650 
+ 00000373  0x00000204 copy  0x0000003f , 0x00000012 
+ 00000374  0x00000205 fetchr  0x00000039 , 0x00000001 , 0x00000656 
+ 00000375  0x00000206 arg  0x00004aa5 , 0x00000011 
+ 00000376  0x00000207 call  0x00006b62 
+ 00000377  0x00000208 fetch  0x00000008 , 0x00004aa5 
+ 00000378  0x00000209 fetcht  0x00000008 , 0x00004aad 
+ 00000379  0x0000020a ior  0x00000002 , 0x0000003f 
+ 00000380  0x0000020b fetcht  0x00000008 , 0x00004ab5 
+ 00000381  0x0000020c ior  0x00000002 , 0x0000003f 
+ 00000382  0x0000020e branch  0x00000186 , 0x00000034 
+ 00000383  0x0000020f increase  0x00000001 , 0x00000013 
+ 00000384  0x00000210 fetch  0x00000002 , 0x0000064e 
+ 00000385  0x00000211 isub  0x00000013 , 0x0000003e 
+ 00000386  0x00000212 fetch  0x00000002 , 0x00000650 
+ 00000387  0x00000213 isub  0x00000018 , 0x0000003f 
+ 00000388  0x00000214 store  0x00000002 , 0x00000650 
+ 00000389  0x00000215 branch  0x00000174 
+ 00000390  0x00000218 sub  0x00000013 , 0x00000000 , 0x0000003e 
+ 00000391  0x00000219 branch  0x00000199 , 0x00000005 
+ 00000392  0x0000021b fetch  0x00000002 , 0x00000650 
+ 00000393  0x0000021c iadd  0x00000018 , 0x0000003f 
+ 00000394  0x0000021e isub  0x0000002b , 0x0000003f 
+ 00000395  0x0000021f store  0x00000002 , 0x00000650 
+ 00000396  0x00000220 fetch  0x00000002 , 0x00000650 
+ 00000397  0x00000221 copy  0x0000003f , 0x00000012 
+ 00000398  0x00000222 fetchr  0x00000039 , 0x00000001 , 0x00000656 
+ 00000399  0x00000223 arg  0x00004aa5 , 0x00000011 
+ 00000400  0x00000224 call  0x00006b62 
+ 00000401  0x00000225 fetch  0x00000008 , 0x00004aa5 
+ 00000402  0x00000226 fetcht  0x00000008 , 0x00004aad 
+ 00000403  0x00000227 ior  0x00000002 , 0x0000003f 
+ 00000404  0x00000228 fetcht  0x00000008 , 0x00004ab5 
+ 00000405  0x00000229 ior  0x00000002 , 0x0000003f 
+ 00000406  0x0000022a branch  0x0000019b , 0x00000034 
+ 00000407  0x0000022b fetch  0x00000002 , 0x00000650 
+ 00000408  0x0000022c branch  0x0000018a 
+ 00000409  0x0000022f storer  0x0000002b , 0x00000001 , 0x00004abd 
+ 00000410  0x00000230 rtn 
+ 00000411  0x00000232 setarg  0x00001fb0 
+ 00000412  0x00000234 fetcht  0x00000002 , 0x00000650 
+ 00000413  0x00000235 isub  0x00000002 , 0x0000003f 
+ 00000414  0x00000236 store  0x00000002 , 0x00004abd 
+ 00000415  0x00000237 copy  0x00000002 , 0x0000003f 
+ 00000416  0x00000238 iadd  0x0000002b , 0x00000012 
+ 00000417  0x00000239 fetchr  0x00000039 , 0x00000001 , 0x00000656 
+ 00000418  0x0000023a arg  0x00004aa5 , 0x00000011 
+ 00000419  0x0000023b call  0x00006b62 
+ 00000420  0x0000023c fetch  0x00000001 , 0x00004678 
+ 00000421  0x0000023d beq  0x00000000 , 0x00003f81 
+ 00000422  0x0000023e beq  0x00000001 , 0x00003f87 
+ 00000423  0x0000023f rtn 
+ 00000424  0x00000242 copy  0x00000011 , 0x00000006 
+ 00000425  0x00000243 ifetch  0x00000003 , 0x00000006 
+ 00000426  0x00000244 store  0x00000003 , 0x0000439b 
+ 00000427  0x00000245 beq  0x00000001 , 0x00004919 
+ 00000428  0x00000246 beq  0x00000007 , 0x0000495c 
+ 00000429  0x00000247 beq  0x00000009 , 0x00004938 
+ 00000430  0x00000248 beq  0x0000000b , 0x00004952 
+ 00000431  0x00000249 beq  0x00000008 , 0x00004971 
+ 00000432  0x0000024a beq  0x0000000c , 0x000001b5 
+ 00000433  0x0000024b beq  0x0000000a , 0x0000499f 
+ 00000434  0x0000024c beq  0x00000012 , 0x000049c5 
+ 00000435  0x0000024d beq  0x00000052 , 0x000049cb 
+ 00000436  0x0000024e branch  0x00002b76 
+ 00000437  0x00000251 ifetch  0x00000002 , 0x00000006 
+ 00000438  0x00000252 store  0x00000002 , 0x00000693 
+ 00000439  0x00000253 iforce  0x00000011 
+ 00000440  0x00000254 fetcht  0x00000002 , 0x0000439c 
+ 00000441  0x00000255 fetch  0x00000002 , 0x00004334 
+ 00000442  0x00000256 isub  0x00000002 , 0x0000003e 
+ 00000443  0x00000257 nbranch  0x00002d2e , 0x00000005 
+ 00000444  0x0000025b branch  0x00004999 
+ 00000445  0x0000025e fetch  0x00000001 , 0x00004aa0 
+ 00000446  0x0000025f beq  0x00000002 , 0x000001de 
+ 00000447  0x00000260 branch  0x000046cd 
+ 00000448  0x00000264 copy  0x00000002 , 0x0000003f 
+ 00000449  0x00000265 jam  0x00000005 , 0x00004a6f 
+ 00000450  0x00000266 fetcht  0x00000001 , 0x000049a6 
+ 00000451  0x00000267 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00000452  0x00000268 branch  0x0000474b , 0x00000005 
+ 00000453  0x00000269 beq  0x000000e8 , 0x000001ea 
+ 00000454  0x0000026a beq  0x000000e9 , 0x000001f0 
+ 00000455  0x0000026b beq  0x000000ea , 0x000001f4 
+ 00000456  0x0000026c beq  0x000000eb , 0x000001f8 
+ 00000457  0x0000026d beq  0x000000ec , 0x000001fc 
+ 00000458  0x0000026e beq  0x000000ed , 0x00000200 
+ 00000459  0x0000026f beq  0x000000ee , 0x00000204 
+ 00000460  0x00000270 beq  0x000000ef , 0x00000208 
+ 00000461  0x00000272 beq  0x000000f0 , 0x0000020c 
+ 00000462  0x00000273 beq  0x000000f1 , 0x00000210 
+ 00000463  0x00000274 beq  0x000000f2 , 0x00000214 
+ 00000464  0x00000275 beq  0x000000f3 , 0x00000218 
+ 00000465  0x00000276 beq  0x000000f4 , 0x0000021c 
+ 00000466  0x00000277 beq  0x000000f5 , 0x00000220 
+ 00000467  0x00000278 beq  0x000000f6 , 0x00000227 
+ 00000468  0x00000279 beq  0x000000f7 , 0x0000022b 
+ 00000469  0x0000027b beq  0x000000f8 , 0x00000233 
+ 00000470  0x0000027c beq  0x000000f9 , 0x00000237 
+ 00000471  0x0000027d beq  0x000000fa , 0x0000023b 
+ 00000472  0x0000027f beq  0x000000fb , 0x0000023f 
+ 00000473  0x00000280 beq  0x000000fc , 0x00000243 
+ 00000474  0x00000281 beq  0x000000fd , 0x00000247 
+ 00000475  0x00000282 beq  0x000000fe , 0x0000024b 
+ 00000476  0x00000284 beq  0x000000ff , 0x0000024f 
+ 00000477  0x00000285 branch  0x000046e6 
+ 00000478  0x00000289 jam  0x00000002 , 0x000049a9 
+ 00000479  0x0000028a fetch  0x00000001 , 0x000049a6 
+ 00000480  0x0000028b call  0x000046ef , 0x00000034 
+ 00000481  0x0000028c jam  0x00000000 , 0x00004aa0 
+ 00000482  0x0000028d fetch  0x00000001 , 0x00004678 
+ 00000483  0x0000028e beq  0x00000000 , 0x000001e7 
+ 00000484  0x0000028f setarg  0x00000005 
+ 00000485  0x00000290 store  0x00000003 , 0x00004a6f 
+ 00000486  0x00000291 branch  0x000046e6 
+ 00000487  0x00000294 setarg  0x00000003 
+ 00000488  0x00000295 store  0x00000003 , 0x00004a6f 
+ 00000489  0x00000296 branch  0x000046e6 
+ 00000490  0x00000299 fetch  0x00000001 , 0x00004678 
+ 00000491  0x0000029a bne  0x00000000 , 0x00004715 
+ 00000492  0x0000029b setarg  0x00000183 
+ 00000493  0x0000029e store  0x00000002 , 0x00004a70 
+ 00000494  0x0000029f jam  0x00000003 , 0x00004a6f 
+ 00000495  0x000002a0 branch  0x000046e6 
+ 00000496  0x000002a3 fetch  0x00000001 , 0x00004678 
+ 00000497  0x000002a4 bne  0x00000000 , 0x00004718 
+ 00000498  0x000002a5 setarg  0x000000ea 
+ 00000499  0x000002a6 branch  0x000001ed 
+ 00000500  0x000002a9 fetch  0x00000001 , 0x00004678 
+ 00000501  0x000002aa bne  0x00000000 , 0x0000471a 
+ 00000502  0x000002ab setarg  0x000000e9 
+ 00000503  0x000002ac branch  0x000001ed 
+ 00000504  0x000002af fetch  0x00000001 , 0x00004678 
+ 00000505  0x000002b0 bne  0x00000000 , 0x0000471c 
+ 00000506  0x000002b1 setarg  0x000000e2 
+ 00000507  0x000002b2 branch  0x000001ed 
+ 00000508  0x000002b5 fetch  0x00000001 , 0x00004678 
+ 00000509  0x000002b6 bne  0x00000000 , 0x0000471e 
+ 00000510  0x000002b7 setarg  0x000000b6 
+ 00000511  0x000002b8 branch  0x000001ed 
+ 00000512  0x000002bb fetch  0x00000001 , 0x00004678 
+ 00000513  0x000002bc bne  0x00000000 , 0x00004720 
+ 00000514  0x000002bd setarg  0x000000b5 
+ 00000515  0x000002be branch  0x000001ed 
+ 00000516  0x000002c1 fetch  0x00000001 , 0x00004678 
+ 00000517  0x000002c2 bne  0x00000000 , 0x00004722 
+ 00000518  0x000002c3 setarg  0x000000cd 
+ 00000519  0x000002c4 branch  0x000001ed 
+ 00000520  0x000002c7 fetch  0x00000001 , 0x00004678 
+ 00000521  0x000002c8 bne  0x00000000 , 0x00004724 
+ 00000522  0x000002c9 setarg  0x000000b7 
+ 00000523  0x000002ca branch  0x000001ed 
+ 00000524  0x000002cd fetch  0x00000001 , 0x00004678 
+ 00000525  0x000002ce bne  0x00000000 , 0x00004726 
+ 00000526  0x000002cf setarg  0x00000223 
+ 00000527  0x000002d0 branch  0x000001ed 
+ 00000528  0x000002d3 fetch  0x00000001 , 0x00004678 
+ 00000529  0x000002d4 bne  0x00000000 , 0x00004728 
+ 00000530  0x000002d5 setarg  0x0000018a 
+ 00000531  0x000002d6 branch  0x000001ed 
+ 00000532  0x000002d9 fetch  0x00000001 , 0x00004678 
+ 00000533  0x000002da bne  0x00000000 , 0x0000472a 
+ 00000534  0x000002db setarg  0x00000194 
+ 00000535  0x000002dc branch  0x000001ed 
+ 00000536  0x000002df fetch  0x00000001 , 0x00004678 
+ 00000537  0x000002e0 bne  0x00000000 , 0x0000472c 
+ 00000538  0x000002e1 setarg  0x0000022a 
+ 00000539  0x000002e2 branch  0x000001ed 
+ 00000540  0x000002e5 fetch  0x00000001 , 0x00004678 
+ 00000541  0x000002e6 bne  0x00000000 , 0x0000472e 
+ 00000542  0x000002e7 setarg  0x00000192 
+ 00000543  0x000002e8 branch  0x000001ed 
+ 00000544  0x000002eb fetch  0x00000001 , 0x00004678 
+ 00000545  0x000002ec bne  0x00000000 , 0x00004730 
+ 00000546  0x000002ed fetch  0x00000001 , 0x00004aa1 
+ 00000547  0x000002ee beq  0x00000002 , 0x0000020c 
+ 00000548  0x000002ef beq  0x00000003 , 0x0000020c 
+ 00000549  0x000002f0 setarg  0x00000221 
+ 00000550  0x000002f1 branch  0x000001ed 
+ 00000551  0x000002f4 fetch  0x00000001 , 0x00004678 
+ 00000552  0x000002f5 bne  0x00000000 , 0x00004732 
+ 00000553  0x000002f6 setarg  0x00000224 
+ 00000554  0x000002f7 branch  0x000001ed 
+ 00000555  0x000002fa fetch  0x00000001 , 0x00004678 
+ 00000556  0x000002fb bne  0x00000000 , 0x00004737 
+ 00000557  0x000002fc fetch  0x00000001 , 0x00004aa1 
+ 00000558  0x000002fd beq  0x00000001 , 0x00000231 
+ 00000559  0x000002fe setarg  0x000001ae 
+ 00000560  0x000002ff branch  0x000001ed 
+ 00000561  0x00000302 setarg  0x00000307 
+ 00000562  0x00000303 branch  0x000001ed 
+ 00000563  0x00000306 fetch  0x00000001 , 0x00004678 
+ 00000564  0x00000307 bne  0x00000000 , 0x0000473d 
+ 00000565  0x00000308 setarg  0x00000070 
+ 00000566  0x00000309 branch  0x000001ed 
+ 00000567  0x0000030c fetch  0x00000001 , 0x00004678 
+ 00000568  0x0000030d bne  0x00000000 , 0x0000473f 
+ 00000569  0x0000030e setarg  0x0000006f 
+ 00000570  0x0000030f branch  0x000001ed 
+ 00000571  0x00000312 fetch  0x00000001 , 0x00004678 
+ 00000572  0x00000313 bne  0x00000000 , 0x00004741 
+ 00000573  0x00000314 setarg  0x00000030 
+ 00000574  0x00000315 branch  0x000001ed 
+ 00000575  0x00000318 fetch  0x00000001 , 0x00004678 
+ 00000576  0x00000319 bne  0x00000000 , 0x00004743 
+ 00000577  0x0000031a setarg  0x000000b8 
+ 00000578  0x0000031b branch  0x000001ed 
+ 00000579  0x0000031e fetch  0x00000001 , 0x00004678 
+ 00000580  0x0000031f bne  0x00000000 , 0x00004745 
+ 00000581  0x00000320 setarg  0x00000225 
+ 00000582  0x00000321 branch  0x000001ed 
+ 00000583  0x00000324 fetch  0x00000001 , 0x00004678 
+ 00000584  0x00000325 bne  0x00000000 , 0x00004747 
+ 00000585  0x00000326 setarg  0x00000226 
+ 00000586  0x00000327 branch  0x000001ed 
+ 00000587  0x0000032a fetch  0x00000001 , 0x00004678 
+ 00000588  0x0000032b bne  0x00000000 , 0x00004749 
+ 00000589  0x0000032c setarg  0x00000227 
+ 00000590  0x0000032d branch  0x000001ed 
+ 00000591  0x00000330 fetch  0x00000001 , 0x00004678 
+ 00000592  0x00000331 bne  0x00000000 , 0x00004752 
+ 00000593  0x00000332 jam  0x00000002 , 0x00004a6f 
+ 00000594  0x00000333 setarg  0x00000002 
+ 00000595  0x00000334 store  0x00000001 , 0x00004a70 
+ 00000596  0x00000335 branch  0x000046e6 
+ 00000597  0x00000336 beq  0x000000ed , 0x00004720 
+ 00000598  0x0000033a branch  0x0000379c 
+ 00000599  0x0000033e ifetch  0x00000008 , 0x00000011 
+ 00000600  0x0000033f store  0x00000008 , 0x0000064e 
+ 00000601  0x00000341 call  0x00007057 
+ 00000602  0x00000342 call  0x00000263 
+ 00000603  0x00000343 fetch  0x00000002 , 0x00000654 
+ 00000604  0x00000344 fetcht  0x00000002 , 0x00000650 
+ 00000605  0x00000345 isub  0x00000002 , 0x0000003e 
+ 00000606  0x00000346 ncall  0x00007054 , 0x00000002 
+ 00000607  0x00000347 fetcht  0x00000002 , 0x00000652 
+ 00000608  0x00000348 isub  0x00000002 , 0x0000003e 
+ 00000609  0x00000349 ncall  0x00000266 , 0x00000002 
+ 00000610  0x0000034a branch  0x00004ed0 
+ 00000611  0x0000034d fetcht  0x00000001 , 0x00004422 
+ 00000612  0x0000034e set0  0x00000000 , 0x00000002 
+ 00000613  0x0000034f branch  0x00007059 
+ 00000614  0x00000352 fetcht  0x00000001 , 0x00004422 
+ 00000615  0x00000353 set1  0x00000000 , 0x00000002 
+ 00000616  0x00000354 branch  0x00007059 
+ 00000617  0x00000357 fetch  0x00000002 , 0x000048ab 
+ 00000618  0x00000358 store  0x00000002 , 0x00004644 
+ 00000619  0x00000359 fetch  0x00000002 , 0x000048ad 
+ 00000620  0x0000035a store  0x00000002 , 0x00004646 
+ 00000621  0x0000035b fetch  0x00000002 , 0x000048af 
+ 00000622  0x0000035c store  0x00000002 , 0x00004648 
+ 00000623  0x0000035d rtn 
+ 00000624  0x00000361 setarg  0x002c1270 
+ 00000625  0x00000362 store  0x00000003 , 0x000048ab 
+ 00000626  0x00000363 setarg  0x00014001 
+ 00000627  0x00000364 istore  0x00000003 , 0x00000005 
+ 00000628  0x00000365 rtn 
+ 00000629  0x00000369 arg  0x0000494e , 0x00000011 
+ 00000630  0x0000036a arg  0x00004963 , 0x00000012 
+ 00000631  0x0000036b arg  0x00000014 , 0x00000039 
+ 00000632  0x0000036c call  0x00007d66 
+ 00000633  0x0000036d nbranch  0x000002a0 , 0x00000005 
+ 00000634  0x0000036e branch  0x000043ba 
+ 00000635  0x00000371 call  0x0000027d 
+ 00000636  0x00000372 branch  0x000042de 
+ 00000637  0x00000375 arg  0x00000000 , 0x00000011 
+ 00000638  0x00000376 fetcht  0x00000004 , 0x00004b9a 
+ 00000639  0x00000377 copy  0x00000022 , 0x00000012 
+ 00000640  0x00000378 copy  0x00000012 , 0x0000003f 
+ 00000641  0x00000379 isub  0x00000002 , 0x0000003e 
+ 00000642  0x0000037a ncall  0x000077f4 , 0x00000002 
+ 00000643  0x0000037c copy  0x00000012 , 0x0000003f 
+ 00000644  0x0000037d increase  0x00000028 , 0x00000002 
+ 00000645  0x0000037e isub  0x00000002 , 0x0000003e 
+ 00000646  0x0000037f nbranch  0x0000028f , 0x00000002 
+ 00000647  0x00000380 increase  0x00000001 , 0x00000011 
+ 00000648  0x00000381 and  0x00000011 , 0x0000000f , 0x0000003f 
+ 00000649  0x00000382 nbranch  0x00000283 , 0x00000034 
+ 00000650  0x00000383 arg  0x00000000 , 0x00000011 
+ 00000651  0x00000384 call  0x00000294 
+ 00000652  0x00000386 copy  0x00000022 , 0x0000003f 
+ 00000653  0x00000387 store  0x00000004 , 0x00004b9a 
+ 00000654  0x00000388 rtn 
+ 00000655  0x0000038c copy  0x00000011 , 0x0000003f 
+ 00000656  0x0000038d rtn  0x00000034 
+ 00000657  0x0000038e increase  0xffffffd8 , 0x00000002 
+ 00000658  0x0000038f set0  0x0000001c , 0x00000002 
+ 00000659  0x00000390 storet  0x00000004 , 0x00004b9a 
+ 00000660  0x00000392 store  0x00000001 , 0x00004b9e 
+ 00000661  0x00000394 fetch  0x00000001 , 0x00004b9e 
+ 00000662  0x00000395 rtn  0x00000034 
+ 00000663  0x00000396 increase  0xffffffff , 0x0000003f 
+ 00000664  0x00000397 store  0x00000001 , 0x00004b9e 
+ 00000665  0x00000398 call  0x0000029b 
+ 00000666  0x00000399 branch  0x00000295 
+ 00000667  0x0000039c fetch  0x00000001 , 0x00004b99 
+ 00000668  0x0000039d rtn  0x00000034 
+ 00000669  0x0000039e jam  0x00000001 , 0x00004094 
+ 00000670  0x0000039f jam  0x00000000 , 0x00004b99 
+ 00000671  0x000003a0 rtn 
+ 00000672  0x000003a3 jam  0x00000000 , 0x00004094 
+ 00000673  0x000003a4 jam  0x00000001 , 0x00004b99 
+ 00000674  0x000003a5 branch  0x000043b1 
+ 00000675  0x000003a9 call  0x000041ab 
+ 00000676  0x000003aa call  0x000002ab 
+ 00000677  0x000003ab call  0x0000413e 
+ 00000678  0x000003ac call  0x000002e1 
+ 00000679  0x000003ae call  0x00004186 
+ 00000680  0x000003af call  0x000002cf 
+ 00000681  0x000003b1 call  0x000002b7 
+ 00000682  0x000003b3 rtn 
+ 00000683  0x000003b5 fetch  0x00000001 , 0x00004ac2 
+ 00000684  0x000003b6 rtn  0x00000034 
+ 00000685  0x000003b7 increase  0xffffffff , 0x0000003f 
+ 00000686  0x000003b8 store  0x00000001 , 0x00004ac2 
+ 00000687  0x000003b9 fetch  0x00000008 , 0x0000488e 
+ 00000688  0x000003ba bbit1  0x00000028 , 0x000002b4 
+ 00000689  0x000003bb fetch  0x00000001 , 0x00004ac2 
+ 00000690  0x000003bc branch  0x00004166 , 0x00000034 
+ 00000691  0x000003bd branch  0x0000416c 
+ 00000692  0x000003bf fetch  0x00000001 , 0x00004ac2 
+ 00000693  0x000003c0 branch  0x0000413c , 0x00000034 
+ 00000694  0x000003c1 branch  0x0000413a 
+ 00000695  0x000003c4 jam  0x00000000 , 0x00004acb 
+ 00000696  0x000003c5 fetch  0x00000002 , 0x00004750 
+ 00000697  0x000003c6 nrtn  0x00000034 
+ 00000698  0x000003c8 fetch  0x00000002 , 0x000045ef 
+ 00000699  0x000003c9 nrtn  0x00000034 
+ 00000700  0x000003ca fetch  0x00000002 , 0x000045f5 
+ 00000701  0x000003cb nrtn  0x00000034 
+ 00000702  0x000003cc fetch  0x00000001 , 0x00004ac2 
+ 00000703  0x000003cd nrtn  0x00000034 
+ 00000704  0x000003ce fetch  0x00000008 , 0x0000488e 
+ 00000705  0x000003cf rtnbit0  0x0000000b 
+ 00000706  0x000003d0 rtnbit0  0x00000029 
+ 00000707  0x000003d1 rtnbit0  0x00000002 
+ 00000708  0x000003d2 bbit1  0x0000002a , 0x0000411b 
+ 00000709  0x000003d3 bpatch  0x00000045 , 0x00004008 
+ 00000710  0x000003d4 fetch  0x00000001 , 0x00004ac6 
+ 00000711  0x000003d5 increase  0x00000001 , 0x0000003f 
+ 00000712  0x000003d6 store  0x00000001 , 0x00004ac6 
+ 00000713  0x000003d9 sub  0x0000003f , 0x00000006 , 0x0000003e 
+ 00000714  0x000003da ncall  0x00004119 , 0x00000002 
+ 00000715  0x000003db sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00000716  0x000003dc ncall  0x00004184 , 0x00000002 
+ 00000717  0x000003dd call  0x00004182 
+ 00000718  0x000003df rtn 
+ 00000719  0x000003e4 fetch  0x00000001 , 0x00004613 
+ 00000720  0x000003e5 rtneq  0x00000004 
+ 00000721  0x000003e6 fetch  0x00000001 , 0x00004678 
+ 00000722  0x000003e8 beq  0x00000000 , 0x000002d4 
+ 00000723  0x000003e9 branch  0x00004148 
+ 00000724  0x000003ec fetch  0x00000002 , 0x000045ef 
+ 00000725  0x000003ed branch  0x000002d7 , 0x00000034 
+ 00000726  0x000003ee branch  0x0000414d 
+ 00000727  0x000003f1 fetch  0x00000001 , 0x00004422 
+ 00000728  0x000003f2 bbit1  0x00000000 , 0x000002e0 
+ 00000729  0x000003f3 fetch  0x00000001 , 0x0000470d 
+ 00000730  0x000003f4 bbit1  0x00000000 , 0x000002e0 
+ 00000731  0x000003f5 fetch  0x00000002 , 0x000045f5 
+ 00000732  0x000003f6 nbranch  0x0000414b , 0x00000034 
+ 00000733  0x000003f7 fetch  0x00000001 , 0x00004ac2 
+ 00000734  0x000003f8 nrtn  0x00000034 
+ 00000735  0x000003f9 branch  0x00004172 
+ 00000736  0x000003fb rtn 
+ 00000737  0x000003fd jam  0x00000003 , 0x00004aa1 
+ 00000738  0x000003fe fetch  0x00000001 , 0x0000470d 
+ 00000739  0x000003ff rtnbit1  0x00000007 
+ 00000740  0x00000400 jam  0x00000000 , 0x00004aa1 
+ 00000741  0x00000401 rtn 
+ 00000742  0x00000405 branch  0x00004815 
+ 00000743  0x00000408 jam  0x00000000 , 0x00004a9b 
+ 00000744  0x00000409 fetch  0x00000001 , 0x00004678 
+ 00000745  0x0000040a bne  0x00000000 , 0x000045d7 
+ 00000746  0x0000040b fetch  0x00000008 , 0x0000488e 
+ 00000747  0x0000040c rtnbit0  0x00000013 
+ 00000748  0x0000040d fetch  0x00000002 , 0x000049af 
+ 00000749  0x0000040e fetcht  0x00000002 , 0x00004a97 
+ 00000750  0x0000040f isub  0x00000002 , 0x0000003e 
+ 00000751  0x00000410 branch  0x000002f4 , 0x00000005 
+ 00000752  0x00000411 byteswap  0x00000002 , 0x00000002 
+ 00000753  0x00000412 isub  0x00000002 , 0x0000003e 
+ 00000754  0x00000413 branch  0x000002f4 , 0x00000005 
+ 00000755  0x00000414 branch  0x000054e6 
+ 00000756  0x00000416 branch  0x00004680 
+ 00008192  0x0000041e call  0x00002369 
+ 00008193  0x00000421 bpatch  0x00000000 , 0x00004000 
+ 00008194  0x00000422 clear_stack 
+ 00008195  0x00000424 call  0x000069e4 
+ 00008196  0x00000425 call  0x00003717 
+ 00008197  0x00000426 call  0x00002244 
+ 00008198  0x00000427 call  0x00006ca3 
+ 00008199  0x00000428 call  0x00002347 
+ 00008200  0x00000429 call  0x000068d2 
+ 00008201  0x0000042a bpatch  0x00000001 , 0x00004000 
+ 00008202  0x0000042b call  0x0000775d 
+ 00008203  0x0000042c call  0x0000370a 
+ 00008204  0x0000042d call  0x00007435 
+ 00008205  0x0000042f call  0x00002421 , 0x0000002b 
+ 00008206  0x00000431 bpatch  0x00000002 , 0x00004000 
+ 00008207  0x00000432 call  0x00007540 
+ 00008208  0x00000433 call  0x00007436 
+ 00008209  0x00000434 call  0x00002a23 
+ 00008210  0x00000435 call  0x0000202a 
+ 00008211  0x00000436 call  0x00003722 
+ 00008212  0x00000437 call  0x00002018 
+ 00008213  0x00000438 call  0x000030ed 
+ 00008214  0x00000439 call  0x00002463 
+ 00008215  0x0000043a branch  0x0000200e 
+ 00008216  0x0000043d call  0x0000201d 
+ 00008217  0x0000043e rtnmark0  0x00000009 
+ 00008218  0x0000043f set0  0x00000009 , 0x00000000 
+ 00008219  0x00000440 call  0x00002041 
+ 00008220  0x00000441 branch  0x00002591 
+ 00008221  0x00000444 bpatch  0x00000003 , 0x00004000 
+ 00008222  0x00000445 call  0x00002066 
+ 00008223  0x00000446 nbranch  0x00002025 , 0x00000005 
+ 00008224  0x00000447 call  0x00002036 
+ 00008225  0x00000448 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008226  0x00000449 ifetch  0x00000001 , 0x00000006 
+ 00008227  0x0000044a bbit1  0x00000000 , 0x0000250d 
+ 00008228  0x0000044d rtn 
+ 00008229  0x00000450 jam  0x00000000 , 0x00000006 
+ 00008230  0x00000451 call  0x00002047 
+ 00008231  0x00000452 copy  0x00000039 , 0x0000003e 
+ 00008232  0x00000453 rtn  0x00000005 
+ 00008233  0x00000454 branch  0x0000233e 
+ 00008234  0x0000045c fetch  0x00000001 , 0x00004114 
+ 00008235  0x0000045d rtn  0x00000034 
+ 00008236  0x0000045e beq  0x0000001b , 0x00002033 
+ 00008237  0x0000045f call  0x0000205f 
+ 00008238  0x00000460 rtn  0x00000005 
+ 00008239  0x00000461 call  0x00002062 
+ 00008240  0x00000462 rtn  0x00000005 
+ 00008241  0x00000464 jam  0x00000000 , 0x00004114 
+ 00008242  0x00000465 rtn 
+ 00008243  0x00000468 jam  0x0000001b , 0x0000433e 
+ 00008244  0x00000469 jam  0x00000000 , 0x00004114 
+ 00008245  0x0000046a rtn 
+ 00008246  0x0000046f bpatch  0x00000004 , 0x00004000 
+ 00008247  0x00000470 set1  0x00000009 , 0x00000000 
+ 00008248  0x00000471 deposit  0x00000011 
+ 00008249  0x00000472 store  0x00000002 , 0x0000000a 
+ 00008250  0x00000473 force  0x00000053 , 0x00000039 
+ 00008251  0x00000474 arg  0x00000168 , 0x00000005 
+ 00008252  0x00000475 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008253  0x00000476 ifetch  0x00000001 , 0x00000006 
+ 00008254  0x00000477 copy  0x00000011 , 0x00000006 
+ 00008255  0x00000478 bbit1  0x00000000 , 0x00007cdc 
+ 00008256  0x00000479 rtn 
+ 00008257  0x0000047c bpatch  0x00000005 , 0x00004000 
+ 00008258  0x0000047d fetch  0x00000002 , 0x0000000a 
+ 00008259  0x0000047e iforce  0x00000005 
+ 00008260  0x0000047f force  0x00000053 , 0x00000039 
+ 00008261  0x00000480 arg  0x00000168 , 0x00000006 
+ 00008262  0x00000481 branch  0x00007cdc 
+ 00008263  0x00000486 arg  0x00000001 , 0x00000039 
+ 00008264  0x00000487 fetcht  0x00000001 , 0x00000006 
+ 00008265  0x00000489 increase  0x00000001 , 0x00000002 
+ 00008266  0x0000048a compare  0x00000001 , 0x00000002 , 0x000000ff 
+ 00008267  0x0000048b nbranch  0x0000204d , 0x00000001 
+ 00008268  0x0000048c arg  0x00000000 , 0x00000002 
+ 00008269  0x0000048e storet  0x00000001 , 0x00000006 
+ 00008270  0x0000048f mul32  0x00000002 , 0x00000053 , 0x0000003f 
+ 00008271  0x00000490 arg  0x00004040 , 0x00000011 
+ 00008272  0x00000491 iadd  0x00000011 , 0x00000011 
+ 00008273  0x00000492 ifetch  0x00000001 , 0x00000011 
+ 00008274  0x00000493 bbit1  0x00000001 , 0x00002054 
+ 00008275  0x00000494 rtnbit1  0x00000000 
+ 00008276  0x00000496 loop  0x00002049 
+ 00008277  0x00000497 rtn 
+ 00008278  0x0000049a bpatch  0x00000006 , 0x00004000 
+ 00008279  0x0000049b arg  0x00002073 , 0x00000013 
+ 00008280  0x0000049c call  0x00002069 
+ 00008281  0x0000049d nrtn  0x00000005 
+ 00008282  0x0000049e deposit  0x00000011 
+ 00008283  0x0000049f store  0x00000002 , 0x0000000a 
+ 00008284  0x000004a0 branch  0x00007dba 
+ 00008285  0x000004a6 arg  0x000020ad , 0x00000013 
+ 00008286  0x000004a7 branch  0x00002069 
+ 00008287  0x000004ad fetcht  0x00000001 , 0x00004115 
+ 00008288  0x000004af arg  0x0000207b , 0x00000013 
+ 00008289  0x000004b0 branch  0x00002069 
+ 00008290  0x000004b4 bpatch  0x00000007 , 0x00004000 
+ 00008291  0x000004b5 fetcht  0x00000006 , 0x00004116 
+ 00008292  0x000004b7 arg  0x00002075 , 0x00000013 
+ 00008293  0x000004b8 branch  0x00002069 
+ 00008294  0x000004bb arg  0x00002081 , 0x00000013 
+ 00008295  0x000004bc branch  0x00002069 
+ 00008296  0x000004bf arg  0x000020c7 , 0x00000013 
+ 00008297  0x000004c1 bpatch  0x00000008 , 0x00004001 
+ 00008298  0x000004c2 arg  0x00004040 , 0x00000011 
+ 00008299  0x000004c3 arg  0x00000001 , 0x00000039 
+ 00008300  0x000004c5 ifetch  0x00000001 , 0x00000011 
+ 00008301  0x000004c6 copy  0x00000013 , 0x0000003d 
+ 00008302  0x000004c8 bpatch  0x00000009 , 0x00004001 
+ 00008303  0x000004c9 increase  0x00000053 , 0x00000011 
+ 00008304  0x000004ca loop  0x0000206c 
+ 00008305  0x000004cb force  0x00000001 , 0x0000003e 
+ 00008306  0x000004cc rtn 
+ 00008307  0x000004cf bbit1  0x00000000 , 0x0000206e 
+ 00008308  0x000004d0 branch  0x00007dba 
+ 00008309  0x000004d3 bbit0  0x00000000 , 0x0000206e 
+ 00008310  0x000004d5 add  0x00000011 , 0x00000010 , 0x00000006 
+ 00008311  0x000004d6 ifetch  0x00000006 , 0x00000006 
+ 00008312  0x000004d7 isub  0x00000002 , 0x0000003e 
+ 00008313  0x000004d8 rtn  0x00000005 
+ 00008314  0x000004d9 branch  0x0000206e 
+ 00008315  0x000004dc bbit0  0x00000000 , 0x0000206e 
+ 00008316  0x000004dd add  0x00000011 , 0x00000016 , 0x00000006 
+ 00008317  0x000004de ifetch  0x00000001 , 0x00000006 
+ 00008318  0x000004df isub  0x00000002 , 0x0000003e 
+ 00008319  0x000004e0 rtn  0x00000005 
+ 00008320  0x000004e1 branch  0x0000206e 
+ 00008321  0x000004e4 bbit0  0x00000001 , 0x0000206e 
+ 00008322  0x000004e6 call  0x000020b4 
+ 00008323  0x000004e7 call  0x0000209d 
+ 00008324  0x000004e8 isub  0x00000002 , 0x0000003f 
+ 00008325  0x000004e9 increase  0x00000001 , 0x0000003f 
+ 00008326  0x000004ea branch  0x00002097 , 0x00000002 
+ 00008327  0x000004eb copy  0x00000006 , 0x00000012 
+ 00008328  0x000004ec store  0x00000009 , 0x00000656 
+ 00008329  0x000004ed bpatch  0x0000000a , 0x00004001 
+ 00008330  0x000004ee fetch  0x00000001 , 0x00004484 
+ 00008331  0x000004ef nbranch  0x00002090 , 0x00000034 
+ 00008332  0x000004f0 fetch  0x00000009 , 0x00000656 
+ 00008333  0x000004f1 copy  0x00000012 , 0x00000006 
+ 00008334  0x000004f2 increase  0x00000005 , 0x0000003f 
+ 00008335  0x000004f3 branch  0x00002093 
+ 00008336  0x000004f6 fetch  0x00000009 , 0x00000656 
+ 00008337  0x000004f7 copy  0x00000012 , 0x00000006 
+ 00008338  0x000004f8 increase  0x00000014 , 0x0000003f 
+ 00008339  0x000004fa nbranch  0x0000206e , 0x00000002 
+ 00008340  0x000004fc copy  0x00000002 , 0x00000021 
+ 00008341  0x000004fd call  0x000020c0 
+ 00008342  0x000004fe branch  0x00007dba 
+ 00008343  0x00000502 iforce  0x00000012 
+ 00008344  0x00000503 add  0x00000011 , 0x00000002 , 0x00000006 
+ 00008345  0x00000504 ifetch  0x00000002 , 0x00000006 
+ 00008346  0x00000505 branch  0x00002094 , 0x00000034 
+ 00008347  0x00000506 call  0x000020c0 
+ 00008348  0x00000507 branch  0x00002082 
+ 00008349  0x0000050a rshift16  0x0000003f , 0x0000000b 
+ 00008350  0x0000050b rshift8  0x0000000b , 0x0000000b 
+ 00008351  0x0000050c branch  0x000020a7 , 0x00000005 
+ 00008352  0x0000050d compare  0x0000000f , 0x0000000b , 0x0000000f 
+ 00008353  0x0000050e nrtn  0x00000001 
+ 00008354  0x0000050f rshift16  0x00000002 , 0x0000000b 
+ 00008355  0x00000510 rshift8  0x0000000b , 0x0000000b 
+ 00008356  0x00000511 nrtn  0x00000005 
+ 00008357  0x00000512 set1  0x0000001c , 0x00000002 
+ 00008358  0x00000513 rtn 
+ 00008359  0x00000515 rshift16  0x00000002 , 0x0000000b 
+ 00008360  0x00000516 rshift8  0x0000000b , 0x0000000b 
+ 00008361  0x00000517 compare  0x0000000f , 0x0000000b , 0x0000000f 
+ 00008362  0x00000518 nrtn  0x00000001 
+ 00008363  0x00000519 set1  0x0000001c , 0x0000003f 
+ 00008364  0x0000051a rtn 
+ 00008365  0x0000051d bbit0  0x00000000 , 0x0000206e 
+ 00008366  0x0000051e branch  0x00007dba 
+ 00008367  0x00000522 bbit0  0x00000000 , 0x0000206e 
+ 00008368  0x00000523 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008369  0x00000524 ifetch  0x00000001 , 0x00000006 
+ 00008370  0x00000525 bbit1  0x00000000 , 0x0000206e 
+ 00008371  0x00000526 rtn 
+ 00008372  0x00000529 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00008373  0x0000052a ifetcht  0x00000001 , 0x00000006 
+ 00008374  0x0000052b deposit  0x00000022 
+ 00008375  0x0000052c isolate1  0x00000001 , 0x00000002 
+ 00008376  0x0000052d add  0x00000011 , 0x00000004 , 0x00000006 
+ 00008377  0x0000052e ifetcht  0x00000004 , 0x00000006 
+ 00008378  0x0000052f rtn  0x00000001 
+ 00008379  0x00000530 add  0x00000011 , 0x00000008 , 0x00000006 
+ 00008380  0x00000531 ifetch  0x00000006 , 0x00000006 
+ 00008381  0x00000532 call  0x00002109 
+ 00008382  0x00000533 deposit  0x00000028 
+ 00008383  0x00000534 rtn 
+ 00008384  0x00000537 add  0x00000011 , 0x00000002 , 0x00000006 
+ 00008385  0x00000538 add  0x00000011 , 0x00000004 , 0x00000005 
+ 00008386  0x00000539 ifetch  0x00000002 , 0x00000006 
+ 00008387  0x0000053a iadd  0x00000002 , 0x0000000b 
+ 00008388  0x0000053b deposit  0x0000000b 
+ 00008389  0x0000053c istore  0x00000004 , 0x00000005 
+ 00008390  0x0000053d branch  0x000025de 
+ 00008391  0x00000541 bbit0  0x00000001 , 0x0000206e 
+ 00008392  0x00000542 call  0x000020b4 
+ 00008393  0x00000543 iadd  0x0000001b , 0x0000003f 
+ 00008394  0x00000544 iadd  0x0000001b , 0x0000003f 
+ 00008395  0x00000545 iadd  0x00000007 , 0x0000003f 
+ 00008396  0x00000546 isub  0x00000002 , 0x0000003e 
+ 00008397  0x00000547 nbranch  0x0000206e , 0x00000002 
+ 00008398  0x00000548 branch  0x00007dba 
+ 00008399  0x0000054d bpatch  0x0000000b , 0x00004001 
+ 00008400  0x0000054e disable  0x0000003a 
+ 00008401  0x0000054f disable  0x0000001d 
+ 00008402  0x00000550 disable  0x0000001c 
+ 00008403  0x00000551 disable  0x0000000d 
+ 00008404  0x00000552 disable  0x0000000c 
+ 00008405  0x00000553 disable  0x00000009 
+ 00008406  0x00000554 disable  0x0000000e 
+ 00008407  0x00000555 disable  0x00000007 
+ 00008408  0x00000556 branch  0x00002155 , 0x00000021 
+ 00008409  0x00000557 until  0x0000003e , 0x00000027 
+ 00008410  0x00000558 nop  0x00000064 
+ 00008411  0x00000559 branch  0x00002155 
+ 00008412  0x0000055f bpatch  0x0000000c , 0x00004001 
+ 00008413  0x00000560 disable  0x00000010 
+ 00008414  0x00000561 copy  0x00000002 , 0x0000001b 
+ 00008415  0x00000562 call  0x00002068 
+ 00008416  0x00000563 disable  0x00000028 
+ 00008417  0x00000564 nrtn  0x00000005 
+ 00008418  0x00000565 force  0x00000000 , 0x0000001b 
+ 00008419  0x00000566 branch  0x00007dbc 
+ 00008420  0x0000056a bpatch  0x0000000d , 0x00004001 
+ 00008421  0x0000056b until  0x0000003e , 0x00000022 
+ 00008422  0x0000056c deposit  0x0000001a 
+ 00008423  0x0000056d iforce  0x00000006 
+ 00008424  0x0000056e rshift16 , 0x0000003f , 0x0000003f 
+ 00008425  0x0000056f isub  0x00000022 , 0x00000039 
+ 00008426  0x00000570 and_into  0x00000003 , 0x00000039 
+ 00008427  0x00000571 nbranch  0x000020ee , 0x00000005 
+ 00008428  0x00000572 force  0x00000000 , 0x0000003f 
+ 00008429  0x00000573 branch  0x000020f2 
+ 00008430  0x00000575 fetcht  0x00000002 , 0x00000044 
+ 00008431  0x00000576 force  0x00000000 , 0x0000003f 
+ 00008432  0x00000578 iadd  0x00000002 , 0x0000003f 
+ 00008433  0x00000579 loop  0x000020f0 
+ 00008434  0x0000057b iadd  0x00000006 , 0x0000003f 
+ 00008435  0x0000057c div  0x0000003f , 0x0000000c 
+ 00008436  0x0000057d call  0x00007d61 
+ 00008437  0x0000057e store  0x00000002 , 0x0000002e 
+ 00008438  0x0000057f rtn 
+ 00008439  0x00000582 bpatch  0x0000000e , 0x00004001 
+ 00008440  0x00000583 deposit  0x0000001a 
+ 00008441  0x00000584 copy  0x00000019 , 0x00000002 
+ 00008442  0x00000585 isub  0x00000002 , 0x0000003e 
+ 00008443  0x00000586 nsetflag  0x00000002 , 0x0000002c , 0x0000003f 
+ 00008444  0x00000587 isub  0x00000002 , 0x00000002 
+ 00008445  0x00000588 fetch  0x00000002 , 0x00000044 
+ 00008446  0x00000589 isolate0  0x0000000f , 0x00000002 
+ 00008447  0x0000058a branch  0x00002105 , 0x00000001 
+ 00008448  0x0000058b copy  0x00000002 , 0x00000030 
+ 00008449  0x0000058c arg  0x00010000 , 0x00000002 
+ 00008450  0x0000058d fetch  0x00000002 , 0x00000044 
+ 00008451  0x0000058e isub  0x00000002 , 0x0000003f 
+ 00008452  0x0000058f iadd  0x00000030 , 0x00000002 
+ 00008453  0x00000592 storet  0x00000006 , 0x00000170 
+ 00008454  0x00000593 rtn 
+ 00008455  0x00000596 disable  0x00000030 
+ 00008456  0x00000597 fetch  0x00000006 , 0x00000170 
+ 00008457  0x00000599 iadd  0x00000019 , 0x00000030 
+ 00008458  0x0000059a increase  0x0000000a , 0x00000030 
+ 00008459  0x0000059b fetch  0x00000002 , 0x00000044 
+ 00008460  0x0000059c isub  0x00000030 , 0x0000003f 
+ 00008461  0x0000059d isolate0  0x0000000f , 0x0000003f 
+ 00008462  0x0000059e branch  0x00002115 , 0x00000001 
+ 00008463  0x0000059f setarg  0x00010000 
+ 00008464  0x000005a0 fetchr  0x00000018 , 0x00000002 , 0x00000044 
+ 00008465  0x000005a1 isub  0x00000018 , 0x0000003f 
+ 00008466  0x000005a2 iadd  0x00000030 , 0x00000030 
+ 00008467  0x000005a4 copy  0x00000030 , 0x0000001a 
+ 00008468  0x000005a5 rtn 
+ 00008469  0x000005a7 force  0x00000000 , 0x0000003e 
+ 00008470  0x000005a8 branch  0x00002113 
+ 00008471  0x000005b0 rshift3  0x0000003f , 0x0000003f 
+ 00008472  0x000005b1 ifetchr  0x00000011 , 0x00000001 , 0x00000005 
+ 00008473  0x000005b2 ixor  0x00000011 , 0x0000003f 
+ 00008474  0x000005b3 isolate0  0x00000006 , 0x0000003f 
+ 00008475  0x000005b4 branch  0x0000211e 
+ 00008476  0x000005b7 isolate0  0x00000000 , 0x0000003e 
+ 00008477  0x000005b9 arg  0x00008ac2 , 0x00000005 
+ 00008478  0x000005bb ifetch  0x00000001 , 0x00000005 
+ 00008479  0x000005bc qsetflag  0x00000001 , 0x0000003f 
+ 00008480  0x000005bd istore  0x00000001 , 0x00000005 
+ 00008481  0x000005be rtn 
+ 00008482  0x000005c1 nop  0x0000003c 
+ 00008483  0x000005c4 setarg  0x00000f00 
+ 00008484  0x000005c5 store  0x00000002 , 0x00008982 
+ 00008485  0x000005c6 setarg  0x00000ff0 
+ 00008486  0x000005c7 store  0x00000002 , 0x00008984 
+ 00008487  0x000005c8 jam  0x00000009 , 0x00008981 
+ 00008488  0x000005c9 jam  0x00000003 , 0x00008981 
+ 00008489  0x000005ca jam  0x00000006 , 0x00008980 
+ 00008490  0x000005cb nop  0x0000003c 
+ 00008491  0x000005cc arg  0x00000000 , 0x00000011 
+ 00008492  0x000005cd arg  0x00000000 , 0x00000012 
+ 00008493  0x000005ce arg  0x00000010 , 0x00000039 
+ 00008494  0x000005cf arg  0x00000f00 , 0x00000006 
+ 00008495  0x000005d1 ifetch  0x00000002 , 0x00000006 
+ 00008496  0x000005d2 iadd  0x00000011 , 0x00000011 
+ 00008497  0x000005d3 ifetch  0x00000002 , 0x00000006 
+ 00008498  0x000005d4 iadd  0x00000012 , 0x00000012 
+ 00008499  0x000005d5 loop  0x0000212f 
+ 00008500  0x000005d6 rtn 
+ 00008501  0x000005d9 bpatch  0x0000000f , 0x00004001 
+ 00008502  0x000005da rtn  0x0000002b 
+ 00008503  0x000005db call  0x00002164 
+ 00008504  0x000005dc arg  0x00000027 , 0x00000002 
+ 00008505  0x000005dd call  0x00002173 
+ 00008506  0x000005de call  0x000021aa 
+ 00008507  0x000005df jam  0x0000007f , 0x00008a25 
+ 00008508  0x000005e0 jam  0x0000001a , 0x00008a30 
+ 00008509  0x000005e1 jam  0x00000078 , 0x00008a31 
+ 00008510  0x000005e2 jam  0x000000b2 , 0x00008a8f 
+ 00008511  0x000005e3 jam  0x00000000 , 0x00008ac2 
+ 00008512  0x000005e4 jam  0x00000000 , 0x00008ac3 
+ 00008513  0x000005e5 arg  0x00000006 , 0x00000007 
+ 00008514  0x000005e6 call  0x00002122 
+ 00008515  0x000005e7 isolate1  0x0000000d , 0x00000011 
+ 00008516  0x000005e8 call  0x0000211d 
+ 00008517  0x000005e9 isolate1  0x0000000d , 0x00000012 
+ 00008518  0x000005ea call  0x0000211e 
+ 00008519  0x000005eb arg  0x00000005 , 0x00000007 
+ 00008520  0x000005ed call  0x0000211c 
+ 00008521  0x000005ee call  0x0000211e 
+ 00008522  0x000005ef call  0x00002122 
+ 00008523  0x000005f0 arg  0x00008ac2 , 0x00000005 
+ 00008524  0x000005f1 rshift4  0x00000011 , 0x0000003f 
+ 00008525  0x000005f2 call  0x00002117 
+ 00008526  0x000005f3 rshift4  0x00000012 , 0x0000003f 
+ 00008527  0x000005f4 call  0x00002117 
+ 00008528  0x000005f5 increase  0xffffffff , 0x00000007 
+ 00008529  0x000005f6 branch  0x00002148 , 0x00000002 
+ 00008530  0x000005f7 jam  0x00000052 , 0x00008a8f 
+ 00008531  0x000005f8 jam  0x00000002 , 0x00008a30 
+ 00008532  0x000005f9 jam  0x00000000 , 0x00008981 
+ 00008533  0x000005fc bpatch  0x00000010 , 0x00004002 
+ 00008534  0x000005fd call  0x000066e5 
+ 00008535  0x000005fe disable  0x00000020 
+ 00008536  0x000005ff disable  0x00000021 
+ 00008537  0x00000600 setarg  0x00000200 
+ 00008538  0x00000601 store  0x00000004 , 0x00008a23 
+ 00008539  0x00000602 jam  0x000000fa , 0x00008a01 
+ 00008540  0x00000603 nop  0x0000000c 
+ 00008541  0x00000604 jam  0x00000000 , 0x00008a0f 
+ 00008542  0x00000605 jam  0x0000001a , 0x00008a12 
+ 00008543  0x00000606 jam  0x0000002b , 0x00008a14 
+ 00008544  0x00000607 force  0x00000008 , 0x00000015 
+ 00008545  0x00000608 force  0x00000000 , 0x00000015 
+ 00008546  0x00000609 jam  0x00000000 , 0x00008900 
+ 00008547  0x0000060a branch  0x000022f3 
+ 00008548  0x0000060d bpatch  0x00000011 , 0x00004002 
+ 00008549  0x0000060e jam  0x00000060 , 0x00008a0f 
+ 00008550  0x0000060f jam  0x000000aa , 0x00008a10 
+ 00008551  0x00000610 jam  0x0000007a , 0x00008a12 
+ 00008552  0x00000611 jam  0x00000000 , 0x00008a25 
+ 00008553  0x00000612 jam  0x00000000 , 0x00008a26 
+ 00008554  0x00000613 nop  0x0000003c 
+ 00008555  0x00000614 jam  0x00000020 , 0x00008a20 
+ 00008556  0x00000615 jam  0x000000f5 , 0x00008a23 
+ 00008557  0x00000616 jam  0x00000012 , 0x00008a24 
+ 00008558  0x00000617 jam  0x00000010 , 0x00008a24 
+ 00008559  0x00000618 nop  0x0000003c 
+ 00008560  0x00000619 jam  0x00000060 , 0x00008a12 
+ 00008561  0x0000061a jam  0x000000dd , 0x00008a23 
+ 00008562  0x0000061b rtn 
+ 00008563  0x0000061e bpatch  0x00000012 , 0x00004002 
+ 00008564  0x0000061f jam  0x00000001 , 0x00008900 
+ 00008565  0x00000620 jam  0x0000009d , 0x00008a23 
+ 00008566  0x00000621 jam  0x00000002 , 0x00008a24 
+ 00008567  0x00000622 nop  0x00000014 
+ 00008568  0x00000623 jam  0x00000065 , 0x00008a70 
+ 00008569  0x00000624 jam  0x0000009f , 0x00008a23 
+ 00008570  0x00000625 call  0x00002193 
+ 00008571  0x00000626 storet  0x00000001 , 0x00000008 
+ 00008572  0x00000627 increase  0x00000001 , 0x00000002 
+ 00008573  0x0000062c bpatch  0x00000013 , 0x00004002 
+ 00008574  0x0000062d rshift4  0x00000002 , 0x0000003f 
+ 00008575  0x0000062e arg  0x00004135 , 0x00000006 
+ 00008576  0x0000062f iadd  0x00000006 , 0x00000006 
+ 00008577  0x00000630 ifetch  0x00000001 , 0x00000006 
+ 00008578  0x00000631 fetchr  0x00000011 , 0x00000001 , 0x00008a71 
+ 00008579  0x00000632 and_into  0x0000000f , 0x00000011 
+ 00008580  0x00000633 ior  0x00000011 , 0x0000003f 
+ 00008581  0x00000634 store  0x00000001 , 0x00008a71 
+ 00008582  0x00000635 call  0x000021d4 
+ 00008583  0x00000636 nop  0x00000090 
+ 00008584  0x00000637 fetch  0x00000001 , 0x00004099 
+ 00008585  0x00000638 beq  0x00000018 , 0x0000218b 
+ 00008586  0x00000639 nop  0x00000024 
+ 00008587  0x0000063b jam  0x00000080 , 0x00008a20 
+ 00008588  0x0000063c rtn 
+ 00008589  0x00000640 setarg  0x00008312 
+ 00008590  0x00000641 store  0x00000002 , 0x00008907 
+ 00008591  0x00000642 branch  0x0000219b 
+ 00008592  0x00000645 setarg  0x00004189 
+ 00008593  0x00000646 store  0x00000002 , 0x00008907 
+ 00008594  0x00000647 branch  0x000021a6 
+ 00008595  0x0000064b bpatch  0x00000014 , 0x00004002 
+ 00008596  0x0000064c jam  0x00000011 , 0x00008a82 
+ 00008597  0x0000064d jam  0x00000012 , 0x00008a8d 
+ 00008598  0x0000064e jam  0x0000000a , 0x00008a8e 
+ 00008599  0x0000064f fetch  0x00000001 , 0x00004099 
+ 00008600  0x00000650 beq  0x00000010 , 0x0000218d 
+ 00008601  0x00000651 setarg  0x00005762 
+ 00008602  0x00000652 store  0x00000002 , 0x00008907 
+ 00008603  0x00000654 jam  0x00000003 , 0x00008901 
+ 00008604  0x00000655 jam  0x00000003 , 0x00008930 
+ 00008605  0x00000656 rtnmark1  0x0000002d 
+ 00008606  0x00000657 jam  0x00000001 , 0x00008901 
+ 00008607  0x00000658 jam  0x00000007 , 0x00008a82 
+ 00008608  0x00000659 jam  0x00000044 , 0x00008a8d 
+ 00008609  0x0000065a jam  0x0000000a , 0x00008a8e 
+ 00008610  0x0000065b fetch  0x00000001 , 0x00004099 
+ 00008611  0x0000065c beq  0x00000010 , 0x00002190 
+ 00008612  0x0000065d setarg  0x00002bb1 
+ 00008613  0x0000065e store  0x00000002 , 0x00008907 
+ 00008614  0x00000660 rtnmark0  0x0000002f 
+ 00008615  0x00000661 jam  0x00000024 , 0x00008930 
+ 00008616  0x00000662 jam  0x00000005 , 0x00008901 
+ 00008617  0x00000663 rtn 
+ 00008618  0x00000666 bpatch  0x00000015 , 0x00004002 
+ 00008619  0x00000667 call  0x000066df 
+ 00008620  0x00000668 call  0x000021be 
+ 00008621  0x00000669 force  0x00000008 , 0x00000015 
+ 00008622  0x0000066a force  0x00000000 , 0x00000015 
+ 00008623  0x0000066c setarg  0x000aaada 
+ 00008624  0x0000066d store  0x00000003 , 0x00008a0f 
+ 00008625  0x0000066e jam  0x00000040 , 0x00008a25 
+ 00008626  0x0000066f jam  0x00000010 , 0x00008a26 
+ 00008627  0x00000670 nop  0x0000003c 
+ 00008628  0x00000671 jam  0x000000fb , 0x00008a01 
+ 00008629  0x00000672 jam  0x000000ff , 0x00008a25 
+ 00008630  0x00000673 jam  0x00000030 , 0x00008a26 
+ 00008631  0x00000674 jam  0x000000fe , 0x00008a16 
+ 00008632  0x00000675 nop  0x00000014 
+ 00008633  0x00000676 jam  0x00000000 , 0x00008a10 
+ 00008634  0x00000677 jam  0x00000008 , 0x00008a11 
+ 00008635  0x00000678 nop  0x00000078 
+ 00008636  0x00000679 jam  0x0000000d , 0x00008900 
+ 00008637  0x0000067a rtn 
+ 00008638  0x0000067e fetch  0x00000001 , 0x00004143 
+ 00008639  0x0000067f beq  0x000000ff , 0x000021c5 
+ 00008640  0x00000680 arg  0x00004144 , 0x00000006 
+ 00008641  0x00000681 iadd  0x00000006 , 0x00000006 
+ 00008642  0x00000682 ifetch  0x00000001 , 0x00000006 
+ 00008643  0x00000683 store  0x00000001 , 0x00008961 
+ 00008644  0x00000684 jam  0x00000027 , 0x00008960 
+ 00008645  0x00000687 fetcht  0x00000001 , 0x00004147 
+ 00008646  0x00000688 fetch  0x00000001 , 0x00008960 
+ 00008647  0x00000689 ior  0x00000002 , 0x0000003f 
+ 00008648  0x0000068a store  0x00000001 , 0x00008960 
+ 00008649  0x0000068b rtn 
+ 00008650  0x0000068f jam  0x00000003 , 0x00008900 
+ 00008651  0x00000690 jam  0x00000002 , 0x00008a24 
+ 00008652  0x00000691 nop  0x00000014 
+ 00008653  0x00000692 jam  0x00000065 , 0x00008a70 
+ 00008654  0x00000693 jam  0x000000df , 0x00008a23 
+ 00008655  0x00000694 call  0x00002193 
+ 00008656  0x00000695 call  0x000021ee 
+ 00008657  0x00000696 storet  0x00000001 , 0x00000008 
+ 00008658  0x00000697 increase  0x00000002 , 0x00000002 
+ 00008659  0x00000698 branch  0x0000217d 
+ 00008660  0x0000069d bpatch  0x00000016 , 0x00004002 
+ 00008661  0x0000069e setarg  0x00000960 
+ 00008662  0x0000069f iadd  0x00000002 , 0x0000003f 
+ 00008663  0x000006a0 copy  0x0000003f , 0x00000011 
+ 00008664  0x000006a1 fetcht  0x00000001 , 0x00004099 
+ 00008665  0x000006a2 rshift  0x00000002 , 0x00000002 
+ 00008666  0x000006a3 idiv  0x00000002 
+ 00008667  0x000006a5 call  0x00007d64 
+ 00008668  0x000006a6 quotient  0x0000003f 
+ 00008669  0x000006a7 rshift8  0x0000003f , 0x00000007 
+ 00008670  0x000006a8 storer  0x00000007 , 0x00000001 , 0x0000890a 
+ 00008671  0x000006a9 store  0x00000001 , 0x00008909 
+ 00008672  0x000006aa remainder  0x0000003f 
+ 00008673  0x000006ab lshift16  0x0000003f , 0x0000003f 
+ 00008674  0x000006ac lshift8  0x0000003f , 0x0000003f 
+ 00008675  0x000006ad idiv  0x00000002 
+ 00008676  0x000006ae call  0x00007d64 
+ 00008677  0x000006af quotient  0x0000003f 
+ 00008678  0x000006b0 store  0x00000003 , 0x0000890b 
+ 00008679  0x000006b5 storer  0x00000011 , 0x00000001 , 0x00008a22 
+ 00008680  0x000006b6 rshift8  0x00000011 , 0x00000011 
+ 00008681  0x000006b7 storer  0x00000011 , 0x00000001 , 0x00008a21 
+ 00008682  0x000006b8 jam  0x000000a0 , 0x00008a20 
+ 00008683  0x000006b9 jam  0x000000e0 , 0x00008a20 
+ 00008684  0x000006ba jam  0x000000a0 , 0x00008a20 
+ 00008685  0x000006bb rtn 
+ 00008686  0x000006be add  0x00000002 , 0x00000002 , 0x0000003f 
+ 00008687  0x000006bf rshift3  0x0000003f , 0x0000003f 
+ 00008688  0x000006c0 and_into  0xfffffffe , 0x0000003f 
+ 00008689  0x000006c1 arg  0x0000411d , 0x00000006 
+ 00008690  0x000006c2 bmark0  0x0000002d , 0x000021f4 
+ 00008691  0x000006c3 increase  0x0000000c , 0x00000006 
+ 00008692  0x000006c5 iadd  0x00000006 , 0x00000006 
+ 00008693  0x000006c6 ifetchr  0x00000011 , 0x00000002 , 0x00000006 
+ 00008694  0x000006c7 ifetch  0x00000002 , 0x00000006 
+ 00008695  0x000006c8 isub  0x00000011 , 0x0000003f 
+ 00008696  0x000006c9 add  0x00000002 , 0x00000002 , 0x00000006 
+ 00008697  0x000006ca and_into  0x0000000f , 0x00000006 
+ 00008698  0x000006cb imul32  0x00000006 , 0x0000003f 
+ 00008699  0x000006cc rshift4  0x0000003f , 0x0000003f 
+ 00008700  0x000006cd iadd  0x00000011 , 0x0000003f 
+ 00008701  0x000006ce store  0x00000002 , 0x00008905 
+ 00008702  0x000006cf rtn 
+ 00008703  0x000006d4 bpatch  0x00000017 , 0x00004002 
+ 00008704  0x000006d5 call  0x000021ca 
+ 00008705  0x000006d6 nop  0x00000258 
+ 00008706  0x000006d9 bpatch  0x00000018 , 0x00004003 
+ 00008707  0x000006da setarg  0x000aaa7e 
+ 00008708  0x000006db store  0x00000003 , 0x00008a0f 
+ 00008709  0x000006dc nop  0x0000003c 
+ 00008710  0x000006dd jam  0x00000000 , 0x00008a25 
+ 00008711  0x000006de jam  0x0000000d , 0x00008a26 
+ 00008712  0x000006df jam  0x000000f6 , 0x00008a16 
+ 00008713  0x000006e0 nop  0x0000001e 
+ 00008714  0x000006e1 jam  0x0000001b , 0x00008a15 
+ 00008715  0x000006e2 call  0x00002212 
+ 00008716  0x000006e3 nop  0x00000014 
+ 00008717  0x000006e4 jam  0x0000000f , 0x00008a26 
+ 00008718  0x000006e5 nop  0x00000014 
+ 00008719  0x000006e6 jam  0x000000a8 , 0x00008a10 
+ 00008720  0x000006e7 jam  0x00000000 , 0x00008a11 
+ 00008721  0x000006e8 rtn 
+ 00008722  0x000006eb bpatch  0x00000019 , 0x00004003 
+ 00008723  0x000006ec fetch  0x00000001 , 0x00004141 
+ 00008724  0x000006ed beq  0x00000000 , 0x0000221d 
+ 00008725  0x000006ee beq  0x00000003 , 0x00002222 
+ 00008726  0x000006ef beq  0x00000005 , 0x00002227 
+ 00008727  0x000006f0 beq  0x00000007 , 0x0000222b 
+ 00008728  0x000006f1 beq  0x0000000a , 0x0000222f 
+ 00008729  0x000006f2 beq  0x00000083 , 0x00002234 
+ 00008730  0x000006f3 beq  0x00000085 , 0x00002238 
+ 00008731  0x000006f4 beq  0x0000008a , 0x0000223c 
+ 00008732  0x000006f5 beq  0x00000094 , 0x00002240 
+ 00008733  0x000006f7 jam  0x00000017 , 0x00008a14 
+ 00008734  0x000006f8 setarg  0x00251a3f 
+ 00008735  0x000006f9 store  0x00000003 , 0x00008a60 
+ 00008736  0x000006fb jam  0x00000028 , 0x00008a63 
+ 00008737  0x000006fc rtn 
+ 00008738  0x000006ff jam  0x00000025 , 0x00008a14 
+ 00008739  0x00000700 setarg  0x00a91c2d 
+ 00008740  0x00000701 store  0x00000003 , 0x00008a60 
+ 00008741  0x00000703 jam  0x0000002f , 0x00008a63 
+ 00008742  0x00000704 rtn 
+ 00008743  0x00000707 jam  0x00000025 , 0x00008a14 
+ 00008744  0x00000708 setarg  0x00a91c3f 
+ 00008745  0x00000709 store  0x00000003 , 0x00008a60 
+ 00008746  0x0000070a branch  0x00002225 
+ 00008747  0x0000070d jam  0x00000025 , 0x00008a14 
+ 00008748  0x0000070e setarg  0x00a9383f 
+ 00008749  0x0000070f store  0x00000003 , 0x00008a60 
+ 00008750  0x00000710 branch  0x00002225 
+ 00008751  0x00000713 jam  0x00000025 , 0x00008a14 
+ 00008752  0x00000714 setarg  0x00a93f3f 
+ 00008753  0x00000715 store  0x00000003 , 0x00008a60 
+ 00008754  0x00000716 jam  0x0000001f , 0x00008a63 
+ 00008755  0x00000717 rtn 
+ 00008756  0x0000071b jam  0x00000017 , 0x00008a14 
+ 00008757  0x0000071c setarg  0x00251827 
+ 00008758  0x0000071d store  0x00000003 , 0x00008a60 
+ 00008759  0x0000071e branch  0x00002220 
+ 00008760  0x00000721 jam  0x00000017 , 0x00008a14 
+ 00008761  0x00000722 setarg  0x0025181c 
+ 00008762  0x00000723 store  0x00000003 , 0x00008a60 
+ 00008763  0x00000724 branch  0x00002220 
+ 00008764  0x00000727 jam  0x00000017 , 0x00008a14 
+ 00008765  0x00000728 setarg  0x0025180b 
+ 00008766  0x00000729 store  0x00000003 , 0x00008a60 
+ 00008767  0x0000072a branch  0x00002220 
+ 00008768  0x0000072d jam  0x00000017 , 0x00008a14 
+ 00008769  0x0000072e setarg  0x00251000 
+ 00008770  0x0000072f store  0x00000003 , 0x00008a60 
+ 00008771  0x00000730 branch  0x00002220 
+ 00008772  0x00000735 jam  0x00000006 , 0x00008042 
+ 00008773  0x00000737 fetch  0x00000002 , 0x0000409c 
+ 00008774  0x00000738 bbit0  0x0000000e , 0x00002245 
+ 00008775  0x00000739 iforce  0x00000006 
+ 00008776  0x0000073a arg  0x00008a00 , 0x00000002 
+ 00008777  0x0000073c ifetch  0x00000001 , 0x00000006 
+ 00008778  0x0000073d beq  0x000000ff , 0x0000224f 
+ 00008779  0x0000073e ior  0x00000002 , 0x00000005 
+ 00008780  0x0000073f ifetch  0x00000001 , 0x00000006 
+ 00008781  0x00000740 istore  0x00000001 , 0x00000005 
+ 00008782  0x00000741 branch  0x00002249 
+ 00008783  0x00000744 bpatch  0x0000001a , 0x00004003 
+ 00008784  0x00000745 until  0x0000003e , 0x00000033 
+ 00008785  0x00000746 jam  0x0000000d , 0x00008946 
+ 00008786  0x00000747 jam  0x00000010 , 0x0000896f 
+ 00008787  0x00000749 jam  0x000000cd , 0x00008a13 
+ 00008788  0x0000074a jam  0x00000010 , 0x00008a06 
+ 00008789  0x0000074b jam  0x0000004a , 0x00008a84 
+ 00008790  0x0000074c jam  0x00000040 , 0x00008a85 
+ 00008791  0x0000074d jam  0x000000fe , 0x00008a16 
+ 00008792  0x0000074f fetch  0x00000001 , 0x0000444d 
+ 00008793  0x00000750 call  0x0000711d , 0x00000034 
+ 00008794  0x00000752 until  0x0000003e , 0x00000033 
+ 00008795  0x00000753 jam  0x0000005f , 0x0000813b 
+ 00008796  0x00000754 fetch  0x00000001 , 0x00004099 
+ 00008797  0x00000755 beq  0x00000010 , 0x00002276 
+ 00008798  0x00000756 fetch  0x00000001 , 0x0000444f 
+ 00008799  0x00000757 or_into  0x00000004 , 0x0000003f 
+ 00008800  0x00000758 store  0x00000001 , 0x00008a02 
+ 00008801  0x00000759 jam  0x00000001 , 0x0000890f 
+ 00008802  0x0000075a jam  0x00000024 , 0x00008a80 
+ 00008803  0x0000075b jam  0x00000062 , 0x00008a81 
+ 00008804  0x0000075c setarg  0x00e61212 
+ 00008805  0x0000075d store  0x00000003 , 0x00008a73 
+ 00008806  0x00000760 bpatchx  0x000000f3 , 0x0000403e 
+ 00008807  0x00000761 jam  0x00000060 , 0x00008a86 
+ 00008808  0x00000762 jam  0x0000003b , 0x00008a8b 
+ 00008809  0x00000764 call  0x0000229d 
+ 00008810  0x00000765 jam  0x00000000 , 0x00008043 
+ 00008811  0x00000766 jam  0x00000005 , 0x00008042 
+ 00008812  0x00000767 setarg  0x00557474 
+ 00008813  0x00000768 store  0x00000003 , 0x00008968 
+ 00008814  0x00000769 jam  0x0000006e , 0x00008960 
+ 00008815  0x0000076a call  0x00002135 
+ 00008816  0x0000076b call  0x00002287 
+ 00008817  0x0000076c call  0x00002281 
+ 00008818  0x0000076d jam  0x0000000c , 0x00004148 
+ 00008819  0x0000076e call  0x00006f53 
+ 00008820  0x0000076f call  0x000022cb 
+ 00008821  0x00000770 branch  0x00006ac9 
+ 00008822  0x00000773 fetch  0x00000001 , 0x0000444f 
+ 00008823  0x00000774 or_into  0x00000006 , 0x0000003f 
+ 00008824  0x00000775 store  0x00000001 , 0x00008a02 
+ 00008825  0x00000776 jam  0x00000000 , 0x0000890f 
+ 00008826  0x00000777 jam  0x00000023 , 0x00008a80 
+ 00008827  0x00000778 jam  0x000000b0 , 0x00008a81 
+ 00008828  0x00000779 setarg  0x00e40909 
+ 00008829  0x0000077a store  0x00000003 , 0x00008a73 
+ 00008830  0x0000077b jam  0x0000002a , 0x00008a76 
+ 00008831  0x0000077c jam  0x00000004 , 0x00008902 
+ 00008832  0x0000077d branch  0x00002266 
+ 00008833  0x00000780 rtn  0x0000002b 
+ 00008834  0x00000781 until  0x0000003e , 0x00000033 
+ 00008835  0x00000782 fetch  0x00000001 , 0x0000411c 
+ 00008836  0x00000783 store  0x00000001 , 0x0000813a 
+ 00008837  0x00000784 until  0x0000003e , 0x00000033 
+ 00008838  0x00000785 rtn 
+ 00008839  0x00000789 bpatch  0x0000001b , 0x00004003 
+ 00008840  0x0000078a rtn  0x0000002b 
+ 00008841  0x0000078b call  0x00002164 
+ 00008842  0x0000078c jam  0x00000003 , 0x00008900 
+ 00008843  0x0000078d jam  0x00000001 , 0x00008a70 
+ 00008844  0x0000078e arg  0x0000411d , 0x00000012 
+ 00008845  0x0000078f arg  0x00004135 , 0x00000018 
+ 00008846  0x00000790 call  0x00002293 
+ 00008847  0x00000791 set1  0x0000002d , 0x00000000 
+ 00008848  0x00000792 call  0x00002293 
+ 00008849  0x00000793 jam  0x00000061 , 0x00008a70 
+ 00008850  0x00000794 branch  0x00002155 
+ 00008851  0x00000797 call  0x00002193 
+ 00008852  0x00000798 arg  0x00000006 , 0x00000039 
+ 00008853  0x00000799 arg  0x00000000 , 0x00000013 
+ 00008854  0x0000079b copy  0x00000013 , 0x00000002 
+ 00008855  0x0000079c call  0x000022ab 
+ 00008856  0x0000079d increase  0x00000002 , 0x00000012 
+ 00008857  0x0000079e increase  0x00000001 , 0x00000018 
+ 00008858  0x0000079f increase  0x00000010 , 0x00000013 
+ 00008859  0x000007a0 loop  0x00002296 
+ 00008860  0x000007a1 rtn 
+ 00008861  0x000007a4 fetch  0x00000001 , 0x00004099 
+ 00008862  0x000007a5 beq  0x00000018 , 0x000022a3 
+ 00008863  0x000007a6 fetch  0x00000001 , 0x0000444f 
+ 00008864  0x000007a7 or_into  0x00000006 , 0x0000003f 
+ 00008865  0x000007a8 store  0x00000001 , 0x00008a02 
+ 00008866  0x000007a9 jam  0x000000e0 , 0x00008a05 
+ 00008867  0x000007ab jam  0x000000d8 , 0x00008a00 
+ 00008868  0x000007ac nop  0x0000003c 
+ 00008869  0x000007ad jam  0x000000a0 , 0x00008a01 
+ 00008870  0x000007ae jam  0x000000df , 0x00008a00 
+ 00008871  0x000007af jam  0x000000fa , 0x00008a01 
+ 00008872  0x000007b0 nop  0x00000014 
+ 00008873  0x000007b1 jam  0x0000009f , 0x00008a00 
+ 00008874  0x000007b2 rtn 
+ 00008875  0x000007b5 bpatch  0x0000001c , 0x00004003 
+ 00008876  0x000007b6 jam  0x00000030 , 0x00008a20 
+ 00008877  0x000007b7 jam  0x000000dd , 0x00008a23 
+ 00008878  0x000007b8 call  0x000021d4 
+ 00008879  0x000007ba fetch  0x00000001 , 0x00008a7c 
+ 00008880  0x000007bb bbit0  0x00000000 , 0x000022af 
+ 00008881  0x000007bc jam  0x00000030 , 0x00008a7b 
+ 00008882  0x000007bd call  0x000022c5 
+ 00008883  0x000007be iforce  0x00000011 
+ 00008884  0x000007bf jam  0x00000040 , 0x00008a7b 
+ 00008885  0x000007c0 call  0x000022c5 
+ 00008886  0x000007c1 isub  0x00000011 , 0x0000003f 
+ 00008887  0x000007c2 mul32  0x0000003f , 0x0000007d , 0x00000002 
+ 00008888  0x000007c3 setarg  0x00b00000 
+ 00008889  0x000007c4 idiv  0x00000002 
+ 00008890  0x000007c5 call  0x00007d64 
+ 00008891  0x000007c6 quotient  0x0000003f 
+ 00008892  0x000007c7 bmark0  0x0000002d , 0x000022be 
+ 00008893  0x000007c8 lshift  0x0000003f , 0x0000003f 
+ 00008894  0x000007ca istore  0x00000002 , 0x00000012 
+ 00008895  0x000007cb jam  0x00000020 , 0x00008a7b 
+ 00008896  0x000007cc fetch  0x00000001 , 0x00008a7e 
+ 00008897  0x000007cd lshift4  0x0000003f , 0x0000003f 
+ 00008898  0x000007ce istore  0x00000001 , 0x00000018 
+ 00008899  0x000007cf jam  0x00000000 , 0x00008a7b 
+ 00008900  0x000007d0 rtn 
+ 00008901  0x000007d3 fetch  0x00000002 , 0x00008a7d 
+ 00008902  0x000007d4 byteswap  0x0000003f , 0x0000003f 
+ 00008903  0x000007d5 fetcht  0x00000001 , 0x00008a7c 
+ 00008904  0x000007d6 lshift16  0x00000002 , 0x00000002 
+ 00008905  0x000007d7 ior  0x00000002 , 0x0000003f 
+ 00008906  0x000007d8 rtn 
+ 00008907  0x000007dc bpatch  0x0000001d , 0x00004003 
+ 00008908  0x000007dd rtn 
+ 00008909  0x000007e0 bpatch  0x0000001e , 0x00004003 
+ 00008910  0x000007e2 fetch  0x00000001 , 0x000089a2 
+ 00008911  0x000007e3 isolate1  0x00000006 , 0x0000003f 
+ 00008912  0x000007e4 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00008913  0x000007e5 store  0x00000001 , 0x00004142 
+ 00008914  0x000007e7 fetch  0x00000001 , 0x000089a3 
+ 00008915  0x000007e8 and  0x0000003f , 0x0000000f , 0x00000002 
+ 00008916  0x000007e9 lshift  0x00000002 , 0x00000002 
+ 00008917  0x000007ea rshift4  0x0000003f , 0x0000003f 
+ 00008918  0x000007eb iadd  0x00000002 , 0x00000002 
+ 00008919  0x000007ec mul32  0x00000002 , 0x00000003 , 0x00000011 
+ 00008920  0x000007ee fetch  0x00000001 , 0x00004142 
+ 00008921  0x000007ef call  0x000022e3 
+ 00008922  0x000007f0 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00008923  0x000007f1 iadd  0x00000011 , 0x0000003f 
+ 00008924  0x000007f2 increase  0xfffffff7 , 0x0000003f 
+ 00008925  0x000007f3 and  0x0000003f , 0x000001ff , 0x0000003f 
+ 00008926  0x000007f4 isolate1  0x00000008 , 0x0000003f 
+ 00008927  0x000007f5 nbranch  0x000022e1 , 0x00000001 
+ 00008928  0x000007f6 setarg  0x00000000 
+ 00008929  0x000007f8 store  0x00000001 , 0x00000035 
+ 00008930  0x000007f9 branch  0x000022e8 
+ 00008931  0x000007fc isolate1  0x00000007 , 0x0000003f 
+ 00008932  0x000007fd nrtn  0x00000001 
+ 00008933  0x000007fe arg  0x0000ff00 , 0x00000002 
+ 00008934  0x000007ff ior  0x00000002 , 0x0000003f 
+ 00008935  0x00000800 rtn 
+ 00008936  0x00000803 fetch  0x00000001 , 0x00000035 
+ 00008937  0x00000804 call  0x000022ec 
+ 00008938  0x00000805 store  0x00000001 , 0x00000009 
+ 00008939  0x00000806 rtn 
+ 00008940  0x00000809 and_into  0x000000ff , 0x0000003f 
+ 00008941  0x0000080a div  0x0000003f , 0x0000000a 
+ 00008942  0x0000080b call  0x00007d61 
+ 00008943  0x0000080c lshift4  0x0000003f , 0x0000003f 
+ 00008944  0x0000080d remainder  0x00000002 
+ 00008945  0x0000080e ior  0x00000002 , 0x0000003f 
+ 00008946  0x0000080f rtn 
+ 00008947  0x00000812 bpatch  0x0000001f , 0x00004003 
+ 00008948  0x00000813 fetch  0x00000001 , 0x00004143 
+ 00008949  0x00000814 rtneq  0x000000ff 
+ 00008950  0x00000815 nbranch  0x0000231a , 0x00000018 
+ 00008951  0x00000816 fetch  0x00000001 , 0x00004142 
+ 00008952  0x00000817 sub  0x0000003f , 0x000000f0 , 0x0000003e 
+ 00008953  0x00000818 nbranch  0x0000231e , 0x00000002 
+ 00008954  0x00000819 sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00008955  0x0000081a branch  0x0000231e , 0x00000002 
+ 00008956  0x0000081c fetchr  0x00000011 , 0x00000001 , 0x00008961 
+ 00008957  0x0000081d fetch  0x00000001 , 0x00004143 
+ 00008958  0x0000081e rtneq  0x00000000 
+ 00008959  0x0000081f arg  0x00004144 , 0x00000006 
+ 00008960  0x00000820 iadd  0x00000006 , 0x00000006 
+ 00008961  0x00000821 ifetch  0x00000001 , 0x00000006 
+ 00008962  0x00000822 isub  0x00000011 , 0x0000003e 
+ 00008963  0x00000823 nrtn  0x00000005 
+ 00008964  0x00000824 increase  0xfffffffe , 0x00000006 
+ 00008965  0x00000825 ifetcht  0x00000001 , 0x00000006 
+ 00008966  0x00000826 rshift4  0x00000002 , 0x0000003f 
+ 00008967  0x00000827 rshift4  0x00000011 , 0x00000012 
+ 00008968  0x00000828 isub  0x00000012 , 0x00000012 
+ 00008969  0x00000829 and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00008970  0x0000082a and  0x00000011 , 0x0000000f , 0x00000011 
+ 00008971  0x0000082b isub  0x00000011 , 0x00000011 
+ 00008972  0x0000082c lshift  0x00000011 , 0x0000003f 
+ 00008973  0x0000082d iadd  0x00000012 , 0x00000012 
+ 00008974  0x0000082e mul32  0x00000012 , 0x00000003 , 0x00000012 
+ 00008975  0x0000082f fetcht  0x00000001 , 0x00004142 
+ 00008976  0x00000830 and  0x00000002 , 0x00000080 , 0x0000003f 
+ 00008977  0x00000831 rtn  0x00000034 
+ 00008978  0x00000833 setarg  0x00000100 
+ 00008979  0x00000834 isub  0x00000002 , 0x00000002 
+ 00008980  0x00000835 copy  0x00000012 , 0x0000003f 
+ 00008981  0x00000836 isub  0x00000002 , 0x0000003f 
+ 00008982  0x00000837 rtn  0x00000002 
+ 00008983  0x00000838 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00008984  0x00000839 rtneq  0x000000ff 
+ 00008985  0x0000083a rtneq  0x000000fe 
+ 00008986  0x0000083d fetch  0x00000001 , 0x00004143 
+ 00008987  0x0000083e beq  0x00000001 , 0x00002323 
+ 00008988  0x0000083f beq  0x00000002 , 0x00002325 
+ 00008989  0x00000841 branch  0x00002323 
+ 00008990  0x00000844 fetch  0x00000001 , 0x00004143 
+ 00008991  0x00000845 beq  0x00000000 , 0x00002325 
+ 00008992  0x00000846 beq  0x00000001 , 0x00002321 
+ 00008993  0x00000849 jam  0x00000002 , 0x00004143 
+ 00008994  0x0000084a rtn 
+ 00008995  0x0000084d jam  0x00000000 , 0x00004143 
+ 00008996  0x0000084e rtn 
+ 00008997  0x00000851 jam  0x00000001 , 0x00004143 
+ 00008998  0x00000852 rtn 
+ 00008999  0x0000085a copy  0x0000003f , 0x00000002 
+ 00009000  0x0000085b bpatch  0x00000020 , 0x00004004 
+ 00009001  0x0000085c copy  0x00000002 , 0x0000003f 
+ 00009002  0x0000085d call  0x00007d2e 
+ 00009003  0x0000085e lshift16  0x00000021 , 0x0000003f 
+ 00009004  0x0000085f set1  0x0000002c , 0x0000003f 
+ 00009005  0x00000860 call  0x00007d14 
+ 00009006  0x00000861 set0  0x0000002c , 0x0000003f 
+ 00009007  0x00000862 call  0x00002336 
+ 00009008  0x00000863 call  0x00007d14 
+ 00009009  0x00000864 rtn  0x00000028 
+ 00009010  0x00000865 call  0x00007d21 
+ 00009011  0x00000866 iforce  0x0000001b 
+ 00009012  0x00000867 until  0x0000003e , 0x00000003 
+ 00009013  0x00000868 rtn 
+ 00009014  0x0000086c copy  0x00000019 , 0x00000002 
+ 00009015  0x0000086d rtn  0x00000029 
+ 00009016  0x0000086e copy  0x0000001a , 0x00000002 
+ 00009017  0x0000086f rtn 
+ 00009018  0x00000872 deposit  0x00000022 
+ 00009019  0x00000873 rtn  0x00000029 
+ 00009020  0x00000874 deposit  0x00000028 
+ 00009021  0x00000875 rtn 
+ 00009022  0x00000879 bpatch  0x00000021 , 0x00004004 
+ 00009023  0x0000087a branch  0x0000233e 
+ 00009024  0x0000087e rtn  0x00000034 
+ 00009025  0x00000880 rshift  0x0000003f , 0x0000003f 
+ 00009026  0x00000881 increase  0xfffffffd , 0x0000003f 
+ 00009027  0x00000883 increase  0xffffffff , 0x0000003f 
+ 00009028  0x00000884 nbranch  0x00002343 , 0x00000005 
+ 00009029  0x00000885 force  0x00000000 , 0x0000003f 
+ 00009030  0x00000886 rtn 
+ 00009031  0x0000088c setarg  0x00000e43 
+ 00009032  0x0000088d store  0x00000002 , 0x00000036 
+ 00009033  0x0000088e setarg  0x00000600 
+ 00009034  0x0000088f store  0x00000002 , 0x00000038 
+ 00009035  0x00000890 setarg  0x00000600 
+ 00009036  0x00000891 store  0x00000002 , 0x0000003a 
+ 00009037  0x00000892 setarg  0x00000d00 
+ 00009038  0x00000893 store  0x00000002 , 0x00000040 
+ 00009039  0x00000894 setarg  0x000003bb 
+ 00009040  0x00000895 store  0x00000002 , 0x0000003c 
+ 00009041  0x00000896 setarg  0x00000500 
+ 00009042  0x00000897 store  0x00000002 , 0x0000003e 
+ 00009043  0x00000898 setarg  0x000007d0 
+ 00009044  0x00000899 store  0x00000002 , 0x00000042 
+ 00009045  0x0000089a setarg  0x00000ea6 
+ 00009046  0x0000089b store  0x00000002 , 0x00000044 
+ 00009047  0x0000089c setarg  0x000001e0 
+ 00009048  0x0000089d store  0x00000002 , 0x00000046 
+ 00009049  0x0000089e setarg  0x00000120 
+ 00009050  0x0000089f store  0x00000002 , 0x00000048 
+ 00009051  0x000008a0 setarg  0x0000011a 
+ 00009052  0x000008a1 store  0x00000002 , 0x0000004a 
+ 00009053  0x000008a3 bpatch  0x00000022 , 0x00004004 
+ 00009054  0x000008a4 rtn  0x0000002b 
+ 00009055  0x000008a5 setarg  0x00000017 
+ 00009056  0x000008a6 store  0x00000002 , 0x000042e5 
+ 00009057  0x000008a7 jam  0x0000008b , 0x00004169 
+ 00009058  0x000008a8 setarg  0x00000d00 
+ 00009059  0x000008a9 store  0x00000002 , 0x00004343 
+ 00009060  0x000008aa setarg  0x00000060 
+ 00009061  0x000008ab store  0x00000002 , 0x00004345 
+ 00009062  0x000008ac rshift  0x00000022 , 0x0000003f 
+ 00009063  0x000008ad store  0x00000004 , 0x00004095 
+ 00009064  0x000008ae rtn 
+ 00009065  0x000008b6 setarg  0x0000ee21 
+ 00009066  0x000008b7 store  0x00000002 , 0x00008050 
+ 00009067  0x000008b8 fetchr  0x00000030 , 0x00000004 , 0x0000811c 
+ 00009068  0x000008b9 fetch  0x00000001 , 0x00008132 
+ 00009069  0x000008ba bbit0  0x00000005 , 0x00002383 
+ 00009070  0x000008bb enable  0x0000002b 
+ 00009071  0x000008bc bbit1  0x00000004 , 0x00002377 
+ 00009072  0x000008bd disable  0x0000002b 
+ 00009073  0x000008be deposit  0x00000027 
+ 00009074  0x000008bf nbranch  0x00002377 , 0x00000034 
+ 00009075  0x000008c0 fetch  0x00000001 , 0x00008142 
+ 00009076  0x000008c1 bbit1  0x00000004 , 0x00002377 
+ 00009077  0x000008c2 arg  0xffffffff , 0x00000002 
+ 00009078  0x000008c3 branch  0x0000241d 
+ 00009079  0x000008c5 call  0x00002387 
+ 00009080  0x000008c6 call  0x000023c9 , 0x0000002b 
+ 00009081  0x000008c7 until  0x0000003e , 0x00000033 
+ 00009082  0x000008c8 fetch  0x00000001 , 0x00008132 
+ 00009083  0x000008c9 set0  0x00000005 , 0x0000003f 
+ 00009084  0x000008ca store  0x00000001 , 0x00008132 
+ 00009085  0x000008cb until  0x0000003e , 0x00000033 
+ 00009086  0x000008cc nbranch  0x00002384 , 0x0000002b 
+ 00009087  0x000008cd call  0x00006aaf 
+ 00009088  0x000008ce storer  0x00000030 , 0x00000004 , 0x0000067b 
+ 00009089  0x000008cf jam  0x00000008 , 0x00008006 
+ 00009090  0x000008d0 rtn 
+ 00009091  0x000008d3 call  0x00002387 
+ 00009092  0x000008d5 call  0x00006a20 
+ 00009093  0x000008d6 storer  0x00000030 , 0x00000004 , 0x0000067b 
+ 00009094  0x000008d7 rtn 
+ 00009095  0x000008da until  0x0000003e , 0x00000033 
+ 00009096  0x000008db fetch  0x00000001 , 0x00008133 
+ 00009097  0x000008dc and_into  0x00000088 , 0x0000003f 
+ 00009098  0x000008dd store  0x00000001 , 0x00008133 
+ 00009099  0x000008de until  0x0000003e , 0x00000033 
+ 00009100  0x000008df fetch  0x00000001 , 0x00008132 
+ 00009101  0x000008e0 or_into  0x0000000f , 0x0000003f 
+ 00009102  0x000008e1 store  0x00000001 , 0x00008132 
+ 00009103  0x000008e2 until  0x0000003e , 0x00000033 
+ 00009104  0x000008e3 set1  0x00000007 , 0x0000003f 
+ 00009105  0x000008e4 store  0x00000001 , 0x00008132 
+ 00009106  0x000008e5 until  0x0000003e , 0x00000033 
+ 00009107  0x000008e6 set1  0x00000006 , 0x0000003f 
+ 00009108  0x000008e7 store  0x00000001 , 0x00008132 
+ 00009109  0x000008e8 until  0x0000003e , 0x00000033 
+ 00009110  0x000008e9 rtn 
+ 00009111  0x000008ed until  0x0000003e , 0x00000033 
+ 00009112  0x000008ee jam  0x00000076 , 0x0000813d 
+ 00009113  0x000008ef until  0x0000003e , 0x00000033 
+ 00009114  0x000008f0 jam  0x00000037 , 0x0000813a 
+ 00009115  0x000008f1 rtn 
+ 00009116  0x000008f6 fetch  0x00000001 , 0x000043cf 
+ 00009117  0x000008f7 lshift4  0x0000003f , 0x0000003f 
+ 00009118  0x000008f9 store  0x00000001 , 0x00008143 
+ 00009119  0x000008fa until  0x0000003e , 0x00000033 
+ 00009120  0x000008fb fetch  0x00000001 , 0x000043d0 
+ 00009121  0x000008fc set1  0x00000005 , 0x0000003f 
+ 00009122  0x000008fd set1  0x00000006 , 0x0000003f 
+ 00009123  0x000008fe store  0x00000001 , 0x00008144 
+ 00009124  0x000008ff branch  0x000023c4 
+ 00009125  0x00000902 fetch  0x00000001 , 0x00008142 
+ 00009126  0x00000903 set0  0x00000003 , 0x0000003f 
+ 00009127  0x00000904 store  0x00000001 , 0x00008142 
+ 00009128  0x00000905 rtn 
+ 00009129  0x00000908 fetch  0x00000001 , 0x00008142 
+ 00009130  0x00000909 set1  0x00000003 , 0x0000003f 
+ 00009131  0x0000090a store  0x00000001 , 0x00008142 
+ 00009132  0x0000090b rtn 
+ 00009133  0x0000090e fetch  0x00000003 , 0x000040c3 
+ 00009134  0x0000090f arg  0x0000813e , 0x00000005 
+ 00009135  0x00000911 arg  0x00000003 , 0x00000039 
+ 00009136  0x00000912 branch  0x000023b3 
+ 00009137  0x00000915 arg  0x00008145 , 0x00000005 
+ 00009138  0x00000917 arg  0x00000004 , 0x00000039 
+ 00009139  0x00000919 until  0x0000003e , 0x00000033 
+ 00009140  0x0000091a istore  0x00000001 , 0x00000005 
+ 00009141  0x0000091b rshift8  0x0000003f , 0x0000003f 
+ 00009142  0x0000091c loop  0x000023b3 
+ 00009143  0x0000091d branch  0x000023c4 
+ 00009144  0x00000920 arg  0x00008149 , 0x00000005 
+ 00009145  0x00000921 branch  0x000023b2 
+ 00009146  0x00000925 fetch  0x00000001 , 0x00008133 
+ 00009147  0x00000926 set0  0x00000003 , 0x0000003f 
+ 00009148  0x00000927 store  0x00000001 , 0x00008133 
+ 00009149  0x00000928 rtn 
+ 00009150  0x0000092b fetch  0x00000001 , 0x000040cb 
+ 00009151  0x0000092c rtn  0x00000034 
+ 00009152  0x0000092d set0  0x00000004 , 0x0000003f 
+ 00009153  0x0000092e branch  0x000023c3 
+ 00009154  0x00000931 store  0x00000001 , 0x000040cb 
+ 00009155  0x00000933 store  0x00000001 , 0x00008135 
+ 00009156  0x00000935 until  0x0000003e , 0x00000033 
+ 00009157  0x00000936 until  0x0000003e , 0x00000033 
+ 00009158  0x00000937 rtn 
+ 00009159  0x0000093b store  0x00000001 , 0x00008134 
+ 00009160  0x0000093c branch  0x000023c4 
+ 00009161  0x00000940 call  0x000023be 
+ 00009162  0x00000941 fetch  0x00000001 , 0x000040ef 
+ 00009163  0x00000942 store  0x00000001 , 0x00008080 
+ 00009164  0x00000943 arg  0x000040cc , 0x00000006 
+ 00009165  0x00000944 arg  0x00008070 , 0x00000005 
+ 00009166  0x00000945 call  0x00007c91 
+ 00009167  0x00000946 arg  0x000080d4 , 0x00000005 
+ 00009168  0x00000947 call  0x00007c8b 
+ 00009169  0x00000948 fetchr  0x00000000 , 0x00000008 , 0x000040e7 
+ 00009170  0x00000949 arg  0x0000814d , 0x00000006 
+ 00009171  0x0000094a arg  0x00000016 , 0x00000005 
+ 00009172  0x0000094b arg  0x0000000c , 0x00000039 
+ 00009173  0x0000094c call  0x00007cdc 
+ 00009174  0x0000094d branch  0x00006aff 
+ 00009175  0x00000950 storer  0x00000000 , 0x00000008 , 0x000040e7 
+ 00009176  0x00000951 arg  0x00008070 , 0x00000006 
+ 00009177  0x00000952 arg  0x000040cc , 0x00000005 
+ 00009178  0x00000953 call  0x00007c91 
+ 00009179  0x00000954 arg  0x000080d4 , 0x00000006 
+ 00009180  0x00000955 call  0x00007c8b 
+ 00009181  0x00000956 fetch  0x00000001 , 0x00008080 
+ 00009182  0x00000957 store  0x00000001 , 0x000040ef 
+ 00009183  0x00000958 copy  0x00000002 , 0x00000012 
+ 00009184  0x00000959 branch  0x000023e1 
+ 00009185  0x0000095c arg  0x0000000c , 0x00000039 
+ 00009186  0x0000095d arg  0x00000016 , 0x00000011 
+ 00009187  0x0000095e arg  0x0000814d , 0x00000013 
+ 00009188  0x0000095f until  0x0000003e , 0x00000033 
+ 00009189  0x00000961 ifetch  0x00000001 , 0x00000011 
+ 00009190  0x00000962 ifetcht  0x00000001 , 0x00000013 
+ 00009191  0x00000963 isub  0x00000002 , 0x0000003e 
+ 00009192  0x00000964 branch  0x000023eb , 0x00000005 
+ 00009193  0x00000965 istore  0x00000001 , 0x00000013 
+ 00009194  0x00000966 until  0x0000003e , 0x00000033 
+ 00009195  0x00000968 increase  0x00000001 , 0x00000011 
+ 00009196  0x00000969 increase  0x00000001 , 0x00000013 
+ 00009197  0x0000096a loop  0x000023e5 
+ 00009198  0x0000096b copy  0x00000012 , 0x00000002 
+ 00009199  0x0000096c rtn 
+ 00009200  0x0000096f bpatch  0x00000023 , 0x00004004 
+ 00009201  0x00000970 fetch  0x00000001 , 0x000080cb 
+ 00009202  0x00000971 nbranch  0x000023f7 , 0x00000034 
+ 00009203  0x00000972 fetch  0x00000003 , 0x000040bd 
+ 00009204  0x00000973 nrtn  0x00000034 
+ 00009205  0x00000974 jam  0x0000000c , 0x000080cb 
+ 00009206  0x00000975 jam  0x00000080 , 0x00008006 
+ 00009207  0x00000977 fetch  0x00000001 , 0x00008129 
+ 00009208  0x00000978 rtnbit0  0x00000001 
+ 00009209  0x00000979 fetch  0x00000003 , 0x0000815b 
+ 00009210  0x0000097a store  0x00000003 , 0x000040bd 
+ 00009211  0x0000097b rtn 
+ 00009212  0x00000980 fetch  0x00000001 , 0x000040ca 
+ 00009213  0x00000981 set1  0x00000004 , 0x0000003f 
+ 00009214  0x00000982 store  0x00000001 , 0x000040ca 
+ 00009215  0x00000986 bpatch  0x00000024 , 0x00004004 
+ 00009216  0x00000987 arg  0xffffffff , 0x00000002 
+ 00009217  0x00000988 fetch  0x00000001 , 0x000040a7 
+ 00009218  0x00000989 store  0x00000001 , 0x000040c8 
+ 00009219  0x0000098a fetch  0x00000001 , 0x000040ca 
+ 00009220  0x0000098b store  0x00000001 , 0x00008142 
+ 00009221  0x0000098c until  0x0000003e , 0x00000033 
+ 00009222  0x0000098f bpatch  0x00000025 , 0x00004004 
+ 00009223  0x00000991 fetch  0x00000002 , 0x000043f2 
+ 00009224  0x00000992 call  0x00007d7b 
+ 00009225  0x00000994 fetch  0x00000004 , 0x000040ad 
+ 00009226  0x00000995 iadd  0x00000002 , 0x0000003f 
+ 00009227  0x00000996 store  0x00000004 , 0x000040ad 
+ 00009228  0x00000997 call  0x000023d7 
+ 00009229  0x00000998 fetch  0x00000001 , 0x000040cb 
+ 00009230  0x00000999 set1  0x00000004 , 0x0000003f 
+ 00009231  0x0000099a call  0x000023c3 
+ 00009232  0x0000099b ncall  0x000023ad , 0x0000002b 
+ 00009233  0x0000099c until  0x0000003e , 0x00000033 
+ 00009234  0x0000099d storer  0x00000019 , 0x00000006 , 0x000040b1 
+ 00009235  0x0000099e call  0x00006abf 
+ 00009236  0x0000099f fetch  0x00000003 , 0x000040c6 
+ 00009237  0x000009a0 fetchr  0x00000011 , 0x00000001 , 0x000040c9 
+ 00009238  0x000009a1 arg  0x00000003 , 0x00000039 
+ 00009239  0x000009a3 until  0x0000003e , 0x00000033 
+ 00009240  0x000009a4 store  0x00000001 , 0x00008132 
+ 00009241  0x000009a5 rshift8  0x0000003f , 0x0000003f 
+ 00009242  0x000009a6 loop  0x00002417 
+ 00009243  0x000009a7 until  0x0000003e , 0x00000033 
+ 00009244  0x000009a8 storer  0x00000011 , 0x00000001 , 0x00008133 
+ 00009245  0x000009aa until  0x0000003e , 0x00000033 
+ 00009246  0x000009ab storet  0x00000004 , 0x0000804c 
+ 00009247  0x000009ac jam  0x00000001 , 0x00008005 
+ 00009248  0x000009ad until  0x0000003e , 0x0000003f 
+ 00009249  0x000009b1 bpatch  0x00000026 , 0x00004004 
+ 00009250  0x000009b2 setarg  0x00000000 
+ 00009251  0x000009b3 copy  0x00000027 , 0x0000003e 
+ 00009252  0x000009b4 branch  0x0000242c , 0x00000005 
+ 00009253  0x000009b5 fetch  0x00000001 , 0x0000813e 
+ 00009254  0x000009b6 fetcht  0x00000001 , 0x0000813f 
+ 00009255  0x000009b7 isub  0x00000002 , 0x0000003e 
+ 00009256  0x000009b8 branch  0x0000242a , 0x00000002 
+ 00009257  0x000009b9 deposit  0x00000002 
+ 00009258  0x000009bb isub  0x00000027 , 0x0000003f 
+ 00009259  0x000009bc increase  0x00000001 , 0x0000003f 
+ 00009260  0x000009be increase  0x00000008 , 0x0000003f 
+ 00009261  0x000009bf until  0x0000003e , 0x00000033 
+ 00009262  0x000009c0 iadd  0x00000031 , 0x0000003f 
+ 00009263  0x000009c1 fetcht  0x00000004 , 0x000040a9 
+ 00009264  0x000009c2 iadd  0x00000002 , 0x0000003f 
+ 00009265  0x000009c3 fetcht  0x00000003 , 0x000040bd 
+ 00009266  0x000009c4 imul32  0x00000002 , 0x0000003f 
+ 00009267  0x000009c5 rshift8  0x0000003f , 0x0000003f 
+ 00009268  0x000009c6 rshift4  0x0000003f , 0x0000003f 
+ 00009269  0x000009c7 increase  0x0000006e , 0x0000003f 
+ 00009270  0x000009c8 fetcht  0x00000002 , 0x00000044 
+ 00009271  0x000009c9 idiv  0x00000002 
+ 00009272  0x000009ca call  0x00007d61 
+ 00009273  0x000009cb lshift16  0x0000003f , 0x0000003f 
+ 00009274  0x000009cc remainder  0x00000002 
+ 00009275  0x000009cd ior  0x00000002 , 0x0000003f 
+ 00009276  0x000009ce fetcht  0x00000006 , 0x000040b1 
+ 00009277  0x000009cf call  0x00007d07 
+ 00009278  0x000009d0 copy  0x00000002 , 0x00000019 
+ 00009279  0x000009d1 fetch  0x00000006 , 0x00004048 
+ 00009280  0x000009d2 call  0x00002109 
+ 00009281  0x000009d3 deposit  0x0000001a 
+ 00009282  0x000009d4 store  0x00000006 , 0x0000064e 
+ 00009283  0x000009d5 deposit  0x00000027 
+ 00009284  0x000009d6 istore  0x00000001 , 0x00000005 
+ 00009285  0x000009d7 fetch  0x00000001 , 0x0000811d 
+ 00009286  0x000009d8 or_into  0x000000f0 , 0x0000003f 
+ 00009287  0x000009d9 istore  0x00000001 , 0x00000005 
+ 00009288  0x000009da rtn 
+ 00009289  0x000009de bpatch  0x00000027 , 0x00004004 
+ 00009290  0x000009df bmark0  0x00000009 , 0x00002460 
+ 00009291  0x000009e0 fetcht  0x00000004 , 0x000040ad 
+ 00009292  0x000009e1 arg  0x00000600 , 0x0000003f 
+ 00009293  0x000009e2 isub  0x00000002 , 0x0000003e 
+ 00009294  0x000009e3 rtn  0x00000002 
+ 00009295  0x000009e4 copy  0x00000002 , 0x00000011 
+ 00009296  0x000009e5 fetcht  0x00000006 , 0x0000000f 
+ 00009297  0x000009e6 deposit  0x0000002b 
+ 00009298  0x000009e7 call  0x00007d12 
+ 00009299  0x000009e8 copy  0x00000011 , 0x00000002 
+ 00009300  0x000009e9 lshift8  0x0000003f , 0x0000003f 
+ 00009301  0x000009ea lshift4  0x0000003f , 0x0000003f 
+ 00009302  0x000009eb idiv  0x00000002 
+ 00009303  0x000009ec call  0x00007d61 
+ 00009304  0x000009ed arg  0x000000c8 , 0x00000002 
+ 00009305  0x000009ee call  0x00007d6e 
+ 00009306  0x000009ef store  0x00000001 , 0x0000000e 
+ 00009307  0x000009f0 nbranch  0x0000245d , 0x00000028 
+ 00009308  0x000009f1 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00009309  0x000009f3 fetcht  0x00000003 , 0x000040bd 
+ 00009310  0x000009f4 iadd  0x00000002 , 0x0000003f 
+ 00009311  0x000009f5 store  0x00000003 , 0x000040bd 
+ 00009312  0x000009f7 setarg  0x00000000 
+ 00009313  0x000009f8 store  0x00000004 , 0x000040ad 
+ 00009314  0x000009f9 rtn 
+ 00009315  0x000009fd bpatch  0x00000028 , 0x00004005 
+ 00009316  0x000009fe call  0x000023f0 
+ 00009317  0x000009ff fetch  0x00000003 , 0x000040bd 
+ 00009318  0x00000a00 rtn  0x00000034 
+ 00009319  0x00000a01 fetch  0x00000001 , 0x00004094 
+ 00009320  0x00000a02 rtn  0x00000034 
+ 00009321  0x00000a03 fetch  0x00000001 , 0x00004483 
+ 00009322  0x00000a04 branch  0x0000246d , 0x00000034 
+ 00009323  0x00000a05 fetch  0x00000001 , 0x00004485 
+ 00009324  0x00000a06 rtn  0x00000034 
+ 00009325  0x00000a08 fetch  0x00000001 , 0x00004484 
+ 00009326  0x00000a09 nrtn  0x00000034 
+ 00009327  0x00000a0a arg  0x000020af , 0x00000013 
+ 00009328  0x00000a0b call  0x00002069 
+ 00009329  0x00000a0c rtn  0x00000005 
+ 00009330  0x00000a0d call  0x000024c6 
+ 00009331  0x00000a0e nrtn  0x00000034 
+ 00009332  0x00000a0f call  0x0000205d 
+ 00009333  0x00000a10 nbranch  0x00002494 , 0x00000005 
+ 00009334  0x00000a11 rtn  0x0000002b 
+ 00009335  0x00000a12 bpatch  0x00000029 , 0x00004005 
+ 00009336  0x00000a13 fetcht  0x00000001 , 0x00000015 
+ 00009337  0x00000a14 fetch  0x00000002 , 0x00004042 
+ 00009338  0x00000a15 imul32  0x00000002 , 0x0000003f 
+ 00009339  0x00000a16 rshift4  0x00000002 , 0x00000002 
+ 00009340  0x00000a17 rshift2  0x00000002 , 0x00000002 
+ 00009341  0x00000a18 isub  0x00000002 , 0x0000003f 
+ 00009342  0x00000a19 fetcht  0x00000004 , 0x00004044 
+ 00009343  0x00000a1a iadd  0x00000002 , 0x0000003f 
+ 00009344  0x00000a1b fetcht  0x00000001 , 0x000040a6 
+ 00009345  0x00000a1c isub  0x00000002 , 0x0000003f 
+ 00009346  0x00000a1d lshift16  0x0000003f , 0x00000030 
+ 00009347  0x00000a1e fetch  0x00000002 , 0x0000404e 
+ 00009348  0x00000a1f rshift  0x0000003f , 0x0000003f 
+ 00009349  0x00000a20 call  0x00007d2e 
+ 00009350  0x00000a21 deposit  0x00000030 
+ 00009351  0x00000a22 call  0x00007d14 
+ 00009352  0x00000a23 copy  0x0000001a , 0x00000002 
+ 00009353  0x00000a24 call  0x00007d12 
+ 00009354  0x00000a25 rtn  0x00000028 
+ 00009355  0x00000a27 call  0x00007d27 
+ 00009356  0x00000a29 bpatch  0x0000002a , 0x00004005 
+ 00009357  0x00000a2a fetch  0x00000001 , 0x000040c3 
+ 00009358  0x00000a2b isub  0x00000002 , 0x0000003e 
+ 00009359  0x00000a2c branch  0x00002460 , 0x00000002 
+ 00009360  0x00000a2d storet  0x00000004 , 0x000040a9 
+ 00009361  0x00000a2e call  0x0000373a 
+ 00009362  0x00000a30 fetcht  0x00000004 , 0x000040a9 
+ 00009363  0x00000a31 branch  0x00002406 
+ 00009364  0x00000a34 bpatch  0x0000002b , 0x00004005 
+ 00009365  0x00000a35 fetch  0x00000001 , 0x0000438c 
+ 00009366  0x00000a36 nbranch  0x00002498 , 0x00000034 
+ 00009367  0x00000a37 rtn 
+ 00009368  0x00000a3a fetch  0x00000002 , 0x000040a4 
+ 00009369  0x00000a3b rtn  0x00000034 
+ 00009370  0x00000a3d fetcht  0x00000001 , 0x000040a6 
+ 00009371  0x00000a3e isub  0x00000002 , 0x0000003f 
+ 00009372  0x00000a3f arg  0x00001d4c , 0x00000002 
+ 00009373  0x00000a40 imul32  0x00000002 , 0x0000003f 
+ 00009374  0x00000a41 branch  0x0000248b 
+ 00009375  0x00000a45 fetch  0x00000002 , 0x000043ee 
+ 00009376  0x00000a46 call  0x00007d7b 
+ 00009377  0x00000a47 nbranch  0x000024b7 , 0x00000034 
+ 00009378  0x00000a48 jam  0x00000000 , 0x00000015 
+ 00009379  0x00000a49 bmark0  0x0000000d , 0x000024b7 
+ 00009380  0x00000a4a fetch  0x00000001 , 0x000040c2 
+ 00009381  0x00000a4b branch  0x000024bb , 0x00000034 
+ 00009382  0x00000a4c increase  0xffffffff , 0x0000003f 
+ 00009383  0x00000a4d store  0x00000001 , 0x000040c2 
+ 00009384  0x00000a4e rtn 
+ 00009385  0x00000a54 jam  0x00000000 , 0x000040a8 
+ 00009386  0x00000a55 fetch  0x00000003 , 0x000040b7 
+ 00009387  0x00000a56 increase  0x00000001 , 0x0000003f 
+ 00009388  0x00000a57 store  0x00000003 , 0x000040b7 
+ 00009389  0x00000a58 rtn 
+ 00009390  0x00000a5c bpatch  0x0000002c , 0x00004005 
+ 00009391  0x00000a5d jam  0x00000000 , 0x00000015 
+ 00009392  0x00000a5e fetch  0x00000003 , 0x000040ba 
+ 00009393  0x00000a5f increase  0x00000001 , 0x0000003f 
+ 00009394  0x00000a60 store  0x00000003 , 0x000040ba 
+ 00009395  0x00000a61 fetch  0x00000001 , 0x000040a8 
+ 00009396  0x00000a62 increase  0x00000001 , 0x0000003f 
+ 00009397  0x00000a63 store  0x00000001 , 0x000040a8 
+ 00009398  0x00000a64 rtn 
+ 00009399  0x00000a67 jam  0x00000000 , 0x00000015 
+ 00009400  0x00000a68 fetch  0x00000001 , 0x000040c1 
+ 00009401  0x00000a69 store  0x00000001 , 0x000040c2 
+ 00009402  0x00000a6a rtn 
+ 00009403  0x00000a6d fetcht  0x00000001 , 0x000040c0 
+ 00009404  0x00000a6e storet  0x00000001 , 0x00000015 
+ 00009405  0x00000a6f rtn 
+ 00009406  0x00000a74 fetch  0x00000002 , 0x000040a2 
+ 00009407  0x00000a75 qset1  0x0000003f 
+ 00009408  0x00000a76 store  0x00000002 , 0x000040a2 
+ 00009409  0x00000a77 rtn 
+ 00009410  0x00000a7a fetch  0x00000002 , 0x000040a2 
+ 00009411  0x00000a7b qset0  0x0000003f 
+ 00009412  0x00000a7c store  0x00000002 , 0x000040a2 
+ 00009413  0x00000a7d rtn 
+ 00009414  0x00000a82 bpatch  0x0000002d , 0x00004005 
+ 00009415  0x00000a83 call  0x00003738 
+ 00009416  0x00000a84 fetch  0x00000002 , 0x000040a2 
+ 00009417  0x00000a85 copy  0x0000003f , 0x00000011 
+ 00009418  0x00000a86 fetch  0x00000003 , 0x00004462 
+ 00009419  0x00000a87 nsetflag  0x00000034 , 0x00000001 , 0x00000011 
+ 00009420  0x00000a88 fetch  0x00000008 , 0x000044ea 
+ 00009421  0x00000a89 nsetflag  0x00000034 , 0x0000000f , 0x00000011 
+ 00009422  0x00000a8a fetch  0x00000008 , 0x000044f2 
+ 00009423  0x00000a8b nsetflag  0x00000034 , 0x0000000e , 0x00000011 
+ 00009424  0x00000a8c fetch  0x00000001 , 0x00004114 
+ 00009425  0x00000a8d nsetflag  0x00000034 , 0x00000008 , 0x00000011 
+ 00009426  0x00000a8e fetch  0x00000001 , 0x000043cf 
+ 00009427  0x00000a8f compare  0x0000000a , 0x0000003f , 0x000000ff 
+ 00009428  0x00000a90 call  0x000024d8 , 0x00000001 
+ 00009429  0x00000a91 copy  0x00000011 , 0x0000003f 
+ 00009430  0x00000a92 store  0x00000002 , 0x000040a2 
+ 00009431  0x00000a93 rtn 
+ 00009432  0x00000a96 fetch  0x00000002 , 0x00008112 
+ 00009433  0x00000a97 nsetflag  0x00000034 , 0x00000006 , 0x00000011 
+ 00009434  0x00000a98 fetch  0x00000002 , 0x0000810e 
+ 00009435  0x00000a99 nsetflag  0x00000034 , 0x00000005 , 0x00000011 
+ 00009436  0x00000a9a rtn 
+ 00009437  0x00000aa4 bpatchx  0x0000003b , 0x00004027 
+ 00009438  0x00000aa5 disable  0x0000002b 
+ 00009439  0x00000aa6 jam  0x00000001 , 0x0000017e 
+ 00009440  0x00000aa7 jam  0x00000003 , 0x00000168 
+ 00009441  0x00000aa8 jam  0x00000001 , 0x0000017f 
+ 00009442  0x00000aa9 setarg  0xffffffff 
+ 00009443  0x00000aaa store  0x00000002 , 0x00000182 
+ 00009444  0x00000aab force  0x00000000 , 0x0000003f 
+ 00009445  0x00000aac store  0x00000001 , 0x00000180 
+ 00009446  0x00000aad store  0x00000001 , 0x0000018b 
+ 00009447  0x00000aae store  0x00000003 , 0x000040b7 
+ 00009448  0x00000aaf store  0x00000003 , 0x000040ba 
+ 00009449  0x00000ab0 call  0x0000283a 
+ 00009450  0x00000ab1 jam  0x00000001 , 0x0000416b 
+ 00009451  0x00000ab2 jam  0x00000000 , 0x0000416c 
+ 00009452  0x00000ab3 jam  0x00000001 , 0x0000019d 
+ 00009453  0x00000ab4 jam  0x00000001 , 0x0000019e 
+ 00009454  0x00000ab5 jam  0x00000000 , 0x0000439a 
+ 00009455  0x00000ab6 branch  0x00002914 
+ 00009456  0x00000ab9 bpatchx  0x0000003c , 0x00004027 
+ 00009457  0x00000aba enable  0x00000029 
+ 00009458  0x00000abb jam  0x00000003 , 0x00000169 
+ 00009459  0x00000abc jam  0x00000001 , 0x0000439c 
+ 00009460  0x00000abd jam  0x00000001 , 0x0000068f 
+ 00009461  0x00000abe setarg  0x0000ffff 
+ 00009462  0x00000abf store  0x00000002 , 0x00000691 
+ 00009463  0x00000ac0 force  0x00000000 , 0x0000003f 
+ 00009464  0x00000ac1 store  0x00000005 , 0x0000446c 
+ 00009465  0x00000ac2 set1  0x00000027 , 0x0000003f 
+ 00009466  0x00000ac3 store  0x00000005 , 0x00004467 
+ 00009467  0x00000ac4 branch  0x000024dd 
+ 00009468  0x00000ac8 bpatchx  0x0000003d , 0x00004027 
+ 00009469  0x00000ac9 disable  0x00000029 
+ 00009470  0x00000aca setarg  0x00000017 
+ 00009471  0x00000acb store  0x00000002 , 0x000042e5 
+ 00009472  0x00000acc increase  0x00000004 , 0x0000003f 
+ 00009473  0x00000acd store  0x00000002 , 0x000043bc 
+ 00009474  0x00000ace jam  0x00000001 , 0x00000169 
+ 00009475  0x00000acf jam  0x00000000 , 0x0000438c 
+ 00009476  0x00000ad0 jam  0x00000000 , 0x00000015 
+ 00009477  0x00000ad1 call  0x00002567 
+ 00009478  0x00000ad2 fetch  0x00000002 , 0x00000196 
+ 00009479  0x00000ad3 store  0x00000002 , 0x000042f7 
+ 00009480  0x00000ad4 fetch  0x00000002 , 0x0000016a 
+ 00009481  0x00000ad5 mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00009482  0x00000ad6 rshift4  0x0000003f , 0x0000003f 
+ 00009483  0x00000ad7 store  0x00000002 , 0x00000196 
+ 00009484  0x00000ad8 branch  0x000024dd 
+ 00009485  0x00000ae0 bpatchx  0x0000003e , 0x00004027 
+ 00009486  0x00000ae1 call  0x0000258d 
+ 00009487  0x00000ae2 fetch  0x00000001 , 0x00000168 
+ 00009488  0x00000ae3 isolate1  0x00000004 , 0x0000003f 
+ 00009489  0x00000ae4 setflag  0x00000001 , 0x00000032 , 0x00000000 
+ 00009490  0x00000ae5 call  0x00003727 
+ 00009491  0x00000ae6 fetch  0x00000001 , 0x00000169 
+ 00009492  0x00000ae7 bbit1  0x00000001 , 0x00002516 
+ 00009493  0x00000ae8 branch  0x00002527 
+ 00009494  0x00000aef bpatchx  0x0000003f , 0x00004027 
+ 00009495  0x00000af0 enable  0x00000029 
+ 00009496  0x00000af1 call  0x0000290a 
+ 00009497  0x00000af2 branch  0x00002524 , 0x00000002 
+ 00009498  0x00000af3 call  0x000025d0 
+ 00009499  0x00000af4 call  0x0000284f 
+ 00009500  0x00000af5 disable  0x0000002d 
+ 00009501  0x00000af6 call  0x0000270e 
+ 00009502  0x00000af7 nrtn  0x0000002d 
+ 00009503  0x00000af8 fetch  0x00000001 , 0x00000005 
+ 00009504  0x00000af9 increase  0x00000001 , 0x0000003f 
+ 00009505  0x00000afa store  0x00000001 , 0x00000005 
+ 00009506  0x00000afb call  0x00002801 
+ 00009507  0x00000afc branch  0x00002525 
+ 00009508  0x00000aff call  0x0000255b 
+ 00009509  0x00000b01 disable  0x00000029 
+ 00009510  0x00000b02 rtn 
+ 00009511  0x00000b08 bpatchx  0x00000040 , 0x00004028 
+ 00009512  0x00000b09 jam  0x00000000 , 0x00004342 
+ 00009513  0x00000b0a set0  0x00000030 , 0x00000000 
+ 00009514  0x00000b0b call  0x00007540 
+ 00009515  0x00000b0c call  0x00002fd3 
+ 00009516  0x00000b0d disable  0x0000002e 
+ 00009517  0x00000b0e call  0x0000290a 
+ 00009518  0x00000b0f branch  0x0000255b , 0x00000002 
+ 00009519  0x00000b10 fetch  0x00000001 , 0x0000019d 
+ 00009520  0x00000b11 call  0x00002579 
+ 00009521  0x00000b12 call  0x000025d0 
+ 00009522  0x00000b13 call  0x00002627 
+ 00009523  0x00000b14 nbranch  0x0000254d , 0x00000018 
+ 00009524  0x00000b15 call  0x0000256c 
+ 00009525  0x00000b16 branch  0x00002538 , 0x0000002d 
+ 00009526  0x00000b17 bmark1  0x00000030 , 0x00002538 
+ 00009527  0x00000b18 branch  0x00002547 
+ 00009528  0x00000b1d bpatchx  0x00000041 , 0x00004028 
+ 00009529  0x00000b1e fetch  0x00000001 , 0x00004342 
+ 00009530  0x00000b1f pincrease  0x00000001 
+ 00009531  0x00000b20 store  0x00000001 , 0x00004342 
+ 00009532  0x00000b21 beq  0x0000000c , 0x00002547 
+ 00009533  0x00000b22 call  0x00002801 
+ 00009534  0x00000b23 call  0x0000284f 
+ 00009535  0x00000b24 fetch  0x00000001 , 0x0000019e 
+ 00009536  0x00000b25 call  0x00002579 
+ 00009537  0x00000b26 call  0x0000271f 
+ 00009538  0x00000b27 call  0x000028b2 
+ 00009539  0x00000b28 fetch  0x00000002 , 0x000043ea 
+ 00009540  0x00000b29 call  0x00007d7b 
+ 00009541  0x00000b2a call  0x00002551 
+ 00009542  0x00000b2b branch  0x00002555 , 0x00000028 
+ 00009543  0x00000b2d bpatchx  0x00000042 , 0x00004028 
+ 00009544  0x00000b2e call  0x00002f98 
+ 00009545  0x00000b2f call  0x00002f8f 
+ 00009546  0x00000b30 call  0x00007831 
+ 00009547  0x00000b31 fetch  0x00000001 , 0x0000018b 
+ 00009548  0x00000b32 bbit1  0x00000003 , 0x0000255b 
+ 00009549  0x00000b34 bpatchx  0x00000043 , 0x00004028 
+ 00009550  0x00000b35 call  0x000020cf 
+ 00009551  0x00000b36 call  0x00002984 
+ 00009552  0x00000b37 branch  0x000020f7 
+ 00009553  0x00000b3b bmark1  0x0000002a , 0x00007dbc 
+ 00009554  0x00000b3c bmark1  0x00000029 , 0x00007dbc 
+ 00009555  0x00000b3d bmark1  0x00000030 , 0x00007dbc 
+ 00009556  0x00000b3e branch  0x00007dbe 
+ 00009557  0x00000b42 bpatchx  0x00000044 , 0x00004028 
+ 00009558  0x00000b43 enable  0x0000002e 
+ 00009559  0x00000b44 call  0x00002712 
+ 00009560  0x00000b45 branch  0x00002538 , 0x0000002d 
+ 00009561  0x00000b46 bmark1  0x00000030 , 0x00002538 
+ 00009562  0x00000b47 branch  0x00002547 
+ 00009563  0x00000b4c bpatchx  0x00000045 , 0x00004028 
+ 00009564  0x00000b4d call  0x00002562 
+ 00009565  0x00000b4e call  0x00003777 
+ 00009566  0x00000b4f call  0x00002567 
+ 00009567  0x00000b50 call  0x00002fe1 
+ 00009568  0x00000b51 jam  0x00000015 , 0x0000064d 
+ 00009569  0x00000b52 branch  0x00007819 
+ 00009570  0x00000b55 arg  0x00004458 , 0x00000005 
+ 00009571  0x00000b56 call  0x00007c9b 
+ 00009572  0x00000b57 jam  0x00000000 , 0x0000017e 
+ 00009573  0x00000b58 jam  0x00000000 , 0x00000169 
+ 00009574  0x00000b59 jam  0x00000000 , 0x00000168 
+ 00009575  0x00000b5b bpatchx  0x00000046 , 0x00004028 
+ 00009576  0x00000b5c jam  0x00000000 , 0x000042ff 
+ 00009577  0x00000b5d jam  0x00000000 , 0x000042fe 
+ 00009578  0x00000b5e call  0x00007440 
+ 00009579  0x00000b5f rtn 
+ 00009580  0x00000b62 bpatchx  0x00000047 , 0x00004028 
+ 00009581  0x00000b63 fetch  0x00000001 , 0x00000005 
+ 00009582  0x00000b64 increase  0x00000001 , 0x0000003f 
+ 00009583  0x00000b65 store  0x00000001 , 0x00000005 
+ 00009584  0x00000b66 fetch  0x00000001 , 0x00000168 
+ 00009585  0x00000b67 rtnbit1  0x00000003 
+ 00009586  0x00000b68 set1  0x00000003 , 0x0000003f 
+ 00009587  0x00000b69 store  0x00000001 , 0x00000168 
+ 00009588  0x00000b6a fetch  0x00000002 , 0x000042f7 
+ 00009589  0x00000b6b store  0x00000002 , 0x00000196 
+ 00009590  0x00000b6c setarg  0x00000000 
+ 00009591  0x00000b6d store  0x00000004 , 0x0000431f 
+ 00009592  0x00000b6e rtn 
+ 00009593  0x00000b77 copy  0x0000003f , 0x00000002 
+ 00009594  0x00000b78 bpatchx  0x00000048 , 0x00004029 
+ 00009595  0x00000b7a copy  0x00000002 , 0x0000003f 
+ 00009596  0x00000b7b bbit1  0x00000000 , 0x0000258d 
+ 00009597  0x00000b7c bbit1  0x00000001 , 0x00002582 
+ 00009598  0x00000b7d bbit0  0x00000002 , 0x0000258d 
+ 00009599  0x00000b7e bbit1  0x00000007 , 0x00002589 
+ 00009600  0x00000b7f bbit1  0x00000002 , 0x00002585 
+ 00009601  0x00000b80 branch  0x0000258d 
+ 00009602  0x00000b83 set0  0x0000002f , 0x00000000 
+ 00009603  0x00000b84 set1  0x0000002d , 0x00000000 
+ 00009604  0x00000b85 rtn 
+ 00009605  0x00000b89 set0  0x0000002d , 0x00000000 
+ 00009606  0x00000b8a set1  0x0000002f , 0x00000000 
+ 00009607  0x00000b8b set0  0x0000002e , 0x00000000 
+ 00009608  0x00000b8c rtn 
+ 00009609  0x00000b90 set0  0x0000002d , 0x00000000 
+ 00009610  0x00000b91 set1  0x0000002f , 0x00000000 
+ 00009611  0x00000b92 set1  0x0000002e , 0x00000000 
+ 00009612  0x00000b93 rtn 
+ 00009613  0x00000b96 bpatchx  0x00000049 , 0x00004029 
+ 00009614  0x00000b97 set0  0x0000002d , 0x00000000 
+ 00009615  0x00000b98 set0  0x0000002f , 0x00000000 
+ 00009616  0x00000b99 rtn 
+ 00009617  0x00000b9d bpatchx  0x0000004a , 0x00004029 
+ 00009618  0x00000b9e set0  0x00000032 , 0x00000000 
+ 00009619  0x00000b9f jam  0x00000001 , 0x00008901 
+ 00009620  0x00000ba0 jam  0x00000080 , 0x00008920 
+ 00009621  0x00000ba1 jam  0x00000003 , 0x00008930 
+ 00009622  0x00000ba2 rtn 
+ 00009623  0x00000ba5 bpatchx  0x0000004b , 0x00004029 
+ 00009624  0x00000ba6 disable  0x00000009 
+ 00009625  0x00000ba7 disable  0x00000007 
+ 00009626  0x00000ba8 fetch  0x00000003 , 0x00000190 
+ 00009627  0x00000ba9 iforce  0x0000000f 
+ 00009628  0x00000baa fetch  0x00000001 , 0x00000007 
+ 00009629  0x00000bac reverse  0x0000003f , 0x00000002 
+ 00009630  0x00000bad set1  0x00000001 , 0x00000002 
+ 00009631  0x00000bae rshift  0x00000002 , 0x0000000e 
+ 00009632  0x00000baf rtn 
+ 00009633  0x00000bb3 call  0x000025aa 
+ 00009634  0x00000bb5 call  0x00002173 
+ 00009635  0x00000bb6 fetch  0x00000002 , 0x0000003e 
+ 00009636  0x00000bb7 call  0x00002340 
+ 00009637  0x00000bb8 branch  0x000021aa 
+ 00009638  0x00000bbb branch  0x00002202 , 0x0000002d 
+ 00009639  0x00000bbc bmark1  0x00000030 , 0x00002202 
+ 00009640  0x00000bbe call  0x000025aa 
+ 00009641  0x00000bbf branch  0x000021ff 
+ 00009642  0x00000bc2 bpatchx  0x0000004c , 0x00004029 
+ 00009643  0x00000bc3 call  0x00002164 
+ 00009644  0x00000bc4 fetch  0x00000001 , 0x0000433d 
+ 00009645  0x00000bc5 nbranch  0x000025bd , 0x00000034 
+ 00009646  0x00000bc6 fetch  0x00000001 , 0x00000007 
+ 00009647  0x00000bc7 sub  0x0000003f , 0x00000024 , 0x0000003e 
+ 00009648  0x00000bc8 branch  0x000025b7 , 0x00000002 
+ 00009649  0x00000bc9 force  0x00000000 , 0x00000002 
+ 00009650  0x00000bca rtneq  0x00000025 
+ 00009651  0x00000bcb force  0x00000018 , 0x00000002 
+ 00009652  0x00000bcc rtneq  0x00000026 
+ 00009653  0x00000bcd force  0x0000004e , 0x00000002 
+ 00009654  0x00000bce rtn 
+ 00009655  0x00000bd1 sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00009656  0x00000bd2 branch  0x000025ba , 0x00000002 
+ 00009657  0x00000bd3 increase  0x00000001 , 0x0000003f 
+ 00009658  0x00000bd6 lshift  0x0000003f , 0x0000003f 
+ 00009659  0x00000bd7 add  0x0000003f , 0x00000002 , 0x00000002 
+ 00009660  0x00000bd8 rtn 
+ 00009661  0x00000bdb fetch  0x00000001 , 0x00000007 
+ 00009662  0x00000bdc lshift  0x0000003f , 0x00000002 
+ 00009663  0x00000bdd rtn 
+ 00009664  0x00000be0 arg  0x000001f4 , 0x00000002 
+ 00009665  0x00000be1 rtn  0x00000034 
+ 00009666  0x00000be2 arg  0x000000fa , 0x00000002 
+ 00009667  0x00000be3 rtneq  0x00000001 
+ 00009668  0x00000be4 arg  0x00000096 , 0x00000002 
+ 00009669  0x00000be5 rtneq  0x00000002 
+ 00009670  0x00000be6 arg  0x00000064 , 0x00000002 
+ 00009671  0x00000be7 rtneq  0x00000003 
+ 00009672  0x00000be8 arg  0x0000004b , 0x00000002 
+ 00009673  0x00000be9 rtneq  0x00000004 
+ 00009674  0x00000bea arg  0x00000032 , 0x00000002 
+ 00009675  0x00000beb rtneq  0x00000005 
+ 00009676  0x00000bec arg  0x00000028 , 0x00000002 
+ 00009677  0x00000bed rtneq  0x00000006 
+ 00009678  0x00000bee arg  0x00000014 , 0x00000002 
+ 00009679  0x00000bef rtn 
+ 00009680  0x00000bf4 bpatchx  0x0000004d , 0x00004029 
+ 00009681  0x00000bf5 enable  0x00000010 
+ 00009682  0x00000bf6 fetch  0x00000004 , 0x0000018c 
+ 00009683  0x00000bf7 iforce  0x00000009 
+ 00009684  0x00000bf8 call  0x00002605 
+ 00009685  0x00000bf9 setarg  0x00000200 
+ 00009686  0x00000bfa branch  0x000025d9 , 0x00000029 
+ 00009687  0x00000bfb fetch  0x00000002 , 0x00000176 
+ 00009688  0x00000bfc rshift  0x0000003f , 0x0000003f 
+ 00009689  0x00000bfe fetcht  0x00000002 , 0x0000003e 
+ 00009690  0x00000bff iadd  0x00000002 , 0x0000003f 
+ 00009691  0x00000c00 call  0x00002327 
+ 00009692  0x00000c01 deposit  0x0000001a 
+ 00009693  0x00000c02 rtn 
+ 00009694  0x00000c06 bpatchx  0x0000004e , 0x00004029 
+ 00009695  0x00000c07 call  0x00007c53 
+ 00009696  0x00000c08 storer  0x00000039 , 0x00000002 , 0x00000679 
+ 00009697  0x00000c09 add  0x00000011 , 0x00000001 , 0x00000006 
+ 00009698  0x00000c0a ifetch  0x00000001 , 0x00000006 
+ 00009699  0x00000c0b rtnbit0  0x00000000 
+ 00009700  0x00000c0c add  0x00000011 , 0x0000001a , 0x00000005 
+ 00009701  0x00000c0d ifetch  0x00000002 , 0x00000005 
+ 00009702  0x00000c0e increase  0x00000001 , 0x0000003f 
+ 00009703  0x00000c0f istore  0x00000002 , 0x00000005 
+ 00009704  0x00000c10 call  0x00002780 
+ 00009705  0x00000c11 call  0x000027a2 
+ 00009706  0x00000c12 call  0x000027ab 
+ 00009707  0x00000c13 call  0x000025ef 
+ 00009708  0x00000c14 call  0x00007c62 
+ 00009709  0x00000c15 fetchr  0x00000039 , 0x00000002 , 0x00000679 
+ 00009710  0x00000c16 rtn 
+ 00009711  0x00000c19 add  0x00000011 , 0x00000019 , 0x00000006 
+ 00009712  0x00000c1a ifetch  0x00000001 , 0x00000006 
+ 00009713  0x00000c1b add  0x00000011 , 0x00000018 , 0x00000005 
+ 00009714  0x00000c1c ifetcht  0x00000001 , 0x00000005 
+ 00009715  0x00000c1d iadd  0x00000002 , 0x0000003f 
+ 00009716  0x00000c1e sub  0x0000003f , 0x00000024 , 0x0000003e 
+ 00009717  0x00000c1f branch  0x000025f7 , 0x00000002 
+ 00009718  0x00000c20 increase  0xffffffdb , 0x0000003f 
+ 00009719  0x00000c22 istore  0x00000001 , 0x00000005 
+ 00009720  0x00000c23 rtn 
+ 00009721  0x00000c27 add  0x00000011 , 0x00000030 , 0x00000006 
+ 00009722  0x00000c28 ifetch  0x00000005 , 0x00000006 
+ 00009723  0x00000c29 force  0x00000000 , 0x00000002 
+ 00009724  0x00000c2a force  0x00000025 , 0x00000039 
+ 00009725  0x00000c2c bbit0  0x00000000 , 0x000025ff 
+ 00009726  0x00000c2d increase  0x00000001 , 0x00000002 
+ 00009727  0x00000c2f rshift  0x0000003f , 0x0000003f 
+ 00009728  0x00000c30 loop  0x000025fd 
+ 00009729  0x00000c31 add  0x00000002 , 0xffffffff , 0x0000003f 
+ 00009730  0x00000c32 add  0x00000011 , 0x00000022 , 0x00000005 
+ 00009731  0x00000c33 istore  0x00000001 , 0x00000005 
+ 00009732  0x00000c34 rtn 
+ 00009733  0x00000c37 bpatchx  0x0000004f , 0x00004029 
+ 00009734  0x00000c38 fetch  0x00000001 , 0x00000180 
+ 00009735  0x00000c39 iforce  0x00000007 
+ 00009736  0x00000c3a fetcht  0x00000005 , 0x00000198 
+ 00009737  0x00000c3b qisolate1  0x00000002 
+ 00009738  0x00000c3c branch  0x0000261a , 0x00000001 
+ 00009739  0x00000c3e fetch  0x00000001 , 0x0000018a 
+ 00009740  0x00000c3f isub  0x00000007 , 0x0000003f 
+ 00009741  0x00000c40 branch  0x00002610 , 0x00000002 
+ 00009742  0x00000c41 sub  0x0000003f , 0xffffffff , 0x00000007 
+ 00009743  0x00000c42 branch  0x0000260b 
+ 00009744  0x00000c44 copy  0x00000007 , 0x00000039 
+ 00009745  0x00000c45 force  0x00000000 , 0x00000007 
+ 00009746  0x00000c47 qisolate1  0x00000002 
+ 00009747  0x00000c48 branch  0x00002615 , 0x00000001 
+ 00009748  0x00000c49 increase  0x00000001 , 0x00000039 
+ 00009749  0x00000c4b deposit  0x00000039 
+ 00009750  0x00000c4c branch  0x0000261a , 0x00000034 
+ 00009751  0x00000c4d increase  0x00000001 , 0x00000007 
+ 00009752  0x00000c4e increase  0xffffffff , 0x00000039 
+ 00009753  0x00000c4f branch  0x00002612 
+ 00009754  0x00000c51 deposit  0x00000007 
+ 00009755  0x00000c52 store  0x00000001 , 0x00000007 
+ 00009756  0x00000c53 rtn 
+ 00009757  0x00000c57 branch  0x00002620 , 0x00000029 
+ 00009758  0x00000c58 until  0x0000003e , 0x00000003 
+ 00009759  0x00000c59 rtn 
+ 00009760  0x00000c5c arg  0x00000ea0 , 0x0000000b 
+ 00009761  0x00000c5d until  0x00000023 , 0x00000026 
+ 00009762  0x00000c5e rtn 
+ 00009763  0x00000c61 disable  0x00000010 
+ 00009764  0x00000c62 fetch  0x00000002 , 0x0000434a 
+ 00009765  0x00000c63 copy  0x0000003f , 0x0000000b 
+ 00009766  0x00000c64 branch  0x0000262d 
+ 00009767  0x00000c68 bpatchx  0x00000050 , 0x0000402a 
+ 00009768  0x00000c69 call  0x00002692 
+ 00009769  0x00000c6a enable  0x00000010 
+ 00009770  0x00000c6b fetch  0x00000002 , 0x00000176 
+ 00009771  0x00000c6c fetcht  0x00000004 , 0x0000431f 
+ 00009772  0x00000c6d iadd  0x00000002 , 0x0000000b 
+ 00009773  0x00000c6f call  0x000025a1 
+ 00009774  0x00000c71 bpatchx  0x00000051 , 0x0000402a 
+ 00009775  0x00000c72 call  0x00002597 
+ 00009776  0x00000c73 bmark0  0x0000002f , 0x00002635 
+ 00009777  0x00000c74 pulse  0x00000039 
+ 00009778  0x00000c75 nop  0x0000001e 
+ 00009779  0x00000c76 call  0x00002597 
+ 00009780  0x00000c77 lshift3  0x0000000b , 0x0000000b 
+ 00009781  0x00000c79 disable  0x0000002d 
+ 00009782  0x00000c7a enable  0x0000000d 
+ 00009783  0x00000c7b enable  0x00000021 
+ 00009784  0x00000c7c disable  0x00000020 
+ 00009785  0x00000c7d copy  0x0000000b , 0x0000001b 
+ 00009786  0x00000c7e correlate  0x0000003e , 0x00000003 
+ 00009787  0x00000c7f branch  0x0000263e , 0x0000002e 
+ 00009788  0x00000c80 copy  0x0000001a , 0x00000002 
+ 00009789  0x00000c81 storet  0x00000006 , 0x0000000f 
+ 00009790  0x00000c83 nbranch  0x000026ce , 0x00000018 
+ 00009791  0x00000c84 enable  0x00000010 
+ 00009792  0x00000c85 fetch  0x00000001 , 0x00004169 
+ 00009793  0x00000c86 arg  0x00004e20 , 0x00000002 
+ 00009794  0x00000c87 iadd  0x00000002 , 0x00000002 
+ 00009795  0x00000c88 fetch  0x00000001 , 0x00004148 
+ 00009796  0x00000c89 imul32  0x00000002 , 0x0000001b 
+ 00009797  0x00000c8a call  0x000066e7 
+ 00009798  0x00000c8b branch  0x0000264b , 0x0000002e 
+ 00009799  0x00000c8c call  0x000026d3 
+ 00009800  0x00000c8d fetch  0x00000001 , 0x00000168 
+ 00009801  0x00000c8e bbit0  0x00000003 , 0x0000264b 
+ 00009802  0x00000c8f call  0x00002449 , 0x0000002b 
+ 00009803  0x00000c91 call  0x000022cd 
+ 00009804  0x00000c92 enable  0x00000007 
+ 00009805  0x00000c93 enable  0x00000009 
+ 00009806  0x00000c94 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009807  0x00000c95 rshift3  0x0000000c , 0x0000003f 
+ 00009808  0x00000c96 store  0x00000001 , 0x0000004c 
+ 00009809  0x00000c97 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009810  0x00000c98 rshift3  0x0000000c , 0x0000003f 
+ 00009811  0x00000c99 store  0x00000001 , 0x0000004d 
+ 00009812  0x00000c9a copy  0x0000003f , 0x00000039 
+ 00009813  0x00000c9b branch  0x00002671 , 0x00000005 
+ 00009814  0x00000c9d bmark1  0x00000032 , 0x0000265c 
+ 00009815  0x00000ca0 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009816  0x00000ca1 rshift3  0x0000000c , 0x0000003f 
+ 00009817  0x00000ca2 istore  0x00000001 , 0x00000005 
+ 00009818  0x00000ca3 loop  0x00002657 
+ 00009819  0x00000ca4 branch  0x00002671 
+ 00009820  0x00000ca7 copy  0x00000005 , 0x00000012 
+ 00009821  0x00000ca8 bpatchx  0x00000052 , 0x0000402a 
+ 00009822  0x00000ca9 call  0x000027fa 
+ 00009823  0x00000cab fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00009824  0x00000cac increase  0xfffffffc , 0x00000011 
+ 00009825  0x00000cad nbranch  0x000026ce , 0x00000002 
+ 00009826  0x00000caf call  0x00002697 
+ 00009827  0x00000cb0 copy  0x00000012 , 0x00000005 
+ 00009828  0x00000cb1 arg  0x00000000 , 0x00000002 
+ 00009829  0x00000cb2 fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00009830  0x00000cb3 increase  0xfffffffc , 0x00000039 
+ 00009831  0x00000cb4 branch  0x0000266f , 0x00000005 
+ 00009832  0x00000cb7 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00009833  0x00000cb8 rshift3  0x0000000c , 0x0000003f 
+ 00009834  0x00000cb9 istore  0x00000001 , 0x00000005 
+ 00009835  0x00000cba increase  0x00000001 , 0x00000002 
+ 00009836  0x00000cbb and  0x00000002 , 0x0000000f , 0x0000003e 
+ 00009837  0x00000cbc call  0x000026b5 , 0x00000005 
+ 00009838  0x00000cbd loop  0x00002668 
+ 00009839  0x00000cbf call  0x000026bd 
+ 00009840  0x00000cc0 copy  0x00000012 , 0x00000005 
+ 00009841  0x00000cc4 bpatchx  0x00000053 , 0x0000402a 
+ 00009842  0x00000cc5 parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00009843  0x00000cc6 rshift32  0x0000003f , 0x0000003f 
+ 00009844  0x00000cc7 rshift16  0x0000003f , 0x0000003f 
+ 00009845  0x00000cc8 istore  0x00000003 , 0x00000005 
+ 00009846  0x00000cc9 enable  0x00000010 
+ 00009847  0x00000cca call  0x000026eb 
+ 00009848  0x00000ccb branch  0x000026c9 , 0x00000006 
+ 00009849  0x00000ccc bmark0  0x00000032 , 0x00002683 
+ 00009850  0x00000ccd fetch  0x00000001 , 0x0000004d 
+ 00009851  0x00000cce branch  0x00002683 , 0x00000034 
+ 00009852  0x00000ccf increase  0xfffffffc , 0x0000003f 
+ 00009853  0x00000cd0 store  0x00000001 , 0x0000004d 
+ 00009854  0x00000cd1 call  0x000072b9 
+ 00009855  0x00000cd2 fetch  0x00000001 , 0x00008108 
+ 00009856  0x00000cd3 bbit0  0x00000007 , 0x000026ce 
+ 00009857  0x00000cd4 force  0x0000000c , 0x00000038 
+ 00009858  0x00000cd5 storer  0x0000002f , 0x00000004 , 0x00000154 
+ 00009859  0x00000cd7 call  0x000066e6 
+ 00009860  0x00000cd8 enable  0x0000002d 
+ 00009861  0x00000cd9 set0  0x00000030 , 0x00000000 
+ 00009862  0x00000cdb bpatchx  0x00000054 , 0x0000402a 
+ 00009863  0x00000cdc call  0x000072bb 
+ 00009864  0x00000cdd fetch  0x00000001 , 0x0000019d 
+ 00009865  0x00000cde nsetflag  0x0000003c , 0x00000007 , 0x0000003f 
+ 00009866  0x00000cdf store  0x00000001 , 0x0000019d 
+ 00009867  0x00000ce0 call  0x0000268d 
+ 00009868  0x00000ce1 branch  0x0000268f 
+ 00009869  0x00000ce4 disable  0x0000000d 
+ 00009870  0x00000ce5 branch  0x00002164 
+ 00009871  0x00000ce8 bpatchx  0x00000055 , 0x0000402a 
+ 00009872  0x00000ce9 fetcht  0x00000001 , 0x00000008 
+ 00009873  0x00000cea branch  0x000021ca 
+ 00009874  0x00000cee rtnmark0  0x00000032 
+ 00009875  0x00000cef call  0x00007356 
+ 00009876  0x00000cf0 force  0x0000000c , 0x00000038 
+ 00009877  0x00000cf1 call  0x0000735e 
+ 00009878  0x00000cf2 branch  0x0000735d 
+ 00009879  0x00000cf6 bpatchx  0x00000056 , 0x0000402a 
+ 00009880  0x00000cf7 jam  0x00000000 , 0x0000806c 
+ 00009881  0x00000cf8 jam  0x00000001 , 0x0000806d 
+ 00009882  0x00000cf9 fetch  0x00000001 , 0x0000004c 
+ 00009883  0x00000cfa and_into  0x00000003 , 0x0000003f 
+ 00009884  0x00000cfb store  0x00000001 , 0x0000806e 
+ 00009885  0x00000cfd setarg  0x0000004e 
+ 00009886  0x00000cfe store  0x00000002 , 0x00008068 
+ 00009887  0x00000cff store  0x00000002 , 0x0000806a 
+ 00009888  0x00000d01 fetchr  0x00000011 , 0x00000001 , 0x0000004d 
+ 00009889  0x00000d02 increase  0xfffffffc , 0x00000011 
+ 00009890  0x00000d04 fetcht  0x00000005 , 0x0000446c 
+ 00009891  0x00000d05 isolate1  0x0000000f , 0x00000000 
+ 00009892  0x00000d06 call  0x000026ab , 0x00000001 
+ 00009893  0x00000d07 call  0x00007253 
+ 00009894  0x00000d08 setarg  0x00000000 
+ 00009895  0x00000d09 store  0x00000002 , 0x000080c0 
+ 00009896  0x00000d0a jam  0x00000006 , 0x0000800a 
+ 00009897  0x00000d0b jam  0x00000007 , 0x0000800a 
+ 00009898  0x00000d0c rtn 
+ 00009899  0x00000d0f sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00009900  0x00000d10 branch  0x000026b0 , 0x00000005 
+ 00009901  0x00000d11 increase  0xffffffff , 0x00000002 
+ 00009902  0x00000d12 set1  0x00000027 , 0x00000002 
+ 00009903  0x00000d13 rtn 
+ 00009904  0x00000d16 setarg  0x00ffffff 
+ 00009905  0x00000d17 lshift16  0x0000003f , 0x0000003f 
+ 00009906  0x00000d18 arg  0x0000ffff , 0x00000002 
+ 00009907  0x00000d19 ior  0x00000002 , 0x00000002 
+ 00009908  0x00000d1a rtn 
+ 00009909  0x00000d1d copy  0x00000005 , 0x00000012 
+ 00009910  0x00000d1e fetch  0x00000001 , 0x0000004d 
+ 00009911  0x00000d1f increase  0xfffffffc , 0x0000003f 
+ 00009912  0x00000d20 isub  0x00000002 , 0x0000003e 
+ 00009913  0x00000d21 rtn  0x00000005 
+ 00009914  0x00000d22 storet  0x00000002 , 0x000080c0 
+ 00009915  0x00000d23 copy  0x00000012 , 0x00000005 
+ 00009916  0x00000d24 rtn 
+ 00009917  0x00000d27 parse  0x00000003 , 0x00000000 , 0x00000020 
+ 00009918  0x00000d28 rshift32  0x0000003f , 0x0000003f 
+ 00009919  0x00000d29 rshift8  0x0000003f , 0x0000003f 
+ 00009920  0x00000d2a istore  0x00000004 , 0x00000005 
+ 00009921  0x00000d2b copy  0x00000005 , 0x00000012 
+ 00009922  0x00000d2d force  0x00000000 , 0x00000038 
+ 00009923  0x00000d2e copy  0x0000003f , 0x0000002f 
+ 00009924  0x00000d2f storet  0x00000002 , 0x000080c0 
+ 00009925  0x00000d30 rtn 
+ 00009926  0x00000d36 call  0x000026eb 
+ 00009927  0x00000d37 call  0x000020cf 
+ 00009928  0x00000d38 branch  0x00002683 
+ 00009929  0x00000d3b call  0x000066e8 
+ 00009930  0x00000d3c bmark1  0x00000010 , 0x000026ce 
+ 00009931  0x00000d3d bmark1  0x00000030 , 0x000026ce 
+ 00009932  0x00000d3e set1  0x00000030 , 0x00000000 
+ 00009933  0x00000d3f branch  0x00002686 
+ 00009934  0x00000d43 set0  0x00000030 , 0x00000000 
+ 00009935  0x00000d44 branch  0x000026d0 
+ 00009936  0x00000d47 bpatchx  0x00000057 , 0x0000402a 
+ 00009937  0x00000d48 call  0x000072bb 
+ 00009938  0x00000d49 branch  0x000020cf 
+ 00009939  0x00000d4c fetcht  0x00000006 , 0x0000000f 
+ 00009940  0x00000d4d copy  0x0000001a , 0x0000003f 
+ 00009941  0x00000d4e call  0x00007d14 
+ 00009942  0x00000d4f copy  0x0000003f , 0x00000002 
+ 00009943  0x00000d50 call  0x000026dd 
+ 00009944  0x00000d51 copy  0x0000001a , 0x0000002b 
+ 00009945  0x00000d52 copy  0x00000029 , 0x0000003f 
+ 00009946  0x00000d53 iadd  0x00000002 , 0x0000003f 
+ 00009947  0x00000d55 copy  0x0000003f , 0x00000029 
+ 00009948  0x00000d56 rtn 
+ 00009949  0x00000d59 bmark1  0x0000002f , 0x000026e3 
+ 00009950  0x00000d5a bmark1  0x0000002d , 0x000026e7 
+ 00009951  0x00000d5b fetch  0x00000002 , 0x00000046 
+ 00009952  0x00000d5c copy  0x0000003f , 0x00000029 
+ 00009953  0x00000d5d copy  0x00000021 , 0x00000028 
+ 00009954  0x00000d5e rtn 
+ 00009955  0x00000d62 fetch  0x00000002 , 0x0000004a 
+ 00009956  0x00000d63 copy  0x0000003f , 0x00000029 
+ 00009957  0x00000d64 add  0x00000021 , 0x00000001 , 0x00000028 
+ 00009958  0x00000d65 rtn 
+ 00009959  0x00000d68 fetch  0x00000002 , 0x00000048 
+ 00009960  0x00000d69 copy  0x0000003f , 0x00000029 
+ 00009961  0x00000d6a copy  0x00000021 , 0x00000028 
+ 00009962  0x00000d6b rtn 
+ 00009963  0x00000d6f fetch  0x00000001 , 0x0000004d 
+ 00009964  0x00000d70 add  0x0000003f , 0x00000005 , 0x00000002 
+ 00009965  0x00000d71 lshift3  0x00000002 , 0x00000002 
+ 00009966  0x00000d72 fetch  0x00000001 , 0x0000019d 
+ 00009967  0x00000d73 bmark1  0x0000002f , 0x000026f2 
+ 00009968  0x00000d74 bbit1  0x00000000 , 0x000026f4 
+ 00009969  0x00000d75 bbit1  0x00000001 , 0x000026f5 
+ 00009970  0x00000d77 branch  0x000026f7 , 0x0000003c 
+ 00009971  0x00000d78 branch  0x000026fa 
+ 00009972  0x00000d7b branch  0x000026ff 
+ 00009973  0x00000d7e rshift  0x00000002 , 0x00000002 
+ 00009974  0x00000d7f branch  0x000026ff 
+ 00009975  0x00000d82 add  0x00000002 , 0x00000003 , 0x00000002 
+ 00009976  0x00000d83 lshift  0x00000002 , 0x00000002 
+ 00009977  0x00000d84 branch  0x000026fc 
+ 00009978  0x00000d87 add  0x00000002 , 0x00000003 , 0x00000002 
+ 00009979  0x00000d88 lshift3  0x00000002 , 0x00000002 
+ 00009980  0x00000d8a setarg  0x00000028 
+ 00009981  0x00000d8b iadd  0x00000002 , 0x00000002 
+ 00009982  0x00000d8c branch  0x000026ff 
+ 00009983  0x00000d8f fetch  0x00000001 , 0x00004148 
+ 00009984  0x00000d90 imul32  0x00000002 , 0x00000002 
+ 00009985  0x00000d91 arg  0x00004e20 , 0x00000011 
+ 00009986  0x00000d92 imul32  0x00000011 , 0x0000003f 
+ 00009987  0x00000d93 isub  0x00000002 , 0x00000002 
+ 00009988  0x00000d94 copy  0x0000001b , 0x0000003f 
+ 00009989  0x00000d95 isub  0x00000002 , 0x0000001b 
+ 00009990  0x00000d96 rtn 
+ 00009991  0x00000d99 call  0x0000271f 
+ 00009992  0x00000d9a fetcht  0x00000001 , 0x00000008 
+ 00009993  0x00000d9b call  0x00002173 
+ 00009994  0x00000d9c call  0x000021aa 
+ 00009995  0x00000d9d enable  0x00000010 
+ 00009996  0x00000d9e arg  0x0000157c , 0x0000000b 
+ 00009997  0x00000d9f branch  0x0000262e 
+ 00009998  0x00000da3 bpatchx  0x00000058 , 0x0000402b 
+ 00009999  0x00000da4 fetch  0x00000001 , 0x0000019e 
+ 00010000  0x00000da5 call  0x00002579 
+ 00010001  0x00000da6 call  0x0000271f 
+ 00010002  0x00000da8 fetch  0x00000001 , 0x0000019d 
+ 00010003  0x00000da9 call  0x00002579 
+ 00010004  0x00000dab fetcht  0x00000001 , 0x00000008 
+ 00010005  0x00000dac call  0x00002173 
+ 00010006  0x00000dad call  0x000021aa 
+ 00010007  0x00000dae enable  0x00000010 
+ 00010008  0x00000daf arg  0x0000157c , 0x0000000b 
+ 00010009  0x00000db0 bmark0  0x0000002f , 0x0000262e 
+ 00010010  0x00000db1 arg  0x00002134 , 0x0000000b 
+ 00010011  0x00000db2 branch  0x0000262e 
+ 00010012  0x00000db5 bpatchx  0x00000059 , 0x0000402b 
+ 00010013  0x00000db6 call  0x0000271f 
+ 00010014  0x00000db7 branch  0x000020cf 
+ 00010015  0x00000dba bpatchx  0x0000005a , 0x0000402b 
+ 00010016  0x00000dbb call  0x00002597 
+ 00010017  0x00000dbc call  0x000025a6 
+ 00010018  0x00000dbd call  0x000066ed 
+ 00010019  0x00000dbe set1  0x00000000 , 0x00000015 
+ 00010020  0x00000dbf enable  0x0000001d 
+ 00010021  0x00000dc0 enable  0x00000020 
+ 00010022  0x00000dc1 disable  0x00000021 
+ 00010023  0x00000dc2 call  0x0000261d 
+ 00010024  0x00000dc3 disable  0x0000003a 
+ 00010025  0x00000dc4 bmark1  0x0000002f , 0x00002762 
+ 00010026  0x00000dc5 bmark1  0x0000002d , 0x00002774 
+ 00010027  0x00000dc6 rshift16  0x00000009 , 0x0000003f 
+ 00010028  0x00000dc7 rshift8  0x0000003f , 0x0000003f 
+ 00010029  0x00000dc8 rshift4  0x0000003f , 0x0000003f 
+ 00010030  0x00000dc9 inject  0x00000003 , 0x00000028 
+ 00010031  0x00000dcb enable  0x00000007 
+ 00010032  0x00000dcc enable  0x00000009 
+ 00010033  0x00000dcd bpatchx  0x0000005b , 0x0000402b 
+ 00010034  0x00000dce fetch  0x00000001 , 0x0000416b 
+ 00010035  0x00000dcf inject  0x00000003 , 0x00000008 
+ 00010036  0x00000dd0 ifetch  0x00000001 , 0x00000006 
+ 00010037  0x00000dd1 copy  0x0000003f , 0x00000039 
+ 00010038  0x00000dd2 inject  0x00000003 , 0x00000008 
+ 00010039  0x00000dd3 sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00010040  0x00000dd4 branch  0x00002740 , 0x00000005 
+ 00010041  0x00000dd6 fetch  0x00000001 , 0x0000800a 
+ 00010042  0x00000dd7 branch  0x0000273c , 0x00000034 
+ 00010043  0x00000dd8 bmark1  0x00000032 , 0x00002757 
+ 00010044  0x00000dda arg  0x0000416d , 0x00000006 
+ 00010045  0x00000ddc ifetch  0x00000001 , 0x00000006 
+ 00010046  0x00000ddd inject  0x00000003 , 0x00000008 
+ 00010047  0x00000dde loop  0x0000273d 
+ 00010048  0x00000de1 enable  0x00000008 
+ 00010049  0x00000de2 inject  0x00000003 , 0x00000018 
+ 00010050  0x00000de3 disable  0x00000008 
+ 00010051  0x00000de4 bmark0  0x0000002f , 0x00002747 
+ 00010052  0x00000de5 disable  0x00000007 
+ 00010053  0x00000de6 setarg  0x00000000 
+ 00010054  0x00000de7 inject  0x00000003 , 0x00000003 
+ 00010055  0x00000de9 until  0x0000003e , 0x00000027 
+ 00010056  0x00000dea nop  0x00000064 
+ 00010057  0x00000deb bpatchx  0x0000005c , 0x0000402b 
+ 00010058  0x00000dec disable  0x0000001d 
+ 00010059  0x00000ded disable  0x00000038 
+ 00010060  0x00000dee call  0x00002164 
+ 00010061  0x00000def call  0x000066eb 
+ 00010062  0x00000df1 fetch  0x00000001 , 0x0000416b 
+ 00010063  0x00000df2 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00010064  0x00000df3 rtnne  0x00000003 
+ 00010065  0x00000df4 fetch  0x00000001 , 0x000042ff 
+ 00010066  0x00000df5 beq  0x00000002 , 0x0000283a 
+ 00010067  0x00000df6 rtnne  0x00000005 
+ 00010068  0x00000df7 fetch  0x00000001 , 0x0000416d 
+ 00010069  0x00000df8 beq  0x00000005 , 0x00002835 
+ 00010070  0x00000df9 rtn 
+ 00010071  0x00000dfd increase  0xfffffffc , 0x00000039 
+ 00010072  0x00000dfe copy  0x00000039 , 0x00000002 
+ 00010073  0x00000dff call  0x000072a6 
+ 00010074  0x00000e00 arg  0x0000416d , 0x00000006 
+ 00010075  0x00000e02 ifetch  0x00000001 , 0x00000006 
+ 00010076  0x00000e03 inject  0x00000003 , 0x00000008 
+ 00010077  0x00000e04 loop  0x0000275b 
+ 00010078  0x00000e05 call  0x000072ab 
+ 00010079  0x00000e06 copy  0x0000002f , 0x0000003f 
+ 00010080  0x00000e07 inject  0x00000003 , 0x00000020 
+ 00010081  0x00000e08 branch  0x00002740 
+ 00010082  0x00000e0b arg  0x0000000a , 0x00000039 
+ 00010083  0x00000e0d setarg  0x0000003c 
+ 00010084  0x00000e0e inject  0x00000003 , 0x00000008 
+ 00010085  0x00000e0f loop  0x00002763 
+ 00010086  0x00000e10 disable  0x0000001d 
+ 00010087  0x00000e11 enable  0x00000038 
+ 00010088  0x00000e12 rshift16  0x00000009 , 0x0000003f 
+ 00010089  0x00000e13 rshift16  0x0000003f , 0x0000003f 
+ 00010090  0x00000e14 rshift4  0x0000003f , 0x0000003f 
+ 00010091  0x00000e15 inject  0x00000003 , 0x00000020 
+ 00010092  0x00000e16 bmark1  0x0000002e , 0x00002771 
+ 00010093  0x00000e18 setarg  0x00000001 
+ 00010094  0x00000e19 inject  0x00000003 , 0x00000005 
+ 00010095  0x00000e1a enable  0x0000003a 
+ 00010096  0x00000e1b branch  0x0000272f 
+ 00010097  0x00000e1e setarg  0x00000000 
+ 00010098  0x00000e1f inject  0x00000003 , 0x00000005 
+ 00010099  0x00000e20 branch  0x0000272f 
+ 00010100  0x00000e23 fetch  0x00000001 , 0x00004148 
+ 00010101  0x00000e24 fetcht  0x00000001 , 0x0000416a 
+ 00010102  0x00000e25 iadd  0x00000002 , 0x0000003f 
+ 00010103  0x00000e26 call  0x00002340 
+ 00010104  0x00000e27 rshift16  0x00000009 , 0x0000003f 
+ 00010105  0x00000e28 rshift8  0x0000003f , 0x0000003f 
+ 00010106  0x00000e29 rshift4  0x0000003f , 0x00000002 
+ 00010107  0x00000e2a copy  0x00000002 , 0x0000003f 
+ 00010108  0x00000e2b inject  0x00000003 , 0x00000008 
+ 00010109  0x00000e2c copy  0x00000002 , 0x0000003f 
+ 00010110  0x00000e2d inject  0x00000003 , 0x00000028 
+ 00010111  0x00000e2e branch  0x0000272f 
+ 00010112  0x00000e32 arg  0x00002784 , 0x00000013 
+ 00010113  0x00000e33 arg  0x0000279a , 0x00000012 
+ 00010114  0x00000e34 arg  0x00000005 , 0x00000007 
+ 00010115  0x00000e35 branch  0x000027d9 
+ 00010116  0x00000e38 add  0x00000011 , 0x00000004 , 0x00000006 
+ 00010117  0x00000e39 ifetcht  0x00000004 , 0x00000006 
+ 00010118  0x00000e3a add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010119  0x00000e3b ifetch  0x00000001 , 0x00000006 
+ 00010120  0x00000e3c add  0x00000011 , 0x0000002b , 0x00000005 
+ 00010121  0x00000e3d istore  0x00000001 , 0x00000005 
+ 00010122  0x00000e3e ifetch  0x00000002 , 0x00000006 
+ 00010123  0x00000e3f lshift2  0x0000003f , 0x0000003f 
+ 00010124  0x00000e40 iadd  0x00000002 , 0x0000000b 
+ 00010125  0x00000e41 add  0x00000011 , 0x00000004 , 0x00000005 
+ 00010126  0x00000e42 deposit  0x0000000b 
+ 00010127  0x00000e43 istore  0x00000004 , 0x00000005 
+ 00010128  0x00000e44 ifetch  0x00000002 , 0x00000006 
+ 00010129  0x00000e45 lshift2  0x0000003f , 0x0000003f 
+ 00010130  0x00000e46 add  0x00000011 , 0x00000002 , 0x00000005 
+ 00010131  0x00000e47 istore  0x00000002 , 0x00000005 
+ 00010132  0x00000e48 ifetch  0x00000002 , 0x00000006 
+ 00010133  0x00000e49 add  0x00000011 , 0x0000002c , 0x00000005 
+ 00010134  0x00000e4a istore  0x00000002 , 0x00000005 
+ 00010135  0x00000e4b ifetch  0x00000002 , 0x00000006 
+ 00010136  0x00000e4c store  0x00000002 , 0x000042f7 
+ 00010137  0x00000e4d branch  0x00002917 
+ 00010138  0x00000e50 ifetch  0x00000001 , 0x00000011 
+ 00010139  0x00000e51 set0  0x00000003 , 0x0000003f 
+ 00010140  0x00000e52 istore  0x00000001 , 0x00000011 
+ 00010141  0x00000e53 storer  0x00000011 , 0x00000002 , 0x00000662 
+ 00010142  0x00000e54 jam  0x00000044 , 0x0000064d 
+ 00010143  0x00000e55 call  0x00007819 
+ 00010144  0x00000e56 fetchr  0x00000011 , 0x00000002 , 0x00000662 
+ 00010145  0x00000e57 rtn 
+ 00010146  0x00000e5a arg  0x00000000 , 0x00000013 
+ 00010147  0x00000e5b arg  0x000027a6 , 0x00000012 
+ 00010148  0x00000e5c arg  0x00000006 , 0x00000007 
+ 00010149  0x00000e5d branch  0x000027d9 
+ 00010150  0x00000e60 add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010151  0x00000e61 ifetch  0x00000005 , 0x00000006 
+ 00010152  0x00000e62 add  0x00000011 , 0x00000030 , 0x00000005 
+ 00010153  0x00000e63 istore  0x00000005 , 0x00000005 
+ 00010154  0x00000e64 branch  0x000025f9 
+ 00010155  0x00000e68 arg  0x00000000 , 0x00000013 
+ 00010156  0x00000e69 arg  0x000027af , 0x00000012 
+ 00010157  0x00000e6a arg  0x00000007 , 0x00000007 
+ 00010158  0x00000e6b branch  0x000027d9 
+ 00010159  0x00000e6e add  0x00000011 , 0x00000037 , 0x00000006 
+ 00010160  0x00000e6f ifetch  0x00000001 , 0x00000006 
+ 00010161  0x00000e70 call  0x000027bc 
+ 00010162  0x00000e71 istore  0x00000001 , 0x00000005 
+ 00010163  0x00000e72 add  0x00000011 , 0x00000038 , 0x00000006 
+ 00010164  0x00000e73 ifetch  0x00000001 , 0x00000006 
+ 00010165  0x00000e74 call  0x000027ca 
+ 00010166  0x00000e75 istore  0x00000001 , 0x00000005 
+ 00010167  0x00000e76 storer  0x00000011 , 0x00000002 , 0x00000662 
+ 00010168  0x00000e77 jam  0x00000042 , 0x0000064d 
+ 00010169  0x00000e78 call  0x00007819 
+ 00010170  0x00000e79 fetchr  0x00000011 , 0x00000002 , 0x00000662 
+ 00010171  0x00000e7a rtn 
+ 00010172  0x00000e7d call  0x000027c4 , 0x00000034 
+ 00010173  0x00000e7e add  0x00000011 , 0x00000035 , 0x00000005 
+ 00010174  0x00000e7f nrtn  0x00000029 
+ 00010175  0x00000e80 fetcht  0x00000001 , 0x000043ba 
+ 00010176  0x00000e81 isolate1  0x00000007 , 0x00000002 
+ 00010177  0x00000e82 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00010178  0x00000e83 add  0x00000011 , 0x00000036 , 0x00000005 
+ 00010179  0x00000e84 rtn 
+ 00010180  0x00000e87 add  0x00000011 , 0x00000035 , 0x00000006 
+ 00010181  0x00000e88 ifetch  0x00000001 , 0x00000006 
+ 00010182  0x00000e89 nrtn  0x00000029 
+ 00010183  0x00000e8a add  0x00000011 , 0x00000036 , 0x00000006 
+ 00010184  0x00000e8b ifetch  0x00000001 , 0x00000006 
+ 00010185  0x00000e8c rtn 
+ 00010186  0x00000e8f call  0x000027d3 , 0x00000034 
+ 00010187  0x00000e90 fetcht  0x00000001 , 0x000043ba 
+ 00010188  0x00000e91 isolate1  0x00000007 , 0x00000002 
+ 00010189  0x00000e92 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00010190  0x00000e93 add  0x00000011 , 0x00000036 , 0x00000005 
+ 00010191  0x00000e94 nrtn  0x00000029 
+ 00010192  0x00000e95 set0  0x00000007 , 0x0000003f 
+ 00010193  0x00000e96 add  0x00000011 , 0x00000035 , 0x00000005 
+ 00010194  0x00000e97 rtn 
+ 00010195  0x00000e9a add  0x00000011 , 0x00000036 , 0x00000006 
+ 00010196  0x00000e9b ifetch  0x00000001 , 0x00000006 
+ 00010197  0x00000e9c nrtn  0x00000029 
+ 00010198  0x00000e9d add  0x00000011 , 0x00000035 , 0x00000006 
+ 00010199  0x00000e9e ifetch  0x00000001 , 0x00000006 
+ 00010200  0x00000e9f rtn 
+ 00010201  0x00000ea5 bpatchx  0x0000005d , 0x0000402b 
+ 00010202  0x00000ea6 ifetch  0x00000001 , 0x00000011 
+ 00010203  0x00000ea7 qisolate0  0x0000003f 
+ 00010204  0x00000ea8 rtn  0x00000001 
+ 00010205  0x00000ea9 add  0x00000011 , 0x0000001a , 0x00000006 
+ 00010206  0x00000eaa ifetcht  0x00000002 , 0x00000006 
+ 00010207  0x00000eab add  0x00000011 , 0x00000020 , 0x00000006 
+ 00010208  0x00000eac ifetch  0x00000002 , 0x00000006 
+ 00010209  0x00000eae isub  0x00000002 , 0x0000003f 
+ 00010210  0x00000eaf branch  0x000027e9 , 0x00000005 
+ 00010211  0x00000eb0 nbranch  0x000027ee , 0x00000002 
+ 00010212  0x00000eb1 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00010213  0x00000eb2 branch  0x000027e7 , 0x00000005 
+ 00010214  0x00000eb3 rtn 
+ 00010215  0x00000eb6 copy  0x00000013 , 0x0000003f 
+ 00010216  0x00000eb7 branch  0x00007d7b 
+ 00010217  0x00000eba ifetch  0x00000001 , 0x00000011 
+ 00010218  0x00000ebb qset0  0x0000003f 
+ 00010219  0x00000ebc istore  0x00000001 , 0x00000011 
+ 00010220  0x00000ebd copy  0x00000012 , 0x0000003f 
+ 00010221  0x00000ebe branch  0x00007d7b 
+ 00010222  0x00000ec1 add  0x00000011 , 0x0000001a , 0x00000006 
+ 00010223  0x00000ec2 ifetch  0x00000002 , 0x00000006 
+ 00010224  0x00000ec3 add  0x00000011 , 0x00000020 , 0x00000006 
+ 00010225  0x00000ec4 ifetch  0x00000002 , 0x00000006 
+ 00010226  0x00000ec5 isub  0x00000002 , 0x0000003f 
+ 00010227  0x00000ec6 arg  0x0000ffff , 0x00000002 
+ 00010228  0x00000ec7 isub  0x00000002 , 0x0000003e 
+ 00010229  0x00000ec8 branch  0x000027e9 , 0x00000005 
+ 00010230  0x00000ec9 arg  0x0000f000 , 0x00000002 
+ 00010231  0x00000eca isub  0x00000002 , 0x0000003e 
+ 00010232  0x00000ecb nbranch  0x000027e9 , 0x00000002 
+ 00010233  0x00000ecc rtn 
+ 00010234  0x00000ed0 fetcht  0x00000001 , 0x0000017f 
+ 00010235  0x00000ed1 fetch  0x00000001 , 0x0000004c 
+ 00010236  0x00000ed4 rshift  0x0000003f , 0x0000003f 
+ 00010237  0x00000ed5 ixor  0x00000002 , 0x0000003f 
+ 00010238  0x00000ed6 isolate1  0x00000002 , 0x0000003f 
+ 00010239  0x00000ed7 setflag  0x00000001 , 0x0000000f , 0x00000000 
+ 00010240  0x00000ed8 rtn 
+ 00010241  0x00000edc bpatchx  0x0000005e , 0x0000402b 
+ 00010242  0x00000edd call  0x00002914 
+ 00010243  0x00000ede rtnmark1  0x00000030 
+ 00010244  0x00000edf call  0x00002828 
+ 00010245  0x00000ee0 fetch  0x00000001 , 0x0000004c 
+ 00010246  0x00000ee1 isolate1  0x00000004 , 0x0000003f 
+ 00010247  0x00000ee2 setflag  0x00000001 , 0x0000002a , 0x00000000 
+ 00010248  0x00000ee3 rshift  0x0000003f , 0x0000003f 
+ 00010249  0x00000ee4 ixor  0x00000002 , 0x0000003f 
+ 00010250  0x00000ee5 isolate1  0x00000002 , 0x0000003f 
+ 00010251  0x00000ee6 setflag  0x00000001 , 0x0000000f , 0x00000000 
+ 00010252  0x00000ee7 rtnmark1  0x0000000f 
+ 00010253  0x00000ee8 fetch  0x00000001 , 0x0000004d 
+ 00010254  0x00000ee9 branch  0x0000281a , 0x00000034 
+ 00010255  0x00000eea fetch  0x00000001 , 0x00000168 
+ 00010256  0x00000eeb bbit0  0x00000004 , 0x0000281a 
+ 00010257  0x00000eec fetcht  0x00000004 , 0x00000154 
+ 00010258  0x00000eed fetch  0x00000004 , 0x00004471 
+ 00010259  0x00000eee isub  0x00000002 , 0x0000003e 
+ 00010260  0x00000eef branch  0x0000233e , 0x00000005 
+ 00010261  0x00000ef0 storet  0x00000004 , 0x00004471 
+ 00010262  0x00000ef1 fetch  0x00000005 , 0x0000446c 
+ 00010263  0x00000ef2 increase  0x00000001 , 0x0000003f 
+ 00010264  0x00000ef3 set1  0x00000027 , 0x0000003f 
+ 00010265  0x00000ef4 store  0x00000005 , 0x0000446c 
+ 00010266  0x00000ef7 fetcht  0x00000001 , 0x0000017f 
+ 00010267  0x00000ef8 setflip  0x00000002 , 0x00000002 
+ 00010268  0x00000ef9 storet  0x00000001 , 0x0000017f 
+ 00010269  0x00000efa fetch  0x00000001 , 0x00004323 
+ 00010270  0x00000efb rtnbit0  0x00000006 
+ 00010271  0x00000efc bpatchx  0x0000005f , 0x0000402b 
+ 00010272  0x00000efd fetch  0x00000001 , 0x0000004d 
+ 00010273  0x00000efe rtn  0x00000034 
+ 00010274  0x00000eff fetch  0x00000001 , 0x0000004c 
+ 00010275  0x00000f00 compare  0x00000001 , 0x0000003f , 0x00000003 
+ 00010276  0x00000f01 branch  0x00002e43 , 0x00000001 
+ 00010277  0x00000f02 compare  0x00000002 , 0x0000003f , 0x00000003 
+ 00010278  0x00000f03 branch  0x00002e31 , 0x00000001 
+ 00010279  0x00000f04 rtn 
+ 00010280  0x00000f08 bpatchx  0x00000060 , 0x0000402c 
+ 00010281  0x00000f09 fetcht  0x00000001 , 0x0000017f 
+ 00010282  0x00000f0a isolate0  0x00000005 , 0x00000002 
+ 00010283  0x00000f0b rtn  0x00000001 
+ 00010284  0x00000f0c fetch  0x00000001 , 0x0000004c 
+ 00010285  0x00000f0d lshift  0x0000003f , 0x0000003f 
+ 00010286  0x00000f0e ixor  0x00000002 , 0x0000003f 
+ 00010287  0x00000f0f rtnbit0  0x00000003 
+ 00010288  0x00000f10 set0  0x00000005 , 0x00000002 
+ 00010289  0x00000f11 setflip  0x00000003 , 0x00000002 
+ 00010290  0x00000f12 storet  0x00000001 , 0x0000017f 
+ 00010291  0x00000f13 compare  0x00000003 , 0x00000002 , 0x00000003 
+ 00010292  0x00000f15 rtn 
+ 00010293  0x00000f19 fetch  0x00000001 , 0x00000168 
+ 00010294  0x00000f1a set1  0x00000004 , 0x0000003f 
+ 00010295  0x00000f1b store  0x00000001 , 0x00000168 
+ 00010296  0x00000f1c set1  0x00000032 , 0x00000000 
+ 00010297  0x00000f1d rtn 
+ 00010298  0x00000f20 bpatchx  0x00000061 , 0x0000402c 
+ 00010299  0x00000f21 jam  0x00000000 , 0x000042ff 
+ 00010300  0x00000f22 arg  0x00000000 , 0x0000003f 
+ 00010301  0x00000f23 store  0x00000004 , 0x00004471 
+ 00010302  0x00000f24 store  0x00000005 , 0x00004467 
+ 00010303  0x00000f25 set1  0x00000027 , 0x0000003f 
+ 00010304  0x00000f26 store  0x00000005 , 0x0000446c 
+ 00010305  0x00000f27 fetch  0x00000001 , 0x00000168 
+ 00010306  0x00000f28 set0  0x00000004 , 0x0000003f 
+ 00010307  0x00000f29 store  0x00000001 , 0x00000168 
+ 00010308  0x00000f2a set0  0x00000032 , 0x00000000 
+ 00010309  0x00000f2b rtn 
+ 00010310  0x00000f31 arg  0x00000001 , 0x00000011 
+ 00010311  0x00000f32 fetch  0x00000001 , 0x0000004c 
+ 00010312  0x00000f33 rtnbit1  0x00000006 
+ 00010313  0x00000f34 arg  0x00000000 , 0x00000011 
+ 00010314  0x00000f35 rtn 
+ 00010315  0x00000f39 copy  0x00000006 , 0x00000005 
+ 00010316  0x00000f3a fetcht  0x00000002 , 0x000043bc 
+ 00010317  0x00000f3b copy  0x00000005 , 0x00000006 
+ 00010318  0x00000f3c rtn 
+ 00010319  0x00000f40 bpatchx  0x00000062 , 0x0000402c 
+ 00010320  0x00000f41 fetch  0x00000001 , 0x0000017f 
+ 00010321  0x00000f42 rtnbit1  0x00000005 
+ 00010322  0x00000f43 call  0x00002870 
+ 00010323  0x00000f44 call  0x000029ee 
+ 00010324  0x00000f45 branch  0x00002894 , 0x00000034 
+ 00010325  0x00000f46 ifetch  0x00000002 , 0x00000006 
+ 00010326  0x00000f47 ifetcht  0x00000002 , 0x00000006 
+ 00010327  0x00000f48 copy  0x00000002 , 0x00000011 
+ 00010328  0x00000f49 isub  0x00000011 , 0x0000003f 
+ 00010329  0x00000f4a call  0x0000284b 
+ 00010330  0x00000f4b call  0x00007db2 
+ 00010331  0x00000f4c copy  0x0000003f , 0x00000002 
+ 00010332  0x00000f4d ifetchr  0x00000001 , 0x00000001 , 0x00000006 
+ 00010333  0x00000f4e copy  0x00000011 , 0x0000003f 
+ 00010334  0x00000f4f iadd  0x00000006 , 0x0000003f 
+ 00010335  0x00000f50 store  0x00000002 , 0x0000066d 
+ 00010336  0x00000f51 call  0x00002884 
+ 00010337  0x00000f52 call  0x00002896 
+ 00010338  0x00000f54 call  0x000029ee 
+ 00010339  0x00000f55 ifetch  0x00000002 , 0x00000006 
+ 00010340  0x00000f56 copy  0x0000003f , 0x00000011 
+ 00010341  0x00000f57 copy  0x00000006 , 0x00000013 
+ 00010342  0x00000f58 ifetcht  0x00000002 , 0x00000006 
+ 00010343  0x00000f59 copy  0x00000002 , 0x00000012 
+ 00010344  0x00000f5a isub  0x00000012 , 0x0000003f 
+ 00010345  0x00000f5b call  0x0000284b 
+ 00010346  0x00000f5c call  0x00007db2 
+ 00010347  0x00000f5d iadd  0x00000012 , 0x0000003f 
+ 00010348  0x00000f5e istore  0x00000002 , 0x00000013 
+ 00010349  0x00000f5f isub  0x00000011 , 0x0000003e 
+ 00010350  0x00000f60 nrtn  0x00000005 
+ 00010351  0x00000f61 branch  0x00002a08 
+ 00010352  0x00000f65 call  0x00002877 
+ 00010353  0x00000f66 rtnmark1  0x00000029 
+ 00010354  0x00000f67 fetch  0x00000001 , 0x00004323 
+ 00010355  0x00000f68 bbit0  0x00000002 , 0x00002882 
+ 00010356  0x00000f69 call  0x000029f2 
+ 00010357  0x00000f6a branch  0x00002882 , 0x00000034 
+ 00010358  0x00000f6b branch  0x00002880 
+ 00010359  0x00000f6f call  0x000029ee 
+ 00010360  0x00000f70 branch  0x00002882 , 0x00000034 
+ 00010361  0x00000f71 ifetch  0x00000002 , 0x00000006 
+ 00010362  0x00000f72 ifetcht  0x00000002 , 0x00000006 
+ 00010363  0x00000f73 isub  0x00000002 , 0x00000011 
+ 00010364  0x00000f74 call  0x0000284b 
+ 00010365  0x00000f75 copy  0x00000002 , 0x0000003f 
+ 00010366  0x00000f76 isub  0x00000011 , 0x0000003e 
+ 00010367  0x00000f77 branch  0x00002882 , 0x00000002 
+ 00010368  0x00000f79 set1  0x00000029 , 0x00000000 
+ 00010369  0x00000f7a rtn 
+ 00010370  0x00000f7d set0  0x00000029 , 0x00000000 
+ 00010371  0x00000f7e rtn 
+ 00010372  0x00000f81 copy  0x00000011 , 0x0000003f 
+ 00010373  0x00000f82 rtn  0x00000034 
+ 00010374  0x00000f83 arg  0x00000001 , 0x00000001 
+ 00010375  0x00000f84 rtn 
+ 00010376  0x00000f88 bpatchx  0x00000063 , 0x0000402c 
+ 00010377  0x00000f89 increase  0x00000001 , 0x00000002 
+ 00010378  0x00000f8a call  0x00002cad 
+ 00010379  0x00000f8b increase  0xfffffffe , 0x00000006 
+ 00010380  0x00000f8c ifetch  0x00000002 , 0x00000006 
+ 00010381  0x00000f8d arg  0x00002902 , 0x00000002 
+ 00010382  0x00000f8e isub  0x00000002 , 0x0000003e 
+ 00010383  0x00000f8f nrtn  0x00000005 
+ 00010384  0x00000f90 increase  0x00000001 , 0x00000006 
+ 00010385  0x00000f91 copy  0x00000006 , 0x00000011 
+ 00010386  0x00000f92 ifetch  0x00000001 , 0x00000006 
+ 00010387  0x00000f93 rtn 
+ 00010388  0x00000f97 force  0x00000000 , 0x00000002 
+ 00010389  0x00000f98 force  0x00000001 , 0x00000001 
+ 00010390  0x00000f9b bpatchx  0x00000064 , 0x0000402c 
+ 00010391  0x00000f9c storet  0x00000001 , 0x0000416c 
+ 00010392  0x00000f9d fetcht  0x00000001 , 0x0000017f 
+ 00010393  0x00000f9e set1  0x00000005 , 0x00000002 
+ 00010394  0x00000f9f and  0x00000002 , 0x000000fc , 0x0000003f 
+ 00010395  0x00000fa0 ior  0x00000001 , 0x0000003f 
+ 00010396  0x00000fa1 store  0x00000001 , 0x0000017f 
+ 00010397  0x00000fa2 and_into  0x0000001f , 0x0000003f 
+ 00010398  0x00000fa3 isolate1  0x00000029 , 0x00000000 
+ 00010399  0x00000fa4 setflag  0x00000001 , 0x00000004 , 0x0000003f 
+ 00010400  0x00000fa5 store  0x00000001 , 0x0000416b 
+ 00010401  0x00000fa7 fetch  0x00000001 , 0x0000416b 
+ 00010402  0x00000fa8 compare  0x00000001 , 0x00000001 , 0x00000003 
+ 00010403  0x00000fa9 nbranch  0x000028a6 , 0x00000001 
+ 00010404  0x00000faa fetch  0x00000001 , 0x0000416c 
+ 00010405  0x00000fab rtn  0x00000034 
+ 00010406  0x00000fae bmark1  0x00000032 , 0x000028ac 
+ 00010407  0x00000faf fetchr  0x00000039 , 0x00000001 , 0x0000416c 
+ 00010408  0x00000fb0 fetch  0x00000002 , 0x0000066d 
+ 00010409  0x00000fb1 copy  0x0000003f , 0x00000006 
+ 00010410  0x00000fb2 arg  0x0000416d , 0x00000005 
+ 00010411  0x00000fb3 branch  0x00007cce 
+ 00010412  0x00000fb6 call  0x00007356 
+ 00010413  0x00000fb7 branch  0x0000728d 
+ 00010414  0x00000fba arg  0x00000000 , 0x00000007 
+ 00010415  0x00000fbb branch  0x000024be 
+ 00010416  0x00000fbe arg  0x00000000 , 0x00000007 
+ 00010417  0x00000fbf branch  0x000024c2 
+ 00010418  0x00000fc3 bpatchx  0x00000065 , 0x0000402c 
+ 00010419  0x00000fc4 rtnmark1  0x0000000f 
+ 00010420  0x00000fc5 rtnmark1  0x00000030 
+ 00010421  0x00000fc6 fetch  0x00000001 , 0x0000004c 
+ 00010422  0x00000fc7 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00010423  0x00000fc8 store  0x00000001 , 0x00004336 
+ 00010424  0x00000fc9 fetch  0x00000001 , 0x0000004d 
+ 00010425  0x00000fca rtn  0x00000034 
+ 00010426  0x00000fcb setarg  0x0000004e 
+ 00010427  0x00000fcc store  0x00000002 , 0x0000433b 
+ 00010428  0x00000fcd bpatchx  0x00000066 , 0x0000402c 
+ 00010429  0x00000fce fetch  0x00000001 , 0x00004336 
+ 00010430  0x00000fcf rtneq  0x00000000 
+ 00010431  0x00000fd0 beq  0x00000003 , 0x00003028 
+ 00010432  0x00000fd2 call  0x000028cd 
+ 00010433  0x00000fd3 nbranch  0x000028ae , 0x00000028 
+ 00010434  0x00000fd4 call  0x000028b0 
+ 00010435  0x00000fd5 setarg  0x00000000 
+ 00010436  0x00000fd6 store  0x00000002 , 0x00004339 
+ 00010437  0x00000fd7 fetch  0x00000002 , 0x0000433b 
+ 00010438  0x00000fd8 add  0x0000003f , 0x00000002 , 0x00000006 
+ 00010439  0x00000fd9 bpatchx  0x00000067 , 0x0000402c 
+ 00010440  0x00000fda ifetch  0x00000002 , 0x00000006 
+ 00010441  0x00000fdb beq  0x00000004 , 0x00002b6e 
+ 00010442  0x00000fdc beq  0x00000006 , 0x00002ea6 
+ 00010443  0x00000fdd beq  0x00000005 , 0x00002e68 
+ 00010444  0x00000fde rtn 
+ 00010445  0x00000fe2 fetch  0x00000001 , 0x00004336 
+ 00010446  0x00000fe3 beq  0x00000002 , 0x000028dc 
+ 00010447  0x00000fe4 beq  0x00000001 , 0x000028f3 
+ 00010448  0x00000fe5 rtn 
+ 00010449  0x00000feb call  0x00007dbc 
+ 00010450  0x00000fec arg  0x00000004 , 0x00000002 
+ 00010451  0x00000fed isub  0x0000003f , 0x0000003e 
+ 00010452  0x00000fee rtn  0x00000005 
+ 00010453  0x00000fef arg  0x00000005 , 0x00000002 
+ 00010454  0x00000ff0 isub  0x0000003f , 0x0000003e 
+ 00010455  0x00000ff1 rtn  0x00000005 
+ 00010456  0x00000ff2 arg  0x00000006 , 0x00000002 
+ 00010457  0x00000ff3 isub  0x0000003f , 0x0000003e 
+ 00010458  0x00000ff4 rtn  0x00000005 
+ 00010459  0x00000ff5 branch  0x00007dbe 
+ 00010460  0x00000ff9 fetch  0x00000002 , 0x0000433b 
+ 00010461  0x00000ffa copy  0x0000003f , 0x00000006 
+ 00010462  0x00000ffb ifetch  0x00000002 , 0x00000006 
+ 00010463  0x00000ffc store  0x00000002 , 0x00004337 
+ 00010464  0x00000ffd ifetch  0x00000002 , 0x00000006 
+ 00010465  0x00000ffe call  0x000028d1 
+ 00010466  0x00000fff nrtn  0x00000028 
+ 00010467  0x00001000 fetcht  0x00000001 , 0x0000004d 
+ 00010468  0x00001001 storet  0x00000002 , 0x00004339 
+ 00010469  0x00001002 fetch  0x00000002 , 0x00004337 
+ 00010470  0x00001003 increase  0x00000004 , 0x0000003f 
+ 00010471  0x00001004 isub  0x00000002 , 0x0000003e 
+ 00010472  0x00001005 branch  0x00007dbc , 0x00000005 
+ 00010473  0x00001006 fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00010474  0x00001007 arg  0x00000f00 , 0x00000005 
+ 00010475  0x00001008 fetch  0x00000002 , 0x0000433b 
+ 00010476  0x00001009 copy  0x0000003f , 0x00000006 
+ 00010477  0x0000100a call  0x00007cce 
+ 00010478  0x0000100b branch  0x00007dbe 
+ 00010479  0x00001011 call  0x00007dbc 
+ 00010480  0x00001012 fetch  0x00000002 , 0x00004339 
+ 00010481  0x00001013 nrtn  0x00000034 
+ 00010482  0x00001014 branch  0x00007dbe 
+ 00010483  0x00001017 call  0x000028ef 
+ 00010484  0x00001018 nrtn  0x00000028 
+ 00010485  0x00001019 fetch  0x00000002 , 0x00004339 
+ 00010486  0x0000101a arg  0x00000f00 , 0x00000005 
+ 00010487  0x0000101b iadd  0x00000005 , 0x00000011 
+ 00010488  0x0000101c fetcht  0x00000001 , 0x0000004d 
+ 00010489  0x0000101d iadd  0x00000002 , 0x0000003f 
+ 00010490  0x0000101e store  0x00000002 , 0x00004339 
+ 00010491  0x0000101f fetchr  0x00000039 , 0x00000001 , 0x0000004d 
+ 00010492  0x00001020 copy  0x00000011 , 0x00000005 
+ 00010493  0x00001021 fetch  0x00000002 , 0x0000433b 
+ 00010494  0x00001022 copy  0x0000003f , 0x00000006 
+ 00010495  0x00001023 call  0x00007cce 
+ 00010496  0x00001024 setarg  0x00000f00 
+ 00010497  0x00001025 store  0x00000002 , 0x0000433b 
+ 00010498  0x00001026 fetch  0x00000002 , 0x00004337 
+ 00010499  0x00001027 increase  0x00000004 , 0x0000003f 
+ 00010500  0x00001028 fetcht  0x00000002 , 0x00004339 
+ 00010501  0x00001029 isub  0x00000002 , 0x0000003e 
+ 00010502  0x0000102a branch  0x00007dbc , 0x00000005 
+ 00010503  0x0000102b branch  0x00007dbe 
+ 00010504  0x00001031 fetch  0x00000002 , 0x000043e8 
+ 00010505  0x00001032 branch  0x00007d7b 
+ 00010506  0x00001035 bpatchx  0x00000068 , 0x0000402d 
+ 00010507  0x00001036 fetcht  0x00000004 , 0x00000184 
+ 00010508  0x00001037 call  0x0000233a 
+ 00010509  0x00001038 isub  0x00000002 , 0x0000000b 
+ 00010510  0x00001039 deposit  0x0000000b 
+ 00010511  0x0000103a fetcht  0x00000002 , 0x00000196 
+ 00010512  0x0000103b lshift4  0x00000002 , 0x00000002 
+ 00010513  0x0000103c lshift  0x00000002 , 0x00000002 
+ 00010514  0x0000103d isub  0x00000002 , 0x0000003f 
+ 00010515  0x0000103e rtn 
+ 00010516  0x00001041 call  0x0000233a 
+ 00010517  0x00001042 store  0x00000004 , 0x00000184 
+ 00010518  0x00001043 rtn 
+ 00010519  0x00001048 bpatchx  0x00000069 , 0x0000402d 
+ 00010520  0x00001049 add  0x00000011 , 0x00000050 , 0x00000006 
+ 00010521  0x0000104a ifetch  0x00000001 , 0x00000006 
+ 00010522  0x0000104b call  0x000025c0 
+ 00010523  0x0000104c add  0x00000011 , 0x00000002 , 0x00000006 
+ 00010524  0x0000104d ifetch  0x00000002 , 0x00000006 
+ 00010525  0x0000104e imul32  0x00000002 , 0x0000003f 
+ 00010526  0x0000104f fetcht  0x00000002 , 0x00000044 
+ 00010527  0x00001050 imul32  0x00000002 , 0x0000003f 
+ 00010528  0x00001051 arg  0x000f4240 , 0x00000002 
+ 00010529  0x00001052 idiv  0x00000002 
+ 00010530  0x00001053 arg  0x00000682 , 0x00000002 
+ 00010531  0x00001054 fetch  0x00000001 , 0x00004148 
+ 00010532  0x00001055 imul32  0x00000002 , 0x00000002 
+ 00010533  0x00001056 add  0x00000011 , 0x0000002b , 0x00000006 
+ 00010534  0x00001057 ifetch  0x00000001 , 0x00000006 
+ 00010535  0x00001058 imul32  0x00000002 , 0x0000003f 
+ 00010536  0x00001059 iadd  0x00000002 , 0x0000003f 
+ 00010537  0x0000105a store  0x00000004 , 0x0000431f 
+ 00010538  0x0000105b fetch  0x00000002 , 0x0000409a 
+ 00010539  0x0000105c call  0x00007d64 
+ 00010540  0x0000105d quotient  0x00000002 
+ 00010541  0x0000105e iadd  0x00000002 , 0x0000003f 
+ 00010542  0x0000105f add  0x00000011 , 0x0000000e , 0x00000005 
+ 00010543  0x00001060 istore  0x00000002 , 0x00000005 
+ 00010544  0x00001061 rtn 
+ 00010545  0x00001067 bpatchx  0x0000006a , 0x0000402d 
+ 00010546  0x00001068 call  0x00002934 
+ 00010547  0x00001069 branch  0x00002948 
+ 00010548  0x0000106c jam  0x00000002 , 0x00000693 
+ 00010549  0x0000106d arg  0x00002a00 , 0x00000002 
+ 00010550  0x0000106e storet  0x00000002 , 0x00000694 
+ 00010551  0x0000106f call  0x00002cbe 
+ 00010552  0x00001070 rtn  0x00000034 
+ 00010553  0x00001071 ifetch  0x00000001 , 0x00000006 
+ 00010554  0x00001072 copy  0x00000006 , 0x00000005 
+ 00010555  0x00001073 fetcht  0x00000001 , 0x0000426d 
+ 00010556  0x00001074 copy  0x00000002 , 0x00000039 
+ 00010557  0x00001075 isub  0x00000002 , 0x0000003e 
+ 00010558  0x00001076 nbranch  0x00002945 , 0x00000002 
+ 00010559  0x00001077 isub  0x00000002 , 0x00000002 
+ 00010560  0x00001078 arg  0x0000426e , 0x00000006 
+ 00010561  0x00001079 call  0x00007cce 
+ 00010562  0x0000107a copy  0x00000002 , 0x00000039 
+ 00010563  0x0000107b ncall  0x00002980 , 0x00000005 
+ 00010564  0x0000107c rtn 
+ 00010565  0x0000107e copy  0x0000003f , 0x00000039 
+ 00010566  0x0000107f arg  0x0000426e , 0x00000006 
+ 00010567  0x00001080 branch  0x00007cce 
+ 00010568  0x00001084 arg  0x0000436c , 0x00000013 
+ 00010569  0x00001085 arg  0x0000434d , 0x00000011 
+ 00010570  0x00001086 call  0x00002955 
+ 00010571  0x00001087 setarg  0x00000000 
+ 00010572  0x00001088 setflag  0x00000028 , 0x00000000 , 0x0000003f 
+ 00010573  0x00001089 store  0x00000001 , 0x0000064e 
+ 00010574  0x0000108a arg  0x0000438c , 0x00000013 
+ 00010575  0x0000108b arg  0x0000436d , 0x00000011 
+ 00010576  0x0000108c call  0x00002955 
+ 00010577  0x0000108d rtn  0x00000028 
+ 00010578  0x0000108e fetch  0x00000001 , 0x0000064e 
+ 00010579  0x0000108f branch  0x0000233e , 0x00000034 
+ 00010580  0x00001090 rtn 
+ 00010581  0x00001094 bpatchx  0x0000006b , 0x0000402d 
+ 00010582  0x00001095 call  0x00007dbc 
+ 00010583  0x00001096 call  0x00007ca8 
+ 00010584  0x00001097 arg  0x00000000 , 0x00000012 
+ 00010585  0x00001098 arg  0x00000680 , 0x00000005 
+ 00010586  0x00001099 call  0x0000296f 
+ 00010587  0x0000109a fetch  0x00000001 , 0x0000426d 
+ 00010588  0x0000109b add  0x0000003f , 0x00000001 , 0x00000002 
+ 00010589  0x0000109c iadd  0x00000012 , 0x00000011 
+ 00010590  0x0000109d increase  0x00000002 , 0x00000011 
+ 00010591  0x0000109e sub  0x00000011 , 0x0000001f , 0x0000003e 
+ 00010592  0x0000109f nbranch  0x0000296d , 0x00000002 
+ 00010593  0x000010a0 istoret  0x00000001 , 0x00000005 
+ 00010594  0x000010a1 arg  0x00000009 , 0x00000002 
+ 00010595  0x000010a2 istoret  0x00000001 , 0x00000005 
+ 00010596  0x000010a3 iforce  0x00000039 
+ 00010597  0x000010a4 call  0x00007cce 
+ 00010598  0x000010a5 copy  0x00000011 , 0x00000012 
+ 00010599  0x000010a7 deposit  0x00000012 
+ 00010600  0x000010a8 store  0x00000001 , 0x0000067f 
+ 00010601  0x000010a9 arg  0x0000067f , 0x00000006 
+ 00010602  0x000010aa setarg  0xffffffe0 
+ 00010603  0x000010ab iadd  0x00000013 , 0x00000005 
+ 00010604  0x000010ac branch  0x00007c8f 
+ 00010605  0x000010af call  0x00007dbe 
+ 00010606  0x000010b0 branch  0x00002967 
+ 00010607  0x000010b3 ifetch  0x00000001 , 0x00000011 
+ 00010608  0x000010b4 rtn  0x00000034 
+ 00010609  0x000010b5 pincrease  0x00000001 
+ 00010610  0x000010b6 ifetcht  0x00000001 , 0x00000006 
+ 00010611  0x000010b7 sub  0x00000002 , 0x00000009 , 0x0000003e 
+ 00010612  0x000010b8 branch  0x0000297e , 0x00000005 
+ 00010613  0x000010b9 iadd  0x00000012 , 0x00000012 
+ 00010614  0x000010ba copy  0x00000011 , 0x00000006 
+ 00010615  0x000010bb iforce  0x00000039 
+ 00010616  0x000010bc call  0x00007cce 
+ 00010617  0x000010bd copy  0x00000006 , 0x00000011 
+ 00010618  0x000010bf deposit  0x00000011 
+ 00010619  0x000010c0 isub  0x00000013 , 0x0000003e 
+ 00010620  0x000010c1 rtn  0x00000002 
+ 00010621  0x000010c2 branch  0x0000296f 
+ 00010622  0x000010c5 iadd  0x00000011 , 0x00000011 
+ 00010623  0x000010c6 branch  0x0000297a 
+ 00010624  0x000010ca setarg  0x00000020 
+ 00010625  0x000010cb istore  0x00000001 , 0x00000005 
+ 00010626  0x000010cc loop  0x00002980 
+ 00010627  0x000010cd rtn 
+ 00010628  0x000010d1 bpatchx  0x0000006c , 0x0000402d 
+ 00010629  0x000010d2 disable  0x0000002b 
+ 00010630  0x000010d3 branch  0x00002988 , 0x0000002e 
+ 00010631  0x000010d4 nbranch  0x00002997 , 0x0000002d 
+ 00010632  0x000010d6 call  0x000024a9 
+ 00010633  0x000010d7 fetch  0x00000002 , 0x0000409a 
+ 00010634  0x000010d8 store  0x00000002 , 0x00000176 
+ 00010635  0x000010d9 fetch  0x00000001 , 0x00004323 
+ 00010636  0x000010da bbit1  0x00000005 , 0x000024b7 
+ 00010637  0x000010db bmark1  0x0000000f , 0x000024b7 
+ 00010638  0x000010dc fetch  0x00000001 , 0x0000004d 
+ 00010639  0x000010dd nbranch  0x000024b7 , 0x00000034 
+ 00010640  0x000010de fetch  0x00000001 , 0x0000416c 
+ 00010641  0x000010df nbranch  0x000024b7 , 0x00000034 
+ 00010642  0x000010e1 fetch  0x00000001 , 0x00000168 
+ 00010643  0x000010e2 bbit1  0x00000005 , 0x000024b7 
+ 00010644  0x000010e3 bbit1  0x00000007 , 0x000024b7 
+ 00010645  0x000010e4 bbit1  0x00000006 , 0x000024b7 
+ 00010646  0x000010e5 branch  0x0000249f 
+ 00010647  0x000010e8 fetch  0x00000001 , 0x000040a8 
+ 00010648  0x000010e9 sub  0x0000003f , 0x0000001e , 0x0000003e 
+ 00010649  0x000010ea nbranch  0x000024ae , 0x00000002 
+ 00010650  0x000010eb fetcht  0x00000002 , 0x0000409a 
+ 00010651  0x000010ec rshift  0x00000002 , 0x00000002 
+ 00010652  0x000010ed fetch  0x00000002 , 0x00000176 
+ 00010653  0x000010ee iadd  0x00000002 , 0x0000003f 
+ 00010654  0x000010ef store  0x00000002 , 0x00000176 
+ 00010655  0x000010f0 branch  0x000024ae 
+ 00010656  0x000010f4 arg  0x00000000 , 0x00000007 
+ 00010657  0x000010f5 branch  0x000029b5 
+ 00010658  0x000010f8 arg  0x00000000 , 0x00000007 
+ 00010659  0x000010f9 branch  0x000029ba 
+ 00010660  0x000010fc arg  0x00000001 , 0x00000007 
+ 00010661  0x000010fd branch  0x000029b5 
+ 00010662  0x00001100 arg  0x00000001 , 0x00000007 
+ 00010663  0x00001101 branch  0x000029ba 
+ 00010664  0x00001104 arg  0x00000002 , 0x00000007 
+ 00010665  0x00001105 branch  0x000029b5 
+ 00010666  0x00001108 arg  0x00000002 , 0x00000007 
+ 00010667  0x00001109 branch  0x000029ba 
+ 00010668  0x0000110c arg  0x00000003 , 0x00000007 
+ 00010669  0x0000110d branch  0x000029b5 
+ 00010670  0x00001110 arg  0x00000003 , 0x00000007 
+ 00010671  0x00001111 branch  0x000029ba 
+ 00010672  0x00001114 arg  0x00000004 , 0x00000007 
+ 00010673  0x00001115 branch  0x000029b5 
+ 00010674  0x00001118 arg  0x00000004 , 0x00000007 
+ 00010675  0x00001119 branch  0x000029ba 
+ 00010676  0x0000111c arg  0x00000005 , 0x00000007 
+ 00010677  0x0000111f fetch  0x00000001 , 0x00004323 
+ 00010678  0x00001120 qset1  0x0000003f 
+ 00010679  0x00001121 store  0x00000001 , 0x00004323 
+ 00010680  0x00001122 rtn 
+ 00010681  0x00001126 arg  0x00000005 , 0x00000007 
+ 00010682  0x00001129 fetch  0x00000001 , 0x00004323 
+ 00010683  0x0000112a qset0  0x0000003f 
+ 00010684  0x0000112b store  0x00000001 , 0x00004323 
+ 00010685  0x0000112c rtn 
+ 00010686  0x00001131 setarg  0x00112233 
+ 00010687  0x00001132 store  0x00000003 , 0x00004324 
+ 00010688  0x00001133 setarg  0x00445566 
+ 00010689  0x00001134 istore  0x00000003 , 0x00000005 
+ 00010690  0x00001135 setarg  0x00778899 
+ 00010691  0x00001136 istore  0x00000003 , 0x00000005 
+ 00010692  0x00001137 setarg  0x00001122 
+ 00010693  0x00001138 istore  0x00000003 , 0x00000005 
+ 00010694  0x00001139 setarg  0x00334455 
+ 00010695  0x0000113a istore  0x00000003 , 0x00000005 
+ 00010696  0x0000113b setarg  0x00000066 
+ 00010697  0x0000113c branch  0x00007dce 
+ 00010698  0x00001141 setarg  0x01000302 
+ 00010699  0x00001142 store  0x00000004 , 0x000042c6 
+ 00010700  0x00001143 setarg  0x00010010 
+ 00010701  0x00001144 store  0x00000003 , 0x000042ca 
+ 00010702  0x00001145 jam  0x00000001 , 0x00004300 
+ 00010703  0x00001146 rtn 
+ 00010704  0x0000114b arg  0x00000000 , 0x00000011 
+ 00010705  0x0000114c arg  0x00000001 , 0x00000001 
+ 00010706  0x0000114d branch  0x000029e3 
+ 00010707  0x00001152 bpatchx  0x0000006d , 0x0000402d 
+ 00010708  0x00001153 arg  0x00000003 , 0x00000001 
+ 00010709  0x00001154 call  0x000029e3 
+ 00010710  0x00001155 copy  0x00000012 , 0x0000003f 
+ 00010711  0x00001156 istore  0x00000001 , 0x00000005 
+ 00010712  0x00001157 rtn 
+ 00010713  0x0000115c bpatchx  0x0000006e , 0x0000402d 
+ 00010714  0x0000115d force  0x00000002 , 0x00000001 
+ 00010715  0x0000115e increase  0x00000004 , 0x00000011 
+ 00010716  0x0000115f call  0x000029e3 
+ 00010717  0x00001160 increase  0xfffffffc , 0x00000011 
+ 00010718  0x00001161 copy  0x00000011 , 0x0000003f 
+ 00010719  0x00001162 istore  0x00000002 , 0x00000005 
+ 00010720  0x00001163 copy  0x00000012 , 0x0000003f 
+ 00010721  0x00001164 istore  0x00000002 , 0x00000005 
+ 00010722  0x00001165 rtn 
+ 00010723  0x0000116a bpatchx  0x0000006f , 0x0000402d 
+ 00010724  0x0000116b increase  0x00000005 , 0x00000011 
+ 00010725  0x0000116c call  0x000068e5 
+ 00010726  0x0000116d increase  0xfffffffb , 0x00000011 
+ 00010727  0x0000116e copy  0x00000011 , 0x0000003f 
+ 00010728  0x0000116f istore  0x00000002 , 0x00000005 
+ 00010729  0x00001170 setarg  0x00000000 
+ 00010730  0x00001171 istore  0x00000002 , 0x00000005 
+ 00010731  0x00001172 copy  0x00000001 , 0x0000003f 
+ 00010732  0x00001173 istore  0x00000001 , 0x00000005 
+ 00010733  0x00001174 rtn 
+ 00010734  0x00001178 bpatchx  0x00000070 , 0x0000402e 
+ 00010735  0x00001179 call  0x0000691f 
+ 00010736  0x0000117a copy  0x0000003f , 0x00000006 
+ 00010737  0x0000117b rtn 
+ 00010738  0x0000117e fetch  0x00000002 , 0x00004460 
+ 00010739  0x0000117f rtn 
+ 00010740  0x00001182 call  0x000029f7 
+ 00010741  0x00001183 copy  0x0000003f , 0x00000006 
+ 00010742  0x00001184 rtn 
+ 00010743  0x00001188 fetch  0x00000002 , 0x00004463 
+ 00010744  0x00001189 rtn 
+ 00010745  0x0000118d call  0x000029ee 
+ 00010746  0x0000118e increase  0x00000005 , 0x00000006 
+ 00010747  0x0000118f rtn 
+ 00010748  0x00001192 call  0x000029ee 
+ 00010749  0x00001193 increase  0x00000009 , 0x00000006 
+ 00010750  0x00001194 rtn 
+ 00010751  0x00001197 call  0x000029f4 
+ 00010752  0x00001198 increase  0x00000009 , 0x00000006 
+ 00010753  0x00001199 rtn 
+ 00010754  0x0000119c call  0x000029f4 
+ 00010755  0x0000119d increase  0x00000005 , 0x00000006 
+ 00010756  0x0000119e rtn 
+ 00010757  0x000011a2 branch  0x00006935 
+ 00010758  0x000011a6 branch  0x00006938 
+ 00010759  0x000011aa branch  0x0000693b 
+ 00010760  0x000011ae branch  0x00006924 
+ 00010761  0x000011b2 store  0x00000008 , 0x000043c4 
+ 00010762  0x000011b3 branch  0x00002a1a 
+ 00010763  0x000011b7 and  0x00000002 , 0x000000ff , 0x00000011 
+ 00010764  0x000011b8 call  0x00002a10 
+ 00010765  0x000011b9 rshift8  0x00000002 , 0x00000011 
+ 00010766  0x000011bc storer  0x00000011 , 0x00000001 , 0x000043bb 
+ 00010767  0x000011bd branch  0x00002a11 
+ 00010768  0x000011c0 storer  0x00000011 , 0x00000001 , 0x000043ba 
+ 00010769  0x000011c2 isolate1  0x00000001 , 0x00000011 
+ 00010770  0x000011c3 call  0x00002a16 , 0x00000001 
+ 00010771  0x000011c4 isolate1  0x00000002 , 0x00000011 
+ 00010772  0x000011c5 call  0x00002a18 , 0x00000001 
+ 00010773  0x000011c6 rtn 
+ 00010774  0x000011cb arg  0x00000008 , 0x00000007 
+ 00010775  0x000011cc branch  0x00002a1b 
+ 00010776  0x000011d0 arg  0x0000000b , 0x00000007 
+ 00010777  0x000011d1 branch  0x00002a1b 
+ 00010778  0x000011d4 arg  0x00000005 , 0x00000007 
+ 00010779  0x000011d7 fetch  0x00000008 , 0x000043b2 
+ 00010780  0x000011d8 qset1  0x0000003f 
+ 00010781  0x000011d9 store  0x00000008 , 0x000043b2 
+ 00010782  0x000011da rtn 
+ 00010783  0x000011dd call  0x000029a4 
+ 00010784  0x000011de call  0x000029ca 
+ 00010785  0x000011df call  0x000029be 
+ 00010786  0x000011e0 branch  0x000029ac 
+ 00010787  0x000011e6 jam  0x00000001 , 0x0000019d 
+ 00010788  0x000011e7 jam  0x00000001 , 0x0000019e 
+ 00010789  0x000011e8 set0  0x00000030 , 0x00000000 
+ 00010790  0x000011e9 set1  0x00000010 , 0x00000000 
+ 00010791  0x000011ea set0  0x00000032 , 0x00000000 
+ 00010792  0x000011eb call  0x0000258d 
+ 00010793  0x000011ec call  0x00002a2d 
+ 00010794  0x000011ed call  0x00002aad 
+ 00010795  0x000011ee set0  0x00000010 , 0x00000000 
+ 00010796  0x000011ef branch  0x00002591 
+ 00010797  0x000011f2 bpatchx  0x00000071 , 0x0000402e 
+ 00010798  0x000011f3 fetch  0x00000001 , 0x00004347 
+ 00010799  0x000011f4 rtnne  0x00000001 
+ 00010800  0x000011f5 arg  0x00000002 , 0x00000007 
+ 00010801  0x000011f6 call  0x00007cf1 
+ 00010802  0x000011f7 nrtn  0x00000034 
+ 00010803  0x000011f8 fetch  0x00000002 , 0x00004348 
+ 00010804  0x000011f9 fetcht  0x00000002 , 0x0000434a 
+ 00010805  0x000011fa isub  0x00000002 , 0x0000003f 
+ 00010806  0x000011fb arg  0x00000002 , 0x00000007 
+ 00010807  0x000011fc call  0x00007ce3 
+ 00010808  0x000011fd disable  0x00000029 
+ 00010809  0x000011fe call  0x00002ada 
+ 00010810  0x000011ff call  0x00002a4c 
+ 00010811  0x00001200 nrtn  0x0000002d 
+ 00010812  0x00001201 bpatchx  0x00000072 , 0x0000402e 
+ 00010813  0x00001202 fetch  0x00000006 , 0x0000004e 
+ 00010814  0x00001203 store  0x00000006 , 0x00000178 
+ 00010815  0x00001206 fetch  0x00000001 , 0x00000002 
+ 00010816  0x00001207 increase  0x00000001 , 0x0000003f 
+ 00010817  0x00001208 store  0x00000001 , 0x00000002 
+ 00010818  0x00001209 call  0x00002a53 
+ 00010819  0x0000120a rtn  0x00000029 
+ 00010820  0x0000120b call  0x00002b01 
+ 00010821  0x0000120c nrtn  0x0000002d 
+ 00010822  0x0000120d fetch  0x00000001 , 0x00000004 
+ 00010823  0x0000120e increase  0x00000001 , 0x0000003f 
+ 00010824  0x0000120f store  0x00000001 , 0x00000004 
+ 00010825  0x00001210 fetch  0x00000009 , 0x00000054 
+ 00010826  0x00001211 store  0x00000009 , 0x0000067f 
+ 00010827  0x00001212 rtn 
+ 00010828  0x00001216 bpatchx  0x00000073 , 0x0000402e 
+ 00010829  0x00001217 call  0x00002b4d 
+ 00010830  0x00001218 call  0x00002623 
+ 00010831  0x00001219 fetch  0x00000001 , 0x00000001 
+ 00010832  0x0000121a increase  0x00000001 , 0x0000003f 
+ 00010833  0x0000121b store  0x00000001 , 0x00000001 
+ 00010834  0x0000121c rtn 
+ 00010835  0x00001220 bpatchx  0x00000074 , 0x0000402e 
+ 00010836  0x00001221 fetch  0x00000001 , 0x0000433e 
+ 00010837  0x00001222 rtnne  0x0000001b 
+ 00010838  0x00001223 fetch  0x00000006 , 0x00000178 
+ 00010839  0x00001224 fetcht  0x00000006 , 0x000042ce 
+ 00010840  0x00001225 isub  0x00000002 , 0x0000003e 
+ 00010841  0x00001226 nrtn  0x00000005 
+ 00010842  0x00001227 call  0x00002056 
+ 00010843  0x00001228 nrtn  0x00000005 
+ 00010844  0x00001229 call  0x00002a66 
+ 00010845  0x0000122a call  0x000024f0 
+ 00010846  0x0000122b call  0x000030cb 
+ 00010847  0x0000122c jam  0x00000014 , 0x0000064d 
+ 00010848  0x0000122d call  0x00007819 
+ 00010849  0x0000122e jam  0x00000000 , 0x00004114 
+ 00010850  0x0000122f jam  0x00000000 , 0x000001b8 
+ 00010851  0x00001230 jam  0x00000000 , 0x00004347 
+ 00010852  0x00001231 jam  0x00000000 , 0x0000433e 
+ 00010853  0x00001232 branch  0x00002041 
+ 00010854  0x00001235 bpatchx  0x00000075 , 0x0000402e 
+ 00010855  0x00001236 force  0xffffffff , 0x0000003f 
+ 00010856  0x00001237 setsect  0x00000002 , 0x00000001 
+ 00010857  0x00001238 store  0x00000005 , 0x00000198 
+ 00010858  0x00001239 arg  0x00000168 , 0x00000011 
+ 00010859  0x0000123a call  0x000025f9 
+ 00010860  0x0000123b force  0x00000004 , 0x00000039 
+ 00010861  0x0000123c arg  0x0000018c , 0x00000005 
+ 00010862  0x0000123d call  0x00007dee 
+ 00010863  0x0000123e fetch  0x00000002 , 0x000042db 
+ 00010864  0x0000123f store  0x00000002 , 0x00000196 
+ 00010865  0x00001241 random  0x0000003f 
+ 00010866  0x00001242 and_into  0x0000000f , 0x0000003f 
+ 00010867  0x00001243 sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00010868  0x00001244 branch  0x00002a71 , 0x00000002 
+ 00010869  0x00001245 store  0x00000001 , 0x00000181 
+ 00010870  0x00001247 bpatchx  0x00000076 , 0x0000402e 
+ 00010871  0x00001248 fetcht  0x00000002 , 0x00004167 
+ 00010872  0x00001249 storet  0x00000002 , 0x0000016a 
+ 00010873  0x0000124a copy  0x00000002 , 0x00000013 
+ 00010874  0x0000124b add  0x00000022 , 0x00000007 , 0x0000003f 
+ 00010875  0x0000124c idiv  0x00000013 
+ 00010876  0x0000124d call  0x00007d64 
+ 00010877  0x0000124e remainder  0x00000011 
+ 00010878  0x0000124f isub  0x00000011 , 0x0000003f 
+ 00010879  0x00001250 iadd  0x00000013 , 0x0000003f 
+ 00010880  0x00001251 fetcht  0x00000002 , 0x00004165 
+ 00010881  0x00001252 iadd  0x00000002 , 0x0000003f 
+ 00010882  0x00001253 store  0x00000004 , 0x0000016c 
+ 00010883  0x00001254 isub  0x00000022 , 0x00000011 
+ 00010884  0x00001255 increase  0xfffffffa , 0x00000011 
+ 00010885  0x00001256 arg  0x00002205 , 0x00000012 
+ 00010886  0x00001257 fetch  0x00000001 , 0x000042d4 
+ 00010887  0x00001258 nsetflag  0x00000034 , 0x00000006 , 0x00000012 
+ 00010888  0x00001259 fetch  0x00000001 , 0x000042cd 
+ 00010889  0x0000125a nsetflag  0x00000034 , 0x00000007 , 0x00000012 
+ 00010890  0x0000125b copy  0x00000012 , 0x0000003f 
+ 00010891  0x0000125c store  0x00000002 , 0x0000416b 
+ 00010892  0x0000125d fetch  0x00000006 , 0x000042dd 
+ 00010893  0x0000125e istore  0x00000006 , 0x00000005 
+ 00010894  0x0000125f fetch  0x00000006 , 0x00000178 
+ 00010895  0x00001260 istore  0x00000006 , 0x00000005 
+ 00010896  0x00001261 fetch  0x00000004 , 0x0000018c 
+ 00010897  0x00001262 istore  0x00000004 , 0x00000005 
+ 00010898  0x00001263 random  0x0000003f 
+ 00010899  0x00001264 istore  0x00000002 , 0x00000005 
+ 00010900  0x00001265 random  0x0000003f 
+ 00010901  0x00001266 istore  0x00000001 , 0x00000005 
+ 00010902  0x00001267 force  0x00000002 , 0x0000003f 
+ 00010903  0x00001268 istore  0x00000001 , 0x00000005 
+ 00010904  0x00001269 rshift2  0x00000011 , 0x0000003f 
+ 00010905  0x0000126a istore  0x00000002 , 0x00000005 
+ 00010906  0x0000126b rshift2  0x00000013 , 0x0000003f 
+ 00010907  0x0000126c istore  0x00000002 , 0x00000005 
+ 00010908  0x0000126d bpatchx  0x00000077 , 0x0000402e 
+ 00010909  0x0000126e setarg  0x00000000 
+ 00010910  0x0000126f istore  0x00000002 , 0x00000005 
+ 00010911  0x00001270 fetch  0x00000002 , 0x000042db 
+ 00010912  0x00001271 istore  0x00000002 , 0x00000005 
+ 00010913  0x00001272 fetch  0x00000005 , 0x00000198 
+ 00010914  0x00001273 istore  0x00000005 , 0x00000005 
+ 00010915  0x00001274 fetch  0x00000001 , 0x00000181 
+ 00010916  0x00001275 arg  0x000000a0 , 0x00000002 
+ 00010917  0x00001276 ior  0x00000002 , 0x0000003f 
+ 00010918  0x00001277 istore  0x00000001 , 0x00000005 
+ 00010919  0x00001278 call  0x0000271c 
+ 00010920  0x00001279 setarg  0x0000416b 
+ 00010921  0x0000127a add  0x0000003f , 0x00000012 , 0x00000006 
+ 00010922  0x0000127b ifetch  0x00000003 , 0x00000006 
+ 00010923  0x0000127c store  0x00000003 , 0x00000190 
+ 00010924  0x0000127d rtn 
+ 00010925  0x00001281 jam  0x00000024 , 0x00000007 
+ 00010926  0x00001282 jam  0x00000000 , 0x0000067f 
+ 00010927  0x00001283 call  0x00002ad4 
+ 00010928  0x00001284 call  0x00002ab2 
+ 00010929  0x00001285 branch  0x00002ad7 
+ 00010930  0x00001288 bpatchx  0x00000078 , 0x0000402f 
+ 00010931  0x00001289 fetch  0x00000001 , 0x0000438c 
+ 00010932  0x0000128a rtn  0x00000034 
+ 00010933  0x0000128b arg  0x00000000 , 0x00000007 
+ 00010934  0x0000128c call  0x00007cf1 
+ 00010935  0x0000128d nrtn  0x00000034 
+ 00010936  0x0000128e enable  0x00000010 
+ 00010937  0x0000128f call  0x00002ada 
+ 00010938  0x00001290 call  0x00002b4d 
+ 00010939  0x00001291 call  0x00002ae3 
+ 00010940  0x00001292 nbranch  0x00002ac4 , 0x0000002d 
+ 00010941  0x00001293 fetch  0x00000001 , 0x00000003 
+ 00010942  0x00001294 increase  0x00000001 , 0x0000003f 
+ 00010943  0x00001295 store  0x00000001 , 0x00000003 
+ 00010944  0x00001296 fetch  0x00000001 , 0x0000004c 
+ 00010945  0x00001297 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00010946  0x00001298 beq  0x00000003 , 0x00002b12 
+ 00010947  0x00001299 beq  0x00000005 , 0x00002b25 
+ 00010948  0x0000129b bpatchx  0x00000079 , 0x0000402f 
+ 00010949  0x0000129c fetch  0x00000001 , 0x0000067f 
+ 00010950  0x0000129d fetcht  0x00000001 , 0x00004397 
+ 00010951  0x0000129e isub  0x00000002 , 0x0000003e 
+ 00010952  0x0000129f nbranch  0x00002ab2 , 0x00000005 
+ 00010953  0x000012a0 fetch  0x00000001 , 0x000043cf 
+ 00010954  0x000012a1 sub  0x0000003f , 0x0000000e , 0x0000003e 
+ 00010955  0x000012a2 branch  0x00003ad9 , 0x00000005 
+ 00010956  0x000012a3 random  0x0000003f 
+ 00010957  0x000012a4 arg  0x000001ff , 0x00000002 
+ 00010958  0x000012a5 iand  0x00000002 , 0x0000003f 
+ 00010959  0x000012a6 add  0x0000003f , 0x000000fa , 0x0000003f 
+ 00010960  0x000012a7 call  0x00007c93 
+ 00010961  0x000012a8 arg  0x00000000 , 0x00000007 
+ 00010962  0x000012a9 fetch  0x00000002 , 0x0000438d 
+ 00010963  0x000012aa branch  0x00007ce3 
+ 00010964  0x000012ad arg  0x0000068f , 0x00000005 
+ 00010965  0x000012ae arg  0x0000416b , 0x00000006 
+ 00010966  0x000012af branch  0x00007c8e 
+ 00010967  0x000012b2 arg  0x0000068f , 0x00000006 
+ 00010968  0x000012b3 arg  0x0000416b , 0x00000005 
+ 00010969  0x000012b4 branch  0x00007c8e 
+ 00010970  0x000012b7 bpatchx  0x0000007a , 0x0000402f 
+ 00010971  0x000012b8 disable  0x00000029 
+ 00010972  0x000012ba setarg  0x008e89be 
+ 00010973  0x000012bb lshift8  0x0000003f , 0x0000003f 
+ 00010974  0x000012bc or_into  0x000000d6 , 0x0000003f 
+ 00010975  0x000012bd iforce  0x00000009 
+ 00010976  0x000012be setarg  0x00555555 
+ 00010977  0x000012bf store  0x00000003 , 0x00000190 
+ 00010978  0x000012c0 rtn 
+ 00010979  0x000012c5 bpatchx  0x0000007b , 0x0000402f 
+ 00010980  0x000012c6 fetch  0x00000001 , 0x0000438f 
+ 00010981  0x000012c7 fetcht  0x00000001 , 0x00004390 
+ 00010982  0x000012c8 lshift4  0x00000002 , 0x00000002 
+ 00010983  0x000012c9 lshift2  0x00000002 , 0x00000002 
+ 00010984  0x000012ca iadd  0x00000002 , 0x00000002 
+ 00010985  0x000012cb storet  0x00000001 , 0x0000416b 
+ 00010986  0x000012cc beq  0x00000001 , 0x00002af4 
+ 00010987  0x000012cd fetcht  0x00000001 , 0x0000434c 
+ 00010988  0x000012ce add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00010989  0x000012cf store  0x00000001 , 0x0000416c 
+ 00010990  0x000012d0 fetch  0x00000006 , 0x000042dd 
+ 00010991  0x000012d1 store  0x00000006 , 0x0000416d 
+ 00010992  0x000012d2 copy  0x00000002 , 0x00000039 
+ 00010993  0x000012d3 arg  0x0000434d , 0x00000006 
+ 00010994  0x000012d4 call  0x00007cce 
+ 00010995  0x000012d5 branch  0x00002afa 
+ 00010996  0x000012d8 setarg  0x0000000c 
+ 00010997  0x000012d9 store  0x00000001 , 0x0000416c 
+ 00010998  0x000012da fetch  0x00000006 , 0x000042dd 
+ 00010999  0x000012db store  0x00000006 , 0x0000416d 
+ 00011000  0x000012dc fetch  0x00000006 , 0x00004116 
+ 00011001  0x000012dd istore  0x00000006 , 0x00000005 
+ 00011002  0x000012df bpatchx  0x0000007c , 0x0000402f 
+ 00011003  0x000012e0 fetch  0x00000001 , 0x00000000 
+ 00011004  0x000012e1 increase  0x00000001 , 0x0000003f 
+ 00011005  0x000012e2 store  0x00000001 , 0x00000000 
+ 00011006  0x000012e3 arg  0x00000708 , 0x0000001b 
+ 00011007  0x000012e4 disable  0x0000002d 
+ 00011008  0x000012e5 branch  0x00002707 
+ 00011009  0x000012e9 bpatchx  0x0000007d , 0x0000402f 
+ 00011010  0x000012ea fetch  0x00000001 , 0x00004398 
+ 00011011  0x000012eb rtnne  0x00000001 
+ 00011012  0x000012ec fetch  0x00000001 , 0x00000000 
+ 00011013  0x000012ed increase  0x00000001 , 0x0000003f 
+ 00011014  0x000012ee store  0x00000001 , 0x00000000 
+ 00011015  0x000012ef arg  0x00000c03 , 0x00000002 
+ 00011016  0x000012f0 fetch  0x00000001 , 0x00004399 
+ 00011017  0x000012f1 nsetflag  0x00000034 , 0x00000006 , 0x00000002 
+ 00011018  0x000012f2 copy  0x00000011 , 0x0000003f 
+ 00011019  0x000012f3 nsetflag  0x00000034 , 0x00000007 , 0x00000002 
+ 00011020  0x000012f4 storet  0x00000002 , 0x0000416b 
+ 00011021  0x000012f5 fetch  0x00000006 , 0x000042dd 
+ 00011022  0x000012f6 istore  0x00000006 , 0x00000005 
+ 00011023  0x000012f7 fetch  0x00000006 , 0x00000178 
+ 00011024  0x000012f8 istore  0x00000006 , 0x00000005 
+ 00011025  0x000012f9 branch  0x00002707 
+ 00011026  0x000012fc bpatchx  0x0000007e , 0x0000402f 
+ 00011027  0x000012fd fetch  0x00000006 , 0x00000054 
+ 00011028  0x000012fe fetcht  0x00000006 , 0x000042dd 
+ 00011029  0x000012ff isub  0x00000002 , 0x0000003e 
+ 00011030  0x00001300 nrtn  0x00000005 
+ 00011031  0x00001301 arg  0x00000004 , 0x00000002 
+ 00011032  0x00001302 fetch  0x00000001 , 0x00004390 
+ 00011033  0x00001303 nsetflag  0x00000034 , 0x00000006 , 0x00000002 
+ 00011034  0x00001304 storet  0x00000001 , 0x0000416b 
+ 00011035  0x00001305 fetcht  0x00000001 , 0x0000436c 
+ 00011036  0x00001306 add  0x00000002 , 0x00000006 , 0x0000003f 
+ 00011037  0x00001307 store  0x00000001 , 0x0000416c 
+ 00011038  0x00001308 fetch  0x00000006 , 0x000042dd 
+ 00011039  0x00001309 store  0x00000006 , 0x0000416d 
+ 00011040  0x0000130a arg  0x0000436d , 0x00000006 
+ 00011041  0x0000130b copy  0x00000002 , 0x00000039 
+ 00011042  0x0000130c call  0x00007cce 
+ 00011043  0x0000130d call  0x0000271c 
+ 00011044  0x0000130e branch  0x00002ac4 
+ 00011045  0x00001311 fetch  0x00000006 , 0x00000054 
+ 00011046  0x00001312 fetcht  0x00000006 , 0x000042dd 
+ 00011047  0x00001313 isub  0x00000002 , 0x0000003e 
+ 00011048  0x00001314 nrtn  0x00000005 
+ 00011049  0x00001315 call  0x00002846 
+ 00011050  0x00001316 storer  0x00000011 , 0x00000001 , 0x000042cd 
+ 00011051  0x00001317 fetch  0x00000006 , 0x0000004e 
+ 00011052  0x00001318 store  0x00000006 , 0x00000178 
+ 00011053  0x00001319 fetch  0x00000008 , 0x0000005a 
+ 00011054  0x0000131a store  0x00000008 , 0x0000018c 
+ 00011055  0x0000131b fetcht  0x00000002 , 0x00000062 
+ 00011056  0x0000131c bpatchx  0x0000007f , 0x0000402f 
+ 00011057  0x0000131d lshift2  0x00000002 , 0x00000002 
+ 00011058  0x0000131e fetch  0x00000002 , 0x00000064 
+ 00011059  0x0000131f lshift2  0x0000003f , 0x0000003f 
+ 00011060  0x00001320 store  0x00000002 , 0x0000016a 
+ 00011061  0x00001321 store  0x00000004 , 0x0000016c 
+ 00011062  0x00001322 isub  0x00000002 , 0x0000003f 
+ 00011063  0x00001323 add  0x0000003f , 0xfffffffe , 0x00000028 
+ 00011064  0x00001324 fetch  0x00000009 , 0x00000066 
+ 00011065  0x00001325 store  0x00000009 , 0x00000194 
+ 00011066  0x00001326 fetch  0x00000001 , 0x0000006f 
+ 00011067  0x00001327 and  0x0000003f , 0x0000001f , 0x00000002 
+ 00011068  0x00001328 storet  0x00000001 , 0x00000181 
+ 00011069  0x00001329 rshift4  0x0000003f , 0x00000002 
+ 00011070  0x0000132a rshift  0x00000002 , 0x00000002 
+ 00011071  0x0000132b storet  0x00000001 , 0x000001b8 
+ 00011072  0x0000132c arg  0x00000168 , 0x00000011 
+ 00011073  0x0000132d call  0x00002917 
+ 00011074  0x0000132e arg  0x00000168 , 0x00000011 
+ 00011075  0x0000132f call  0x000025f9 
+ 00011076  0x00001330 call  0x000024fc 
+ 00011077  0x00001331 call  0x00002056 
+ 00011078  0x00001332 nrtn  0x00000005 
+ 00011079  0x00001333 bpatchx  0x00000080 , 0x00004030 
+ 00011080  0x00001334 call  0x000020f7 
+ 00011081  0x00001335 call  0x00002e85 
+ 00011082  0x00001336 jam  0x00000014 , 0x0000064d 
+ 00011083  0x00001337 call  0x00007819 
+ 00011084  0x00001338 branch  0x00002041 
+ 00011085  0x0000133c bpatchx  0x00000081 , 0x00004030 
+ 00011086  0x0000133d fetch  0x00000001 , 0x00000007 
+ 00011087  0x0000133e beq  0x00000025 , 0x00002b5c 
+ 00011088  0x0000133f beq  0x00000026 , 0x00002b65 
+ 00011089  0x00001340 beq  0x00000027 , 0x00002b52 
+ 00011090  0x00001343 fetcht  0x00000001 , 0x00004397 
+ 00011091  0x00001344 isolate1  0x00000000 , 0x00000002 
+ 00011092  0x00001345 branch  0x00002b61 , 0x00000001 
+ 00011093  0x00001346 isolate1  0x00000001 , 0x00000002 
+ 00011094  0x00001347 branch  0x00002b6a , 0x00000001 
+ 00011095  0x0000134a jam  0x00000027 , 0x00000007 
+ 00011096  0x0000134b fetch  0x00000001 , 0x0000067f 
+ 00011097  0x0000134c set1  0x00000002 , 0x0000003f 
+ 00011098  0x0000134e store  0x00000001 , 0x0000067f 
+ 00011099  0x0000134f rtn 
+ 00011100  0x00001353 fetcht  0x00000001 , 0x00004397 
+ 00011101  0x00001354 isolate1  0x00000001 , 0x00000002 
+ 00011102  0x00001355 branch  0x00002b6a , 0x00000001 
+ 00011103  0x00001356 isolate1  0x00000002 , 0x00000002 
+ 00011104  0x00001357 branch  0x00002b57 , 0x00000001 
+ 00011105  0x0000135a jam  0x00000025 , 0x00000007 
+ 00011106  0x0000135b fetch  0x00000001 , 0x0000067f 
+ 00011107  0x0000135c set1  0x00000000 , 0x0000003f 
+ 00011108  0x0000135d branch  0x00002b5a 
+ 00011109  0x00001360 fetcht  0x00000001 , 0x00004397 
+ 00011110  0x00001361 isolate1  0x00000002 , 0x00000002 
+ 00011111  0x00001362 branch  0x00002b57 , 0x00000001 
+ 00011112  0x00001363 isolate1  0x00000000 , 0x00000002 
+ 00011113  0x00001364 branch  0x00002b61 , 0x00000001 
+ 00011114  0x00001367 jam  0x00000026 , 0x00000007 
+ 00011115  0x00001368 fetch  0x00000001 , 0x0000067f 
+ 00011116  0x00001369 set1  0x00000001 , 0x0000003f 
+ 00011117  0x0000136a branch  0x00002b5a 
+ 00011118  0x0000136f copy  0x00000006 , 0x00000011 
+ 00011119  0x00001370 fetch  0x00000001 , 0x000043cf 
+ 00011120  0x00001371 beq  0x00000006 , 0x00006558 
+ 00011121  0x00001372 beq  0x0000000f , 0x0000490b 
+ 00011122  0x00001373 beq  0x00000008 , 0x00005469 
+ 00011123  0x00001374 copy  0x00000011 , 0x00000006 
+ 00011124  0x00001375 ifetch  0x00000003 , 0x00000006 
+ 00011125  0x00001376 store  0x00000003 , 0x0000439b 
+ 00011126  0x00001378 beq  0x00000002 , 0x00002b8b 
+ 00011127  0x00001379 beq  0x00000003 , 0x00002b90 
+ 00011128  0x0000137a beq  0x00000004 , 0x00002b93 
+ 00011129  0x0000137b beq  0x00000006 , 0x00002bd5 
+ 00011130  0x0000137c beq  0x00000008 , 0x00002c22 
+ 00011131  0x0000137d beq  0x0000000a , 0x00002cf7 
+ 00011132  0x0000137e beq  0x0000000c , 0x00002d2a 
+ 00011133  0x0000137f beq  0x00000010 , 0x00002d41 
+ 00011134  0x00001380 beq  0x00000012 , 0x00002d86 
+ 00011135  0x00001381 beq  0x00000016 , 0x00002dac 
+ 00011136  0x00001382 beq  0x00000018 , 0x00002dbf 
+ 00011137  0x00001383 beq  0x0000001e , 0x00002dc4 
+ 00011138  0x00001384 beq  0x00000052 , 0x00002dc8 
+ 00011139  0x00001385 rtn 
+ 00011140  0x00001389 force  0x00000003 , 0x00000011 
+ 00011141  0x0000138a call  0x00002dee 
+ 00011142  0x0000138b setarg  0x00000002 
+ 00011143  0x0000138d istore  0x00000001 , 0x00000005 
+ 00011144  0x0000138e fetch  0x00000002 , 0x000042e3 
+ 00011145  0x0000138f istore  0x00000002 , 0x00000005 
+ 00011146  0x00001390 rtn 
+ 00011147  0x00001394 call  0x00002b90 
+ 00011148  0x00001396 force  0x00000003 , 0x00000011 
+ 00011149  0x00001397 call  0x00002dee 
+ 00011150  0x00001398 setarg  0x00000003 
+ 00011151  0x00001399 branch  0x00002b87 
+ 00011152  0x0000139c rshift8  0x0000003f , 0x0000003f 
+ 00011153  0x0000139d store  0x00000002 , 0x000042e5 
+ 00011154  0x0000139e rtn 
+ 00011155  0x000013a1 call  0x00002e1f 
+ 00011156  0x000013a2 call  0x00007dbc 
+ 00011157  0x000013a3 branch  0x00002ba1 
+ 00011158  0x000013a7 ifetch  0x00000002 , 0x00000006 
+ 00011159  0x000013a8 and_into  0x000000ff , 0x0000003f 
+ 00011160  0x000013a9 rtn  0x00000034 
+ 00011161  0x000013aa isub  0x00000012 , 0x0000003e 
+ 00011162  0x000013ab rtn  0x00000005 
+ 00011163  0x000013ac nrtn  0x00000002 
+ 00011164  0x000013ad isub  0x00000013 , 0x0000003e 
+ 00011165  0x000013ae rtn  0x00000005 
+ 00011166  0x000013af branch  0x00007dcc , 0x00000002 
+ 00011167  0x000013b0 force  0x00000001 , 0x0000003e 
+ 00011168  0x000013b1 rtn 
+ 00011169  0x000013b5 arg  0x00000003 , 0x0000000b 
+ 00011170  0x000013b6 call  0x00002ca5 
+ 00011171  0x000013b8 call  0x00002b96 
+ 00011172  0x000013b9 branch  0x00002bd3 , 0x00000034 
+ 00011173  0x000013ba nbranch  0x00002bd1 , 0x00000002 
+ 00011174  0x000013bb increase  0xfffffffe , 0x00000006 
+ 00011175  0x000013bc call  0x00007c6f 
+ 00011176  0x000013bd call  0x00007c66 
+ 00011177  0x000013be nbranch  0x00002bc1 , 0x00000028 
+ 00011178  0x000013bf call  0x00007c53 
+ 00011179  0x000013c0 storer  0x0000000b , 0x00000004 , 0x0000065e 
+ 00011180  0x000013c1 force  0x0000001e , 0x00000011 
+ 00011181  0x000013c2 call  0x00002dee 
+ 00011182  0x000013c3 fetchr  0x0000000b , 0x00000004 , 0x0000065e 
+ 00011183  0x000013c4 call  0x00007c62 
+ 00011184  0x000013c5 call  0x00007dbe 
+ 00011185  0x000013c6 setarg  0x00000005 
+ 00011186  0x000013c7 istore  0x00000001 , 0x00000005 
+ 00011187  0x000013c8 call  0x00007c69 
+ 00011188  0x000013c9 ifetch  0x00000002 , 0x00000006 
+ 00011189  0x000013ca ifetchr  0x00000011 , 0x00000001 , 0x00000006 
+ 00011190  0x000013cb sub  0x00000011 , 0x00000010 , 0x0000003e 
+ 00011191  0x000013cc branch  0x00002bbd , 0x00000005 
+ 00011192  0x000013cd sub  0x00000011 , 0x00000002 , 0x0000003e 
+ 00011193  0x000013ce nbranch  0x00002de1 , 0x00000005 
+ 00011194  0x000013d0 setarg  0x00000001 
+ 00011195  0x000013d1 istore  0x00000001 , 0x00000005 
+ 00011196  0x000013d2 branch  0x00002bc6 
+ 00011197  0x000013d5 setarg  0x00000002 
+ 00011198  0x000013d6 istore  0x00000001 , 0x00000005 
+ 00011199  0x000013d7 arg  0x00000001 , 0x0000000b 
+ 00011200  0x000013d8 branch  0x00002bc6 
+ 00011201  0x000013db call  0x00007c69 
+ 00011202  0x000013dc ifetch  0x00000002 , 0x00000006 
+ 00011203  0x000013dd ifetch  0x00000001 , 0x00000006 
+ 00011204  0x000013de isub  0x00000011 , 0x0000003e 
+ 00011205  0x000013df nbranch  0x00002bd3 , 0x00000005 
+ 00011206  0x000013e2 call  0x00007c69 
+ 00011207  0x000013e3 ifetch  0x00000002 , 0x00000006 
+ 00011208  0x000013e4 and_into  0x000000ff , 0x0000003f 
+ 00011209  0x000013e5 istore  0x00000002 , 0x00000005 
+ 00011210  0x000013e6 ifetchr  0x00000039 , 0x00000001 , 0x00000006 
+ 00011211  0x000013e7 call  0x00007cdc 
+ 00011212  0x000013e8 call  0x00007c6c 
+ 00011213  0x000013e9 increase  0xffffffff , 0x0000000b 
+ 00011214  0x000013ea branch  0x00002bd3 , 0x00000005 
+ 00011215  0x000013ec call  0x00002cbb 
+ 00011216  0x000013ed branch  0x00002ba3 
+ 00011217  0x000013f0 call  0x00002cbb 
+ 00011218  0x000013f1 branch  0x00002bcf 
+ 00011219  0x000013f4 branch  0x00002de1 , 0x00000028 
+ 00011220  0x000013f5 branch  0x00002e12 
+ 00011221  0x000013f9 call  0x00002e1f 
+ 00011222  0x000013fa ifetch  0x00000002 , 0x00000006 
+ 00011223  0x000013fb store  0x00000002 , 0x000043a2 
+ 00011224  0x000013fc call  0x00007c6f 
+ 00011225  0x000013fd arg  0x00000693 , 0x00000005 
+ 00011226  0x000013fe fetch  0x00000002 , 0x00004337 
+ 00011227  0x000013ff increase  0xfffffff9 , 0x0000003f 
+ 00011228  0x00001400 call  0x00002e2d 
+ 00011229  0x00001401 branch  0x00002be8 
+ 00011230  0x00001405 disable  0x00000028 
+ 00011231  0x00001406 fetcht  0x00000002 , 0x0000068f 
+ 00011232  0x00001407 fetch  0x00000002 , 0x00000691 
+ 00011233  0x00001408 isub  0x00000002 , 0x0000003e 
+ 00011234  0x00001409 nbranch  0x00002be5 , 0x00000002 
+ 00011235  0x0000140a deposit  0x00000002 
+ 00011236  0x0000140b rtnne  0x00000000 
+ 00011237  0x0000140d enable  0x00000028 
+ 00011238  0x0000140e jam  0x00000001 , 0x000001b9 
+ 00011239  0x0000140f branch  0x00002de3 
+ 00011240  0x00001413 call  0x00002bde 
+ 00011241  0x00001414 rtn  0x00000028 
+ 00011242  0x00001415 fetcht  0x00000002 , 0x000043a2 
+ 00011243  0x00001416 setarg  0x00002800 
+ 00011244  0x00001417 isub  0x00000002 , 0x0000003e 
+ 00011245  0x00001418 branch  0x00002bef , 0x00000005 
+ 00011246  0x00001419 branch  0x00002de1 
+ 00011247  0x0000141d jam  0x00000000 , 0x0000439e 
+ 00011248  0x0000141e fetcht  0x00000002 , 0x0000068f 
+ 00011249  0x0000141f storet  0x00000002 , 0x00000656 
+ 00011250  0x00001420 call  0x00002ce2 
+ 00011251  0x00001421 nbranch  0x00002de1 , 0x00000034 
+ 00011252  0x00001423 fetcht  0x00000002 , 0x00000656 
+ 00011253  0x00001424 call  0x00002ce2 
+ 00011254  0x00001425 nbranch  0x00002c08 , 0x00000034 
+ 00011255  0x00001426 copy  0x00000006 , 0x00000011 
+ 00011256  0x00001427 fetch  0x00000001 , 0x000006a4 
+ 00011257  0x00001428 copy  0x0000003f , 0x00000039 
+ 00011258  0x00001429 fetcht  0x00000001 , 0x00000693 
+ 00011259  0x0000142a isub  0x00000002 , 0x0000003e 
+ 00011260  0x0000142b nbranch  0x00002c04 , 0x00000005 
+ 00011261  0x0000142c arg  0x00000694 , 0x00000012 
+ 00011262  0x0000142d call  0x00007d66 
+ 00011263  0x0000142f branch  0x00002c0b , 0x00000005 
+ 00011264  0x00001431 fetch  0x00000002 , 0x000006ac 
+ 00011265  0x00001432 fetcht  0x00000002 , 0x000043a2 
+ 00011266  0x00001433 isub  0x00000002 , 0x0000003e 
+ 00011267  0x00001434 branch  0x00002c13 , 0x00000005 
+ 00011268  0x00001436 fetch  0x00000002 , 0x00000656 
+ 00011269  0x00001437 increase  0x00000001 , 0x0000003f 
+ 00011270  0x00001438 store  0x00000002 , 0x00000656 
+ 00011271  0x00001439 branch  0x00002bf4 
+ 00011272  0x0000143c fetch  0x00000001 , 0x0000439e 
+ 00011273  0x0000143d beq  0x00000001 , 0x00002c13 
+ 00011274  0x0000143e branch  0x00002de1 
+ 00011275  0x00001442 fetch  0x00000002 , 0x000006ac 
+ 00011276  0x00001443 fetcht  0x00000002 , 0x000043a2 
+ 00011277  0x00001444 isub  0x00000002 , 0x0000003e 
+ 00011278  0x00001445 nbranch  0x00002c04 , 0x00000005 
+ 00011279  0x00001446 jam  0x00000001 , 0x0000439e 
+ 00011280  0x00001448 fetcht  0x00000002 , 0x00000656 
+ 00011281  0x00001449 storet  0x00000002 , 0x000006a7 
+ 00011282  0x0000144a branch  0x00002c04 
+ 00011283  0x0000144d fetch  0x00000001 , 0x0000439e 
+ 00011284  0x0000144e beq  0x00000000 , 0x00002c04 
+ 00011285  0x0000144f jam  0x00000002 , 0x0000439e 
+ 00011286  0x00001450 fetcht  0x00000002 , 0x00000656 
+ 00011287  0x00001451 increase  0xffffffff , 0x00000002 
+ 00011288  0x00001452 storet  0x00000002 , 0x000006a9 
+ 00011289  0x00001455 arg  0x00000005 , 0x00000011 
+ 00011290  0x00001456 call  0x00002dee 
+ 00011291  0x00001457 setarg  0x00000007 
+ 00011292  0x00001458 istore  0x00000001 , 0x00000005 
+ 00011293  0x00001459 fetch  0x00000002 , 0x000006a7 
+ 00011294  0x0000145a istore  0x00000002 , 0x00000005 
+ 00011295  0x0000145b fetch  0x00000002 , 0x000006a9 
+ 00011296  0x0000145c istore  0x00000002 , 0x00000005 
+ 00011297  0x0000145d rtn 
+ 00011298  0x00001462 call  0x00002e1f 
+ 00011299  0x00001463 call  0x00002e28 
+ 00011300  0x00001464 branch  0x00002c25 
+ 00011301  0x00001467 fetcht  0x00000002 , 0x0000068f 
+ 00011302  0x00001468 storet  0x00000002 , 0x00000656 
+ 00011303  0x00001469 call  0x00002ca5 
+ 00011304  0x0000146a call  0x00002cb0 
+ 00011305  0x0000146b increase  0xfffffffe , 0x00000006 
+ 00011306  0x0000146c copy  0x00000006 , 0x0000003f 
+ 00011307  0x0000146d store  0x00000002 , 0x000006a5 
+ 00011308  0x0000146f fetcht  0x00000002 , 0x00000694 
+ 00011309  0x00001470 setarg  0x00002a00 
+ 00011310  0x00001471 isub  0x00000002 , 0x0000003e 
+ 00011311  0x00001472 branch  0x00002c90 , 0x00000005 
+ 00011312  0x00001473 setarg  0x00002803 
+ 00011313  0x00001474 isub  0x00000002 , 0x0000003e 
+ 00011314  0x00001475 nbranch  0x00002c7a , 0x00000005 
+ 00011315  0x00001476 arg  0x00000002 , 0x0000000b 
+ 00011316  0x00001478 call  0x00002df5 
+ 00011317  0x00001479 nbranch  0x00002c57 , 0x00000002 
+ 00011318  0x0000147a fetcht  0x00000002 , 0x00000656 
+ 00011319  0x0000147b call  0x00002ce0 
+ 00011320  0x0000147c nbranch  0x00002c57 , 0x00000034 
+ 00011321  0x0000147d call  0x00002df9 
+ 00011322  0x0000147e nbranch  0x00002c55 , 0x00000005 
+ 00011323  0x0000147f nbranch  0x00002c59 , 0x00000028 
+ 00011324  0x00001480 disable  0x00000028 
+ 00011325  0x00001481 call  0x00002e24 
+ 00011326  0x00001482 copy  0x0000003f , 0x00000011 
+ 00011327  0x00001483 call  0x00002dee 
+ 00011328  0x00001484 setarg  0x00000009 
+ 00011329  0x00001485 istore  0x00000001 , 0x00000005 
+ 00011330  0x00001486 copy  0x00000005 , 0x00000030 
+ 00011331  0x00001487 increase  0x00000001 , 0x00000005 
+ 00011332  0x00001489 call  0x00002c67 
+ 00011333  0x0000148a call  0x00002df1 
+ 00011334  0x0000148b call  0x00002ce0 
+ 00011335  0x0000148c call  0x00002c6e 
+ 00011336  0x0000148d fetch  0x00000001 , 0x000006ab 
+ 00011337  0x0000148e add  0x0000003f , 0x00000005 , 0x00000011 
+ 00011338  0x0000148f istorer  0x00000011 , 0x00000001 , 0x00000030 
+ 00011339  0x00001491 sub  0x00000011 , 0x00000007 , 0x0000003e 
+ 00011340  0x00001492 ncall  0x00007dc0 , 0x00000005 
+ 00011341  0x00001493 call  0x00007dc2 , 0x00000005 
+ 00011342  0x00001494 call  0x00002e24 
+ 00011343  0x00001495 increase  0xfffffffe , 0x0000003f 
+ 00011344  0x00001496 idiv  0x00000011 
+ 00011345  0x00001497 call  0x00007d64 
+ 00011346  0x00001498 quotient  0x0000000b 
+ 00011347  0x00001499 increase  0xffffffff , 0x0000000b 
+ 00011348  0x0000149a branch  0x00002c57 , 0x00000005 
+ 00011349  0x0000149c call  0x00002df1 
+ 00011350  0x0000149d branch  0x00002c34 
+ 00011351  0x0000149f branch  0x00002de1 , 0x00000028 
+ 00011352  0x000014a0 branch  0x00002e12 
+ 00011353  0x000014a3 call  0x00002e02 
+ 00011354  0x000014a4 call  0x00002df1 
+ 00011355  0x000014a5 call  0x00002ce0 
+ 00011356  0x000014a6 call  0x00002d74 
+ 00011357  0x000014a7 nbranch  0x00002c57 , 0x00000034 
+ 00011358  0x000014a9 call  0x00007c66 
+ 00011359  0x000014aa fetch  0x00000002 , 0x00000656 
+ 00011360  0x000014ab increase  0xffffffff , 0x0000003f 
+ 00011361  0x000014ac istore  0x00000002 , 0x00000005 
+ 00011362  0x000014ad call  0x00002e0e 
+ 00011363  0x000014ae call  0x00002c6e 
+ 00011364  0x000014af increase  0xffffffff , 0x0000000b 
+ 00011365  0x000014b0 branch  0x00002c57 , 0x00000005 
+ 00011366  0x000014b1 branch  0x00002c55 
+ 00011367  0x000014b5 fetch  0x00000002 , 0x00000656 
+ 00011368  0x000014b6 istore  0x00000002 , 0x00000005 
+ 00011369  0x000014b8 fetch  0x00000001 , 0x000006a4 
+ 00011370  0x000014b9 copy  0x0000003f , 0x00000039 
+ 00011371  0x000014ba call  0x00007c69 
+ 00011372  0x000014bb call  0x00007cce 
+ 00011373  0x000014bc branch  0x00007c6c 
+ 00011374  0x000014be call  0x00007c66 
+ 00011375  0x000014bf fetch  0x00000002 , 0x00000656 
+ 00011376  0x000014c0 istore  0x00000002 , 0x00000005 
+ 00011377  0x000014c1 call  0x00007c6c 
+ 00011378  0x000014c2 fetch  0x00000001 , 0x000006ab 
+ 00011379  0x000014c3 copy  0x0000003f , 0x00000039 
+ 00011380  0x000014c4 call  0x00007c66 
+ 00011381  0x000014c5 call  0x00007c69 
+ 00011382  0x000014c6 isub  0x00000039 , 0x00000006 
+ 00011383  0x000014c7 increase  0xffffffff , 0x00000006 
+ 00011384  0x000014c8 call  0x00007cce 
+ 00011385  0x000014c9 branch  0x00007c6c 
+ 00011386  0x000014cc bpatchx  0x00000082 , 0x00004030 
+ 00011387  0x000014cd call  0x00002cbe 
+ 00011388  0x000014ce branch  0x00002de1 , 0x00000034 
+ 00011389  0x000014cf copy  0x00000006 , 0x00000013 
+ 00011390  0x000014d1 call  0x00002e24 
+ 00011391  0x000014d2 copy  0x00000013 , 0x00000006 
+ 00011392  0x000014d3 ifetcht  0x00000001 , 0x00000006 
+ 00011393  0x000014d4 increase  0x00000004 , 0x00000002 
+ 00011394  0x000014d5 call  0x00007db2 
+ 00011395  0x000014d6 copy  0x0000003f , 0x00000013 
+ 00011396  0x000014d7 copy  0x0000003f , 0x00000011 
+ 00011397  0x000014d8 call  0x00007c6f 
+ 00011398  0x000014d9 call  0x00002dee 
+ 00011399  0x000014db setarg  0x00000009 
+ 00011400  0x000014dc istore  0x00000001 , 0x00000005 
+ 00011401  0x000014dd add  0x00000013 , 0xfffffffe , 0x0000003f 
+ 00011402  0x000014de add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00011403  0x000014df istore  0x00000001 , 0x00000005 
+ 00011404  0x000014e0 fetch  0x00000002 , 0x000006bc 
+ 00011405  0x000014e1 istore  0x00000002 , 0x00000005 
+ 00011406  0x000014e2 call  0x00007c69 
+ 00011407  0x000014e3 branch  0x00007cce 
+ 00011408  0x000014e7 call  0x00002cbe 
+ 00011409  0x000014e8 branch  0x00002de1 , 0x00000034 
+ 00011410  0x000014e9 increase  0xfffffffb , 0x00000006 
+ 00011411  0x000014ea ifetch  0x00000002 , 0x00000006 
+ 00011412  0x000014eb store  0x00000002 , 0x00000656 
+ 00011413  0x000014ec call  0x00002e24 
+ 00011414  0x000014ed fetcht  0x00000001 , 0x0000426d 
+ 00011415  0x000014ee increase  0x00000004 , 0x00000002 
+ 00011416  0x000014ef call  0x00007db2 
+ 00011417  0x000014f0 copy  0x0000003f , 0x00000013 
+ 00011418  0x000014f1 copy  0x0000003f , 0x00000011 
+ 00011419  0x000014f2 call  0x00002dee 
+ 00011420  0x000014f3 setarg  0x00000009 
+ 00011421  0x000014f4 istore  0x00000001 , 0x00000005 
+ 00011422  0x000014f5 add  0x00000013 , 0xfffffffe , 0x0000003f 
+ 00011423  0x000014f6 add  0x0000003f , 0xfffffffe , 0x00000039 
+ 00011424  0x000014f7 istore  0x00000001 , 0x00000005 
+ 00011425  0x000014f8 fetch  0x00000002 , 0x00000656 
+ 00011426  0x000014f9 istore  0x00000002 , 0x00000005 
+ 00011427  0x000014fa arg  0x0000426e , 0x00000006 
+ 00011428  0x000014fb branch  0x00007cce 
+ 00011429  0x000014ff bpatchx  0x00000083 , 0x00004030 
+ 00011430  0x00001500 fetch  0x00000002 , 0x0000068f 
+ 00011431  0x00001501 iforce  0x00000012 
+ 00011432  0x00001502 fetch  0x00000002 , 0x00000691 
+ 00011433  0x00001503 iforce  0x00000013 
+ 00011434  0x00001504 fetch  0x00000002 , 0x000042f9 
+ 00011435  0x00001505 iforce  0x00000006 
+ 00011436  0x00001506 branch  0x00007dbc 
+ 00011437  0x0000150b call  0x00002cb0 
+ 00011438  0x0000150c branch  0x00002cbb , 0x00000005 
+ 00011439  0x0000150d rtn 
+ 00011440  0x00001510 bpatchx  0x00000084 , 0x00004030 
+ 00011441  0x00001511 fetch  0x00000002 , 0x000042f9 
+ 00011442  0x00001512 iforce  0x00000006 
+ 00011443  0x00001514 ifetch  0x00000002 , 0x00000006 
+ 00011444  0x00001515 and_into  0x000000ff , 0x0000003f 
+ 00011445  0x00001516 rtn  0x00000034 
+ 00011446  0x00001517 isub  0x00000002 , 0x0000003e 
+ 00011447  0x00001518 rtn  0x00000005 
+ 00011448  0x00001519 call  0x00002cbb 
+ 00011449  0x0000151a call  0x00002cbb 
+ 00011450  0x0000151b branch  0x00002cb3 
+ 00011451  0x0000151f ifetch  0x00000001 , 0x00000006 
+ 00011452  0x00001520 iadd  0x00000006 , 0x00000006 
+ 00011453  0x00001521 rtn 
+ 00011454  0x00001525 bpatchx  0x00000085 , 0x00004030 
+ 00011455  0x00001526 fetch  0x00000002 , 0x000042f9 
+ 00011456  0x00001527 iforce  0x00000006 
+ 00011457  0x00001529 ifetch  0x00000002 , 0x00000006 
+ 00011458  0x0000152a and_into  0x000000ff , 0x0000003f 
+ 00011459  0x0000152b rtn  0x00000034 
+ 00011460  0x0000152c store  0x00000002 , 0x000006bc 
+ 00011461  0x0000152d ifetch  0x00000001 , 0x00000006 
+ 00011462  0x0000152e copy  0x00000006 , 0x00000005 
+ 00011463  0x0000152f iadd  0x00000006 , 0x00000006 
+ 00011464  0x00001530 fetcht  0x00000001 , 0x00000693 
+ 00011465  0x00001531 isub  0x00000002 , 0x0000003e 
+ 00011466  0x00001532 nbranch  0x00002cd1 , 0x00000005 
+ 00011467  0x00001533 copy  0x0000003f , 0x00000039 
+ 00011468  0x00001534 copy  0x00000005 , 0x00000012 
+ 00011469  0x00001535 arg  0x00000694 , 0x00000011 
+ 00011470  0x00001536 call  0x00007d66 
+ 00011471  0x00001537 rtn  0x00000005 
+ 00011472  0x00001538 fetch  0x00000001 , 0x00000693 
+ 00011473  0x0000153a iadd  0x00000005 , 0x00000006 
+ 00011474  0x0000153b call  0x00002cbb 
+ 00011475  0x0000153c branch  0x00002cc1 
+ 00011476  0x00001544 arg  0x00000001 , 0x00000002 
+ 00011477  0x00001545 fetch  0x00000002 , 0x000042f9 
+ 00011478  0x00001546 iforce  0x00000006 
+ 00011479  0x00001547 copy  0x00000006 , 0x00000005 
+ 00011480  0x00001549 ifetch  0x00000002 , 0x00000006 
+ 00011481  0x0000154a and_into  0x000000ff , 0x0000003f 
+ 00011482  0x0000154b rtn  0x00000034 
+ 00011483  0x0000154c add  0x0000003f , 0x00000001 , 0x00000002 
+ 00011484  0x0000154d call  0x00002cbb 
+ 00011485  0x0000154e call  0x00002cbb 
+ 00011486  0x0000154f copy  0x00000006 , 0x00000005 
+ 00011487  0x00001550 branch  0x00002cd8 
+ 00011488  0x00001554 fetch  0x00000002 , 0x000006a5 
+ 00011489  0x00001555 branch  0x00002ce4 
+ 00011490  0x00001558 bpatchx  0x00000086 , 0x00004030 
+ 00011491  0x00001559 fetch  0x00000002 , 0x000042f9 
+ 00011492  0x0000155b iforce  0x00000006 
+ 00011493  0x0000155d ifetch  0x00000002 , 0x00000006 
+ 00011494  0x0000155e and_into  0x000000ff , 0x0000003f 
+ 00011495  0x0000155f branch  0x00002ced , 0x00000034 
+ 00011496  0x00001560 isub  0x00000002 , 0x0000003e 
+ 00011497  0x00001561 branch  0x00002cee , 0x00000005 
+ 00011498  0x00001562 call  0x00002cbb 
+ 00011499  0x00001563 call  0x00002cbb 
+ 00011500  0x00001564 branch  0x00002ce5 
+ 00011501  0x00001567 branch  0x00007dca 
+ 00011502  0x0000156a ifetch  0x00000001 , 0x00000006 
+ 00011503  0x0000156b store  0x00000001 , 0x000006ab 
+ 00011504  0x0000156c copy  0x0000003f , 0x00000039 
+ 00011505  0x0000156d arg  0x000006ac , 0x00000005 
+ 00011506  0x0000156e call  0x00007cce 
+ 00011507  0x0000156f ifetch  0x00000001 , 0x00000006 
+ 00011508  0x00001570 store  0x00000001 , 0x000006a4 
+ 00011509  0x00001571 call  0x00007c6f 
+ 00011510  0x00001572 branch  0x00007dcc 
+ 00011511  0x00001577 call  0x00002da5 
+ 00011512  0x00001578 fetcht  0x00000002 , 0x0000439c 
+ 00011513  0x00001579 fetch  0x00000001 , 0x00004323 
+ 00011514  0x0000157a bbit1  0x00000003 , 0x00002d20 
+ 00011515  0x0000157e call  0x00002cb0 
+ 00011516  0x0000157f nbranch  0x00002de1 , 0x00000005 
+ 00011517  0x00001580 call  0x00002d26 , 0x00000028 
+ 00011518  0x00001581 rtn  0x00000028 
+ 00011519  0x00001582 call  0x00002cbb 
+ 00011520  0x00001583 increase  0xfffffffe , 0x00000006 
+ 00011521  0x00001584 ifetch  0x00000002 , 0x00000006 
+ 00011522  0x00001585 arg  0x00002a00 , 0x00000002 
+ 00011523  0x00001586 isub  0x00000002 , 0x0000003e 
+ 00011524  0x00001587 branch  0x00002d14 , 0x00000005 
+ 00011525  0x00001588 copy  0x00000006 , 0x00000013 
+ 00011526  0x00001589 call  0x00002e24 
+ 00011527  0x0000158a copy  0x00000013 , 0x00000006 
+ 00011528  0x0000158b ifetcht  0x00000001 , 0x00000006 
+ 00011529  0x0000158c increase  0x00000001 , 0x00000002 
+ 00011530  0x0000158d call  0x00007db2 
+ 00011531  0x0000158f copy  0x0000003f , 0x00000013 
+ 00011532  0x00001590 copy  0x0000003f , 0x00000011 
+ 00011533  0x00001591 call  0x00007c6f 
+ 00011534  0x00001592 call  0x00002dee 
+ 00011535  0x00001593 setarg  0x0000000b 
+ 00011536  0x00001594 istore  0x00000001 , 0x00000005 
+ 00011537  0x00001595 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011538  0x00001596 call  0x00007c69 
+ 00011539  0x00001597 branch  0x00007cdc 
+ 00011540  0x0000159a call  0x00002e24 
+ 00011541  0x0000159b fetcht  0x00000001 , 0x0000426d 
+ 00011542  0x0000159c increase  0x00000001 , 0x00000002 
+ 00011543  0x0000159d call  0x00007db2 
+ 00011544  0x0000159e copy  0x0000003f , 0x00000013 
+ 00011545  0x0000159f copy  0x0000003f , 0x00000011 
+ 00011546  0x000015a1 call  0x00002dee 
+ 00011547  0x000015a2 setarg  0x0000000b 
+ 00011548  0x000015a3 istore  0x00000001 , 0x00000005 
+ 00011549  0x000015a4 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011550  0x000015a5 arg  0x0000426e , 0x00000006 
+ 00011551  0x000015a6 branch  0x00007cdc 
+ 00011552  0x000015aa fetch  0x00000002 , 0x00004334 
+ 00011553  0x000015ab isub  0x00000002 , 0x0000003e 
+ 00011554  0x000015ac nbranch  0x00002cfb , 0x00000005 
+ 00011555  0x000015ad nbranch  0x00002cfb , 0x00000028 
+ 00011556  0x000015af jam  0x00000005 , 0x000001b9 
+ 00011557  0x000015b0 branch  0x00002de3 
+ 00011558  0x000015b3 increase  0xfffffffe , 0x00000006 
+ 00011559  0x000015b4 ifetch  0x00000002 , 0x00000006 
+ 00011560  0x000015b5 bbit1  0x0000000e , 0x00002d24 
+ 00011561  0x000015b6 branch  0x00007dbe 
+ 00011562  0x000015b9 ifetch  0x00000002 , 0x00000006 
+ 00011563  0x000015ba store  0x00000002 , 0x00000693 
+ 00011564  0x000015bb iforce  0x00000011 
+ 00011565  0x000015bc fetcht  0x00000002 , 0x0000439c 
+ 00011566  0x000015be call  0x00002cad 
+ 00011567  0x000015bf branch  0x00002de1 , 0x00000034 
+ 00011568  0x000015c0 ifetch  0x00000001 , 0x00000006 
+ 00011569  0x000015c1 isub  0x00000011 , 0x00000039 
+ 00011570  0x000015c2 nbranch  0x00002de1 , 0x00000002 
+ 00011571  0x000015c3 call  0x00007c6f 
+ 00011572  0x000015c4 call  0x00002e24 
+ 00011573  0x000015c5 add  0x00000039 , 0x00000001 , 0x00000002 
+ 00011574  0x000015c6 call  0x00007db2 
+ 00011575  0x000015c8 copy  0x0000003f , 0x00000011 
+ 00011576  0x000015c9 copy  0x0000003f , 0x00000013 
+ 00011577  0x000015ca call  0x00002dee 
+ 00011578  0x000015cb setarg  0x0000000d 
+ 00011579  0x000015cc istore  0x00000001 , 0x00000005 
+ 00011580  0x000015cd add  0x00000013 , 0xffffffff , 0x00000039 
+ 00011581  0x000015ce fetcht  0x00000002 , 0x00000693 
+ 00011582  0x000015cf call  0x00007c69 
+ 00011583  0x000015d0 iadd  0x00000002 , 0x00000006 
+ 00011584  0x000015d1 branch  0x00007cce 
+ 00011585  0x000015d6 call  0x00002e1f 
+ 00011586  0x000015d7 call  0x00002e28 
+ 00011587  0x000015d8 branch  0x00002d44 
+ 00011588  0x000015df arg  0x00000002 , 0x0000000b 
+ 00011589  0x000015e0 fetcht  0x00000002 , 0x0000068f 
+ 00011590  0x000015e1 storet  0x00000002 , 0x00000656 
+ 00011591  0x000015e2 call  0x00002cb0 
+ 00011592  0x000015e3 increase  0xfffffffe , 0x00000006 
+ 00011593  0x000015e4 copy  0x00000006 , 0x0000003f 
+ 00011594  0x000015e5 store  0x00000002 , 0x000006a5 
+ 00011595  0x000015e7 call  0x00002df5 
+ 00011596  0x000015e8 nbranch  0x00002d7c , 0x00000002 
+ 00011597  0x000015e9 fetcht  0x00000002 , 0x00000656 
+ 00011598  0x000015ea call  0x00002ce0 
+ 00011599  0x000015eb nbranch  0x00002d7f , 0x00000034 
+ 00011600  0x000015ed call  0x00002df9 
+ 00011601  0x000015ee nbranch  0x00002d72 , 0x00000005 
+ 00011602  0x000015ef copy  0x0000000b , 0x0000003f 
+ 00011603  0x000015f0 beq  0x00000000 , 0x00002d7f 
+ 00011604  0x000015f1 nbranch  0x00002d68 , 0x00000028 
+ 00011605  0x000015f2 disable  0x00000028 
+ 00011606  0x000015f4 call  0x00002e24 
+ 00011607  0x000015f5 copy  0x0000003f , 0x00000011 
+ 00011608  0x000015f6 call  0x00002dee 
+ 00011609  0x000015f7 setarg  0x00000011 
+ 00011610  0x000015f8 istore  0x00000001 , 0x00000005 
+ 00011611  0x000015f9 fetch  0x00000001 , 0x000006a4 
+ 00011612  0x000015fa add  0x0000003f , 0x00000004 , 0x00000011 
+ 00011613  0x000015fb istorer  0x00000011 , 0x00000001 , 0x00000005 
+ 00011614  0x000015fc call  0x00007c6c 
+ 00011615  0x000015fd sub  0x00000011 , 0x00000006 , 0x0000003e 
+ 00011616  0x000015fe ncall  0x00007dc0 , 0x00000005 
+ 00011617  0x000015ff call  0x00007dc2 , 0x00000005 
+ 00011618  0x00001600 call  0x00002e24 
+ 00011619  0x00001601 increase  0xfffffffe , 0x0000003f 
+ 00011620  0x00001602 idiv  0x00000011 
+ 00011621  0x00001603 call  0x00007d64 
+ 00011622  0x00001604 quotient  0x0000000b 
+ 00011623  0x00001605 branch  0x00002d6e 
+ 00011624  0x00001607 call  0x00002d76 
+ 00011625  0x00001608 nbranch  0x00002d7f , 0x00000034 
+ 00011626  0x00001609 fetch  0x00000002 , 0x00000656 
+ 00011627  0x0000160a increase  0xffffffff , 0x0000003f 
+ 00011628  0x0000160b store  0x00000002 , 0x000006a9 
+ 00011629  0x0000160c call  0x00002e08 
+ 00011630  0x0000160e fetch  0x00000002 , 0x00000656 
+ 00011631  0x0000160f store  0x00000002 , 0x000006a7 
+ 00011632  0x00001610 call  0x00002e02 
+ 00011633  0x00001611 increase  0xffffffff , 0x0000000b 
+ 00011634  0x00001614 call  0x00002df1 
+ 00011635  0x00001615 branch  0x00002d4b 
+ 00011636  0x00001618 fetch  0x00000001 , 0x000006ab 
+ 00011637  0x00001619 branch  0x00002d77 
+ 00011638  0x0000161d fetch  0x00000001 , 0x000006a4 
+ 00011639  0x0000161e branch  0x00002d7a , 0x0000002c 
+ 00011640  0x0000161f increase  0xfffffffe , 0x0000003f 
+ 00011641  0x00001620 rtn 
+ 00011642  0x00001623 increase  0xfffffff0 , 0x0000003f 
+ 00011643  0x00001624 rtn 
+ 00011644  0x00001627 fetch  0x00000002 , 0x00000656 
+ 00011645  0x00001628 store  0x00000002 , 0x000006a9 
+ 00011646  0x00001629 branch  0x00002d83 
+ 00011647  0x0000162b fetch  0x00000002 , 0x00000656 
+ 00011648  0x0000162c increase  0xffffffff , 0x0000003f 
+ 00011649  0x0000162d store  0x00000002 , 0x000006a9 
+ 00011650  0x0000162e branch  0x00002d83 
+ 00011651  0x00001630 branch  0x00002de1 , 0x00000028 
+ 00011652  0x00001631 call  0x00002e08 
+ 00011653  0x00001632 branch  0x00002e12 
+ 00011654  0x00001638 copy  0x00000006 , 0x00000011 
+ 00011655  0x00001639 fetch  0x00000002 , 0x00004337 
+ 00011656  0x0000163a add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00011657  0x0000163b call  0x00002908 
+ 00011658  0x0000163d bpatchx  0x00000087 , 0x00004030 
+ 00011659  0x0000163e call  0x00002da5 
+ 00011660  0x0000163f fetcht  0x00000002 , 0x0000439c 
+ 00011661  0x00001640 call  0x00002cb0 
+ 00011662  0x00001641 nbranch  0x00002da3 , 0x00000005 
+ 00011663  0x00001642 call  0x00002d9f , 0x00000028 
+ 00011664  0x00001643 rtn  0x00000028 
+ 00011665  0x00001645 fetch  0x00000001 , 0x00004323 
+ 00011666  0x00001646 bbit0  0x00000004 , 0x00002d9a 
+ 00011667  0x00001648 fetcht  0x00000002 , 0x0000439c 
+ 00011668  0x00001649 fetch  0x00000002 , 0x00004334 
+ 00011669  0x0000164a isub  0x00000002 , 0x0000003e 
+ 00011670  0x0000164b nbranch  0x00002d9a , 0x00000005 
+ 00011671  0x0000164c call  0x00002da5 
+ 00011672  0x0000164d nbranch  0x00002d9a , 0x00000028 
+ 00011673  0x0000164e branch  0x00002d24 
+ 00011674  0x00001652 force  0x00000001 , 0x00000011 
+ 00011675  0x00001653 call  0x00002dee 
+ 00011676  0x00001654 setarg  0x00000013 
+ 00011677  0x00001655 istore  0x00000001 , 0x00000005 
+ 00011678  0x00001656 rtn 
+ 00011679  0x00001659 increase  0xfffffffe , 0x00000006 
+ 00011680  0x0000165a ifetch  0x00000002 , 0x00000006 
+ 00011681  0x0000165b bbit1  0x0000000f , 0x00002d24 
+ 00011682  0x0000165c branch  0x00007dbe 
+ 00011683  0x0000165f jam  0x00000001 , 0x000001b9 
+ 00011684  0x00001660 branch  0x00002de3 
+ 00011685  0x00001664 bpatchx  0x00000088 , 0x00004031 
+ 00011686  0x00001665 call  0x00007dbe 
+ 00011687  0x00001666 fetch  0x00000001 , 0x00004300 
+ 00011688  0x00001667 rtneq  0x00000000 
+ 00011689  0x00001668 fetch  0x00000001 , 0x00004040 
+ 00011690  0x00001669 rtnbit1  0x00000004 
+ 00011691  0x0000166a branch  0x00007dbc 
+ 00011692  0x0000166e add  0x00000006 , 0x00000002 , 0x00000011 
+ 00011693  0x0000166f fetch  0x00000002 , 0x00004337 
+ 00011694  0x00001670 add  0x0000003f , 0xfffffffb , 0x00000012 
+ 00011695  0x00001671 call  0x00002908 
+ 00011696  0x00001672 branch  0x00002db1 
+ 00011697  0x00001676 fetch  0x00000002 , 0x00004337 
+ 00011698  0x00001677 copy  0x0000003f , 0x00000011 
+ 00011699  0x00001678 call  0x00002dee 
+ 00011700  0x00001679 setarg  0x00000017 
+ 00011701  0x0000167a istore  0x00000001 , 0x00000005 
+ 00011702  0x0000167b fetch  0x00000002 , 0x0000439c 
+ 00011703  0x0000167c istore  0x00000002 , 0x00000005 
+ 00011704  0x0000167d fetch  0x00000002 , 0x00004337 
+ 00011705  0x0000167e add  0x0000003f , 0xfffffffb , 0x00000039 
+ 00011706  0x0000167f fetch  0x00000002 , 0x0000433b 
+ 00011707  0x00001680 add  0x0000003f , 0x00000007 , 0x00000006 
+ 00011708  0x00001681 ifetch  0x00000002 , 0x00000006 
+ 00011709  0x00001682 istore  0x00000002 , 0x00000005 
+ 00011710  0x00001683 branch  0x00007cce 
+ 00011711  0x0000168a force  0x00000001 , 0x00000011 
+ 00011712  0x0000168b call  0x00002dee 
+ 00011713  0x0000168c setarg  0x00000019 
+ 00011714  0x0000168d istore  0x00000001 , 0x00000005 
+ 00011715  0x0000168e rtn 
+ 00011716  0x00001691 fetch  0x00000001 , 0x0000439a 
+ 00011717  0x00001692 set0  0x00000000 , 0x0000003f 
+ 00011718  0x00001693 store  0x00000001 , 0x0000439a 
+ 00011719  0x00001694 rtn 
+ 00011720  0x00001697 copy  0x00000006 , 0x00000011 
+ 00011721  0x00001698 fetch  0x00000002 , 0x00004337 
+ 00011722  0x00001699 add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00011723  0x0000169a branch  0x00002908 
+ 00011724  0x000016a0 copy  0x00000002 , 0x00000013 
+ 00011725  0x000016a1 increase  0x00000003 , 0x00000011 
+ 00011726  0x000016a2 call  0x00002dee 
+ 00011727  0x000016a3 increase  0xfffffffd , 0x00000011 
+ 00011728  0x000016a4 setarg  0x0000001b 
+ 00011729  0x000016a5 istore  0x00000001 , 0x00000005 
+ 00011730  0x000016a6 copy  0x00000013 , 0x00000002 
+ 00011731  0x000016a7 istoret  0x00000002 , 0x00000005 
+ 00011732  0x000016a8 rtn 
+ 00011733  0x000016ac fetch  0x00000001 , 0x0000439a 
+ 00011734  0x000016ad set1  0x00000000 , 0x0000003f 
+ 00011735  0x000016ae store  0x00000001 , 0x0000439a 
+ 00011736  0x000016af copy  0x00000002 , 0x00000013 
+ 00011737  0x000016b0 increase  0x00000003 , 0x00000011 
+ 00011738  0x000016b1 call  0x00002dee 
+ 00011739  0x000016b2 increase  0xfffffffd , 0x00000011 
+ 00011740  0x000016b3 setarg  0x0000001d 
+ 00011741  0x000016b4 istore  0x00000001 , 0x00000005 
+ 00011742  0x000016b5 copy  0x00000013 , 0x00000002 
+ 00011743  0x000016b6 istoret  0x00000002 , 0x00000005 
+ 00011744  0x000016b7 rtn 
+ 00011745  0x000016bd bpatchx  0x00000089 , 0x00004031 
+ 00011746  0x000016be jam  0x0000000a , 0x000001b9 
+ 00011747  0x000016c0 force  0x00000005 , 0x00000011 
+ 00011748  0x000016c1 call  0x00002dee 
+ 00011749  0x000016c2 setarg  0x00000001 
+ 00011750  0x000016c3 istore  0x00000001 , 0x00000005 
+ 00011751  0x000016c4 fetch  0x00000001 , 0x0000439b 
+ 00011752  0x000016c5 istore  0x00000001 , 0x00000005 
+ 00011753  0x000016c6 fetch  0x00000002 , 0x0000439c 
+ 00011754  0x000016c7 istore  0x00000002 , 0x00000005 
+ 00011755  0x000016c8 fetch  0x00000001 , 0x000001b9 
+ 00011756  0x000016c9 istore  0x00000001 , 0x00000005 
+ 00011757  0x000016ca rtn 
+ 00011758  0x000016ce bpatchx  0x0000008a , 0x00004031 
+ 00011759  0x000016cf force  0x00000004 , 0x00000012 
+ 00011760  0x000016d0 branch  0x000029d9 
+ 00011761  0x000016d4 fetcht  0x00000002 , 0x00000656 
+ 00011762  0x000016d5 increase  0x00000001 , 0x00000002 
+ 00011763  0x000016d6 storet  0x00000002 , 0x00000656 
+ 00011764  0x000016d7 rtn 
+ 00011765  0x000016da fetcht  0x00000002 , 0x00000656 
+ 00011766  0x000016db fetch  0x00000002 , 0x00000691 
+ 00011767  0x000016dc isub  0x00000002 , 0x0000003e 
+ 00011768  0x000016dd rtn 
+ 00011769  0x000016e1 bpatchx  0x0000008b , 0x00004031 
+ 00011770  0x000016e2 fetcht  0x00000001 , 0x00000693 
+ 00011771  0x000016e3 arg  0x00000694 , 0x00000011 
+ 00011772  0x000016e5 fetch  0x00000001 , 0x000006ab 
+ 00011773  0x000016e6 copy  0x0000003f , 0x00000039 
+ 00011774  0x000016e7 isub  0x00000002 , 0x0000003e 
+ 00011775  0x000016e8 nrtn  0x00000005 
+ 00011776  0x000016e9 arg  0x000006ac , 0x00000012 
+ 00011777  0x000016ea branch  0x00007d66 
+ 00011778  0x000016ee bpatchx  0x0000008c , 0x00004031 
+ 00011779  0x000016ef fetch  0x00000001 , 0x000006a4 
+ 00011780  0x000016f0 store  0x00000001 , 0x0000067f 
+ 00011781  0x000016f1 copy  0x0000003f , 0x00000039 
+ 00011782  0x000016f2 call  0x00007c69 
+ 00011783  0x000016f3 branch  0x00007cce 
+ 00011784  0x000016f7 bpatchx  0x0000008d , 0x00004031 
+ 00011785  0x000016f8 call  0x00007c66 
+ 00011786  0x000016f9 fetch  0x00000002 , 0x000006a7 
+ 00011787  0x000016fa istore  0x00000002 , 0x00000005 
+ 00011788  0x000016fb fetch  0x00000002 , 0x000006a9 
+ 00011789  0x000016fc istore  0x00000002 , 0x00000005 
+ 00011790  0x000016fe fetch  0x00000001 , 0x0000067f 
+ 00011791  0x000016ff copy  0x0000003f , 0x00000039 
+ 00011792  0x00001700 call  0x00007cce 
+ 00011793  0x00001701 branch  0x00007c6c 
+ 00011794  0x00001706 bpatchx  0x0000008e , 0x00004031 
+ 00011795  0x00001707 call  0x00007c66 
+ 00011796  0x00001708 call  0x000029ff 
+ 00011797  0x00001709 copy  0x00000005 , 0x0000003f 
+ 00011798  0x0000170a isub  0x00000006 , 0x00000011 
+ 00011799  0x0000170b call  0x00002a02 
+ 00011800  0x0000170c copy  0x00000011 , 0x0000003f 
+ 00011801  0x0000170d istore  0x00000002 , 0x00000006 
+ 00011802  0x0000170e increase  0x00000004 , 0x00000011 
+ 00011803  0x0000170f call  0x000029f4 
+ 00011804  0x00001710 copy  0x00000011 , 0x0000003f 
+ 00011805  0x00001711 istore  0x00000001 , 0x00000006 
+ 00011806  0x00001712 rtn 
+ 00011807  0x00001716 rshift8  0x0000003f , 0x0000003f 
+ 00011808  0x00001717 store  0x00000002 , 0x0000068f 
+ 00011809  0x00001718 ifetch  0x00000002 , 0x00000006 
+ 00011810  0x00001719 store  0x00000002 , 0x00000691 
+ 00011811  0x0000171a rtn 
+ 00011812  0x0000171e bpatchx  0x0000008f , 0x00004031 
+ 00011813  0x0000171f fetch  0x00000002 , 0x000042e5 
+ 00011814  0x00001721 fetcht  0x00000002 , 0x000042e3 
+ 00011815  0x00001725 branch  0x00007db2 
+ 00011816  0x0000172a bpatchx  0x00000090 , 0x00004032 
+ 00011817  0x0000172b call  0x00007c6f 
+ 00011818  0x0000172c arg  0x00000693 , 0x00000005 
+ 00011819  0x0000172e fetch  0x00000002 , 0x00004337 
+ 00011820  0x0000172f increase  0xfffffffb , 0x0000003f 
+ 00011821  0x00001731 istore  0x00000001 , 0x00000005 
+ 00011822  0x00001732 copy  0x0000003f , 0x00000039 
+ 00011823  0x00001733 call  0x00007c69 
+ 00011824  0x00001734 branch  0x00007cce 
+ 00011825  0x00001739 fetch  0x00000002 , 0x00000050 
+ 00011826  0x0000173a rtnne  0x00000004 
+ 00011827  0x0000173b fetch  0x00000001 , 0x0000439a 
+ 00011828  0x0000173c set1  0x00000001 , 0x0000003f 
+ 00011829  0x0000173d store  0x00000001 , 0x0000439a 
+ 00011830  0x0000173e fetch  0x00000003 , 0x00000052 
+ 00011831  0x0000173f store  0x00000003 , 0x0000439b 
+ 00011832  0x00001740 set1  0x0000000f , 0x00000000 
+ 00011833  0x00001741 beq  0x00000012 , 0x00002e4c 
+ 00011834  0x00001742 beq  0x00000052 , 0x00002e51 
+ 00011835  0x00001743 beq  0x00000018 , 0x00002dbf 
+ 00011836  0x00001744 beq  0x00000002 , 0x00002b8b 
+ 00011837  0x00001745 beq  0x0000001e , 0x00002dc4 
+ 00011838  0x00001746 set0  0x0000000f , 0x00000000 
+ 00011839  0x00001748 fetch  0x00000001 , 0x0000439a 
+ 00011840  0x00001749 set0  0x00000001 , 0x0000003f 
+ 00011841  0x0000174a store  0x00000001 , 0x0000439a 
+ 00011842  0x0000174b rtn 
+ 00011843  0x0000174e fetch  0x00000001 , 0x0000439a 
+ 00011844  0x0000174f rtnbit0  0x00000001 
+ 00011845  0x00001750 set1  0x0000000f , 0x00000000 
+ 00011846  0x00001751 call  0x00002e5c 
+ 00011847  0x00001752 call  0x00002e62 
+ 00011848  0x00001753 call  0x00002e3f , 0x00000028 
+ 00011849  0x00001754 fetch  0x00000001 , 0x0000439b 
+ 00011850  0x00001755 beq  0x00000012 , 0x00002d8a 
+ 00011851  0x00001756 rtn 
+ 00011852  0x0000175a call  0x00002e51 
+ 00011853  0x0000175b branch  0x00002e4e 
+ 00011854  0x0000175e call  0x00002e62 
+ 00011855  0x0000175f nrtn  0x00000028 
+ 00011856  0x00001760 branch  0x00002d8a 
+ 00011857  0x00001764 bpatchx  0x00000091 , 0x00004032 
+ 00011858  0x00001765 call  0x00002e55 
+ 00011859  0x00001766 arg  0x00000055 , 0x00000011 
+ 00011860  0x00001767 branch  0x00002908 
+ 00011861  0x0000176b fetch  0x00000001 , 0x0000004d 
+ 00011862  0x0000176c add  0x0000003f , 0xfffffff9 , 0x00000012 
+ 00011863  0x0000176d increase  0xfffffffc , 0x0000003f 
+ 00011864  0x0000176e store  0x00000002 , 0x00004339 
+ 00011865  0x0000176f fetcht  0x00000002 , 0x0000004e 
+ 00011866  0x00001770 storet  0x00000002 , 0x00004337 
+ 00011867  0x00001771 rtn 
+ 00011868  0x00001775 fetchr  0x00000012 , 0x00000001 , 0x0000004d 
+ 00011869  0x00001776 fetch  0x00000002 , 0x00004339 
+ 00011870  0x00001777 iadd  0x00000012 , 0x00000002 
+ 00011871  0x00001778 storet  0x00000002 , 0x00004339 
+ 00011872  0x00001779 arg  0x0000004e , 0x00000011 
+ 00011873  0x0000177a branch  0x00002908 
+ 00011874  0x0000177f call  0x00007dbe 
+ 00011875  0x00001780 fetch  0x00000002 , 0x00004339 
+ 00011876  0x00001781 fetcht  0x00000002 , 0x00004337 
+ 00011877  0x00001782 isub  0x00000002 , 0x0000003e 
+ 00011878  0x00001783 nrtn  0x00000005 
+ 00011879  0x00001784 branch  0x00007dbc 
+ 00011880  0x0000178b ifetch  0x00000001 , 0x00000006 
+ 00011881  0x0000178c ifetcht  0x00000001 , 0x00000006 
+ 00011882  0x0000178d ifetcht  0x00000002 , 0x00000006 
+ 00011883  0x0000178e beq  0x00000013 , 0x00002e6d 
+ 00011884  0x0000178f rtn 
+ 00011885  0x00001791 ifetch  0x00000002 , 0x00000006 
+ 00011886  0x00001792 store  0x00000002 , 0x00004340 
+ 00011887  0x00001793 jam  0x00000040 , 0x0000064d 
+ 00011888  0x00001794 branch  0x00007819 
+ 00011889  0x0000179b arg  0x0000000c , 0x00000011 
+ 00011890  0x0000179c arg  0x00000012 , 0x00000013 
+ 00011891  0x0000179d call  0x00002e79 
+ 00011892  0x0000179e setarg  0x00000008 
+ 00011893  0x0000179f istore  0x00000002 , 0x00000005 
+ 00011894  0x000017a0 fetch  0x00000008 , 0x000042d5 
+ 00011895  0x000017a1 istore  0x00000008 , 0x00000005 
+ 00011896  0x000017a2 rtn 
+ 00011897  0x000017a7 call  0x00002e81 
+ 00011898  0x000017a8 arg  0x00000005 , 0x00000012 
+ 00011899  0x000017a9 call  0x000029d9 
+ 00011900  0x000017aa copy  0x00000013 , 0x0000003f 
+ 00011901  0x000017ab istore  0x00000001 , 0x00000005 
+ 00011902  0x000017ac fetch  0x00000001 , 0x0000433f 
+ 00011903  0x000017ad istore  0x00000001 , 0x00000005 
+ 00011904  0x000017ae rtn 
+ 00011905  0x000017b2 fetch  0x00000001 , 0x0000433f 
+ 00011906  0x000017b4 pincrease  0x00000001 
+ 00011907  0x000017b5 store  0x00000001 , 0x0000433f 
+ 00011908  0x000017b6 rtnne  0x00000000 
+ 00011909  0x000017b9 jam  0x00000001 , 0x0000433f 
+ 00011910  0x000017ba rtn 
+ 00011911  0x000017c0 fetch  0x00000001 , 0x00004300 
+ 00011912  0x000017c1 beq  0x00000000 , 0x00002e96 
+ 00011913  0x000017c2 beq  0x00000001 , 0x00002e99 
+ 00011914  0x000017c3 beq  0x00000002 , 0x00002e9b 
+ 00011915  0x000017c4 beq  0x00000081 , 0x00002e8f 
+ 00011916  0x000017c5 beq  0x00000082 , 0x00002e91 
+ 00011917  0x000017c6 beq  0x00000083 , 0x00002e94 
+ 00011918  0x000017c7 rtn 
+ 00011919  0x000017ca jam  0x0000000d , 0x000042c9 
+ 00011920  0x000017cb branch  0x00002e97 
+ 00011921  0x000017cd jam  0x0000000d , 0x000042c9 
+ 00011922  0x000017ce jam  0x00000001 , 0x000042c7 
+ 00011923  0x000017cf rtn 
+ 00011924  0x000017d1 jam  0x0000000d , 0x000042c9 
+ 00011925  0x000017d2 branch  0x00002e9c 
+ 00011926  0x000017d5 jam  0x00000000 , 0x000042c9 
+ 00011927  0x000017d7 jam  0x00000003 , 0x000042c7 
+ 00011928  0x000017d8 rtn 
+ 00011929  0x000017da jam  0x00000005 , 0x000042c9 
+ 00011930  0x000017db branch  0x00002e97 
+ 00011931  0x000017dd jam  0x00000005 , 0x000042c9 
+ 00011932  0x000017df jam  0x00000000 , 0x000042c7 
+ 00011933  0x000017e0 rtn 
+ 00011934  0x000017e3 fetch  0x00000001 , 0x00004483 
+ 00011935  0x000017e4 set1  0x00000000 , 0x0000003f 
+ 00011936  0x000017e5 store  0x00000001 , 0x00004483 
+ 00011937  0x000017e6 rtn 
+ 00011938  0x000017e9 fetch  0x00000001 , 0x00004483 
+ 00011939  0x000017ea set0  0x00000000 , 0x0000003f 
+ 00011940  0x000017eb store  0x00000001 , 0x00004483 
+ 00011941  0x000017ec rtn 
+ 00011942  0x000017ef ifetch  0x00000001 , 0x00000006 
+ 00011943  0x000017f0 beq  0x00000001 , 0x00002eba 
+ 00011944  0x000017f2 beq  0x00000003 , 0x00002ee1 
+ 00011945  0x000017f3 beq  0x00000004 , 0x00002f02 
+ 00011946  0x000017f4 beq  0x00000005 , 0x00002f0f 
+ 00011947  0x000017f6 beq  0x00000007 , 0x00002f78 
+ 00011948  0x000017f7 beq  0x00000008 , 0x00002f64 
+ 00011949  0x000017f8 beq  0x00000009 , 0x00002f74 
+ 00011950  0x000017f9 beq  0x0000000a , 0x00002f78 
+ 00011951  0x000017fa beq  0x0000000b , 0x00002f78 
+ 00011952  0x000017fb beq  0x0000000c , 0x00002f79 
+ 00011953  0x000017fc beq  0x0000000d , 0x00002f7e 
+ 00011954  0x000017fd rtn 
+ 00011955  0x00001802 force  0x00000002 , 0x00000011 
+ 00011956  0x00001803 call  0x00003025 
+ 00011957  0x00001804 setarg  0x0000000b 
+ 00011958  0x00001805 istore  0x00000001 , 0x00000005 
+ 00011959  0x00001806 fetch  0x00000001 , 0x000042c9 
+ 00011960  0x00001807 istore  0x00000001 , 0x00000005 
+ 00011961  0x00001808 rtn 
+ 00011962  0x0000180b store  0x00000001 , 0x000042bf 
+ 00011963  0x0000180c ifetch  0x00000006 , 0x00000006 
+ 00011964  0x0000180d istore  0x00000006 , 0x00000005 
+ 00011965  0x0000180e fetch  0x00000001 , 0x00004300 
+ 00011966  0x0000180f beq  0x00000000 , 0x00002f15 
+ 00011967  0x00001810 call  0x00002edc 
+ 00011968  0x00001811 fetch  0x00000001 , 0x00004481 
+ 00011969  0x00001812 branch  0x00002ec6 , 0x00000034 
+ 00011970  0x00001813 fetch  0x00000001 , 0x000042c2 
+ 00011971  0x00001814 bbit0  0x00000003 , 0x00003794 
+ 00011972  0x00001815 fetch  0x00000001 , 0x00004300 
+ 00011973  0x00001816 bbit0  0x00000007 , 0x00003794 
+ 00011974  0x00001818 jam  0x00000003 , 0x000042fe 
+ 00011975  0x00001819 fetch  0x00000001 , 0x000042c0 
+ 00011976  0x0000181a beq  0x00000000 , 0x00002ece 
+ 00011977  0x0000181b beq  0x00000001 , 0x00002ece 
+ 00011978  0x0000181c beq  0x00000003 , 0x00002ece 
+ 00011979  0x0000181d fetch  0x00000001 , 0x00004300 
+ 00011980  0x0000181e beq  0x00000002 , 0x00002ed1 
+ 00011981  0x0000181f rtneq  0x00000083 
+ 00011982  0x00001821 arg  0x00000000 , 0x0000003f 
+ 00011983  0x00001822 store  0x00000004 , 0x00004301 
+ 00011984  0x00001823 rtn 
+ 00011985  0x00001826 fetch  0x00000001 , 0x00004323 
+ 00011986  0x00001827 bbit1  0x00000000 , 0x00002eda 
+ 00011987  0x00001829 arg  0x00004301 , 0x00000011 
+ 00011988  0x0000182a copy  0x00000011 , 0x00000005 
+ 00011989  0x0000182b arg  0x00000003 , 0x00000039 
+ 00011990  0x0000182c call  0x00007dee 
+ 00011991  0x0000182d fetch  0x00000002 , 0x00004303 
+ 00011992  0x0000182e and_into  0x00000007 , 0x0000003f 
+ 00011993  0x0000182f store  0x00000002 , 0x00004303 
+ 00011994  0x00001831 jam  0x00000034 , 0x0000064d 
+ 00011995  0x00001832 branch  0x00007819 
+ 00011996  0x00001837 force  0x00000007 , 0x00000011 
+ 00011997  0x00001838 call  0x00003025 
+ 00011998  0x00001839 fetch  0x00000007 , 0x000042c6 
+ 00011999  0x0000183a istore  0x00000007 , 0x00000005 
+ 00012000  0x0000183b rtn 
+ 00012001  0x0000183f jam  0x00000005 , 0x000042fe 
+ 00012002  0x00001840 arg  0x0000429d , 0x00000005 
+ 00012003  0x00001841 call  0x00007c91 
+ 00012004  0x00001842 fetch  0x00000001 , 0x00004300 
+ 00012005  0x00001843 beq  0x00000004 , 0x00002ee9 
+ 00012006  0x00001844 beq  0x00000083 , 0x00002eeb 
+ 00012007  0x00001845 beq  0x00000084 , 0x00002eee 
+ 00012008  0x00001846 branch  0x00002ef1 
+ 00012009  0x0000184a jam  0x00000043 , 0x0000064d 
+ 00012010  0x0000184b branch  0x00007819 
+ 00012011  0x0000184e jam  0x00000002 , 0x000042fb 
+ 00012012  0x0000184f jam  0x00000008 , 0x000042fc 
+ 00012013  0x00001850 rtn 
+ 00012014  0x00001853 fetch  0x00000004 , 0x00004301 
+ 00012015  0x00001854 branch  0x00002ee9 , 0x00000034 
+ 00012016  0x00001855 branch  0x00002eeb 
+ 00012017  0x00001858 jam  0x00000006 , 0x000042fe 
+ 00012018  0x00001859 fetch  0x00000001 , 0x00004300 
+ 00012019  0x0000185a bbit1  0x00000007 , 0x00002efa 
+ 00012020  0x0000185b call  0x00007244 
+ 00012021  0x0000185c force  0x00000011 , 0x00000011 
+ 00012022  0x0000185d call  0x00003025 
+ 00012023  0x0000185e setarg  0x00000003 
+ 00012024  0x0000185f istore  0x00000001 , 0x00000005 
+ 00012025  0x00001860 branch  0x00007363 
+ 00012026  0x00001863 arg  0x000042ad , 0x00000005 
+ 00012027  0x00001864 call  0x00007ded 
+ 00012028  0x00001865 call  0x000071a4 
+ 00012029  0x00001866 force  0x00000011 , 0x00000011 
+ 00012030  0x00001867 call  0x00003025 
+ 00012031  0x00001868 setarg  0x00000003 
+ 00012032  0x00001869 istore  0x00000001 , 0x00000005 
+ 00012033  0x0000186a branch  0x000071e0 
+ 00012034  0x0000186d copy  0x00000006 , 0x00000011 
+ 00012035  0x0000186e fetch  0x00000001 , 0x00004300 
+ 00012036  0x0000186f bbit1  0x00000007 , 0x00002f17 
+ 00012037  0x00001870 copy  0x00000011 , 0x00000006 
+ 00012038  0x00001871 call  0x0000723c 
+ 00012039  0x00001872 branch  0x00002f2c , 0x00000005 
+ 00012040  0x00001874 jam  0x00000004 , 0x000001ba 
+ 00012041  0x00001876 force  0x00000002 , 0x00000011 
+ 00012042  0x00001877 call  0x00003025 
+ 00012043  0x00001878 setarg  0x00000005 
+ 00012044  0x00001879 istore  0x00000001 , 0x00000005 
+ 00012045  0x0000187a fetch  0x00000001 , 0x000001ba 
+ 00012046  0x0000187b istore  0x00000001 , 0x00000005 
+ 00012047  0x0000187d bpatchx  0x00000092 , 0x00004032 
+ 00012048  0x0000187e force  0x00000007 , 0x00000007 
+ 00012049  0x0000187f call  0x00007ce2 
+ 00012050  0x00001880 jam  0x00000000 , 0x000042fe 
+ 00012051  0x00001881 jam  0x00000030 , 0x0000064d 
+ 00012052  0x00001882 branch  0x00007819 
+ 00012053  0x00001885 jam  0x00000005 , 0x000001ba 
+ 00012054  0x00001886 branch  0x00002f09 
+ 00012055  0x00001889 arg  0x00000158 , 0x00000005 
+ 00012056  0x0000188a copy  0x00000011 , 0x00000006 
+ 00012057  0x0000188b call  0x00007c91 
+ 00012058  0x0000188c fetch  0x00000001 , 0x00004300 
+ 00012059  0x0000188d beq  0x00000083 , 0x00002f23 
+ 00012060  0x0000188e beq  0x00000084 , 0x00002f23 
+ 00012061  0x0000188f call  0x0000712e 
+ 00012062  0x00001890 call  0x00002f31 
+ 00012063  0x00001891 fetch  0x00000001 , 0x00004300 
+ 00012064  0x00001892 rtnne  0x00000082 
+ 00012065  0x00001893 jam  0x0000003b , 0x0000064d 
+ 00012066  0x00001894 branch  0x00007819 
+ 00012067  0x00001897 call  0x00007199 
+ 00012068  0x00001898 arg  0x000006af , 0x00000005 
+ 00012069  0x00001899 call  0x000071e0 
+ 00012070  0x0000189a arg  0x000006af , 0x00000011 
+ 00012071  0x0000189b arg  0x0000429d , 0x00000012 
+ 00012072  0x0000189c arg  0x00000010 , 0x00000039 
+ 00012073  0x0000189d call  0x00007d66 
+ 00012074  0x0000189e nbranch  0x00002f08 , 0x00000005 
+ 00012075  0x0000189f branch  0x00002f31 
+ 00012076  0x000018a2 call  0x00007238 
+ 00012077  0x000018a3 jam  0x00000031 , 0x0000064d 
+ 00012078  0x000018a4 call  0x00007819 
+ 00012079  0x000018a5 jam  0x00000001 , 0x0000429c 
+ 00012080  0x000018a6 jam  0x00000009 , 0x000042fe 
+ 00012081  0x000018a9 force  0x00000011 , 0x00000011 
+ 00012082  0x000018aa call  0x00003025 
+ 00012083  0x000018ab setarg  0x00000004 
+ 00012084  0x000018ac istore  0x00000001 , 0x00000005 
+ 00012085  0x000018ad arg  0x000042ad , 0x00000006 
+ 00012086  0x000018ae branch  0x00007c91 
+ 00012087  0x000018b1 force  0x00000011 , 0x00000011 
+ 00012088  0x000018b2 call  0x00003025 
+ 00012089  0x000018b3 setarg  0x00000006 
+ 00012090  0x000018b4 istore  0x00000001 , 0x00000005 
+ 00012091  0x000018b5 fetch  0x00000001 , 0x00004323 
+ 00012092  0x000018b6 bbit1  0x00000001 , 0x00002f3f 
+ 00012093  0x000018b7 arg  0x0000428c , 0x00000006 
+ 00012094  0x000018b8 branch  0x00007c91 
+ 00012095  0x000018bb arg  0x00004324 , 0x00000006 
+ 00012096  0x000018bc branch  0x00007c91 
+ 00012097  0x000018c0 arg  0x00004305 , 0x00000005 
+ 00012098  0x000018c1 force  0x0000000a , 0x00000039 
+ 00012099  0x000018c2 call  0x00007dee 
+ 00012100  0x000018c3 force  0x0000000b , 0x00000011 
+ 00012101  0x000018c4 call  0x00003025 
+ 00012102  0x000018c5 setarg  0x00000007 
+ 00012103  0x000018c6 istore  0x00000001 , 0x00000005 
+ 00012104  0x000018c7 fetch  0x00000002 , 0x00004305 
+ 00012105  0x000018c8 istore  0x00000002 , 0x00000005 
+ 00012106  0x000018c9 fetch  0x00000008 , 0x00004307 
+ 00012107  0x000018ca istore  0x00000008 , 0x00000005 
+ 00012108  0x000018cb rtn 
+ 00012109  0x000018ce force  0x00000011 , 0x00000011 
+ 00012110  0x000018cf call  0x00003025 
+ 00012111  0x000018d0 setarg  0x00000008 
+ 00012112  0x000018d1 istore  0x00000001 , 0x00000005 
+ 00012113  0x000018d2 setarg  0x00000000 
+ 00012114  0x000018d3 istore  0x00000008 , 0x00000005 
+ 00012115  0x000018d4 istore  0x00000008 , 0x00000005 
+ 00012116  0x000018d5 rtn 
+ 00012117  0x000018d9 force  0x00000008 , 0x00000011 
+ 00012118  0x000018da call  0x00003025 
+ 00012119  0x000018db setarg  0x00000009 
+ 00012120  0x000018dc istore  0x00000001 , 0x00000005 
+ 00012121  0x000018dd fetch  0x00000001 , 0x000042d4 
+ 00012122  0x000018de istore  0x00000001 , 0x00000005 
+ 00012123  0x000018df fetch  0x00000006 , 0x000042dd 
+ 00012124  0x000018e0 istore  0x00000006 , 0x00000005 
+ 00012125  0x000018e1 rtn 
+ 00012126  0x000018e5 jam  0x00000008 , 0x000001ba 
+ 00012127  0x000018e6 branch  0x00002f09 
+ 00012128  0x000018e9 fetch  0x00000001 , 0x000042cb 
+ 00012129  0x000018ea fetcht  0x00000001 , 0x000042cb 
+ 00012130  0x000018eb iand  0x00000002 , 0x0000003f 
+ 00012131  0x000018ec rtn 
+ 00012132  0x000018ef arg  0x0000430f , 0x00000005 
+ 00012133  0x000018f0 call  0x00007c91 
+ 00012134  0x000018f1 call  0x00002f60 
+ 00012135  0x000018f2 isolate0  0x00000001 , 0x0000003f 
+ 00012136  0x000018f3 branch  0x00002f5e , 0x00000001 
+ 00012137  0x000018f4 fetch  0x00000001 , 0x000043cf 
+ 00012138  0x000018f5 rtnne  0x0000000a 
+ 00012139  0x000018f6 call  0x00002f6e 
+ 00012140  0x000018f7 nrtn  0x00000028 
+ 00012141  0x000018f8 branch  0x0000379e 
+ 00012142  0x000018fc call  0x00007dbe 
+ 00012143  0x000018fd fetch  0x00000001 , 0x000042cd 
+ 00012144  0x000018fe rtneq  0x00000000 
+ 00012145  0x000018ff fetch  0x00000001 , 0x000042c4 
+ 00012146  0x00001900 rtnbit0  0x00000001 
+ 00012147  0x00001901 branch  0x00007dbc 
+ 00012148  0x00001904 call  0x00002f60 
+ 00012149  0x00001905 isolate0  0x00000001 , 0x0000003f 
+ 00012150  0x00001906 branch  0x00002f5e , 0x00000001 
+ 00012151  0x00001907 rtn 
+ 00012152  0x0000190c rtn 
+ 00012153  0x0000190f arg  0x000005dc , 0x00000005 
+ 00012154  0x00001910 call  0x00007c83 
+ 00012155  0x00001911 jam  0x00000002 , 0x000042fb 
+ 00012156  0x00001912 jam  0x00000001 , 0x000042fc 
+ 00012157  0x00001913 rtn 
+ 00012158  0x00001916 arg  0x0000063c , 0x00000005 
+ 00012159  0x00001917 call  0x00007c91 
+ 00012160  0x00001918 jam  0x00000006 , 0x000042fc 
+ 00012161  0x00001919 jam  0x00000002 , 0x000042fb 
+ 00012162  0x0000191a rtn 
+ 00012163  0x0000191d force  0x00000041 , 0x00000011 
+ 00012164  0x0000191e call  0x00003025 
+ 00012165  0x0000191f setarg  0x0000000c 
+ 00012166  0x00001920 istore  0x00000001 , 0x00000005 
+ 00012167  0x00001921 arg  0x000044a6 , 0x00000006 
+ 00012168  0x00001922 branch  0x00007c83 
+ 00012169  0x00001925 call  0x00007145 
+ 00012170  0x00001926 force  0x00000011 , 0x00000011 
+ 00012171  0x00001927 call  0x00003025 
+ 00012172  0x00001928 setarg  0x0000000d 
+ 00012173  0x00001929 istore  0x00000001 , 0x00000005 
+ 00012174  0x0000192a branch  0x000071e0 
+ 00012175  0x0000192d fetch  0x00000001 , 0x000042fe 
+ 00012176  0x0000192e rtneq  0x000000ff 
+ 00012177  0x0000192f arg  0x00000003 , 0x00000002 
+ 00012178  0x00001930 isub  0x00000002 , 0x0000003e 
+ 00012179  0x00001931 nrtn  0x00000002 
+ 00012180  0x00001932 arg  0x00000007 , 0x00000007 
+ 00012181  0x00001933 call  0x00007cf1 
+ 00012182  0x00001934 nrtn  0x00000034 
+ 00012183  0x00001935 branch  0x00002f5e 
+ 00012184  0x00001938 bpatchx  0x00000093 , 0x00004032 
+ 00012185  0x00001939 call  0x00002a06 
+ 00012186  0x0000193a nrtn  0x00000034 
+ 00012187  0x0000193b fetch  0x00000001 , 0x000042fe 
+ 00012188  0x0000193c beq  0x00000000 , 0x00002fa5 
+ 00012189  0x0000193d beq  0x00000001 , 0x00002fab 
+ 00012190  0x0000193e beq  0x00000002 , 0x00002fa5 
+ 00012191  0x0000193f beq  0x00000003 , 0x00002fad 
+ 00012192  0x00001940 beq  0x00000009 , 0x00002fb1 
+ 00012193  0x00001941 beq  0x0000000b , 0x00002fc1 
+ 00012194  0x00001942 beq  0x0000000c , 0x00002fc3 
+ 00012195  0x00001943 beq  0x0000000d , 0x00002fca 
+ 00012196  0x00001944 rtn 
+ 00012197  0x00001948 fetch  0x00000001 , 0x000042ff 
+ 00012198  0x00001949 rtnne  0x00000004 
+ 00012199  0x0000194a jam  0x000000ff , 0x000042ff 
+ 00012200  0x0000194b jam  0x000000ff , 0x000042fe 
+ 00012201  0x0000194c jam  0x0000003f , 0x0000064d 
+ 00012202  0x0000194d branch  0x00007819 
+ 00012203  0x00001951 jam  0x00000002 , 0x000042fe 
+ 00012204  0x00001952 branch  0x00002eb3 
+ 00012205  0x00001955 jam  0x00000004 , 0x000042fe 
+ 00012206  0x00001956 setarg  0x00017700 
+ 00012207  0x00001957 arg  0x00000007 , 0x00000007 
+ 00012208  0x00001958 branch  0x00007ce3 
+ 00012209  0x0000195b fetch  0x00000001 , 0x000042ff 
+ 00012210  0x0000195c beq  0x00000004 , 0x00002fb4 
+ 00012211  0x0000195d rtn 
+ 00012212  0x00001960 fetch  0x00000001 , 0x00004300 
+ 00012213  0x00001961 bbit1  0x00000007 , 0x00002fbf 
+ 00012214  0x00001963 jam  0x0000000b , 0x000042fe 
+ 00012215  0x00001964 call  0x00002f37 
+ 00012216  0x00001966 jam  0x00000029 , 0x0000064d 
+ 00012217  0x00001967 call  0x00007819 
+ 00012218  0x00001968 fetch  0x00000001 , 0x000043cf 
+ 00012219  0x00001969 rtnne  0x0000000a 
+ 00012220  0x0000196a call  0x00002f6e 
+ 00012221  0x0000196b rtn  0x00000028 
+ 00012222  0x0000196c branch  0x0000379e 
+ 00012223  0x0000196f jam  0x0000000c , 0x000042fe 
+ 00012224  0x00001970 branch  0x00002fb8 
+ 00012225  0x00001973 jam  0x0000000c , 0x000042fe 
+ 00012226  0x00001974 branch  0x00002f41 
+ 00012227  0x00001977 fetch  0x00000001 , 0x000042c5 
+ 00012228  0x00001978 fetcht  0x00000001 , 0x000042cc 
+ 00012229  0x00001979 iand  0x00000002 , 0x0000003f 
+ 00012230  0x0000197a isolate0  0x00000001 , 0x0000003f 
+ 00012231  0x0000197b branch  0x00002fcc , 0x00000001 
+ 00012232  0x0000197c jam  0x0000000d , 0x000042fe 
+ 00012233  0x0000197d branch  0x00002f4d 
+ 00012234  0x00001980 call  0x00002f55 
+ 00012235  0x00001981 branch  0x00002fcc 
+ 00012236  0x00001985 bpatchx  0x00000094 , 0x00004032 
+ 00012237  0x00001986 force  0x00000007 , 0x00000007 
+ 00012238  0x00001987 call  0x00007ce2 
+ 00012239  0x00001988 jam  0x000000ff , 0x000042ff 
+ 00012240  0x00001989 jam  0x000000ff , 0x000042fe 
+ 00012241  0x0000198a jam  0x0000003e , 0x0000064d 
+ 00012242  0x0000198b branch  0x00007819 
+ 00012243  0x00001990 bpatchx  0x00000095 , 0x00004032 
+ 00012244  0x00001991 fetch  0x00000001 , 0x00004300 
+ 00012245  0x00001992 rtnbit0  0x00000007 
+ 00012246  0x00001993 fetch  0x00000001 , 0x000042fb 
+ 00012247  0x00001994 rtnne  0x00000002 
+ 00012248  0x00001995 jam  0x00000000 , 0x000042fb 
+ 00012249  0x00001996 fetch  0x00000001 , 0x000042fc 
+ 00012250  0x00001997 beq  0x00000001 , 0x0000301b 
+ 00012251  0x00001998 beq  0x00000002 , 0x00003022 
+ 00012252  0x00001999 beq  0x00000003 , 0x00003013 
+ 00012253  0x0000199a beq  0x00000006 , 0x00002ff8 
+ 00012254  0x0000199b beq  0x00000007 , 0x00002fef 
+ 00012255  0x0000199c beq  0x00000008 , 0x00002fe5 
+ 00012256  0x0000199d rtn 
+ 00012257  0x000019a0 jam  0x00000000 , 0x000042fb 
+ 00012258  0x000019a1 jam  0x00000000 , 0x000042fc 
+ 00012259  0x000019a2 jam  0x00000000 , 0x000042fd 
+ 00012260  0x000019a3 rtn 
+ 00012261  0x000019a6 fetch  0x00000001 , 0x000044e6 
+ 00012262  0x000019a7 copy  0x0000003f , 0x00000007 
+ 00012263  0x000019a8 increase  0x00000001 , 0x0000003f 
+ 00012264  0x000019a9 store  0x00000001 , 0x000044e6 
+ 00012265  0x000019aa fetch  0x00000004 , 0x00004301 
+ 00012266  0x000019ab qisolate1  0x0000003f 
+ 00012267  0x000019ac setarg  0x00000080 
+ 00012268  0x000019ad setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00012269  0x000019ae store  0x00000001 , 0x000044e7 
+ 00012270  0x000019af branch  0x00003017 
+ 00012271  0x000019b2 fetch  0x00000001 , 0x000042fd 
+ 00012272  0x000019b3 jam  0x00000000 , 0x000042fd 
+ 00012273  0x000019b4 beq  0x00000001 , 0x00002ff4 
+ 00012274  0x000019b5 jam  0x00000002 , 0x000042fb 
+ 00012275  0x000019b6 rtn 
+ 00012276  0x000019b9 jam  0x00000031 , 0x0000064d 
+ 00012277  0x000019ba call  0x00007819 
+ 00012278  0x000019bb jam  0x00000009 , 0x000042fe 
+ 00012279  0x000019bc branch  0x00002f89 
+ 00012280  0x000019bf fetch  0x00000001 , 0x000005d7 
+ 00012281  0x000019c0 beq  0x00000003 , 0x00002ffc 
+ 00012282  0x000019c1 jam  0x00000002 , 0x000042fb 
+ 00012283  0x000019c2 rtn 
+ 00012284  0x000019c5 call  0x0000716c 
+ 00012285  0x000019c6 fetch  0x00000001 , 0x00004300 
+ 00012286  0x000019c7 beq  0x00000083 , 0x00003001 
+ 00012287  0x000019c8 beq  0x00000084 , 0x00003001 
+ 00012288  0x000019c9 call  0x00002ece 
+ 00012289  0x000019cb call  0x00007159 
+ 00012290  0x000019cc arg  0x000006af , 0x00000011 
+ 00012291  0x000019cd arg  0x0000063c , 0x00000012 
+ 00012292  0x000019ce arg  0x00000010 , 0x00000039 
+ 00012293  0x000019cf call  0x00007d66 
+ 00012294  0x000019d0 branch  0x00003009 , 0x00000005 
+ 00012295  0x000019d2 jam  0x0000000b , 0x000001ba 
+ 00012296  0x000019d3 branch  0x00002f09 
+ 00012297  0x000019d7 call  0x00007449 
+ 00012298  0x000019d8 nbranch  0x00003007 , 0x00000005 
+ 00012299  0x000019d9 jam  0x00000001 , 0x0000429c 
+ 00012300  0x000019da fetch  0x00000001 , 0x00004300 
+ 00012301  0x000019db beq  0x00000081 , 0x00002ff4 
+ 00012302  0x000019dc beq  0x00000083 , 0x00002ff4 
+ 00012303  0x000019dd beq  0x00000084 , 0x00002ff4 
+ 00012304  0x000019de jam  0x00000002 , 0x000042fb 
+ 00012305  0x000019df jam  0x00000007 , 0x000042fc 
+ 00012306  0x000019e0 rtn 
+ 00012307  0x000019e3 fetch  0x00000001 , 0x00004300 
+ 00012308  0x000019e4 beq  0x00000083 , 0x00003018 
+ 00012309  0x000019e5 beq  0x00000084 , 0x00003018 
+ 00012310  0x000019e6 jam  0x00000000 , 0x000044e7 
+ 00012311  0x000019e8 branch  0x00002ef1 
+ 00012312  0x000019eb jam  0x00000000 , 0x000044e6 
+ 00012313  0x000019ec rtneq  0x00000084 
+ 00012314  0x000019ed branch  0x00002ed1 
+ 00012315  0x000019f1 jam  0x00000002 , 0x000042fb 
+ 00012316  0x000019f2 fetch  0x00000001 , 0x00004485 
+ 00012317  0x000019f3 beq  0x00000003 , 0x0000301f 
+ 00012318  0x000019f4 rtn 
+ 00012319  0x000019f7 jam  0x00000002 , 0x000042fc 
+ 00012320  0x000019f8 jam  0x00000000 , 0x000005d7 
+ 00012321  0x000019f9 branch  0x0000752a 
+ 00012322  0x000019fc jam  0x00000002 , 0x000042fb 
+ 00012323  0x000019fd jam  0x00000003 , 0x000042fc 
+ 00012324  0x000019fe branch  0x00002f83 
+ 00012325  0x00001a03 bpatchx  0x00000096 , 0x00004032 
+ 00012326  0x00001a04 force  0x00000006 , 0x00000012 
+ 00012327  0x00001a05 branch  0x000029d9 
+ 00012328  0x00001a0a fetch  0x00000001 , 0x0000004e 
+ 00012329  0x00001a0b beq  0x00000000 , 0x0000303f 
+ 00012330  0x00001a0c beq  0x00000001 , 0x00003047 
+ 00012331  0x00001a0d beq  0x00000002 , 0x0000304f 
+ 00012332  0x00001a0e beq  0x00000003 , 0x00003053 
+ 00012333  0x00001a0f beq  0x00000004 , 0x00003071 
+ 00012334  0x00001a10 beq  0x00000005 , 0x00003076 
+ 00012335  0x00001a11 beq  0x00000006 , 0x0000307a 
+ 00012336  0x00001a12 beq  0x00000007 , 0x0000307f 
+ 00012337  0x00001a13 beq  0x00000008 , 0x00003080 
+ 00012338  0x00001a14 beq  0x00000009 , 0x00003081 
+ 00012339  0x00001a15 beq  0x0000000a , 0x00003082 
+ 00012340  0x00001a16 beq  0x0000000b , 0x00003086 
+ 00012341  0x00001a17 beq  0x0000000c , 0x00003087 
+ 00012342  0x00001a18 beq  0x0000000d , 0x00003089 
+ 00012343  0x00001a19 beq  0x00000012 , 0x0000308a 
+ 00012344  0x00001a1a beq  0x00000013 , 0x0000308b 
+ 00012345  0x00001a1b beq  0x00000014 , 0x0000308c 
+ 00012346  0x00001a1c beq  0x00000015 , 0x0000308e 
+ 00012347  0x00001a1d beq  0x00000016 , 0x00003099 
+ 00012348  0x00001a1e beq  0x00000018 , 0x0000309a 
+ 00012349  0x00001a1f fetchr  0x00000013 , 0x00000001 , 0x0000004e 
+ 00012350  0x00001a20 branch  0x000030bd 
+ 00012351  0x00001a25 ifetch  0x00000009 , 0x00000006 
+ 00012352  0x00001a26 store  0x00000009 , 0x0000019f 
+ 00012353  0x00001a27 ifetch  0x00000002 , 0x00000006 
+ 00012354  0x00001a28 store  0x00000002 , 0x00000188 
+ 00012355  0x00001a29 fetch  0x00000001 , 0x00000168 
+ 00012356  0x00001a2a set1  0x00000005 , 0x0000003f 
+ 00012357  0x00001a2b store  0x00000001 , 0x00000168 
+ 00012358  0x00001a2c rtn 
+ 00012359  0x00001a31 ifetch  0x00000005 , 0x00000006 
+ 00012360  0x00001a32 store  0x00000005 , 0x0000019f 
+ 00012361  0x00001a33 ifetch  0x00000002 , 0x00000006 
+ 00012362  0x00001a34 store  0x00000002 , 0x00000188 
+ 00012363  0x00001a36 fetch  0x00000001 , 0x00000168 
+ 00012364  0x00001a37 set1  0x00000006 , 0x0000003f 
+ 00012365  0x00001a38 store  0x00000001 , 0x00000168 
+ 00012366  0x00001a39 rtn 
+ 00012367  0x00001a3e setarg  0x00000014 
+ 00012368  0x00001a3f store  0x00000002 , 0x00000196 
+ 00012369  0x00001a40 store  0x00000002 , 0x000042f7 
+ 00012370  0x00001a41 rtn 
+ 00012371  0x00001a46 ifetch  0x00000008 , 0x00000006 
+ 00012372  0x00001a47 store  0x00000008 , 0x00004307 
+ 00012373  0x00001a48 ifetch  0x00000002 , 0x00000006 
+ 00012374  0x00001a49 store  0x00000002 , 0x00004305 
+ 00012375  0x00001a4a ifetch  0x00000008 , 0x00000006 
+ 00012376  0x00001a4b store  0x00000008 , 0x000042e7 
+ 00012377  0x00001a4c ifetch  0x00000004 , 0x00000006 
+ 00012378  0x00001a4d store  0x00000004 , 0x00004475 
+ 00012379  0x00001a4e call  0x000030aa 
+ 00012380  0x00001a4f bpatchx  0x00000097 , 0x00004032 
+ 00012381  0x00001a50 fetch  0x00000001 , 0x000042fe 
+ 00012382  0x00001a51 beq  0x00000009 , 0x00003065 
+ 00012383  0x00001a52 fetch  0x00000001 , 0x00004323 
+ 00012384  0x00001a53 bbit1  0x00000001 , 0x00003068 
+ 00012385  0x00001a54 fetch  0x00000001 , 0x00004403 
+ 00012386  0x00001a55 ncall  0x00006e88 , 0x00000034 
+ 00012387  0x00001a56 fetch  0x00000001 , 0x0000429c 
+ 00012388  0x00001a57 beq  0x00000000 , 0x0000306d 
+ 00012389  0x00001a59 jam  0x00000001 , 0x000042ff 
+ 00012390  0x00001a5a call  0x000030b8 
+ 00012391  0x00001a5b branch  0x0000724a 
+ 00012392  0x00001a5d jam  0x00000001 , 0x0000429c 
+ 00012393  0x00001a5e arg  0x00004324 , 0x00000006 
+ 00012394  0x00001a5f arg  0x0000428c , 0x00000005 
+ 00012395  0x00001a60 call  0x00007c91 
+ 00012396  0x00001a61 branch  0x00003065 
+ 00012397  0x00001a64 jam  0x00000000 , 0x000042ff 
+ 00012398  0x00001a65 jam  0x00000000 , 0x000042fe 
+ 00012399  0x00001a66 jam  0x00000041 , 0x0000064d 
+ 00012400  0x00001a67 branch  0x00007819 
+ 00012401  0x00001a6b ifetch  0x00000008 , 0x00000006 
+ 00012402  0x00001a6c store  0x00000008 , 0x000042ef 
+ 00012403  0x00001a6d ifetch  0x00000004 , 0x00000006 
+ 00012404  0x00001a6e store  0x00000004 , 0x00004479 
+ 00012405  0x00001a6f branch  0x0000724a 
+ 00012406  0x00001a74 fetch  0x00000001 , 0x00000168 
+ 00012407  0x00001a75 set1  0x00000004 , 0x0000003f 
+ 00012408  0x00001a76 store  0x00000001 , 0x00000168 
+ 00012409  0x00001a77 rtn 
+ 00012410  0x00001a7b rtn  0x00000029 
+ 00012411  0x00001a7c jam  0x00000032 , 0x0000064d 
+ 00012412  0x00001a7d call  0x00007819 
+ 00012413  0x00001a7e jam  0x00000004 , 0x000042ff 
+ 00012414  0x00001a7f branch  0x000030bb 
+ 00012415  0x00001a84 rtn 
+ 00012416  0x00001a89 branch  0x000030c2 
+ 00012417  0x00001a8e rtn 
+ 00012418  0x00001a93 jam  0x00000002 , 0x000042ff 
+ 00012419  0x00001a94 call  0x000030c9 
+ 00012420  0x00001a95 jam  0x00000033 , 0x0000064d 
+ 00012421  0x00001a96 branch  0x00007819 
+ 00012422  0x00001a9b rtn 
+ 00012423  0x00001aa0 rtn  0x00000029 
+ 00012424  0x00001aa1 branch  0x000030cb 
+ 00012425  0x00001aa6 rtn 
+ 00012426  0x00001aab branch  0x000030d7 
+ 00012427  0x00001ab0 rtn 
+ 00012428  0x00001ab4 call  0x0000308e 
+ 00012429  0x00001ab5 branch  0x000030db 
+ 00012430  0x00001ab8 ifetch  0x00000008 , 0x00000006 
+ 00012431  0x00001ab9 store  0x00000008 , 0x000043bc 
+ 00012432  0x00001aba fetch  0x00000002 , 0x000043bc 
+ 00012433  0x00001abb fetcht  0x00000002 , 0x000043c8 
+ 00012434  0x00001abc call  0x00007db2 
+ 00012435  0x00001abd store  0x00000002 , 0x000043bc 
+ 00012436  0x00001abf fetch  0x00000002 , 0x000043c0 
+ 00012437  0x00001ac0 fetcht  0x00000002 , 0x000043c4 
+ 00012438  0x00001ac1 call  0x00007db2 
+ 00012439  0x00001ac2 store  0x00000002 , 0x000043c0 
+ 00012440  0x00001ac3 rtn 
+ 00012441  0x00001ac8 branch  0x000030e1 
+ 00012442  0x00001acd ifetch  0x00000002 , 0x00000006 
+ 00012443  0x00001ace store  0x00000002 , 0x0000019f 
+ 00012444  0x00001acf ifetch  0x00000002 , 0x00000006 
+ 00012445  0x00001ad0 store  0x00000002 , 0x00000188 
+ 00012446  0x00001ad1 rtn  0x00000034 
+ 00012447  0x00001ad2 fetch  0x00000001 , 0x00000168 
+ 00012448  0x00001ad3 set1  0x00000007 , 0x0000003f 
+ 00012449  0x00001ad4 store  0x00000001 , 0x00000168 
+ 00012450  0x00001ad5 rtn 
+ 00012451  0x00001adb arg  0x00000013 , 0x00000013 
+ 00012452  0x00001adf arg  0x00000002 , 0x00000011 
+ 00012453  0x00001ae0 arg  0x00000002 , 0x00000012 
+ 00012454  0x00001ae1 call  0x000029d3 
+ 00012455  0x00001ae2 copy  0x00000013 , 0x0000003f 
+ 00012456  0x00001ae3 istore  0x00000001 , 0x00000005 
+ 00012457  0x00001ae4 rtn 
+ 00012458  0x00001ae9 arg  0x000042ef , 0x00000005 
+ 00012459  0x00001aea force  0x00000008 , 0x00000039 
+ 00012460  0x00001aeb call  0x00007dee 
+ 00012461  0x00001aec arg  0x00004479 , 0x00000005 
+ 00012462  0x00001aed force  0x00000004 , 0x00000039 
+ 00012463  0x00001aee call  0x00007dee 
+ 00012464  0x00001aef arg  0x0000000d , 0x00000011 
+ 00012465  0x00001af0 arg  0x00000004 , 0x00000012 
+ 00012466  0x00001af1 call  0x000029d3 
+ 00012467  0x00001af2 fetch  0x00000008 , 0x000042ef 
+ 00012468  0x00001af3 istore  0x00000008 , 0x00000005 
+ 00012469  0x00001af4 fetch  0x00000004 , 0x00004479 
+ 00012470  0x00001af5 istore  0x00000004 , 0x00000005 
+ 00012471  0x00001af6 rtn 
+ 00012472  0x00001afb jam  0x00000005 , 0x000042ff 
+ 00012473  0x00001afc arg  0x00000005 , 0x00000012 
+ 00012474  0x00001afd branch  0x000030eb 
+ 00012475  0x00001b02 arg  0x00000006 , 0x00000012 
+ 00012476  0x00001b03 branch  0x000030eb 
+ 00012477  0x00001b09 arg  0x00000002 , 0x00000011 
+ 00012478  0x00001b0a arg  0x00000007 , 0x00000012 
+ 00012479  0x00001b0b call  0x000029d3 
+ 00012480  0x00001b0c istorer  0x00000013 , 0x00000001 , 0x00000005 
+ 00012481  0x00001b0d rtn 
+ 00012482  0x00001b12 arg  0x00000009 , 0x00000011 
+ 00012483  0x00001b13 arg  0x00000009 , 0x00000012 
+ 00012484  0x00001b14 call  0x000029d3 
+ 00012485  0x00001b15 fetch  0x00000008 , 0x000043b2 
+ 00012486  0x00001b16 or  0x0000003f , 0x00000001 , 0x0000003f 
+ 00012487  0x00001b17 istore  0x00000008 , 0x00000005 
+ 00012488  0x00001b18 rtn 
+ 00012489  0x00001b1d arg  0x0000000b , 0x00000012 
+ 00012490  0x00001b1e branch  0x000030eb 
+ 00012491  0x00001b23 arg  0x00000006 , 0x00000011 
+ 00012492  0x00001b24 arg  0x0000000c , 0x00000012 
+ 00012493  0x00001b25 call  0x000029d3 
+ 00012494  0x00001b26 fetch  0x00000005 , 0x00004160 
+ 00012495  0x00001b27 istore  0x00000005 , 0x00000005 
+ 00012496  0x00001b28 rtn 
+ 00012497  0x00001b2c arg  0x00000002 , 0x00000011 
+ 00012498  0x00001b2d arg  0x0000000d , 0x00000012 
+ 00012499  0x00001b2e call  0x000029d3 
+ 00012500  0x00001b2f setarg  0x00000006 
+ 00012501  0x00001b30 istore  0x00000001 , 0x00000005 
+ 00012502  0x00001b31 rtn 
+ 00012503  0x00001b36 arg  0x00000013 , 0x00000012 
+ 00012504  0x00001b37 branch  0x000030eb 
+ 00012505  0x00001b3a arg  0x00000014 , 0x00000012 
+ 00012506  0x00001b3b branch  0x000030dc 
+ 00012507  0x00001b3e arg  0x00000015 , 0x00000012 
+ 00012508  0x00001b40 arg  0x00000009 , 0x00000011 
+ 00012509  0x00001b41 call  0x000029d3 
+ 00012510  0x00001b42 fetch  0x00000008 , 0x000043c4 
+ 00012511  0x00001b43 istore  0x00000008 , 0x00000005 
+ 00012512  0x00001b44 rtn 
+ 00012513  0x00001b49 arg  0x00000003 , 0x00000011 
+ 00012514  0x00001b4a arg  0x00000017 , 0x00000012 
+ 00012515  0x00001b4b call  0x000029d3 
+ 00012516  0x00001b4c fetch  0x00000001 , 0x000043ba 
+ 00012517  0x00001b4d and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00012518  0x00001b4e istore  0x00000001 , 0x00000005 
+ 00012519  0x00001b4f fetch  0x00000001 , 0x000043bb 
+ 00012520  0x00001b50 and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00012521  0x00001b51 istore  0x00000001 , 0x00000005 
+ 00012522  0x00001b52 rtn 
+ 00012523  0x00001b57 arg  0x00000001 , 0x00000011 
+ 00012524  0x00001b58 branch  0x000029d3 
+ 00012525  0x00001b5e bpatchx  0x00000098 , 0x00004033 
+ 00012526  0x00001b5f bmark1  0x00000027 , 0x0000337c 
+ 00012527  0x00001b60 rtnmark0  0x00000026 
+ 00012528  0x00001b61 branch  0x000035db 
+ 00012529  0x00001b67 bpatchx  0x00000099 , 0x00004033 
+ 00012530  0x00001b68 disable  0x00000009 
+ 00012531  0x00001b69 disable  0x00000007 
+ 00012532  0x00001b6a setarg  0x00555555 
+ 00012533  0x00001b6b iforce  0x0000000f 
+ 00012534  0x00001b6c fetch  0x00000001 , 0x000045a4 
+ 00012535  0x00001b6d branch  0x0000259d 
+ 00012536  0x00001b70 bpatchx  0x0000009a , 0x00004033 
+ 00012537  0x00001b71 fetch  0x00000001 , 0x000045ce 
+ 00012538  0x00001b72 call  0x00002579 
+ 00012539  0x00001b73 fetch  0x00000004 , 0x000045a6 
+ 00012540  0x00001b74 iforce  0x00000009 
+ 00012541  0x00001b75 call  0x00002164 
+ 00012542  0x00001b76 fetcht  0x00000001 , 0x000045a4 
+ 00012543  0x00001b77 call  0x000025a2 
+ 00012544  0x00001b79 call  0x000030f1 
+ 00012545  0x00001b7a bmark0  0x0000002f , 0x00003105 
+ 00012546  0x00001b7b pulse  0x00000039 
+ 00012547  0x00001b7c nop  0x0000001e 
+ 00012548  0x00001b7d call  0x000030f1 
+ 00012549  0x00001b7f disable  0x0000002f 
+ 00012550  0x00001b80 enable  0x0000000d 
+ 00012551  0x00001b81 enable  0x00000021 
+ 00012552  0x00001b82 disable  0x00000020 
+ 00012553  0x00001b83 enable  0x00000010 
+ 00012554  0x00001b84 fetch  0x00000002 , 0x000045a2 
+ 00012555  0x00001b85 iforce  0x0000001b 
+ 00012556  0x00001b86 correlate  0x0000003e , 0x00000003 
+ 00012557  0x00001b87 nbranch  0x0000315f , 0x00000018 
+ 00012558  0x00001b88 call  0x000066e7 
+ 00012559  0x00001b89 bmark1  0x0000002f , 0x00003114 
+ 00012560  0x00001b8a fetch  0x00000001 , 0x000045e1 
+ 00012561  0x00001b8b nbranch  0x00003114 , 0x00000034 
+ 00012562  0x00001b8c disable  0x0000000d 
+ 00012563  0x00001b8d enable  0x0000000b 
+ 00012564  0x00001b8f enable  0x00000007 
+ 00012565  0x00001b90 enable  0x00000009 
+ 00012566  0x00001b91 call  0x0000315c 
+ 00012567  0x00001b92 store  0x00000001 , 0x000045c4 
+ 00012568  0x00001b93 fetcht  0x00000001 , 0x000045c3 
+ 00012569  0x00001b94 isub  0x00000002 , 0x0000003e 
+ 00012570  0x00001b95 nbranch  0x00003167 , 0x00000005 
+ 00012571  0x00001b96 bpatchx  0x0000009b , 0x00004033 
+ 00012572  0x00001b97 disable  0x00000031 
+ 00012573  0x00001b98 isolate1  0x0000002f , 0x00000000 
+ 00012574  0x00001b99 call  0x0000314e , 0x00000001 
+ 00012575  0x00001b9a branch  0x00003169 , 0x00000031 
+ 00012576  0x00001b9b call  0x0000315c 
+ 00012577  0x00001b9c store  0x00000001 , 0x0000450e 
+ 00012578  0x00001b9d bmark1  0x00000027 , 0x00003127 
+ 00012579  0x00001b9e fetch  0x00000001 , 0x0000450e 
+ 00012580  0x00001b9f fetcht  0x00000001 , 0x000045a0 
+ 00012581  0x00001ba0 icompare  0x00000007 , 0x00000002 
+ 00012582  0x00001ba1 nbranch  0x0000316b , 0x00000001 
+ 00012583  0x00001ba3 call  0x0000315c 
+ 00012584  0x00001ba4 isolate1  0x0000002f , 0x00000000 
+ 00012585  0x00001ba5 call  0x00003157 , 0x00000001 
+ 00012586  0x00001ba6 istore  0x00000001 , 0x00000005 
+ 00012587  0x00001ba7 rshift3  0x0000003f , 0x0000003f 
+ 00012588  0x00001ba8 sub  0x0000003f , 0x0000001f , 0x0000003e 
+ 00012589  0x00001ba9 nbranch  0x0000316d , 0x00000002 
+ 00012590  0x00001baa copy  0x0000003f , 0x00000039 
+ 00012591  0x00001bab branch  0x00003133 , 0x00000005 
+ 00012592  0x00001bad call  0x0000315c 
+ 00012593  0x00001bae istore  0x00000001 , 0x00000005 
+ 00012594  0x00001baf loop  0x00003130 
+ 00012595  0x00001bb1 bmark1  0x00000027 , 0x00003138 
+ 00012596  0x00001bb2 copy  0x00000005 , 0x00000011 
+ 00012597  0x00001bb3 call  0x0000315c 
+ 00012598  0x00001bb4 store  0x00000001 , 0x000045ea 
+ 00012599  0x00001bb5 copy  0x00000011 , 0x00000005 
+ 00012600  0x00001bb7 parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00012601  0x00001bb8 rshift32  0x0000003f , 0x0000003f 
+ 00012602  0x00001bb9 rshift16  0x0000003f , 0x0000003f 
+ 00012603  0x00001bba istore  0x00000003 , 0x00000005 
+ 00012604  0x00001bbb fetch  0x00000001 , 0x000045e1 
+ 00012605  0x00001bbc nbranch  0x0000314c , 0x00000034 
+ 00012606  0x00001bbd disable  0x0000000b 
+ 00012607  0x00001bbf isolate1  0x00000027 , 0x00000000 
+ 00012608  0x00001bc0 call  0x000035a0 , 0x00000001 
+ 00012609  0x00001bc1 branch  0x0000316f , 0x00000006 
+ 00012610  0x00001bc2 call  0x000066e6 
+ 00012611  0x00001bc3 bpatchx  0x0000009c , 0x00004033 
+ 00012612  0x00001bc4 enable  0x0000002f 
+ 00012613  0x00001bc5 call  0x0000268f 
+ 00012614  0x00001bc6 rtnmark1  0x00000027 
+ 00012615  0x00001bc7 fetch  0x00000001 , 0x000045ea 
+ 00012616  0x00001bc8 fetcht  0x00000001 , 0x00004641 
+ 00012617  0x00001bc9 isub  0x00000002 , 0x0000003e 
+ 00012618  0x00001bca call  0x00007db4 , 0x00000002 
+ 00012619  0x00001bcb branch  0x000035a3 
+ 00012620  0x00001bce disable  0x0000000d 
+ 00012621  0x00001bcf branch  0x0000313f 
+ 00012622  0x00001bd3 call  0x0000315c 
+ 00012623  0x00001bd4 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00012624  0x00001bd5 branch  0x00007dc4 , 0x00000002 
+ 00012625  0x00001bd6 increase  0xfffffffe , 0x0000003f 
+ 00012626  0x00001bd7 bmark1  0x00000027 , 0x00003155 
+ 00012627  0x00001bd8 branch  0x00007dc4 , 0x00000034 
+ 00012628  0x00001bd9 increase  0xffffffff , 0x0000003f 
+ 00012629  0x00001bdb store  0x00000001 , 0x00000656 
+ 00012630  0x00001bdc rtn 
+ 00012631  0x00001bdf and_into  0x00000007 , 0x0000003f 
+ 00012632  0x00001be0 fetcht  0x00000001 , 0x00000656 
+ 00012633  0x00001be1 lshift3  0x00000002 , 0x00000002 
+ 00012634  0x00001be2 ior  0x00000002 , 0x0000003f 
+ 00012635  0x00001be3 rtn 
+ 00012636  0x00001be6 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00012637  0x00001be7 rshift3  0x0000000c , 0x0000003f 
+ 00012638  0x00001be8 rtn 
+ 00012639  0x00001beb jam  0x00000001 , 0x000045e2 
+ 00012640  0x00001bec isolate1  0x00000027 , 0x00000000 
+ 00012641  0x00001bed call  0x000035bb , 0x00000001 
+ 00012642  0x00001bef bpatchx  0x0000009d , 0x00004033 
+ 00012643  0x00001bf0 call  0x00002591 
+ 00012644  0x00001bf1 disable  0x0000001b 
+ 00012645  0x00001bf2 disable  0x0000000b 
+ 00012646  0x00001bf3 branch  0x000020cf 
+ 00012647  0x00001bf6 jam  0x00000002 , 0x000045e2 
+ 00012648  0x00001bf7 branch  0x00003162 
+ 00012649  0x00001bfa jam  0x00000003 , 0x000045e2 
+ 00012650  0x00001bfb branch  0x00003162 
+ 00012651  0x00001bfe jam  0x00000004 , 0x000045e2 
+ 00012652  0x00001bff branch  0x00003162 
+ 00012653  0x00001c02 jam  0x00000005 , 0x000045e2 
+ 00012654  0x00001c03 branch  0x00003162 
+ 00012655  0x00001c06 jam  0x00000006 , 0x000045e2 
+ 00012656  0x00001c07 branch  0x00003162 
+ 00012657  0x00001c0a call  0x00002164 
+ 00012658  0x00001c0b fetcht  0x00000001 , 0x000045a4 
+ 00012659  0x00001c0c branch  0x000021ff 
+ 00012660  0x00001c0f bpatchx  0x0000009e , 0x00004033 
+ 00012661  0x00001c10 fetch  0x00000001 , 0x000045cf 
+ 00012662  0x00001c11 call  0x00002579 
+ 00012663  0x00001c12 fetch  0x00000004 , 0x000045a6 
+ 00012664  0x00001c13 iforce  0x00000009 
+ 00012665  0x00001c14 call  0x000030f1 
+ 00012666  0x00001c15 call  0x00003171 
+ 00012667  0x00001c16 set1  0x00000000 , 0x00000015 
+ 00012668  0x00001c17 enable  0x0000001d 
+ 00012669  0x00001c18 enable  0x00000020 
+ 00012670  0x00001c19 disable  0x00000021 
+ 00012671  0x00001c1a call  0x000066ed 
+ 00012672  0x00001c1b disable  0x0000003a 
+ 00012673  0x00001c1c bmark1  0x0000002f , 0x000031a6 
+ 00012674  0x00001c1d bmark1  0x0000002d , 0x000031b8 
+ 00012675  0x00001c1e rshift16  0x00000009 , 0x0000003f 
+ 00012676  0x00001c1f rshift8  0x0000003f , 0x0000003f 
+ 00012677  0x00001c20 rshift4  0x0000003f , 0x0000003f 
+ 00012678  0x00001c21 inject  0x00000003 , 0x00000028 
+ 00012679  0x00001c23 bpatchx  0x0000009f , 0x00004033 
+ 00012680  0x00001c24 bmark1  0x0000002f , 0x0000318d 
+ 00012681  0x00001c25 fetch  0x00000001 , 0x000045e1 
+ 00012682  0x00001c26 nbranch  0x0000318d , 0x00000034 
+ 00012683  0x00001c27 disable  0x0000001d 
+ 00012684  0x00001c28 enable  0x0000001b 
+ 00012685  0x00001c2a enable  0x00000007 
+ 00012686  0x00001c2b enable  0x00000009 
+ 00012687  0x00001c2c fetch  0x00000001 , 0x000045a1 
+ 00012688  0x00001c2d iforce  0x00000039 
+ 00012689  0x00001c2e arg  0x00004550 , 0x00000006 
+ 00012690  0x00001c30 ifetch  0x00000001 , 0x00000006 
+ 00012691  0x00001c31 inject  0x00000003 , 0x00000008 
+ 00012692  0x00001c32 loop  0x00003192 
+ 00012693  0x00001c33 enable  0x00000008 
+ 00012694  0x00001c34 inject  0x00000003 , 0x00000018 
+ 00012695  0x00001c35 disable  0x00000008 
+ 00012696  0x00001c36 bmark0  0x0000002f , 0x0000319c 
+ 00012697  0x00001c37 disable  0x00000007 
+ 00012698  0x00001c38 setarg  0x00000000 
+ 00012699  0x00001c39 inject  0x00000003 , 0x00000003 
+ 00012700  0x00001c3b until  0x0000003e , 0x00000027 
+ 00012701  0x00001c3c nop  0x00000064 
+ 00012702  0x00001c3d disable  0x0000003a 
+ 00012703  0x00001c3e disable  0x0000001d 
+ 00012704  0x00001c3f fetch  0x00000001 , 0x000045e1 
+ 00012705  0x00001c40 nbranch  0x000031a3 , 0x00000034 
+ 00012706  0x00001c41 disable  0x0000001b 
+ 00012707  0x00001c43 disable  0x00000038 
+ 00012708  0x00001c44 call  0x00002164 
+ 00012709  0x00001c45 branch  0x000066eb 
+ 00012710  0x00001c48 arg  0x0000000a , 0x00000039 
+ 00012711  0x00001c4a setarg  0x0000003c 
+ 00012712  0x00001c4b inject  0x00000003 , 0x00000008 
+ 00012713  0x00001c4c loop  0x000031a7 
+ 00012714  0x00001c4d disable  0x0000001d 
+ 00012715  0x00001c4e enable  0x00000038 
+ 00012716  0x00001c4f rshift16  0x00000009 , 0x0000003f 
+ 00012717  0x00001c50 rshift16  0x0000003f , 0x0000003f 
+ 00012718  0x00001c51 rshift4  0x0000003f , 0x0000003f 
+ 00012719  0x00001c52 inject  0x00000003 , 0x00000020 
+ 00012720  0x00001c53 bmark1  0x0000002e , 0x000031b5 
+ 00012721  0x00001c55 setarg  0x00000001 
+ 00012722  0x00001c56 inject  0x00000003 , 0x00000005 
+ 00012723  0x00001c57 enable  0x0000003a 
+ 00012724  0x00001c58 branch  0x00003187 
+ 00012725  0x00001c5b setarg  0x00000000 
+ 00012726  0x00001c5c inject  0x00000003 , 0x00000005 
+ 00012727  0x00001c5d branch  0x00003187 
+ 00012728  0x00001c60 fetch  0x00000001 , 0x00004148 
+ 00012729  0x00001c61 rshift  0x0000003f , 0x00000039 
+ 00012730  0x00001c63 nop  0x00000002 
+ 00012731  0x00001c64 loop  0x000031ba 
+ 00012732  0x00001c66 rshift16  0x00000009 , 0x0000003f 
+ 00012733  0x00001c67 rshift8  0x0000003f , 0x0000003f 
+ 00012734  0x00001c68 rshift4  0x0000003f , 0x00000002 
+ 00012735  0x00001c69 copy  0x00000002 , 0x0000003f 
+ 00012736  0x00001c6a inject  0x00000003 , 0x00000008 
+ 00012737  0x00001c6b copy  0x00000002 , 0x0000003f 
+ 00012738  0x00001c6c inject  0x00000003 , 0x00000028 
+ 00012739  0x00001c6d branch  0x00003187 
+ 00012740  0x00001c76 bpatchx  0x000000a0 , 0x00004034 
+ 00012741  0x00001c77 fetch  0x00000001 , 0x000045cf 
+ 00012742  0x00001c78 bbit1  0x00000002 , 0x000031e5 
+ 00012743  0x00001c7a fetch  0x00000001 , 0x0000459f 
+ 00012744  0x00001c7b increase  0x00000003 , 0x0000003f 
+ 00012745  0x00001c7c store  0x00000001 , 0x000045a1 
+ 00012746  0x00001c7e fetch  0x00000001 , 0x000045c3 
+ 00012747  0x00001c7f store  0x00000001 , 0x00004550 
+ 00012748  0x00001c81 fetch  0x00000001 , 0x000045a0 
+ 00012749  0x00001c82 istore  0x00000001 , 0x00000005 
+ 00012750  0x00001c84 fetch  0x00000001 , 0x0000459f 
+ 00012751  0x00001c86 lshift3  0x0000003f , 0x0000003f 
+ 00012752  0x00001c87 fetcht  0x00000001 , 0x00004595 
+ 00012753  0x00001c88 and  0x00000002 , 0x00000003 , 0x00000002 
+ 00012754  0x00001c89 lshift  0x00000002 , 0x00000002 
+ 00012755  0x00001c8a ior  0x00000002 , 0x0000003f 
+ 00012756  0x00001c8b fetcht  0x00000001 , 0x00004596 
+ 00012757  0x00001c8c iadd  0x00000002 , 0x0000003f 
+ 00012758  0x00001c8d istore  0x00000001 , 0x00000005 
+ 00012759  0x00001c8f fetch  0x00000001 , 0x0000459f 
+ 00012760  0x00001c90 iforce  0x00000039 
+ 00012761  0x00001c91 arg  0x00004530 , 0x00000006 
+ 00012762  0x00001c92 call  0x00007cdc 
+ 00012763  0x00001c93 bpatchx  0x000000a1 , 0x00004034 
+ 00012764  0x00001c95 rtnmark0  0x00000027 
+ 00012765  0x00001c96 fetch  0x00000001 , 0x00000035 
+ 00012766  0x00001c97 istore  0x00000001 , 0x00000005 
+ 00012767  0x00001c98 fetch  0x00000001 , 0x000045cf 
+ 00012768  0x00001c99 rtnbit1  0x00000002 
+ 00012769  0x00001c9a fetch  0x00000001 , 0x000045a1 
+ 00012770  0x00001c9b increase  0x00000001 , 0x0000003f 
+ 00012771  0x00001c9c store  0x00000001 , 0x000045a1 
+ 00012772  0x00001c9d rtn 
+ 00012773  0x00001ca1 fetch  0x00000001 , 0x0000459f 
+ 00012774  0x00001ca2 increase  0x00000004 , 0x0000003f 
+ 00012775  0x00001ca3 bmark0  0x00000027 , 0x000031e9 
+ 00012776  0x00001ca4 increase  0x00000001 , 0x0000003f 
+ 00012777  0x00001ca6 store  0x00000001 , 0x000045a1 
+ 00012778  0x00001ca8 fetch  0x00000001 , 0x000045c3 
+ 00012779  0x00001ca9 store  0x00000001 , 0x00004550 
+ 00012780  0x00001cab fetch  0x00000001 , 0x000045a1 
+ 00012781  0x00001cac increase  0xfffffffe , 0x0000003f 
+ 00012782  0x00001cad istore  0x00000001 , 0x00000005 
+ 00012783  0x00001caf fetch  0x00000001 , 0x000045a0 
+ 00012784  0x00001cb0 istore  0x00000001 , 0x00000005 
+ 00012785  0x00001cb1 setarg  0x00000000 
+ 00012786  0x00001cb2 branch  0x000031cf 
+ 00012787  0x00001cb5 bpatchx  0x000000a2 , 0x00004034 
+ 00012788  0x00001cb7 fetch  0x00000001 , 0x0000450f 
+ 00012789  0x00001cb8 rshift3  0x0000003f , 0x0000003f 
+ 00012790  0x00001cb9 store  0x00000001 , 0x00004594 
+ 00012791  0x00001cbb increase  0x00000001 , 0x0000003f 
+ 00012792  0x00001cbc arg  0x0000450f , 0x00000006 
+ 00012793  0x00001cbd iadd  0x00000006 , 0x00000006 
+ 00012794  0x00001cbe ifetch  0x00000003 , 0x00000006 
+ 00012795  0x00001cbf store  0x00000003 , 0x00004597 
+ 00012796  0x00001cc1 fetch  0x00000001 , 0x0000450f 
+ 00012797  0x00001cc2 rshift  0x0000003f , 0x0000003f 
+ 00012798  0x00001cc3 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00012799  0x00001cc4 store  0x00000001 , 0x0000459d 
+ 00012800  0x00001cc5 rtn 
+ 00012801  0x00001cc9 bpatchx  0x000000a3 , 0x00004034 
+ 00012802  0x00001cca fetcht  0x00000001 , 0x000045a5 
+ 00012803  0x00001ccb call  0x00003206 
+ 00012804  0x00001ccc storet  0x00000001 , 0x000045a5 
+ 00012805  0x00001ccd rtn 
+ 00012806  0x00001cd0 bpatchx  0x000000a4 , 0x00004034 
+ 00012807  0x00001cd1 call  0x0000320b 
+ 00012808  0x00001cd2 increase  0x00000001 , 0x00000002 
+ 00012809  0x00001cd3 and_into  0x00000003 , 0x00000002 
+ 00012810  0x00001cd4 rtn 
+ 00012811  0x00001cd7 bpatchx  0x000000a5 , 0x00004034 
+ 00012812  0x00001cd8 fetch  0x00000001 , 0x000045a6 
+ 00012813  0x00001cd9 and_into  0x00000003 , 0x0000003f 
+ 00012814  0x00001cda mul32  0x0000003f , 0x00000004 , 0x00000011 
+ 00012815  0x00001cdb setarg  0x000045aa 
+ 00012816  0x00001cdc iadd  0x00000011 , 0x0000003f 
+ 00012817  0x00001cdd iadd  0x00000002 , 0x00000006 
+ 00012818  0x00001cde ifetch  0x00000001 , 0x00000006 
+ 00012819  0x00001cdf store  0x00000001 , 0x000045a4 
+ 00012820  0x00001ce0 rtn 
+ 00012821  0x00001ce4 store  0x00000004 , 0x000045a6 
+ 00012822  0x00001ce6 bpatchx  0x000000a6 , 0x00004034 
+ 00012823  0x00001ce8 arg  0x00000000 , 0x00000011 
+ 00012824  0x00001ce9 arg  0x00000004 , 0x00000039 
+ 00012825  0x00001cea arg  0x000045a6 , 0x00000006 
+ 00012826  0x00001cec ifetch  0x00000001 , 0x00000006 
+ 00012827  0x00001ced iadd  0x00000011 , 0x00000011 
+ 00012828  0x00001cee loop  0x0000321a 
+ 00012829  0x00001cef copy  0x00000011 , 0x0000003f 
+ 00012830  0x00001cf0 store  0x00000002 , 0x000045c1 
+ 00012831  0x00001cf1 fetch  0x00000001 , 0x000045c1 
+ 00012832  0x00001cf2 fetcht  0x00000001 , 0x000045c2 
+ 00012833  0x00001cf3 iadd  0x00000002 , 0x0000003f 
+ 00012834  0x00001cf4 store  0x00000001 , 0x000045c3 
+ 00012835  0x00001cf5 rtn 
+ 00012836  0x00001cf9 bpatchx  0x000000a7 , 0x00004034 
+ 00012837  0x00001cfa call  0x00007dbe 
+ 00012838  0x00001cfb fetcht  0x00000004 , 0x000045ba 
+ 00012839  0x00001cfc copy  0x00000022 , 0x0000003f 
+ 00012840  0x00001cfd isub  0x00000002 , 0x0000003e 
+ 00012841  0x00001cfe ncall  0x00003234 , 0x00000002 
+ 00012842  0x00001cff copy  0x0000003f , 0x00000012 
+ 00012843  0x00001d00 fetch  0x00000004 , 0x000045ba 
+ 00012844  0x00001d01 fetcht  0x00000001 , 0x000045be 
+ 00012845  0x00001d02 iadd  0x00000002 , 0x00000002 
+ 00012846  0x00001d03 copy  0x00000012 , 0x0000003f 
+ 00012847  0x00001d04 isub  0x00000002 , 0x0000003e 
+ 00012848  0x00001d05 nrtn  0x00000002 
+ 00012849  0x00001d06 set0  0x0000001c , 0x0000003f 
+ 00012850  0x00001d07 store  0x00000004 , 0x000045ba 
+ 00012851  0x00001d08 branch  0x00007dbc 
+ 00012852  0x00001d0b rtn  0x00000005 
+ 00012853  0x00001d0c set1  0x0000001c , 0x0000003f 
+ 00012854  0x00001d0d rtn 
+ 00012855  0x00001d10 setarg  0x00000000 
+ 00012856  0x00001d11 store  0x00000004 , 0x000045ba 
+ 00012857  0x00001d12 rtn 
+ 00012858  0x00001d1b bpatchx  0x000000a8 , 0x00004035 
+ 00012859  0x00001d1c setsect  0x00000000 , 0x00001300 
+ 00012860  0x00001d1d setsect  0x00000001 , 0x0001908b 
+ 00012861  0x00001d1e setsect  0x00000002 , 0x00036150 
+ 00012862  0x00001d1f setsect  0x00000003 , 0x00003d20 
+ 00012863  0x00001d20 store  0x00000009 , 0x000045aa 
+ 00012864  0x00001d21 setsect  0x00000000 , 0x00003a1a 
+ 00012865  0x00001d22 setsect  0x00000001 , 0x0000c453 
+ 00012866  0x00001d23 setsect  0x00000002 , 0x0000d312 
+ 00012867  0x00001d24 setsect  0x00000003 , 0x00000001 
+ 00012868  0x00001d25 istore  0x00000007 , 0x00000005 
+ 00012869  0x00001d26 fetch  0x00000001 , 0x000045d0 
+ 00012870  0x00001d27 rtn  0x00000034 
+ 00012871  0x00001d28 arg  0x000045d1 , 0x00000006 
+ 00012872  0x00001d29 arg  0x000045aa , 0x00000005 
+ 00012873  0x00001d2a branch  0x00007c91 
+ 00012874  0x00001d33 bpatchx  0x000000a9 , 0x00004035 
+ 00012875  0x00001d34 setarg  0x004e001e 
+ 00012876  0x00001d35 store  0x00000003 , 0x000045d2 
+ 00012877  0x00001d36 setarg  0x00032303 
+ 00012878  0x00001d37 istore  0x00000003 , 0x00000005 
+ 00012879  0x00001d38 setarg  0x00250642 
+ 00012880  0x00001d39 istore  0x00000003 , 0x00000005 
+ 00012881  0x00001d3a setarg  0x00094c06 
+ 00012882  0x00001d3b istore  0x00000003 , 0x00000005 
+ 00012883  0x00001d3c setarg  0x003c0927 
+ 00012884  0x00001d3d istore  0x00000003 , 0x00000005 
+ 00012885  0x00001d3e jam  0x00000001 , 0x000045d0 
+ 00012886  0x00001d3f rtn 
+ 00012887  0x00001d43 bpatchx  0x000000aa , 0x00004035 
+ 00012888  0x00001d44 arg  0x00006978 , 0x00000002 
+ 00012889  0x00001d45 bmark1  0x00000027 , 0x0000325e 
+ 00012890  0x00001d46 arg  0x000012c0 , 0x00000002 
+ 00012891  0x00001d47 fetch  0x00000001 , 0x000045ce 
+ 00012892  0x00001d48 bbit0  0x00000002 , 0x0000325e 
+ 00012893  0x00001d49 arg  0x00002ee0 , 0x00000002 
+ 00012894  0x00001d4b storet  0x00000002 , 0x000045a2 
+ 00012895  0x00001d4c rtn 
+ 00012896  0x00001d4f jam  0x00000001 , 0x000045ce 
+ 00012897  0x00001d50 jam  0x00000001 , 0x000045cf 
+ 00012898  0x00001d51 rtn 
+ 00012899  0x00001d54 jam  0x00000002 , 0x000045ce 
+ 00012900  0x00001d55 jam  0x00000002 , 0x000045cf 
+ 00012901  0x00001d56 rtn 
+ 00012902  0x00001d6f bpatchx  0x000000ab , 0x00004035 
+ 00012903  0x00001d70 jam  0x0000004e , 0x000045e7 
+ 00012904  0x00001d71 setarg  0x00101520 
+ 00012905  0x00001d72 store  0x00000003 , 0x000045e3 
+ 00012906  0x00001d73 setarg  0x00000005 
+ 00012907  0x00001d74 branch  0x00007dce 
+ 00012908  0x00001d7c arg  0x000045ef , 0x00000013 
+ 00012909  0x00001d7d arg  0x00003653 , 0x00000012 
+ 00012910  0x00001d7e branch  0x0000375c 
+ 00012911  0x00001d81 set1  0x00000026 , 0x00000000 
+ 00012912  0x00001d82 fetch  0x00000001 , 0x00004613 
+ 00012913  0x00001d83 set0  0x00000002 , 0x0000003f 
+ 00012914  0x00001d84 set1  0x00000001 , 0x0000003f 
+ 00012915  0x00001d85 store  0x00000001 , 0x00004613 
+ 00012916  0x00001d86 setarg  0x00000000 
+ 00012917  0x00001d87 store  0x00000002 , 0x000045f5 
+ 00012918  0x00001d88 fetch  0x00000002 , 0x000045ed 
+ 00012919  0x00001d89 store  0x00000002 , 0x000045ef 
+ 00012920  0x00001d8a jam  0x00000000 , 0x000045ec 
+ 00012921  0x00001d8b call  0x000032b4 
+ 00012922  0x00001d8d jam  0x00000000 , 0x00004595 
+ 00012923  0x00001d8e fetch  0x00000001 , 0x000045e7 
+ 00012924  0x00001d8f store  0x00000001 , 0x000045a4 
+ 00012925  0x00001d90 fetch  0x00000001 , 0x000045e8 
+ 00012926  0x00001d91 store  0x00000001 , 0x00004141 
+ 00012927  0x00001d92 fetch  0x00000004 , 0x000045e3 
+ 00012928  0x00001d93 branch  0x00003215 
+ 00012929  0x00001d97 bpatchx  0x000000ac , 0x00004035 
+ 00012930  0x00001d98 jam  0x00000000 , 0x000045f9 
+ 00012931  0x00001d99 fetch  0x00000002 , 0x000045f1 
+ 00012932  0x00001d9a increase  0x00000001 , 0x0000003f 
+ 00012933  0x00001d9b store  0x00000002 , 0x000045f1 
+ 00012934  0x00001d9c fetch  0x00000001 , 0x000045f1 
+ 00012935  0x00001d9d and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00012936  0x00001d9e nrtn  0x00000034 
+ 00012937  0x00001d9f fetch  0x00000001 , 0x000045eb 
+ 00012938  0x00001da0 beq  0x000000ff , 0x000032d6 
+ 00012939  0x00001da1 beq  0x00000001 , 0x00003290 
+ 00012940  0x00001da2 beq  0x00000002 , 0x00003292 
+ 00012941  0x00001da3 beq  0x00000003 , 0x00003298 
+ 00012942  0x00001da4 beq  0x00000004 , 0x0000329e 
+ 00012943  0x00001da5 rtn 
+ 00012944  0x00001da8 jam  0x000000ff , 0x00004530 
+ 00012945  0x00001da9 branch  0x0000329f 
+ 00012946  0x00001dac fetch  0x00000001 , 0x000045c5 
+ 00012947  0x00001dad branch  0x00003296 , 0x00000034 
+ 00012948  0x00001dae fetch  0x00000004 , 0x0000461b 
+ 00012949  0x00001daf call  0x00003215 
+ 00012950  0x00001db1 jam  0x000000aa , 0x00004530 
+ 00012951  0x00001db2 branch  0x0000329f 
+ 00012952  0x00001db5 jam  0x00000055 , 0x00004530 
+ 00012953  0x00001db6 fetch  0x00000001 , 0x000045c5 
+ 00012954  0x00001db7 branch  0x0000329f , 0x00000034 
+ 00012955  0x00001db8 fetch  0x00000004 , 0x000045ff 
+ 00012956  0x00001db9 store  0x00000004 , 0x00004532 
+ 00012957  0x00001dba branch  0x000032a1 
+ 00012958  0x00001dbd jam  0x00000022 , 0x00004530 
+ 00012959  0x00001dbf fetch  0x00000004 , 0x0000461b 
+ 00012960  0x00001dc0 store  0x00000004 , 0x00004532 
+ 00012961  0x00001dc2 fetch  0x00000001 , 0x000045a0 
+ 00012962  0x00001dc3 and_into  0x00000007 , 0x0000003f 
+ 00012963  0x00001dc4 store  0x00000001 , 0x00004531 
+ 00012964  0x00001dc5 jam  0x00000000 , 0x00004536 
+ 00012965  0x00001dc6 jam  0x00000007 , 0x0000459f 
+ 00012966  0x00001dc7 call  0x000031c4 
+ 00012967  0x00001dc8 call  0x0000362a 
+ 00012968  0x00001dc9 nrtn  0x00000018 
+ 00012969  0x00001dca nrtn  0x0000002f 
+ 00012970  0x00001dcb call  0x00003553 
+ 00012971  0x00001dcc call  0x00003647 
+ 00012972  0x00001dcd bpatchx  0x000000ad , 0x00004035 
+ 00012973  0x00001dce fetch  0x00000001 , 0x000045eb 
+ 00012974  0x00001dcf rtneq  0x000000ff 
+ 00012975  0x00001dd0 beq  0x00000001 , 0x000032b9 
+ 00012976  0x00001dd1 beq  0x00000002 , 0x000032bb 
+ 00012977  0x00001dd2 beq  0x00000003 , 0x000032c1 
+ 00012978  0x00001dd3 beq  0x00000004 , 0x000032c9 
+ 00012979  0x00001dd4 rtn 
+ 00012980  0x00001dd7 jam  0x00000002 , 0x000045eb 
+ 00012981  0x00001dd8 fetch  0x00000001 , 0x000045c5 
+ 00012982  0x00001dd9 rtn  0x00000034 
+ 00012983  0x00001dda jam  0x00000001 , 0x000045eb 
+ 00012984  0x00001ddb rtn 
+ 00012985  0x00001dde jam  0x00000002 , 0x000045eb 
+ 00012986  0x00001ddf branch  0x00003625 
+ 00012987  0x00001de2 fetch  0x00000001 , 0x000045c5 
+ 00012988  0x00001de3 branch  0x000032bf , 0x00000034 
+ 00012989  0x00001de4 fetch  0x00000004 , 0x00004576 
+ 00012990  0x00001de5 store  0x00000004 , 0x000045ff 
+ 00012991  0x00001de7 jam  0x00000003 , 0x000045eb 
+ 00012992  0x00001de8 branch  0x00003625 
+ 00012993  0x00001deb fetch  0x00000001 , 0x000045c5 
+ 00012994  0x00001dec branch  0x000032c7 , 0x00000034 
+ 00012995  0x00001ded fetch  0x00000004 , 0x00004576 
+ 00012996  0x00001dee fetcht  0x00000004 , 0x0000461b 
+ 00012997  0x00001def isub  0x00000002 , 0x0000003e 
+ 00012998  0x00001df0 nrtn  0x00000005 
+ 00012999  0x00001df2 jam  0x00000004 , 0x000045eb 
+ 00013000  0x00001df3 branch  0x00003625 
+ 00013001  0x00001df6 fetch  0x00000001 , 0x000045c5 
+ 00013002  0x00001df7 branch  0x000032cf , 0x00000034 
+ 00013003  0x00001df8 fetch  0x00000004 , 0x00004576 
+ 00013004  0x00001df9 fetcht  0x00000004 , 0x000045ff 
+ 00013005  0x00001dfa isub  0x00000002 , 0x0000003e 
+ 00013006  0x00001dfb nrtn  0x00000005 
+ 00013007  0x00001dfd jam  0x000000ff , 0x000045eb 
+ 00013008  0x00001dfe jam  0x00000039 , 0x0000064d 
+ 00013009  0x00001dff call  0x00007819 
+ 00013010  0x00001e00 setarg  0x00000000 
+ 00013011  0x00001e01 store  0x00000002 , 0x000045ef 
+ 00013012  0x00001e02 fetch  0x00000004 , 0x00004576 
+ 00013013  0x00001e03 call  0x00003215 
+ 00013014  0x00001e05 fetch  0x00000001 , 0x00004613 
+ 00013015  0x00001e06 set0  0x00000001 , 0x0000003f 
+ 00013016  0x00001e07 store  0x00000001 , 0x00004613 
+ 00013017  0x00001e08 branch  0x00003625 
+ 00013018  0x00001e23 jam  0x00000001 , 0x0000462d 
+ 00013019  0x00001e24 jam  0x00000000 , 0x0000462c 
+ 00013020  0x00001e25 rtn 
+ 00013021  0x00001e28 fetch  0x00000001 , 0x0000462c 
+ 00013022  0x00001e29 rtnbit1  0x00000001 
+ 00013023  0x00001e2a set1  0x00000001 , 0x0000003f 
+ 00013024  0x00001e2b store  0x00000001 , 0x0000462c 
+ 00013025  0x00001e2c setarg  0x00000000 
+ 00013026  0x00001e2d store  0x00000003 , 0x000045ea 
+ 00013027  0x00001e2e store  0x00000001 , 0x000045f5 
+ 00013028  0x00001e2f store  0x00000001 , 0x000045f6 
+ 00013029  0x00001e30 store  0x00000004 , 0x00004643 
+ 00013030  0x00001e31 jam  0x00000001 , 0x00004628 
+ 00013031  0x00001e32 branch  0x0000327a 
+ 00013032  0x00001e36 jam  0x00000008 , 0x0000459f 
+ 00013033  0x00001e37 arg  0x000045ed , 0x00000006 
+ 00013034  0x00001e38 arg  0x00004530 , 0x00000005 
+ 00013035  0x00001e39 branch  0x00007c8b 
+ 00013036  0x00001e3d bpatchx  0x000000ae , 0x00004035 
+ 00013037  0x00001e3e call  0x00003397 
+ 00013038  0x00001e3f call  0x000030f8 
+ 00013039  0x00001e40 nbranch  0x00003397 , 0x0000002f 
+ 00013040  0x00001e41 call  0x000032fb 
+ 00013041  0x00001e42 call  0x000033ca 
+ 00013042  0x00001e43 call  0x00003372 
+ 00013043  0x00001e44 call  0x00003e80 
+ 00013044  0x00001e45 fetch  0x00000001 , 0x000045c5 
+ 00013045  0x00001e46 rtn  0x00000034 
+ 00013046  0x00001e47 fetch  0x00000004 , 0x00004643 
+ 00013047  0x00001e48 rtn  0x00000034 
+ 00013048  0x00001e49 branch  0x00003215 
+ 00013049  0x00001e4c call  0x00003397 
+ 00013050  0x00001e4d branch  0x00003162 
+ 00013051  0x00001e50 jam  0x00000005 , 0x00004639 
+ 00013052  0x00001e51 arg  0x0000450e , 0x00000006 
+ 00013053  0x00001e52 arg  0x000045ff , 0x00000005 
+ 00013054  0x00001e53 call  0x00007c8b 
+ 00013055  0x00001e54 bpatchx  0x000000af , 0x00004035 
+ 00013056  0x00001e55 fetch  0x00000001 , 0x00004601 
+ 00013057  0x00001e56 beq  0x000000aa , 0x00003306 
+ 00013058  0x00001e57 beq  0x00000055 , 0x00003317 
+ 00013059  0x00001e58 beq  0x00000022 , 0x00003338 
+ 00013060  0x00001e59 beq  0x000000ff , 0x00003573 
+ 00013061  0x00001e5a rtn 
+ 00013062  0x00001e5e fetch  0x00000001 , 0x00004602 
+ 00013063  0x00001e5f beq  0x00000001 , 0x0000330a 
+ 00013064  0x00001e60 beq  0x00000002 , 0x00003312 
+ 00013065  0x00001e61 rtn 
+ 00013066  0x00001e64 fetch  0x00000001 , 0x000045f5 
+ 00013067  0x00001e65 nrtn  0x00000034 
+ 00013068  0x00001e66 jam  0x00000001 , 0x000045ea 
+ 00013069  0x00001e68 jam  0x00000001 , 0x000045ed 
+ 00013070  0x00001e6a jam  0x00000080 , 0x000045ee 
+ 00013071  0x00001e6b fetch  0x00000006 , 0x00004508 
+ 00013072  0x00001e6c store  0x00000006 , 0x000045ef 
+ 00013073  0x00001e6d rtn 
+ 00013074  0x00001e70 fetch  0x00000001 , 0x000045f6 
+ 00013075  0x00001e71 nrtn  0x00000034 
+ 00013076  0x00001e72 jam  0x00000001 , 0x000045eb 
+ 00013077  0x00001e74 jam  0x00000002 , 0x000045ed 
+ 00013078  0x00001e75 branch  0x0000330e 
+ 00013079  0x00001e79 fetch  0x00000001 , 0x000045c5 
+ 00013080  0x00001e7a branch  0x0000331d , 0x00000034 
+ 00013081  0x00001e7b fetch  0x00000004 , 0x00004603 
+ 00013082  0x00001e7c fetcht  0x00000004 , 0x00004508 
+ 00013083  0x00001e7d isub  0x00000002 , 0x0000003e 
+ 00013084  0x00001e7e nrtn  0x00000005 
+ 00013085  0x00001e80 fetch  0x00000001 , 0x00004602 
+ 00013086  0x00001e81 beq  0x00000001 , 0x00003321 
+ 00013087  0x00001e82 beq  0x00000002 , 0x0000332e 
+ 00013088  0x00001e83 rtn 
+ 00013089  0x00001e86 fetch  0x00000001 , 0x000045f5 
+ 00013090  0x00001e87 nrtn  0x00000034 
+ 00013091  0x00001e88 fetch  0x00000001 , 0x000045ea 
+ 00013092  0x00001e89 beq  0x00000001 , 0x00003326 
+ 00013093  0x00001e8a rtn 
+ 00013094  0x00001e8c jam  0x00000002 , 0x000045ea 
+ 00013095  0x00001e8d fetch  0x00000001 , 0x000045c5 
+ 00013096  0x00001e8e branch  0x0000330d , 0x00000034 
+ 00013097  0x00001e90 jam  0x00000001 , 0x000045ed 
+ 00013098  0x00001e92 jam  0x00000080 , 0x000045ee 
+ 00013099  0x00001e93 fetch  0x00000004 , 0x00004643 
+ 00013100  0x00001e94 store  0x00000004 , 0x000045ef 
+ 00013101  0x00001e95 branch  0x00007dbc 
+ 00013102  0x00001e98 fetch  0x00000001 , 0x000045f6 
+ 00013103  0x00001e99 nrtn  0x00000034 
+ 00013104  0x00001e9a fetch  0x00000001 , 0x000045eb 
+ 00013105  0x00001e9b beq  0x00000001 , 0x00003333 
+ 00013106  0x00001e9c rtn 
+ 00013107  0x00001e9e jam  0x00000002 , 0x000045eb 
+ 00013108  0x00001e9f fetch  0x00000001 , 0x000045c5 
+ 00013109  0x00001ea0 branch  0x00003315 , 0x00000034 
+ 00013110  0x00001ea1 jam  0x00000002 , 0x000045ed 
+ 00013111  0x00001ea2 branch  0x0000332a 
+ 00013112  0x00001ea6 fetch  0x00000001 , 0x000045c5 
+ 00013113  0x00001ea7 branch  0x0000333e , 0x00000034 
+ 00013114  0x00001ea8 fetch  0x00000004 , 0x00004603 
+ 00013115  0x00001ea9 fetcht  0x00000004 , 0x00004643 
+ 00013116  0x00001eaa isub  0x00000002 , 0x0000003e 
+ 00013117  0x00001eab nrtn  0x00000005 
+ 00013118  0x00001ead fetch  0x00000001 , 0x00004602 
+ 00013119  0x00001eae beq  0x00000001 , 0x00003342 
+ 00013120  0x00001eaf beq  0x00000002 , 0x0000334f 
+ 00013121  0x00001eb0 rtn 
+ 00013122  0x00001eb3 fetch  0x00000001 , 0x000045f5 
+ 00013123  0x00001eb4 nrtn  0x00000034 
+ 00013124  0x00001eb5 fetch  0x00000001 , 0x000045ea 
+ 00013125  0x00001eb6 beq  0x00000002 , 0x00003347 
+ 00013126  0x00001eb7 rtn 
+ 00013127  0x00001eb9 jam  0x00000001 , 0x000045f5 
+ 00013128  0x00001ebb call  0x0000330d 
+ 00013129  0x00001ebc fetch  0x00000001 , 0x000045ec 
+ 00013130  0x00001ebd or_into  0x00000001 , 0x0000003f 
+ 00013131  0x00001ebe store  0x00000001 , 0x000045ec 
+ 00013132  0x00001ec0 setarg  0x00000000 
+ 00013133  0x00001ec1 store  0x00000002 , 0x000045ea 
+ 00013134  0x00001ec2 rtn 
+ 00013135  0x00001ec5 fetch  0x00000001 , 0x000045f6 
+ 00013136  0x00001ec6 nrtn  0x00000034 
+ 00013137  0x00001ec7 fetch  0x00000001 , 0x000045eb 
+ 00013138  0x00001ec8 bne  0x00000000 , 0x00003354 
+ 00013139  0x00001ec9 rtn 
+ 00013140  0x00001ecb jam  0x00000001 , 0x000045f6 
+ 00013141  0x00001ecd call  0x00003315 
+ 00013142  0x00001ece fetch  0x00000001 , 0x000045ec 
+ 00013143  0x00001ecf or_into  0x00000002 , 0x0000003f 
+ 00013144  0x00001ed0 store  0x00000001 , 0x000045ec 
+ 00013145  0x00001ed1 call  0x0000334c 
+ 00013146  0x00001ed2 branch  0x00003e7a 
+ 00013147  0x00001ed5 fetch  0x00000001 , 0x00004511 
+ 00013148  0x00001ed6 beq  0x00000001 , 0x0000335f 
+ 00013149  0x00001ed7 beq  0x00000002 , 0x00003363 
+ 00013150  0x00001ed8 rtn 
+ 00013151  0x00001eda fetch  0x00000001 , 0x00004642 
+ 00013152  0x00001edb rtnbit0  0x00000000 
+ 00013153  0x00001edd disable  0x0000002f 
+ 00013154  0x00001ede rtn 
+ 00013155  0x00001ee0 fetch  0x00000001 , 0x00004642 
+ 00013156  0x00001ee1 rtnbit0  0x00000001 
+ 00013157  0x00001ee2 branch  0x00003361 
+ 00013158  0x00001ee5 fetch  0x00000001 , 0x00004627 
+ 00013159  0x00001ee6 nrtn  0x00000034 
+ 00013160  0x00001ee7 fetch  0x00000001 , 0x00004642 
+ 00013161  0x00001ee8 or_into  0x00000001 , 0x0000003f 
+ 00013162  0x00001ee9 store  0x00000001 , 0x00004642 
+ 00013163  0x00001eea rtn 
+ 00013164  0x00001eed fetch  0x00000001 , 0x00004627 
+ 00013165  0x00001eee nrtn  0x00000034 
+ 00013166  0x00001eef fetch  0x00000001 , 0x00004642 
+ 00013167  0x00001ef0 or_into  0x00000002 , 0x0000003f 
+ 00013168  0x00001ef1 store  0x00000001 , 0x00004642 
+ 00013169  0x00001ef2 rtn 
+ 00013170  0x00001ef6 fetch  0x00000001 , 0x000045ec 
+ 00013171  0x00001ef7 rtn  0x00000034 
+ 00013172  0x00001ef9 fetch  0x00000001 , 0x00004602 
+ 00013173  0x00001efa beq  0x00000001 , 0x00003366 
+ 00013174  0x00001efb beq  0x00000002 , 0x0000336c 
+ 00013175  0x00001efc rtn 
+ 00013176  0x00001f10 set1  0x00000027 , 0x00000000 
+ 00013177  0x00001f11 fetch  0x00000001 , 0x00004141 
+ 00013178  0x00001f12 store  0x00000001 , 0x0000463a 
+ 00013179  0x00001f13 branch  0x000035ae 
+ 00013180  0x00001f16 fetch  0x00000002 , 0x000045f7 
+ 00013181  0x00001f17 branch  0x00007d7b 
+ 00013182  0x00001f1a bpatchx  0x000000b0 , 0x00004036 
+ 00013183  0x00001f1b jam  0x00000000 , 0x0000459f 
+ 00013184  0x00001f1c fetch  0x00000001 , 0x00004628 
+ 00013185  0x00001f1d rtn  0x00000034 
+ 00013186  0x00001f1e fetch  0x00000002 , 0x000045f9 
+ 00013187  0x00001f1f branch  0x00007d7b 
+ 00013188  0x00001f23 call  0x000033c7 
+ 00013189  0x00001f24 nbranch  0x00003397 , 0x0000002f 
+ 00013190  0x00001f26 call  0x000033b9 
+ 00013191  0x00001f27 nbranch  0x00003397 , 0x00000028 
+ 00013192  0x00001f28 fetch  0x00000001 , 0x00004594 
+ 00013193  0x00001f29 branch  0x00003397 , 0x00000034 
+ 00013194  0x00001f2a increase  0x00000002 , 0x0000003f 
+ 00013195  0x00001f2b iforce  0x00000039 
+ 00013196  0x00001f2c arg  0x0000450e , 0x00000006 
+ 00013197  0x00001f2d arg  0x000045ff , 0x00000005 
+ 00013198  0x00001f2e call  0x00007cdc 
+ 00013199  0x00001f2f jam  0x00000000 , 0x0000462a 
+ 00013200  0x00001f30 fetch  0x00000001 , 0x00004627 
+ 00013201  0x00001f31 call  0x000033d4 , 0x00000034 
+ 00013202  0x00001f32 bpatchx  0x000000b1 , 0x00004036 
+ 00013203  0x00001f33 fetch  0x00000001 , 0x00004601 
+ 00013204  0x00001f34 beq  0x00000001 , 0x0000339d 
+ 00013205  0x00001f35 beq  0x00000002 , 0x000033ac 
+ 00013206  0x00001f36 beq  0x000000ff , 0x0000339b 
+ 00013207  0x00001f38 bpatchx  0x000000b2 , 0x00004036 
+ 00013208  0x00001f39 arg  0x0000450e , 0x00000005 
+ 00013209  0x00001f3a arg  0x00000042 , 0x00000039 
+ 00013210  0x00001f3b branch  0x00007ca3 
+ 00013211  0x00001f3e call  0x00003374 
+ 00013212  0x00001f3f branch  0x00003573 
+ 00013213  0x00001f42 call  0x00003366 
+ 00013214  0x00001f43 call  0x00003504 
+ 00013215  0x00001f44 fetch  0x00000001 , 0x00004621 
+ 00013216  0x00001f45 fetcht  0x00000001 , 0x000045ff 
+ 00013217  0x00001f46 isolate1  0x00000003 , 0x00000002 
+ 00013218  0x00001f47 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00013219  0x00001f48 store  0x00000001 , 0x00004621 
+ 00013220  0x00001f49 beq  0x00000001 , 0x000033b2 
+ 00013221  0x00001f4a fetch  0x00000001 , 0x00004629 
+ 00013222  0x00001f4b fetcht  0x00000001 , 0x000045ff 
+ 00013223  0x00001f4c isolate1  0x00000004 , 0x00000002 
+ 00013224  0x00001f4d setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00013225  0x00001f4e store  0x00000001 , 0x00004629 
+ 00013226  0x00001f4f fetch  0x00000002 , 0x000045fb 
+ 00013227  0x00001f50 branch  0x00007d7b 
+ 00013228  0x00001f53 call  0x0000336c 
+ 00013229  0x00001f54 fetcht  0x00000001 , 0x000045ff 
+ 00013230  0x00001f55 isolate1  0x00000003 , 0x00000002 
+ 00013231  0x00001f56 branch  0x000033b7 , 0x00000001 
+ 00013232  0x00001f57 fetch  0x00000002 , 0x000045fd 
+ 00013233  0x00001f58 branch  0x00007d7b 
+ 00013234  0x00001f5b fetch  0x00000001 , 0x000045f5 
+ 00013235  0x00001f5c nrtn  0x00000034 
+ 00013236  0x00001f5d jam  0x00000001 , 0x000045f5 
+ 00013237  0x00001f5e fetch  0x00000004 , 0x00004609 
+ 00013238  0x00001f5f branch  0x0000357b 
+ 00013239  0x00001f61 fetch  0x00000004 , 0x00004609 
+ 00013240  0x00001f62 branch  0x00003581 
+ 00013241  0x00001f66 call  0x00007dbe 
+ 00013242  0x00001f67 fetch  0x00000001 , 0x0000459d 
+ 00013243  0x00001f68 fetcht  0x00000001 , 0x0000459e 
+ 00013244  0x00001f69 isub  0x00000002 , 0x0000003e 
+ 00013245  0x00001f6a ncall  0x00007dbc , 0x00000005 
+ 00013246  0x00001f6b fetch  0x00000001 , 0x0000459d 
+ 00013247  0x00001f6c store  0x00000001 , 0x0000459e 
+ 00013248  0x00001f6d fetch  0x00000003 , 0x00004597 
+ 00013249  0x00001f6e fetcht  0x00000003 , 0x0000459a 
+ 00013250  0x00001f6f isub  0x00000002 , 0x0000003e 
+ 00013251  0x00001f70 ncall  0x00007dbc , 0x00000005 
+ 00013252  0x00001f71 fetch  0x00000003 , 0x00004597 
+ 00013253  0x00001f72 store  0x00000003 , 0x0000459a 
+ 00013254  0x00001f73 rtn 
+ 00013255  0x00001f76 call  0x00003397 
+ 00013256  0x00001f77 call  0x000030f8 
+ 00013257  0x00001f78 nrtn  0x0000002f 
+ 00013258  0x00001f7b fetch  0x00000001 , 0x0000450e 
+ 00013259  0x00001f7c store  0x00000001 , 0x000045a0 
+ 00013260  0x00001f7e call  0x000031f3 
+ 00013261  0x00001f80 fetch  0x00000001 , 0x0000450f 
+ 00013262  0x00001f81 isolate1  0x00000000 , 0x0000003f 
+ 00013263  0x00001f82 branch  0x000033d3 , 0x00000001 
+ 00013264  0x00001f84 call  0x0000337e 
+ 00013265  0x00001f85 call  0x000031c4 
+ 00013266  0x00001f86 call  0x00003174 
+ 00013267  0x00001f88 branch  0x00003162 
+ 00013268  0x00001f8c jam  0x00000001 , 0x0000462b 
+ 00013269  0x00001f8e setarg  0x00000280 
+ 00013270  0x00001f8f arg  0x00000008 , 0x00000007 
+ 00013271  0x00001f90 branch  0x00007ce3 
+ 00013272  0x00001f97 bpatchx  0x000000b3 , 0x00004036 
+ 00013273  0x00001f98 jam  0x00000001 , 0x0000462a 
+ 00013274  0x00001f99 jam  0x00000000 , 0x0000462e 
+ 00013275  0x00001f9a jam  0x000000ff , 0x000045be 
+ 00013276  0x00001f9b branch  0x00003237 
+ 00013277  0x00001f9e bpatchx  0x000000b4 , 0x00004036 
+ 00013278  0x00001f9f fetch  0x00000001 , 0x0000462a 
+ 00013279  0x00001fa0 rtn  0x00000034 
+ 00013280  0x00001fa1 call  0x00003224 
+ 00013281  0x00001fa2 nrtn  0x00000028 
+ 00013282  0x00001fa3 call  0x000033ea 
+ 00013283  0x00001fa4 fetch  0x00000001 , 0x0000462e 
+ 00013284  0x00001fa5 increase  0x00000001 , 0x0000003f 
+ 00013285  0x00001fa6 and_into  0x00000001 , 0x0000003f 
+ 00013286  0x00001fa7 store  0x00000001 , 0x0000462e 
+ 00013287  0x00001fa8 beq  0x00000000 , 0x000033ef 
+ 00013288  0x00001fa9 beq  0x00000001 , 0x000033f2 
+ 00013289  0x00001faa rtn 
+ 00013290  0x00001fad fetch  0x00000001 , 0x00004639 
+ 00013291  0x00001fae rtn  0x00000034 
+ 00013292  0x00001faf increase  0xffffffff , 0x0000003f 
+ 00013293  0x00001fb0 store  0x00000001 , 0x00004639 
+ 00013294  0x00001fb1 rtn 
+ 00013295  0x00001fb4 fetch  0x00000001 , 0x00004639 
+ 00013296  0x00001fb5 nrtn  0x00000034 
+ 00013297  0x00001fb6 branch  0x00003436 
+ 00013298  0x00001fb9 fetch  0x00000001 , 0x00004639 
+ 00013299  0x00001fba nrtn  0x00000034 
+ 00013300  0x00001fbb branch  0x000032da 
+ 00013301  0x00001fbf fetch  0x00000001 , 0x00004641 
+ 00013302  0x00001fc0 nrtn  0x00000034 
+ 00013303  0x00001fc1 fetch  0x00000001 , 0x0000463f 
+ 00013304  0x00001fc2 call  0x00003425 , 0x00000034 
+ 00013305  0x00001fc3 fetch  0x00000001 , 0x0000463c 
+ 00013306  0x00001fc4 rtnbit1  0x00000000 
+ 00013307  0x00001fc5 set1  0x00000000 , 0x0000003f 
+ 00013308  0x00001fc6 store  0x00000001 , 0x0000463c 
+ 00013309  0x00001fc7 jam  0x00000001 , 0x0000463b 
+ 00013310  0x00001fc8 jam  0x00000000 , 0x00004640 
+ 00013311  0x00001fc9 setarg  0x00000000 
+ 00013312  0x00001fca store  0x00000002 , 0x0000463d 
+ 00013313  0x00001fcb jam  0x00000060 , 0x000045be 
+ 00013314  0x00001fcc branch  0x00003237 
+ 00013315  0x00001fcf bpatchx  0x000000b5 , 0x00004036 
+ 00013316  0x00001fd0 fetch  0x00000001 , 0x0000462d 
+ 00013317  0x00001fd1 rtneq  0x00000000 
+ 00013318  0x00001fd2 fetch  0x00000001 , 0x00004641 
+ 00013319  0x00001fd3 nrtn  0x00000034 
+ 00013320  0x00001fd4 fetch  0x00000001 , 0x0000463f 
+ 00013321  0x00001fd5 nrtn  0x00000034 
+ 00013322  0x00001fd6 fetch  0x00000001 , 0x0000463b 
+ 00013323  0x00001fd7 rtn  0x00000034 
+ 00013324  0x00001fd8 fetch  0x00000001 , 0x00004642 
+ 00013325  0x00001fd9 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00013326  0x00001fda branch  0x00003421 , 0x00000001 
+ 00013327  0x00001fdb call  0x00003224 
+ 00013328  0x00001fdc nrtn  0x00000028 
+ 00013329  0x00001fdd fetch  0x00000002 , 0x0000463d 
+ 00013330  0x00001fde increase  0x00000001 , 0x0000003f 
+ 00013331  0x00001fdf store  0x00000002 , 0x0000463d 
+ 00013332  0x00001fe0 arg  0x000007d0 , 0x00000002 
+ 00013333  0x00001fe1 isub  0x00000002 , 0x0000003e 
+ 00013334  0x00001fe2 branch  0x00003421 , 0x00000002 
+ 00013335  0x00001fe3 fetch  0x00000001 , 0x00004640 
+ 00013336  0x00001fe4 increase  0x00000001 , 0x0000003f 
+ 00013337  0x00001fe5 and_into  0x00000001 , 0x0000003f 
+ 00013338  0x00001fe6 store  0x00000001 , 0x00004640 
+ 00013339  0x00001fe7 beq  0x00000000 , 0x000034ea 
+ 00013340  0x00001fe8 beq  0x00000001 , 0x000032da 
+ 00013341  0x00001fe9 rtn 
+ 00013342  0x00001fec fetch  0x00000001 , 0x00004639 
+ 00013343  0x00001fed nbranch  0x000032da , 0x00000034 
+ 00013344  0x00001fee branch  0x000034ea 
+ 00013345  0x00001ff1 jam  0x00000001 , 0x0000463f 
+ 00013346  0x00001ff2 branch  0x000034ea 
+ 00013347  0x00001ff5 jam  0x00000000 , 0x0000463b 
+ 00013348  0x00001ff6 rtn 
+ 00013349  0x00001ff8 jam  0x00000001 , 0x0000463b 
+ 00013350  0x00001ff9 rtn 
+ 00013351  0x00002005 bpatchx  0x000000b6 , 0x00004036 
+ 00013352  0x00002006 fetch  0x00000001 , 0x0000462c 
+ 00013353  0x00002007 rtnbit1  0x00000000 
+ 00013354  0x00002008 set1  0x00000000 , 0x0000003f 
+ 00013355  0x00002009 store  0x00000001 , 0x0000462c 
+ 00013356  0x0000200a fetch  0x00000001 , 0x0000463a 
+ 00013357  0x0000200b store  0x00000001 , 0x00004141 
+ 00013358  0x0000200c jam  0x00000000 , 0x00004628 
+ 00013359  0x0000200d jam  0x00000000 , 0x000008eb 
+ 00013360  0x0000200e jam  0x00000001 , 0x00004621 
+ 00013361  0x0000200f jam  0x00000000 , 0x00004595 
+ 00013362  0x00002010 fetch  0x00000004 , 0x00004508 
+ 00013363  0x00002011 call  0x00003215 
+ 00013364  0x00002012 call  0x00003201 
+ 00013365  0x00002013 branch  0x00003397 
+ 00013366  0x00002017 jam  0x00000000 , 0x00004628 
+ 00013367  0x00002019 jam  0x00000000 , 0x0000462d 
+ 00013368  0x0000201a jam  0x00000000 , 0x0000462c 
+ 00013369  0x0000201b rtn 
+ 00013370  0x0000201f fetch  0x00000001 , 0x0000462d 
+ 00013371  0x00002020 rtnne  0x00000000 
+ 00013372  0x00002021 call  0x00003427 
+ 00013373  0x00002022 call  0x000034ee 
+ 00013374  0x00002023 branch  0x00003384 
+ 00013375  0x00002031 bpatchx  0x000000b7 , 0x00004036 
+ 00013376  0x00002032 fetch  0x00000001 , 0x0000462d 
+ 00013377  0x00002033 rtnne  0x00000001 
+ 00013378  0x00002034 call  0x000032dd 
+ 00013379  0x00002035 call  0x000032ec 
+ 00013380  0x00002036 fetch  0x00000001 , 0x00004627 
+ 00013381  0x00002037 nrtn  0x00000034 
+ 00013382  0x00002038 fetch  0x00000001 , 0x000045ec 
+ 00013383  0x00002039 rtn  0x00000034 
+ 00013384  0x0000203a jam  0x00000000 , 0x0000462a 
+ 00013385  0x0000203b call  0x00003436 
+ 00013386  0x0000203c call  0x000033d4 
+ 00013387  0x0000203d branch  0x00003237 
+ 00013388  0x0000204a fetch  0x00000001 , 0x0000462c 
+ 00013389  0x0000204b rtnbit1  0x00000007 
+ 00013390  0x0000204c set1  0x00000007 , 0x0000003f 
+ 00013391  0x0000204d store  0x00000001 , 0x0000462c 
+ 00013392  0x0000204e fetch  0x00000001 , 0x0000463a 
+ 00013393  0x0000204f store  0x00000001 , 0x00004141 
+ 00013394  0x00002051 jam  0x00000000 , 0x0000462e 
+ 00013395  0x00002052 jam  0x00000001 , 0x00004628 
+ 00013396  0x00002053 setarg  0x00000000 
+ 00013397  0x00002054 store  0x00000003 , 0x00004654 
+ 00013398  0x00002055 store  0x00000007 , 0x00004631 
+ 00013399  0x00002056 call  0x000034dc 
+ 00013400  0x00002057 nrtn  0x00000005 
+ 00013401  0x00002058 fetch  0x00000001 , 0x000045a5 
+ 00013402  0x00002059 store  0x00000001 , 0x00004630 
+ 00013403  0x0000205a fetch  0x00000001 , 0x000045a4 
+ 00013404  0x0000205b store  0x00000001 , 0x0000462f 
+ 00013405  0x0000205c rtn 
+ 00013406  0x00002060 bpatchx  0x000000b8 , 0x00004037 
+ 00013407  0x00002061 fetch  0x00000001 , 0x0000462d 
+ 00013408  0x00002062 rtnne  0x00000007 
+ 00013409  0x00002063 call  0x0000344c 
+ 00013410  0x00002064 call  0x00003484 
+ 00013411  0x00002065 call  0x000033c7 
+ 00013412  0x00002066 nbranch  0x00003397 , 0x0000002f 
+ 00013413  0x00002068 call  0x000034dc 
+ 00013414  0x00002069 call  0x00003386 , 0x00000005 
+ 00013415  0x0000206b fetch  0x00000001 , 0x00004621 
+ 00013416  0x0000206c call  0x00003423 , 0x00000034 
+ 00013417  0x0000206f jam  0x00000000 , 0x0000462d 
+ 00013418  0x00002070 fetch  0x00000001 , 0x0000462c 
+ 00013419  0x00002071 set1  0x00000000 , 0x0000003f 
+ 00013420  0x00002072 store  0x00000001 , 0x0000462c 
+ 00013421  0x00002074 fetch  0x00000001 , 0x00004628 
+ 00013422  0x00002075 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00013423  0x00002076 ncall  0x000034da , 0x00000005 
+ 00013424  0x00002078 call  0x00003397 
+ 00013425  0x00002079 call  0x000033d4 
+ 00013426  0x0000207a call  0x000034dc 
+ 00013427  0x0000207b branch  0x0000347d , 0x00000005 
+ 00013428  0x0000207c fetch  0x00000004 , 0x000045a6 
+ 00013429  0x0000207d fetcht  0x00000004 , 0x0000464b 
+ 00013430  0x0000207e isub  0x00000002 , 0x0000003e 
+ 00013431  0x0000207f branch  0x00003480 , 0x00000005 
+ 00013432  0x00002080 fetch  0x00000004 , 0x000045a6 
+ 00013433  0x00002081 fetcht  0x00000004 , 0x00004647 
+ 00013434  0x00002082 isub  0x00000002 , 0x0000003e 
+ 00013435  0x00002083 branch  0x00003482 , 0x00000005 
+ 00013436  0x00002084 rtn 
+ 00013437  0x00002088 fetch  0x00000001 , 0x00004630 
+ 00013438  0x0000208a store  0x00000001 , 0x000045a5 
+ 00013439  0x0000208b rtn 
+ 00013440  0x0000208e fetch  0x00000001 , 0x00004636 
+ 00013441  0x0000208f branch  0x0000347e 
+ 00013442  0x00002092 fetch  0x00000001 , 0x00004633 
+ 00013443  0x00002093 branch  0x0000347e 
+ 00013444  0x00002097 bpatchx  0x000000b9 , 0x00004037 
+ 00013445  0x00002098 fetch  0x00000001 , 0x0000462e 
+ 00013446  0x00002099 increase  0x00000001 , 0x0000003f 
+ 00013447  0x0000209a and_into  0x00000003 , 0x0000003f 
+ 00013448  0x0000209b store  0x00000001 , 0x0000462e 
+ 00013449  0x0000209d beq  0x00000000 , 0x000034a8 
+ 00013450  0x0000209e beq  0x00000001 , 0x000034c2 
+ 00013451  0x0000209f beq  0x00000002 , 0x0000348e 
+ 00013452  0x000020a0 beq  0x00000003 , 0x000034c2 
+ 00013453  0x000020a1 rtn 
+ 00013454  0x000020a4 call  0x0000330d 
+ 00013455  0x000020a5 fetch  0x00000004 , 0x00004647 
+ 00013456  0x000020a6 branch  0x00003484 , 0x00000034 
+ 00013457  0x000020a7 call  0x00003215 
+ 00013458  0x000020a8 fetch  0x00000001 , 0x00004634 
+ 00013459  0x000020a9 call  0x000034a3 , 0x00000034 
+ 00013460  0x000020aa fetch  0x00000001 , 0x00004632 
+ 00013461  0x000020ab store  0x00000001 , 0x000045a4 
+ 00013462  0x000020ac fetcht  0x00000001 , 0x00004655 
+ 00013463  0x000020ad fetchr  0x00000011 , 0x00000002 , 0x0000465b 
+ 00013464  0x000020ae call  0x00003583 
+ 00013465  0x000020af storet  0x00000001 , 0x00004655 
+ 00013466  0x000020b0 call  0x0000358c 
+ 00013467  0x000020b1 storet  0x00000001 , 0x00004652 
+ 00013468  0x000020b2 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013469  0x000020b3 nrtn  0x00000002 
+ 00013470  0x000020b4 fetcht  0x00000001 , 0x00004633 
+ 00013471  0x000020b5 call  0x00003206 
+ 00013472  0x000020b6 storet  0x00000001 , 0x00004633 
+ 00013473  0x000020b7 store  0x00000001 , 0x00004632 
+ 00013474  0x000020b8 rtn 
+ 00013475  0x000020bb jam  0x00000001 , 0x00004634 
+ 00013476  0x000020bc arg  0x00000000 , 0x00000002 
+ 00013477  0x000020bd call  0x0000320b 
+ 00013478  0x000020be store  0x00000001 , 0x00004632 
+ 00013479  0x000020bf rtn 
+ 00013480  0x000020c2 call  0x00003315 
+ 00013481  0x000020c3 fetch  0x00000004 , 0x0000464b 
+ 00013482  0x000020c4 branch  0x00003484 , 0x00000034 
+ 00013483  0x000020c5 call  0x00003215 
+ 00013484  0x000020c6 fetch  0x00000001 , 0x00004637 
+ 00013485  0x000020c7 call  0x000034bd , 0x00000034 
+ 00013486  0x000020c8 fetch  0x00000001 , 0x00004635 
+ 00013487  0x000020c9 store  0x00000001 , 0x000045a4 
+ 00013488  0x000020ca fetcht  0x00000001 , 0x00004656 
+ 00013489  0x000020cb fetchr  0x00000011 , 0x00000002 , 0x0000465d 
+ 00013490  0x000020cc call  0x00003583 
+ 00013491  0x000020cd storet  0x00000001 , 0x00004656 
+ 00013492  0x000020ce call  0x0000358c 
+ 00013493  0x000020cf storet  0x00000001 , 0x00004653 
+ 00013494  0x000020d0 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013495  0x000020d1 nrtn  0x00000002 
+ 00013496  0x000020d2 fetcht  0x00000001 , 0x00004636 
+ 00013497  0x000020d3 call  0x00003206 
+ 00013498  0x000020d4 storet  0x00000001 , 0x00004636 
+ 00013499  0x000020d5 store  0x00000001 , 0x00004635 
+ 00013500  0x000020d6 rtn 
+ 00013501  0x000020d9 jam  0x00000001 , 0x00004637 
+ 00013502  0x000020da arg  0x00000000 , 0x00000002 
+ 00013503  0x000020db call  0x0000320b 
+ 00013504  0x000020dc store  0x00000001 , 0x00004635 
+ 00013505  0x000020dd rtn 
+ 00013506  0x000020e0 call  0x0000330d 
+ 00013507  0x000020e1 fetch  0x00000004 , 0x00004508 
+ 00013508  0x000020e2 call  0x00003215 
+ 00013509  0x000020e3 fetch  0x00000001 , 0x00004631 
+ 00013510  0x000020e4 call  0x000034d6 , 0x00000034 
+ 00013511  0x000020e5 fetch  0x00000001 , 0x0000462f 
+ 00013512  0x000020e6 store  0x00000001 , 0x000045a4 
+ 00013513  0x000020e7 fetcht  0x00000001 , 0x00004654 
+ 00013514  0x000020e8 fetchr  0x00000011 , 0x00000002 , 0x00004659 
+ 00013515  0x000020e9 call  0x00003583 
+ 00013516  0x000020ea storet  0x00000001 , 0x00004654 
+ 00013517  0x000020eb call  0x0000358c 
+ 00013518  0x000020ec storet  0x00000001 , 0x00004651 
+ 00013519  0x000020ed sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013520  0x000020ee nrtn  0x00000002 
+ 00013521  0x000020ef fetcht  0x00000001 , 0x00004630 
+ 00013522  0x000020f0 call  0x00003206 
+ 00013523  0x000020f1 storet  0x00000001 , 0x00004630 
+ 00013524  0x000020f2 store  0x00000001 , 0x0000462f 
+ 00013525  0x000020f3 rtn 
+ 00013526  0x000020f6 jam  0x00000001 , 0x00004631 
+ 00013527  0x000020f7 fetch  0x00000001 , 0x0000462f 
+ 00013528  0x000020f8 store  0x00000001 , 0x000045a4 
+ 00013529  0x000020f9 rtn 
+ 00013530  0x000020fd jam  0x00000000 , 0x00004628 
+ 00013531  0x000020fe rtn 
+ 00013532  0x00002102 fetch  0x00000004 , 0x000045a6 
+ 00013533  0x00002103 fetcht  0x00000004 , 0x00004508 
+ 00013534  0x00002104 isub  0x00000002 , 0x0000003e 
+ 00013535  0x00002105 rtn 
+ 00013536  0x00002112 fetch  0x00000001 , 0x00004628 
+ 00013537  0x00002113 rtneq  0x00000002 
+ 00013538  0x00002114 fetch  0x00000001 , 0x0000462b 
+ 00013539  0x00002115 rtn  0x00000034 
+ 00013540  0x00002116 arg  0x00000008 , 0x00000007 
+ 00013541  0x00002117 call  0x00007cf1 
+ 00013542  0x00002118 nrtn  0x00000034 
+ 00013543  0x00002119 jam  0x00000000 , 0x0000462b 
+ 00013544  0x0000211a jam  0x00000000 , 0x00004639 
+ 00013545  0x0000211b call  0x000033f5 
+ 00013546  0x0000211e bpatchx  0x000000ba , 0x00004037 
+ 00013547  0x0000211f jam  0x00000007 , 0x0000462d 
+ 00013548  0x00002120 jam  0x00000000 , 0x0000462c 
+ 00013549  0x00002121 branch  0x00003397 
+ 00013550  0x00002128 bpatchx  0x000000bb , 0x00004037 
+ 00013551  0x00002129 fetch  0x00000001 , 0x00004621 
+ 00013552  0x0000212a beq  0x00000001 , 0x000035c2 
+ 00013553  0x0000212b fetch  0x00000001 , 0x00004629 
+ 00013554  0x0000212c beq  0x00000001 , 0x00003502 
+ 00013555  0x0000212d fetcht  0x00000004 , 0x00004622 
+ 00013556  0x0000212e copy  0x00000022 , 0x0000003f 
+ 00013557  0x0000212f isub  0x00000002 , 0x0000003e 
+ 00013558  0x00002130 ncall  0x00003234 , 0x00000002 
+ 00013559  0x00002131 copy  0x0000003f , 0x00000012 
+ 00013560  0x00002132 fetch  0x00000004 , 0x00004622 
+ 00013561  0x00002133 fetcht  0x00000001 , 0x00004626 
+ 00013562  0x00002134 iadd  0x00000002 , 0x00000002 
+ 00013563  0x00002135 copy  0x00000012 , 0x0000003f 
+ 00013564  0x00002136 isub  0x00000002 , 0x0000003e 
+ 00013565  0x00002137 nrtn  0x00000002 
+ 00013566  0x00002138 set0  0x0000001c , 0x0000003f 
+ 00013567  0x00002139 store  0x00000004 , 0x00004622 
+ 00013568  0x0000213a jam  0x00000001 , 0x00004621 
+ 00013569  0x0000213b branch  0x00003201 
+ 00013570  0x0000213e jam  0x00000000 , 0x00004629 
+ 00013571  0x0000213f branch  0x00003201 
+ 00013572  0x00002142 copy  0x00000022 , 0x0000003f 
+ 00013573  0x00002143 store  0x00000004 , 0x00004622 
+ 00013574  0x00002144 rtn 
+ 00013575  0x0000214a arg  0x000045f5 , 0x00000013 
+ 00013576  0x0000214b arg  0x00003653 , 0x00000012 
+ 00013577  0x0000214c branch  0x0000375c 
+ 00013578  0x00002150 bpatchx  0x000000bc , 0x00004037 
+ 00013579  0x00002151 set1  0x00000026 , 0x00000000 
+ 00013580  0x00002152 fetch  0x00000001 , 0x00004613 
+ 00013581  0x00002153 set0  0x00000001 , 0x0000003f 
+ 00013582  0x00002154 set1  0x00000002 , 0x0000003f 
+ 00013583  0x00002155 store  0x00000001 , 0x00004613 
+ 00013584  0x00002156 fetch  0x00000001 , 0x000045fa 
+ 00013585  0x00002157 branch  0x0000351f , 0x00000034 
+ 00013586  0x00002158 fetch  0x00000001 , 0x000045f9 
+ 00013587  0x00002159 beq  0x00000001 , 0x00003517 
+ 00013588  0x0000215a beq  0x00000002 , 0x00003517 
+ 00013589  0x0000215b beq  0x00000003 , 0x00003526 
+ 00013590  0x0000215c beq  0x00000004 , 0x00003526 
+ 00013591  0x0000215e fetch  0x00000001 , 0x000045e8 
+ 00013592  0x0000215f store  0x00000001 , 0x00004141 
+ 00013593  0x00002160 fetcht  0x00000001 , 0x00004603 
+ 00013594  0x00002161 storet  0x00000001 , 0x000045a5 
+ 00013595  0x00002162 fetch  0x00000004 , 0x000045fb 
+ 00013596  0x00002163 call  0x00003530 
+ 00013597  0x00002164 storet  0x00000001 , 0x00004603 
+ 00013598  0x00002165 rtn 
+ 00013599  0x00002168 jam  0x00000003 , 0x00004141 
+ 00013600  0x00002169 fetcht  0x00000001 , 0x00004604 
+ 00013601  0x0000216a storet  0x00000001 , 0x000045a5 
+ 00013602  0x0000216b fetch  0x00000004 , 0x000045ff 
+ 00013603  0x0000216c call  0x00003530 
+ 00013604  0x0000216d storet  0x00000001 , 0x00004604 
+ 00013605  0x0000216e rtn 
+ 00013606  0x00002171 jam  0x00000003 , 0x00004141 
+ 00013607  0x00002172 fetcht  0x00000001 , 0x00004605 
+ 00013608  0x00002173 storet  0x00000001 , 0x000045a5 
+ 00013609  0x00002174 fetch  0x00000004 , 0x0000461b 
+ 00013610  0x00002175 call  0x00003530 
+ 00013611  0x00002176 storet  0x00000001 , 0x00004605 
+ 00013612  0x00002177 rtn 
+ 00013613  0x0000217a fetch  0x00000004 , 0x00004576 
+ 00013614  0x0000217b rtn  0x00000034 
+ 00013615  0x0000217c store  0x00000004 , 0x000045ff 
+ 00013616  0x0000217e call  0x00003215 
+ 00013617  0x0000217f branch  0x00003201 
+ 00013618  0x00002183 bpatchx  0x000000bd , 0x00004037 
+ 00013619  0x00002184 fetch  0x00000002 , 0x000045f7 
+ 00013620  0x00002185 arg  0x000001f8 , 0x00000002 
+ 00013621  0x00002186 iand  0x00000002 , 0x0000003f 
+ 00013622  0x00002187 branch  0x0000353b , 0x00000034 
+ 00013623  0x00002188 fetch  0x00000002 , 0x000045f7 
+ 00013624  0x00002189 increase  0x00000001 , 0x0000003f 
+ 00013625  0x0000218a store  0x00000002 , 0x000045f7 
+ 00013626  0x0000218b rtn 
+ 00013627  0x0000218e call  0x00003557 
+ 00013628  0x0000218f call  0x0000362a 
+ 00013629  0x00002190 nbranch  0x0000355e , 0x00000018 
+ 00013630  0x00002191 nbranch  0x0000355e , 0x0000002f 
+ 00013631  0x00002192 call  0x00003647 
+ 00013632  0x00002193 fetch  0x00000001 , 0x000043cf 
+ 00013633  0x00002194 beq  0x00000008 , 0x00004d5d 
+ 00013634  0x00002195 fetch  0x00000004 , 0x000045e3 
+ 00013635  0x00002196 fetcht  0x00000004 , 0x000045a6 
+ 00013636  0x00002197 isub  0x00000002 , 0x0000003e 
+ 00013637  0x00002198 branch  0x0000326f , 0x00000005 
+ 00013638  0x0000219a fetch  0x00000004 , 0x0000461b 
+ 00013639  0x0000219b fetcht  0x00000004 , 0x000045a6 
+ 00013640  0x0000219c isub  0x00000002 , 0x0000003e 
+ 00013641  0x0000219d call  0x0000352d , 0x00000005 
+ 00013642  0x0000219e fetch  0x00000001 , 0x00004613 
+ 00013643  0x0000219f set0  0x00000002 , 0x0000003f 
+ 00013644  0x000021a0 store  0x00000001 , 0x00004613 
+ 00013645  0x000021a1 setarg  0x00000000 
+ 00013646  0x000021a2 store  0x00000002 , 0x000045ef 
+ 00013647  0x000021a3 store  0x00000002 , 0x000045f7 
+ 00013648  0x000021a4 store  0x00000002 , 0x000045f5 
+ 00013649  0x000021a5 jam  0x0000003c , 0x0000064d 
+ 00013650  0x000021a6 call  0x00007819 
+ 00013651  0x000021a8 bpatchx  0x000000be , 0x00004037 
+ 00013652  0x000021a9 arg  0x00000020 , 0x00000039 
+ 00013653  0x000021aa arg  0x00004530 , 0x00000005 
+ 00013654  0x000021ab branch  0x00007ca5 
+ 00013655  0x000021ae jam  0x000000ff , 0x00004530 
+ 00013656  0x000021af fetch  0x00000001 , 0x000045a0 
+ 00013657  0x000021b0 store  0x00000001 , 0x00004531 
+ 00013658  0x000021b1 fetch  0x00000004 , 0x0000461b 
+ 00013659  0x000021b2 store  0x00000004 , 0x00004532 
+ 00013660  0x000021b3 jam  0x00000006 , 0x0000459f 
+ 00013661  0x000021b4 branch  0x000031c4 
+ 00013662  0x000021b7 bpatchx  0x000000bf , 0x00004037 
+ 00013663  0x000021b8 fetch  0x00000001 , 0x000045fa 
+ 00013664  0x000021b9 branch  0x00003201 , 0x00000034 
+ 00013665  0x000021ba fetch  0x00000002 , 0x000045f7 
+ 00013666  0x000021bb increase  0x00000001 , 0x0000003f 
+ 00013667  0x000021bc store  0x00000002 , 0x000045f7 
+ 00013668  0x000021bd isolate1  0x00000009 , 0x0000003f 
+ 00013669  0x000021be fetch  0x00000001 , 0x000045f9 
+ 00013670  0x000021bf beq  0x00000001 , 0x0000356b 
+ 00013671  0x000021c0 beq  0x00000002 , 0x0000356d 
+ 00013672  0x000021c1 beq  0x00000003 , 0x0000356f 
+ 00013673  0x000021c2 beq  0x00000004 , 0x00003571 
+ 00013674  0x000021c3 branch  0x0000351f 
+ 00013675  0x000021c7 branch  0x0000351f , 0x00000001 
+ 00013676  0x000021c8 branch  0x00003517 
+ 00013677  0x000021cb branch  0x00003526 , 0x00000001 
+ 00013678  0x000021cc branch  0x00003517 
+ 00013679  0x000021cf branch  0x00003526 , 0x00000001 
+ 00013680  0x000021d0 branch  0x0000351f 
+ 00013681  0x000021d3 branch  0x00003526 , 0x00000001 
+ 00013682  0x000021d4 branch  0x0000327a 
+ 00013683  0x000021df fetch  0x00000001 , 0x00004602 
+ 00013684  0x000021e0 beq  0x00000001 , 0x00003577 
+ 00013685  0x000021e1 beq  0x00000002 , 0x0000357d 
+ 00013686  0x000021e2 rtn 
+ 00013687  0x000021e4 fetch  0x00000001 , 0x000045f5 
+ 00013688  0x000021e5 nrtn  0x00000034 
+ 00013689  0x000021e6 fetch  0x00000004 , 0x00004603 
+ 00013690  0x000021e7 store  0x00000004 , 0x00004643 
+ 00013691  0x000021e9 store  0x00000004 , 0x00004647 
+ 00013692  0x000021ea rtn 
+ 00013693  0x000021ec fetch  0x00000001 , 0x000045f6 
+ 00013694  0x000021ed nrtn  0x00000034 
+ 00013695  0x000021ee fetch  0x00000004 , 0x00004603 
+ 00013696  0x000021ef store  0x00000004 , 0x00004643 
+ 00013697  0x000021f1 store  0x00000004 , 0x0000464b 
+ 00013698  0x000021f2 rtn 
+ 00013699  0x000021fd bpatchx  0x000000c0 , 0x00004038 
+ 00013700  0x000021fe copy  0x00000011 , 0x0000003f 
+ 00013701  0x000021ff iadd  0x00000002 , 0x00000005 
+ 00013702  0x00002200 fetch  0x00000001 , 0x00000009 
+ 00013703  0x00002201 istore  0x00000001 , 0x00000005 
+ 00013704  0x00002202 increase  0x00000001 , 0x00000002 
+ 00013705  0x00002203 fetch  0x00000001 , 0x000045e9 
+ 00013706  0x00002204 iand  0x00000002 , 0x00000002 
+ 00013707  0x00002205 rtn 
+ 00013708  0x00002208 bpatchx  0x000000c1 , 0x00004038 
+ 00013709  0x00002209 fetch  0x00000001 , 0x000045e9 
+ 00013710  0x0000220a increase  0x00000001 , 0x0000003f 
+ 00013711  0x0000220b store  0x00000002 , 0x00000679 
+ 00013712  0x0000220c copy  0x0000003f , 0x00000039 
+ 00013713  0x0000220d copy  0x00000011 , 0x00000006 
+ 00013714  0x0000220e arg  0x00000000 , 0x0000003f 
+ 00013715  0x00002210 ifetcht  0x00000001 , 0x00000006 
+ 00013716  0x00002211 iadd  0x00000002 , 0x0000003f 
+ 00013717  0x00002212 loop  0x00003593 
+ 00013718  0x00002213 fetcht  0x00000002 , 0x00000679 
+ 00013719  0x00002214 idiv  0x00000002 
+ 00013720  0x00002215 call  0x00007d64 
+ 00013721  0x00002216 quotient  0x00000002 
+ 00013722  0x00002217 rtnmark1  0x00000027 
+ 00013723  0x00002218 copy  0x00000002 , 0x0000003f 
+ 00013724  0x00002219 rtnmark0  0x00000026 
+ 00013725  0x0000221a call  0x000022ec 
+ 00013726  0x0000221b copy  0x0000003f , 0x00000002 
+ 00013727  0x0000221c rtn 
+ 00013728  0x0000221f branch  0x000022cd 
+ 00013729  0x0000222a fetch  0x00000002 , 0x00004607 
+ 00013730  0x0000222b branch  0x000035b5 
+ 00013731  0x0000222e copy  0x0000003f , 0x00000011 
+ 00013732  0x0000222f fetcht  0x00000001 , 0x00004606 
+ 00013733  0x00002230 fetch  0x00000002 , 0x00004607 
+ 00013734  0x00002231 iadd  0x00000002 , 0x00000005 
+ 00013735  0x00002232 copy  0x00000011 , 0x0000003f 
+ 00013736  0x00002233 istore  0x00000001 , 0x00000005 
+ 00013737  0x00002234 increase  0x00000001 , 0x00000002 
+ 00013738  0x00002235 fetch  0x00000001 , 0x000045e9 
+ 00013739  0x00002236 iand  0x00000002 , 0x00000002 
+ 00013740  0x00002237 storet  0x00000001 , 0x00004606 
+ 00013741  0x00002238 rtn 
+ 00013742  0x00002243 fetch  0x00000002 , 0x00004657 
+ 00013743  0x00002244 call  0x000035b5 
+ 00013744  0x00002245 fetch  0x00000002 , 0x00004659 
+ 00013745  0x00002246 call  0x000035b5 
+ 00013746  0x00002247 fetch  0x00000002 , 0x0000465b 
+ 00013747  0x00002248 call  0x000035b5 
+ 00013748  0x00002249 fetch  0x00000002 , 0x0000465d 
+ 00013749  0x0000224b rtn  0x00000034 
+ 00013750  0x0000224c copy  0x0000003f , 0x00000005 
+ 00013751  0x0000224d fetch  0x00000001 , 0x000045e9 
+ 00013752  0x0000224e increase  0x00000001 , 0x0000003f 
+ 00013753  0x0000224f copy  0x0000003f , 0x00000039 
+ 00013754  0x00002250 branch  0x00007ca3 
+ 00013755  0x00002254 call  0x000035a0 
+ 00013756  0x00002255 rtn  0x00000034 
+ 00013757  0x00002256 fetcht  0x00000001 , 0x00004650 
+ 00013758  0x00002257 fetchr  0x00000011 , 0x00000002 , 0x00004657 
+ 00013759  0x00002258 call  0x00003583 
+ 00013760  0x00002259 storet  0x00000001 , 0x00004650 
+ 00013761  0x0000225a rtn 
+ 00013762  0x0000225e fetchr  0x00000011 , 0x00000002 , 0x00004657 
+ 00013763  0x0000225f call  0x0000358c 
+ 00013764  0x00002260 storet  0x00000001 , 0x0000464f 
+ 00013765  0x00002261 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00013766  0x00002262 nrtn  0x00000002 
+ 00013767  0x00002263 branch  0x00003201 
+ 00013768  0x0000226c fetch  0x00000004 , 0x00004508 
+ 00013769  0x0000226d store  0x00000004 , 0x0000461b 
+ 00013770  0x0000226e branch  0x000035a1 
+ 00013771  0x00002271 setarg  0x00002fb2 
+ 00013772  0x00002272 store  0x00000003 , 0x0000461f 
+ 00013773  0x00002273 setarg  0x00100c0c 
+ 00013774  0x00002274 store  0x00000003 , 0x000045be 
+ 00013775  0x00002275 setarg  0x0000bb80 
+ 00013776  0x00002276 store  0x00000003 , 0x00004622 
+ 00013777  0x00002277 jam  0x00000005 , 0x00004638 
+ 00013778  0x00002278 rtn 
+ 00013779  0x0000227b setarg  0x0000f80c 
+ 00013780  0x0000227c store  0x00000003 , 0x0000461f 
+ 00013781  0x0000227d setarg  0x001c1919 
+ 00013782  0x0000227e store  0x00000003 , 0x000045be 
+ 00013783  0x0000227f setarg  0x00017700 
+ 00013784  0x00002280 store  0x00000003 , 0x00004622 
+ 00013785  0x00002281 jam  0x0000000b , 0x00004638 
+ 00013786  0x00002282 rtn 
+ 00013787  0x00002286 fetch  0x00000001 , 0x00004613 
+ 00013788  0x00002287 bbit1  0x00000001 , 0x00003281 
+ 00013789  0x00002288 bbit1  0x00000002 , 0x00003532 
+ 00013790  0x00002289 fetch  0x00000001 , 0x0000462f 
+ 00013791  0x0000228a beq  0x00000001 , 0x000036a0 
+ 00013792  0x0000228c bpatchx  0x000000c2 , 0x00004038 
+ 00013793  0x0000228d call  0x000035fd 
+ 00013794  0x0000228e nbranch  0x0000367e , 0x00000028 
+ 00013795  0x00002290 bpatchx  0x000000c3 , 0x00004038 
+ 00013796  0x00002291 call  0x00003612 
+ 00013797  0x00002292 call  0x000036c8 
+ 00013798  0x00002293 fetch  0x00000001 , 0x000043cf 
+ 00013799  0x00002294 beq  0x00000008 , 0x00005923 
+ 00013800  0x00002296 fetch  0x00000008 , 0x00004622 
+ 00013801  0x00002297 store  0x00000008 , 0x000045c6 
+ 00013802  0x00002298 fetch  0x00000002 , 0x00004634 
+ 00013803  0x00002299 store  0x00000002 , 0x00004636 
+ 00013804  0x0000229a fetch  0x00000002 , 0x0000460f 
+ 00013805  0x0000229b branch  0x00007d7b 
+ 00013806  0x0000229e bpatchx  0x000000c4 , 0x00004038 
+ 00013807  0x0000229f call  0x00003694 
+ 00013808  0x000022a0 nrtn  0x00000028 
+ 00013809  0x000022a1 call  0x0000369e 
+ 00013810  0x000022a2 call  0x00007de6 
+ 00013811  0x000022a3 fetch  0x00000003 , 0x0000461f 
+ 00013812  0x000022a4 branch  0x000035fa 
+ 00013813  0x000022a7 bpatchx  0x000000c5 , 0x00004038 
+ 00013814  0x000022a8 call  0x00003694 
+ 00013815  0x000022a9 nrtn  0x00000028 
+ 00013816  0x000022aa call  0x0000369e 
+ 00013817  0x000022ab fetch  0x00000008 , 0x000045c6 
+ 00013818  0x000022ad call  0x00007d27 
+ 00013819  0x000022ae storet  0x00000004 , 0x000040a9 
+ 00013820  0x000022af branch  0x00002406 
+ 00013821  0x000022b4 call  0x00003600 
+ 00013822  0x000022b5 nrtn  0x00000028 
+ 00013823  0x000022b6 branch  0x000031c4 
+ 00013824  0x000022ba fetch  0x00000002 , 0x00004609 
+ 00013825  0x000022bb call  0x00007d7b 
+ 00013826  0x000022bc branch  0x00003606 , 0x00000028 
+ 00013827  0x000022bd fetch  0x00000007 , 0x00004531 
+ 00013828  0x000022be rtn  0x00000034 
+ 00013829  0x000022bf branch  0x00007dbc 
+ 00013830  0x000022c2 jam  0x00000000 , 0x00004619 
+ 00013831  0x000022c3 add  0x00000011 , 0x00000001 , 0x0000003f 
+ 00013832  0x000022c4 store  0x00000001 , 0x0000459f 
+ 00013833  0x000022c5 call  0x0000360e 
+ 00013834  0x000022c6 store  0x00000001 , 0x00004530 
+ 00013835  0x000022c7 copy  0x00000012 , 0x00000006 
+ 00013836  0x000022c8 copy  0x00000011 , 0x00000039 
+ 00013837  0x000022c9 branch  0x00007cdc 
+ 00013838  0x000022cc fetch  0x00000001 , 0x000045a0 
+ 00013839  0x000022cd and_into  0x00000007 , 0x0000003f 
+ 00013840  0x000022ce store  0x00000001 , 0x000045a0 
+ 00013841  0x000022cf rtn 
+ 00013842  0x000022d9 setarg  0x00000000 
+ 00013843  0x000022da store  0x00000001 , 0x00004618 
+ 00013844  0x000022db store  0x00000002 , 0x00004639 
+ 00013845  0x000022dd bpatchx  0x000000c6 , 0x00004038 
+ 00013846  0x000022de call  0x0000362a 
+ 00013847  0x000022df fetch  0x00000001 , 0x00004596 
+ 00013848  0x000022e0 beq  0x00000001 , 0x0000361f 
+ 00013849  0x000022e1 nbranch  0x00003638 , 0x00000018 
+ 00013850  0x000022e2 nbranch  0x00003638 , 0x0000002f 
+ 00013851  0x000022e3 call  0x00003647 
+ 00013852  0x000022e4 fetch  0x00000001 , 0x000043cf 
+ 00013853  0x000022e5 sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00013854  0x000022e6 call  0x00005b33 , 0x00000005 
+ 00013855  0x000022e8 call  0x000036fc 
+ 00013856  0x000022ea call  0x00003553 
+ 00013857  0x000022eb fetch  0x00000001 , 0x00004595 
+ 00013858  0x000022ec increase  0x00000001 , 0x0000003f 
+ 00013859  0x000022ed store  0x00000001 , 0x00004595 
+ 00013860  0x000022ee call  0x0000366d 
+ 00013861  0x000022f0 bpatchx  0x000000c7 , 0x00004038 
+ 00013862  0x000022f1 setarg  0x00000000 
+ 00013863  0x000022f2 store  0x00000001 , 0x00004614 
+ 00013864  0x000022f3 store  0x00000002 , 0x00004615 
+ 00013865  0x000022f4 rtn 
+ 00013866  0x000022f7 bpatchx  0x000000c8 , 0x00004039 
+ 00013867  0x000022f8 disable  0x0000002f 
+ 00013868  0x000022f9 call  0x00003174 
+ 00013869  0x000022fa fetch  0x00000001 , 0x00004596 
+ 00013870  0x000022fb beq  0x00000001 , 0x00003162 
+ 00013871  0x000022fc force  0x00000000 , 0x00000015 
+ 00013872  0x000022fd fetch  0x00000004 , 0x000045a6 
+ 00013873  0x000022fe iforce  0x00000009 
+ 00013874  0x000022ff fetcht  0x00000001 , 0x00000008 
+ 00013875  0x00002300 call  0x00002173 
+ 00013876  0x00002301 call  0x000021aa 
+ 00013877  0x00002302 call  0x00003100 
+ 00013878  0x00002303 call  0x00003162 , 0x0000002f 
+ 00013879  0x00002304 rtn 
+ 00013880  0x00002307 bpatchx  0x000000c9 , 0x00004039 
+ 00013881  0x00002308 fetch  0x00000001 , 0x000043cf 
+ 00013882  0x00002309 beq  0x00000008 , 0x000059df 
+ 00013883  0x0000230b fetch  0x00000001 , 0x00004619 
+ 00013884  0x0000230c nrtn  0x00000034 
+ 00013885  0x0000230d fetch  0x00000002 , 0x00004615 
+ 00013886  0x0000230e increase  0x00000001 , 0x0000003f 
+ 00013887  0x0000230f store  0x00000002 , 0x00004615 
+ 00013888  0x00002310 fetch  0x00000001 , 0x00004616 
+ 00013889  0x00002311 bbit1  0x00000004 , 0x0000364f 
+ 00013890  0x00002312 call  0x00003655 
+ 00013891  0x00002313 fetch  0x00000002 , 0x00004639 
+ 00013892  0x00002314 increase  0x00000001 , 0x0000003f 
+ 00013893  0x00002315 store  0x00000002 , 0x00004639 
+ 00013894  0x00002316 branch  0x00003615 
+ 00013895  0x00002319 bpatchx  0x000000ca , 0x00004039 
+ 00013896  0x0000231a call  0x000031f3 
+ 00013897  0x0000231b fetch  0x00000001 , 0x00004594 
+ 00013898  0x0000231c rtn  0x00000034 
+ 00013899  0x0000231d iforce  0x00000039 
+ 00013900  0x0000231e arg  0x00004510 , 0x00000006 
+ 00013901  0x0000231f arg  0x00004574 , 0x00000005 
+ 00013902  0x00002320 branch  0x00007cdc 
+ 00013903  0x00002324 bpatchx  0x000000cb , 0x00004039 
+ 00013904  0x00002325 setarg  0x00000000 
+ 00013905  0x00002326 store  0x00000002 , 0x00004615 
+ 00013906  0x00002327 jam  0x00000001 , 0x00004617 
+ 00013907  0x00002329 jam  0x0000003a , 0x0000064d 
+ 00013908  0x0000232a branch  0x00007819 
+ 00013909  0x00002335 bpatchx  0x000000cc , 0x00004039 
+ 00013910  0x00002336 fetch  0x00000001 , 0x000043cf 
+ 00013911  0x00002337 beq  0x00000008 , 0x00004d70 
+ 00013912  0x00002339 fetcht  0x00000001 , 0x00004618 
+ 00013913  0x0000233a fetch  0x00000001 , 0x00004638 
+ 00013914  0x0000233b isub  0x00000002 , 0x0000003e 
+ 00013915  0x0000233c nbranch  0x00003675 , 0x00000002 
+ 00013916  0x0000233d increase  0x00000001 , 0x00000002 
+ 00013917  0x0000233e storet  0x00000001 , 0x00004618 
+ 00013918  0x0000233f fetch  0x00000001 , 0x00004638 
+ 00013919  0x00002340 beq  0x00000005 , 0x00003664 
+ 00013920  0x00002341 fetch  0x00000001 , 0x00004618 
+ 00013921  0x00002342 beq  0x00000006 , 0x0000366f 
+ 00013922  0x00002343 beq  0x0000000c , 0x0000366f 
+ 00013923  0x00002344 rtn 
+ 00013924  0x00002348 fetch  0x00000001 , 0x00004618 
+ 00013925  0x00002349 beq  0x00000003 , 0x0000366f 
+ 00013926  0x0000234a beq  0x00000006 , 0x0000366f 
+ 00013927  0x0000234b rtn 
+ 00013928  0x00002355 bmark1  0x0000002f , 0x0000366b 
+ 00013929  0x00002356 store  0x00000001 , 0x00004551 
+ 00013930  0x00002357 rtn 
+ 00013931  0x00002359 store  0x00000001 , 0x00004552 
+ 00013932  0x0000235a rtn 
+ 00013933  0x0000235d fetch  0x00000001 , 0x000045a0 
+ 00013934  0x0000235e rtnbit0  0x00000004 
+ 00013935  0x00002360 fetch  0x00000001 , 0x000045a0 
+ 00013936  0x00002361 set0  0x00000004 , 0x0000003f 
+ 00013937  0x00002362 store  0x00000001 , 0x000045a0 
+ 00013938  0x00002363 call  0x00003668 
+ 00013939  0x00002364 call  0x00003700 
+ 00013940  0x00002365 branch  0x00003201 
+ 00013941  0x00002368 fetch  0x00000004 , 0x000045a6 
+ 00013942  0x00002369 fetcht  0x00000004 , 0x000045fb 
+ 00013943  0x0000236a isub  0x00000002 , 0x0000003e 
+ 00013944  0x0000236b branch  0x00003201 , 0x00000005 
+ 00013945  0x0000236c call  0x000036ee 
+ 00013946  0x0000236d call  0x00003700 
+ 00013947  0x0000236e branch  0x00003201 
+ 00013948  0x00002381 fetch  0x00000002 , 0x0000460b 
+ 00013949  0x00002382 branch  0x00007d7b 
+ 00013950  0x00002385 fetch  0x00000001 , 0x00004619 
+ 00013951  0x00002386 call  0x00003685 , 0x00000034 
+ 00013952  0x00002387 fetch  0x00000001 , 0x0000462f 
+ 00013953  0x00002388 rtneq  0x00000001 
+ 00013954  0x00002389 call  0x0000367c 
+ 00013955  0x0000238a fetch  0x00000002 , 0x00004611 
+ 00013956  0x0000238b branch  0x00007d7b 
+ 00013957  0x0000238e bpatchx  0x000000cd , 0x00004039 
+ 00013958  0x0000238f jam  0x00000001 , 0x00004619 
+ 00013959  0x00002390 jam  0x00000001 , 0x000045a0 
+ 00013960  0x00002391 call  0x0000360e 
+ 00013961  0x00002392 store  0x00000001 , 0x00004530 
+ 00013962  0x00002393 setarg  0x00000000 
+ 00013963  0x00002394 store  0x00000007 , 0x00004531 
+ 00013964  0x00002395 fetch  0x00000004 , 0x0000461b 
+ 00013965  0x00002396 store  0x00000004 , 0x00004538 
+ 00013966  0x00002397 jam  0x0000000c , 0x0000459f 
+ 00013967  0x00002398 fetch  0x00000001 , 0x000045a0 
+ 00013968  0x00002399 set1  0x00000003 , 0x0000003f 
+ 00013969  0x0000239a store  0x00000001 , 0x000045a0 
+ 00013970  0x0000239b call  0x000031c4 
+ 00013971  0x0000239c branch  0x000035e3 
+ 00013972  0x000023a1 bpatchx  0x000000ce , 0x00004039 
+ 00013973  0x000023a2 enable  0x00000028 
+ 00013974  0x000023a3 call  0x000023f0 
+ 00013975  0x000023a4 fetch  0x00000003 , 0x000040bd 
+ 00013976  0x000023a5 branch  0x00007dbe , 0x00000034 
+ 00013977  0x000023a6 fetch  0x00000001 , 0x00004094 
+ 00013978  0x000023a7 branch  0x00007dbe , 0x00000034 
+ 00013979  0x000023a8 fetch  0x00000001 , 0x0000462f 
+ 00013980  0x000023a9 beq  0x00000001 , 0x00007dbe 
+ 00013981  0x000023aa rtn 
+ 00013982  0x000023ad fetch  0x00000002 , 0x0000460d 
+ 00013983  0x000023ae branch  0x00007d7b 
+ 00013984  0x000023bc call  0x00003224 
+ 00013985  0x000023bd nrtn  0x00000028 
+ 00013986  0x000023be call  0x000036b5 
+ 00013987  0x000023bf fetch  0x00000002 , 0x00004630 
+ 00013988  0x000023c0 increase  0x00000001 , 0x0000003f 
+ 00013989  0x000023c1 store  0x00000002 , 0x00004630 
+ 00013990  0x000023c2 fetcht  0x00000002 , 0x00004632 
+ 00013991  0x000023c3 isub  0x00000002 , 0x0000003e 
+ 00013992  0x000023c4 call  0x000036aa , 0x00000005 
+ 00013993  0x000023c5 branch  0x000035e0 
+ 00013994  0x000023c9 jam  0x00000000 , 0x0000462f 
+ 00013995  0x000023ca setarg  0x00000000 
+ 00013996  0x000023cb store  0x00000002 , 0x00004630 
+ 00013997  0x000023cc setarg  0x00000064 
+ 00013998  0x000023cd store  0x00000002 , 0x00004632 
+ 00013999  0x000023cf jam  0x00000000 , 0x0000462e 
+ 00014000  0x000023d0 fetch  0x00000001 , 0x000045bf 
+ 00014001  0x000023d2 store  0x00000001 , 0x000045be 
+ 00014002  0x000023d3 rtn 
+ 00014003  0x000023d5 fetch  0x00000001 , 0x000045c0 
+ 00014004  0x000023d6 branch  0x000036b1 
+ 00014005  0x000023d9 fetch  0x00000001 , 0x0000462e 
+ 00014006  0x000023da increase  0x00000001 , 0x0000003f 
+ 00014007  0x000023db store  0x00000001 , 0x0000462e 
+ 00014008  0x000023dc beq  0x00000004 , 0x000036b3 
+ 00014009  0x000023dd beq  0x00000005 , 0x000036af 
+ 00014010  0x000023de rtn 
+ 00014011  0x000023e1 jam  0x00000001 , 0x0000462f 
+ 00014012  0x000023e2 setarg  0x00000000 
+ 00014013  0x000023e3 store  0x00000002 , 0x00004630 
+ 00014014  0x000023e4 rtn 
+ 00014015  0x000023ef arg  0x00000002 , 0x00000039 
+ 00014016  0x000023f0 arg  0x000045a6 , 0x00000006 
+ 00014017  0x000023f2 call  0x00007dbc 
+ 00014018  0x000023f3 setarg  0x0000ffff 
+ 00014019  0x000023f5 ifetcht  0x00000002 , 0x00000006 
+ 00014020  0x000023f6 isub  0x00000002 , 0x0000003e 
+ 00014021  0x000023f7 ncall  0x00007dbe , 0x00000005 
+ 00014022  0x000023f8 loop  0x000036c3 
+ 00014023  0x000023f9 rtn 
+ 00014024  0x00002404 bpatchx  0x000000cf , 0x00004039 
+ 00014025  0x00002405 fetch  0x00000001 , 0x0000444e 
+ 00014026  0x00002406 nrtn  0x00000034 
+ 00014027  0x00002407 fetch  0x00000002 , 0x00004500 
+ 00014028  0x00002408 rtnbit1  0x0000000b 
+ 00014029  0x00002409 fetchr  0x00000011 , 0x00000002 , 0x00004607 
+ 00014030  0x0000240a call  0x0000358c 
+ 00014031  0x0000240b storet  0x00000001 , 0x0000463b 
+ 00014032  0x0000240c fetch  0x00000001 , 0x00004640 
+ 00014033  0x0000240d bmark1  0x00000026 , 0x000036d3 
+ 00014034  0x0000240e fetch  0x00000001 , 0x00004643 
+ 00014035  0x00002410 isub  0x00000002 , 0x0000003e 
+ 00014036  0x00002411 nbranch  0x000036ed , 0x00000002 
+ 00014037  0x00002412 fetch  0x00000001 , 0x0000463d 
+ 00014038  0x00002413 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00014039  0x00002414 nbranch  0x000036db , 0x00000002 
+ 00014040  0x00002415 fetch  0x00000001 , 0x0000463d 
+ 00014041  0x00002416 beq  0x00000000 , 0x000036ee 
+ 00014042  0x00002417 rtn 
+ 00014043  0x0000241a fetch  0x00000001 , 0x0000463d 
+ 00014044  0x0000241b fetcht  0x00000001 , 0x0000463e 
+ 00014045  0x0000241c isub  0x00000002 , 0x0000003e 
+ 00014046  0x0000241d nrtn  0x00000005 
+ 00014047  0x0000241e jam  0x00000000 , 0x0000463d 
+ 00014048  0x00002420 fetcht  0x00000001 , 0x0000463b 
+ 00014049  0x00002421 fetch  0x00000001 , 0x0000463f 
+ 00014050  0x00002422 bmark1  0x00000026 , 0x000036e4 
+ 00014051  0x00002423 fetch  0x00000001 , 0x00004642 
+ 00014052  0x00002425 isub  0x00000002 , 0x0000003e 
+ 00014053  0x00002426 nrtn  0x00000002 
+ 00014054  0x00002427 fetch  0x00000001 , 0x0000463c 
+ 00014055  0x00002428 beq  0x00000000 , 0x000036fa 
+ 00014056  0x00002429 increase  0xffffffff , 0x0000003f 
+ 00014057  0x0000242a store  0x00000001 , 0x0000463c 
+ 00014058  0x0000242b beq  0x00000002 , 0x000036f6 
+ 00014059  0x0000242c beq  0x00000001 , 0x000036f8 
+ 00014060  0x0000242d branch  0x000036fa 
+ 00014061  0x00002430 jam  0x00000000 , 0x0000463d 
+ 00014062  0x00002432 fetch  0x00000001 , 0x0000463c 
+ 00014063  0x00002433 beq  0x00000003 , 0x000036f4 
+ 00014064  0x00002434 increase  0x00000001 , 0x0000003f 
+ 00014065  0x00002435 store  0x00000001 , 0x0000463c 
+ 00014066  0x00002436 beq  0x00000001 , 0x000036f8 
+ 00014067  0x00002437 beq  0x00000002 , 0x000036f6 
+ 00014068  0x00002439 jam  0x00000005 , 0x00004141 
+ 00014069  0x0000243a rtn 
+ 00014070  0x0000243e jam  0x00000003 , 0x00004141 
+ 00014071  0x0000243f rtn 
+ 00014072  0x00002443 jam  0x00000000 , 0x00004141 
+ 00014073  0x00002444 rtn 
+ 00014074  0x00002447 jam  0x00000085 , 0x00004141 
+ 00014075  0x00002448 rtn 
+ 00014076  0x00002450 fetch  0x00000001 , 0x0000463d 
+ 00014077  0x00002451 increase  0x00000001 , 0x0000003f 
+ 00014078  0x00002452 store  0x00000001 , 0x0000463d 
+ 00014079  0x00002453 rtn 
+ 00014080  0x00002456 fetch  0x00000001 , 0x0000463d 
+ 00014081  0x00002457 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00014082  0x00002458 ncall  0x00003708 , 0x00000002 
+ 00014083  0x00002459 fetch  0x00000001 , 0x0000463d 
+ 00014084  0x0000245a rtneq  0x00000000 
+ 00014085  0x0000245b increase  0xffffffff , 0x0000003f 
+ 00014086  0x0000245c store  0x00000001 , 0x0000463d 
+ 00014087  0x0000245d rtn 
+ 00014088  0x00002460 jam  0x00000003 , 0x0000463d 
+ 00014089  0x00002461 rtn 
+ 00014090  0x00002469 bpatch  0x000000cf , 0x00004019 
+ 00014091  0x0000246a fetch  0x00000001 , 0x000043cf 
+ 00014092  0x0000246b branch  0x0000370a , 0x00000034 
+ 00014093  0x0000246c beq  0x00000004 , 0x00003cd1 
+ 00014094  0x0000246d beq  0x00000009 , 0x000060c8 
+ 00014095  0x0000246e beq  0x0000000a , 0x00004a31 
+ 00014096  0x0000246f beq  0x0000000e , 0x000037c1 
+ 00014097  0x00002470 beq  0x00000006 , 0x00006286 
+ 00014098  0x00002471 beq  0x0000000d , 0x00003adf 
+ 00014099  0x00002472 beq  0x0000000f , 0x00003eae 
+ 00014100  0x00002473 beq  0x0000000c , 0x000066f2 
+ 00014101  0x00002475 beq  0x00000008 , 0x00004d11 
+ 00014102  0x00002476 rtn 
+ 00014103  0x0000247a rtn  0x0000002b 
+ 00014104  0x0000247b call  0x00006f7c 
+ 00014105  0x0000247c fetch  0x00000001 , 0x000043cf 
+ 00014106  0x0000247d beq  0x00000009 , 0x000061f3 
+ 00014107  0x0000247e beq  0x00000006 , 0x000061f3 
+ 00014108  0x0000247f beq  0x00000004 , 0x00003cdc 
+ 00014109  0x00002480 beq  0x00000008 , 0x00004d82 
+ 00014110  0x00002481 beq  0x0000000f , 0x00003ea1 
+ 00014111  0x00002482 beq  0x0000000d , 0x00003aee 
+ 00014112  0x00002483 beq  0x0000000e , 0x000037d3 
+ 00014113  0x00002484 rtn 
+ 00014114  0x00002487 call  0x00007762 
+ 00014115  0x00002488 call  0x00007831 
+ 00014116  0x00002489 call  0x00003729 
+ 00014117  0x0000248a fetch  0x00000002 , 0x000043e4 
+ 00014118  0x0000248b branch  0x00007d7b 
+ 00014119  0x0000248e fetch  0x00000002 , 0x000043e2 
+ 00014120  0x0000248f branch  0x00007d7b 
+ 00014121  0x00002492 bpatch  0x000000d0 , 0x0000401a 
+ 00014122  0x00002494 arg  0x000044ea , 0x00000011 
+ 00014123  0x00002495 call  0x00007d99 
+ 00014124  0x00002496 rtn  0x00000034 
+ 00014125  0x00002498 copy  0x0000003f , 0x00000013 
+ 00014126  0x00002499 call  0x00003732 
+ 00014127  0x0000249a branch  0x00003736 
+ 00014128  0x0000249d arg  0x00000000 , 0x00000013 
+ 00014129  0x0000249e rtn 
+ 00014130  0x000024a4 beq  0x00000010 , 0x00003745 
+ 00014131  0x000024a5 beq  0x00000014 , 0x0000373c 
+ 00014132  0x000024a6 beq  0x00000015 , 0x00003740 
+ 00014133  0x000024a7 rtn 
+ 00014134  0x000024ac fetch  0x00000002 , 0x000043e6 
+ 00014135  0x000024ad branch  0x00007d7b 
+ 00014136  0x000024b0 fetch  0x00000002 , 0x000043dc 
+ 00014137  0x000024b1 branch  0x00007d7b 
+ 00014138  0x000024b4 fetch  0x00000002 , 0x000043e0 
+ 00014139  0x000024b5 branch  0x00007d7b 
+ 00014140  0x000024b8 fetch  0x00000002 , 0x00004500 
+ 00014141  0x000024b9 set1  0x00000009 , 0x0000003f 
+ 00014142  0x000024ba store  0x00000002 , 0x00004500 
+ 00014143  0x000024bb rtn 
+ 00014144  0x000024be jam  0x00000000 , 0x0000439a 
+ 00014145  0x000024bf fetch  0x00000002 , 0x00004500 
+ 00014146  0x000024c0 set0  0x00000009 , 0x0000003f 
+ 00014147  0x000024c1 store  0x00000002 , 0x00004500 
+ 00014148  0x000024c2 branch  0x000037a2 
+ 00014149  0x000024c6 fetch  0x00000002 , 0x000043fa 
+ 00014150  0x000024c7 set1  0x00000000 , 0x0000003f 
+ 00014151  0x000024c8 store  0x00000002 , 0x000043fa 
+ 00014152  0x000024c9 rtn 
+ 00014153  0x000024cd store  0x00000001 , 0x000001fb 
+ 00014154  0x000024cf bpatch  0x000000d1 , 0x0000401a 
+ 00014155  0x000024d0 fetch  0x00000001 , 0x000001fb 
+ 00014156  0x000024d1 rtn  0x00000034 
+ 00014157  0x000024d2 increase  0xffffffff , 0x0000003f 
+ 00014158  0x000024d3 store  0x00000001 , 0x000001fb 
+ 00014159  0x000024d4 call  0x0000776e 
+ 00014160  0x000024d5 call  0x00003783 
+ 00014161  0x000024d6 call  0x00006be1 
+ 00014162  0x000024d7 fetch  0x00000002 , 0x000043ec 
+ 00014163  0x000024d8 call  0x00007d7b 
+ 00014164  0x000024d9 branch  0x0000374a 
+ 00014165  0x000024df ifetch  0x00000001 , 0x00000013 
+ 00014166  0x000024e0 rtn  0x00000034 
+ 00014167  0x000024e1 pincrease  0xffffffff 
+ 00014168  0x000024e2 istore  0x00000001 , 0x00000013 
+ 00014169  0x000024e3 nrtn  0x00000034 
+ 00014170  0x000024e4 copy  0x00000012 , 0x0000003f 
+ 00014171  0x000024e5 branch  0x00007d7b 
+ 00014172  0x000024ea ifetch  0x00000002 , 0x00000013 
+ 00014173  0x000024eb rtn  0x00000034 
+ 00014174  0x000024ec pincrease  0xffffffff 
+ 00014175  0x000024ed istore  0x00000002 , 0x00000013 
+ 00014176  0x000024ee nrtn  0x00000034 
+ 00014177  0x000024ef copy  0x00000012 , 0x0000003f 
+ 00014178  0x000024f0 branch  0x00007d7b 
+ 00014179  0x000024f3 fetcht  0x00000002 , 0x00004447 
+ 00014180  0x000024f4 add  0x00000002 , 0x00000001 , 0x00000013 
+ 00014181  0x000024f5 arg  0x00003767 , 0x00000012 
+ 00014182  0x000024f6 branch  0x00003755 
+ 00014183  0x000024f9 call  0x000037b8 
+ 00014184  0x000024fa beq  0x00000001 , 0x0000376a 
+ 00014185  0x000024fc branch  0x0000379c 
+ 00014186  0x000024fe setarg  0x00000002 
+ 00014187  0x000024ff istore  0x00000001 , 0x00000013 
+ 00014188  0x00002500 add  0x00000002 , 0x00000008 , 0x00000012 
+ 00014189  0x00002502 ifetch  0x00000002 , 0x00000012 
+ 00014190  0x00002503 branch  0x00007d7b 
+ 00014191  0x00002507 call  0x00003771 
+ 00014192  0x00002508 branch  0x0000379c 
+ 00014193  0x0000250c setarg  0x00000000 
+ 00014194  0x0000250d store  0x00000002 , 0x000043f8 
+ 00014195  0x0000250e rtn 
+ 00014196  0x00002510 setarg  0x00000000 
+ 00014197  0x00002511 store  0x00000002 , 0x000043fa 
+ 00014198  0x00002512 rtn 
+ 00014199  0x00002517 fetch  0x00000002 , 0x000043fa 
+ 00014200  0x00002518 set1  0x00000007 , 0x0000003f 
+ 00014201  0x00002519 store  0x00000002 , 0x000043f8 
+ 00014202  0x0000251a setarg  0x00000000 
+ 00014203  0x0000251b store  0x00000002 , 0x000043fa 
+ 00014204  0x0000251c rtn 
+ 00014205  0x00002525 arg  0x00000009 , 0x00000007 
+ 00014206  0x00002526 branch  0x000024be 
+ 00014207  0x00002529 arg  0x00000009 , 0x00000007 
+ 00014208  0x0000252a branch  0x000024c2 
+ 00014209  0x0000252d jam  0x00000005 , 0x000043f6 
+ 00014210  0x0000252e branch  0x0000377d 
+ 00014211  0x00002531 arg  0x000043f6 , 0x00000013 
+ 00014212  0x00002532 arg  0x0000377f , 0x00000012 
+ 00014213  0x00002533 branch  0x00003755 
+ 00014214  0x00002537 jam  0x0000000f , 0x0000064d 
+ 00014215  0x00002538 branch  0x00007824 
+ 00014216  0x0000253b jam  0x00000010 , 0x0000064d 
+ 00014217  0x0000253c branch  0x00007824 
+ 00014218  0x0000253f jam  0x0000000e , 0x0000064d 
+ 00014219  0x00002540 branch  0x00007824 
+ 00014220  0x00002543 jam  0x0000000d , 0x0000064d 
+ 00014221  0x00002544 branch  0x00007824 
+ 00014222  0x00002547 jam  0x00000017 , 0x0000064d 
+ 00014223  0x00002548 branch  0x00007824 
+ 00014224  0x0000254b jam  0x00000018 , 0x0000064d 
+ 00014225  0x0000254c branch  0x00007824 
+ 00014226  0x0000254f jam  0x00000016 , 0x0000064d 
+ 00014227  0x00002550 branch  0x00007824 
+ 00014228  0x00002553 jam  0x00000011 , 0x0000064d 
+ 00014229  0x00002554 branch  0x00007824 
+ 00014230  0x00002557 jam  0x00000015 , 0x0000064d 
+ 00014231  0x00002558 branch  0x00007824 
+ 00014232  0x0000255b jam  0x00000014 , 0x0000064d 
+ 00014233  0x0000255c branch  0x00007824 
+ 00014234  0x00002560 jam  0x00000013 , 0x0000064d 
+ 00014235  0x00002561 branch  0x00007824 
+ 00014236  0x00002564 jam  0x00000019 , 0x0000064d 
+ 00014237  0x00002565 branch  0x00007824 
+ 00014238  0x00002569 jam  0x0000001f , 0x0000064d 
+ 00014239  0x0000256a branch  0x00007824 
+ 00014240  0x0000256e set1  0x0000000d , 0x00000000 
+ 00014241  0x0000256f rtn 
+ 00014242  0x00002572 set0  0x0000000d , 0x00000000 
+ 00014243  0x00002573 rtn 
+ 00014244  0x00002577 call  0x000037b8 
+ 00014245  0x00002578 beq  0x00000002 , 0x000037ae 
+ 00014246  0x0000257a setarg  0x00000001 
+ 00014247  0x0000257b istore  0x00000001 , 0x00000013 
+ 00014248  0x0000257c add  0x00000002 , 0x00000003 , 0x00000011 
+ 00014249  0x0000257d add  0x00000002 , 0x00000006 , 0x00000012 
+ 00014250  0x0000257f ifetcht  0x00000001 , 0x00000011 
+ 00014251  0x00002580 increase  0x00000001 , 0x00000013 
+ 00014252  0x00002581 istoret  0x00000001 , 0x00000013 
+ 00014253  0x00002582 branch  0x0000376d 
+ 00014254  0x00002585 setarg  0x00000000 
+ 00014255  0x00002586 istore  0x00000001 , 0x00000013 
+ 00014256  0x00002587 fetch  0x00000002 , 0x00004500 
+ 00014257  0x00002588 bbit0  0x00000009 , 0x000037b4 
+ 00014258  0x00002589 call  0x000030a3 
+ 00014259  0x0000258a call  0x00003794 
+ 00014260  0x0000258c fetcht  0x00000002 , 0x00004447 
+ 00014261  0x0000258d add  0x00000002 , 0x00000002 , 0x00000011 
+ 00014262  0x0000258e add  0x00000002 , 0x00000004 , 0x00000012 
+ 00014263  0x0000258f branch  0x000037aa 
+ 00014264  0x00002592 fetcht  0x00000002 , 0x00004447 
+ 00014265  0x00002593 add  0x00000002 , 0x00000000 , 0x00000013 
+ 00014266  0x00002594 ifetch  0x00000001 , 0x00000013 
+ 00014267  0x00002595 rtn 
+ 00014268  0x00002598 call  0x000037b8 
+ 00014269  0x00002599 bne  0x00000000 , 0x000037bf 
+ 00014270  0x0000259a branch  0x0000379c 
+ 00014271  0x0000259c add  0x00000002 , 0x0000000a , 0x00000012 
+ 00014272  0x0000259d branch  0x0000376d 
+ 00014273  0x000025a6 call  0x00007384 
+ 00014274  0x000025a7 rtn  0x0000002b 
+ 00014275  0x000025a8 setarg  0x0000398b 
+ 00014276  0x000025a9 store  0x00000002 , 0x000043e4 
+ 00014277  0x000025ab setarg  0x00003a9c 
+ 00014278  0x000025ac store  0x00000002 , 0x000043ec 
+ 00014279  0x000025ae setarg  0x000039be 
+ 00014280  0x000025af store  0x00000002 , 0x000045f9 
+ 00014281  0x000025b1 setarg  0x00003933 
+ 00014282  0x000025b2 store  0x00000002 , 0x000043e8 
+ 00014283  0x000025b4 setarg  0x00003924 
+ 00014284  0x000025b5 store  0x00000002 , 0x000043e6 
+ 00014285  0x000025b7 bpatch  0x0000002e , 0x00004005 
+ 00014286  0x000025b8 call  0x000038f3 
+ 00014287  0x000025b9 call  0x00003904 
+ 00014288  0x000025ba call  0x00002931 
+ 00014289  0x000025bb call  0x0000391d 
+ 00014290  0x000025bc branch  0x0000789d 
+ 00014291  0x000025c0 jam  0x0000000a , 0x00004141 
+ 00014292  0x000025c1 jam  0x00000084 , 0x000045cf 
+ 00014293  0x000025c2 jam  0x00000084 , 0x000045ce 
+ 00014294  0x000025c3 setarg  0x00ffffff 
+ 00014295  0x000025c4 store  0x00000003 , 0x00004680 
+ 00014296  0x000025c5 jam  0x000000ff , 0x00004683 
+ 00014297  0x000025c6 setarg  0x00000000 
+ 00014298  0x000025c7 store  0x00000003 , 0x000042dd 
+ 00014299  0x000025c8 setarg  0x00220101 
+ 00014300  0x000025c9 store  0x00000003 , 0x000042e0 
+ 00014301  0x000025ca setarg  0x00ffffff 
+ 00014302  0x000025cb store  0x00000003 , 0x0000468c 
+ 00014303  0x000025cc jam  0x000000ff , 0x0000468f 
+ 00014304  0x000025cd jam  0x00000001 , 0x0000469b 
+ 00014305  0x000025ce setarg  0x00241404 
+ 00014306  0x000025cf store  0x00000003 , 0x000045aa 
+ 00014307  0x000025d0 jam  0x00000034 , 0x000045ad 
+ 00014308  0x000025d1 jam  0x00000010 , 0x00004690 
+ 00014309  0x000025d2 jam  0x00000001 , 0x0000469a 
+ 00014310  0x000025d3 jam  0x00000007 , 0x00004397 
+ 00014311  0x000025d4 jam  0x00000001 , 0x0000438c 
+ 00014312  0x000025d5 setarg  0x000000f0 
+ 00014313  0x000025d6 store  0x00000002 , 0x0000438d 
+ 00014314  0x000025d7 setarg  0x00000801 
+ 00014315  0x000025d8 store  0x00000002 , 0x000043b2 
+ 00014316  0x000025d9 jam  0x00000084 , 0x000043ba 
+ 00014317  0x000025da jam  0x00000084 , 0x000043bb 
+ 00014318  0x000025dd setarg  0x00504708 
+ 00014319  0x000025de store  0x00000003 , 0x0000426d 
+ 00014320  0x000025df setarg  0x00435734 
+ 00014321  0x000025e0 store  0x00000003 , 0x00004270 
+ 00014322  0x000025e1 setarg  0x005f5241 
+ 00014323  0x000025e2 store  0x00000003 , 0x00004273 
+ 00014324  0x000025e3 jam  0x0000001f , 0x0000434c 
+ 00014325  0x000025e4 setarg  0x00050102 
+ 00014326  0x000025e5 store  0x00000003 , 0x0000434d 
+ 00014327  0x000025e6 setarg  0x00000008 
+ 00014328  0x000025e7 store  0x00000002 , 0x000042d5 
+ 00014329  0x000025e8 setarg  0x00000010 
+ 00014330  0x000025e9 store  0x00000002 , 0x000042d7 
+ 00014331  0x000025ea setarg  0x00000000 
+ 00014332  0x000025eb store  0x00000002 , 0x000042d9 
+ 00014333  0x000025ec setarg  0x0000012c 
+ 00014334  0x000025ed store  0x00000002 , 0x000042db 
+ 00014335  0x000025ee setarg  0x0000469d 
+ 00014336  0x000025ef store  0x00000002 , 0x00004404 
+ 00014337  0x000025f0 setarg  0x00000414 
+ 00014338  0x000025f1 store  0x00000005 , 0x0000469d 
+ 00014339  0x000025f2 setarg  0x000046fd 
+ 00014340  0x000025f3 store  0x00000002 , 0x000042f9 
+ 00014341  0x000025f6 setsect  0x00000000 , 0x00020001 
+ 00014342  0x000025f7 setsect  0x00000001 , 0x00020000 
+ 00014343  0x000025f8 setsect  0x00000002 , 0x00001022 
+ 00014344  0x000025f9 setsect  0x00000003 , 0x00000060 
+ 00014345  0x000025fa store  0x00000009 , 0x000046fd 
+ 00014346  0x000025fb setsect  0x00000000 , 0x00020002 
+ 00014347  0x000025fc setsect  0x00000001 , 0x000200c0 
+ 00014348  0x000025fd setsect  0x00000002 , 0x00020012 
+ 00014349  0x000025fe setsect  0x00000003 , 0x0000000c 
+ 00014350  0x000025ff store  0x00000009 , 0x00004705 
+ 00014351  0x00002601 setsect  0x00000000 , 0x00020502 
+ 00014352  0x00002602 setsect  0x00000001 , 0x0000004a 
+ 00014353  0x00002603 setsect  0x00000002 , 0x00000040 
+ 00014354  0x00002604 setsect  0x00000003 , 0x00000808 
+ 00014355  0x00002605 store  0x00000009 , 0x0000470e 
+ 00014356  0x00002607 setsect  0x00000000 , 0x00010229 
+ 00014357  0x00002608 setsect  0x00000001 , 0x00014000 
+ 00014358  0x00002609 setsect  0x00000002 , 0x00002000 
+ 00014359  0x0000260a setsect  0x00000003 , 0x0000a000 
+ 00014360  0x0000260b store  0x00000009 , 0x00004717 
+ 00014361  0x0000260d setsect  0x00000000 , 0x00000002 
+ 00014362  0x0000260e setsect  0x00000001 , 0x00000186 
+ 00014363  0x0000260f setsect  0x00000002 , 0x00003020 
+ 00014364  0x00002610 setsect  0x00000003 , 0x000004a0 
+ 00014365  0x00002611 store  0x00000009 , 0x00004720 
+ 00014366  0x00002613 setsect  0x00000000 , 0x0000074e 
+ 00014367  0x00002614 setsect  0x00000001 , 0x00000080 
+ 00014368  0x00002615 setsect  0x00000002 , 0x000132a0 
+ 00014369  0x00002616 setsect  0x00000003 , 0x0001cd04 
+ 00014370  0x00002617 store  0x00000009 , 0x00004729 
+ 00014371  0x00002619 setsect  0x00000000 , 0x00002074 
+ 00014372  0x0000261a setsect  0x00000001 , 0x00001153 
+ 00014373  0x0000261b setsect  0x00000002 , 0x0002f4d2 
+ 00014374  0x0000261c setsect  0x00000003 , 0x0001cdd5 
+ 00014375  0x0000261d store  0x00000009 , 0x00004732 
+ 00014376  0x0000261f setsect  0x00000000 , 0x00002065 
+ 00014377  0x00002620 setsect  0x00000001 , 0x00000808 
+ 00014378  0x00002621 setsect  0x00000002 , 0x00020202 
+ 00014379  0x00002622 setsect  0x00000003 , 0x00002080 
+ 00014380  0x00002623 store  0x00000009 , 0x0000473b 
+ 00014381  0x00002625 setsect  0x00000000 , 0x00030200 
+ 00014382  0x00002626 setsect  0x00000001 , 0x00004a00 
+ 00014383  0x00002627 setsect  0x00000002 , 0x000094e0 
+ 00014384  0x00002628 setsect  0x00000003 , 0x00000800 
+ 00014385  0x00002629 store  0x00000009 , 0x00004744 
+ 00014386  0x0000262b setsect  0x00000000 , 0x00022a01 
+ 00014387  0x0000262c setsect  0x00000001 , 0x00000000 
+ 00014388  0x0000262d setsect  0x00000002 , 0x000000a0 
+ 00014389  0x0000262e setsect  0x00000003 , 0x00000c08 
+ 00014390  0x0000262f store  0x00000009 , 0x0000474d 
+ 00014391  0x00002631 setsect  0x00000000 , 0x00020128 
+ 00014392  0x00002632 setsect  0x00000001 , 0x000002c0 
+ 00014393  0x00002633 setsect  0x00000002 , 0x00004020 
+ 00014394  0x00002634 setsect  0x00000003 , 0x000020a8 
+ 00014395  0x00002635 store  0x00000009 , 0x00004756 
+ 00014396  0x00002637 setsect  0x00000000 , 0x00000010 
+ 00014397  0x00002638 setsect  0x00000001 , 0x00014008 
+ 00014398  0x00002639 setsect  0x00000002 , 0x0002c000 
+ 00014399  0x0000263a setsect  0x00000003 , 0x00003004 
+ 00014400  0x0000263b store  0x00000009 , 0x0000475f 
+ 00014401  0x0000263d setsect  0x00000000 , 0x00000200 
+ 00014402  0x0000263e setsect  0x00000001 , 0x00008a00 
+ 00014403  0x0000263f setsect  0x00000002 , 0x0003ff00 
+ 00014404  0x00002640 setsect  0x00000003 , 0x00000037 
+ 00014405  0x00002641 store  0x00000009 , 0x00004768 
+ 00014406  0x00002643 setsect  0x00000000 , 0x00000302 
+ 00014407  0x00002644 setsect  0x00000001 , 0x0000804a 
+ 00014408  0x00002645 setsect  0x00000002 , 0x000000e1 
+ 00014409  0x00002646 setsect  0x00000003 , 0x0003c408 
+ 00014410  0x00002647 store  0x00000009 , 0x00004771 
+ 00014411  0x00002649 setsect  0x00000000 , 0x000004ff 
+ 00014412  0x0000264a setsect  0x00000001 , 0x00000000 
+ 00014413  0x0000264b setsect  0x00000002 , 0x0000f000 
+ 00014414  0x0000264c setsect  0x00000003 , 0x00000800 
+ 00014415  0x0000264d store  0x00000009 , 0x0000477a 
+ 00014416  0x0000264f setsect  0x00000000 , 0x00022902 
+ 00014417  0x00002650 setsect  0x00000001 , 0x00000000 
+ 00014418  0x00002651 setsect  0x00000002 , 0x00000100 
+ 00014419  0x00002652 setsect  0x00000003 , 0x00000c08 
+ 00014420  0x00002653 store  0x00000009 , 0x00004783 
+ 00014421  0x00002655 setsect  0x00000000 , 0x00000128 
+ 00014422  0x00002656 setsect  0x00000001 , 0x00000442 
+ 00014423  0x00002657 setsect  0x00000002 , 0x00032020 
+ 00014424  0x00002658 setsect  0x00000003 , 0x000007ff 
+ 00014425  0x00002659 store  0x00000009 , 0x0000478c 
+ 00014426  0x0000265a setarg  0x00000000 
+ 00014427  0x0000265b store  0x00000003 , 0x00004795 
+ 00014428  0x0000265d jam  0x0000000c , 0x00004148 
+ 00014429  0x0000265e setarg  0x00643f35 
+ 00014430  0x0000265f store  0x00000003 , 0x000040c3 
+ 00014431  0x00002660 setarg  0x003b2f8f 
+ 00014432  0x00002661 store  0x00000003 , 0x000040c6 
+ 00014433  0x00002662 jam  0x00000020 , 0x000040a7 
+ 00014434  0x00002663 jam  0x00000000 , 0x000040c9 
+ 00014435  0x00002664 jam  0x00000008 , 0x000040ca 
+ 00014436  0x00002665 jam  0x000000b4 , 0x000040cb 
+ 00014437  0x00002666 jam  0x00000018 , 0x00004099 
+ 00014438  0x00002667 jam  0x0000003e , 0x0000411c 
+ 00014439  0x00002668 setarg  0x00050e08 
+ 00014440  0x00002669 store  0x00000003 , 0x00004160 
+ 00014441  0x0000266a setarg  0x00000003 
+ 00014442  0x0000266b store  0x00000002 , 0x00004163 
+ 00014443  0x0000266c jam  0x00000020 , 0x0000416a 
+ 00014444  0x0000266d jam  0x000000ff , 0x00004143 
+ 00014445  0x0000266e setarg  0x00000c00 
+ 00014446  0x0000266f store  0x00000002 , 0x0000409a 
+ 00014447  0x00002670 setarg  0x00000004 
+ 00014448  0x00002671 store  0x00000003 , 0x00004144 
+ 00014449  0x00002672 jam  0x00000008 , 0x00004147 
+ 00014450  0x00002673 jam  0x000000a0 , 0x0000444f 
+ 00014451  0x00002674 setarg  0x000002bc 
+ 00014452  0x00002675 store  0x00000002 , 0x00004452 
+ 00014453  0x00002676 setarg  0x00000190 
+ 00014454  0x00002677 store  0x00000002 , 0x00004450 
+ 00014455  0x00002678 jam  0x00000003 , 0x00004454 
+ 00014456  0x00002679 jam  0x00000009 , 0x00004455 
+ 00014457  0x0000267a jam  0x000000ff , 0x00004149 
+ 00014458  0x0000267b setarg  0x00004149 
+ 00014459  0x0000267c store  0x00000002 , 0x0000409c 
+ 00014460  0x0000267f call  0x00006b28 
+ 00014461  0x00002680 arg  0x0000488d , 0x00000011 
+ 00014462  0x00002681 arg  0x00001f00 , 0x00000012 
+ 00014463  0x00002682 arg  0x0000003c , 0x00000039 
+ 00014464  0x00002683 call  0x00006b62 
+ 00014465  0x00002684 call  0x00006b25 
+ 00014466  0x00002685 fetch  0x00000001 , 0x0000488d 
+ 00014467  0x00002686 ncall  0x000038b9 , 0x00000034 
+ 00014468  0x00002688 fetch  0x00000003 , 0x0000488e 
+ 00014469  0x00002689 ncall  0x000038bb , 0x00000034 
+ 00014470  0x0000268b fetch  0x00000003 , 0x00004891 
+ 00014471  0x0000268c ncall  0x000038bd , 0x00000034 
+ 00014472  0x0000268e fetch  0x00000001 , 0x00004894 
+ 00014473  0x0000268f ncall  0x000038bf , 0x00000034 
+ 00014474  0x00002691 fetch  0x00000001 , 0x00004895 
+ 00014475  0x00002692 ncall  0x000038c1 , 0x00000034 
+ 00014476  0x00002694 fetch  0x00000001 , 0x00004896 
+ 00014477  0x00002695 ncall  0x000038c3 , 0x00000034 
+ 00014478  0x00002697 fetch  0x00000001 , 0x00004897 
+ 00014479  0x00002698 ncall  0x000038c5 , 0x00000034 
+ 00014480  0x0000269a fetch  0x00000001 , 0x00004898 
+ 00014481  0x0000269b ncall  0x000038c7 , 0x00000034 
+ 00014482  0x0000269d fetch  0x00000001 , 0x00004899 
+ 00014483  0x0000269e ncall  0x000038c9 , 0x00000034 
+ 00014484  0x000026a0 fetch  0x00000005 , 0x0000489a 
+ 00014485  0x000026a1 ncall  0x000038cb , 0x00000034 
+ 00014486  0x000026a3 fetch  0x00000001 , 0x0000489f 
+ 00014487  0x000026a4 ncall  0x000038cd , 0x00000034 
+ 00014488  0x000026a6 fetch  0x00000001 , 0x000048a0 
+ 00014489  0x000026a7 ncall  0x000038cf , 0x00000034 
+ 00014490  0x000026a9 fetch  0x00000002 , 0x000048a1 
+ 00014491  0x000026aa ncall  0x000038d1 , 0x00000034 
+ 00014492  0x000026ac fetch  0x00000003 , 0x000048a3 
+ 00014493  0x000026ad ncall  0x000038d3 , 0x00000034 
+ 00014494  0x000026af fetch  0x00000001 , 0x000048a6 
+ 00014495  0x000026b0 ncall  0x000038d5 , 0x00000034 
+ 00014496  0x000026b2 fetch  0x00000001 , 0x000048a7 
+ 00014497  0x000026b3 ncall  0x000038d7 , 0x00000034 
+ 00014498  0x000026b5 fetch  0x00000002 , 0x000048a8 
+ 00014499  0x000026b6 ncall  0x000038d9 , 0x00000034 
+ 00014500  0x000026b8 fetch  0x00000002 , 0x000048aa 
+ 00014501  0x000026b9 ncall  0x000038db , 0x00000034 
+ 00014502  0x000026bb fetch  0x00000001 , 0x000048ac 
+ 00014503  0x000026bc ncall  0x000038dd , 0x00000034 
+ 00014504  0x000026be fetch  0x00000001 , 0x000048ad 
+ 00014505  0x000026bf ncall  0x000038df , 0x00000034 
+ 00014506  0x000026c1 fetch  0x00000001 , 0x000048b2 
+ 00014507  0x000026c2 ncall  0x000038e1 , 0x00000034 
+ 00014508  0x000026c4 fetch  0x00000001 , 0x000048b3 
+ 00014509  0x000026c5 ncall  0x000038e3 , 0x00000034 
+ 00014510  0x000026c7 fetch  0x00000001 , 0x000048b4 
+ 00014511  0x000026c8 ncall  0x000038e5 , 0x00000034 
+ 00014512  0x000026ca fetch  0x00000004 , 0x000048b5 
+ 00014513  0x000026cb ncall  0x000038e7 , 0x00000034 
+ 00014514  0x000026cd fetch  0x00000001 , 0x000048b9 
+ 00014515  0x000026ce ncall  0x000038ea , 0x00000034 
+ 00014516  0x000026d0 fetch  0x00000004 , 0x000048bb 
+ 00014517  0x000026d1 ncall  0x000038ef , 0x00000034 
+ 00014518  0x000026d3 fetch  0x00000004 , 0x000048bf 
+ 00014519  0x000026d4 ncall  0x000038f1 , 0x00000034 
+ 00014520  0x000026d5 rtn 
+ 00014521  0x000026d8 store  0x00000001 , 0x00004148 
+ 00014522  0x000026d9 rtn 
+ 00014523  0x000026db store  0x00000003 , 0x000040c3 
+ 00014524  0x000026dc rtn 
+ 00014525  0x000026de store  0x00000003 , 0x000040c6 
+ 00014526  0x000026df rtn 
+ 00014527  0x000026e1 store  0x00000001 , 0x000040a7 
+ 00014528  0x000026e2 rtn 
+ 00014529  0x000026e4 store  0x00000001 , 0x000040c9 
+ 00014530  0x000026e5 rtn 
+ 00014531  0x000026e7 store  0x00000001 , 0x000040ca 
+ 00014532  0x000026e8 rtn 
+ 00014533  0x000026ea store  0x00000001 , 0x000040cb 
+ 00014534  0x000026eb rtn 
+ 00014535  0x000026ed store  0x00000001 , 0x00004099 
+ 00014536  0x000026ee rtn 
+ 00014537  0x000026f0 store  0x00000001 , 0x0000411c 
+ 00014538  0x000026f1 rtn 
+ 00014539  0x000026f3 store  0x00000005 , 0x00004160 
+ 00014540  0x000026f4 rtn 
+ 00014541  0x000026f6 store  0x00000001 , 0x0000416a 
+ 00014542  0x000026f7 rtn 
+ 00014543  0x000026f9 store  0x00000001 , 0x00004143 
+ 00014544  0x000026fa rtn 
+ 00014545  0x000026fc store  0x00000002 , 0x0000409a 
+ 00014546  0x000026fd rtn 
+ 00014547  0x000026ff store  0x00000003 , 0x00004144 
+ 00014548  0x00002700 rtn 
+ 00014549  0x00002702 store  0x00000001 , 0x00004147 
+ 00014550  0x00002703 rtn 
+ 00014551  0x00002705 store  0x00000001 , 0x0000444f 
+ 00014552  0x00002706 rtn 
+ 00014553  0x00002708 store  0x00000002 , 0x00004452 
+ 00014554  0x00002709 rtn 
+ 00014555  0x0000270b store  0x00000002 , 0x00004450 
+ 00014556  0x0000270c rtn 
+ 00014557  0x0000270e store  0x00000001 , 0x00004454 
+ 00014558  0x0000270f rtn 
+ 00014559  0x00002711 store  0x00000001 , 0x00004455 
+ 00014560  0x00002712 rtn 
+ 00014561  0x00002714 store  0x00000001 , 0x00004141 
+ 00014562  0x00002715 rtn 
+ 00014563  0x00002717 store  0x00000001 , 0x000045cf 
+ 00014564  0x00002718 rtn 
+ 00014565  0x0000271a store  0x00000001 , 0x000045ce 
+ 00014566  0x0000271b rtn 
+ 00014567  0x0000271d store  0x00000004 , 0x0000468c 
+ 00014568  0x0000271e jam  0x00000001 , 0x0000469c 
+ 00014569  0x0000271f rtn 
+ 00014570  0x00002721 fetch  0x00000001 , 0x0000469c 
+ 00014571  0x00002722 nrtn  0x00000034 
+ 00014572  0x00002723 fetch  0x00000001 , 0x000048b9 
+ 00014573  0x00002724 store  0x00000001 , 0x00004690 
+ 00014574  0x00002725 rtn 
+ 00014575  0x00002728 store  0x00000004 , 0x000045a6 
+ 00014576  0x00002729 rtn 
+ 00014577  0x0000272b store  0x00000004 , 0x000045aa 
+ 00014578  0x0000272c rtn 
+ 00014579  0x00002730 setarg  0x0000000f 
+ 00014580  0x00002731 store  0x00000002 , 0x00004684 
+ 00014581  0x00002732 setarg  0x0000012c 
+ 00014582  0x00002733 store  0x00000002 , 0x00004686 
+ 00014583  0x00002734 call  0x0000394f 
+ 00014584  0x00002735 call  0x00003963 
+ 00014585  0x00002736 call  0x000038fb 
+ 00014586  0x00002737 branch  0x00003981 
+ 00014587  0x0000273a arg  0x000042dd , 0x00000011 
+ 00014588  0x0000273b arg  0x00004680 , 0x00000012 
+ 00014589  0x0000273c arg  0x00000004 , 0x00000039 
+ 00014590  0x0000273d call  0x00007d66 
+ 00014591  0x0000273e nrtn  0x00000005 
+ 00014592  0x0000273f fetch  0x00000001 , 0x000042dd 
+ 00014593  0x00002740 pincrease  0xffffffff 
+ 00014594  0x00002741 store  0x00000001 , 0x000042dd 
+ 00014595  0x00002742 rtn 
+ 00014596  0x00002745 fetch  0x00000001 , 0x0000426d 
+ 00014597  0x00002746 arg  0x0000426e , 0x00000005 
+ 00014598  0x00002747 iadd  0x00000005 , 0x00000012 
+ 00014599  0x00002748 add  0x0000003f , 0x00000010 , 0x0000003f 
+ 00014600  0x00002749 store  0x00000001 , 0x0000426d 
+ 00014601  0x0000274b arg  0x00000006 , 0x00000039 
+ 00014602  0x0000274c arg  0x000042e2 , 0x00000011 
+ 00014603  0x0000274d copy  0x00000012 , 0x00000005 
+ 00014604  0x0000274f ifetcht  0x00000001 , 0x00000011 
+ 00014605  0x00002750 and  0x00000002 , 0x000000f0 , 0x0000003f 
+ 00014606  0x00002751 rshift4  0x0000003f , 0x0000003f 
+ 00014607  0x00002752 call  0x00003917 
+ 00014608  0x00002754 istore  0x00000001 , 0x00000005 
+ 00014609  0x00002755 and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00014610  0x00002756 call  0x00003917 
+ 00014611  0x00002757 istore  0x00000001 , 0x00000005 
+ 00014612  0x00002758 increase  0xffffffff , 0x00000011 
+ 00014613  0x00002759 loop  0x0000390c 
+ 00014614  0x0000275a rtn 
+ 00014615  0x0000275c sub  0x0000003f , 0x00000009 , 0x0000003e 
+ 00014616  0x0000275d branch  0x0000391b , 0x00000002 
+ 00014617  0x0000275f add  0x0000003f , 0x00000037 , 0x0000003f 
+ 00014618  0x00002760 rtn 
+ 00014619  0x00002762 add  0x0000003f , 0x00000030 , 0x0000003f 
+ 00014620  0x00002763 rtn 
+ 00014621  0x00002768 jam  0x00000017 , 0x000042e3 
+ 00014622  0x00002769 setarg  0x0000001b 
+ 00014623  0x0000276a store  0x00000002 , 0x00004334 
+ 00014624  0x0000276b call  0x000029a4 
+ 00014625  0x0000276c call  0x000029be 
+ 00014626  0x0000276d call  0x000029ca 
+ 00014627  0x0000276e branch  0x000029ac 
+ 00014628  0x00002772 deposit  0x00000013 
+ 00014629  0x00002773 beq  0x00000014 , 0x00003930 
+ 00014630  0x00002774 beq  0x00000015 , 0x00003928 
+ 00014631  0x00002775 rtn 
+ 00014632  0x00002778 jam  0x00000000 , 0x0000467f 
+ 00014633  0x00002779 call  0x0000394b 
+ 00014634  0x0000277a jam  0x00000000 , 0x00004689 
+ 00014635  0x0000277b jam  0x00000001 , 0x0000469a 
+ 00014636  0x0000277c setarg  0x00000000 
+ 00014637  0x0000277d store  0x00000003 , 0x000046f2 
+ 00014638  0x0000277e call  0x0000789d 
+ 00014639  0x0000277f branch  0x0000378c 
+ 00014640  0x00002782 jam  0x00000001 , 0x0000467f 
+ 00014641  0x00002783 call  0x00003adc 
+ 00014642  0x00002784 branch  0x000037a0 
+ 00014643  0x00002788 fetch  0x00000002 , 0x0000439c 
+ 00014644  0x00002789 beq  0x00000011 , 0x00003936 
+ 00014645  0x0000278a rtn 
+ 00014646  0x0000278e bpatch  0x0000002f , 0x00004005 
+ 00014647  0x0000278f copy  0x00000012 , 0x00000039 
+ 00014648  0x00002790 copy  0x00000011 , 0x00000006 
+ 00014649  0x00002791 arg  0x000046f2 , 0x00000005 
+ 00014650  0x00002792 call  0x00007cdc 
+ 00014651  0x00002793 fetch  0x00000001 , 0x000046f2 
+ 00014652  0x00002794 rtn  0x00000034 
+ 00014653  0x00002796 call  0x0000394b 
+ 00014654  0x00002797 jam  0x00000004 , 0x00004689 
+ 00014655  0x00002798 fetch  0x00000001 , 0x000046f4 
+ 00014656  0x00002799 rtnne  0x00000002 
+ 00014657  0x0000279a fetch  0x00000001 , 0x000046fa 
+ 00014658  0x0000279b beq  0x00000001 , 0x00003a60 
+ 00014659  0x0000279c beq  0x00000002 , 0x00003a65 
+ 00014660  0x0000279d beq  0x00000003 , 0x00003a6f 
+ 00014661  0x0000279e beq  0x00000004 , 0x00003a6a 
+ 00014662  0x0000279f beq  0x000000a1 , 0x00003a74 
+ 00014663  0x000027a0 beq  0x000000a2 , 0x00003a71 
+ 00014664  0x000027a1 beq  0x000000a3 , 0x00003a7a 
+ 00014665  0x000027a2 beq  0x000000a4 , 0x00003a77 
+ 00014666  0x000027a3 rtn 
+ 00014667  0x000027a6 fetch  0x00000001 , 0x0000469c 
+ 00014668  0x000027a7 rtn  0x00000034 
+ 00014669  0x000027a8 call  0x00003acd 
+ 00014670  0x000027a9 branch  0x00003ac1 
+ 00014671  0x000027ac arg  0x00000004 , 0x00000039 
+ 00014672  0x000027ad arg  0x000045a6 , 0x00000013 
+ 00014673  0x000027ae arg  0x000000ae , 0x00000012 
+ 00014674  0x000027b2 call  0x00003956 
+ 00014675  0x000027b3 increase  0x00000001 , 0x00000013 
+ 00014676  0x000027b4 loop  0x00003952 
+ 00014677  0x000027b5 rtn 
+ 00014678  0x000027b7 arg  0x00000001 , 0x00000011 
+ 00014679  0x000027b9 lshift  0x00000012 , 0x00000012 
+ 00014680  0x000027ba isolate1  0x00000007 , 0x00000012 
+ 00014681  0x000027bb call  0x0000395e , 0x00000001 
+ 00014682  0x000027bc lshift  0x00000011 , 0x00000011 
+ 00014683  0x000027bd deposit  0x00000011 
+ 00014684  0x000027be rtnbit1  0x00000008 
+ 00014685  0x000027bf branch  0x00003957 
+ 00014686  0x000027c1 ifetch  0x00000001 , 0x00000013 
+ 00014687  0x000027c2 ixor  0x00000011 , 0x0000003f 
+ 00014688  0x000027c3 istore  0x00000001 , 0x00000013 
+ 00014689  0x000027c4 xor  0x00000012 , 0x00000011 , 0x00000012 
+ 00014690  0x000027c5 rtn 
+ 00014691  0x000027ca call  0x00006b28 
+ 00014692  0x000027cb arg  0x00004691 , 0x00000011 
+ 00014693  0x000027cc arg  0x00001fda , 0x00000012 
+ 00014694  0x000027cd arg  0x00000006 , 0x00000039 
+ 00014695  0x000027ce call  0x00006b62 
+ 00014696  0x000027cf call  0x00006b25 
+ 00014697  0x000027d0 fetch  0x00000006 , 0x00004691 
+ 00014698  0x000027d1 rtn  0x00000034 
+ 00014699  0x000027d2 fetch  0x00000002 , 0x00004691 
+ 00014700  0x000027d3 store  0x00000002 , 0x000042dd 
+ 00014701  0x000027d4 fetch  0x00000001 , 0x00004694 
+ 00014702  0x000027d5 store  0x00000001 , 0x000042df 
+ 00014703  0x000027d6 fetch  0x00000001 , 0x00004696 
+ 00014704  0x000027d7 store  0x00000001 , 0x000042e0 
+ 00014705  0x000027d9 fetch  0x00000001 , 0x00004692 
+ 00014706  0x000027da sub  0x0000003f , 0x0000001a , 0x0000003e 
+ 00014707  0x000027db nrtn  0x00000002 
+ 00014708  0x000027dd fetch  0x00000001 , 0x00004693 
+ 00014709  0x000027de rtn  0x00000034 
+ 00014710  0x000027df random  0x0000003f 
+ 00014711  0x000027e0 and_into  0x00000007 , 0x0000003f 
+ 00014712  0x000027e1 lshift  0x0000003f , 0x0000003f 
+ 00014713  0x000027e2 lshift4  0x0000003f , 0x0000003f 
+ 00014714  0x000027e3 fetcht  0x00000001 , 0x00004692 
+ 00014715  0x000027e4 iadd  0x00000002 , 0x0000003f 
+ 00014716  0x000027e5 store  0x00000001 , 0x000042de 
+ 00014717  0x000027e6 arg  0x000042de , 0x00000011 
+ 00014718  0x000027e7 arg  0x00001fdb , 0x00000012 
+ 00014719  0x000027e8 arg  0x00000001 , 0x00000039 
+ 00014720  0x000027e9 branch  0x00006b33 
+ 00014721  0x000027ee fetch  0x00000001 , 0x0000469c 
+ 00014722  0x000027ef nrtn  0x00000034 
+ 00014723  0x000027f0 arg  0x00000000 , 0x00000011 
+ 00014724  0x000027f1 call  0x000070b9 
+ 00014725  0x000027f3 arg  0x00004650 , 0x00000011 
+ 00014726  0x000027f4 arg  0x00001770 , 0x00000012 
+ 00014727  0x000027f5 arg  0x00000000 , 0x0000003f 
+ 00014728  0x000027f6 call  0x000070de 
+ 00014729  0x000027f7 fetch  0x00000001 , 0x00004690 
+ 00014730  0x000027f8 branch  0x00007100 
+ 00014731  0x000027fd bpatch  0x00000030 , 0x00004006 
+ 00014732  0x000027fe arg  0x0000000a , 0x0000003f 
+ 00014733  0x000027ff call  0x0000710e 
+ 00014734  0x00002801 call  0x000039a7 
+ 00014735  0x00002802 fetch  0x00000001 , 0x0000467f 
+ 00014736  0x00002803 nrtn  0x00000034 
+ 00014737  0x00002804 fetch  0x00000002 , 0x00004660 
+ 00014738  0x00002805 increase  0x00000001 , 0x0000003f 
+ 00014739  0x00002806 store  0x00000002 , 0x00004660 
+ 00014740  0x00002807 rshift4  0x0000003f , 0x0000003f 
+ 00014741  0x00002808 call  0x000039fb 
+ 00014742  0x0000280a call  0x000039ae 
+ 00014743  0x0000280b call  0x00003a0f 
+ 00014744  0x0000280c setarg  0x0000450e 
+ 00014745  0x0000280d increase  0x00000002 , 0x0000003f 
+ 00014746  0x0000280e copy  0x0000003f , 0x00000006 
+ 00014747  0x0000280f arg  0x0000000c , 0x00000039 
+ 00014748  0x00002810 arg  0x00000000 , 0x0000003f 
+ 00014749  0x00002811 call  0x00007dd0 
+ 00014750  0x00002812 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00014751  0x00002813 fetcht  0x00000001 , 0x0000451c 
+ 00014752  0x00002814 isub  0x00000002 , 0x0000003e 
+ 00014753  0x00002815 nrtn  0x00000005 
+ 00014754  0x00002817 fetch  0x00000001 , 0x00004510 
+ 00014755  0x00002818 bpatch  0x00000031 , 0x00004006 
+ 00014756  0x00002819 beq  0x000000aa , 0x00003a88 
+ 00014757  0x0000281a beq  0x000000cc , 0x00003a21 
+ 00014758  0x0000281b rtn 
+ 00014759  0x0000281d fetch  0x00000001 , 0x0000469c 
+ 00014760  0x0000281e nrtn  0x00000034 
+ 00014761  0x0000281f call  0x000039c4 
+ 00014762  0x00002820 call  0x000039e5 
+ 00014763  0x00002821 call  0x000039f1 
+ 00014764  0x00002822 call  0x000039d7 
+ 00014765  0x00002823 rtn 
+ 00014766  0x00002826 arg  0x00000004 , 0x00000002 
+ 00014767  0x00002827 arg  0x00000005 , 0x00000007 
+ 00014768  0x00002828 call  0x000020dc 
+ 00014769  0x00002829 rtn  0x00000028 
+ 00014770  0x0000282a set1  0x00000027 , 0x00000000 
+ 00014771  0x0000282b setarg  0x00008ca0 
+ 00014772  0x0000282c store  0x00000002 , 0x000045a2 
+ 00014773  0x0000282d jam  0x00000001 , 0x00004628 
+ 00014774  0x0000282e fetch  0x00000001 , 0x000045ce 
+ 00014775  0x0000282f call  0x00002579 
+ 00014776  0x00002830 call  0x00003217 
+ 00014777  0x00002831 call  0x000033c7 
+ 00014778  0x00002832 call  0x000031f3 
+ 00014779  0x00002833 call  0x00003162 
+ 00014780  0x00002834 nrtn  0x0000002f 
+ 00014781  0x00002835 rtn 
+ 00014782  0x00002838 jam  0x0000000b , 0x0000459f 
+ 00014783  0x00002839 fetch  0x00000007 , 0x00004666 
+ 00014784  0x0000283a store  0x00000007 , 0x00004530 
+ 00014785  0x0000283b fetch  0x00000004 , 0x0000466d 
+ 00014786  0x0000283c store  0x00000004 , 0x00004537 
+ 00014787  0x0000283d rtn 
+ 00014788  0x00002840 arg  0x00000008 , 0x00000011 
+ 00014789  0x00002842 arg  0x0000000c , 0x00000007 
+ 00014790  0x00002843 call  0x00007cf1 
+ 00014791  0x00002844 branch  0x000039cf , 0x00000034 
+ 00014792  0x00002845 isub  0x00000011 , 0x0000003e 
+ 00014793  0x00002846 branch  0x000039cb , 0x00000005 
+ 00014794  0x00002847 rtn  0x00000002 
+ 00014795  0x00002849 arg  0x0000000c , 0x00000007 
+ 00014796  0x0000284a call  0x00007cf1 
+ 00014797  0x0000284b branch  0x000039cf , 0x00000034 
+ 00014798  0x0000284c branch  0x000039cb 
+ 00014799  0x0000284f fetch  0x00000001 , 0x00004688 
+ 00014800  0x00002850 beq  0x00000002 , 0x000039d5 
+ 00014801  0x00002851 beq  0x00000003 , 0x000039d3 
+ 00014802  0x00002852 rtn 
+ 00014803  0x00002854 jam  0x00000001 , 0x00004688 
+ 00014804  0x00002855 rtn 
+ 00014805  0x00002857 jam  0x00000000 , 0x00004688 
+ 00014806  0x00002858 rtn 
+ 00014807  0x0000285b fetch  0x00000001 , 0x00004689 
+ 00014808  0x0000285c rtn  0x00000034 
+ 00014809  0x0000285d fetcht  0x00000001 , 0x00004688 
+ 00014810  0x0000285e compare  0x00000001 , 0x00000002 , 0x000000ff 
+ 00014811  0x0000285f nrtn  0x00000001 
+ 00014812  0x00002860 jam  0x00000002 , 0x00004688 
+ 00014813  0x00002861 arg  0x00001770 , 0x00000011 
+ 00014814  0x00002862 arg  0x00001770 , 0x00000012 
+ 00014815  0x00002863 arg  0x00000000 , 0x0000003f 
+ 00014816  0x00002864 call  0x000070de 
+ 00014817  0x00002865 fetch  0x00000001 , 0x0000468a 
+ 00014818  0x00002866 arg  0x0000000c , 0x00000007 
+ 00014819  0x00002867 call  0x00007ce3 
+ 00014820  0x00002868 rtn 
+ 00014821  0x0000286a fetcht  0x00000001 , 0x00004688 
+ 00014822  0x0000286b compare  0x00000000 , 0x00000002 , 0x000000ff 
+ 00014823  0x0000286c nrtn  0x00000001 
+ 00014824  0x0000286d jam  0x00000003 , 0x00004688 
+ 00014825  0x0000286e arg  0x00004650 , 0x00000011 
+ 00014826  0x0000286f arg  0x00001770 , 0x00000012 
+ 00014827  0x00002870 arg  0x00000000 , 0x0000003f 
+ 00014828  0x00002871 call  0x000070de 
+ 00014829  0x00002872 setarg  0x0000000c 
+ 00014830  0x00002873 arg  0x0000000c , 0x00000007 
+ 00014831  0x00002874 call  0x00007ce3 
+ 00014832  0x00002875 rtn 
+ 00014833  0x00002877 fetch  0x00000001 , 0x00004689 
+ 00014834  0x00002878 arg  0x000003e8 , 0x00000002 
+ 00014835  0x00002879 imul32  0x00000002 , 0x0000003f 
+ 00014836  0x0000287a arg  0x00000271 , 0x00000002 
+ 00014837  0x0000287b idiv  0x00000002 
+ 00014838  0x0000287c call  0x00007d64 
+ 00014839  0x0000287d quotient  0x0000003f 
+ 00014840  0x0000287e pincrease  0x00000001 
+ 00014841  0x0000287f store  0x00000001 , 0x0000468a 
+ 00014842  0x00002880 rtn 
+ 00014843  0x00002885 beq  0x00000000 , 0x00003a00 
+ 00014844  0x00002886 beq  0x00000001 , 0x00003a03 
+ 00014845  0x00002887 beq  0x00000002 , 0x00003a06 
+ 00014846  0x00002888 beq  0x00000003 , 0x00003a09 
+ 00014847  0x00002889 branch  0x00003a0c 
+ 00014848  0x0000288b fetch  0x00000001 , 0x000045aa 
+ 00014849  0x0000288c store  0x00000001 , 0x000045a4 
+ 00014850  0x0000288d rtn 
+ 00014851  0x0000288f fetch  0x00000001 , 0x000045ab 
+ 00014852  0x00002890 store  0x00000001 , 0x000045a4 
+ 00014853  0x00002891 rtn 
+ 00014854  0x00002893 fetch  0x00000001 , 0x000045ac 
+ 00014855  0x00002894 store  0x00000001 , 0x000045a4 
+ 00014856  0x00002895 rtn 
+ 00014857  0x00002897 fetch  0x00000001 , 0x000045ad 
+ 00014858  0x00002898 store  0x00000001 , 0x000045a4 
+ 00014859  0x00002899 rtn 
+ 00014860  0x0000289b setarg  0x00000000 
+ 00014861  0x0000289c store  0x00000002 , 0x00004660 
+ 00014862  0x0000289d rtn 
+ 00014863  0x000028a2 fetch  0x00000001 , 0x0000465f 
+ 00014864  0x000028a3 rtn  0x00000034 
+ 00014865  0x000028a4 fetch  0x00000001 , 0x0000467e 
+ 00014866  0x000028a5 arg  0x0000000f , 0x00000002 
+ 00014867  0x000028a6 isub  0x00000002 , 0x0000003e 
+ 00014868  0x000028a7 nrtn  0x00000002 
+ 00014869  0x000028a8 jam  0x00000000 , 0x0000467e 
+ 00014870  0x000028a9 setarg  0x00000000 
+ 00014871  0x000028aa store  0x00000002 , 0x0000467b 
+ 00014872  0x000028ab call  0x0000394b 
+ 00014873  0x000028ad jam  0x00000004 , 0x00004689 
+ 00014874  0x000028ae jam  0x00000000 , 0x0000438c 
+ 00014875  0x000028af jam  0x00000001 , 0x00004699 
+ 00014876  0x000028b0 fetch  0x00000001 , 0x0000469a 
+ 00014877  0x000028b1 rtn  0x00000034 
+ 00014878  0x000028b2 jam  0x00000000 , 0x00004689 
+ 00014879  0x000028b3 jam  0x00000001 , 0x0000438c 
+ 00014880  0x000028b4 rtn 
+ 00014881  0x000028b8 bpatch  0x00000032 , 0x00004006 
+ 00014882  0x000028b9 fetch  0x00000007 , 0x00004510 
+ 00014883  0x000028ba store  0x00000007 , 0x00004672 
+ 00014884  0x000028bb fetch  0x00000005 , 0x00004517 
+ 00014885  0x000028bc store  0x00000005 , 0x00004679 
+ 00014886  0x000028bd arg  0x00004673 , 0x00000011 
+ 00014887  0x000028be fetch  0x00000004 , 0x00004662 
+ 00014888  0x000028bf branch  0x00003a7d , 0x00000034 
+ 00014889  0x000028c0 arg  0x00004662 , 0x00000012 
+ 00014890  0x000028c1 arg  0x00000004 , 0x00000039 
+ 00014891  0x000028c2 call  0x00007d66 
+ 00014892  0x000028c3 nrtn  0x00000005 
+ 00014893  0x000028c4 arg  0x00004677 , 0x00000011 
+ 00014894  0x000028c5 arg  0x00004680 , 0x00000012 
+ 00014895  0x000028c6 arg  0x00000004 , 0x00000039 
+ 00014896  0x000028c7 call  0x00007d66 
+ 00014897  0x000028c8 branch  0x00003a3c , 0x00000005 
+ 00014898  0x000028ca arg  0x00004677 , 0x00000011 
+ 00014899  0x000028cb arg  0x000042dd , 0x00000012 
+ 00014900  0x000028cc arg  0x00000004 , 0x00000039 
+ 00014901  0x000028cd call  0x00007d66 
+ 00014902  0x000028ce nbranch  0x00003a38 , 0x00000005 
+ 00014903  0x000028cf branch  0x00003a40 
+ 00014904  0x000028d2 jam  0x00000000 , 0x0000465f 
+ 00014905  0x000028d3 setarg  0x00000000 
+ 00014906  0x000028d4 store  0x00000004 , 0x00004662 
+ 00014907  0x000028d5 rtn 
+ 00014908  0x000028d8 fetch  0x00000001 , 0x0000469b 
+ 00014909  0x000028d9 beq  0x00000000 , 0x00003a38 
+ 00014910  0x000028da beq  0x00000001 , 0x00003a40 
+ 00014911  0x000028db rtn 
+ 00014912  0x000028de jam  0x00000000 , 0x0000467e 
+ 00014913  0x000028df fetch  0x00000002 , 0x0000467b 
+ 00014914  0x000028e0 branch  0x00003a18 , 0x00000034 
+ 00014915  0x000028e1 call  0x00003a47 
+ 00014916  0x000028e2 call  0x00003a50 
+ 00014917  0x000028e3 call  0x00003a55 
+ 00014918  0x000028e4 branch  0x00003a59 
+ 00014919  0x000028e7 fetch  0x00000001 , 0x0000469c 
+ 00014920  0x000028e8 nrtn  0x00000034 
+ 00014921  0x000028e9 jam  0x00000001 , 0x0000438c 
+ 00014922  0x000028ea jam  0x00000001 , 0x00004397 
+ 00014923  0x000028eb jam  0x00000000 , 0x0000469a 
+ 00014924  0x000028ec jam  0x00000000 , 0x00004699 
+ 00014925  0x000028ed setarg  0x0000000f 
+ 00014926  0x000028ee store  0x00000002 , 0x00004684 
+ 00014927  0x000028ef rtn 
+ 00014928  0x000028f2 fetch  0x00000001 , 0x0000469b 
+ 00014929  0x000028f3 rtn  0x00000034 
+ 00014930  0x000028f4 setarg  0x0000012c 
+ 00014931  0x000028f5 store  0x00000002 , 0x00004686 
+ 00014932  0x000028f6 rtn 
+ 00014933  0x000028f9 fetch  0x00000001 , 0x0000467c 
+ 00014934  0x000028fa beq  0x00000001 , 0x00003a62 
+ 00014935  0x000028fb beq  0x00000002 , 0x00003a5d 
+ 00014936  0x000028fc rtn 
+ 00014937  0x000028fe fetch  0x00000001 , 0x0000467b 
+ 00014938  0x000028ff beq  0x00000001 , 0x00003a67 
+ 00014939  0x00002900 beq  0x00000002 , 0x00003a6c 
+ 00014940  0x00002901 rtn 
+ 00014941  0x00002904 fetch  0x00000001 , 0x0000467b 
+ 00014942  0x00002905 beq  0x00000001 , 0x00003a71 
+ 00014943  0x00002906 beq  0x00000002 , 0x00003a74 
+ 00014944  0x00002907 jam  0x0000000a , 0x00004689 
+ 00014945  0x00002908 branch  0x00003ac9 
+ 00014946  0x0000290b fetch  0x00000001 , 0x0000467b 
+ 00014947  0x0000290c beq  0x00000001 , 0x00003a77 
+ 00014948  0x0000290d beq  0x00000002 , 0x00003a7a 
+ 00014949  0x0000290e jam  0x00000028 , 0x00004689 
+ 00014950  0x0000290f branch  0x00003ac5 
+ 00014951  0x00002912 fetch  0x00000001 , 0x0000467c 
+ 00014952  0x00002913 beq  0x00000001 , 0x00003a77 
+ 00014953  0x00002914 beq  0x00000002 , 0x00003a71 
+ 00014954  0x00002915 jam  0x0000003a , 0x00004689 
+ 00014955  0x00002916 branch  0x00003ad5 
+ 00014956  0x00002919 fetch  0x00000001 , 0x0000467c 
+ 00014957  0x0000291a beq  0x00000001 , 0x00003a7a 
+ 00014958  0x0000291b beq  0x00000002 , 0x00003a74 
+ 00014959  0x0000291c jam  0x00000040 , 0x00004689 
+ 00014960  0x0000291d branch  0x00003ad1 
+ 00014961  0x00002920 jam  0x0000001c , 0x00004689 
+ 00014962  0x00002921 call  0x00003ac9 
+ 00014963  0x00002922 branch  0x00003ad5 
+ 00014964  0x00002924 jam  0x00000022 , 0x00004689 
+ 00014965  0x00002925 call  0x00003ac9 
+ 00014966  0x00002926 branch  0x00003ad1 
+ 00014967  0x00002928 jam  0x00000034 , 0x00004689 
+ 00014968  0x00002929 call  0x00003ac5 
+ 00014969  0x0000292a branch  0x00003ad5 
+ 00014970  0x0000292c jam  0x0000002e , 0x00004689 
+ 00014971  0x0000292d call  0x00003ac5 
+ 00014972  0x0000292e branch  0x00003ad1 
+ 00014973  0x00002932 arg  0x00004677 , 0x00000011 
+ 00014974  0x00002933 arg  0x00004680 , 0x00000012 
+ 00014975  0x00002934 arg  0x00000004 , 0x00000039 
+ 00014976  0x00002935 call  0x00007d66 
+ 00014977  0x00002936 branch  0x00003a88 , 0x00000005 
+ 00014978  0x00002938 arg  0x00004677 , 0x00000011 
+ 00014979  0x00002939 arg  0x000042dd , 0x00000012 
+ 00014980  0x0000293a arg  0x00000004 , 0x00000039 
+ 00014981  0x0000293b call  0x00007d66 
+ 00014982  0x0000293c nrtn  0x00000005 
+ 00014983  0x0000293d branch  0x00003a88 
+ 00014984  0x0000293f fetch  0x00000007 , 0x00004510 
+ 00014985  0x00002940 store  0x00000007 , 0x00004672 
+ 00014986  0x00002941 fetch  0x00000001 , 0x0000465f 
+ 00014987  0x00002942 beq  0x00000000 , 0x00003a8e 
+ 00014988  0x00002943 beq  0x00000001 , 0x00003a97 
+ 00014989  0x00002944 rtn 
+ 00014990  0x00002946 call  0x00003adc 
+ 00014991  0x00002948 jam  0x00000001 , 0x0000465f 
+ 00014992  0x00002949 jam  0x000000bb , 0x00004666 
+ 00014993  0x0000294a fetch  0x00000004 , 0x00004673 
+ 00014994  0x0000294b store  0x00000004 , 0x00004662 
+ 00014995  0x0000294c store  0x00000004 , 0x0000466b 
+ 00014996  0x0000294d fetch  0x00000004 , 0x000042dd 
+ 00014997  0x0000294e store  0x00000004 , 0x00004667 
+ 00014998  0x0000294f rtn 
+ 00014999  0x00002952 arg  0x00004673 , 0x00000011 
+ 00015000  0x00002953 arg  0x00004662 , 0x00000012 
+ 00015001  0x00002954 arg  0x00000004 , 0x00000039 
+ 00015002  0x00002955 call  0x00007d66 
+ 00015003  0x00002956 branch  0x00003a8e , 0x00000005 
+ 00015004  0x0000295a fetch  0x00000001 , 0x0000467e 
+ 00015005  0x0000295b increase  0x00000001 , 0x0000003f 
+ 00015006  0x0000295c store  0x00000001 , 0x0000467e 
+ 00015007  0x0000295d call  0x00003aa1 
+ 00015008  0x0000295e branch  0x00003aae 
+ 00015009  0x00002962 fetch  0x00000001 , 0x0000469c 
+ 00015010  0x00002963 nrtn  0x00000034 
+ 00015011  0x00002964 fetch  0x00000001 , 0x00004699 
+ 00015012  0x00002965 rtn  0x00000034 
+ 00015013  0x00002966 arg  0x00004684 , 0x00000013 
+ 00015014  0x00002967 arg  0x00003aa8 , 0x00000012 
+ 00015015  0x00002968 branch  0x0000375c 
+ 00015016  0x0000296a setarg  0x0000000f 
+ 00015017  0x0000296b store  0x00000002 , 0x00004684 
+ 00015018  0x0000296c jam  0x00000007 , 0x00004397 
+ 00015019  0x0000296d jam  0x00000000 , 0x00004699 
+ 00015020  0x0000296e jam  0x00000001 , 0x0000469a 
+ 00015021  0x0000296f rtn 
+ 00015022  0x00002972 fetch  0x00000001 , 0x0000469b 
+ 00015023  0x00002973 rtn  0x00000034 
+ 00015024  0x00002974 arg  0x00004686 , 0x00000013 
+ 00015025  0x00002975 arg  0x00003ab3 , 0x00000012 
+ 00015026  0x00002976 branch  0x0000375c 
+ 00015027  0x00002978 setarg  0x0000012c 
+ 00015028  0x00002979 store  0x00000002 , 0x00004686 
+ 00015029  0x0000297a jam  0x00000000 , 0x0000469b 
+ 00015030  0x0000297b rtn 
+ 00015031  0x0000297e ifetch  0x00000001 , 0x00000006 
+ 00015032  0x0000297f beq  0x00000000 , 0x00003ac1 
+ 00015033  0x00002980 beq  0x00000001 , 0x00003ac5 
+ 00015034  0x00002981 beq  0x00000002 , 0x00003ac9 
+ 00015035  0x00002982 rtn 
+ 00015036  0x00002984 ifetch  0x00000001 , 0x00000006 
+ 00015037  0x00002985 beq  0x00000000 , 0x00003acd 
+ 00015038  0x00002986 beq  0x00000002 , 0x00003ad1 
+ 00015039  0x00002987 beq  0x00000001 , 0x00003ad5 
+ 00015040  0x00002988 rtn 
+ 00015041  0x0000298b fetcht  0x00000001 , 0x0000468c 
+ 00015042  0x0000298c call  0x00006eed 
+ 00015043  0x0000298d fetcht  0x00000001 , 0x0000468d 
+ 00015044  0x0000298e branch  0x00006eed 
+ 00015045  0x00002990 fetcht  0x00000001 , 0x0000468c 
+ 00015046  0x00002991 call  0x00006ef1 
+ 00015047  0x00002992 fetcht  0x00000001 , 0x0000468d 
+ 00015048  0x00002993 branch  0x00006eed 
+ 00015049  0x00002995 fetcht  0x00000001 , 0x0000468c 
+ 00015050  0x00002996 call  0x00006eed 
+ 00015051  0x00002997 fetcht  0x00000001 , 0x0000468d 
+ 00015052  0x00002998 branch  0x00006ef1 
+ 00015053  0x0000299a fetcht  0x00000001 , 0x0000468e 
+ 00015054  0x0000299b call  0x00006eed 
+ 00015055  0x0000299c fetcht  0x00000001 , 0x0000468f 
+ 00015056  0x0000299d branch  0x00006eed 
+ 00015057  0x0000299f fetcht  0x00000001 , 0x0000468e 
+ 00015058  0x000029a0 call  0x00006ef1 
+ 00015059  0x000029a1 fetcht  0x00000001 , 0x0000468f 
+ 00015060  0x000029a2 branch  0x00006eed 
+ 00015061  0x000029a4 fetcht  0x00000001 , 0x0000468e 
+ 00015062  0x000029a5 call  0x00006eed 
+ 00015063  0x000029a6 fetcht  0x00000001 , 0x0000468f 
+ 00015064  0x000029a7 branch  0x00006ef1 
+ 00015065  0x000029aa fetch  0x00000001 , 0x0000469a 
+ 00015066  0x000029ab branch  0x00002ad1 , 0x00000034 
+ 00015067  0x000029ac branch  0x00002acc 
+ 00015068  0x000029af fetch  0x00000001 , 0x0000469c 
+ 00015069  0x000029b0 rtn  0x00000034 
+ 00015070  0x000029b1 branch  0x000023a5 
+ 00015071  0x000029b8 call  0x00007384 
+ 00015072  0x000029b9 bpatch  0x00000033 , 0x00004006 
+ 00015073  0x000029bb fetch  0x00000001 , 0x00004666 
+ 00015074  0x000029bc call  0x000023a9 , 0x00000034 
+ 00015075  0x000029bd call  0x00003b97 
+ 00015076  0x000029be rtn  0x0000002b 
+ 00015077  0x000029bf call  0x0000711d 
+ 00015078  0x000029c0 setarg  0x00003bec 
+ 00015079  0x000029c1 store  0x00000002 , 0x000043e4 
+ 00015080  0x000029c3 setarg  0x00003ca4 
+ 00015081  0x000029c4 store  0x00000002 , 0x000043ec 
+ 00015082  0x000029c5 call  0x00003ba5 
+ 00015083  0x000029c6 call  0x00003bc3 
+ 00015084  0x000029c7 call  0x00003bcc 
+ 00015085  0x000029c8 branch  0x00003be0 
+ 00015086  0x000029cc jam  0x0000000a , 0x00004141 
+ 00015087  0x000029cd jam  0x00000084 , 0x000045cf 
+ 00015088  0x000029ce jam  0x00000084 , 0x000045ce 
+ 00015089  0x000029cf setarg  0x00ffffff 
+ 00015090  0x000029d0 store  0x00000003 , 0x00004655 
+ 00015091  0x000029d1 jam  0x000000ff , 0x00004658 
+ 00015092  0x000029d2 setarg  0x00000000 
+ 00015093  0x000029d3 store  0x00000003 , 0x000042dd 
+ 00015094  0x000029d4 setarg  0x00220101 
+ 00015095  0x000029d5 store  0x00000003 , 0x000042e0 
+ 00015096  0x000029d6 setarg  0x00858c0c 
+ 00015097  0x000029d7 store  0x00000003 , 0x00004659 
+ 00015098  0x000029d8 jam  0x00000005 , 0x0000465c 
+ 00015099  0x000029d9 jam  0x0000000d , 0x00004649 
+ 00015100  0x000029da jam  0x00000012 , 0x00004661 
+ 00015101  0x000029db setarg  0x00241404 
+ 00015102  0x000029dc store  0x00000003 , 0x000045aa 
+ 00015103  0x000029dd jam  0x00000034 , 0x000045ad 
+ 00015104  0x000029df jam  0x0000000c , 0x00004148 
+ 00015105  0x000029e0 setarg  0x00643f35 
+ 00015106  0x000029e1 store  0x00000003 , 0x000040c3 
+ 00015107  0x000029e2 setarg  0x003b2f8f 
+ 00015108  0x000029e3 store  0x00000003 , 0x000040c6 
+ 00015109  0x000029e4 jam  0x00000020 , 0x000040a7 
+ 00015110  0x000029e5 jam  0x00000000 , 0x000040c9 
+ 00015111  0x000029e6 jam  0x00000008 , 0x000040ca 
+ 00015112  0x000029e7 jam  0x000000b4 , 0x000040cb 
+ 00015113  0x000029e8 jam  0x00000018 , 0x00004099 
+ 00015114  0x000029e9 jam  0x0000003e , 0x0000411c 
+ 00015115  0x000029ea setarg  0x00050e08 
+ 00015116  0x000029eb store  0x00000003 , 0x00004160 
+ 00015117  0x000029ec setarg  0x00000003 
+ 00015118  0x000029ed store  0x00000002 , 0x00004163 
+ 00015119  0x000029ee jam  0x00000020 , 0x0000416a 
+ 00015120  0x000029ef jam  0x000000ff , 0x00004143 
+ 00015121  0x000029f0 setarg  0x00000c00 
+ 00015122  0x000029f1 store  0x00000002 , 0x0000409a 
+ 00015123  0x000029f2 setarg  0x00000004 
+ 00015124  0x000029f3 store  0x00000003 , 0x00004144 
+ 00015125  0x000029f4 jam  0x00000008 , 0x00004147 
+ 00015126  0x000029f5 jam  0x000000a0 , 0x0000444f 
+ 00015127  0x000029f6 setarg  0x000002bc 
+ 00015128  0x000029f7 store  0x00000002 , 0x00004452 
+ 00015129  0x000029f8 setarg  0x00000190 
+ 00015130  0x000029f9 store  0x00000002 , 0x00004450 
+ 00015131  0x000029fa jam  0x00000003 , 0x00004454 
+ 00015132  0x000029fb jam  0x00000009 , 0x00004455 
+ 00015133  0x000029fc jam  0x000000ff , 0x00004149 
+ 00015134  0x000029fd setarg  0x00004149 
+ 00015135  0x000029fe store  0x00000002 , 0x0000409c 
+ 00015136  0x00002a00 call  0x00006b28 
+ 00015137  0x00002a01 arg  0x0000488d , 0x00000011 
+ 00015138  0x00002a02 arg  0x00001f00 , 0x00000012 
+ 00015139  0x00002a03 arg  0x0000003c , 0x00000039 
+ 00015140  0x00002a04 call  0x00006b62 
+ 00015141  0x00002a05 call  0x00006b25 
+ 00015142  0x00002a06 fetch  0x00000001 , 0x0000488d 
+ 00015143  0x00002a07 ncall  0x00003b5f , 0x00000034 
+ 00015144  0x00002a09 fetch  0x00000003 , 0x0000488e 
+ 00015145  0x00002a0a ncall  0x00003b61 , 0x00000034 
+ 00015146  0x00002a0c fetch  0x00000003 , 0x00004891 
+ 00015147  0x00002a0d ncall  0x00003b63 , 0x00000034 
+ 00015148  0x00002a0f fetch  0x00000001 , 0x00004894 
+ 00015149  0x00002a10 ncall  0x00003b65 , 0x00000034 
+ 00015150  0x00002a12 fetch  0x00000001 , 0x00004895 
+ 00015151  0x00002a13 ncall  0x00003b67 , 0x00000034 
+ 00015152  0x00002a15 fetch  0x00000001 , 0x00004896 
+ 00015153  0x00002a16 ncall  0x00003b69 , 0x00000034 
+ 00015154  0x00002a18 fetch  0x00000001 , 0x00004897 
+ 00015155  0x00002a19 ncall  0x00003b6b , 0x00000034 
+ 00015156  0x00002a1b fetch  0x00000001 , 0x00004898 
+ 00015157  0x00002a1c ncall  0x00003b6d , 0x00000034 
+ 00015158  0x00002a1e fetch  0x00000001 , 0x00004899 
+ 00015159  0x00002a1f ncall  0x00003b6f , 0x00000034 
+ 00015160  0x00002a21 fetch  0x00000005 , 0x0000489a 
+ 00015161  0x00002a22 ncall  0x00003b71 , 0x00000034 
+ 00015162  0x00002a24 fetch  0x00000001 , 0x0000489f 
+ 00015163  0x00002a25 ncall  0x00003b73 , 0x00000034 
+ 00015164  0x00002a27 fetch  0x00000001 , 0x000048a0 
+ 00015165  0x00002a28 ncall  0x00003b75 , 0x00000034 
+ 00015166  0x00002a2a fetch  0x00000002 , 0x000048a1 
+ 00015167  0x00002a2b ncall  0x00003b77 , 0x00000034 
+ 00015168  0x00002a2d fetch  0x00000003 , 0x000048a3 
+ 00015169  0x00002a2e ncall  0x00003b79 , 0x00000034 
+ 00015170  0x00002a30 fetch  0x00000001 , 0x000048a6 
+ 00015171  0x00002a31 ncall  0x00003b7b , 0x00000034 
+ 00015172  0x00002a33 fetch  0x00000001 , 0x000048a7 
+ 00015173  0x00002a34 ncall  0x00003b7d , 0x00000034 
+ 00015174  0x00002a36 fetch  0x00000002 , 0x000048a8 
+ 00015175  0x00002a37 ncall  0x00003b7f , 0x00000034 
+ 00015176  0x00002a39 fetch  0x00000002 , 0x000048aa 
+ 00015177  0x00002a3a ncall  0x00003b81 , 0x00000034 
+ 00015178  0x00002a3c fetch  0x00000001 , 0x000048ac 
+ 00015179  0x00002a3d ncall  0x00003b83 , 0x00000034 
+ 00015180  0x00002a3f fetch  0x00000001 , 0x000048ad 
+ 00015181  0x00002a40 ncall  0x00003b85 , 0x00000034 
+ 00015182  0x00002a42 fetch  0x00000001 , 0x000048b2 
+ 00015183  0x00002a43 ncall  0x00003b87 , 0x00000034 
+ 00015184  0x00002a45 fetch  0x00000001 , 0x000048b3 
+ 00015185  0x00002a46 ncall  0x00003b89 , 0x00000034 
+ 00015186  0x00002a48 fetch  0x00000001 , 0x000048b4 
+ 00015187  0x00002a49 ncall  0x00003b8b , 0x00000034 
+ 00015188  0x00002a4b fetch  0x00000004 , 0x000048b5 
+ 00015189  0x00002a4c ncall  0x00003b8d , 0x00000034 
+ 00015190  0x00002a4e fetch  0x00000001 , 0x000048b9 
+ 00015191  0x00002a4f ncall  0x00003b8f , 0x00000034 
+ 00015192  0x00002a51 fetch  0x00000001 , 0x000048ba 
+ 00015193  0x00002a52 ncall  0x00003b91 , 0x00000034 
+ 00015194  0x00002a54 fetch  0x00000004 , 0x000048bb 
+ 00015195  0x00002a55 ncall  0x00003b93 , 0x00000034 
+ 00015196  0x00002a57 fetch  0x00000004 , 0x000048bf 
+ 00015197  0x00002a58 ncall  0x00003b95 , 0x00000034 
+ 00015198  0x00002a59 rtn 
+ 00015199  0x00002a5c store  0x00000001 , 0x00004148 
+ 00015200  0x00002a5d rtn 
+ 00015201  0x00002a5f store  0x00000003 , 0x000040c3 
+ 00015202  0x00002a60 rtn 
+ 00015203  0x00002a62 store  0x00000003 , 0x000040c6 
+ 00015204  0x00002a63 rtn 
+ 00015205  0x00002a65 store  0x00000001 , 0x000040a7 
+ 00015206  0x00002a66 rtn 
+ 00015207  0x00002a68 store  0x00000001 , 0x000040c9 
+ 00015208  0x00002a69 rtn 
+ 00015209  0x00002a6b store  0x00000001 , 0x000040ca 
+ 00015210  0x00002a6c rtn 
+ 00015211  0x00002a6e store  0x00000001 , 0x000040cb 
+ 00015212  0x00002a6f rtn 
+ 00015213  0x00002a71 store  0x00000001 , 0x00004099 
+ 00015214  0x00002a72 rtn 
+ 00015215  0x00002a74 store  0x00000001 , 0x0000411c 
+ 00015216  0x00002a75 rtn 
+ 00015217  0x00002a77 store  0x00000005 , 0x00004160 
+ 00015218  0x00002a78 rtn 
+ 00015219  0x00002a7a store  0x00000001 , 0x0000416a 
+ 00015220  0x00002a7b rtn 
+ 00015221  0x00002a7d store  0x00000001 , 0x00004143 
+ 00015222  0x00002a7e rtn 
+ 00015223  0x00002a80 store  0x00000002 , 0x0000409a 
+ 00015224  0x00002a81 rtn 
+ 00015225  0x00002a83 store  0x00000003 , 0x00004144 
+ 00015226  0x00002a84 rtn 
+ 00015227  0x00002a86 store  0x00000001 , 0x00004147 
+ 00015228  0x00002a87 rtn 
+ 00015229  0x00002a89 store  0x00000001 , 0x0000444f 
+ 00015230  0x00002a8a rtn 
+ 00015231  0x00002a8c store  0x00000002 , 0x00004452 
+ 00015232  0x00002a8d rtn 
+ 00015233  0x00002a8f store  0x00000002 , 0x00004450 
+ 00015234  0x00002a90 rtn 
+ 00015235  0x00002a92 store  0x00000001 , 0x00004454 
+ 00015236  0x00002a93 rtn 
+ 00015237  0x00002a95 store  0x00000001 , 0x00004455 
+ 00015238  0x00002a96 rtn 
+ 00015239  0x00002a98 store  0x00000001 , 0x00004141 
+ 00015240  0x00002a99 rtn 
+ 00015241  0x00002a9b store  0x00000001 , 0x000045cf 
+ 00015242  0x00002a9c rtn 
+ 00015243  0x00002a9e store  0x00000001 , 0x000045ce 
+ 00015244  0x00002a9f rtn 
+ 00015245  0x00002aa1 store  0x00000004 , 0x00004659 
+ 00015246  0x00002aa2 rtn 
+ 00015247  0x00002aa4 store  0x00000001 , 0x00004661 
+ 00015248  0x00002aa5 rtn 
+ 00015249  0x00002aa7 store  0x00000001 , 0x00004649 
+ 00015250  0x00002aa8 rtn 
+ 00015251  0x00002aaa store  0x00000004 , 0x000045a6 
+ 00015252  0x00002aab rtn 
+ 00015253  0x00002aad store  0x00000004 , 0x000045aa 
+ 00015254  0x00002aae rtn 
+ 00015255  0x00002ab5 fetch  0x00000001 , 0x00004666 
+ 00015256  0x00002ab6 beq  0x00000000 , 0x00003b9b 
+ 00015257  0x00002ab7 beq  0x00000001 , 0x00003ba0 
+ 00015258  0x00002ab8 rtn 
+ 00015259  0x00002aba setarg  0x00000000 
+ 00015260  0x00002abb store  0x00000002 , 0x0000464b 
+ 00015261  0x00002abc setarg  0x0000012c 
+ 00015262  0x00002abd store  0x00000002 , 0x0000464d 
+ 00015263  0x00002abe rtn 
+ 00015264  0x00002ac0 setarg  0x00000000 
+ 00015265  0x00002ac1 store  0x00000002 , 0x0000464b 
+ 00015266  0x00002ac2 setarg  0x0000000f 
+ 00015267  0x00002ac3 store  0x00000002 , 0x0000464d 
+ 00015268  0x00002ac4 rtn 
+ 00015269  0x00002ac8 call  0x00006b28 
+ 00015270  0x00002ac9 arg  0x0000464f , 0x00000011 
+ 00015271  0x00002aca arg  0x00001fda , 0x00000012 
+ 00015272  0x00002acb arg  0x00000006 , 0x00000039 
+ 00015273  0x00002acc call  0x00006b62 
+ 00015274  0x00002acd call  0x00006b25 
+ 00015275  0x00002ace fetch  0x00000006 , 0x0000464f 
+ 00015276  0x00002acf rtn  0x00000034 
+ 00015277  0x00002ad0 fetch  0x00000002 , 0x0000464f 
+ 00015278  0x00002ad1 store  0x00000002 , 0x000042dd 
+ 00015279  0x00002ad2 fetch  0x00000001 , 0x00004652 
+ 00015280  0x00002ad3 store  0x00000001 , 0x000042df 
+ 00015281  0x00002ad4 fetch  0x00000001 , 0x00004654 
+ 00015282  0x00002ad5 store  0x00000001 , 0x000042e0 
+ 00015283  0x00002ad7 fetch  0x00000001 , 0x00004650 
+ 00015284  0x00002ad8 sub  0x0000003f , 0x0000001a , 0x0000003e 
+ 00015285  0x00002ad9 nrtn  0x00000002 
+ 00015286  0x00002adb fetch  0x00000001 , 0x00004651 
+ 00015287  0x00002adc rtn  0x00000034 
+ 00015288  0x00002add random  0x0000003f 
+ 00015289  0x00002ade and_into  0x00000007 , 0x0000003f 
+ 00015290  0x00002adf lshift  0x0000003f , 0x0000003f 
+ 00015291  0x00002ae0 lshift4  0x0000003f , 0x0000003f 
+ 00015292  0x00002ae1 fetcht  0x00000001 , 0x00004650 
+ 00015293  0x00002ae2 iadd  0x00000002 , 0x0000003f 
+ 00015294  0x00002ae3 store  0x00000001 , 0x000042de 
+ 00015295  0x00002ae4 arg  0x000042de , 0x00000011 
+ 00015296  0x00002ae5 arg  0x00001fdb , 0x00000012 
+ 00015297  0x00002ae6 arg  0x00000001 , 0x00000039 
+ 00015298  0x00002ae7 branch  0x00006b33 
+ 00015299  0x00002aea arg  0x000042dd , 0x00000011 
+ 00015300  0x00002aeb arg  0x00004655 , 0x00000012 
+ 00015301  0x00002aec arg  0x00000004 , 0x00000039 
+ 00015302  0x00002aed call  0x00007d66 
+ 00015303  0x00002aee nrtn  0x00000005 
+ 00015304  0x00002aef fetch  0x00000001 , 0x000042dd 
+ 00015305  0x00002af0 pincrease  0xffffffff 
+ 00015306  0x00002af1 store  0x00000001 , 0x000042dd 
+ 00015307  0x00002af2 rtn 
+ 00015308  0x00002af5 arg  0x00000004 , 0x00000039 
+ 00015309  0x00002af6 arg  0x000045a6 , 0x00000013 
+ 00015310  0x00002af7 arg  0x000000ae , 0x00000012 
+ 00015311  0x00002af9 call  0x00003bd3 
+ 00015312  0x00002afa increase  0x00000001 , 0x00000013 
+ 00015313  0x00002afb loop  0x00003bcf 
+ 00015314  0x00002afc rtn 
+ 00015315  0x00002aff arg  0x00000001 , 0x00000011 
+ 00015316  0x00002b01 lshift  0x00000012 , 0x00000012 
+ 00015317  0x00002b02 isolate1  0x00000007 , 0x00000012 
+ 00015318  0x00002b03 call  0x00003bdb , 0x00000001 
+ 00015319  0x00002b04 lshift  0x00000011 , 0x00000011 
+ 00015320  0x00002b05 deposit  0x00000011 
+ 00015321  0x00002b06 rtnbit1  0x00000008 
+ 00015322  0x00002b07 branch  0x00003bd4 
+ 00015323  0x00002b0a ifetch  0x00000001 , 0x00000013 
+ 00015324  0x00002b0b ixor  0x00000011 , 0x0000003f 
+ 00015325  0x00002b0c istore  0x00000001 , 0x00000013 
+ 00015326  0x00002b0d xor  0x00000012 , 0x00000011 , 0x00000012 
+ 00015327  0x00002b0e rtn 
+ 00015328  0x00002b12 arg  0x00000000 , 0x00000002 
+ 00015329  0x00002b13 arg  0x0000465a , 0x00000006 
+ 00015330  0x00002b14 arg  0x00000002 , 0x00000039 
+ 00015331  0x00002b16 ifetch  0x00000001 , 0x00000006 
+ 00015332  0x00002b17 set0  0x00000007 , 0x0000003f 
+ 00015333  0x00002b18 copy  0x0000003f , 0x00000007 
+ 00015334  0x00002b19 setarg  0x00000000 
+ 00015335  0x00002b1a qset1  0x0000003f 
+ 00015336  0x00002b1b iadd  0x00000002 , 0x00000002 
+ 00015337  0x00002b1c loop  0x00003be3 
+ 00015338  0x00002b1d storet  0x00000004 , 0x00004644 
+ 00015339  0x00002b1e rtn 
+ 00015340  0x00002b22 bpatch  0x00000034 , 0x00004006 
+ 00015341  0x00002b23 fetch  0x00000002 , 0x00004663 
+ 00015342  0x00002b24 increase  0x00000001 , 0x0000003f 
+ 00015343  0x00002b25 store  0x00000002 , 0x00004663 
+ 00015344  0x00002b26 rshift2  0x0000003f , 0x0000003f 
+ 00015345  0x00002b27 call  0x00003bf7 
+ 00015346  0x00002b28 call  0x00003c32 
+ 00015347  0x00002b2a fetch  0x00000001 , 0x00004666 
+ 00015348  0x00002b2b beq  0x00000000 , 0x00003c0b 
+ 00015349  0x00002b2c beq  0x00000001 , 0x00003c45 
+ 00015350  0x00002b2d rtn 
+ 00015351  0x00002b31 beq  0x00000000 , 0x00003bfc 
+ 00015352  0x00002b32 beq  0x00000001 , 0x00003bff 
+ 00015353  0x00002b33 beq  0x00000002 , 0x00003c02 
+ 00015354  0x00002b34 beq  0x00000003 , 0x00003c05 
+ 00015355  0x00002b35 branch  0x00003c08 
+ 00015356  0x00002b38 fetch  0x00000001 , 0x000045aa 
+ 00015357  0x00002b39 store  0x00000001 , 0x000045a4 
+ 00015358  0x00002b3a rtn 
+ 00015359  0x00002b3c fetch  0x00000001 , 0x000045ab 
+ 00015360  0x00002b3d store  0x00000001 , 0x000045a4 
+ 00015361  0x00002b3e rtn 
+ 00015362  0x00002b40 fetch  0x00000001 , 0x000045ac 
+ 00015363  0x00002b41 store  0x00000001 , 0x000045a4 
+ 00015364  0x00002b42 rtn 
+ 00015365  0x00002b44 fetch  0x00000001 , 0x000045ad 
+ 00015366  0x00002b45 store  0x00000001 , 0x000045a4 
+ 00015367  0x00002b46 rtn 
+ 00015368  0x00002b48 setarg  0x00000000 
+ 00015369  0x00002b49 store  0x00000002 , 0x00004663 
+ 00015370  0x00002b4a rtn 
+ 00015371  0x00002b4e jam  0x000000aa , 0x0000466b 
+ 00015372  0x00002b4f fetch  0x00000004 , 0x000042dd 
+ 00015373  0x00002b50 store  0x00000004 , 0x0000466c 
+ 00015374  0x00002b51 branch  0x00003c0f 
+ 00015375  0x00002b55 set0  0x00000027 , 0x00000000 
+ 00015376  0x00002b56 setarg  0x00002ee0 
+ 00015377  0x00002b57 store  0x00000002 , 0x000045a2 
+ 00015378  0x00002b58 fetch  0x00000007 , 0x0000466b 
+ 00015379  0x00002b59 store  0x00000007 , 0x00004530 
+ 00015380  0x00002b5a fetch  0x00000005 , 0x00004672 
+ 00015381  0x00002b5b store  0x00000005 , 0x00004537 
+ 00015382  0x00002b5c arg  0x0000000c , 0x00000039 
+ 00015383  0x00002b5d arg  0x00000000 , 0x0000003f 
+ 00015384  0x00002b5e arg  0x00004530 , 0x00000006 
+ 00015385  0x00002b5f call  0x00007dd0 
+ 00015386  0x00002b60 istore  0x00000001 , 0x00000005 
+ 00015387  0x00002b61 setarg  0x0000000c 
+ 00015388  0x00002b62 increase  0x00000001 , 0x0000003f 
+ 00015389  0x00002b63 store  0x00000001 , 0x0000459f 
+ 00015390  0x00002b64 branch  0x00003c1f 
+ 00015391  0x00002b69 fetch  0x00000001 , 0x000045cf 
+ 00015392  0x00002b6a call  0x00002579 
+ 00015393  0x00002b6b call  0x00003217 
+ 00015394  0x00002b6c jam  0x00000088 , 0x00000035 
+ 00015395  0x00002b6e call  0x000031c4 
+ 00015396  0x00002b6f call  0x0000362a 
+ 00015397  0x00002b70 call  0x00003162 
+ 00015398  0x00002b71 fetch  0x00000001 , 0x00004596 
+ 00015399  0x00002b72 beq  0x00000001 , 0x00003c2b 
+ 00015400  0x00002b73 nbranch  0x00003c2b , 0x0000002f 
+ 00015401  0x00002b74 nbranch  0x00003c2b , 0x00000018 
+ 00015402  0x00002b75 call  0x00003c30 
+ 00015403  0x00002b77 random  0x0000003f 
+ 00015404  0x00002b78 arg  0x000001ff , 0x00000002 
+ 00015405  0x00002b79 iand  0x00000002 , 0x0000003f 
+ 00015406  0x00002b7a add  0x0000003f , 0x000000fa , 0x0000003f 
+ 00015407  0x00002b7b branch  0x00007c93 
+ 00015408  0x00002b7f jam  0x00000001 , 0x00004660 
+ 00015409  0x00002b80 rtn 
+ 00015410  0x00002b83 fetch  0x00000001 , 0x00004660 
+ 00015411  0x00002b84 rtn  0x00000034 
+ 00015412  0x00002b85 jam  0x00000000 , 0x00004660 
+ 00015413  0x00002b86 fetch  0x00000001 , 0x00004510 
+ 00015414  0x00002b87 beq  0x000000bb , 0x00003c38 
+ 00015415  0x00002b88 rtn 
+ 00015416  0x00002b8c fetch  0x00000001 , 0x00004666 
+ 00015417  0x00002b8d nrtn  0x00000034 
+ 00015418  0x00002b8e arg  0x00004515 , 0x00000011 
+ 00015419  0x00002b8f arg  0x000042dd , 0x00000012 
+ 00015420  0x00002b90 arg  0x00000004 , 0x00000039 
+ 00015421  0x00002b91 call  0x00007d66 
+ 00015422  0x00002b92 nrtn  0x00000005 
+ 00015423  0x00002b93 call  0x000023a5 
+ 00015424  0x00002b94 jam  0x00000001 , 0x00004666 
+ 00015425  0x00002b95 fetch  0x00000004 , 0x00004511 
+ 00015426  0x00002b96 store  0x00000004 , 0x00004667 
+ 00015427  0x00002b97 store  0x00000004 , 0x00004670 
+ 00015428  0x00002b99 branch  0x00003ba0 
+ 00015429  0x00002b9e bpatch  0x00000035 , 0x00004006 
+ 00015430  0x00002b9f fetch  0x00000001 , 0x00004665 
+ 00015431  0x00002ba0 increase  0x00000001 , 0x0000003f 
+ 00015432  0x00002ba1 store  0x00000001 , 0x00004665 
+ 00015433  0x00002ba2 jam  0x00000000 , 0x0000466b 
+ 00015434  0x00002ba3 setarg  0x00000000 
+ 00015435  0x00002ba4 store  0x00000003 , 0x00004674 
+ 00015436  0x00002ba5 jam  0x000000cc , 0x0000466b 
+ 00015437  0x00002ba6 call  0x00003c52 
+ 00015438  0x00002ba7 call  0x00003c83 
+ 00015439  0x00002ba8 fetch  0x00000001 , 0x00004665 
+ 00015440  0x00002ba9 beq  0x000000c8 , 0x00003c8a 
+ 00015441  0x00002baa branch  0x00003c0f 
+ 00015442  0x00002bae fetcht  0x00000001 , 0x00004661 
+ 00015443  0x00002baf call  0x00006eed 
+ 00015444  0x00002bb0 call  0x00003c66 
+ 00015445  0x00002bb1 call  0x00003c58 
+ 00015446  0x00002bb3 fetcht  0x00000001 , 0x00004661 
+ 00015447  0x00002bb4 branch  0x00006f0b 
+ 00015448  0x00002bb8 fetcht  0x00000001 , 0x0000465c 
+ 00015449  0x00002bb9 call  0x00006eed 
+ 00015450  0x00002bbb fetcht  0x00000001 , 0x0000465c 
+ 00015451  0x00002bbc call  0x00006ed7 
+ 00015452  0x00002bbd call  0x00006ee0 
+ 00015453  0x00002bbe branch  0x00003c7d , 0x00000001 
+ 00015454  0x00002bc0 fetcht  0x00000001 , 0x0000465c 
+ 00015455  0x00002bc1 call  0x00006ef1 
+ 00015456  0x00002bc2 nop  0x000004b0 
+ 00015457  0x00002bc3 fetcht  0x00000001 , 0x0000465b 
+ 00015458  0x00002bc4 call  0x00006ed7 
+ 00015459  0x00002bc5 call  0x00006ee0 
+ 00015460  0x00002bc6 branch  0x00003c7a , 0x00000001 
+ 00015461  0x00002bc7 rtn 
+ 00015462  0x00002bc9 fetcht  0x00000001 , 0x00004659 
+ 00015463  0x00002bca call  0x00006eed 
+ 00015464  0x00002bcc fetcht  0x00000001 , 0x00004659 
+ 00015465  0x00002bcd call  0x00006ed7 
+ 00015466  0x00002bce call  0x00006ee0 
+ 00015467  0x00002bcf branch  0x00003c74 , 0x00000001 
+ 00015468  0x00002bd1 fetcht  0x00000001 , 0x00004659 
+ 00015469  0x00002bd2 call  0x00006ef1 
+ 00015470  0x00002bd3 nop  0x000004b0 
+ 00015471  0x00002bd4 fetcht  0x00000001 , 0x0000465a 
+ 00015472  0x00002bd5 call  0x00006ed7 
+ 00015473  0x00002bd6 call  0x00006ee0 
+ 00015474  0x00002bd7 branch  0x00003c77 , 0x00000001 
+ 00015475  0x00002bd8 rtn 
+ 00015476  0x00002bdb jam  0x00000001 , 0x00004674 
+ 00015477  0x00002bdc jam  0x00000000 , 0x00004665 
+ 00015478  0x00002bdd rtn 
+ 00015479  0x00002be0 jam  0x00000002 , 0x00004674 
+ 00015480  0x00002be1 jam  0x00000000 , 0x00004665 
+ 00015481  0x00002be2 rtn 
+ 00015482  0x00002be5 jam  0x00000001 , 0x00004675 
+ 00015483  0x00002be6 jam  0x00000000 , 0x00004665 
+ 00015484  0x00002be7 rtn 
+ 00015485  0x00002bea jam  0x00000002 , 0x00004675 
+ 00015486  0x00002beb jam  0x00000000 , 0x00004665 
+ 00015487  0x00002bec rtn 
+ 00015488  0x00002bef jam  0x00000001 , 0x00004676 
+ 00015489  0x00002bf0 jam  0x00000000 , 0x00004665 
+ 00015490  0x00002bf1 rtn 
+ 00015491  0x00002bf4 fetch  0x00000003 , 0x00004674 
+ 00015492  0x00002bf5 branch  0x00003c99 , 0x00000034 
+ 00015493  0x00002bf6 setarg  0x00000000 
+ 00015494  0x00002bf7 store  0x00000002 , 0x0000464b 
+ 00015495  0x00002bf8 setarg  0x0000000f 
+ 00015496  0x00002bf9 store  0x00000002 , 0x0000464d 
+ 00015497  0x00002bfa branch  0x00003c96 
+ 00015498  0x00002bfd fetch  0x00000001 , 0x00004665 
+ 00015499  0x00002bfe increase  0xffffffff , 0x0000003f 
+ 00015500  0x00002bff store  0x00000001 , 0x00004665 
+ 00015501  0x00002c00 rtn 
+ 00015502  0x00002c04 fetch  0x00000001 , 0x00004666 
+ 00015503  0x00002c05 rtneq  0x00000001 
+ 00015504  0x00002c06 fetch  0x00000001 , 0x0000464a 
+ 00015505  0x00002c07 increase  0x00000001 , 0x0000003f 
+ 00015506  0x00002c08 store  0x00000001 , 0x0000464a 
+ 00015507  0x00002c09 beq  0x00000002 , 0x00003c96 
+ 00015508  0x00002c0a beq  0x00000004 , 0x00003c98 
+ 00015509  0x00002c0b rtn 
+ 00015510  0x00002c0e fetcht  0x00000001 , 0x00004649 
+ 00015511  0x00002c0f branch  0x00006eed 
+ 00015512  0x00002c12 jam  0x00000000 , 0x0000464a 
+ 00015513  0x00002c13 fetcht  0x00000001 , 0x00004649 
+ 00015514  0x00002c14 branch  0x00006ef1 
+ 00015515  0x00002c18 fetch  0x00000002 , 0x0000464d 
+ 00015516  0x00002c19 rtn  0x00000034 
+ 00015517  0x00002c1a fetcht  0x00000002 , 0x0000464b 
+ 00015518  0x00002c1b ixor  0x00000002 , 0x0000003f 
+ 00015519  0x00002c1c call  0x00003ca6 , 0x00000034 
+ 00015520  0x00002c1d fetch  0x00000002 , 0x0000464b 
+ 00015521  0x00002c1e increase  0x00000001 , 0x0000003f 
+ 00015522  0x00002c1f store  0x00000002 , 0x0000464b 
+ 00015523  0x00002c20 rtn 
+ 00015524  0x00002c23 call  0x00003c8e 
+ 00015525  0x00002c24 branch  0x00003c9b 
+ 00015526  0x00002c28 call  0x000023a5 
+ 00015527  0x00002c29 call  0x00003cab 
+ 00015528  0x00002c2a call  0x00003cc2 
+ 00015529  0x00002c2b arg  0xffffffff , 0x00000002 
+ 00015530  0x00002c2c branch  0x00002406 
+ 00015531  0x00002c30 arg  0x00000018 , 0x00000039 
+ 00015532  0x00002c31 jam  0x00000000 , 0x00004648 
+ 00015533  0x00002c33 fetcht  0x00000001 , 0x00004648 
+ 00015534  0x00002c34 copy  0x00000002 , 0x00000007 
+ 00015535  0x00002c35 fetch  0x00000004 , 0x00004644 
+ 00015536  0x00002c36 qisolate1  0x0000003f 
+ 00015537  0x00002c37 branch  0x00003cb3 , 0x00000001 
+ 00015538  0x00002c38 or  0x00000002 , 0x00000080 , 0x00000002 
+ 00015539  0x00002c3b call  0x00006ed7 
+ 00015540  0x00002c3c fetch  0x00000001 , 0x00004648 
+ 00015541  0x00002c3d pincrease  0x00000001 
+ 00015542  0x00002c3e store  0x00000001 , 0x00004648 
+ 00015543  0x00002c3f loop  0x00003cad 
+ 00015544  0x00002c40 rtn 
+ 00015545  0x00002c43 setarg  0x00000030 
+ 00015546  0x00002c45 copy  0x00000005 , 0x00000006 
+ 00015547  0x00002c46 ifetcht  0x00000001 , 0x00000006 
+ 00015548  0x00002c47 iadd  0x00000002 , 0x0000003f 
+ 00015549  0x00002c48 istore  0x00000001 , 0x00000005 
+ 00015550  0x00002c49 arg  0x00000016 , 0x00000005 
+ 00015551  0x00002c4a arg  0x0000465b , 0x00000006 
+ 00015552  0x00002c4b loop  0x00003cc7 
+ 00015553  0x00002c4c rtn 
+ 00015554  0x00002c4f setarg  0x00000000 
+ 00015555  0x00002c50 store  0x0000000c , 0x00000016 
+ 00015556  0x00002c51 arg  0x00000016 , 0x00000005 
+ 00015557  0x00002c52 arg  0x0000465a , 0x00000006 
+ 00015558  0x00002c53 arg  0x00000002 , 0x00000039 
+ 00015559  0x00002c55 ifetch  0x00000001 , 0x00000006 
+ 00015560  0x00002c56 set0  0x00000007 , 0x0000003f 
+ 00015561  0x00002c57 div  0x0000003f , 0x00000002 
+ 00015562  0x00002c58 call  0x00007d64 
+ 00015563  0x00002c59 quotient  0x0000003f 
+ 00015564  0x00002c5a iadd  0x00000005 , 0x00000005 
+ 00015565  0x00002c5b remainder  0x0000003f 
+ 00015566  0x00002c5c nbranch  0x00003cb9 , 0x00000034 
+ 00015567  0x00002c5d setarg  0x00000003 
+ 00015568  0x00002c5e branch  0x00003cba 
+ 00015569  0x00002c67 setarg  0x00003d04 
+ 00015570  0x00002c68 store  0x00000002 , 0x000045f7 
+ 00015571  0x00002c69 setarg  0x00003dfe 
+ 00015572  0x00002c6a store  0x00000002 , 0x000045fb 
+ 00015573  0x00002c6b setarg  0x00003e0f 
+ 00015574  0x00002c6c store  0x00000002 , 0x000045fd 
+ 00015575  0x00002c6d setarg  0x00003dd0 
+ 00015576  0x00002c6e store  0x00000002 , 0x000045f9 
+ 00015577  0x00002c6f setarg  0x00003d13 
+ 00015578  0x00002c70 store  0x00000002 , 0x00000837 
+ 00015579  0x00002c71 branch  0x00007902 
+ 00015580  0x00002c75 bpatch  0x00000036 , 0x00004006 
+ 00015581  0x00002c77 call  0x00003d09 
+ 00015582  0x00002c78 call  0x00003cff 
+ 00015583  0x00002c79 fetch  0x00000001 , 0x00004680 
+ 00015584  0x00002c7a isolate1  0x00000005 , 0x0000003f 
+ 00015585  0x00002c7b branch  0x00003ce5 , 0x00000001 
+ 00015586  0x00002c7c fetch  0x00000001 , 0x00004680 
+ 00015587  0x00002c7d isolate1  0x00000006 , 0x0000003f 
+ 00015588  0x00002c7e call  0x0000324a , 0x00000001 
+ 00015589  0x00002c80 fetch  0x00000001 , 0x000046ad 
+ 00015590  0x00002c81 store  0x00000001 , 0x00004141 
+ 00015591  0x00002c83 jam  0x000000ff , 0x000045e9 
+ 00015592  0x00002c84 setarg  0x0000097d 
+ 00015593  0x00002c85 store  0x00000002 , 0x00004657 
+ 00015594  0x00002c86 setarg  0x00000a7d 
+ 00015595  0x00002c87 store  0x00000002 , 0x00004659 
+ 00015596  0x00002c88 setarg  0x00000b7d 
+ 00015597  0x00002c89 store  0x00000002 , 0x0000465b 
+ 00015598  0x00002c8a setarg  0x00000c7d 
+ 00015599  0x00002c8b store  0x00000002 , 0x0000465d 
+ 00015600  0x00002c8c jam  0x00000085 , 0x000045e8 
+ 00015601  0x00002c8d jam  0x00000000 , 0x000046ab 
+ 00015602  0x00002c8e jam  0x00000000 , 0x00004642 
+ 00015603  0x00002c8f call  0x00003260 
+ 00015604  0x00002c90 fetch  0x00000001 , 0x00004680 
+ 00015605  0x00002c91 isolate1  0x00000003 , 0x0000003f 
+ 00015606  0x00002c92 call  0x00003263 , 0x00000001 
+ 00015607  0x00002c93 call  0x00003378 
+ 00015608  0x00002c94 call  0x00003266 
+ 00015609  0x00002c95 call  0x0000323a 
+ 00015610  0x00002c97 fetch  0x00000001 , 0x0000468a 
+ 00015611  0x00002c98 store  0x00000001 , 0x00000839 
+ 00015612  0x00002c99 fetch  0x00000009 , 0x00004681 
+ 00015613  0x00002c9a store  0x00000009 , 0x0000083a 
+ 00015614  0x00002c9b rtn 
+ 00015615  0x00002c9e jam  0x00000018 , 0x00004099 
+ 00015616  0x00002c9f fetch  0x00000001 , 0x00004680 
+ 00015617  0x00002ca0 rtnbit0  0x00000007 
+ 00015618  0x00002ca1 jam  0x00000010 , 0x00004099 
+ 00015619  0x00002ca2 rtn 
+ 00015620  0x00002ca5 fetch  0x00000001 , 0x00004627 
+ 00015621  0x00002ca6 beq  0x00000000 , 0x00003dc0 
+ 00015622  0x00002ca7 beq  0x00000001 , 0x00003d3d 
+ 00015623  0x00002ca8 beq  0x0000000f , 0x00003d39 
+ 00015624  0x00002ca9 rtn 
+ 00015625  0x00002cad bpatch  0x00000037 , 0x00004006 
+ 00015626  0x00002cae arg  0x00001fdf , 0x00000012 
+ 00015627  0x00002caf arg  0x0000465f , 0x00000011 
+ 00015628  0x00002cb0 arg  0x00000001 , 0x00000039 
+ 00015629  0x00002cb1 branch  0x00006b62 
+ 00015630  0x00002cb4 bpatch  0x00000038 , 0x00004007 
+ 00015631  0x00002cb5 arg  0x00000001 , 0x00000039 
+ 00015632  0x00002cb6 arg  0x0000465f , 0x00000011 
+ 00015633  0x00002cb7 arg  0x00001fdf , 0x00000012 
+ 00015634  0x00002cb8 branch  0x00006b33 
+ 00015635  0x00002cbb fetch  0x00000001 , 0x00004680 
+ 00015636  0x00002cbc bbit1  0x00000004 , 0x00003d17 
+ 00015637  0x00002cbd fetch  0x00000001 , 0x0000465f 
+ 00015638  0x00002cbe bne  0x0000005a , 0x00003d1b 
+ 00015639  0x00002cc0 jam  0x0000005a , 0x0000465f 
+ 00015640  0x00002cc1 fetch  0x00000004 , 0x00009404 
+ 00015641  0x00002cc2 set1  0x0000001d , 0x0000003f 
+ 00015642  0x00002cc3 store  0x00000004 , 0x00000792 
+ 00015643  0x00002cc5 bpatch  0x00000039 , 0x00004007 
+ 00015644  0x00002cc6 call  0x00003d33 
+ 00015645  0x00002cc7 call  0x00007956 
+ 00015646  0x00002cc8 call  0x00003d20 
+ 00015647  0x00002cc9 branch  0x00003d29 
+ 00015648  0x00002ccc fetch  0x00000001 , 0x0000083a 
+ 00015649  0x00002ccd rtn  0x00000034 
+ 00015650  0x00002cce fetch  0x00000001 , 0x0000465f 
+ 00015651  0x00002ccf beq  0x0000005a , 0x00003d27 
+ 00015652  0x00002cd1 fetch  0x00000004 , 0x0000083b 
+ 00015653  0x00002cd3 store  0x00000004 , 0x00000792 
+ 00015654  0x00002cd4 rtn 
+ 00015655  0x00002cd6 fetch  0x00000004 , 0x0000083f 
+ 00015656  0x00002cd7 branch  0x00003d25 
+ 00015657  0x00002cda fetch  0x00000001 , 0x0000465f 
+ 00015658  0x00002cdb beq  0x0000005a , 0x00003d2f 
+ 00015659  0x00002cdc setarg  0x000092aa 
+ 00015660  0x00002cdd store  0x00000002 , 0x00000785 
+ 00015661  0x00002cde jam  0x0000001a , 0x000007b6 
+ 00015662  0x00002cdf rtn 
+ 00015663  0x00002ce1 setarg  0x000092c5 
+ 00015664  0x00002ce2 store  0x00000002 , 0x00000785 
+ 00015665  0x00002ce3 jam  0x00000041 , 0x000007b6 
+ 00015666  0x00002ce4 rtn 
+ 00015667  0x00002ce7 fetch  0x00000001 , 0x0000468b 
+ 00015668  0x00002ce8 rtn  0x00000034 
+ 00015669  0x00002ce9 arg  0x0000468b , 0x00000006 
+ 00015670  0x00002cea arg  0x000007fb , 0x00000005 
+ 00015671  0x00002ceb arg  0x00000020 , 0x00000039 
+ 00015672  0x00002cec branch  0x00007cdc 
+ 00015673  0x00002cf0 call  0x00003436 
+ 00015674  0x00002cf2 call  0x00003dc8 
+ 00015675  0x00002cf3 call  0x00003d8e 
+ 00015676  0x00002cf4 branch  0x00003d3a 
+ 00015677  0x00002cf7 call  0x00003436 
+ 00015678  0x00002cf9 call  0x00003dc8 
+ 00015679  0x00002cfa call  0x0000343f 
+ 00015680  0x00002cfb call  0x00003d8e 
+ 00015681  0x00002cfc branch  0x00003d3e 
+ 00015682  0x00002cff bpatch  0x0000003a , 0x00004007 
+ 00015683  0x00002d00 call  0x00003d48 
+ 00015684  0x00002d01 call  0x00003d57 
+ 00015685  0x00002d02 call  0x00003d67 
+ 00015686  0x00002d03 call  0x00003d81 
+ 00015687  0x00002d04 branch  0x00003d74 
+ 00015688  0x00002d07 fetch  0x00000001 , 0x0000467f 
+ 00015689  0x00002d08 rtn  0x00000034 
+ 00015690  0x00002d09 arg  0x0000000d , 0x00000007 
+ 00015691  0x00002d0a call  0x00007cf1 
+ 00015692  0x00002d0b nrtn  0x00000034 
+ 00015693  0x00002d0c jam  0x00000000 , 0x0000467f 
+ 00015694  0x00002d0d setarg  0x00000001 
+ 00015695  0x00002d0e store  0x00000001 , 0x000008f1 
+ 00015696  0x00002d0f setarg  0x00000000 
+ 00015697  0x00002d10 istore  0x00000007 , 0x00000005 
+ 00015698  0x00002d12 jam  0x00000020 , 0x000008ea 
+ 00015699  0x00002d14 fetch  0x00000001 , 0x000008eb 
+ 00015700  0x00002d15 set1  0x00000002 , 0x0000003f 
+ 00015701  0x00002d16 store  0x00000001 , 0x000008eb 
+ 00015702  0x00002d17 rtn 
+ 00015703  0x00002d1a fetch  0x00000001 , 0x0000467c 
+ 00015704  0x00002d1b rtn  0x00000034 
+ 00015705  0x00002d1c arg  0x0000000e , 0x00000007 
+ 00015706  0x00002d1d call  0x00007cf1 
+ 00015707  0x00002d1e nrtn  0x00000034 
+ 00015708  0x00002d1f jam  0x00000000 , 0x0000467c 
+ 00015709  0x00002d20 arg  0x00000901 , 0x00000005 
+ 00015710  0x00002d21 call  0x00007c9b 
+ 00015711  0x00002d22 fetch  0x00000008 , 0x00000901 
+ 00015712  0x00002d23 store  0x00000008 , 0x00004668 
+ 00015713  0x00002d25 jam  0x00000000 , 0x00000901 
+ 00015714  0x00002d27 jam  0x00000010 , 0x000008e9 
+ 00015715  0x00002d28 fetch  0x00000001 , 0x000008eb 
+ 00015716  0x00002d29 set1  0x00000001 , 0x0000003f 
+ 00015717  0x00002d2a store  0x00000001 , 0x000008eb 
+ 00015718  0x00002d2b rtn 
+ 00015719  0x00002d2e fetch  0x00000001 , 0x0000467e 
+ 00015720  0x00002d2f rtn  0x00000034 
+ 00015721  0x00002d30 arg  0x0000000a , 0x00000007 
+ 00015722  0x00002d31 call  0x00007cf1 
+ 00015723  0x00002d32 nrtn  0x00000034 
+ 00015724  0x00002d33 jam  0x00000000 , 0x0000467e 
+ 00015725  0x00002d34 arg  0x00000929 , 0x00000005 
+ 00015726  0x00002d35 call  0x00007c9b 
+ 00015727  0x00002d36 jam  0x00000002 , 0x00000929 
+ 00015728  0x00002d37 fetch  0x00000002 , 0x00000929 
+ 00015729  0x00002d38 store  0x00000002 , 0x00004676 
+ 00015730  0x00002d3a jam  0x00000022 , 0x000008ea 
+ 00015731  0x00002d3b branch  0x00003d53 
+ 00015732  0x00002d3e fetch  0x00000001 , 0x0000467d 
+ 00015733  0x00002d3f rtn  0x00000034 
+ 00015734  0x00002d40 arg  0x0000000c , 0x00000007 
+ 00015735  0x00002d41 call  0x00007cf1 
+ 00015736  0x00002d42 nrtn  0x00000034 
+ 00015737  0x00002d43 jam  0x00000000 , 0x0000467d 
+ 00015738  0x00002d44 arg  0x00000921 , 0x00000005 
+ 00015739  0x00002d45 call  0x00007c9b 
+ 00015740  0x00002d46 jam  0x00000003 , 0x00000921 
+ 00015741  0x00002d47 fetch  0x00000003 , 0x00000921 
+ 00015742  0x00002d48 store  0x00000003 , 0x00004673 
+ 00015743  0x00002d4a jam  0x00000021 , 0x000008ea 
+ 00015744  0x00002d4b branch  0x00003d53 
+ 00015745  0x00002d4e fetch  0x00000001 , 0x000046ae 
+ 00015746  0x00002d4f rtn  0x00000034 
+ 00015747  0x00002d50 arg  0x00000006 , 0x00000007 
+ 00015748  0x00002d51 call  0x00007cf1 
+ 00015749  0x00002d52 nrtn  0x00000034 
+ 00015750  0x00002d53 jam  0x00000000 , 0x000046ae 
+ 00015751  0x00002d54 arg  0x00000921 , 0x00000005 
+ 00015752  0x00002d55 call  0x00007c9b 
+ 00015753  0x00002d56 jam  0x00000005 , 0x00000921 
+ 00015754  0x00002d57 fetch  0x00000004 , 0x00000921 
+ 00015755  0x00002d58 store  0x00000004 , 0x000046b3 
+ 00015756  0x00002d5a jam  0x00000023 , 0x000008ea 
+ 00015757  0x00002d5b branch  0x00003d53 
+ 00015758  0x00002d5f bpatch  0x0000003b , 0x00004007 
+ 00015759  0x00002d60 fetch  0x00000001 , 0x000008df 
+ 00015760  0x00002d61 call  0x00003dda , 0x00000034 
+ 00015761  0x00002d62 call  0x000078f6 
+ 00015762  0x00002d63 fetch  0x00000001 , 0x000008d5 
+ 00015763  0x00002d64 rtn  0x00000034 
+ 00015764  0x00002d65 jam  0x00000000 , 0x000008d5 
+ 00015765  0x00002d66 fetch  0x00000002 , 0x000008d3 
+ 00015766  0x00002d67 arg  0x000002ba , 0x00000002 
+ 00015767  0x00002d68 isub  0x00000002 , 0x0000003e 
+ 00015768  0x00002d69 nrtn  0x00000005 
+ 00015769  0x00002d6b fetch  0x00000001 , 0x00000853 
+ 00015770  0x00002d6c rtnne  0x000000ba 
+ 00015771  0x00002d6d fetch  0x00000001 , 0x00000854 
+ 00015772  0x00002d6e beq  0x000000a0 , 0x00003da3 
+ 00015773  0x00002d6f beq  0x000000a1 , 0x00003da9 
+ 00015774  0x00002d70 beq  0x000000a6 , 0x00003db5 
+ 00015775  0x00002d71 beq  0x000000a7 , 0x00003db7 
+ 00015776  0x00002d72 beq  0x000000a9 , 0x00003dbd 
+ 00015777  0x00002d75 jam  0x00000000 , 0x000008d6 
+ 00015778  0x00002d76 rtn 
+ 00015779  0x00002d79 fetch  0x00000001 , 0x00000855 
+ 00015780  0x00002d7a beq  0x00000081 , 0x00003da6 
+ 00015781  0x00002d7b branch  0x00003da1 
+ 00015782  0x00002d7d call  0x000032da 
+ 00015783  0x00002d7f jam  0x00000001 , 0x000008d6 
+ 00015784  0x00002d80 rtn 
+ 00015785  0x00002d83 fetch  0x00000001 , 0x00000855 
+ 00015786  0x00002d84 beq  0x00000001 , 0x00003dae 
+ 00015787  0x00002d85 beq  0x00000084 , 0x00003db1 
+ 00015788  0x00002d86 beq  0x000000a7 , 0x00003db3 
+ 00015789  0x00002d87 branch  0x00003da1 
+ 00015790  0x00002d89 fetch  0x00000001 , 0x000045ec 
+ 00015791  0x00002d8a store  0x00000001 , 0x00000894 
+ 00015792  0x00002d8b branch  0x00003da7 
+ 00015793  0x00002d8d call  0x00003437 
+ 00015794  0x00002d8e branch  0x00003dae 
+ 00015795  0x00002d91 jam  0x000000a1 , 0x00000894 
+ 00015796  0x00002d92 branch  0x00003da7 
+ 00015797  0x00002d95 jam  0x00000015 , 0x00000894 
+ 00015798  0x00002d96 branch  0x00003da7 
+ 00015799  0x00002d99 fetch  0x00000001 , 0x0000462d 
+ 00015800  0x00002d9a beq  0x00000000 , 0x00003dbb 
+ 00015801  0x00002d9b beq  0x00000001 , 0x00003db3 
+ 00015802  0x00002d9c rtn 
+ 00015803  0x00002d9e jam  0x000000a0 , 0x00000894 
+ 00015804  0x00002d9f branch  0x00003da7 
+ 00015805  0x00002da2 fetch  0x00000004 , 0x000046b7 
+ 00015806  0x00002da3 store  0x00000004 , 0x00000894 
+ 00015807  0x00002da4 branch  0x00003da7 
+ 00015808  0x00002dad call  0x000033d8 
+ 00015809  0x00002daf call  0x000033dd 
+ 00015810  0x00002db0 call  0x00003403 
+ 00015811  0x00002db1 call  0x00003dc8 
+ 00015812  0x00002db2 call  0x0000343f 
+ 00015813  0x00002db3 call  0x0000345e 
+ 00015814  0x00002db4 call  0x00003d8e 
+ 00015815  0x00002db5 branch  0x00003dc1 
+ 00015816  0x00002db8 bpatch  0x0000003c , 0x00004007 
+ 00015817  0x00002db9 fetch  0x00000001 , 0x0000462d 
+ 00015818  0x00002dba rtnne  0x00000000 
+ 00015819  0x00002dbb call  0x0000343a 
+ 00015820  0x00002dbc call  0x00003d42 
+ 00015821  0x00002dbd fetch  0x00000001 , 0x00004627 
+ 00015822  0x00002dbe nrtn  0x00000034 
+ 00015823  0x00002dbf branch  0x000034e0 
+ 00015824  0x00002dc2 fetch  0x00000001 , 0x000045a0 
+ 00015825  0x00002dc3 beq  0x00000001 , 0x00003dd3 
+ 00015826  0x00002dc4 beq  0x00000002 , 0x00003ddc 
+ 00015827  0x00002dc6 fetch  0x00000001 , 0x000046ac 
+ 00015828  0x00002dc7 bbit1  0x00000000 , 0x00003de2 
+ 00015829  0x00002dc8 branch  0x00003dde 
+ 00015830  0x00002dcb fetch  0x00000001 , 0x000043cf 
+ 00015831  0x00002dcc rtnne  0x00000004 
+ 00015832  0x00002dcd jam  0x00000003 , 0x000046ac 
+ 00015833  0x00002dce rtn 
+ 00015834  0x00002dd0 jam  0x00000000 , 0x000046ac 
+ 00015835  0x00002dd1 rtn 
+ 00015836  0x00002dd4 fetch  0x00000001 , 0x000046ac 
+ 00015837  0x00002dd5 bbit1  0x00000001 , 0x00003de6 
+ 00015838  0x00002dd7 fetch  0x00000001 , 0x00004628 
+ 00015839  0x00002dd8 beq  0x00000001 , 0x00003ded 
+ 00015840  0x00002dd9 beq  0x00000003 , 0x00003df6 
+ 00015841  0x00002dda rtn 
+ 00015842  0x00002ddd fetch  0x00000001 , 0x000046ac 
+ 00015843  0x00002dde set0  0x00000000 , 0x0000003f 
+ 00015844  0x00002ddf store  0x00000001 , 0x000046ac 
+ 00015845  0x00002de0 branch  0x00003de9 
+ 00015846  0x00002de3 fetch  0x00000001 , 0x000046ac 
+ 00015847  0x00002de4 set0  0x00000001 , 0x0000003f 
+ 00015848  0x00002de5 store  0x00000001 , 0x000046ac 
+ 00015849  0x00002de7 jam  0x00000001 , 0x0000459f 
+ 00015850  0x00002de8 setarg  0x000000ff 
+ 00015851  0x00002de9 store  0x00000001 , 0x00004530 
+ 00015852  0x00002dea rtn 
+ 00015853  0x00002dee bpatch  0x0000003d , 0x00004007 
+ 00015854  0x00002def jam  0x00000001 , 0x00004628 
+ 00015855  0x00002df0 fetch  0x00000001 , 0x0000462d 
+ 00015856  0x00002df1 rtneq  0x00000000 
+ 00015857  0x00002df2 fetch  0x00000001 , 0x00004627 
+ 00015858  0x00002df3 nrtn  0x00000034 
+ 00015859  0x00002df4 call  0x0000335b 
+ 00015860  0x00002df5 nrtn  0x0000002f 
+ 00015861  0x00002df6 branch  0x000032e8 
+ 00015862  0x00002df9 fetch  0x00000001 , 0x00004510 
+ 00015863  0x00002dfa beq  0x00000001 , 0x000032e8 
+ 00015864  0x00002dfb beq  0x000000ff , 0x000032e8 
+ 00015865  0x00002dfc jam  0x00000000 , 0x000008d7 
+ 00015866  0x00002dfd jam  0x00000001 , 0x0000459f 
+ 00015867  0x00002dfe fetch  0x00000001 , 0x00004638 
+ 00015868  0x00002dff store  0x00000001 , 0x00004530 
+ 00015869  0x00002e00 rtn 
+ 00015870  0x00002e03 setarg  0x00000001 
+ 00015871  0x00002e04 store  0x00000001 , 0x000008f1 
+ 00015872  0x00002e05 fetch  0x00000007 , 0x00004602 
+ 00015873  0x00002e06 istore  0x00000007 , 0x00000005 
+ 00015874  0x00002e07 fetch  0x00000001 , 0x00004602 
+ 00015875  0x00002e08 ncall  0x00003e07 , 0x00000034 
+ 00015876  0x00002e09 fetch  0x00000001 , 0x00004602 
+ 00015877  0x00002e0a call  0x00003e0b , 0x00000034 
+ 00015878  0x00002e0b branch  0x00003d52 
+ 00015879  0x00002e0e jam  0x00000001 , 0x0000467f 
+ 00015880  0x00002e0f setarg  0x00000180 
+ 00015881  0x00002e10 arg  0x0000000d , 0x00000007 
+ 00015882  0x00002e11 branch  0x00007ce3 
+ 00015883  0x00002e14 jam  0x00000000 , 0x0000467f 
+ 00015884  0x00002e15 setarg  0x00000000 
+ 00015885  0x00002e16 arg  0x0000000d , 0x00000007 
+ 00015886  0x00002e17 branch  0x00007ce3 
+ 00015887  0x00002e1a fetch  0x00000001 , 0x00004602 
+ 00015888  0x00002e1b beq  0x00000000 , 0x00003e15 
+ 00015889  0x00002e1c beq  0x00000002 , 0x00003e60 
+ 00015890  0x00002e1d beq  0x00000003 , 0x00003e30 
+ 00015891  0x00002e1e beq  0x00000005 , 0x00003e48 
+ 00015892  0x00002e1f branch  0x00003397 
+ 00015893  0x00002e22 fetch  0x00000001 , 0x00004604 
+ 00015894  0x00002e23 store  0x00000001 , 0x00004628 
+ 00015895  0x00002e24 jam  0x00000000 , 0x00004604 
+ 00015896  0x00002e25 arg  0x00000901 , 0x00000005 
+ 00015897  0x00002e26 arg  0x00004603 , 0x00000006 
+ 00015898  0x00002e27 arg  0x00000008 , 0x00000039 
+ 00015899  0x00002e28 call  0x00007cdc 
+ 00015900  0x00002e29 fetch  0x00000008 , 0x00000901 
+ 00015901  0x00002e2a ncall  0x00003e28 , 0x00000034 
+ 00015902  0x00002e2b fetch  0x00000008 , 0x00000901 
+ 00015903  0x00002e2c call  0x00003e2c , 0x00000034 
+ 00015904  0x00002e2d fetch  0x00000008 , 0x00000901 
+ 00015905  0x00002e2e store  0x00000008 , 0x00004660 
+ 00015906  0x00002e2f fetcht  0x00000008 , 0x00004668 
+ 00015907  0x00002e30 isub  0x00000002 , 0x0000003e 
+ 00015908  0x00002e31 ncall  0x00003d62 , 0x00000005 
+ 00015909  0x00002e32 fetch  0x00000008 , 0x00004660 
+ 00015910  0x00002e33 store  0x00000008 , 0x00004668 
+ 00015911  0x00002e34 branch  0x00003397 
+ 00015912  0x00002e37 jam  0x00000001 , 0x0000467c 
+ 00015913  0x00002e38 setarg  0x00000180 
+ 00015914  0x00002e39 arg  0x0000000e , 0x00000007 
+ 00015915  0x00002e3a branch  0x00007ce3 
+ 00015916  0x00002e3d jam  0x00000000 , 0x0000467c 
+ 00015917  0x00002e3e setarg  0x00000000 
+ 00015918  0x00002e3f arg  0x0000000e , 0x00000007 
+ 00015919  0x00002e40 branch  0x00007ce3 
+ 00015920  0x00002e43 arg  0x00000921 , 0x00000005 
+ 00015921  0x00002e44 arg  0x00004602 , 0x00000006 
+ 00015922  0x00002e45 arg  0x00000003 , 0x00000039 
+ 00015923  0x00002e46 call  0x00007cdc 
+ 00015924  0x00002e47 fetch  0x00000002 , 0x00000922 
+ 00015925  0x00002e48 ncall  0x00003e40 , 0x00000034 
+ 00015926  0x00002e49 fetch  0x00000002 , 0x00000922 
+ 00015927  0x00002e4a call  0x00003e44 , 0x00000034 
+ 00015928  0x00002e4b fetch  0x00000003 , 0x00000921 
+ 00015929  0x00002e4c store  0x00000003 , 0x00004670 
+ 00015930  0x00002e4d fetcht  0x00000003 , 0x00004673 
+ 00015931  0x00002e4e isub  0x00000002 , 0x0000003e 
+ 00015932  0x00002e4f ncall  0x00003d7f , 0x00000005 
+ 00015933  0x00002e50 fetch  0x00000003 , 0x00004670 
+ 00015934  0x00002e51 store  0x00000003 , 0x00004673 
+ 00015935  0x00002e52 branch  0x00003397 
+ 00015936  0x00002e55 jam  0x00000001 , 0x0000467d 
+ 00015937  0x00002e56 setarg  0x00000180 
+ 00015938  0x00002e57 arg  0x0000000c , 0x00000007 
+ 00015939  0x00002e58 branch  0x00007ce3 
+ 00015940  0x00002e5b jam  0x00000000 , 0x0000467d 
+ 00015941  0x00002e5c setarg  0x00000000 
+ 00015942  0x00002e5d arg  0x0000000c , 0x00000007 
+ 00015943  0x00002e5e branch  0x00007ce3 
+ 00015944  0x00002e61 arg  0x00000921 , 0x00000005 
+ 00015945  0x00002e62 arg  0x00004602 , 0x00000006 
+ 00015946  0x00002e63 arg  0x00000004 , 0x00000039 
+ 00015947  0x00002e64 call  0x00007cdc 
+ 00015948  0x00002e65 fetch  0x00000003 , 0x00000922 
+ 00015949  0x00002e66 ncall  0x00003e58 , 0x00000034 
+ 00015950  0x00002e67 fetch  0x00000003 , 0x00000922 
+ 00015951  0x00002e68 call  0x00003e5c , 0x00000034 
+ 00015952  0x00002e69 fetch  0x00000003 , 0x00000922 
+ 00015953  0x00002e6a store  0x00000003 , 0x000046af 
+ 00015954  0x00002e6b fetcht  0x00000003 , 0x000046b3 
+ 00015955  0x00002e6c isub  0x00000002 , 0x0000003e 
+ 00015956  0x00002e6d ncall  0x00003d8c , 0x00000005 
+ 00015957  0x00002e6e fetch  0x00000003 , 0x000046af 
+ 00015958  0x00002e6f store  0x00000003 , 0x000046b3 
+ 00015959  0x00002e70 branch  0x00003397 
+ 00015960  0x00002e73 jam  0x00000001 , 0x000046ae 
+ 00015961  0x00002e74 setarg  0x00000180 
+ 00015962  0x00002e75 arg  0x00000006 , 0x00000007 
+ 00015963  0x00002e76 branch  0x00007ce3 
+ 00015964  0x00002e79 jam  0x00000000 , 0x000046ae 
+ 00015965  0x00002e7a setarg  0x00000000 
+ 00015966  0x00002e7b arg  0x00000006 , 0x00000007 
+ 00015967  0x00002e7c branch  0x00007ce3 
+ 00015968  0x00002e80 arg  0x00000929 , 0x00000005 
+ 00015969  0x00002e81 arg  0x00004602 , 0x00000006 
+ 00015970  0x00002e82 arg  0x00000002 , 0x00000039 
+ 00015971  0x00002e83 call  0x00007cdc 
+ 00015972  0x00002e84 fetch  0x00000002 , 0x00000929 
+ 00015973  0x00002e85 ncall  0x00003e70 , 0x00000034 
+ 00015974  0x00002e86 fetch  0x00000002 , 0x00000929 
+ 00015975  0x00002e87 call  0x00003e74 , 0x00000034 
+ 00015976  0x00002e88 fetch  0x00000002 , 0x00000929 
+ 00015977  0x00002e89 store  0x00000002 , 0x00004676 
+ 00015978  0x00002e8a fetcht  0x00000002 , 0x00004679 
+ 00015979  0x00002e8b isub  0x00000002 , 0x0000003e 
+ 00015980  0x00002e8c ncall  0x00003e78 , 0x00000005 
+ 00015981  0x00002e8d fetch  0x00000002 , 0x00004676 
+ 00015982  0x00002e8e store  0x00000002 , 0x00004679 
+ 00015983  0x00002e8f branch  0x00003397 
+ 00015984  0x00002e92 jam  0x00000001 , 0x0000467e 
+ 00015985  0x00002e93 setarg  0x00000180 
+ 00015986  0x00002e94 arg  0x0000000a , 0x00000007 
+ 00015987  0x00002e95 branch  0x00007ce3 
+ 00015988  0x00002e97 jam  0x00000000 , 0x0000467e 
+ 00015989  0x00002e98 setarg  0x00000000 
+ 00015990  0x00002e99 arg  0x0000000a , 0x00000007 
+ 00015991  0x00002e9a branch  0x00007ce3 
+ 00015992  0x00002e9d jam  0x00000022 , 0x000008ea 
+ 00015993  0x00002e9e branch  0x00003d53 
+ 00015994  0x00002ea2 fetch  0x00000001 , 0x000043cf 
+ 00015995  0x00002ea3 rtnne  0x00000004 
+ 00015996  0x00002ea4 fetch  0x00000001 , 0x0000465f 
+ 00015997  0x00002ea5 rtneq  0x0000005a 
+ 00015998  0x00002ea7 jam  0x00000001 , 0x000046ab 
+ 00015999  0x00002ea8 rtn 
+ 00016000  0x00002eac fetch  0x00000001 , 0x000043cf 
+ 00016001  0x00002ead rtnne  0x00000004 
+ 00016002  0x00002eae fetch  0x00000001 , 0x000046ab 
+ 00016003  0x00002eaf rtn  0x00000034 
+ 00016004  0x00002eb0 jam  0x00000000 , 0x00000656 
+ 00016005  0x00002eb2 jam  0x0000005a , 0x0000465f 
+ 00016006  0x00002eb3 call  0x00003d0e 
+ 00016007  0x00002eb4 call  0x00003d09 
+ 00016008  0x00002eb5 fetch  0x00000001 , 0x00000656 
+ 00016009  0x00002eb6 increase  0x00000001 , 0x0000003f 
+ 00016010  0x00002eb7 store  0x00000001 , 0x00000656 
+ 00016011  0x00002eb8 beq  0x000000ff , 0x00006c99 
+ 00016012  0x00002eb9 fetch  0x00000001 , 0x0000465f 
+ 00016013  0x00002eba bne  0x0000005a , 0x00003e85 
+ 00016014  0x00002ebb branch  0x00006c99 
+ 00016015  0x00002ec2 call  0x00003e9a 
+ 00016016  0x00002ec3 nbranch  0x00002002 , 0x00000028 
+ 00016017  0x00002ec4 fetch  0x00000001 , 0x0000488d 
+ 00016018  0x00002ec5 branch  0x00002002 , 0x00000034 
+ 00016019  0x00002ec6 fetch  0x00000001 , 0x0000490f 
+ 00016020  0x00002ec7 rtneq  0x000000ff 
+ 00016021  0x00002ec8 copy  0x0000003f , 0x00000007 
+ 00016022  0x00002ec9 fetch  0x00000004 , 0x0000067b 
+ 00016023  0x00002eca qisolate0  0x0000003f 
+ 00016024  0x00002ecb call  0x0000469b , 0x00000001 
+ 00016025  0x00002ecc branch  0x00002003 
+ 00016026  0x00002ecf disable  0x00000028 
+ 00016027  0x00002ed0 fetch  0x00000008 , 0x0000488e 
+ 00016028  0x00002ed1 bbit0  0x00000008 , 0x00004e1b 
+ 00016029  0x00002ed2 fetch  0x00000001 , 0x00008132 
+ 00016030  0x00002ed3 bbit1  0x00000004 , 0x00004e1b 
+ 00016031  0x00002ed4 enable  0x00000028 
+ 00016032  0x00002ed5 branch  0x00004e1b 
+ 00016033  0x00002ed8 call  0x000067ff 
+ 00016034  0x00002ed9 call  0x00003ea5 
+ 00016035  0x00002eda call  0x00003eaa 
+ 00016036  0x00002edb branch  0x00003266 
+ 00016037  0x00002ede jam  0x00000010 , 0x00004099 
+ 00016038  0x00002edf fetch  0x00000008 , 0x0000488e 
+ 00016039  0x00002ee0 rtnbit1  0x00000009 
+ 00016040  0x00002ee1 jam  0x00000018 , 0x00004099 
+ 00016041  0x00002ee2 rtn 
+ 00016042  0x00002ee5 call  0x00003260 
+ 00016043  0x00002ee6 fetch  0x00000008 , 0x0000488e 
+ 00016044  0x00002ee7 rtnbit0  0x00000014 
+ 00016045  0x00002ee8 branch  0x00003263 
+ 00016046  0x00002eec call  0x00007384 
+ 00016047  0x00002eed call  0x00003ebd 
+ 00016048  0x00002eef call  0x00003ef9 
+ 00016049  0x00002ef0 call  0x000040eb 
+ 00016050  0x00002ef1 call  0x00006f4e 
+ 00016051  0x00002ef2 rtn  0x0000002b 
+ 00016052  0x00002ef3 call  0x0000404e 
+ 00016053  0x00002ef4 fetch  0x00000001 , 0x00004678 
+ 00016054  0x00002ef5 beq  0x00000004 , 0x000049d7 
+ 00016055  0x00002ef7 fetch  0x00000002 , 0x00004500 
+ 00016056  0x00002ef8 bbit1  0x0000000c , 0x000048c5 
+ 00016057  0x00002ef9 jam  0x00000000 , 0x00004896 
+ 00016058  0x00002efa call  0x000042e3 
+ 00016059  0x00002efb jam  0x00000001 , 0x00004896 
+ 00016060  0x00002efc branch  0x0000430e 
+ 00016061  0x00002eff rtn  0x0000002b 
+ 00016062  0x00002f00 call  0x000035c8 
+ 00016063  0x00002f01 call  0x0000323a 
+ 00016064  0x00002f02 call  0x00003edb 
+ 00016065  0x00002f03 call  0x00004161 
+ 00016066  0x00002f04 call  0x00004203 
+ 00016067  0x00002f05 call  0x000041b7 
+ 00016068  0x00002f06 call  0x00002a1f 
+ 00016069  0x00002f07 bpatch  0x0000003e , 0x00004007 
+ 00016070  0x00002f08 fetch  0x00000008 , 0x0000488e 
+ 00016071  0x00002f09 bbit1  0x0000000f , 0x00003f31 
+ 00016072  0x00002f0a bbit1  0x0000000e , 0x00003f96 
+ 00016073  0x00002f0b bbit1  0x0000000c , 0x00003fd5 
+ 00016074  0x00002f0c rtn 
+ 00016075  0x00002f0f setarg  0x00009000 
+ 00016076  0x00002f10 store  0x00000002 , 0x000042f9 
+ 00016077  0x00002f11 fetch  0x00000008 , 0x0000488e 
+ 00016078  0x00002f12 bbit1  0x00000023 , 0x0000680c 
+ 00016079  0x00002f13 setarg  0x000095b8 
+ 00016080  0x00002f14 store  0x00000002 , 0x000048d6 
+ 00016081  0x00002f15 fetch  0x00000008 , 0x0000488e 
+ 00016082  0x00002f16 bbit1  0x00000020 , 0x0000680c 
+ 00016083  0x00002f17 bbit1  0x00000021 , 0x0000680c 
+ 00016084  0x00002f18 setarg  0x000094fc 
+ 00016085  0x00002f19 store  0x00000002 , 0x000048d6 
+ 00016086  0x00002f1a fetch  0x00000008 , 0x0000488e 
+ 00016087  0x00002f1b bbit1  0x00000022 , 0x0000680c 
+ 00016088  0x00002f1c setarg  0x0000944a 
+ 00016089  0x00002f1d store  0x00000002 , 0x000048d6 
+ 00016090  0x00002f1e branch  0x0000680c 
+ 00016091  0x00002f22 call  0x00003ef4 
+ 00016092  0x00002f23 call  0x00003ecb 
+ 00016093  0x00002f24 call  0x00004093 
+ 00016094  0x00002f25 fetch  0x00000001 , 0x00004ac1 
+ 00016095  0x00002f26 store  0x00000001 , 0x00004ac2 
+ 00016096  0x00002f27 jam  0x00000000 , 0x000049a0 
+ 00016097  0x00002f28 arg  0x0000475f , 0x00000005 
+ 00016098  0x00002f29 arg  0x00000014 , 0x00000039 
+ 00016099  0x00002f2a call  0x00007ca3 
+ 00016100  0x00002f2c fetch  0x00000001 , 0x0000426d 
+ 00016101  0x00002f2d sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00016102  0x00002f2e nbranch  0x00003ef2 , 0x00000002 
+ 00016103  0x00002f2f setarg  0x0006ff06 
+ 00016104  0x00002f30 store  0x00000003 , 0x0000475f 
+ 00016105  0x00002f31 setarg  0x00000300 
+ 00016106  0x00002f32 istore  0x00000003 , 0x00000005 
+ 00016107  0x00002f33 setarg  0x00000080 
+ 00016108  0x00002f34 istore  0x00000001 , 0x00000005 
+ 00016109  0x00002f36 fetch  0x00000001 , 0x0000426d 
+ 00016110  0x00002f37 increase  0x00000001 , 0x0000003f 
+ 00016111  0x00002f38 copy  0x0000003f , 0x00000039 
+ 00016112  0x00002f39 arg  0x0000436d , 0x00000006 
+ 00016113  0x00002f3a branch  0x00007cdc 
+ 00016114  0x00002f3d arg  0x0000475f , 0x00000005 
+ 00016115  0x00002f3e branch  0x00003eed 
+ 00016116  0x00002f41 arg  0x00000000 , 0x00000002 
+ 00016117  0x00002f42 fetch  0x00000008 , 0x0000488e 
+ 00016118  0x00002f43 bbit1  0x0000000f , 0x0000681d 
+ 00016119  0x00002f44 arg  0x00ffffff , 0x00000002 
+ 00016120  0x00002f45 branch  0x0000681d 
+ 00016121  0x00002f49 call  0x00007de6 
+ 00016122  0x00002f4a fetcht  0x00000001 , 0x0000490f 
+ 00016123  0x00002f4b call  0x00004f0a 
+ 00016124  0x00002f4d fetch  0x00000008 , 0x0000488e 
+ 00016125  0x00002f4e isolate1  0x0000000a , 0x0000003f 
+ 00016126  0x00002f4f call  0x000023a5 , 0x00000001 
+ 00016127  0x00002f52 setarg  0x0000491f 
+ 00016128  0x00002f53 store  0x00000002 , 0x00004948 
+ 00016129  0x00002f55 setarg  0x00004927 
+ 00016130  0x00002f56 store  0x00000002 , 0x0000494a 
+ 00016131  0x00002f58 setarg  0x0000493c 
+ 00016132  0x00002f59 store  0x00000002 , 0x0000494c 
+ 00016133  0x00002f5a call  0x00003f0f 
+ 00016134  0x00002f5b fetch  0x00000002 , 0x0000494a 
+ 00016135  0x00002f5c copy  0x0000003f , 0x00000012 
+ 00016136  0x00002f5d arg  0x00000014 , 0x00000039 
+ 00016137  0x00002f5f ifetcht  0x00000001 , 0x00000012 
+ 00016138  0x00002f60 isolate1  0x00000007 , 0x00000002 
+ 00016139  0x00002f61 ncall  0x00006f0b , 0x00000001 
+ 00016140  0x00002f62 increase  0x00000001 , 0x00000012 
+ 00016141  0x00002f63 loop  0x00003f09 
+ 00016142  0x00002f64 rtn 
+ 00016143  0x00002f67 fetch  0x00000002 , 0x00004948 
+ 00016144  0x00002f68 copy  0x0000003f , 0x00000012 
+ 00016145  0x00002f69 arg  0x00000008 , 0x00000039 
+ 00016146  0x00002f6b ifetcht  0x00000001 , 0x00000012 
+ 00016147  0x00002f6c sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00016148  0x00002f6d ncall  0x00003f18 , 0x00000005 
+ 00016149  0x00002f6e increase  0x00000001 , 0x00000012 
+ 00016150  0x00002f6f loop  0x00003f12 
+ 00016151  0x00002f70 branch  0x000023e1 
+ 00016152  0x00002f73 call  0x00006f0b 
+ 00016153  0x00002f74 ifetcht  0x00000001 , 0x00000012 
+ 00016154  0x00002f75 branch  0x00006ec0 
+ 00016155  0x00002f78 arg  0x00008070 , 0x00000006 
+ 00016156  0x00002f79 arg  0x00000010 , 0x00000039 
+ 00016157  0x00002f7b ifetch  0x00000001 , 0x00000006 
+ 00016158  0x00002f7c nbranch  0x00003f22 , 0x00000034 
+ 00016159  0x00002f7d setarg  0x00000040 
+ 00016160  0x00002f7e add  0x00000006 , 0xffffffff , 0x00000005 
+ 00016161  0x00002f7f istore  0x00000001 , 0x00000005 
+ 00016162  0x00002f81 loop  0x00003f1d 
+ 00016163  0x00002f82 arg  0x000080dc , 0x0000003f 
+ 00016164  0x00002f83 isub  0x00000006 , 0x0000003e 
+ 00016165  0x00002f84 rtn  0x00000005 
+ 00016166  0x00002f85 arg  0x00000008 , 0x00000039 
+ 00016167  0x00002f86 arg  0x000080d4 , 0x00000006 
+ 00016168  0x00002f87 branch  0x00003f1d 
+ 00016169  0x00002f8a fetch  0x00000001 , 0x000049a0 
+ 00016170  0x00002f8b branch  0x00006eac , 0x00000034 
+ 00016171  0x00002f8c branch  0x00006ea5 
+ 00016172  0x00002f93 fetch  0x00000002 , 0x00004abd 
+ 00016173  0x00002f95 fetcht  0x00000002 , 0x00004abf 
+ 00016174  0x00002f96 isub  0x00000002 , 0x0000003e 
+ 00016175  0x00002f97 nrtn  0x00000002 
+ 00016176  0x00002f98 branch  0x0000233e 
+ 00016177  0x00002f9c fetch  0x00000001 , 0x00004678 
+ 00016178  0x00002f9d beq  0x00000000 , 0x00003f35 
+ 00016179  0x00002f9e beq  0x00000001 , 0x00003f3f 
+ 00016180  0x00002f9f rtn 
+ 00016181  0x00002fa2 arg  0x00000008 , 0x00000018 
+ 00016182  0x00002fa4 fetch  0x00000002 , 0x00004abf 
+ 00016183  0x00002fa5 idiv  0x00000018 
+ 00016184  0x00002fa6 call  0x00007d64 
+ 00016185  0x00002fa7 quotient  0x0000003f 
+ 00016186  0x00002fa8 store  0x00000002 , 0x0000064e 
+ 00016187  0x00002fa9 arg  0x00001fbc , 0x0000003f 
+ 00016188  0x00002faa arg  0x00000004 , 0x00000002 
+ 00016189  0x00002fab arg  0x00000004 , 0x0000002b 
+ 00016190  0x00002fac branch  0x00003f49 
+ 00016191  0x00002fae arg  0x00000020 , 0x00000018 
+ 00016192  0x00002fb0 fetch  0x00000002 , 0x00004abf 
+ 00016193  0x00002fb1 idiv  0x00000018 
+ 00016194  0x00002fb2 call  0x00007d64 
+ 00016195  0x00002fb3 quotient  0x0000003f 
+ 00016196  0x00002fb4 store  0x00000002 , 0x0000064e 
+ 00016197  0x00002fb5 arg  0x00001fb0 , 0x0000003f 
+ 00016198  0x00002fb6 arg  0x00000010 , 0x00000002 
+ 00016199  0x00002fb7 arg  0x00000010 , 0x0000002b 
+ 00016200  0x00002fb8 branch  0x00003f49 
+ 00016201  0x00002fba store  0x00000002 , 0x00000650 
+ 00016202  0x00002fbb storet  0x00000001 , 0x00000656 
+ 00016203  0x00002fbc arg  0x00004aa5 , 0x00000011 
+ 00016204  0x00002fbd arg  0x00000000 , 0x00000013 
+ 00016205  0x00002fbf fetch  0x00000002 , 0x00000650 
+ 00016206  0x00002fc0 copy  0x0000003f , 0x00000012 
+ 00016207  0x00002fc1 fetchr  0x00000039 , 0x00000001 , 0x00000656 
+ 00016208  0x00002fc2 arg  0x00004aa5 , 0x00000011 
+ 00016209  0x00002fc3 call  0x00006b62 
+ 00016210  0x00002fc4 fetch  0x00000008 , 0x00004aa5 
+ 00016211  0x00002fc5 fetcht  0x00000008 , 0x00004aad 
+ 00016212  0x00002fc6 ior  0x00000002 , 0x0000003f 
+ 00016213  0x00002fc7 fetcht  0x00000008 , 0x00004ab5 
+ 00016214  0x00002fc8 ior  0x00000002 , 0x0000003f 
+ 00016215  0x00002fc9 branch  0x00003f5f , 0x00000034 
+ 00016216  0x00002fca increase  0x00000001 , 0x00000013 
+ 00016217  0x00002fcb fetch  0x00000002 , 0x0000064e 
+ 00016218  0x00002fcc isub  0x00000013 , 0x0000003e 
+ 00016219  0x00002fcd fetch  0x00000002 , 0x00000650 
+ 00016220  0x00002fce isub  0x00000018 , 0x0000003f 
+ 00016221  0x00002fcf store  0x00000002 , 0x00000650 
+ 00016222  0x00002fd0 branch  0x00003f4d 
+ 00016223  0x00002fd3 sub  0x00000013 , 0x00000000 , 0x0000003e 
+ 00016224  0x00002fd4 branch  0x00003f72 , 0x00000005 
+ 00016225  0x00002fd6 fetch  0x00000002 , 0x00000650 
+ 00016226  0x00002fd7 iadd  0x00000018 , 0x0000003f 
+ 00016227  0x00002fd9 isub  0x0000002b , 0x0000003f 
+ 00016228  0x00002fda store  0x00000002 , 0x00000650 
+ 00016229  0x00002fdb fetch  0x00000002 , 0x00000650 
+ 00016230  0x00002fdc copy  0x0000003f , 0x00000012 
+ 00016231  0x00002fdd fetchr  0x00000039 , 0x00000001 , 0x00000656 
+ 00016232  0x00002fde arg  0x00004aa5 , 0x00000011 
+ 00016233  0x00002fdf call  0x00006b62 
+ 00016234  0x00002fe0 fetch  0x00000008 , 0x00004aa5 
+ 00016235  0x00002fe1 fetcht  0x00000008 , 0x00004aad 
+ 00016236  0x00002fe2 ior  0x00000002 , 0x0000003f 
+ 00016237  0x00002fe3 fetcht  0x00000008 , 0x00004ab5 
+ 00016238  0x00002fe4 ior  0x00000002 , 0x0000003f 
+ 00016239  0x00002fe5 branch  0x00003f74 , 0x00000034 
+ 00016240  0x00002fe6 fetch  0x00000002 , 0x00000650 
+ 00016241  0x00002fe7 branch  0x00003f63 
+ 00016242  0x00002fea storer  0x0000002b , 0x00000001 , 0x00004abd 
+ 00016243  0x00002feb rtn 
+ 00016244  0x00002fed setarg  0x00001fc0 
+ 00016245  0x00002fee fetcht  0x00000002 , 0x00000650 
+ 00016246  0x00002fef isub  0x00000002 , 0x0000003f 
+ 00016247  0x00002ff0 store  0x00000002 , 0x00004abd 
+ 00016248  0x00002ff1 copy  0x00000002 , 0x0000003f 
+ 00016249  0x00002ff2 iadd  0x0000002b , 0x00000012 
+ 00016250  0x00002ff3 fetchr  0x00000039 , 0x00000001 , 0x00000656 
+ 00016251  0x00002ff4 arg  0x00004aa5 , 0x00000011 
+ 00016252  0x00002ff5 call  0x00006b62 
+ 00016253  0x00002ff6 fetch  0x00000001 , 0x00004678 
+ 00016254  0x00002ff7 beq  0x00000000 , 0x00003f81 
+ 00016255  0x00002ff8 beq  0x00000001 , 0x00003f87 
+ 00016256  0x00002ff9 rtn 
+ 00016257  0x00002ffc fetch  0x00000006 , 0x00004aa5 
+ 00016258  0x00002ffd store  0x00000004 , 0x000046a3 
+ 00016259  0x00002ffe fetch  0x00000004 , 0x000046a3 
+ 00016260  0x00002fff store  0x00000004 , 0x000045ff 
+ 00016261  0x00003000 store  0x00000004 , 0x000045a6 
+ 00016262  0x00003001 rtn 
+ 00016263  0x00003004 fetch  0x00000001 , 0x00004aa5 
+ 00016264  0x00003005 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00016265  0x00003006 ncall  0x00007dcc , 0x00000002 
+ 00016266  0x00003007 store  0x00000001 , 0x00004aa1 
+ 00016267  0x00003008 fetch  0x00000001 , 0x00004aa6 
+ 00016268  0x00003009 store  0x00000001 , 0x00004679 
+ 00016269  0x0000300a fetch  0x00000006 , 0x00004aa7 
+ 00016270  0x0000300b store  0x00000006 , 0x0000467a 
+ 00016271  0x0000300c fetch  0x00000006 , 0x00004aad 
+ 00016272  0x0000300d store  0x00000006 , 0x00004680 
+ 00016273  0x0000300e fetcht  0x00000002 , 0x00004ab3 
+ 00016274  0x0000300f random  0x0000003f 
+ 00016275  0x00003010 iadd  0x00000002 , 0x0000003f 
+ 00016276  0x00003011 store  0x00000002 , 0x000046a7 
+ 00016277  0x00003012 branch  0x000067d5 
+ 00016278  0x00003016 fetch  0x00000008 , 0x0000488e 
+ 00016279  0x00003017 bbit0  0x0000003d , 0x00003f9d 
+ 00016280  0x00003018 fetcht  0x00000001 , 0x00004440 
+ 00016281  0x00003019 call  0x00004f0a 
+ 00016282  0x0000301a fetcht  0x00000001 , 0x00004440 
+ 00016283  0x0000301b call  0x00006ee0 
+ 00016284  0x0000301c branch  0x00003f96 , 0x00000001 
+ 00016285  0x0000301e call  0x00004049 
+ 00016286  0x0000301f arg  0x00000080 , 0x00000002 
+ 00016287  0x00003020 arg  0x00004678 , 0x00000011 
+ 00016288  0x00003021 arg  0x00000000 , 0x00000012 
+ 00016289  0x00003022 call  0x00006cd7 
+ 00016290  0x00003024 bpatch  0x0000003f , 0x00004007 
+ 00016291  0x00003025 call  0x00003fc6 
+ 00016292  0x00003026 fetch  0x00000001 , 0x00004678 
+ 00016293  0x00003027 beq  0x00000000 , 0x00003faa 
+ 00016294  0x00003028 beq  0x00000001 , 0x00003fb0 
+ 00016295  0x00003029 beq  0x00000002 , 0x00003fbb 
+ 00016296  0x0000302a beq  0x00000003 , 0x00003fbf 
+ 00016297  0x0000302b beq  0x00000004 , 0x00003fc3 
+ 00016298  0x0000302d jam  0x00000000 , 0x00004aa1 
+ 00016299  0x0000302e fetch  0x00000001 , 0x000046a9 
+ 00016300  0x00003030 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00016301  0x00003031 ncall  0x00007dcc , 0x00000005 
+ 00016302  0x00003032 store  0x00000001 , 0x00004a93 
+ 00016303  0x00003033 rtn 
+ 00016304  0x00003035 fetch  0x00000001 , 0x000046aa 
+ 00016305  0x00003036 call  0x00003fac 
+ 00016306  0x00003037 fetch  0x00000001 , 0x000046ae 
+ 00016307  0x00003038 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00016308  0x00003039 ncall  0x00007dcc , 0x00000002 
+ 00016309  0x0000303b store  0x00000001 , 0x00004aa1 
+ 00016310  0x0000303c fetcht  0x00000002 , 0x000046a7 
+ 00016311  0x0000303d random  0x0000003f 
+ 00016312  0x0000303e iadd  0x00000002 , 0x0000003f 
+ 00016313  0x0000303f store  0x00000002 , 0x000046a7 
+ 00016314  0x00003040 rtn 
+ 00016315  0x00003042 fetch  0x00000001 , 0x000046ab 
+ 00016316  0x00003043 call  0x00003fac 
+ 00016317  0x00003044 fetch  0x00000001 , 0x000046af 
+ 00016318  0x00003045 branch  0x00003fb5 
+ 00016319  0x00003047 fetch  0x00000001 , 0x000046ac 
+ 00016320  0x00003048 call  0x00003fac 
+ 00016321  0x00003049 fetch  0x00000001 , 0x000046b0 
+ 00016322  0x0000304a branch  0x00003fb5 
+ 00016323  0x0000304c jam  0x00000000 , 0x00004aa1 
+ 00016324  0x0000304d fetch  0x00000001 , 0x000046ad 
+ 00016325  0x0000304e branch  0x00003fac 
+ 00016326  0x00003051 fetch  0x00000002 , 0x000046a0 
+ 00016327  0x00003052 arg  0x0000aa55 , 0x00000002 
+ 00016328  0x00003053 isub  0x00000002 , 0x0000003e 
+ 00016329  0x00003054 branch  0x000067cf , 0x00000005 
+ 00016330  0x00003055 storet  0x00000002 , 0x000046a0 
+ 00016331  0x00003056 call  0x000067f8 
+ 00016332  0x00003057 fetch  0x00000001 , 0x00004717 
+ 00016333  0x00003058 store  0x00000001 , 0x00004678 
+ 00016334  0x00003059 fetch  0x00000004 , 0x000045fb 
+ 00016335  0x0000305a store  0x00000004 , 0x000045ff 
+ 00016336  0x0000305b store  0x00000004 , 0x000045a6 
+ 00016337  0x0000305c fetch  0x00000001 , 0x00004aa2 
+ 00016338  0x0000305d set1  0x00000000 , 0x0000003f 
+ 00016339  0x0000305e store  0x00000001 , 0x00004aa2 
+ 00016340  0x0000305f branch  0x00003fd7 
+ 00016341  0x00003062 call  0x000067b6 
+ 00016342  0x00003063 branch  0x00003fa2 
+ 00016343  0x00003066 bpatch  0x00000040 , 0x00004008 
+ 00016344  0x00003067 fetch  0x00000008 , 0x0000488e 
+ 00016345  0x00003068 bbit1  0x0000000f , 0x00003fdd 
+ 00016346  0x00003069 bbit1  0x0000000e , 0x00004004 
+ 00016347  0x0000306a bbit1  0x0000000c , 0x000067bb 
+ 00016348  0x0000306b rtn 
+ 00016349  0x0000306e fetch  0x00000001 , 0x00004678 
+ 00016350  0x0000306f beq  0x00000000 , 0x00003fe1 
+ 00016351  0x00003070 beq  0x00000001 , 0x00003feb 
+ 00016352  0x00003071 rtn 
+ 00016353  0x00003074 fetcht  0x00000002 , 0x00004abd 
+ 00016354  0x00003075 setarg  0x00001fc0 
+ 00016355  0x00003076 isub  0x00000002 , 0x00000012 
+ 00016356  0x00003077 arg  0x000046a3 , 0x00000011 
+ 00016357  0x00003078 arg  0x00000004 , 0x00000039 
+ 00016358  0x00003079 call  0x00006b33 
+ 00016359  0x0000307a fetcht  0x00000002 , 0x00004abd 
+ 00016360  0x0000307b increase  0x00000004 , 0x00000002 
+ 00016361  0x0000307c storet  0x00000002 , 0x00004abd 
+ 00016362  0x0000307d rtn 
+ 00016363  0x00003080 jam  0x00000001 , 0x00004aa3 
+ 00016364  0x00003081 fetch  0x00000001 , 0x00004aa4 
+ 00016365  0x00003082 rtn  0x00000034 
+ 00016366  0x00003084 fetcht  0x00000002 , 0x00004abd 
+ 00016367  0x00003085 setarg  0x00001fc0 
+ 00016368  0x00003086 isub  0x00000002 , 0x0000003f 
+ 00016369  0x00003087 store  0x00000002 , 0x0000064e 
+ 00016370  0x00003089 copy  0x0000003f , 0x00000012 
+ 00016371  0x0000308a arg  0x00004aa1 , 0x00000011 
+ 00016372  0x0000308b arg  0x00000001 , 0x00000039 
+ 00016373  0x0000308c call  0x00006b33 
+ 00016374  0x0000308e fetch  0x00000002 , 0x0000064e 
+ 00016375  0x0000308f add  0x0000003f , 0x00000001 , 0x00000012 
+ 00016376  0x00003090 arg  0x00004679 , 0x00000011 
+ 00016377  0x00003091 arg  0x0000000d , 0x00000039 
+ 00016378  0x00003092 call  0x00006b33 
+ 00016379  0x00003094 fetch  0x00000002 , 0x0000064e 
+ 00016380  0x00003095 add  0x0000003f , 0x0000000e , 0x00000012 
+ 00016381  0x00003096 arg  0x000046a7 , 0x00000011 
+ 00016382  0x00003097 arg  0x00000002 , 0x00000039 
+ 00016383  0x00003098 call  0x00006b33 
+ 00016384  0x0000309a fetcht  0x00000002 , 0x00004abd 
+ 00016385  0x0000309b increase  0x00000010 , 0x00000002 
+ 00016386  0x0000309c storet  0x00000002 , 0x00004abd 
+ 00016387  0x0000309d rtn 
+ 00016388  0x000030a0 fetch  0x00000008 , 0x0000488e 
+ 00016389  0x000030a1 bbit0  0x0000003d , 0x0000400b 
+ 00016390  0x000030a2 fetcht  0x00000001 , 0x00004440 
+ 00016391  0x000030a3 call  0x00004f0a 
+ 00016392  0x000030a4 fetcht  0x00000001 , 0x00004440 
+ 00016393  0x000030a5 call  0x00006ee0 
+ 00016394  0x000030a6 branch  0x000044b9 , 0x00000001 
+ 00016395  0x000030a8 call  0x00004049 
+ 00016396  0x000030aa fetch  0x00000001 , 0x00004aa2 
+ 00016397  0x000030ab bbit1  0x00000000 , 0x00004014 
+ 00016398  0x000030ac bbit1  0x00000001 , 0x00004019 
+ 00016399  0x000030ad bbit1  0x00000002 , 0x00004025 
+ 00016400  0x000030ae bbit1  0x00000003 , 0x0000402d 
+ 00016401  0x000030af bbit1  0x00000004 , 0x00004035 
+ 00016402  0x000030b0 bbit1  0x00000005 , 0x0000403d 
+ 00016403  0x000030b1 rtn 
+ 00016404  0x000030b3 jam  0x00000000 , 0x00004aa2 
+ 00016405  0x000030b4 arg  0x00000080 , 0x00000002 
+ 00016406  0x000030b5 arg  0x00004678 , 0x00000011 
+ 00016407  0x000030b6 arg  0x00000000 , 0x00000012 
+ 00016408  0x000030b7 branch  0x00006cc9 
+ 00016409  0x000030b9 fetch  0x00000001 , 0x00004aa2 
+ 00016410  0x000030ba set0  0x00000001 , 0x0000003f 
+ 00016411  0x000030bb store  0x00000001 , 0x00004aa2 
+ 00016412  0x000030bc arg  0x00000027 , 0x00000002 
+ 00016413  0x000030bd arg  0x00004679 , 0x00000011 
+ 00016414  0x000030be arg  0x00000001 , 0x00000012 
+ 00016415  0x000030bf call  0x00006cc9 
+ 00016416  0x000030c0 arg  0x00000002 , 0x00000002 
+ 00016417  0x000030c1 arg  0x000046a7 , 0x00000011 
+ 00016418  0x000030c2 arg  0x0000002f , 0x00000012 
+ 00016419  0x000030c3 call  0x00006cc9 
+ 00016420  0x000030c4 branch  0x0000400c 
+ 00016421  0x000030c6 fetch  0x00000001 , 0x00004aa2 
+ 00016422  0x000030c7 set0  0x00000002 , 0x0000003f 
+ 00016423  0x000030c8 store  0x00000001 , 0x00004aa2 
+ 00016424  0x000030c9 arg  0x00000004 , 0x00000002 
+ 00016425  0x000030ca arg  0x000046a3 , 0x00000011 
+ 00016426  0x000030cb arg  0x0000002b , 0x00000012 
+ 00016427  0x000030cc call  0x00006cc9 
+ 00016428  0x000030cd branch  0x0000400c 
+ 00016429  0x000030cf fetch  0x00000001 , 0x00004aa2 
+ 00016430  0x000030d0 set0  0x00000003 , 0x0000003f 
+ 00016431  0x000030d1 store  0x00000001 , 0x00004aa2 
+ 00016432  0x000030d2 arg  0x00000005 , 0x00000002 
+ 00016433  0x000030d3 arg  0x000046a9 , 0x00000011 
+ 00016434  0x000030d4 arg  0x00000031 , 0x00000012 
+ 00016435  0x000030d5 call  0x00006cc9 
+ 00016436  0x000030d6 branch  0x0000400c 
+ 00016437  0x000030d8 fetch  0x00000001 , 0x00004aa2 
+ 00016438  0x000030d9 set0  0x00000004 , 0x0000003f 
+ 00016439  0x000030da store  0x00000001 , 0x00004aa2 
+ 00016440  0x000030db arg  0x00000003 , 0x00000002 
+ 00016441  0x000030dc arg  0x000046ae , 0x00000011 
+ 00016442  0x000030dd arg  0x00000036 , 0x00000012 
+ 00016443  0x000030de call  0x00006cc9 
+ 00016444  0x000030df branch  0x0000400c 
+ 00016445  0x000030e1 fetch  0x00000001 , 0x00004aa2 
+ 00016446  0x000030e2 set0  0x00000005 , 0x0000003f 
+ 00016447  0x000030e3 store  0x00000001 , 0x00004aa2 
+ 00016448  0x000030e4 arg  0x00000004 , 0x00000002 
+ 00016449  0x000030e5 arg  0x000046b1 , 0x00000011 
+ 00016450  0x000030e6 arg  0x00000039 , 0x00000012 
+ 00016451  0x000030e7 call  0x00006cc9 
+ 00016452  0x000030e8 branch  0x0000400c 
+ 00016453  0x000030eb arg  0x00000001 , 0x00000002 
+ 00016454  0x000030ec arg  0x00004678 , 0x00000011 
+ 00016455  0x000030ed arg  0x00000000 , 0x00000012 
+ 00016456  0x000030ee branch  0x00006cc9 
+ 00016457  0x000030f1 call  0x00006cb2 
+ 00016458  0x000030f2 fetch  0x00000008 , 0x0000488e 
+ 00016459  0x000030f3 isolate1  0x0000000d , 0x0000003f 
+ 00016460  0x000030f4 branch  0x00006cb7 , 0x00000001 
+ 00016461  0x000030f5 branch  0x00006cba 
+ 00016462  0x000030fa bpatch  0x00000041 , 0x00004008 
+ 00016463  0x000030fb setarg  0x000068c4 
+ 00016464  0x000030fc store  0x00000002 , 0x000043f2 
+ 00016465  0x000030fd setarg  0x00004862 
+ 00016466  0x000030fe store  0x00000002 , 0x00004609 
+ 00016467  0x000030ff setarg  0x00004871 
+ 00016468  0x00003100 store  0x00000002 , 0x0000460b 
+ 00016469  0x00003101 setarg  0x0000478f 
+ 00016470  0x00003102 store  0x00000002 , 0x0000460d 
+ 00016471  0x00003103 setarg  0x00004875 
+ 00016472  0x00003104 store  0x00000002 , 0x000043e2 
+ 00016473  0x00003106 setarg  0x000047aa 
+ 00016474  0x00003107 store  0x00000002 , 0x000043e0 
+ 00016475  0x00003109 setarg  0x00004066 
+ 00016476  0x0000310a store  0x00000002 , 0x000043e6 
+ 00016477  0x0000310b setarg  0x000042dd 
+ 00016478  0x0000310c store  0x00000002 , 0x000043e4 
+ 00016479  0x0000310d setarg  0x000047ac 
+ 00016480  0x0000310e store  0x00000002 , 0x000043de 
+ 00016481  0x0000310f setarg  0x00005420 
+ 00016482  0x00003110 store  0x00000002 , 0x000043e8 
+ 00016483  0x00003111 setarg  0x00004075 
+ 00016484  0x00003112 store  0x00000002 , 0x000043ec 
+ 00016485  0x00003113 branch  0x000068cb 
+ 00016486  0x00003118 bpatch  0x00000042 , 0x00004008 
+ 00016487  0x00003119 copy  0x00000013 , 0x0000003f 
+ 00016488  0x0000311b beq  0x00000032 , 0x000048b3 
+ 00016489  0x0000311c beq  0x00000040 , 0x000048bb 
+ 00016490  0x0000311d beq  0x00000015 , 0x000048a2 
+ 00016491  0x0000311f beq  0x00000014 , 0x00004893 
+ 00016492  0x00003120 beq  0x00000010 , 0x000048c0 
+ 00016493  0x00003121 beq  0x00000031 , 0x00005406 
+ 00016494  0x00003122 beq  0x00000029 , 0x00005408 
+ 00016495  0x00003124 beq  0x0000003e , 0x0000379e 
+ 00016496  0x00003125 beq  0x00000044 , 0x00005428 
+ 00016497  0x00003127 beq  0x00000039 , 0x000047b8 
+ 00016498  0x00003128 beq  0x0000003c , 0x000047ca 
+ 00016499  0x00003129 beq  0x0000003a , 0x000047e6 
+ 00016500  0x0000312b rtn 
+ 00016501  0x00003131 bpatch  0x00000043 , 0x00004008 
+ 00016502  0x00003132 call  0x000040e0 
+ 00016503  0x00003133 call  0x000040cc 
+ 00016504  0x00003134 call  0x000040dd 
+ 00016505  0x00003137 call  0x00004100 
+ 00016506  0x00003138 call  0x00004186 
+ 00016507  0x00003139 call  0x000041ab 
+ 00016508  0x0000313a call  0x00004131 
+ 00016509  0x0000313b call  0x0000413e 
+ 00016510  0x0000313c call  0x00004146 
+ 00016511  0x0000313f call  0x00004267 
+ 00016512  0x00003140 call  0x0000428f 
+ 00016513  0x00003141 call  0x000042c4 
+ 00016514  0x00003144 call  0x0000326c 
+ 00016515  0x00003145 call  0x00003507 
+ 00016516  0x00003146 call  0x000058f6 
+ 00016517  0x00003147 call  0x000042b5 
+ 00016518  0x00003148 call  0x000042bf 
+ 00016519  0x0000314b call  0x00004299 
+ 00016520  0x0000314c call  0x000042a4 
+ 00016521  0x0000314d call  0x0000550d 
+ 00016522  0x0000314e call  0x000042ad 
+ 00016523  0x0000314f call  0x00005510 
+ 00016524  0x00003150 call  0x000042b2 
+ 00016525  0x00003151 call  0x000042a1 
+ 00016526  0x00003153 call  0x00005527 
+ 00016527  0x00003154 call  0x0000429e 
+ 00016528  0x00003155 call  0x000042c9 
+ 00016529  0x00003156 call  0x000042cc 
+ 00016530  0x00003157 branch  0x000042d5 
+ 00016531  0x0000315b bpatch  0x00000044 , 0x00004008 
+ 00016532  0x0000315c fetch  0x00000001 , 0x000048b1 
+ 00016533  0x0000315d beq  0x00000000 , 0x00004098 
+ 00016534  0x0000315e beq  0x00000001 , 0x0000409d 
+ 00016535  0x0000315f beq  0x00000002 , 0x000040a2 
+ 00016536  0x00003161 setarg  0x00560094 
+ 00016537  0x00003162 store  0x00000003 , 0x000048ab 
+ 00016538  0x00003163 setarg  0x00006d00 
+ 00016539  0x00003164 istore  0x00000003 , 0x00000005 
+ 00016540  0x00003165 rtn 
+ 00016541  0x00003167 setarg  0x00d4012c 
+ 00016542  0x00003168 store  0x00000003 , 0x000048ab 
+ 00016543  0x00003169 setarg  0x0000e600 
+ 00016544  0x0000316a istore  0x00000003 , 0x00000005 
+ 00016545  0x0000316b rtn 
+ 00016546  0x0000316d setarg  0x02c01270 
+ 00016547  0x0000316e store  0x00000003 , 0x000048ab 
+ 00016548  0x0000316f setarg  0x00014001 
+ 00016549  0x00003170 istore  0x00000003 , 0x00000005 
+ 00016550  0x00003171 rtn 
+ 00016551  0x00003174 call  0x000040a9 
+ 00016552  0x00003175 branch  0x000040e0 
+ 00016553  0x00003178 fetch  0x00000001 , 0x0000441d 
+ 00016554  0x00003179 rtnne  0x00000002 
+ 00016555  0x0000317a fetch  0x00000001 , 0x0000441e 
+ 00016556  0x0000317b call  0x000040b2 
+ 00016557  0x0000317c copy  0x00000002 , 0x0000003f 
+ 00016558  0x0000317d store  0x00000001 , 0x0000464c 
+ 00016559  0x0000317e set1  0x00000007 , 0x0000003f 
+ 00016560  0x0000317f arg  0x00000000 , 0x00000002 
+ 00016561  0x00003180 branch  0x00006f1c 
+ 00016562  0x00003183 arg  0x00000012 , 0x00000002 
+ 00016563  0x00003184 rtneq  0x00000006 
+ 00016564  0x00003185 arg  0x0000000a , 0x00000002 
+ 00016565  0x00003186 rtneq  0x00000007 
+ 00016566  0x00003187 arg  0x00000009 , 0x00000002 
+ 00016567  0x00003188 rtneq  0x00000008 
+ 00016568  0x00003189 arg  0x0000000c , 0x00000002 
+ 00016569  0x0000318a rtneq  0x00000009 
+ 00016570  0x0000318b arg  0x00000006 , 0x00000002 
+ 00016571  0x0000318c rtneq  0x0000000a 
+ 00016572  0x0000318d arg  0x00000014 , 0x00000002 
+ 00016573  0x0000318e rtneq  0x0000000b 
+ 00016574  0x0000318f arg  0x00000015 , 0x00000002 
+ 00016575  0x00003190 rtneq  0x0000000c 
+ 00016576  0x00003191 arg  0x00000016 , 0x00000002 
+ 00016577  0x00003192 rtneq  0x0000000d 
+ 00016578  0x00003193 arg  0x0000000d , 0x00000002 
+ 00016579  0x00003194 rtn 
+ 00016580  0x00003197 call  0x000040a7 
+ 00016581  0x00003198 call  0x00006fb2 
+ 00016582  0x00003199 call  0x00006f8e 
+ 00016583  0x0000319a div  0x0000003f , 0x0000000a 
+ 00016584  0x0000319b call  0x00007d61 
+ 00016585  0x0000319c store  0x00000002 , 0x0000464a 
+ 00016586  0x0000319d arg  0x00004644 , 0x00000011 
+ 00016587  0x0000319e branch  0x00004ec4 
+ 00016588  0x000031a1 fetch  0x00000008 , 0x0000488e 
+ 00016589  0x000031a2 rtnbit0  0x0000000b 
+ 00016590  0x000031a3 call  0x000040c4 
+ 00016591  0x000031a5 fetch  0x00000001 , 0x00004422 
+ 00016592  0x000031a6 bbit1  0x00000001 , 0x000047af 
+ 00016593  0x000031a7 bbit0  0x00000000 , 0x000040d6 
+ 00016594  0x000031a8 jam  0x00000001 , 0x0000464e 
+ 00016595  0x000031a9 branch  0x000040d4 
+ 00016596  0x000031ac arg  0x00000002 , 0x00000007 
+ 00016597  0x000031ad branch  0x00004a25 
+ 00016598  0x000031af arg  0x00000002 , 0x00000007 
+ 00016599  0x000031b0 call  0x00004a29 
+ 00016600  0x000031b1 jam  0x0000000c , 0x00004ac6 
+ 00016601  0x000031b2 fetch  0x00000001 , 0x0000464e 
+ 00016602  0x000031b3 rtn  0x00000034 
+ 00016603  0x000031b4 jam  0x00000000 , 0x0000464e 
+ 00016604  0x000031b5 branch  0x00004184 
+ 00016605  0x000031b8 fetch  0x00000008 , 0x0000488e 
+ 00016606  0x000031b9 rtnbit0  0x0000000b 
+ 00016607  0x000031ba branch  0x00004e5e 
+ 00016608  0x000031bd fetch  0x00000006 , 0x000048ab 
+ 00016609  0x000031be store  0x00000006 , 0x00004644 
+ 00016610  0x000031bf fetch  0x00000001 , 0x0000464e 
+ 00016611  0x000031c0 branch  0x000040e8 , 0x00000034 
+ 00016612  0x000031c1 fetch  0x00000002 , 0x000048af 
+ 00016613  0x000031c2 increase  0x00000005 , 0x0000003f 
+ 00016614  0x000031c3 store  0x00000002 , 0x00004648 
+ 00016615  0x000031c4 rtn 
+ 00016616  0x000031c6 fetch  0x00000002 , 0x000048af 
+ 00016617  0x000031c7 store  0x00000002 , 0x00004648 
+ 00016618  0x000031c8 rtn 
+ 00016619  0x000031cb fetch  0x00000001 , 0x00004678 
+ 00016620  0x000031cc bne  0x00000000 , 0x000040f3 
+ 00016621  0x000031cd call  0x000035d3 
+ 00016622  0x000031ce setarg  0x005d4800 
+ 00016623  0x000031cf store  0x00000004 , 0x0000462a 
+ 00016624  0x000031d0 fetch  0x00000001 , 0x00004422 
+ 00016625  0x000031d1 rtnbit0  0x00000000 
+ 00016626  0x000031d2 branch  0x000058fc 
+ 00016627  0x000031d4 setarg  0x000000a0 
+ 00016628  0x000031d5 call  0x000040f9 
+ 00016629  0x000031d6 fetch  0x00000001 , 0x00004422 
+ 00016630  0x000031d7 rtnbit0  0x00000000 
+ 00016631  0x000031d8 setarg  0x00000050 
+ 00016632  0x000031d9 branch  0x000040f9 
+ 00016633  0x000031dc fetcht  0x00000002 , 0x000042d5 
+ 00016634  0x000031dd idiv  0x00000002 
+ 00016635  0x000031de call  0x00007d61 
+ 00016636  0x000031df store  0x00000001 , 0x0000488b 
+ 00016637  0x000031e0 fetch  0x00000001 , 0x0000473e 
+ 00016638  0x000031e1 branch  0x0000552a , 0x00000034 
+ 00016639  0x000031e2 rtn 
+ 00016640  0x000031e9 jam  0x00000000 , 0x00004acb 
+ 00016641  0x000031ea fetch  0x00000002 , 0x00004750 
+ 00016642  0x000031eb nrtn  0x00000034 
+ 00016643  0x000031ec fetch  0x00000002 , 0x000045ef 
+ 00016644  0x000031ed nrtn  0x00000034 
+ 00016645  0x000031ee fetch  0x00000002 , 0x000045f5 
+ 00016646  0x000031ef nrtn  0x00000034 
+ 00016647  0x000031f0 fetch  0x00000001 , 0x00004ac2 
+ 00016648  0x000031f1 nrtn  0x00000034 
+ 00016649  0x000031f2 fetch  0x00000008 , 0x0000488e 
+ 00016650  0x000031f3 rtnbit0  0x0000000b 
+ 00016651  0x000031f4 rtnbit0  0x00000029 
+ 00016652  0x000031f5 rtnbit0  0x00000002 
+ 00016653  0x000031f6 bbit1  0x0000002a , 0x0000411b 
+ 00016654  0x000031f7 bpatch  0x00000045 , 0x00004008 
+ 00016655  0x000031f8 fetch  0x00000001 , 0x00004ac6 
+ 00016656  0x000031f9 increase  0x00000001 , 0x0000003f 
+ 00016657  0x000031fa store  0x00000001 , 0x00004ac6 
+ 00016658  0x000031fb sub  0x0000003f , 0x00000014 , 0x0000003e 
+ 00016659  0x000031fc ncall  0x00004119 , 0x00000002 
+ 00016660  0x000031fd beq  0x00000002 , 0x00004182 
+ 00016661  0x000031fe beq  0x00000004 , 0x00004184 
+ 00016662  0x000031ff beq  0x00000006 , 0x00004182 
+ 00016663  0x00003200 beq  0x00000008 , 0x00004184 
+ 00016664  0x00003201 rtn 
+ 00016665  0x00003203 jam  0x00000001 , 0x00004ac6 
+ 00016666  0x00003204 branch  0x00004184 
+ 00016667  0x00003207 fetch  0x00000002 , 0x0000471e 
+ 00016668  0x00003208 fetcht  0x00000002 , 0x00004741 
+ 00016669  0x00003209 isub  0x00000002 , 0x00000002 
+ 00016670  0x0000320a fetch  0x00000002 , 0x00004ac7 
+ 00016671  0x0000320b isub  0x00000002 , 0x0000003e 
+ 00016672  0x0000320c nbranch  0x00004184 , 0x00000002 
+ 00016673  0x0000320d jam  0x00000001 , 0x00004acb 
+ 00016674  0x0000320e fetch  0x00000001 , 0x00004ac9 
+ 00016675  0x0000320f increase  0x00000001 , 0x0000003f 
+ 00016676  0x00003210 store  0x00000001 , 0x00004ac9 
+ 00016677  0x00003211 fetcht  0x00000001 , 0x00004aca 
+ 00016678  0x00003212 increase  0x00000001 , 0x00000002 
+ 00016679  0x00003213 isub  0x00000002 , 0x0000003e 
+ 00016680  0x00003214 nbranch  0x00004182 , 0x00000002 
+ 00016681  0x00003215 call  0x00004184 
+ 00016682  0x00003216 fetch  0x00000001 , 0x00004ac9 
+ 00016683  0x00003217 fetcht  0x00000001 , 0x00004aca 
+ 00016684  0x00003218 mul32  0x00000002 , 0x00000002 , 0x00000002 
+ 00016685  0x00003219 isub  0x00000002 , 0x0000003e 
+ 00016686  0x0000321a nrtn  0x00000005 
+ 00016687  0x0000321b jam  0x00000000 , 0x00004ac9 
+ 00016688  0x0000321c rtn 
+ 00016689  0x00003220 fetch  0x00000001 , 0x00004ac2 
+ 00016690  0x00003221 rtn  0x00000034 
+ 00016691  0x00003222 increase  0xffffffff , 0x0000003f 
+ 00016692  0x00003223 store  0x00000001 , 0x00004ac2 
+ 00016693  0x00003224 fetch  0x00000008 , 0x0000488e 
+ 00016694  0x00003225 bbit1  0x00000028 , 0x00004139 
+ 00016695  0x00003226 branch  0x00004166 , 0x00000034 
+ 00016696  0x00003227 branch  0x0000416c 
+ 00016697  0x0000322a branch  0x0000413c , 0x00000034 
+ 00016698  0x0000322c fetcht  0x00000001 , 0x00004916 
+ 00016699  0x0000322d branch  0x00006ef1 
+ 00016700  0x0000322f fetcht  0x00000001 , 0x00004916 
+ 00016701  0x00003230 branch  0x00006eed 
+ 00016702  0x00003233 fetch  0x00000002 , 0x00004741 
+ 00016703  0x00003234 rtn  0x00000034 
+ 00016704  0x00003235 fetch  0x00000001 , 0x00004ac5 
+ 00016705  0x00003236 rtn  0x00000034 
+ 00016706  0x00003237 increase  0xffffffff , 0x0000003f 
+ 00016707  0x00003238 store  0x00000001 , 0x00004ac5 
+ 00016708  0x00003239 bbit1  0x00000000 , 0x0000416c 
+ 00016709  0x0000323a branch  0x00004166 
+ 00016710  0x0000323e fetch  0x00000001 , 0x00004678 
+ 00016711  0x0000323f beq  0x00000000 , 0x0000414b 
+ 00016712  0x00003240 fetch  0x00000002 , 0x00004750 
+ 00016713  0x00003241 rtn  0x00000034 
+ 00016714  0x00003242 branch  0x0000414d 
+ 00016715  0x00003245 fetch  0x00000002 , 0x000045ef 
+ 00016716  0x00003246 rtn  0x00000034 
+ 00016717  0x00003248 fetch  0x00000008 , 0x0000488e 
+ 00016718  0x00003249 isolate0  0x00000028 , 0x0000003f 
+ 00016719  0x0000324a call  0x0000415f , 0x00000001 
+ 00016720  0x0000324b fetch  0x00000001 , 0x00004acc 
+ 00016721  0x0000324c increase  0x00000001 , 0x0000003f 
+ 00016722  0x0000324d store  0x00000001 , 0x00004acc 
+ 00016723  0x0000324e fetcht  0x00000001 , 0x00004acd 
+ 00016724  0x0000324f increase  0x00000001 , 0x00000002 
+ 00016725  0x00003250 isub  0x00000002 , 0x0000003e 
+ 00016726  0x00003251 nbranch  0x0000416c , 0x00000002 
+ 00016727  0x00003252 call  0x00004166 
+ 00016728  0x00003253 fetch  0x00000001 , 0x00004acc 
+ 00016729  0x00003254 fetcht  0x00000001 , 0x00004acd 
+ 00016730  0x00003255 mul32  0x00000002 , 0x00000002 , 0x00000002 
+ 00016731  0x00003256 isub  0x00000002 , 0x0000003e 
+ 00016732  0x00003257 nrtn  0x00000005 
+ 00016733  0x00003258 jam  0x00000000 , 0x00004acc 
+ 00016734  0x00003259 rtn 
+ 00016735  0x0000325c jam  0x00000000 , 0x00004ac2 
+ 00016736  0x0000325d rtn 
+ 00016737  0x00003260 bpatch  0x00000046 , 0x00004008 
+ 00016738  0x00003261 call  0x0000413c 
+ 00016739  0x00003262 call  0x00004166 
+ 00016740  0x00003263 call  0x0000419d 
+ 00016741  0x00003264 branch  0x000041a3 
+ 00016742  0x00003267 fetch  0x00000001 , 0x00004678 
+ 00016743  0x00003268 beq  0x00000000 , 0x00004172 
+ 00016744  0x00003269 beq  0x00000001 , 0x00004174 
+ 00016745  0x0000326a beq  0x00000002 , 0x00004176 
+ 00016746  0x0000326b beq  0x00000003 , 0x00004178 
+ 00016747  0x0000326c rtn 
+ 00016748  0x0000326f fetch  0x00000001 , 0x00004678 
+ 00016749  0x00003270 beq  0x00000000 , 0x0000417a 
+ 00016750  0x00003271 beq  0x00000001 , 0x0000417c 
+ 00016751  0x00003272 beq  0x00000002 , 0x0000417e 
+ 00016752  0x00003273 beq  0x00000003 , 0x00004180 
+ 00016753  0x00003274 rtn 
+ 00016754  0x00003277 fetcht  0x00000001 , 0x00004918 
+ 00016755  0x00003278 branch  0x00006eed 
+ 00016756  0x0000327b fetcht  0x00000001 , 0x00004919 
+ 00016757  0x0000327c branch  0x00006eed 
+ 00016758  0x0000327f fetcht  0x00000001 , 0x0000491a 
+ 00016759  0x00003280 branch  0x00006eed 
+ 00016760  0x00003283 fetcht  0x00000001 , 0x0000491b 
+ 00016761  0x00003284 branch  0x00006eed 
+ 00016762  0x00003287 fetcht  0x00000001 , 0x00004918 
+ 00016763  0x00003288 branch  0x00006ef1 
+ 00016764  0x0000328b fetcht  0x00000001 , 0x00004919 
+ 00016765  0x0000328c branch  0x00006ef1 
+ 00016766  0x0000328f fetcht  0x00000001 , 0x0000491a 
+ 00016767  0x00003290 branch  0x00006ef1 
+ 00016768  0x00003293 fetcht  0x00000001 , 0x0000491b 
+ 00016769  0x00003294 branch  0x00006ef1 
+ 00016770  0x00003297 fetcht  0x00000001 , 0x00004917 
+ 00016771  0x00003298 branch  0x00006ef1 
+ 00016772  0x0000329b fetcht  0x00000001 , 0x00004917 
+ 00016773  0x0000329c branch  0x00006eed 
+ 00016774  0x000032a0 fetch  0x00000001 , 0x00004ace 
+ 00016775  0x000032a1 beq  0x0000005a , 0x00004193 
+ 00016776  0x000032a2 fetch  0x00000002 , 0x00004741 
+ 00016777  0x000032a3 rtn  0x00000034 
+ 00016778  0x000032a4 fetch  0x00000002 , 0x0000471e 
+ 00016779  0x000032a5 fetcht  0x00000002 , 0x00004741 
+ 00016780  0x000032a6 isub  0x00000002 , 0x00000002 
+ 00016781  0x000032a7 fetch  0x00000002 , 0x00004ac3 
+ 00016782  0x000032a8 isub  0x00000002 , 0x0000003f 
+ 00016783  0x000032a9 branch  0x00004196 , 0x00000002 
+ 00016784  0x000032aa call  0x0000419d 
+ 00016785  0x000032ab call  0x000041a9 
+ 00016786  0x000032ac branch  0x000041a3 
+ 00016787  0x000032af fetch  0x00000001 , 0x00004638 
+ 00016788  0x000032b0 store  0x00000001 , 0x0000470d 
+ 00016789  0x000032b1 branch  0x00004196 
+ 00016790  0x000032b4 call  0x00004199 
+ 00016791  0x000032b5 call  0x000041a5 
+ 00016792  0x000032b6 branch  0x0000419f 
+ 00016793  0x000032b9 fetch  0x00000001 , 0x0000470d 
+ 00016794  0x000032ba bbit0  0x00000000 , 0x0000419d 
+ 00016795  0x000032bc fetcht  0x00000001 , 0x00004913 
+ 00016796  0x000032bd branch  0x00006ef1 
+ 00016797  0x000032bf fetcht  0x00000001 , 0x00004913 
+ 00016798  0x000032c0 branch  0x00006eed 
+ 00016799  0x000032c3 fetch  0x00000001 , 0x0000470d 
+ 00016800  0x000032c4 bbit0  0x00000001 , 0x000041a3 
+ 00016801  0x000032c5 fetcht  0x00000001 , 0x00004914 
+ 00016802  0x000032c6 branch  0x00006ef1 
+ 00016803  0x000032c8 fetcht  0x00000001 , 0x00004914 
+ 00016804  0x000032c9 branch  0x00006eed 
+ 00016805  0x000032cc fetch  0x00000001 , 0x0000470d 
+ 00016806  0x000032cd bbit0  0x00000002 , 0x000041a9 
+ 00016807  0x000032ce fetcht  0x00000001 , 0x00004915 
+ 00016808  0x000032cf branch  0x00006ef1 
+ 00016809  0x000032d1 fetcht  0x00000001 , 0x00004915 
+ 00016810  0x000032d2 branch  0x00006eed 
+ 00016811  0x000032d5 fetch  0x00000008 , 0x0000488e 
+ 00016812  0x000032d6 rtnbit0  0x0000002b 
+ 00016813  0x000032d7 fetch  0x00000002 , 0x00004741 
+ 00016814  0x000032d8 rtn  0x00000034 
+ 00016815  0x000032d9 fetch  0x00000002 , 0x0000471e 
+ 00016816  0x000032da fetcht  0x00000002 , 0x00004741 
+ 00016817  0x000032db isub  0x00000002 , 0x00000002 
+ 00016818  0x000032dc fetch  0x00000002 , 0x000048c2 
+ 00016819  0x000032dd isub  0x00000002 , 0x0000003f 
+ 00016820  0x000032de rtn  0x00000002 
+ 00016821  0x000032df jam  0x00000000 , 0x000046b1 
+ 00016822  0x000032e0 branch  0x00004203 
+ 00016823  0x000032e4 fetch  0x00000008 , 0x0000488e 
+ 00016824  0x000032e5 rtnbit0  0x0000002b 
+ 00016825  0x000032e6 arg  0x00000000 , 0x00000011 
+ 00016826  0x000032e7 call  0x000070b9 
+ 00016827  0x000032e8 fetch  0x00000006 , 0x000048b2 
+ 00016828  0x000032e9 store  0x00000006 , 0x0000064e 
+ 00016829  0x000032ea call  0x000070ca 
+ 00016830  0x000032eb fetch  0x00000002 , 0x000048b2 
+ 00016831  0x000032ec branch  0x00007103 
+ 00016832  0x000032ef fetch  0x00000001 , 0x0000491c 
+ 00016833  0x000032f0 call  0x00007103 
+ 00016834  0x000032f1 fetch  0x00000001 , 0x0000491d 
+ 00016835  0x000032f2 call  0x00007103 
+ 00016836  0x000032f3 fetch  0x00000001 , 0x0000491e 
+ 00016837  0x000032f4 branch  0x00007103 
+ 00016838  0x000032f7 fetch  0x00000006 , 0x000048b2 
+ 00016839  0x000032f8 store  0x00000006 , 0x0000064e 
+ 00016840  0x000032f9 branch  0x000070ca 
+ 00016841  0x000032fc bpatch  0x00000047 , 0x00004008 
+ 00016842  0x000032fd fetch  0x00000008 , 0x0000488e 
+ 00016843  0x000032fe rtnbit0  0x0000002b 
+ 00016844  0x000032ff fetch  0x00000001 , 0x000046b1 
+ 00016845  0x00003300 call  0x000041de 
+ 00016846  0x00003301 fetch  0x00000001 , 0x000046b2 
+ 00016847  0x00003302 branch  0x000041ef 
+ 00016848  0x00003305 fetch  0x00000008 , 0x0000488e 
+ 00016849  0x00003306 rtnbit0  0x0000002b 
+ 00016850  0x00003307 call  0x000044ca 
+ 00016851  0x00003308 fetch  0x00000001 , 0x000049ab 
+ 00016852  0x00003309 rtnbit0  0x00000000 
+ 00016853  0x0000330a fetch  0x00000001 , 0x00004aa2 
+ 00016854  0x0000330b set1  0x00000005 , 0x0000003f 
+ 00016855  0x0000330c store  0x00000001 , 0x00004aa2 
+ 00016856  0x0000330d call  0x000044b7 
+ 00016857  0x0000330e jam  0x00000000 , 0x000048ca 
+ 00016858  0x0000330f jam  0x00000000 , 0x000048b8 
+ 00016859  0x00003310 jam  0x0000000a , 0x000048b7 
+ 00016860  0x00003311 fetch  0x00000001 , 0x000046b1 
+ 00016861  0x00003312 increase  0x00000001 , 0x0000003f 
+ 00016862  0x00003314 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00016863  0x00003315 ncall  0x00007dcc , 0x00000002 
+ 00016864  0x00003316 store  0x00000001 , 0x000046b1 
+ 00016865  0x00003317 rtn 
+ 00016866  0x0000331a fetch  0x00000008 , 0x0000488e 
+ 00016867  0x0000331b rtnbit0  0x0000002b 
+ 00016868  0x0000331c call  0x000044ca 
+ 00016869  0x0000331d fetch  0x00000001 , 0x000049ab 
+ 00016870  0x0000331e rtnbit0  0x00000000 
+ 00016871  0x0000331f fetch  0x00000001 , 0x000046b1 
+ 00016872  0x00003320 rtnne  0x00000001 
+ 00016873  0x00003321 fetch  0x00000001 , 0x00004aa2 
+ 00016874  0x00003322 set1  0x00000005 , 0x0000003f 
+ 00016875  0x00003323 store  0x00000001 , 0x00004aa2 
+ 00016876  0x00003324 call  0x000044b7 
+ 00016877  0x00003325 fetch  0x00000001 , 0x000046b2 
+ 00016878  0x00003326 increase  0x00000001 , 0x0000003f 
+ 00016879  0x00003328 sub  0x0000003f , 0x00000006 , 0x0000003e 
+ 00016880  0x00003329 ncall  0x00007dcc , 0x00000002 
+ 00016881  0x0000332a store  0x00000001 , 0x000046b2 
+ 00016882  0x0000332b rtn 
+ 00016883  0x0000332e fetch  0x00000008 , 0x0000488e 
+ 00016884  0x0000332f rtnbit0  0x0000002b 
+ 00016885  0x00003330 fetcht  0x00000004 , 0x000048c4 
+ 00016886  0x00003331 copy  0x00000022 , 0x0000003f 
+ 00016887  0x00003332 isub  0x00000002 , 0x0000003f 
+ 00016888  0x00003333 fetcht  0x00000002 , 0x000048c8 
+ 00016889  0x00003334 idiv  0x00000002 
+ 00016890  0x00003335 call  0x00007d64 
+ 00016891  0x00003336 quotient  0x0000003f 
+ 00016892  0x00003337 rtn  0x00000034 
+ 00016893  0x00003338 copy  0x00000022 , 0x00000002 
+ 00016894  0x00003339 storet  0x00000004 , 0x000048c4 
+ 00016895  0x0000333a fetch  0x00000001 , 0x000046b1 
+ 00016896  0x0000333b beq  0x00000002 , 0x00004209 
+ 00016897  0x0000333c beq  0x00000001 , 0x00004244 
+ 00016898  0x0000333d jam  0x00000000 , 0x000046b1 
+ 00016899  0x0000333f bpatch  0x00000048 , 0x00004009 
+ 00016900  0x00003340 fetch  0x00000008 , 0x0000488e 
+ 00016901  0x00003341 rtnbit0  0x0000002b 
+ 00016902  0x00003342 call  0x000041c0 
+ 00016903  0x00003343 jam  0x00000000 , 0x000048b9 
+ 00016904  0x00003344 branch  0x0000424e 
+ 00016905  0x00003347 fetch  0x00000001 , 0x000048b8 
+ 00016906  0x00003348 branch  0x00004211 , 0x00000034 
+ 00016907  0x00003349 fetch  0x00000001 , 0x000048b7 
+ 00016908  0x0000334a sub  0x0000003f , 0x00000005 , 0x0000003e 
+ 00016909  0x0000334b branch  0x0000421a , 0x00000002 
+ 00016910  0x0000334c increase  0xffffffff , 0x0000003f 
+ 00016911  0x0000334d store  0x00000001 , 0x000048b7 
+ 00016912  0x0000334e branch  0x00004221 
+ 00016913  0x00003351 fetch  0x00000001 , 0x000048b7 
+ 00016914  0x00003352 increase  0x00000001 , 0x0000003f 
+ 00016915  0x00003353 store  0x00000001 , 0x000048b7 
+ 00016916  0x00003354 call  0x00004221 
+ 00016917  0x00003355 fetch  0x00000001 , 0x000048b7 
+ 00016918  0x00003356 sub  0x0000003f , 0x0000005a , 0x0000003e 
+ 00016919  0x00003357 rtn  0x00000002 
+ 00016920  0x00003358 jam  0x00000001 , 0x000048b8 
+ 00016921  0x00003359 rtn 
+ 00016922  0x0000335c jam  0x00000000 , 0x000048b8 
+ 00016923  0x0000335d fetch  0x00000001 , 0x000048ca 
+ 00016924  0x0000335e increase  0x00000001 , 0x0000003f 
+ 00016925  0x0000335f sub  0x0000003f , 0x00000006 , 0x0000003e 
+ 00016926  0x00003360 ncall  0x00007dcc , 0x00000002 
+ 00016927  0x00003361 store  0x00000001 , 0x000048ca 
+ 00016928  0x00003362 rtn 
+ 00016929  0x00003365 call  0x000041b7 
+ 00016930  0x00003366 call  0x00004207 
+ 00016931  0x00003367 branch  0x00004224 
+ 00016932  0x0000336a fetch  0x00000001 , 0x000048ca 
+ 00016933  0x0000336b beq  0x00000002 , 0x0000422c 
+ 00016934  0x0000336c beq  0x00000001 , 0x00004231 
+ 00016935  0x0000336d beq  0x00000000 , 0x00004236 
+ 00016936  0x0000336e beq  0x00000003 , 0x0000423b 
+ 00016937  0x0000336f beq  0x00000005 , 0x0000423d 
+ 00016938  0x00003370 beq  0x00000004 , 0x0000423f 
+ 00016939  0x00003371 beq  0x00000006 , 0x00004241 
+ 00016940  0x00003373 fetch  0x00000001 , 0x0000491c 
+ 00016941  0x00003374 store  0x00000001 , 0x000048b2 
+ 00016942  0x00003375 setarg  0x00000001 
+ 00016943  0x00003376 store  0x00000001 , 0x000048b3 
+ 00016944  0x00003377 branch  0x000041c6 
+ 00016945  0x0000337a fetch  0x00000001 , 0x0000491d 
+ 00016946  0x0000337b store  0x00000001 , 0x000048b2 
+ 00016947  0x0000337c setarg  0x00000002 
+ 00016948  0x0000337d store  0x00000001 , 0x000048b3 
+ 00016949  0x0000337e branch  0x000041c6 
+ 00016950  0x00003381 fetch  0x00000001 , 0x0000491e 
+ 00016951  0x00003382 store  0x00000001 , 0x000048b2 
+ 00016952  0x00003383 setarg  0x00000004 
+ 00016953  0x00003384 store  0x00000001 , 0x000048b3 
+ 00016954  0x00003385 branch  0x000041c6 
+ 00016955  0x00003388 call  0x00004231 
+ 00016956  0x00003389 branch  0x00004236 
+ 00016957  0x0000338c call  0x0000422c 
+ 00016958  0x0000338d branch  0x00004231 
+ 00016959  0x00003390 call  0x0000422c 
+ 00016960  0x00003391 branch  0x00004236 
+ 00016961  0x00003394 call  0x0000422c 
+ 00016962  0x00003395 call  0x00004231 
+ 00016963  0x00003396 branch  0x00004236 
+ 00016964  0x00003399 call  0x000041c0 
+ 00016965  0x0000339a fetch  0x00000001 , 0x000046b2 
+ 00016966  0x0000339b sub  0x0000003f , 0x00000006 , 0x0000003e 
+ 00016967  0x0000339c ncall  0x00007dcc , 0x00000002 
+ 00016968  0x0000339d store  0x00000001 , 0x000046b2 
+ 00016969  0x0000339e arg  0x000048ba , 0x00000006 
+ 00016970  0x0000339f iadd  0x00000006 , 0x00000006 
+ 00016971  0x000033a0 ifetch  0x00000001 , 0x00000006 
+ 00016972  0x000033a1 store  0x00000001 , 0x000048b9 
+ 00016973  0x000033a2 branch  0x0000424e 
+ 00016974  0x000033a6 fetch  0x00000001 , 0x000048b9 
+ 00016975  0x000033a7 isolate1  0x00000002 , 0x0000003f 
+ 00016976  0x000033a8 call  0x0000425b , 0x00000001 
+ 00016977  0x000033a9 ncall  0x0000425d , 0x00000001 
+ 00016978  0x000033aa fetch  0x00000001 , 0x000048b9 
+ 00016979  0x000033ab isolate1  0x00000001 , 0x0000003f 
+ 00016980  0x000033ac call  0x0000425f , 0x00000001 
+ 00016981  0x000033ad ncall  0x00004261 , 0x00000001 
+ 00016982  0x000033ae fetch  0x00000001 , 0x000048b9 
+ 00016983  0x000033af isolate1  0x00000000 , 0x0000003f 
+ 00016984  0x000033b0 call  0x00004263 , 0x00000001 
+ 00016985  0x000033b1 ncall  0x00004265 , 0x00000001 
+ 00016986  0x000033b2 rtn 
+ 00016987  0x000033b5 fetcht  0x00000001 , 0x0000491c 
+ 00016988  0x000033b6 branch  0x00006eed 
+ 00016989  0x000033b9 fetcht  0x00000001 , 0x0000491c 
+ 00016990  0x000033ba branch  0x00006ef1 
+ 00016991  0x000033bd fetcht  0x00000001 , 0x0000491d 
+ 00016992  0x000033be branch  0x00006eed 
+ 00016993  0x000033c1 fetcht  0x00000001 , 0x0000491d 
+ 00016994  0x000033c2 branch  0x00006ef1 
+ 00016995  0x000033c5 fetcht  0x00000001 , 0x0000491e 
+ 00016996  0x000033c6 branch  0x00006eed 
+ 00016997  0x000033c9 fetcht  0x00000001 , 0x0000491e 
+ 00016998  0x000033ca branch  0x00006ef1 
+ 00016999  0x000033d0 fetch  0x00000001 , 0x000048a6 
+ 00017000  0x000033d1 bbit1  0x00000000 , 0x0000426d 
+ 00017001  0x000033d2 call  0x00004278 
+ 00017002  0x000033d3 fetch  0x00000001 , 0x000048a6 
+ 00017003  0x000033d4 bbit1  0x00000001 , 0x0000427e 
+ 00017004  0x000033d5 branch  0x00004289 
+ 00017005  0x000033d8 fetch  0x00000001 , 0x000048a9 
+ 00017006  0x000033d9 sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00017007  0x000033da nrtn  0x00000002 
+ 00017008  0x000033db increase  0x00000001 , 0x0000003f 
+ 00017009  0x000033dc store  0x00000001 , 0x000048a9 
+ 00017010  0x000033dd rtnne  0x00000019 
+ 00017011  0x000033de jam  0x00000000 , 0x000048a7 
+ 00017012  0x000033df fetch  0x00000001 , 0x00004678 
+ 00017013  0x000033e0 rtneq  0x00000004 
+ 00017014  0x000033e1 call  0x000048e6 
+ 00017015  0x000033e2 branch  0x00004680 
+ 00017016  0x000033e5 jam  0x00000000 , 0x000048a9 
+ 00017017  0x000033e6 fetch  0x00000001 , 0x000048a7 
+ 00017018  0x000033e7 rtn  0x00000034 
+ 00017019  0x000033e8 jam  0x00000000 , 0x000048a7 
+ 00017020  0x000033e9 call  0x00004045 
+ 00017021  0x000033ea branch  0x00006c99 
+ 00017022  0x000033ed fetch  0x00000001 , 0x000048aa 
+ 00017023  0x000033ee sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00017024  0x000033ef nrtn  0x00000002 
+ 00017025  0x000033f0 increase  0x00000001 , 0x0000003f 
+ 00017026  0x000033f1 store  0x00000001 , 0x000048aa 
+ 00017027  0x000033f2 rtnne  0x00000019 
+ 00017028  0x000033f3 jam  0x00000000 , 0x000048a8 
+ 00017029  0x000033f4 fetch  0x00000001 , 0x00004678 
+ 00017030  0x000033f5 rtneq  0x00000004 
+ 00017031  0x000033f6 call  0x00006824 
+ 00017032  0x000033f7 branch  0x00004675 
+ 00017033  0x000033fa jam  0x00000000 , 0x000048aa 
+ 00017034  0x000033fb fetch  0x00000001 , 0x000048a8 
+ 00017035  0x000033fc rtn  0x00000034 
+ 00017036  0x000033fd jam  0x00000000 , 0x000048a8 
+ 00017037  0x000033fe call  0x00004045 
+ 00017038  0x000033ff branch  0x00006c99 
+ 00017039  0x00003402 fetch  0x00000001 , 0x00004735 
+ 00017040  0x00003403 rtnne  0x00000001 
+ 00017041  0x00003404 arg  0x00004736 , 0x00000013 
+ 00017042  0x00003405 arg  0x00004294 , 0x00000012 
+ 00017043  0x00003406 branch  0x00003755 
+ 00017044  0x00003409 fetch  0x00000001 , 0x00004a9b 
+ 00017045  0x0000340a beq  0x00000001 , 0x00004680 
+ 00017046  0x0000340b beq  0x00000002 , 0x00004675 
+ 00017047  0x0000340c beq  0x00000003 , 0x000053ad 
+ 00017048  0x0000340d rtn 
+ 00017049  0x00003411 arg  0x00004750 , 0x00000013 
+ 00017050  0x00003412 arg  0x0000429c , 0x00000012 
+ 00017051  0x00003413 branch  0x0000375c 
+ 00017052  0x00003416 call  0x000048e9 
+ 00017053  0x00003417 branch  0x000047af 
+ 00017054  0x0000341a arg  0x00004705 , 0x00000013 
+ 00017055  0x0000341b arg  0x00003fd7 , 0x00000012 
+ 00017056  0x0000341c branch  0x00003755 
+ 00017057  0x0000341f arg  0x0000490e , 0x00000013 
+ 00017058  0x00003420 arg  0x000048fd , 0x00000012 
+ 00017059  0x00003421 branch  0x00003755 
+ 00017060  0x00003424 arg  0x00004720 , 0x00000013 
+ 00017061  0x00003425 arg  0x000042aa , 0x00000012 
+ 00017062  0x00003426 call  0x00003755 
+ 00017063  0x00003427 fetch  0x00000001 , 0x00004720 
+ 00017064  0x00003428 beq  0x00000001 , 0x00003788 
+ 00017065  0x00003429 rtn 
+ 00017066  0x0000342c fetch  0x00000008 , 0x0000488e 
+ 00017067  0x0000342d bbit1  0x0000001a , 0x000048c5 
+ 00017068  0x0000342e branch  0x00004e35 
+ 00017069  0x00003432 fetch  0x00000008 , 0x0000488e 
+ 00017070  0x00003433 rtnbit1  0x00000019 
+ 00017071  0x00003434 arg  0x0000477f , 0x00000013 
+ 00017072  0x00003435 arg  0x0000551f , 0x00000012 
+ 00017073  0x00003436 branch  0x00003755 
+ 00017074  0x00003439 arg  0x0000490d , 0x00000013 
+ 00017075  0x0000343a arg  0x00005408 , 0x00000012 
+ 00017076  0x0000343b branch  0x00003755 
+ 00017077  0x0000343e fetch  0x00000001 , 0x00004a80 
+ 00017078  0x0000343f rtn  0x00000034 
+ 00017079  0x00003440 jam  0x00000000 , 0x00004a80 
+ 00017080  0x00003441 fetch  0x00000001 , 0x000049a0 
+ 00017081  0x00003442 nrtn  0x00000034 
+ 00017082  0x00003443 fetch  0x00000002 , 0x000045ef 
+ 00017083  0x00003444 nrtn  0x00000034 
+ 00017084  0x00003445 jam  0x00000001 , 0x000049a9 
+ 00017085  0x00003446 call  0x000035fd 
+ 00017086  0x00003447 branch  0x00004828 
+ 00017087  0x0000344a arg  0x00004a82 , 0x00000013 
+ 00017088  0x0000344b arg  0x000042c2 , 0x00000012 
+ 00017089  0x0000344c branch  0x00003755 
+ 00017090  0x0000344f jam  0x00000000 , 0x00004a81 
+ 00017091  0x00003450 rtn 
+ 00017092  0x00003454 arg  0x000049a3 , 0x00000013 
+ 00017093  0x00003455 arg  0x000042c7 , 0x00000012 
+ 00017094  0x00003456 branch  0x0000375c 
+ 00017095  0x00003459 jam  0x00000001 , 0x000049a0 
+ 00017096  0x0000345a branch  0x000047af 
+ 00017097  0x0000345d arg  0x00004a9f , 0x00000013 
+ 00017098  0x0000345e arg  0x00004547 , 0x00000012 
+ 00017099  0x0000345f branch  0x00003755 
+ 00017100  0x00003462 fetch  0x00000008 , 0x0000488e 
+ 00017101  0x00003463 rtnbit0  0x00000024 
+ 00017102  0x00003464 fetch  0x00000001 , 0x00004ad0 
+ 00017103  0x00003465 rtn  0x00000034 
+ 00017104  0x00003466 increase  0xffffffff , 0x0000003f 
+ 00017105  0x00003467 store  0x00000001 , 0x00004ad0 
+ 00017106  0x00003468 nrtn  0x00000034 
+ 00017107  0x00003469 jam  0x00000001 , 0x00004094 
+ 00017108  0x0000346a branch  0x000047af 
+ 00017109  0x0000346d fetch  0x00000001 , 0x00004ace 
+ 00017110  0x0000346e rtneq  0x0000005a 
+ 00017111  0x0000346f arg  0x00004741 , 0x00000013 
+ 00017112  0x00003470 arg  0x000042da , 0x00000012 
+ 00017113  0x00003471 branch  0x0000375c 
+ 00017114  0x00003474 fetch  0x00000001 , 0x00004678 
+ 00017115  0x00003475 beq  0x00000000 , 0x000047fb 
+ 00017116  0x00003476 branch  0x000053c6 
+ 00017117  0x0000347a bpatch  0x00000049 , 0x00004009 
+ 00017118  0x0000347b call  0x00004330 
+ 00017119  0x0000347c call  0x000041f3 
+ 00017120  0x0000347d call  0x000049fa 
+ 00017121  0x0000347e call  0x000049ff 
+ 00017122  0x0000347f branch  0x000042e3 
+ 00017123  0x00003482 bpatch  0x0000004a , 0x00004009 
+ 00017124  0x00003483 fetch  0x00000008 , 0x0000488e 
+ 00017125  0x00003484 rtnbit0  0x00000038 
+ 00017126  0x00003485 bbit1  0x0000003b , 0x000042f0 
+ 00017127  0x00003486 bbit1  0x0000003c , 0x000042f0 
+ 00017128  0x00003487 fetcht  0x00000001 , 0x00004665 
+ 00017129  0x00003488 call  0x00004f0a 
+ 00017130  0x00003489 fetcht  0x00000001 , 0x00004665 
+ 00017131  0x0000348a call  0x00006ee0 
+ 00017132  0x0000348b branch  0x000042fd , 0x00000001 
+ 00017133  0x0000348c fetch  0x00000008 , 0x0000488e 
+ 00017134  0x0000348d bbit1  0x00000039 , 0x00004302 
+ 00017135  0x0000348e branch  0x00004308 
+ 00017136  0x00003491 fetcht  0x00000001 , 0x00004665 
+ 00017137  0x00003492 call  0x00004f06 
+ 00017138  0x00003493 fetcht  0x00000001 , 0x00004665 
+ 00017139  0x00003494 call  0x00006ee0 
+ 00017140  0x00003495 nbranch  0x000042f8 , 0x00000001 
+ 00017141  0x00003496 fetch  0x00000008 , 0x0000488e 
+ 00017142  0x00003497 bbit1  0x0000003b , 0x00004302 
+ 00017143  0x00003498 branch  0x00004308 
+ 00017144  0x0000349b fetcht  0x00000001 , 0x00004665 
+ 00017145  0x0000349c call  0x00004f0a 
+ 00017146  0x0000349d fetch  0x00000008 , 0x0000488e 
+ 00017147  0x0000349e bbit1  0x0000003b , 0x00004308 
+ 00017148  0x0000349f branch  0x00004302 
+ 00017149  0x000034a2 fetcht  0x00000001 , 0x00004665 
+ 00017150  0x000034a3 call  0x00004f06 
+ 00017151  0x000034a4 fetch  0x00000008 , 0x0000488e 
+ 00017152  0x000034a5 bbit1  0x00000039 , 0x00004308 
+ 00017153  0x000034a6 branch  0x00004302 
+ 00017154  0x000034a9 fetch  0x00000001 , 0x00004678 
+ 00017155  0x000034aa rtneq  0x00000001 
+ 00017156  0x000034ab jam  0x00000001 , 0x00004678 
+ 00017157  0x000034ac fetch  0x00000001 , 0x00004896 
+ 00017158  0x000034ad nbranch  0x00006c99 , 0x00000034 
+ 00017159  0x000034ae branch  0x000048e6 
+ 00017160  0x000034b0 fetch  0x00000001 , 0x00004678 
+ 00017161  0x000034b1 rtneq  0x00000000 
+ 00017162  0x000034b2 jam  0x00000000 , 0x00004678 
+ 00017163  0x000034b3 fetch  0x00000001 , 0x00004896 
+ 00017164  0x000034b4 nbranch  0x00006c99 , 0x00000034 
+ 00017165  0x000034b5 branch  0x00004804 
+ 00017166  0x000034b8 bpatch  0x0000004b , 0x00004009 
+ 00017167  0x000034b9 fetch  0x00000008 , 0x0000488e 
+ 00017168  0x000034ba bbit0  0x0000000b , 0x0000431a 
+ 00017169  0x000034bb call  0x000040c4 
+ 00017170  0x000034bc fetch  0x00000002 , 0x00004646 
+ 00017171  0x000034bd div  0x0000003f , 0x00000002 
+ 00017172  0x000034be call  0x00007d61 
+ 00017173  0x000034bf fetcht  0x00000002 , 0x0000464a 
+ 00017174  0x000034c0 isub  0x00000002 , 0x0000003e 
+ 00017175  0x000034c1 branch  0x0000430e , 0x00000002 
+ 00017176  0x000034c2 fetch  0x00000001 , 0x00004422 
+ 00017177  0x000034c3 bbit1  0x00000001 , 0x000047af 
+ 00017178  0x000034c5 fetch  0x00000001 , 0x00004a7f 
+ 00017179  0x000034c6 call  0x00004670 , 0x00000034 
+ 00017180  0x000034c7 fetch  0x00000001 , 0x00004a7e 
+ 00017181  0x000034c8 nrtn  0x00000034 
+ 00017182  0x000034c9 fetch  0x00000001 , 0x00004678 
+ 00017183  0x000034ca beq  0x00000000 , 0x0000432d 
+ 00017184  0x000034cb call  0x000053c1 
+ 00017185  0x000034cc beq  0x00000001 , 0x00004324 
+ 00017186  0x000034cd beq  0x00000002 , 0x00004329 
+ 00017187  0x000034ce beq  0x00000003 , 0x0000432b 
+ 00017188  0x000034d0 fetch  0x00000006 , 0x0000467a 
+ 00017189  0x000034d2 fetcht  0x00000006 , 0x000046f8 
+ 00017190  0x000034d3 isub  0x00000002 , 0x0000003e 
+ 00017191  0x000034d4 branch  0x000053ad , 0x00000005 
+ 00017192  0x000034d5 branch  0x00004e09 
+ 00017193  0x000034d8 fetch  0x00000006 , 0x00004687 
+ 00017194  0x000034d9 branch  0x00004325 
+ 00017195  0x000034dc fetch  0x00000006 , 0x00004694 
+ 00017196  0x000034dd branch  0x00004325 
+ 00017197  0x000034e0 call  0x00003e9a 
+ 00017198  0x000034e1 branch  0x00005988 , 0x00000028 
+ 00017199  0x000034e2 branch  0x0000594d 
+ 00017200  0x000034e6 bpatch  0x0000004c , 0x00004009 
+ 00017201  0x000034e7 call  0x00004334 
+ 00017202  0x000034e8 call  0x000043b5 
+ 00017203  0x000034e9 branch  0x000045b4 
+ 00017204  0x000034ec call  0x00003ef9 
+ 00017205  0x000034ed call  0x000043af 
+ 00017206  0x000034ee setarg  0x00000000 
+ 00017207  0x000034ef store  0x00000002 , 0x0000499e 
+ 00017208  0x000034f0 arg  0x0000494e , 0x00000006 
+ 00017209  0x000034f1 arg  0x00004963 , 0x00000005 
+ 00017210  0x000034f2 arg  0x00000014 , 0x00000039 
+ 00017211  0x000034f3 call  0x00007cdc 
+ 00017212  0x000034f4 setarg  0x0000494e 
+ 00017213  0x000034f5 store  0x00000002 , 0x00004998 
+ 00017214  0x000034f6 setarg  0x0000498d 
+ 00017215  0x000034f7 store  0x00000002 , 0x0000499a 
+ 00017216  0x000034f8 call  0x000043ad 
+ 00017217  0x000034f9 call  0x000043ab 
+ 00017218  0x000034fb fetch  0x00000002 , 0x0000499e 
+ 00017219  0x000034fc increase  0x00000001 , 0x0000003f 
+ 00017220  0x000034fd store  0x00000002 , 0x0000499e 
+ 00017221  0x000034fe bbit1  0x00000009 , 0x00004334 
+ 00017222  0x000034ff fetcht  0x00000001 , 0x00004911 
+ 00017223  0x00003500 call  0x00006ee0 
+ 00017224  0x00003501 nbranch  0x00004342 , 0x00000001 
+ 00017225  0x00003502 call  0x000043af 
+ 00017226  0x00003504 fetcht  0x00000001 , 0x00004911 
+ 00017227  0x00003505 call  0x00006ee0 
+ 00017228  0x00003506 branch  0x0000434a , 0x00000001 
+ 00017229  0x00003508 call  0x00004372 
+ 00017230  0x00003509 call  0x00004386 
+ 00017231  0x0000350a call  0x000043ab 
+ 00017232  0x0000350b call  0x000043ad 
+ 00017233  0x0000350d fetch  0x00000002 , 0x0000494c 
+ 00017234  0x0000350e copy  0x0000003f , 0x00000012 
+ 00017235  0x0000350f jam  0x00000000 , 0x0000499d 
+ 00017236  0x00003511 ifetcht  0x00000001 , 0x00000012 
+ 00017237  0x00003512 fetch  0x00000002 , 0x0000494a 
+ 00017238  0x00003513 copy  0x0000003f , 0x00000011 
+ 00017239  0x00003514 copy  0x00000011 , 0x00000013 
+ 00017240  0x00003515 arg  0x00000014 , 0x00000039 
+ 00017241  0x00003517 ifetch  0x00000001 , 0x00000011 
+ 00017242  0x00003518 isub  0x00000002 , 0x0000003e 
+ 00017243  0x00003519 branch  0x00004366 , 0x00000005 
+ 00017244  0x0000351a increase  0x00000001 , 0x00000011 
+ 00017245  0x0000351b loop  0x00004359 
+ 00017246  0x0000351d increase  0x00000001 , 0x00000012 
+ 00017247  0x0000351e fetch  0x00000001 , 0x0000499d 
+ 00017248  0x0000351f increase  0x00000001 , 0x0000003f 
+ 00017249  0x00003520 store  0x00000001 , 0x0000499d 
+ 00017250  0x00003521 sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00017251  0x00003522 branch  0x00004354 , 0x00000002 
+ 00017252  0x00003523 call  0x00003f1b 
+ 00017253  0x00003524 branch  0x00003f0f 
+ 00017254  0x00003527 fetch  0x00000002 , 0x00004998 
+ 00017255  0x00003528 copy  0x0000003f , 0x00000005 
+ 00017256  0x00003529 copy  0x00000011 , 0x0000003f 
+ 00017257  0x0000352a isub  0x00000013 , 0x0000003f 
+ 00017258  0x0000352b iadd  0x00000005 , 0x00000005 
+ 00017259  0x0000352c fetch  0x00000002 , 0x0000499a 
+ 00017260  0x0000352d copy  0x0000003f , 0x00000013 
+ 00017261  0x0000352e fetch  0x00000001 , 0x0000499d 
+ 00017262  0x0000352f iadd  0x00000013 , 0x00000013 
+ 00017263  0x00003530 ifetch  0x00000001 , 0x00000013 
+ 00017264  0x00003531 istore  0x00000001 , 0x00000005 
+ 00017265  0x00003532 branch  0x0000435e 
+ 00017266  0x00003535 jam  0x00000000 , 0x0000499d 
+ 00017267  0x00003537 call  0x000043a9 
+ 00017268  0x00003538 call  0x0000437a 
+ 00017269  0x00003539 call  0x000043a7 
+ 00017270  0x0000353a call  0x0000437a 
+ 00017271  0x0000353b sub  0x0000003f , 0x0000000b , 0x0000003e 
+ 00017272  0x0000353c branch  0x00004373 , 0x00000002 
+ 00017273  0x0000353d branch  0x000043a9 
+ 00017274  0x00003541 jam  0x00000000 , 0x0000499c 
+ 00017275  0x00003542 call  0x00004399 
+ 00017276  0x00003543 fetch  0x00000002 , 0x0000499a 
+ 00017277  0x00003545 copy  0x0000003f , 0x00000005 
+ 00017278  0x00003546 fetch  0x00000001 , 0x0000499d 
+ 00017279  0x00003547 iadd  0x00000005 , 0x00000005 
+ 00017280  0x00003548 fetch  0x00000001 , 0x0000499c 
+ 00017281  0x00003549 istore  0x00000001 , 0x00000005 
+ 00017282  0x0000354a fetch  0x00000001 , 0x0000499d 
+ 00017283  0x0000354b increase  0x00000001 , 0x0000003f 
+ 00017284  0x0000354c store  0x00000001 , 0x0000499d 
+ 00017285  0x0000354d rtn 
+ 00017286  0x00003551 fetch  0x00000002 , 0x0000494a 
+ 00017287  0x00003552 copy  0x0000003f , 0x00000012 
+ 00017288  0x00003553 jam  0x00000000 , 0x0000499d 
+ 00017289  0x00003555 jam  0x00000000 , 0x0000499c 
+ 00017290  0x00003556 ifetcht  0x00000001 , 0x00000012 
+ 00017291  0x00003557 isolate1  0x00000007 , 0x00000002 
+ 00017292  0x00003558 branch  0x00004393 , 0x00000001 
+ 00017293  0x00003559 call  0x00006ef1 
+ 00017294  0x0000355a call  0x00004399 
+ 00017295  0x0000355b ifetcht  0x00000001 , 0x00000012 
+ 00017296  0x0000355c call  0x00006eed 
+ 00017297  0x0000355d ifetcht  0x00000001 , 0x00000012 
+ 00017298  0x0000355e call  0x00004f0a 
+ 00017299  0x00003560 increase  0x00000001 , 0x00000012 
+ 00017300  0x00003561 fetch  0x00000002 , 0x00004998 
+ 00017301  0x00003562 call  0x0000437d 
+ 00017302  0x00003563 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00017303  0x00003564 branch  0x00004389 , 0x00000002 
+ 00017304  0x00003565 rtn 
+ 00017305  0x00003569 bpatch  0x0000004d , 0x00004009 
+ 00017306  0x0000356a nop  0x00000078 
+ 00017307  0x0000356b fetch  0x00000002 , 0x00004948 
+ 00017308  0x0000356c copy  0x0000003f , 0x00000013 
+ 00017309  0x0000356d arg  0x00000008 , 0x00000039 
+ 00017310  0x0000356f ifetcht  0x00000001 , 0x00000013 
+ 00017311  0x00003570 call  0x00006ee0 
+ 00017312  0x00003571 fetch  0x00000001 , 0x0000499c 
+ 00017313  0x00003572 rshift  0x0000003f , 0x0000003f 
+ 00017314  0x00003573 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00017315  0x00003574 store  0x00000001 , 0x0000499c 
+ 00017316  0x00003575 increase  0x00000001 , 0x00000013 
+ 00017317  0x00003576 loop  0x0000439e 
+ 00017318  0x00003577 rtn 
+ 00017319  0x0000357a fetcht  0x00000001 , 0x00004911 
+ 00017320  0x0000357b branch  0x00006eed 
+ 00017321  0x0000357e fetcht  0x00000001 , 0x00004911 
+ 00017322  0x0000357f branch  0x00006ef1 
+ 00017323  0x00003582 fetcht  0x00000001 , 0x00004911 
+ 00017324  0x00003583 branch  0x00006ed7 
+ 00017325  0x00003586 fetcht  0x00000001 , 0x00004910 
+ 00017326  0x00003587 branch  0x00006eed 
+ 00017327  0x0000358a fetcht  0x00000001 , 0x00004910 
+ 00017328  0x0000358b branch  0x00006ef1 
+ 00017329  0x00003592 jam  0x00000000 , 0x000049a0 
+ 00017330  0x00003593 fetch  0x00000002 , 0x000049a1 
+ 00017331  0x00003594 store  0x00000002 , 0x000049a3 
+ 00017332  0x00003595 rtn 
+ 00017333  0x00003599 arg  0x0000494e , 0x00000011 
+ 00017334  0x0000359a arg  0x00004963 , 0x00000012 
+ 00017335  0x0000359b arg  0x00000014 , 0x00000039 
+ 00017336  0x0000359c call  0x00007d66 
+ 00017337  0x0000359d nbranch  0x000043b1 , 0x00000005 
+ 00017338  0x0000359e call  0x000043f1 
+ 00017339  0x0000359f call  0x000043b1 , 0x00000034 
+ 00017340  0x000035a1 call  0x000043fd 
+ 00017341  0x000035a2 fetch  0x00000001 , 0x000049a8 
+ 00017342  0x000035a3 nrtn  0x00000034 
+ 00017343  0x000035a4 fetch  0x00000001 , 0x00004a9c 
+ 00017344  0x000035a5 rtneq  0x00000001 
+ 00017345  0x000035a6 rtneq  0x00000002 
+ 00017346  0x000035a7 rtneq  0x00000004 
+ 00017347  0x000035aa jam  0x00000000 , 0x0000499d 
+ 00017348  0x000035ab arg  0x0000494e , 0x00000011 
+ 00017349  0x000035ac arg  0x00004978 , 0x00000012 
+ 00017350  0x000035ae ifetcht  0x00000001 , 0x00000011 
+ 00017351  0x000035af ifetch  0x00000001 , 0x00000012 
+ 00017352  0x000035b0 ixor  0x00000002 , 0x0000003f 
+ 00017353  0x000035b1 branch  0x000043e9 , 0x00000034 
+ 00017354  0x000035b2 store  0x00000001 , 0x0000499c 
+ 00017355  0x000035b3 storet  0x00000001 , 0x000049ab 
+ 00017356  0x000035b4 istoret  0x00000001 , 0x00000012 
+ 00017357  0x000035b5 jam  0x00000001 , 0x000049a9 
+ 00017358  0x000035b6 jam  0x00000000 , 0x000049ac 
+ 00017359  0x000035b8 fetch  0x00000001 , 0x0000499c 
+ 00017360  0x000035b9 bbit0  0x00000000 , 0x000043de 
+ 00017361  0x000035ba fetch  0x00000001 , 0x0000499d 
+ 00017362  0x000035bb mul32  0x0000003f , 0x00000008 , 0x0000003f 
+ 00017363  0x000035bc fetcht  0x00000001 , 0x000049ac 
+ 00017364  0x000035bd iadd  0x00000002 , 0x0000003f 
+ 00017365  0x000035be arg  0x000049c7 , 0x00000006 
+ 00017366  0x000035bf iadd  0x00000006 , 0x00000006 
+ 00017367  0x000035c0 ifetch  0x00000001 , 0x00000006 
+ 00017368  0x000035c1 store  0x00000001 , 0x000049aa 
+ 00017369  0x000035c2 bpatch  0x0000004e , 0x00004009 
+ 00017370  0x000035c3 call  0x0000442e 
+ 00017371  0x000035c4 call  0x00004435 
+ 00017372  0x000035c5 call  0x000044dc 
+ 00017373  0x000035c6 call  0x00004564 
+ 00017374  0x000035c8 fetch  0x00000001 , 0x0000499c 
+ 00017375  0x000035c9 rshift  0x0000003f , 0x0000003f 
+ 00017376  0x000035ca store  0x00000001 , 0x0000499c 
+ 00017377  0x000035cb fetch  0x00000001 , 0x000049ab 
+ 00017378  0x000035cc rshift  0x0000003f , 0x0000003f 
+ 00017379  0x000035cd store  0x00000001 , 0x000049ab 
+ 00017380  0x000035ce fetch  0x00000001 , 0x000049ac 
+ 00017381  0x000035cf increase  0x00000001 , 0x0000003f 
+ 00017382  0x000035d0 store  0x00000001 , 0x000049ac 
+ 00017383  0x000035d1 sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00017384  0x000035d2 branch  0x000043cf , 0x00000002 
+ 00017385  0x000035d4 increase  0x00000001 , 0x00000011 
+ 00017386  0x000035d5 increase  0x00000001 , 0x00000012 
+ 00017387  0x000035d6 fetch  0x00000001 , 0x0000499d 
+ 00017388  0x000035d7 increase  0x00000001 , 0x0000003f 
+ 00017389  0x000035d8 store  0x00000001 , 0x0000499d 
+ 00017390  0x000035d9 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00017391  0x000035da branch  0x000043c6 , 0x00000002 
+ 00017392  0x000035db rtn 
+ 00017393  0x000035de fetch  0x00000008 , 0x0000494e 
+ 00017394  0x000035df nbranch  0x000041c9 , 0x00000034 
+ 00017395  0x000035e0 fetch  0x00000008 , 0x00004956 
+ 00017396  0x000035e1 nbranch  0x000041c9 , 0x00000034 
+ 00017397  0x000035e2 fetch  0x00000004 , 0x0000495e 
+ 00017398  0x000035e3 nbranch  0x000041c9 , 0x00000034 
+ 00017399  0x000035e5 fetch  0x00000001 , 0x00004a9f 
+ 00017400  0x000035e6 nrtn  0x00000034 
+ 00017401  0x000035e7 fetch  0x00000001 , 0x00004a9c 
+ 00017402  0x000035e8 rtneq  0x00000006 
+ 00017403  0x000035e9 jam  0x00000000 , 0x00004a9c 
+ 00017404  0x000035ea rtn 
+ 00017405  0x000035ef bpatch  0x0000004f , 0x00004009 
+ 00017406  0x000035f0 jam  0x00000000 , 0x000049a8 
+ 00017407  0x000035f1 jam  0x00000000 , 0x000049a6 
+ 00017408  0x000035f2 arg  0x0000494e , 0x00000011 
+ 00017409  0x000035f3 arg  0x00000014 , 0x00000039 
+ 00017410  0x000035f5 jam  0x00000000 , 0x000049a5 
+ 00017411  0x000035f6 ifetch  0x00000001 , 0x00000011 
+ 00017412  0x000035f7 branch  0x00004429 , 0x00000034 
+ 00017413  0x000035f9 fetcht  0x00000001 , 0x000049a5 
+ 00017414  0x000035fa increase  0x00000001 , 0x00000002 
+ 00017415  0x000035fb storet  0x00000001 , 0x000049a5 
+ 00017416  0x000035fc copy  0x0000003f , 0x00000002 
+ 00017417  0x000035fd increase  0xffffffff , 0x0000003f 
+ 00017418  0x000035fe iand  0x00000002 , 0x0000003f 
+ 00017419  0x000035ff nbranch  0x00004405 , 0x00000005 
+ 00017420  0x00003600 fetch  0x00000001 , 0x000049a5 
+ 00017421  0x00003601 fetcht  0x00000001 , 0x000049a6 
+ 00017422  0x00003602 iadd  0x00000002 , 0x00000002 
+ 00017423  0x00003603 storet  0x00000001 , 0x000049a6 
+ 00017424  0x00003604 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00017425  0x00003605 branch  0x00004429 , 0x00000002 
+ 00017426  0x00003606 sub  0x00000002 , 0x00000002 , 0x0000003e 
+ 00017427  0x00003607 branch  0x00004429 , 0x00000002 
+ 00017428  0x00003608 jam  0x00000000 , 0x0000499d 
+ 00017429  0x00003609 jam  0x00000000 , 0x000049a7 
+ 00017430  0x0000360a ifetcht  0x00000001 , 0x00000011 
+ 00017431  0x0000360b arg  0x0000494e , 0x00000012 
+ 00017432  0x0000360d fetch  0x00000001 , 0x0000499d 
+ 00017433  0x0000360e increase  0x00000001 , 0x0000003f 
+ 00017434  0x0000360f store  0x00000001 , 0x0000499d 
+ 00017435  0x00003610 sub  0x0000003f , 0x00000013 , 0x0000003e 
+ 00017436  0x00003611 nbranch  0x00004429 , 0x00000002 
+ 00017437  0x00003612 ifetch  0x00000001 , 0x00000012 
+ 00017438  0x00003613 iand  0x00000002 , 0x0000003e 
+ 00017439  0x00003614 branch  0x0000442c , 0x00000005 
+ 00017440  0x00003615 fetch  0x00000001 , 0x000049a7 
+ 00017441  0x00003616 increase  0x00000001 , 0x0000003f 
+ 00017442  0x00003617 store  0x00000001 , 0x000049a7 
+ 00017443  0x00003618 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00017444  0x00003619 branch  0x0000442c , 0x00000002 
+ 00017445  0x0000361a fetch  0x00000008 , 0x0000488e 
+ 00017446  0x0000361b rtnbit1  0x00000021 
+ 00017447  0x0000361c jam  0x00000001 , 0x000049a8 
+ 00017448  0x0000361d rtn 
+ 00017449  0x00003620 increase  0x00000001 , 0x00000011 
+ 00017450  0x00003621 loop  0x00004402 
+ 00017451  0x00003622 rtn 
+ 00017452  0x00003625 increase  0x00000001 , 0x00000012 
+ 00017453  0x00003626 branch  0x00004418 
+ 00017454  0x0000362f fetch  0x00000001 , 0x000049aa 
+ 00017455  0x00003630 beq  0x000000e6 , 0x000041e2 
+ 00017456  0x00003631 beq  0x000000e7 , 0x000041d0 
+ 00017457  0x00003632 fetch  0x00000001 , 0x00004aa1 
+ 00017458  0x00003633 rtneq  0x00000000 
+ 00017459  0x00003634 rtneq  0x00000001 
+ 00017460  0x00003635 rtn 
+ 00017461  0x00003638 fetch  0x00000001 , 0x000049ab 
+ 00017462  0x00003639 isolate1  0x00000000 , 0x0000003f 
+ 00017463  0x0000363a call  0x000044f0 , 0x00000001 
+ 00017464  0x0000363b fetch  0x00000001 , 0x00004a7a 
+ 00017465  0x0000363c ncall  0x0000445b , 0x00000034 
+ 00017466  0x0000363d fetch  0x00000001 , 0x0000474f 
+ 00017467  0x0000363e rtneq  0x000000ff 
+ 00017468  0x0000363f fetch  0x00000008 , 0x0000488e 
+ 00017469  0x00003640 bbit0  0x00000034 , 0x00004440 
+ 00017470  0x00003641 fetch  0x00000001 , 0x00004a93 
+ 00017471  0x00003642 branch  0x00004441 
+ 00017472  0x00003644 fetch  0x00000001 , 0x00004a84 
+ 00017473  0x00003645 fetcht  0x00000001 , 0x00004a7a 
+ 00017474  0x00003646 ixor  0x00000002 , 0x0000003f 
+ 00017475  0x00003647 rtn  0x00000005 
+ 00017476  0x00003648 bpatch  0x00000050 , 0x0000400a 
+ 00017477  0x00003649 fetch  0x00000001 , 0x000049aa 
+ 00017478  0x0000364a beq  0x00000029 , 0x00004451 
+ 00017479  0x0000364b beq  0x0000004c , 0x00004459 
+ 00017480  0x0000364c sub  0x0000003f , 0x00000045 , 0x0000003e 
+ 00017481  0x0000364d nrtn  0x00000002 
+ 00017482  0x0000364e arg  0x0000003a , 0x00000002 
+ 00017483  0x0000364f isub  0x00000002 , 0x0000003f 
+ 00017484  0x00003650 nrtn  0x00000002 
+ 00017485  0x00003651 arg  0x00004a86 , 0x00000006 
+ 00017486  0x00003652 iadd  0x00000006 , 0x00000006 
+ 00017487  0x00003653 ifetch  0x00000001 , 0x00000006 
+ 00017488  0x00003654 branch  0x000044aa 
+ 00017489  0x00003657 fetch  0x00000008 , 0x0000488e 
+ 00017490  0x00003658 bbit0  0x00000034 , 0x00004457 
+ 00017491  0x00003659 fetch  0x00000001 , 0x00004a85 
+ 00017492  0x0000365a fetcht  0x00000001 , 0x00004a94 
+ 00017493  0x0000365b isub  0x00000002 , 0x0000003e 
+ 00017494  0x0000365c rtn  0x00000005 
+ 00017495  0x0000365e fetch  0x00000001 , 0x00004a85 
+ 00017496  0x0000365f branch  0x000044aa 
+ 00017497  0x00003662 fetch  0x00000001 , 0x00004a92 
+ 00017498  0x00003663 branch  0x000044aa 
+ 00017499  0x00003666 bpatch  0x00000051 , 0x0000400a 
+ 00017500  0x00003667 call  0x00004468 
+ 00017501  0x00003668 fetch  0x00000001 , 0x000049aa 
+ 00017502  0x00003669 beq  0x00000052 , 0x0000448d 
+ 00017503  0x0000366a beq  0x00000051 , 0x00004491 
+ 00017504  0x0000366b beq  0x00000050 , 0x00004495 
+ 00017505  0x0000366c beq  0x0000004f , 0x00004499 
+ 00017506  0x0000366d beq  0x000000e0 , 0x0000449d 
+ 00017507  0x0000366e beq  0x0000002c , 0x000044a7 
+ 00017508  0x0000366f beq  0x00000014 , 0x000044ac 
+ 00017509  0x00003670 beq  0x0000001a , 0x000044bc 
+ 00017510  0x00003671 beq  0x00000008 , 0x000044c3 
+ 00017511  0x00003672 rtn 
+ 00017512  0x00003675 fetch  0x00000008 , 0x0000488e 
+ 00017513  0x00003676 rtnbit0  0x00000034 
+ 00017514  0x00003677 fetch  0x00000001 , 0x000049aa 
+ 00017515  0x00003678 fetcht  0x00000001 , 0x00004a94 
+ 00017516  0x00003679 isub  0x00000002 , 0x0000003e 
+ 00017517  0x0000367a nrtn  0x00000005 
+ 00017518  0x0000367b call  0x000044ca 
+ 00017519  0x0000367c fetch  0x00000001 , 0x000049ab 
+ 00017520  0x0000367d rtnbit0  0x00000000 
+ 00017521  0x0000367e fetch  0x00000001 , 0x00004a93 
+ 00017522  0x0000367f increase  0x00000001 , 0x0000003f 
+ 00017523  0x00003680 and_into  0x00000001 , 0x0000003f 
+ 00017524  0x00003681 store  0x00000001 , 0x00004a93 
+ 00017525  0x00003682 fetch  0x00000001 , 0x00004aa2 
+ 00017526  0x00003683 set1  0x00000003 , 0x0000003f 
+ 00017527  0x00003684 store  0x00000001 , 0x00004aa2 
+ 00017528  0x00003685 fetch  0x00000001 , 0x00004678 
+ 00017529  0x00003686 beq  0x00000000 , 0x0000447e 
+ 00017530  0x00003687 beq  0x00000001 , 0x00004481 
+ 00017531  0x00003688 beq  0x00000002 , 0x00004484 
+ 00017532  0x00003689 beq  0x00000003 , 0x00004487 
+ 00017533  0x0000368a beq  0x00000004 , 0x0000448a 
+ 00017534  0x0000368c fetch  0x00000001 , 0x00004a93 
+ 00017535  0x0000368d store  0x00000001 , 0x000046a9 
+ 00017536  0x0000368e branch  0x000044b7 
+ 00017537  0x00003690 fetch  0x00000001 , 0x00004a93 
+ 00017538  0x00003691 store  0x00000001 , 0x000046aa 
+ 00017539  0x00003692 branch  0x000044b7 
+ 00017540  0x00003694 fetch  0x00000001 , 0x00004a93 
+ 00017541  0x00003695 store  0x00000001 , 0x000046ab 
+ 00017542  0x00003696 branch  0x000044b7 
+ 00017543  0x00003698 fetch  0x00000001 , 0x00004a93 
+ 00017544  0x00003699 store  0x00000001 , 0x000046ac 
+ 00017545  0x0000369a branch  0x000044b7 
+ 00017546  0x0000369c fetch  0x00000001 , 0x00004a93 
+ 00017547  0x0000369d store  0x00000001 , 0x000046ad 
+ 00017548  0x0000369e branch  0x000044b7 
+ 00017549  0x000036a1 fetch  0x00000008 , 0x0000488e 
+ 00017550  0x000036a2 rtnbit0  0x00000030 
+ 00017551  0x000036a3 setarg  0x0000004b 
+ 00017552  0x000036a4 branch  0x000044aa 
+ 00017553  0x000036a7 fetch  0x00000008 , 0x0000488e 
+ 00017554  0x000036a8 rtnbit0  0x00000030 
+ 00017555  0x000036a9 setarg  0x0000004e 
+ 00017556  0x000036aa branch  0x000044aa 
+ 00017557  0x000036ad fetch  0x00000008 , 0x0000488e 
+ 00017558  0x000036ae rtnbit0  0x00000030 
+ 00017559  0x000036af setarg  0x0000004a 
+ 00017560  0x000036b0 branch  0x000044aa 
+ 00017561  0x000036b3 fetch  0x00000008 , 0x0000488e 
+ 00017562  0x000036b4 rtnbit0  0x00000030 
+ 00017563  0x000036b5 setarg  0x0000004d 
+ 00017564  0x000036b6 branch  0x000044aa 
+ 00017565  0x000036b9 fetch  0x00000008 , 0x0000488e 
+ 00017566  0x000036ba rtnbit0  0x00000031 
+ 00017567  0x000036bb fetch  0x00000001 , 0x0000474f 
+ 00017568  0x000036bc rtneq  0x000000ff 
+ 00017569  0x000036bd fetch  0x00000001 , 0x00004aa1 
+ 00017570  0x000036be beq  0x00000000 , 0x000044a5 
+ 00017571  0x000036bf setarg  0x000000f7 
+ 00017572  0x000036c0 branch  0x000044aa 
+ 00017573  0x000036c2 setarg  0x000000aa 
+ 00017574  0x000036c3 branch  0x000044aa 
+ 00017575  0x000036c6 fetch  0x00000008 , 0x0000488e 
+ 00017576  0x000036c7 rtnbit0  0x00000032 
+ 00017577  0x000036c8 setarg  0x000000ab 
+ 00017578  0x000036ca store  0x00000001 , 0x000049aa 
+ 00017579  0x000036cb rtn 
+ 00017580  0x000036ce fetch  0x00000008 , 0x0000488e 
+ 00017581  0x000036cf rtnbit0  0x00000033 
+ 00017582  0x000036d0 call  0x000044ca 
+ 00017583  0x000036d1 fetch  0x00000001 , 0x000049ab 
+ 00017584  0x000036d2 rtnbit0  0x00000000 
+ 00017585  0x000036d3 jam  0x00000001 , 0x00004aa1 
+ 00017586  0x000036d5 jam  0x00000006 , 0x00004ac5 
+ 00017587  0x000036d6 call  0x000044cc 
+ 00017588  0x000036d7 fetch  0x00000001 , 0x00004aa2 
+ 00017589  0x000036d8 set1  0x00000004 , 0x0000003f 
+ 00017590  0x000036d9 store  0x00000001 , 0x00004aa2 
+ 00017591  0x000036db fetch  0x00000008 , 0x0000488e 
+ 00017592  0x000036dc rtnbit1  0x0000000f 
+ 00017593  0x000036de fetch  0x00000001 , 0x00004706 
+ 00017594  0x000036df store  0x00000001 , 0x00004705 
+ 00017595  0x000036e0 rtn 
+ 00017596  0x000036e3 fetch  0x00000008 , 0x0000488e 
+ 00017597  0x000036e4 rtnbit0  0x00000033 
+ 00017598  0x000036e5 call  0x000044ca 
+ 00017599  0x000036e6 fetch  0x00000001 , 0x000049ab 
+ 00017600  0x000036e7 rtnbit0  0x00000000 
+ 00017601  0x000036e8 jam  0x00000000 , 0x00004aa1 
+ 00017602  0x000036e9 branch  0x000044b2 
+ 00017603  0x000036ec fetch  0x00000008 , 0x0000488e 
+ 00017604  0x000036ed rtnbit0  0x00000033 
+ 00017605  0x000036ee call  0x000044ca 
+ 00017606  0x000036ef fetch  0x00000001 , 0x000049ab 
+ 00017607  0x000036f0 rtnbit0  0x00000000 
+ 00017608  0x000036f1 jam  0x00000002 , 0x00004aa1 
+ 00017609  0x000036f2 branch  0x000044b2 
+ 00017610  0x000036f5 setarg  0x00000000 
+ 00017611  0x000036f6 branch  0x000044aa 
+ 00017612  0x000036f9 bpatch  0x00000052 , 0x0000400a 
+ 00017613  0x000036fa fetch  0x00000001 , 0x00004678 
+ 00017614  0x000036fb rtneq  0x00000000 
+ 00017615  0x000036fc rtneq  0x00000004 
+ 00017616  0x000036fd beq  0x00000001 , 0x000044d3 
+ 00017617  0x000036fe beq  0x00000002 , 0x000044d6 
+ 00017618  0x000036ff beq  0x00000003 , 0x000044d9 
+ 00017619  0x00003701 fetcht  0x00000001 , 0x00004aa1 
+ 00017620  0x00003702 storet  0x00000001 , 0x000046ae 
+ 00017621  0x00003703 rtn 
+ 00017622  0x00003705 fetcht  0x00000001 , 0x00004aa1 
+ 00017623  0x00003706 storet  0x00000001 , 0x000046af 
+ 00017624  0x00003707 rtn 
+ 00017625  0x00003709 fetcht  0x00000001 , 0x00004aa1 
+ 00017626  0x0000370a storet  0x00000001 , 0x000046b0 
+ 00017627  0x0000370b rtn 
+ 00017628  0x00003712 fetch  0x00000001 , 0x000049aa 
+ 00017629  0x00003713 beq  0x00000046 , 0x000044f2 
+ 00017630  0x00003714 beq  0x0000004b , 0x000044f8 
+ 00017631  0x00003715 beq  0x0000004e , 0x000044fe 
+ 00017632  0x00003716 beq  0x0000004a , 0x00004500 
+ 00017633  0x00003717 beq  0x0000004d , 0x00004502 
+ 00017634  0x00003718 beq  0x000000a5 , 0x00004504 
+ 00017635  0x00003719 beq  0x000000a6 , 0x0000450b 
+ 00017636  0x0000371a beq  0x000000a7 , 0x0000450d 
+ 00017637  0x0000371b beq  0x000000a8 , 0x0000450f 
+ 00017638  0x0000371c beq  0x000000a9 , 0x00004511 
+ 00017639  0x0000371d beq  0x000000aa , 0x0000451c 
+ 00017640  0x0000371e beq  0x000000ad , 0x00004523 
+ 00017641  0x0000371f beq  0x000000ab , 0x0000452a 
+ 00017642  0x00003720 beq  0x000000ac , 0x00004535 
+ 00017643  0x00003721 rtn 
+ 00017644  0x00003724 fetch  0x00000001 , 0x000049ab 
+ 00017645  0x00003725 rtnbit0  0x00000000 
+ 00017646  0x00003726 jam  0x0000000a , 0x00004a9f 
+ 00017647  0x00003727 rtn 
+ 00017648  0x0000372a jam  0x00000000 , 0x00004a9f 
+ 00017649  0x0000372b rtn 
+ 00017650  0x0000372e fetch  0x00000001 , 0x00004aa1 
+ 00017651  0x0000372f rtneq  0x00000000 
+ 00017652  0x00003730 rtneq  0x00000001 
+ 00017653  0x00003731 jam  0x0000000a , 0x00004a9d 
+ 00017654  0x00003732 jam  0x00000020 , 0x00004a9e 
+ 00017655  0x00003733 branch  0x0000453e 
+ 00017656  0x00003736 jam  0x00000052 , 0x00004a9e 
+ 00017657  0x00003738 fetch  0x00000001 , 0x00004aa1 
+ 00017658  0x00003739 rtneq  0x00000000 
+ 00017659  0x0000373a rtneq  0x00000001 
+ 00017660  0x0000373b jam  0x00000008 , 0x00004a9d 
+ 00017661  0x0000373c branch  0x0000453e 
+ 00017662  0x0000373f jam  0x00000051 , 0x00004a9e 
+ 00017663  0x00003740 branch  0x000044f9 
+ 00017664  0x00003743 jam  0x00000050 , 0x00004a9e 
+ 00017665  0x00003744 branch  0x000044f9 
+ 00017666  0x00003747 jam  0x0000004f , 0x00004a9e 
+ 00017667  0x00003748 branch  0x000044f9 
+ 00017668  0x0000374b jam  0x00000004 , 0x00004a9e 
+ 00017669  0x0000374d jam  0x00000001 , 0x00004a9d 
+ 00017670  0x0000374e fetch  0x00000001 , 0x00004aa1 
+ 00017671  0x0000374f beq  0x00000000 , 0x0000453e 
+ 00017672  0x00003750 beq  0x00000001 , 0x0000453e 
+ 00017673  0x00003751 jam  0x00000008 , 0x00004a9d 
+ 00017674  0x00003752 branch  0x0000453e 
+ 00017675  0x00003755 jam  0x00000006 , 0x00004a9e 
+ 00017676  0x00003756 branch  0x00004505 
+ 00017677  0x00003759 jam  0x00000019 , 0x00004a9e 
+ 00017678  0x0000375a branch  0x00004505 
+ 00017679  0x0000375d jam  0x0000001b , 0x00004a9e 
+ 00017680  0x0000375e branch  0x00004505 
+ 00017681  0x00003761 fetch  0x00000001 , 0x00004aa1 
+ 00017682  0x00003762 beq  0x00000000 , 0x00004516 
+ 00017683  0x00003763 beq  0x00000003 , 0x00004519 
+ 00017684  0x00003764 setarg  0x000000fa 
+ 00017685  0x00003765 branch  0x000044aa 
+ 00017686  0x00003767 jam  0x00000008 , 0x00004a9d 
+ 00017687  0x00003768 jam  0x0000000f , 0x00004a9e 
+ 00017688  0x00003769 branch  0x0000453e 
+ 00017689  0x0000376b jam  0x00000009 , 0x00004a9d 
+ 00017690  0x0000376c jam  0x00000014 , 0x00004a9e 
+ 00017691  0x0000376d branch  0x0000453e 
+ 00017692  0x00003770 fetch  0x00000001 , 0x00004aa1 
+ 00017693  0x00003771 beq  0x00000000 , 0x00004520 
+ 00017694  0x00003772 setarg  0x000000f7 
+ 00017695  0x00003773 branch  0x000044aa 
+ 00017696  0x00003775 jam  0x00000009 , 0x00004a9d 
+ 00017697  0x00003776 jam  0x00000012 , 0x00004a9e 
+ 00017698  0x00003777 branch  0x0000453e 
+ 00017699  0x0000377a fetch  0x00000001 , 0x00004aa1 
+ 00017700  0x0000377b beq  0x00000003 , 0x00004527 
+ 00017701  0x0000377c setarg  0x000000f5 
+ 00017702  0x0000377d branch  0x000044aa 
+ 00017703  0x0000377f jam  0x00000008 , 0x00004a9d 
+ 00017704  0x00003780 jam  0x0000002c , 0x00004a9e 
+ 00017705  0x00003781 branch  0x0000453e 
+ 00017706  0x00003784 fetch  0x00000001 , 0x00004aa1 
+ 00017707  0x00003785 beq  0x00000000 , 0x00004531 
+ 00017708  0x00003786 beq  0x00000001 , 0x00004533 
+ 00017709  0x00003787 jam  0x00000001 , 0x00004a9d 
+ 00017710  0x00003789 jam  0x0000002c , 0x00004a9e 
+ 00017711  0x0000378a call  0x000044ec 
+ 00017712  0x0000378b branch  0x0000453e 
+ 00017713  0x0000378d jam  0x00000008 , 0x00004a9d 
+ 00017714  0x0000378e branch  0x0000452e 
+ 00017715  0x00003790 jam  0x00000002 , 0x00004a9d 
+ 00017716  0x00003791 branch  0x0000452e 
+ 00017717  0x00003794 fetch  0x00000001 , 0x00004aa1 
+ 00017718  0x00003795 beq  0x00000000 , 0x0000453b 
+ 00017719  0x00003796 beq  0x00000001 , 0x0000453b 
+ 00017720  0x00003797 jam  0x00000001 , 0x00004a9d 
+ 00017721  0x00003798 jam  0x00000052 , 0x00004a9e 
+ 00017722  0x00003799 branch  0x0000453e 
+ 00017723  0x0000379b jam  0x00000008 , 0x00004a9d 
+ 00017724  0x0000379c jam  0x0000002b , 0x00004a9e 
+ 00017725  0x0000379d branch  0x0000453e 
+ 00017726  0x000037a0 jam  0x00000000 , 0x000049aa 
+ 00017727  0x000037a1 fetch  0x00000001 , 0x000049ab 
+ 00017728  0x000037a2 bbit0  0x00000000 , 0x00004545 
+ 00017729  0x000037a3 fetch  0x00000001 , 0x00004a9c 
+ 00017730  0x000037a4 beq  0x00000003 , 0x00004551 
+ 00017731  0x000037a6 jam  0x00000001 , 0x00004a9c 
+ 00017732  0x000037a7 rtn 
+ 00017733  0x000037aa jam  0x00000004 , 0x00004a9c 
+ 00017734  0x000037ab rtn 
+ 00017735  0x000037ae jam  0x00000006 , 0x00004a9c 
+ 00017736  0x000037af rtn 
+ 00017737  0x000037b3 store  0x00000001 , 0x00004a70 
+ 00017738  0x000037b4 storet  0x00000001 , 0x00004a72 
+ 00017739  0x000037b5 call  0x00007dbc 
+ 00017740  0x000037b6 jam  0x00000000 , 0x00004a6f 
+ 00017741  0x000037b7 branch  0x000046e6 
+ 00017742  0x000037ba fetch  0x00000001 , 0x00004a9d 
+ 00017743  0x000037bb arg  0x00000000 , 0x00000002 
+ 00017744  0x000037bc call  0x00004549 
+ 00017745  0x000037be jam  0x00000002 , 0x00004a9c 
+ 00017746  0x000037bf rtn 
+ 00017747  0x000037c2 jam  0x00000003 , 0x00004a9c 
+ 00017748  0x000037c3 fetch  0x00000001 , 0x00004a9d 
+ 00017749  0x000037c4 fetcht  0x00000001 , 0x00004a9e 
+ 00017750  0x000037c5 branch  0x00004549 
+ 00017751  0x000037c8 jam  0x00000000 , 0x00004a6f 
+ 00017752  0x000037c9 fetch  0x00000001 , 0x00004a9d 
+ 00017753  0x000037ca arg  0x00000000 , 0x00000002 
+ 00017754  0x000037cb call  0x00004549 
+ 00017755  0x000037cc fetch  0x00000001 , 0x00004a9f 
+ 00017756  0x000037cd branch  0x00004547 , 0x00000034 
+ 00017757  0x000037cf jam  0x00000005 , 0x00004a9c 
+ 00017758  0x000037d0 rtn 
+ 00017759  0x000037d3 branch  0x0000454b 
+ 00017760  0x000037d6 jam  0x00000000 , 0x00004a9c 
+ 00017761  0x000037d7 arg  0x00000000 , 0x0000003f 
+ 00017762  0x000037d8 arg  0x00000000 , 0x00000002 
+ 00017763  0x000037d9 branch  0x00004549 
+ 00017764  0x000037de fetch  0x00000001 , 0x000049aa 
+ 00017765  0x000037df arg  0x000000e0 , 0x00000002 
+ 00017766  0x000037e0 isub  0x00000002 , 0x0000003e 
+ 00017767  0x000037e1 nbranch  0x00004576 , 0x00000002 
+ 00017768  0x000037e2 sub  0x0000003f , 0x000000e7 , 0x0000003e 
+ 00017769  0x000037e3 nbranch  0x000045ad , 0x00000002 
+ 00017770  0x000037e4 and_into  0x00000007 , 0x0000003f 
+ 00017771  0x000037e5 copy  0x0000003f , 0x00000007 
+ 00017772  0x000037e6 fetch  0x00000001 , 0x000049ab 
+ 00017773  0x000037e7 bbit1  0x00000000 , 0x00004572 
+ 00017774  0x000037e9 fetch  0x00000001 , 0x000049ad 
+ 00017775  0x000037ea qset0  0x0000003f 
+ 00017776  0x000037eb store  0x00000001 , 0x000049ad 
+ 00017777  0x000037ec rtn 
+ 00017778  0x000037ee fetch  0x00000001 , 0x000049ad 
+ 00017779  0x000037ef qset1  0x0000003f 
+ 00017780  0x000037f0 store  0x00000001 , 0x000049ad 
+ 00017781  0x000037f1 rtn 
+ 00017782  0x000037f4 jam  0x00000000 , 0x000049b5 
+ 00017783  0x000037f5 fetch  0x00000001 , 0x000049ab 
+ 00017784  0x000037f6 bbit1  0x00000000 , 0x0000458d 
+ 00017785  0x000037f8 fetcht  0x00000001 , 0x000049aa 
+ 00017786  0x000037f9 arg  0x00000006 , 0x00000039 
+ 00017787  0x000037fa arg  0x000049af , 0x00000006 
+ 00017788  0x000037fc ifetch  0x00000001 , 0x00000006 
+ 00017789  0x000037fd isub  0x00000002 , 0x0000003e 
+ 00017790  0x000037fe nbranch  0x00004585 , 0x00000005 
+ 00017791  0x000037ff ifetch  0x00000001 , 0x00000006 
+ 00017792  0x00003800 increase  0xfffffffe , 0x00000006 
+ 00017793  0x00003801 istore  0x00000001 , 0x00000006 
+ 00017794  0x00003802 rtn  0x00000034 
+ 00017795  0x00003803 increase  0x00000001 , 0x00000006 
+ 00017796  0x00003804 istoret  0x00000001 , 0x00000006 
+ 00017797  0x00003806 loop  0x0000457c 
+ 00017798  0x00003807 fetch  0x00000008 , 0x0000488e 
+ 00017799  0x00003808 bbit1  0x00000021 , 0x0000458a 
+ 00017800  0x00003809 fetch  0x00000008 , 0x0000488e 
+ 00017801  0x0000380a rtnbit0  0x00000020 
+ 00017802  0x0000380c call  0x0000459f 
+ 00017803  0x0000380d qset0  0x0000003f 
+ 00017804  0x0000380e branch  0x00007dce 
+ 00017805  0x00003812 fetcht  0x00000001 , 0x000049aa 
+ 00017806  0x00003813 arg  0x00000006 , 0x00000039 
+ 00017807  0x00003814 arg  0x000049af , 0x00000006 
+ 00017808  0x00003816 ifetch  0x00000001 , 0x00000006 
+ 00017809  0x00003817 branch  0x0000459c , 0x00000034 
+ 00017810  0x00003818 isub  0x00000002 , 0x0000003e 
+ 00017811  0x00003819 rtn  0x00000005 
+ 00017812  0x0000381a loop  0x00004590 
+ 00017813  0x0000381b fetch  0x00000008 , 0x0000488e 
+ 00017814  0x0000381c bbit1  0x00000021 , 0x00004599 
+ 00017815  0x0000381d fetch  0x00000008 , 0x0000488e 
+ 00017816  0x0000381e rtnbit0  0x00000020 
+ 00017817  0x00003820 call  0x0000459f 
+ 00017818  0x00003821 qset1  0x0000003f 
+ 00017819  0x00003822 branch  0x00007dce 
+ 00017820  0x00003825 increase  0xffffffff , 0x00000006 
+ 00017821  0x00003826 istoret  0x00000001 , 0x00000006 
+ 00017822  0x00003827 rtn 
+ 00017823  0x0000382a bpatch  0x00000053 , 0x0000400a 
+ 00017824  0x0000382b fetch  0x00000001 , 0x000049aa 
+ 00017825  0x0000382c sub  0x0000003f , 0x00000070 , 0x0000003e 
+ 00017826  0x0000382d nrtn  0x00000002 
+ 00017827  0x0000382e jam  0x00000001 , 0x000049b7 
+ 00017828  0x0000382f jam  0x00000001 , 0x000049a9 
+ 00017829  0x00003830 div  0x0000003f , 0x00000008 
+ 00017830  0x00003831 call  0x00007d64 
+ 00017831  0x00003832 quotient  0x0000003f 
+ 00017832  0x00003833 remainder  0x00000007 
+ 00017833  0x00003834 arg  0x000049b9 , 0x00000005 
+ 00017834  0x00003835 iadd  0x00000005 , 0x00000005 
+ 00017835  0x00003836 setarg  0x00000000 
+ 00017836  0x00003837 rtn 
+ 00017837  0x0000383a jam  0x00000001 , 0x00004aa0 
+ 00017838  0x0000383b fetch  0x00000001 , 0x000049ab 
+ 00017839  0x0000383c isolate0  0x00000000 , 0x0000003f 
+ 00017840  0x0000383d call  0x000045b2 , 0x00000001 
+ 00017841  0x0000383e branch  0x00004576 
+ 00017842  0x00003841 jam  0x00000002 , 0x00004aa0 
+ 00017843  0x00003842 rtn 
+ 00017844  0x00003847 call  0x00004660 
+ 00017845  0x00003848 call  0x000045f2 
+ 00017846  0x00003849 jam  0x00000000 , 0x00004a7a 
+ 00017847  0x0000384a jam  0x00000000 , 0x00004a7b 
+ 00017848  0x0000384b jam  0x00000000 , 0x00004a7c 
+ 00017849  0x0000384c jam  0x00000000 , 0x00004a7d 
+ 00017850  0x0000384d jam  0x00000000 , 0x00004a7e 
+ 00017851  0x0000384e fetch  0x00000001 , 0x000049ad 
+ 00017852  0x0000384f ncall  0x0000468f , 0x00000034 
+ 00017853  0x00003850 arg  0x000049af , 0x00000006 
+ 00017854  0x00003851 arg  0x00000006 , 0x00000039 
+ 00017855  0x00003853 ifetch  0x00000001 , 0x00000006 
+ 00017856  0x00003854 sub  0x0000003f , 0x0000007f , 0x0000003e 
+ 00017857  0x00003855 call  0x00004699 , 0x00000005 
+ 00017858  0x00003856 sub  0x0000003f , 0x000000ae , 0x0000003e 
+ 00017859  0x00003857 call  0x0000469b , 0x00000005 
+ 00017860  0x00003858 loop  0x000045bf 
+ 00017861  0x0000385a call  0x000045c9 
+ 00017862  0x0000385b fetch  0x00000001 , 0x00004a7f 
+ 00017863  0x0000385c branch  0x00004670 , 0x00000034 
+ 00017864  0x0000385d rtn 
+ 00017865  0x00003860 bpatch  0x00000054 , 0x0000400a 
+ 00017866  0x00003861 jam  0x00000000 , 0x00004a9b 
+ 00017867  0x00003862 fetch  0x00000001 , 0x00004678 
+ 00017868  0x00003863 bne  0x00000000 , 0x000045d7 
+ 00017869  0x00003864 fetch  0x00000008 , 0x0000488e 
+ 00017870  0x00003865 rtnbit0  0x00000013 
+ 00017871  0x00003866 fetch  0x00000002 , 0x000049af 
+ 00017872  0x00003867 fetcht  0x00000002 , 0x00004a97 
+ 00017873  0x00003868 isub  0x00000002 , 0x0000003e 
+ 00017874  0x00003869 branch  0x000045e8 , 0x00000005 
+ 00017875  0x0000386a byteswap  0x00000002 , 0x00000002 
+ 00017876  0x0000386b isub  0x00000002 , 0x0000003e 
+ 00017877  0x0000386c branch  0x000045e8 , 0x00000005 
+ 00017878  0x0000386d branch  0x000054e6 
+ 00017879  0x00003870 fetch  0x00000002 , 0x000049af 
+ 00017880  0x00003871 fetcht  0x00000002 , 0x00004a99 
+ 00017881  0x00003872 isub  0x00000002 , 0x0000003e 
+ 00017882  0x00003873 branch  0x000045ec , 0x00000005 
+ 00017883  0x00003874 byteswap  0x00000002 , 0x00000002 
+ 00017884  0x00003875 isub  0x00000002 , 0x0000003e 
+ 00017885  0x00003876 branch  0x000045ec , 0x00000005 
+ 00017886  0x00003877 fetch  0x00000008 , 0x0000488e 
+ 00017887  0x00003878 bbit0  0x0000001b , 0x000054e6 
+ 00017888  0x00003879 fetch  0x00000002 , 0x000049af 
+ 00017889  0x0000387a fetcht  0x00000002 , 0x00004a95 
+ 00017890  0x0000387b isub  0x00000002 , 0x0000003e 
+ 00017891  0x0000387c branch  0x000045ea , 0x00000005 
+ 00017892  0x0000387d byteswap  0x00000002 , 0x00000002 
+ 00017893  0x0000387e isub  0x00000002 , 0x0000003e 
+ 00017894  0x0000387f branch  0x000045ea , 0x00000005 
+ 00017895  0x00003880 branch  0x000054e6 
+ 00017896  0x00003883 jam  0x00000001 , 0x00004a9b 
+ 00017897  0x00003884 branch  0x000045ee 
+ 00017898  0x00003886 jam  0x00000002 , 0x00004a9b 
+ 00017899  0x00003887 branch  0x000045ee 
+ 00017900  0x00003889 jam  0x00000003 , 0x00004a9b 
+ 00017901  0x0000388a branch  0x000045ee 
+ 00017902  0x0000388d fetch  0x00000001 , 0x00004735 
+ 00017903  0x0000388e rtneq  0x00000001 
+ 00017904  0x0000388f jam  0x00000001 , 0x00004735 
+ 00017905  0x00003890 rtn 
+ 00017906  0x00003894 call  0x00007dbe 
+ 00017907  0x00003895 call  0x00004600 
+ 00017908  0x00003896 call  0x00004616 
+ 00017909  0x00003897 call  0x00004627 
+ 00017910  0x00003898 call  0x00004638 
+ 00017911  0x00003899 call  0x0000464e 
+ 00017912  0x0000389a branch  0x000045fe , 0x00000028 
+ 00017913  0x0000389b fetch  0x00000001 , 0x000048a6 
+ 00017914  0x0000389c set0  0x00000000 , 0x0000003f 
+ 00017915  0x0000389d set0  0x00000001 , 0x0000003f 
+ 00017916  0x0000389e store  0x00000001 , 0x000048a6 
+ 00017917  0x0000389f rtn 
+ 00017918  0x000038a2 jam  0x00000000 , 0x000049a9 
+ 00017919  0x000038a3 rtn 
+ 00017920  0x000038a6 fetch  0x00000008 , 0x0000488e 
+ 00017921  0x000038a7 rtnbit0  0x00000010 
+ 00017922  0x000038a8 fetch  0x00000001 , 0x00004897 
+ 00017923  0x000038a9 rtn  0x00000034 
+ 00017924  0x000038aa fetch  0x00000002 , 0x000049af 
+ 00017925  0x000038ab fetcht  0x00000002 , 0x00004898 
+ 00017926  0x000038ac isub  0x00000002 , 0x0000003e 
+ 00017927  0x000038ad branch  0x0000460c , 0x00000005 
+ 00017928  0x000038ae byteswap  0x00000002 , 0x00000002 
+ 00017929  0x000038af isub  0x00000002 , 0x0000003e 
+ 00017930  0x000038b0 branch  0x0000460c , 0x00000005 
+ 00017931  0x000038b1 rtn 
+ 00017932  0x000038b4 call  0x00007dbc 
+ 00017933  0x000038b5 fetch  0x00000001 , 0x000048a6 
+ 00017934  0x000038b6 set1  0x00000000 , 0x0000003f 
+ 00017935  0x000038b7 set0  0x00000001 , 0x0000003f 
+ 00017936  0x000038b8 store  0x00000001 , 0x000048a6 
+ 00017937  0x000038b9 fetch  0x00000001 , 0x00004678 
+ 00017938  0x000038ba rtneq  0x00000000 
+ 00017939  0x000038bb jam  0x00000000 , 0x00004678 
+ 00017940  0x000038bc jam  0x00000001 , 0x000048a7 
+ 00017941  0x000038bd rtn 
+ 00017942  0x000038c0 fetch  0x00000001 , 0x0000489a 
+ 00017943  0x000038c1 rtn  0x00000034 
+ 00017944  0x000038c2 fetch  0x00000002 , 0x000049af 
+ 00017945  0x000038c3 fetcht  0x00000002 , 0x0000489b 
+ 00017946  0x000038c4 isub  0x00000002 , 0x0000003e 
+ 00017947  0x000038c5 branch  0x00004620 , 0x00000005 
+ 00017948  0x000038c6 byteswap  0x00000002 , 0x00000002 
+ 00017949  0x000038c7 isub  0x00000002 , 0x0000003e 
+ 00017950  0x000038c8 branch  0x00004620 , 0x00000005 
+ 00017951  0x000038c9 rtn 
+ 00017952  0x000038cc call  0x00007dbc 
+ 00017953  0x000038cd call  0x00004649 
+ 00017954  0x000038ce fetch  0x00000001 , 0x00004678 
+ 00017955  0x000038cf rtneq  0x00000001 
+ 00017956  0x000038d0 jam  0x00000001 , 0x00004678 
+ 00017957  0x000038d1 jam  0x00000001 , 0x000048a8 
+ 00017958  0x000038d2 rtn 
+ 00017959  0x000038d5 fetch  0x00000001 , 0x0000489d 
+ 00017960  0x000038d6 rtn  0x00000034 
+ 00017961  0x000038d7 fetch  0x00000002 , 0x000049af 
+ 00017962  0x000038d8 fetcht  0x00000002 , 0x0000489e 
+ 00017963  0x000038d9 isub  0x00000002 , 0x0000003e 
+ 00017964  0x000038da branch  0x00004631 , 0x00000005 
+ 00017965  0x000038db byteswap  0x00000002 , 0x00000002 
+ 00017966  0x000038dc isub  0x00000002 , 0x0000003e 
+ 00017967  0x000038dd branch  0x00004631 , 0x00000005 
+ 00017968  0x000038de rtn 
+ 00017969  0x000038e1 call  0x00007dbc 
+ 00017970  0x000038e2 call  0x00004649 
+ 00017971  0x000038e3 fetch  0x00000001 , 0x00004678 
+ 00017972  0x000038e4 rtneq  0x00000002 
+ 00017973  0x000038e5 jam  0x00000002 , 0x00004678 
+ 00017974  0x000038e6 jam  0x00000001 , 0x000048a8 
+ 00017975  0x000038e7 rtn 
+ 00017976  0x000038ea fetch  0x00000001 , 0x000048a0 
+ 00017977  0x000038eb rtn  0x00000034 
+ 00017978  0x000038ec fetch  0x00000002 , 0x000049af 
+ 00017979  0x000038ed fetcht  0x00000002 , 0x000048a1 
+ 00017980  0x000038ee isub  0x00000002 , 0x0000003e 
+ 00017981  0x000038ef branch  0x00004642 , 0x00000005 
+ 00017982  0x000038f0 byteswap  0x00000002 , 0x00000002 
+ 00017983  0x000038f1 isub  0x00000002 , 0x0000003e 
+ 00017984  0x000038f2 branch  0x00004642 , 0x00000005 
+ 00017985  0x000038f3 rtn 
+ 00017986  0x000038f6 call  0x00007dbc 
+ 00017987  0x000038f7 call  0x00004649 
+ 00017988  0x000038f8 fetch  0x00000001 , 0x00004678 
+ 00017989  0x000038f9 rtneq  0x00000003 
+ 00017990  0x000038fa jam  0x00000003 , 0x00004678 
+ 00017991  0x000038fb jam  0x00000001 , 0x000048a8 
+ 00017992  0x000038fc rtn 
+ 00017993  0x000038ff fetch  0x00000001 , 0x000048a6 
+ 00017994  0x00003900 set0  0x00000000 , 0x0000003f 
+ 00017995  0x00003901 set1  0x00000001 , 0x0000003f 
+ 00017996  0x00003902 store  0x00000001 , 0x000048a6 
+ 00017997  0x00003903 rtn 
+ 00017998  0x00003906 fetch  0x00000008 , 0x0000488e 
+ 00017999  0x00003907 rtnbit0  0x00000024 
+ 00018000  0x00003908 fetch  0x00000001 , 0x000048a3 
+ 00018001  0x00003909 rtn  0x00000034 
+ 00018002  0x0000390a fetch  0x00000002 , 0x000049af 
+ 00018003  0x0000390b fetcht  0x00000002 , 0x000048a4 
+ 00018004  0x0000390c isub  0x00000002 , 0x0000003e 
+ 00018005  0x0000390d branch  0x0000465a , 0x00000005 
+ 00018006  0x0000390e byteswap  0x00000002 , 0x00000002 
+ 00018007  0x0000390f isub  0x00000002 , 0x0000003e 
+ 00018008  0x00003910 branch  0x0000465a , 0x00000005 
+ 00018009  0x00003911 rtn 
+ 00018010  0x00003914 call  0x00007dbc 
+ 00018011  0x00003915 fetch  0x00000001 , 0x00004678 
+ 00018012  0x00003916 rtneq  0x00000004 
+ 00018013  0x00003917 jam  0x00000004 , 0x00004678 
+ 00018014  0x00003918 call  0x00004045 
+ 00018015  0x00003919 branch  0x00006c99 
+ 00018016  0x0000391c fetch  0x00000001 , 0x00004a7f 
+ 00018017  0x0000391d nrtn  0x00000034 
+ 00018018  0x0000391e fetcht  0x00000001 , 0x0000490f 
+ 00018019  0x0000391f sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00018020  0x00003920 rtn  0x00000005 
+ 00018021  0x00003921 call  0x00006ee0 
+ 00018022  0x00003922 nbranch  0x0000466c , 0x00000001 
+ 00018023  0x00003923 arg  0x00000008 , 0x00000039 
+ 00018024  0x00003924 arg  0x000049ad , 0x00000005 
+ 00018025  0x00003925 call  0x00007ca3 
+ 00018026  0x00003926 jam  0x000000ae , 0x000049af 
+ 00018027  0x00003927 rtn 
+ 00018028  0x0000392a fetch  0x00000001 , 0x000049af 
+ 00018029  0x0000392b rtnne  0x000000ae 
+ 00018030  0x0000392c jam  0x00000000 , 0x000049af 
+ 00018031  0x0000392d rtn 
+ 00018032  0x00003930 bpatch  0x00000055 , 0x0000400a 
+ 00018033  0x00003931 fetch  0x00000001 , 0x00004a7e 
+ 00018034  0x00003932 rtn  0x00000034 
+ 00018035  0x00003933 fetch  0x00000001 , 0x00004678 
+ 00018036  0x00003934 beq  0x00000000 , 0x00004680 
+ 00018037  0x00003936 bpatch  0x00000056 , 0x0000400a 
+ 00018038  0x00003937 call  0x00003f2c 
+ 00018039  0x00003938 jam  0x00000000 , 0x000049a9 
+ 00018040  0x00003939 fetch  0x00000001 , 0x00004678 
+ 00018041  0x0000393a rtneq  0x00000000 
+ 00018042  0x0000393b fetch  0x00000008 , 0x0000488e 
+ 00018043  0x0000393c rtnbit1  0x00000004 
+ 00018044  0x0000393d arg  0x00000004 , 0x00000007 
+ 00018045  0x0000393e call  0x00004a25 
+ 00018046  0x0000393f call  0x00003745 
+ 00018047  0x00003940 branch  0x000048c0 
+ 00018048  0x00003943 bpatch  0x00000057 , 0x0000400a 
+ 00018049  0x00003944 call  0x00004161 
+ 00018050  0x00003945 call  0x00003f2c 
+ 00018051  0x00003946 jam  0x00000000 , 0x000049a9 
+ 00018052  0x00003947 fetch  0x00000002 , 0x000045ef 
+ 00018053  0x00003948 nrtn  0x00000034 
+ 00018054  0x00003949 setarg  0x00000000 
+ 00018055  0x0000394a store  0x00000002 , 0x00004741 
+ 00018056  0x0000394b store  0x00000002 , 0x000045f5 
+ 00018057  0x0000394c store  0x00000001 , 0x000045f9 
+ 00018058  0x0000394d arg  0x00000000 , 0x00000007 
+ 00018059  0x0000394e call  0x00004a25 
+ 00018060  0x0000394f call  0x000048e9 
+ 00018061  0x00003950 jam  0x00000002 , 0x000045a0 
+ 00018062  0x00003951 branch  0x0000326f 
+ 00018063  0x00003955 store  0x00000001 , 0x00004a7b 
+ 00018064  0x00003956 and_into  0x00000044 , 0x0000003f 
+ 00018065  0x00003957 ncall  0x00004697 , 0x00000034 
+ 00018066  0x00003958 fetch  0x00000001 , 0x00004a7b 
+ 00018067  0x00003959 and_into  0x00000022 , 0x0000003f 
+ 00018068  0x0000395a rtn  0x00000034 
+ 00018069  0x0000395b jam  0x00000001 , 0x00004a7d 
+ 00018070  0x0000395c rtn 
+ 00018071  0x0000395e jam  0x00000001 , 0x00004a7c 
+ 00018072  0x0000395f rtn 
+ 00018073  0x00003963 jam  0x00000001 , 0x00004a7a 
+ 00018074  0x00003964 rtn 
+ 00018075  0x00003967 jam  0x00000001 , 0x00004a7e 
+ 00018076  0x00003968 rtn 
+ 00018077  0x0000396d bpatch  0x00000058 , 0x0000400b 
+ 00018078  0x0000396e disable  0x00000028 
+ 00018079  0x0000396f jam  0x00000000 , 0x0000472b 
+ 00018080  0x00003970 jam  0x00000000 , 0x0000472c 
+ 00018081  0x00003971 jam  0x00000000 , 0x0000472d 
+ 00018082  0x00003972 fetch  0x00000001 , 0x00004a9c 
+ 00018083  0x00003973 beq  0x00000001 , 0x0000454e 
+ 00018084  0x00003974 beq  0x00000002 , 0x00004553 
+ 00018085  0x00003975 beq  0x00000003 , 0x00004553 
+ 00018086  0x00003976 beq  0x00000004 , 0x00004557 
+ 00018087  0x00003977 beq  0x00000006 , 0x00004560 
+ 00018088  0x00003978 fetch  0x00000001 , 0x000049a9 
+ 00018089  0x00003979 branch  0x000046ba , 0x00000034 
+ 00018090  0x0000397a increase  0xffffffff , 0x0000003f 
+ 00018091  0x0000397b store  0x00000001 , 0x000049a9 
+ 00018092  0x0000397c call  0x000046b7 
+ 00018093  0x0000397d jam  0x0000000a , 0x00004a82 
+ 00018094  0x0000397e call  0x00005535 
+ 00018095  0x0000397f fetch  0x00000001 , 0x00004a9c 
+ 00018096  0x00003980 beq  0x00000005 , 0x0000455f 
+ 00018097  0x00003981 arg  0x00004a6f , 0x00000005 
+ 00018098  0x00003982 arg  0x0000000a , 0x00000039 
+ 00018099  0x00003983 call  0x00007ca3 
+ 00018100  0x00003984 call  0x000046ca 
+ 00018101  0x00003985 jam  0x00000000 , 0x00004a79 
+ 00018102  0x00003986 rtn 
+ 00018103  0x00003989 jam  0x00000003 , 0x000040c0 
+ 00018104  0x0000398a jam  0x0000000a , 0x0000473e 
+ 00018105  0x0000398b rtn 
+ 00018106  0x0000398e fetch  0x00000001 , 0x00004678 
+ 00018107  0x0000398f rtnne  0x00000000 
+ 00018108  0x00003990 fetch  0x00000001 , 0x00004a81 
+ 00018109  0x00003991 rtn  0x00000034 
+ 00018110  0x00003992 fetch  0x00000001 , 0x00004a80 
+ 00018111  0x00003993 nrtn  0x00000034 
+ 00018112  0x00003994 fetcht  0x00000001 , 0x00004a83 
+ 00018113  0x00003995 fetch  0x00000001 , 0x00004a82 
+ 00018114  0x00003996 isub  0x00000002 , 0x0000003e 
+ 00018115  0x00003997 store  0x00000001 , 0x00004a83 
+ 00018116  0x00003998 rtn  0x00000005 
+ 00018117  0x00003999 arg  0x00004a6f , 0x00000005 
+ 00018118  0x0000399a arg  0x0000000a , 0x00000039 
+ 00018119  0x0000399b call  0x00007ca3 
+ 00018120  0x0000399c call  0x00007dbc 
+ 00018121  0x0000399d branch  0x000046e6 
+ 00018122  0x000039a0 bpatch  0x00000059 , 0x0000400b 
+ 00018123  0x000039a1 fetch  0x00000001 , 0x00004aa0 
+ 00018124  0x000039a2 beq  0x00000002 , 0x0000474b 
+ 00018125  0x000039a3 fetch  0x00000001 , 0x000049b7 
+ 00018126  0x000039a4 nbranch  0x000046ec , 0x00000034 
+ 00018127  0x000039a5 arg  0x000049af , 0x00000006 
+ 00018128  0x000039a6 arg  0x00000006 , 0x00000039 
+ 00018129  0x000039a8 ifetch  0x00000001 , 0x00000006 
+ 00018130  0x000039a9 sub  0x0000003f , 0x000000e7 , 0x0000003e 
+ 00018131  0x000039aa nbranch  0x000046f5 , 0x00000002 
+ 00018132  0x000039ab loop  0x000046d1 
+ 00018133  0x000039ac fetch  0x00000001 , 0x000049a6 
+ 00018134  0x000039ad call  0x000046ef , 0x00000034 
+ 00018135  0x000039ae jam  0x00000000 , 0x00004a6f 
+ 00018136  0x000039af bpatch  0x0000005a , 0x0000400b 
+ 00018137  0x000039b0 arg  0x000049ad , 0x00000011 
+ 00018138  0x000039b1 arg  0x00004a70 , 0x00000005 
+ 00018139  0x000039b2 arg  0x00000008 , 0x00000039 
+ 00018140  0x000039b4 ifetcht  0x00000001 , 0x00000011 
+ 00018141  0x000039b5 fetch  0x00000001 , 0x0000474f 
+ 00018142  0x000039b6 beq  0x000000ff , 0x000046e3 
+ 00018143  0x000039b7 sub  0x00000002 , 0x0000007f , 0x0000003e 
+ 00018144  0x000039b8 nbranch  0x000046e3 , 0x00000005 
+ 00018145  0x000039b9 increase  0x00000001 , 0x00000011 
+ 00018146  0x000039ba ifetcht  0x00000001 , 0x00000011 
+ 00018147  0x000039bc istoret  0x00000001 , 0x00000005 
+ 00018148  0x000039bd increase  0x00000001 , 0x00000011 
+ 00018149  0x000039be loop  0x000046dc 
+ 00018150  0x000039c0 bpatch  0x0000005b , 0x0000400b 
+ 00018151  0x000039c1 call  0x00004756 
+ 00018152  0x000039c3 fetch  0x00000001 , 0x00004a79 
+ 00018153  0x000039c4 beq  0x00000001 , 0x00007dbc 
+ 00018154  0x000039c6 call  0x0000522c 
+ 00018155  0x000039c7 branch  0x00007dbc 
+ 00018156  0x000039ca jam  0x00000000 , 0x000049b7 
+ 00018157  0x000039cb jam  0x00000008 , 0x00004a6f 
+ 00018158  0x000039cc branch  0x000046e6 
+ 00018159  0x000039cf arg  0x000049b8 , 0x00000005 
+ 00018160  0x000039d0 arg  0x0000000f , 0x00000039 
+ 00018161  0x000039d1 call  0x00007ca3 
+ 00018162  0x000039d2 arg  0x000049ad , 0x00000005 
+ 00018163  0x000039d3 arg  0x0000000a , 0x00000039 
+ 00018164  0x000039d4 branch  0x00007ca3 
+ 00018165  0x000039d7 copy  0x0000003f , 0x00000002 
+ 00018166  0x000039d8 bpatch  0x0000005c , 0x0000400b 
+ 00018167  0x000039d9 copy  0x00000002 , 0x0000003f 
+ 00018168  0x000039da jam  0x00000005 , 0x00004a6f 
+ 00018169  0x000039db fetcht  0x00000001 , 0x000049a6 
+ 00018170  0x000039dc sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00018171  0x000039dd branch  0x0000474b , 0x00000005 
+ 00018172  0x000039de beq  0x000000e8 , 0x00004715 
+ 00018173  0x000039df beq  0x000000e9 , 0x00004718 
+ 00018174  0x000039e0 beq  0x000000ea , 0x0000471a 
+ 00018175  0x000039e1 beq  0x000000eb , 0x0000471c 
+ 00018176  0x000039e2 beq  0x000000ec , 0x0000471e 
+ 00018177  0x000039e3 beq  0x000000ed , 0x00004720 
+ 00018178  0x000039e4 beq  0x000000ee , 0x00004722 
+ 00018179  0x000039e5 beq  0x000000ef , 0x00004724 
+ 00018180  0x000039e7 beq  0x000000f0 , 0x00004726 
+ 00018181  0x000039e8 beq  0x000000f1 , 0x00004728 
+ 00018182  0x000039e9 beq  0x000000f2 , 0x0000472a 
+ 00018183  0x000039ea beq  0x000000f3 , 0x0000472c 
+ 00018184  0x000039eb beq  0x000000f4 , 0x0000472e 
+ 00018185  0x000039ec beq  0x000000f5 , 0x00004730 
+ 00018186  0x000039ed beq  0x000000f6 , 0x00004732 
+ 00018187  0x000039ee beq  0x000000f7 , 0x00004737 
+ 00018188  0x000039f0 beq  0x000000f8 , 0x0000473d 
+ 00018189  0x000039f1 beq  0x000000f9 , 0x0000473f 
+ 00018190  0x000039f2 beq  0x000000fa , 0x00004741 
+ 00018191  0x000039f4 beq  0x000000fb , 0x00004743 
+ 00018192  0x000039f5 beq  0x000000fc , 0x00004745 
+ 00018193  0x000039f6 beq  0x000000fd , 0x00004747 
+ 00018194  0x000039f7 beq  0x000000fe , 0x00004749 
+ 00018195  0x000039f9 beq  0x000000ff , 0x00004752 
+ 00018196  0x000039fa branch  0x000046e6 
+ 00018197  0x000039fd setarg  0x00000001 
+ 00018198  0x000039ff store  0x00000003 , 0x00004a70 
+ 00018199  0x00003a00 branch  0x000046e6 
+ 00018200  0x00003a02 setarg  0x00000002 
+ 00018201  0x00003a03 branch  0x00004716 
+ 00018202  0x00003a05 setarg  0x00000004 
+ 00018203  0x00003a06 branch  0x00004716 
+ 00018204  0x00003a08 setarg  0x00000008 
+ 00018205  0x00003a09 branch  0x00004716 
+ 00018206  0x00003a0b setarg  0x00000010 
+ 00018207  0x00003a0c branch  0x00004716 
+ 00018208  0x00003a0e setarg  0x00000020 
+ 00018209  0x00003a0f branch  0x00004716 
+ 00018210  0x00003a11 setarg  0x00000040 
+ 00018211  0x00003a12 branch  0x00004716 
+ 00018212  0x00003a14 setarg  0x00000080 
+ 00018213  0x00003a15 branch  0x00004716 
+ 00018214  0x00003a18 setarg  0x00000100 
+ 00018215  0x00003a19 branch  0x00004716 
+ 00018216  0x00003a1b setarg  0x00000200 
+ 00018217  0x00003a1c branch  0x00004716 
+ 00018218  0x00003a1e setarg  0x00000400 
+ 00018219  0x00003a1f branch  0x00004716 
+ 00018220  0x00003a21 setarg  0x00000800 
+ 00018221  0x00003a22 branch  0x00004716 
+ 00018222  0x00003a24 setarg  0x00001000 
+ 00018223  0x00003a25 branch  0x00004716 
+ 00018224  0x00003a27 setarg  0x00002000 
+ 00018225  0x00003a28 branch  0x00004716 
+ 00018226  0x00003a2a fetch  0x00000001 , 0x00004aa1 
+ 00018227  0x00003a2b beq  0x00000002 , 0x00004726 
+ 00018228  0x00003a2c beq  0x00000003 , 0x00004726 
+ 00018229  0x00003a2d setarg  0x00004000 
+ 00018230  0x00003a2e branch  0x00004716 
+ 00018231  0x00003a30 fetch  0x00000001 , 0x00004aa1 
+ 00018232  0x00003a31 beq  0x00000001 , 0x0000473b 
+ 00018233  0x00003a32 setarg  0x00010000 
+ 00018234  0x00003a33 branch  0x00004716 
+ 00018235  0x00003a35 setarg  0x00008000 
+ 00018236  0x00003a36 branch  0x00004716 
+ 00018237  0x00003a39 setarg  0x00020000 
+ 00018238  0x00003a3a branch  0x00004716 
+ 00018239  0x00003a3c setarg  0x00040000 
+ 00018240  0x00003a3d branch  0x00004716 
+ 00018241  0x00003a3f setarg  0x00080000 
+ 00018242  0x00003a40 branch  0x00004716 
+ 00018243  0x00003a43 setarg  0x00100000 
+ 00018244  0x00003a44 branch  0x00004716 
+ 00018245  0x00003a46 setarg  0x00200000 
+ 00018246  0x00003a47 branch  0x00004716 
+ 00018247  0x00003a49 setarg  0x00400000 
+ 00018248  0x00003a4a branch  0x00004716 
+ 00018249  0x00003a4c setarg  0x00800000 
+ 00018250  0x00003a4d branch  0x00004716 
+ 00018251  0x00003a51 jam  0x00000002 , 0x000049a9 
+ 00018252  0x00003a52 fetch  0x00000001 , 0x000049a6 
+ 00018253  0x00003a53 call  0x000046ef , 0x00000034 
+ 00018254  0x00003a54 jam  0x00000000 , 0x00004aa0 
+ 00018255  0x00003a55 setarg  0x00000005 
+ 00018256  0x00003a56 store  0x00000003 , 0x00004a6f 
+ 00018257  0x00003a57 branch  0x000046e6 
+ 00018258  0x00003a59 jam  0x00000002 , 0x00004a6f 
+ 00018259  0x00003a5a setarg  0x00000002 
+ 00018260  0x00003a5b store  0x00000001 , 0x00004a70 
+ 00018261  0x00003a5c branch  0x000046e6 
+ 00018262  0x00003a62 fetch  0x00000001 , 0x00004678 
+ 00018263  0x00003a63 bne  0x00000000 , 0x0000475d 
+ 00018264  0x00003a64 jam  0x00000000 , 0x00004a80 
+ 00018265  0x00003a65 fetch  0x00000002 , 0x00004a6f 
+ 00018266  0x00003a66 ncall  0x000047e4 , 0x00000034 
+ 00018267  0x00003a67 fetch  0x00000006 , 0x00004a72 
+ 00018268  0x00003a68 ncall  0x000047e4 , 0x00000034 
+ 00018269  0x00003a6a call  0x0000684b 
+ 00018270  0x00003a6b jam  0x00000000 , 0x00004a79 
+ 00018271  0x00003a6c bpatch  0x0000005d , 0x0000400b 
+ 00018272  0x00003a6d fetch  0x00000001 , 0x00004a6f 
+ 00018273  0x00003a6e beq  0x00000000 , 0x0000476d 
+ 00018274  0x00003a6f beq  0x00000001 , 0x00004768 
+ 00018275  0x00003a70 beq  0x00000003 , 0x00004780 
+ 00018276  0x00003a71 beq  0x00000005 , 0x00004785 
+ 00018277  0x00003a72 beq  0x00000002 , 0x00004787 
+ 00018278  0x00003a73 beq  0x00000008 , 0x0000478c 
+ 00018279  0x00003a74 rtn 
+ 00018280  0x00003a77 jam  0x00000001 , 0x00004a79 
+ 00018281  0x00003a78 arg  0x00004a70 , 0x00000006 
+ 00018282  0x00003a79 arg  0x0000465c , 0x00000005 
+ 00018283  0x00003a7a arg  0x00000007 , 0x00000039 
+ 00018284  0x00003a7b branch  0x00007cdc 
+ 00018285  0x00003a7e fetch  0x00000001 , 0x00004678 
+ 00018286  0x00003a7f bne  0x00000000 , 0x00004772 
+ 00018287  0x00003a80 call  0x000047d9 
+ 00018288  0x00003a81 fetch  0x00000001 , 0x00004a81 
+ 00018289  0x00003a82 store  0x00000001 , 0x00004a71 
+ 00018290  0x00003a84 fetch  0x00000008 , 0x0000488e 
+ 00018291  0x00003a85 bbit1  0x00000022 , 0x00004778 
+ 00018292  0x00003a86 arg  0x00004a6f , 0x00000006 
+ 00018293  0x00003a87 arg  0x00004721 , 0x00000005 
+ 00018294  0x00003a88 arg  0x00000009 , 0x00000039 
+ 00018295  0x00003a89 branch  0x00007cdc 
+ 00018296  0x00003a8c jam  0x00000000 , 0x00004a78 
+ 00018297  0x00003a8d fetch  0x00000001 , 0x00004a7a 
+ 00018298  0x00003a8e branch  0x0000477c , 0x00000034 
+ 00018299  0x00003a8f jam  0x00000001 , 0x00004a78 
+ 00018300  0x00003a91 arg  0x00004a6f , 0x00000006 
+ 00018301  0x00003a92 arg  0x00004721 , 0x00000005 
+ 00018302  0x00003a93 arg  0x0000000a , 0x00000039 
+ 00018303  0x00003a94 branch  0x00007cdc 
+ 00018304  0x00003a97 setarg  0x00000003 
+ 00018305  0x00003a99 store  0x00000001 , 0x00004721 
+ 00018306  0x00003a9a fetch  0x00000003 , 0x00004a70 
+ 00018307  0x00003a9b store  0x00000003 , 0x00004722 
+ 00018308  0x00003a9c rtn 
+ 00018309  0x00003a9f setarg  0x00000005 
+ 00018310  0x00003aa0 branch  0x00004781 
+ 00018311  0x00003aa3 setarg  0x00000002 
+ 00018312  0x00003aa4 store  0x00000001 , 0x00004721 
+ 00018313  0x00003aa5 fetch  0x00000001 , 0x00004a70 
+ 00018314  0x00003aa6 store  0x00000001 , 0x00004722 
+ 00018315  0x00003aa7 rtn 
+ 00018316  0x00003aaa setarg  0x00000008 
+ 00018317  0x00003aab store  0x00000001 , 0x00004721 
+ 00018318  0x00003aac rtn 
+ 00018319  0x00003ab1 bpatch  0x0000005e , 0x0000400b 
+ 00018320  0x00003ab2 call  0x00007de6 
+ 00018321  0x00003ab4 fetcht  0x00000001 , 0x0000490f 
+ 00018322  0x00003ab5 call  0x00006eac 
+ 00018323  0x00003ab7 fetch  0x00000002 , 0x0000494a 
+ 00018324  0x00003ab8 copy  0x0000003f , 0x00000012 
+ 00018325  0x00003ab9 arg  0x00000014 , 0x00000039 
+ 00018326  0x00003abb ifetcht  0x00000001 , 0x00000012 
+ 00018327  0x00003abc isolate1  0x00000007 , 0x00000002 
+ 00018328  0x00003abd ncall  0x00006ef1 , 0x00000001 
+ 00018329  0x00003abe increase  0x00000001 , 0x00000012 
+ 00018330  0x00003abf loop  0x00004796 
+ 00018331  0x00003ac1 call  0x00003f1b 
+ 00018332  0x00003ac2 jam  0x00000000 , 0x0000488c 
+ 00018333  0x00003ac4 fetch  0x00000002 , 0x00004948 
+ 00018334  0x00003ac5 copy  0x0000003f , 0x00000012 
+ 00018335  0x00003ac6 arg  0x00000008 , 0x00000039 
+ 00018336  0x00003ac8 ifetcht  0x00000001 , 0x00000012 
+ 00018337  0x00003ac9 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00018338  0x00003aca ncall  0x00003f29 , 0x00000005 
+ 00018339  0x00003acb increase  0x00000001 , 0x00000012 
+ 00018340  0x00003acc loop  0x000047a0 
+ 00018341  0x00003ace call  0x00006f4b 
+ 00018342  0x00003acf fetcht  0x00000001 , 0x00004666 
+ 00018343  0x00003ad0 call  0x00004f0a 
+ 00018344  0x00003ad1 call  0x00004f0e 
+ 00018345  0x00003ad2 branch  0x000040dd 
+ 00018346  0x00003ad5 rtnmark1  0x00000026 
+ 00018347  0x00003ad6 branch  0x0000478f 
+ 00018348  0x00003ad9 bpatch  0x0000005f , 0x0000400b 
+ 00018349  0x00003ada call  0x00007388 
+ 00018350  0x00003adb branch  0x000047b3 
+ 00018351  0x00003adf bpatch  0x00000060 , 0x0000400c 
+ 00018352  0x00003ae0 call  0x00004161 
+ 00018353  0x00003ae2 call  0x000047b3 
+ 00018354  0x00003ae3 branch  0x0000379c 
+ 00018355  0x00003ae6 bpatch  0x00000061 , 0x0000400c 
+ 00018356  0x00003ae7 call  0x00007de6 
+ 00018357  0x00003ae8 call  0x00004161 
+ 00018358  0x00003ae9 call  0x00004203 
+ 00018359  0x00003aea branch  0x0000478f 
+ 00018360  0x00003aee call  0x000047e1 
+ 00018361  0x00003aef call  0x00005535 
+ 00018362  0x00003af0 arg  0x00000000 , 0x00000007 
+ 00018363  0x00003af1 call  0x00004a29 
+ 00018364  0x00003af2 setarg  0x00000000 
+ 00018365  0x00003af3 store  0x00000002 , 0x000045ef 
+ 00018366  0x00003af4 store  0x00000002 , 0x000045f5 
+ 00018367  0x00003af5 store  0x00000001 , 0x00004613 
+ 00018368  0x00003af6 store  0x00000001 , 0x000048fd 
+ 00018369  0x00003af7 store  0x00000001 , 0x000045f9 
+ 00018370  0x00003af8 fetch  0x00000004 , 0x000045a6 
+ 00018371  0x00003af9 store  0x00000004 , 0x000045ff 
+ 00018372  0x00003afa store  0x00000004 , 0x000046a3 
+ 00018373  0x00003afb call  0x000047d3 
+ 00018374  0x00003afc fetch  0x00000001 , 0x00004aa2 
+ 00018375  0x00003afd set1  0x00000002 , 0x0000003f 
+ 00018376  0x00003afe store  0x00000001 , 0x00004aa2 
+ 00018377  0x00003aff branch  0x000044b9 
+ 00018378  0x00003b02 call  0x000047e1 
+ 00018379  0x00003b03 fetch  0x00000004 , 0x000045a6 
+ 00018380  0x00003b04 store  0x00000004 , 0x000045ff 
+ 00018381  0x00003b05 store  0x00000004 , 0x000046a3 
+ 00018382  0x00003b06 call  0x00003530 
+ 00018383  0x00003b07 call  0x000047d3 
+ 00018384  0x00003b08 jam  0x00000000 , 0x00004613 
+ 00018385  0x00003b09 jam  0x00000000 , 0x000045f9 
+ 00018386  0x00003b0a branch  0x00005535 
+ 00018387  0x00003b0d fetch  0x00000004 , 0x000045a6 
+ 00018388  0x00003b0e fetcht  0x00000004 , 0x000045fb 
+ 00018389  0x00003b0f isub  0x00000002 , 0x0000003e 
+ 00018390  0x00003b10 nbranch  0x000053c1 , 0x00000005 
+ 00018391  0x00003b11 jam  0x000000ff , 0x0000474f 
+ 00018392  0x00003b12 rtn 
+ 00018393  0x00003b15 arg  0x00000006 , 0x00000039 
+ 00018394  0x00003b16 arg  0x00004a72 , 0x00000006 
+ 00018395  0x00003b18 ifetch  0x00000001 , 0x00000006 
+ 00018396  0x00003b19 beq  0x00000053 , 0x000047e1 
+ 00018397  0x00003b1a beq  0x00000039 , 0x000047e1 
+ 00018398  0x00003b1b beq  0x00000047 , 0x000047e1 
+ 00018399  0x00003b1c loop  0x000047db 
+ 00018400  0x00003b1d rtn 
+ 00018401  0x00003b20 jam  0x00000003 , 0x00004a81 
+ 00018402  0x00003b21 jam  0x00000001 , 0x000049a9 
+ 00018403  0x00003b22 rtn 
+ 00018404  0x00003b25 jam  0x00000001 , 0x00004a80 
+ 00018405  0x00003b26 rtn 
+ 00018406  0x00003b2a fetch  0x00000001 , 0x00004617 
+ 00018407  0x00003b2b nbranch  0x000047fb , 0x00000034 
+ 00018408  0x00003b2c fetch  0x00000001 , 0x000045f9 
+ 00018409  0x00003b2d beq  0x00000002 , 0x000047f3 
+ 00018410  0x00003b2e beq  0x00000001 , 0x000047f3 
+ 00018411  0x00003b2f beq  0x00000003 , 0x000047ed 
+ 00018412  0x00003b30 branch  0x000047ed 
+ 00018413  0x00003b33 call  0x00004804 
+ 00018414  0x00003b34 fetch  0x00000001 , 0x0000473f 
+ 00018415  0x00003b35 nbranch  0x00005836 , 0x00000034 
+ 00018416  0x00003b36 fetch  0x00000001 , 0x00004678 
+ 00018417  0x00003b37 beq  0x00000000 , 0x000047af 
+ 00018418  0x00003b38 rtn 
+ 00018419  0x00003b3b fetch  0x00000008 , 0x0000488e 
+ 00018420  0x00003b3c bbit1  0x00000011 , 0x00005952 
+ 00018421  0x00003b3d bbit0  0x00000012 , 0x00005988 
+ 00018422  0x00003b3e fetch  0x00000004 , 0x000046a3 
+ 00018423  0x00003b3f fetcht  0x00000004 , 0x000046f8 
+ 00018424  0x00003b40 isub  0x00000002 , 0x0000003e 
+ 00018425  0x00003b41 branch  0x00004680 , 0x00000005 
+ 00018426  0x00003b42 branch  0x00005988 
+ 00018427  0x00003b45 bpatch  0x00000062 , 0x0000400c 
+ 00018428  0x00003b46 jam  0x00000000 , 0x00004617 
+ 00018429  0x00003b47 call  0x00003620 
+ 00018430  0x00003b48 setarg  0xffffffff 
+ 00018431  0x00003b49 store  0x00000008 , 0x000045c6 
+ 00018432  0x00003b4a setarg  0x00000000 
+ 00018433  0x00003b4b store  0x00000007 , 0x0000465c 
+ 00018434  0x00003b4c jam  0x00000001 , 0x00004737 
+ 00018435  0x00003b4d branch  0x00004821 
+ 00018436  0x00003b51 set0  0x00000026 , 0x00000000 
+ 00018437  0x00003b52 jam  0x00000000 , 0x00004613 
+ 00018438  0x00003b53 arg  0x00000000 , 0x00000007 
+ 00018439  0x00003b54 branch  0x00004a29 
+ 00018440  0x00003b57 fetch  0x00000002 , 0x000045f7 
+ 00018441  0x00003b58 and_into  0x000000e0 , 0x0000003f 
+ 00018442  0x00003b59 branch  0x0000480f , 0x00000034 
+ 00018443  0x00003b5a fetch  0x00000002 , 0x000045f7 
+ 00018444  0x00003b5b increase  0x00000001 , 0x0000003f 
+ 00018445  0x00003b5c store  0x00000002 , 0x000045f7 
+ 00018446  0x00003b5d rtn 
+ 00018447  0x00003b5f call  0x00003557 
+ 00018448  0x00003b60 call  0x0000362a 
+ 00018449  0x00003b61 nbranch  0x0000355e , 0x00000018 
+ 00018450  0x00003b62 nbranch  0x0000355e , 0x0000002f 
+ 00018451  0x00003b63 call  0x000068bc 
+ 00018452  0x00003b64 branch  0x00003540 
+ 00018453  0x00003b67 call  0x000035fd 
+ 00018454  0x00003b68 nbranch  0x0000481a , 0x00000028 
+ 00018455  0x00003b6a call  0x00004828 
+ 00018456  0x00003b6b call  0x00004855 
+ 00018457  0x00003b6c branch  0x0000485b 
+ 00018458  0x00003b6f fetch  0x00000008 , 0x0000494e 
+ 00018459  0x00003b70 nbranch  0x0000485b , 0x00000034 
+ 00018460  0x00003b71 fetch  0x00000008 , 0x00004956 
+ 00018461  0x00003b72 nbranch  0x0000485b , 0x00000034 
+ 00018462  0x00003b73 fetch  0x00000004 , 0x0000495e 
+ 00018463  0x00003b74 nbranch  0x0000485b , 0x00000034 
+ 00018464  0x00003b75 call  0x0000367c 
+ 00018465  0x00003b77 call  0x00004848 
+ 00018466  0x00003b78 nrtn  0x00000028 
+ 00018467  0x00003b79 call  0x0000369e 
+ 00018468  0x00003b7a fetch  0x00000001 , 0x00004737 
+ 00018469  0x00003b7b ncall  0x000047b3 , 0x00000034 
+ 00018470  0x00003b7c fetch  0x00000008 , 0x000045c6 
+ 00018471  0x00003b7d branch  0x000035fa 
+ 00018472  0x00003b80 bpatch  0x00000063 , 0x0000400c 
+ 00018473  0x00003b81 jam  0x00000000 , 0x00004618 
+ 00018474  0x00003b83 fetchr  0x0000000b , 0x00000002 , 0x00000040 
+ 00018475  0x00003b84 until  0x00000023 , 0x00000026 
+ 00018476  0x00003b85 call  0x0000362a 
+ 00018477  0x00003b86 fetch  0x00000001 , 0x00004596 
+ 00018478  0x00003b87 beq  0x00000001 , 0x0000361f 
+ 00018479  0x00003b88 nbranch  0x00004834 , 0x00000018 
+ 00018480  0x00003b89 nbranch  0x00004834 , 0x0000002f 
+ 00018481  0x00003b8a call  0x000068bc 
+ 00018482  0x00003b8b jam  0x00000000 , 0x00004737 
+ 00018483  0x00003b8c branch  0x0000361f 
+ 00018484  0x00003b90 fetch  0x00000001 , 0x00004619 
+ 00018485  0x00003b91 nrtn  0x00000034 
+ 00018486  0x00003b92 fetch  0x00000002 , 0x00004615 
+ 00018487  0x00003b93 increase  0x00000001 , 0x0000003f 
+ 00018488  0x00003b94 store  0x00000002 , 0x00004615 
+ 00018489  0x00003b95 fetch  0x00000001 , 0x00004615 
+ 00018490  0x00003b96 beq  0x000000ff , 0x0000364f 
+ 00018491  0x00003b97 fetch  0x00000001 , 0x00004618 
+ 00018492  0x00003b98 increase  0x00000001 , 0x0000003f 
+ 00018493  0x00003b99 store  0x00000001 , 0x00004618 
+ 00018494  0x00003b9a and_into  0x00000003 , 0x0000003f 
+ 00018495  0x00003b9b branch  0x00004841 , 0x00000034 
+ 00018496  0x00003b9c branch  0x0000482a 
+ 00018497  0x00003b9f call  0x00004330 
+ 00018498  0x00003ba0 fetch  0x00000001 , 0x000048a6 
+ 00018499  0x00003ba1 nbranch  0x00006c99 , 0x00000034 
+ 00018500  0x00003ba2 fetch  0x00000001 , 0x00004a9b 
+ 00018501  0x00003ba3 nbranch  0x0000361f , 0x00000034 
+ 00018502  0x00003ba4 call  0x00003675 
+ 00018503  0x00003ba5 branch  0x0000482a 
+ 00018504  0x00003ba8 enable  0x00000028 
+ 00018505  0x00003ba9 call  0x000023f0 
+ 00018506  0x00003baa fetch  0x00000003 , 0x000040bd 
+ 00018507  0x00003bab branch  0x00007dbe , 0x00000034 
+ 00018508  0x00003bac fetch  0x00000001 , 0x00004a7a 
+ 00018509  0x00003bad nbranch  0x00007dbe , 0x00000034 
+ 00018510  0x00003bae fetch  0x00000001 , 0x00004a7b 
+ 00018511  0x00003baf nbranch  0x00007dbe , 0x00000034 
+ 00018512  0x00003bb0 fetch  0x00000001 , 0x00004a9f 
+ 00018513  0x00003bb1 nbranch  0x00007dbe , 0x00000034 
+ 00018514  0x00003bb2 fetch  0x00000001 , 0x0000462f 
+ 00018515  0x00003bb3 beq  0x00000001 , 0x00007dbe 
+ 00018516  0x00003bb4 branch  0x00003699 
+ 00018517  0x00003bb7 fetch  0x00000004 , 0x000045a6 
+ 00018518  0x00003bb8 fetcht  0x00000004 , 0x000045fb 
+ 00018519  0x00003bb9 isub  0x00000002 , 0x0000003e 
+ 00018520  0x00003bba nbranch  0x000036c9 , 0x00000005 
+ 00018521  0x00003bbb jam  0x000000aa , 0x00004141 
+ 00018522  0x00003bbc rtn 
+ 00018523  0x00003bbe fetch  0x00000008 , 0x00004622 
+ 00018524  0x00003bbf store  0x00000008 , 0x000045c6 
+ 00018525  0x00003bc0 fetch  0x00000002 , 0x00004634 
+ 00018526  0x00003bc1 store  0x00000002 , 0x00004636 
+ 00018527  0x00003bc3 bpatch  0x00000064 , 0x0000400c 
+ 00018528  0x00003bc4 call  0x00004848 
+ 00018529  0x00003bc5 branch  0x000035f0 
+ 00018530  0x00003bc8 rtnmark0  0x00000026 
+ 00018531  0x00003bc9 call  0x0000469d 
+ 00018532  0x00003bca nrtn  0x00000028 
+ 00018533  0x00003bcb fetch  0x00000001 , 0x0000472b 
+ 00018534  0x00003bcc nbranch  0x00004868 , 0x00000034 
+ 00018535  0x00003bcd branch  0x000059c7 
+ 00018536  0x00003bd0 jam  0x00000002 , 0x000045a0 
+ 00018537  0x00003bd1 fetch  0x00000001 , 0x00004721 
+ 00018538  0x00003bd2 beq  0x00000008 , 0x0000486d 
+ 00018539  0x00003bd3 arg  0x0000000a , 0x00000011 
+ 00018540  0x00003bd4 branch  0x00006852 
+ 00018541  0x00003bd7 store  0x00000001 , 0x000049b8 
+ 00018542  0x00003bd8 arg  0x0000000f , 0x00000011 
+ 00018543  0x00003bd9 arg  0x000049b8 , 0x00000012 
+ 00018544  0x00003bda rtn 
+ 00018545  0x00003bde bpatch  0x00000065 , 0x0000400c 
+ 00018546  0x00003bdf fetch  0x00000008 , 0x0000488e 
+ 00018547  0x00003be0 rtnbit0  0x00000015 
+ 00018548  0x00003be1 branch  0x00006888 
+ 00018549  0x00003be5 bpatch  0x00000066 , 0x0000400c 
+ 00018550  0x00003be6 call  0x00002a06 
+ 00018551  0x00003be7 nrtn  0x00000034 
+ 00018552  0x00003be8 fetch  0x00000001 , 0x0000474f 
+ 00018553  0x00003be9 beq  0x000000ff , 0x0000487d 
+ 00018554  0x00003bea fetch  0x00000001 , 0x00004882 
+ 00018555  0x00003beb and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00018556  0x00003bec rtnne  0x00000003 
+ 00018557  0x00003bee fetch  0x00000008 , 0x0000488e 
+ 00018558  0x00003bef bbit1  0x00000000 , 0x00006824 
+ 00018559  0x00003bf0 bbit1  0x00000003 , 0x00006824 
+ 00018560  0x00003bf1 bbit1  0x00000004 , 0x00006824 
+ 00018561  0x00003bf2 call  0x0000469d 
+ 00018562  0x00003bf3 nrtn  0x00000028 
+ 00018563  0x00003bf4 call  0x00004fd1 
+ 00018564  0x00003bf5 branch  0x0000683c 
+ 00018565  0x00003bf8 jam  0x0000000e , 0x00004773 
+ 00018566  0x00003bf9 fetcht  0x00000002 , 0x0000439f 
+ 00018567  0x00003bfa fetch  0x00000001 , 0x00004773 
+ 00018568  0x00003bfb copy  0x0000003f , 0x00000011 
+ 00018569  0x00003bfc call  0x00002dcc 
+ 00018570  0x00003bfd fetcht  0x00000001 , 0x00004773 
+ 00018571  0x00003bfe copy  0x00000002 , 0x00000039 
+ 00018572  0x00003bff arg  0x000049b9 , 0x00000006 
+ 00018573  0x00003c00 branch  0x00007cdc 
+ 00018574  0x00003c03 jam  0x00000009 , 0x00004773 
+ 00018575  0x00003c04 fetch  0x00000008 , 0x0000488e 
+ 00018576  0x00003c05 bbit1  0x00000022 , 0x00006831 
+ 00018577  0x00003c06 jam  0x00000008 , 0x00004773 
+ 00018578  0x00003c07 branch  0x00006831 
+ 00018579  0x00003c0a call  0x000041c9 
+ 00018580  0x00003c0b jam  0x00000000 , 0x0000473d 
+ 00018581  0x00003c0c jam  0x00000001 , 0x00004753 
+ 00018582  0x00003c0d call  0x00005960 
+ 00018583  0x00003c0e fetch  0x00000001 , 0x00004754 
+ 00018584  0x00003c0f nbranch  0x0000489a , 0x00000034 
+ 00018585  0x00003c10 jam  0x00000014 , 0x00004755 
+ 00018586  0x00003c12 fetch  0x00000002 , 0x000043fa 
+ 00018587  0x00003c13 set0  0x00000000 , 0x0000003f 
+ 00018588  0x00003c14 store  0x00000002 , 0x000043fa 
+ 00018589  0x00003c15 jam  0x00000000 , 0x00004720 
+ 00018590  0x00003c16 fetch  0x00000002 , 0x0000477d 
+ 00018591  0x00003c17 store  0x00000002 , 0x0000477f 
+ 00018592  0x00003c18 call  0x00005535 
+ 00018593  0x00003c19 branch  0x000048e9 
+ 00018594  0x00003c1d setarg  0x00000000 
+ 00018595  0x00003c1e store  0x00000002 , 0x0000477f 
+ 00018596  0x00003c1f store  0x00000001 , 0x0000490c 
+ 00018597  0x00003c20 store  0x00000001 , 0x0000490d 
+ 00018598  0x00003c21 store  0x00000001 , 0x00004753 
+ 00018599  0x00003c23 jam  0x00000000 , 0x00004781 
+ 00018600  0x00003c24 call  0x000029aa 
+ 00018601  0x00003c25 jam  0x00000000 , 0x0000429c 
+ 00018602  0x00003c26 branch  0x000048ab 
+ 00018603  0x00003c28 fetch  0x00000002 , 0x000043f8 
+ 00018604  0x00003c29 bbit1  0x00000007 , 0x000048af 
+ 00018605  0x00003c2a bbit1  0x00000000 , 0x00003771 
+ 00018606  0x00003c2b branch  0x000048c5 
+ 00018607  0x00003c2d jam  0x00000000 , 0x00004882 
+ 00018608  0x00003c2e fetch  0x00000002 , 0x000043f8 
+ 00018609  0x00003c2f bbit1  0x00000000 , 0x00003771 
+ 00018610  0x00003c30 branch  0x000047af 
+ 00018611  0x00003c33 fetch  0x00000001 , 0x00004754 
+ 00018612  0x00003c34 beq  0x00000001 , 0x000048b8 
+ 00018613  0x00003c35 jam  0x00000014 , 0x00004883 
+ 00018614  0x00003c36 jam  0x00000005 , 0x0000490e 
+ 00018615  0x00003c37 branch  0x0000540f 
+ 00018616  0x00003c39 call  0x00005408 
+ 00018617  0x00003c3a jam  0x00000005 , 0x00004883 
+ 00018618  0x00003c3b branch  0x0000540f 
+ 00018619  0x00003c3e fetch  0x00000001 , 0x0000490c 
+ 00018620  0x00003c3f nrtn  0x00000034 
+ 00018621  0x00003c40 jam  0x00000001 , 0x0000490c 
+ 00018622  0x00003c41 jam  0x0000001e , 0x0000490d 
+ 00018623  0x00003c42 rtn 
+ 00018624  0x00003c45 isolate1  0x00000026 , 0x00000000 
+ 00018625  0x00003c46 call  0x00004804 , 0x00000001 
+ 00018626  0x00003c47 call  0x000053c6 
+ 00018627  0x00003c48 jam  0x00000000 , 0x00004882 
+ 00018628  0x00003c49 branch  0x000048c5 
+ 00018629  0x00003c4c bpatch  0x00000067 , 0x0000400c 
+ 00018630  0x00003c4d call  0x00004163 
+ 00018631  0x00003c4e setarg  0x00000000 
+ 00018632  0x00003c4f store  0x00000002 , 0x0000477f 
+ 00018633  0x00003c50 store  0x00000002 , 0x00004aa3 
+ 00018634  0x00003c51 jam  0x000000ff , 0x00004aa1 
+ 00018635  0x00003c53 fetch  0x00000002 , 0x00004500 
+ 00018636  0x00003c54 isolate1  0x0000000b , 0x0000003f 
+ 00018637  0x00003c55 call  0x00005565 , 0x00000001 
+ 00018638  0x00003c56 call  0x000053c1 
+ 00018639  0x00003c57 fetch  0x00000002 , 0x00004500 
+ 00018640  0x00003c58 bbit1  0x0000000b , 0x000048d9 
+ 00018641  0x00003c59 fetch  0x00000008 , 0x0000488e 
+ 00018642  0x00003c5a bbit0  0x00000018 , 0x000048d9 
+ 00018643  0x00003c5b fetcht  0x00000002 , 0x000046a7 
+ 00018644  0x00003c5c increase  0x00000001 , 0x00000002 
+ 00018645  0x00003c5d storet  0x00000002 , 0x000046a7 
+ 00018646  0x00003c5e storet  0x00000002 , 0x000042de 
+ 00018647  0x00003c5f random  0x0000003f 
+ 00018648  0x00003c60 store  0x00000001 , 0x000042dd 
+ 00018649  0x00003c62 fetch  0x00000003 , 0x00004756 
+ 00018650  0x00003c63 store  0x00000003 , 0x000042e0 
+ 00018651  0x00003c64 call  0x000037a2 
+ 00018652  0x00003c65 fetch  0x00000002 , 0x0000464f 
+ 00018653  0x00003c66 store  0x00000002 , 0x00004750 
+ 00018654  0x00003c67 setarg  0x00000000 
+ 00018655  0x00003c68 store  0x00000002 , 0x00004741 
+ 00018656  0x00003c69 store  0x00000002 , 0x0000477f 
+ 00018657  0x00003c6a store  0x00000001 , 0x00004720 
+ 00018658  0x00003c6b arg  0x00000001 , 0x00000007 
+ 00018659  0x00003c6c call  0x00004a25 
+ 00018660  0x00003c6d call  0x00004a2f 
+ 00018661  0x00003c6e branch  0x00005455 
+ 00018662  0x00003c71 fetch  0x00000002 , 0x00004500 
+ 00018663  0x00003c72 bbit1  0x00000009 , 0x00003794 
+ 00018664  0x00003c73 branch  0x000048e9 
+ 00018665  0x00003c76 bpatch  0x00000068 , 0x0000400d 
+ 00018666  0x00003c77 setarg  0x00000000 
+ 00018667  0x00003c78 store  0x00000002 , 0x00004750 
+ 00018668  0x00003c79 arg  0x00000004 , 0x00000007 
+ 00018669  0x00003c7a call  0x00004a29 
+ 00018670  0x00003c7b call  0x00005565 
+ 00018671  0x00003c7c fetch  0x00000001 , 0x00004ac2 
+ 00018672  0x00003c7d branch  0x00004163 , 0x00000034 
+ 00018673  0x00003c7e rtn 
+ 00018674  0x00003c81 bpatch  0x00000069 , 0x0000400d 
+ 00018675  0x00003c82 fetch  0x00000008 , 0x0000488e 
+ 00018676  0x00003c83 rtnbit0  0x00000001 
+ 00018677  0x00003c84 arg  0x00000001 , 0x00000007 
+ 00018678  0x00003c85 call  0x00004a29 
+ 00018679  0x00003c86 call  0x000067e4 
+ 00018680  0x00003c87 call  0x000067c1 
+ 00018681  0x00003c88 fetch  0x00000001 , 0x00004aa2 
+ 00018682  0x00003c89 set1  0x00000001 , 0x0000003f 
+ 00018683  0x00003c8a store  0x00000001 , 0x00004aa2 
+ 00018684  0x00003c8b branch  0x000044b9 
+ 00018685  0x00003c8f jam  0x00000001 , 0x000048fe 
+ 00018686  0x00003c90 arg  0x00000017 , 0x00000011 
+ 00018687  0x00003c91 arg  0x00000004 , 0x00000012 
+ 00018688  0x00003c92 call  0x000029d9 
+ 00018689  0x00003c93 setarg  0x00000006 
+ 00018690  0x00003c94 istore  0x00000001 , 0x00000005 
+ 00018691  0x00003c95 setarg  0x00000001 
+ 00018692  0x00003c96 istore  0x00000002 , 0x00000005 
+ 00018693  0x00003c97 setarg  0x0000ffff 
+ 00018694  0x00003c98 istore  0x00000002 , 0x00000005 
+ 00018695  0x00003c99 setarg  0x00002800 
+ 00018696  0x00003c9a istore  0x00000002 , 0x00000005 
+ 00018697  0x00003c9b arg  0x000048ee , 0x00000006 
+ 00018698  0x00003c9c branch  0x00007c91 
+ 00018699  0x00003c9f bpatch  0x0000006a , 0x0000400d 
+ 00018700  0x00003ca0 copy  0x00000011 , 0x00000006 
+ 00018701  0x00003ca1 ifetch  0x00000003 , 0x00000006 
+ 00018702  0x00003ca2 store  0x00000003 , 0x0000439b 
+ 00018703  0x00003ca3 beq  0x00000001 , 0x00004919 
+ 00018704  0x00003ca4 beq  0x00000007 , 0x0000495c 
+ 00018705  0x00003ca5 beq  0x00000009 , 0x00004938 
+ 00018706  0x00003ca6 beq  0x0000000b , 0x00004952 
+ 00018707  0x00003ca7 beq  0x00000008 , 0x00004971 
+ 00018708  0x00003ca8 beq  0x0000000c , 0x00004986 
+ 00018709  0x00003ca9 beq  0x0000000a , 0x0000499f 
+ 00018710  0x00003caa beq  0x00000012 , 0x000049c5 
+ 00018711  0x00003cab beq  0x00000052 , 0x000049cb 
+ 00018712  0x00003cac branch  0x00002b76 
+ 00018713  0x00003cb0 fetch  0x00000001 , 0x000048fe 
+ 00018714  0x00003cb1 rtn  0x00000034 
+ 00018715  0x00003cb2 fetch  0x00000001 , 0x000048fe 
+ 00018716  0x00003cb3 beq  0x00000002 , 0x00004962 
+ 00018717  0x00003cb4 jam  0x00000002 , 0x000048fe 
+ 00018718  0x00003cb5 arg  0x00000009 , 0x00000011 
+ 00018719  0x00003cb6 arg  0x00000004 , 0x00000012 
+ 00018720  0x00003cb7 call  0x000029d9 
+ 00018721  0x00003cb8 setarg  0x00000006 
+ 00018722  0x00003cb9 istore  0x00000001 , 0x00000005 
+ 00018723  0x00003cba setarg  0x00000001 
+ 00018724  0x00003cbb istore  0x00000002 , 0x00000005 
+ 00018725  0x00003cbc setarg  0x0000ffff 
+ 00018726  0x00003cbd istore  0x00000002 , 0x00000005 
+ 00018727  0x00003cbe setarg  0x00002800 
+ 00018728  0x00003cbf istore  0x00000002 , 0x00000005 
+ 00018729  0x00003cc0 arg  0x00000002 , 0x00000039 
+ 00018730  0x00003cc1 arg  0x000048ff , 0x00000006 
+ 00018731  0x00003cc2 branch  0x00007cdc 
+ 00018732  0x00003cc5 arg  0x00000007 , 0x00000011 
+ 00018733  0x00003cc6 arg  0x00000004 , 0x00000012 
+ 00018734  0x00003cc7 call  0x000029d9 
+ 00018735  0x00003cc8 setarg  0x00000008 
+ 00018736  0x00003cc9 istore  0x00000001 , 0x00000005 
+ 00018737  0x00003cca fetcht  0x00000002 , 0x0000433b 
+ 00018738  0x00003ccb increase  0x00000005 , 0x00000002 
+ 00018739  0x00003ccc ifetch  0x00000004 , 0x00000002 
+ 00018740  0x00003ccd istore  0x00000004 , 0x00000005 
+ 00018741  0x00003cce setarg  0x00002803 
+ 00018742  0x00003ccf istore  0x00000002 , 0x00000005 
+ 00018743  0x00003cd0 rtn 
+ 00018744  0x00003cd3 fetch  0x00000001 , 0x000048fe 
+ 00018745  0x00003cd4 rtn  0x00000034 
+ 00018746  0x00003cd5 fetch  0x00000002 , 0x00004337 
+ 00018747  0x00003cd6 increase  0xfffffffe , 0x0000003f 
+ 00018748  0x00003cd7 div  0x0000003f , 0x00000007 
+ 00018749  0x00003cd8 call  0x00007d64 
+ 00018750  0x00003cd9 quotient  0x00000039 
+ 00018751  0x00003cda fetch  0x00000002 , 0x0000433b 
+ 00018752  0x00003cdb add  0x0000003f , 0x00000006 , 0x00000006 
+ 00018753  0x00003cdd increase  0x00000003 , 0x00000006 
+ 00018754  0x00003cde ifetch  0x00000002 , 0x00000006 
+ 00018755  0x00003cdf copy  0x0000003f , 0x00000013 
+ 00018756  0x00003ce0 ifetch  0x00000002 , 0x00000006 
+ 00018757  0x00003ce1 arg  0x00002a29 , 0x00000002 
+ 00018758  0x00003ce2 isub  0x00000002 , 0x0000003e 
+ 00018759  0x00003ce3 branch  0x0000494a , 0x00000005 
+ 00018760  0x00003ce4 loop  0x00004941 
+ 00018761  0x00003ce5 branch  0x00004962 
+ 00018762  0x00003ce7 arg  0x00000003 , 0x00000011 
+ 00018763  0x00003ce8 arg  0x00000004 , 0x00000012 
+ 00018764  0x00003ce9 call  0x000029d9 
+ 00018765  0x00003cea setarg  0x0000000a 
+ 00018766  0x00003ceb istore  0x00000001 , 0x00000005 
+ 00018767  0x00003cec copy  0x00000013 , 0x0000003f 
+ 00018768  0x00003ced istore  0x00000002 , 0x00000005 
+ 00018769  0x00003cee rtn 
+ 00018770  0x00003cf1 fetch  0x00000001 , 0x000048fe 
+ 00018771  0x00003cf2 rtn  0x00000034 
+ 00018772  0x00003cf3 fetch  0x00000002 , 0x00004337 
+ 00018773  0x00003cf4 arg  0x00000009 , 0x00000039 
+ 00018774  0x00003cf5 fetch  0x00000002 , 0x0000433b 
+ 00018775  0x00003cf6 add  0x0000003f , 0x00000005 , 0x00000011 
+ 00018776  0x00003cf7 arg  0x00004901 , 0x00000012 
+ 00018777  0x00003cf8 call  0x00007d66 
+ 00018778  0x00003cf9 branch  0x00004965 , 0x00000005 
+ 00018779  0x00003cfa branch  0x00004962 
+ 00018780  0x00003cfd fetch  0x00000001 , 0x000048fe 
+ 00018781  0x00003cfe rtn  0x00000034 
+ 00018782  0x00003cff fetch  0x00000001 , 0x000048fe 
+ 00018783  0x00003d00 beq  0x00000002 , 0x0000492c 
+ 00018784  0x00003d02 jam  0x00000002 , 0x00004aa1 
+ 00018785  0x00003d03 branch  0x00004966 
+ 00018786  0x00003d05 fetch  0x00000001 , 0x000042cd 
+ 00018787  0x00003d06 store  0x00000001 , 0x00004aa1 
+ 00018788  0x00003d07 branch  0x00004966 
+ 00018789  0x00003d09 jam  0x00000003 , 0x00004aa1 
+ 00018790  0x00003d0b jam  0x00000000 , 0x000048fe 
+ 00018791  0x00003d0c fetch  0x00000008 , 0x0000488e 
+ 00018792  0x00003d0d bbit0  0x0000000f , 0x0000496d 
+ 00018793  0x00003d0e jam  0x00000001 , 0x00004aa4 
+ 00018794  0x00003d0f fetch  0x00000001 , 0x00004aa3 
+ 00018795  0x00003d10 rtn  0x00000034 
+ 00018796  0x00003d11 branch  0x00003fee 
+ 00018797  0x00003d14 fetch  0x00000001 , 0x00004aa2 
+ 00018798  0x00003d15 set1  0x00000004 , 0x0000003f 
+ 00018799  0x00003d16 store  0x00000001 , 0x00004aa2 
+ 00018800  0x00003d17 branch  0x000044b9 
+ 00018801  0x00003d1a call  0x00002e1f 
+ 00018802  0x00003d1b call  0x00002e28 
+ 00018803  0x00003d1d fetcht  0x00000002 , 0x0000068f 
+ 00018804  0x00003d1e storet  0x00000002 , 0x00000656 
+ 00018805  0x00003d1f call  0x00002ca5 
+ 00018806  0x00003d20 call  0x00002cb0 
+ 00018807  0x00003d21 increase  0xfffffffe , 0x00000006 
+ 00018808  0x00003d22 copy  0x00000006 , 0x0000003f 
+ 00018809  0x00003d23 store  0x00000002 , 0x000006a5 
+ 00018810  0x00003d25 fetcht  0x00000002 , 0x00000694 
+ 00018811  0x00003d26 setarg  0x00002a50 
+ 00018812  0x00003d27 isub  0x00000002 , 0x0000003e 
+ 00018813  0x00003d28 branch  0x0000497f , 0x00000005 
+ 00018814  0x00003d29 branch  0x00002c2d 
+ 00018815  0x00003d2b fetch  0x00000001 , 0x000048ce 
+ 00018816  0x00003d2c branch  0x00002c2d , 0x00000034 
+ 00018817  0x00003d2d call  0x00002cbe 
+ 00018818  0x00003d2e branch  0x00002de1 , 0x00000034 
+ 00018819  0x00003d2f arg  0x000048cf , 0x00000006 
+ 00018820  0x00003d30 force  0x0000000b , 0x0000003f 
+ 00018821  0x00003d31 branch  0x00002c83 
+ 00018822  0x00003d34 ifetch  0x00000002 , 0x00000006 
+ 00018823  0x00003d35 store  0x00000002 , 0x00000693 
+ 00018824  0x00003d36 iforce  0x00000011 
+ 00018825  0x00003d37 fetcht  0x00000002 , 0x0000439c 
+ 00018826  0x00003d38 fetch  0x00000002 , 0x00004334 
+ 00018827  0x00003d39 isub  0x00000002 , 0x0000003e 
+ 00018828  0x00003d3a nbranch  0x00002d2e , 0x00000005 
+ 00018829  0x00003d3b fetch  0x00000002 , 0x00000693 
+ 00018830  0x00003d3c sub  0x0000003f , 0x00000042 , 0x0000003e 
+ 00018831  0x00003d3d nbranch  0x00004999 , 0x00000005 
+ 00018832  0x00003d3f setarg  0x00000017 
+ 00018833  0x00003d40 copy  0x0000003f , 0x00000011 
+ 00018834  0x00003d41 copy  0x0000003f , 0x00000013 
+ 00018835  0x00003d42 call  0x00002dee 
+ 00018836  0x00003d43 setarg  0x0000000d 
+ 00018837  0x00003d44 istore  0x00000001 , 0x00000005 
+ 00018838  0x00003d45 arg  0x000048d8 , 0x00000006 
+ 00018839  0x00003d46 add  0x00000013 , 0xffffffff , 0x00000039 
+ 00018840  0x00003d47 branch  0x00007cce 
+ 00018841  0x00003d4a fetch  0x00000008 , 0x0000488e 
+ 00018842  0x00003d4b bbit1  0x00000023 , 0x00002d2e 
+ 00018843  0x00003d4c fetch  0x00000002 , 0x000048d6 
+ 00018844  0x00003d4d copy  0x0000003f , 0x00000006 
+ 00018845  0x00003d4e ifetch  0x00000002 , 0x00000006 
+ 00018846  0x00003d4f branch  0x00002d31 
+ 00018847  0x00003d52 fetcht  0x00000002 , 0x0000439c 
+ 00018848  0x00003d53 fetch  0x00000001 , 0x00004323 
+ 00018849  0x00003d54 bbit1  0x00000003 , 0x000049bf 
+ 00018850  0x00003d57 fetch  0x00000008 , 0x0000488e 
+ 00018851  0x00003d58 bbit0  0x0000000b , 0x000049a5 
+ 00018852  0x00003d59 bbit0  0x00000019 , 0x000049a7 
+ 00018853  0x00003d5a fetch  0x00000002 , 0x0000439c 
+ 00018854  0x00003d5b beq  0x00000030 , 0x00002de1 
+ 00018855  0x00003d5d fetch  0x00000002 , 0x0000439c 
+ 00018856  0x00003d5e beq  0x00000005 , 0x000049b7 
+ 00018857  0x00003d5f beq  0x00000010 , 0x000049ba 
+ 00018858  0x00003d61 fetcht  0x00000002 , 0x0000439c 
+ 00018859  0x00003d62 fetch  0x00000008 , 0x0000488e 
+ 00018860  0x00003d63 bbit1  0x00000023 , 0x00002cfb 
+ 00018861  0x00003d64 fetch  0x00000002 , 0x00004334 
+ 00018862  0x00003d65 isub  0x00000002 , 0x0000003e 
+ 00018863  0x00003d66 nbranch  0x00002cfb , 0x00000005 
+ 00018864  0x00003d67 call  0x00002e24 
+ 00018865  0x00003d68 fetcht  0x00000002 , 0x000048d6 
+ 00018866  0x00003d69 copy  0x00000002 , 0x00000006 
+ 00018867  0x00003d6a ifetcht  0x00000002 , 0x00000006 
+ 00018868  0x00003d6b increase  0x00000001 , 0x00000002 
+ 00018869  0x00003d6c call  0x00007db2 
+ 00018870  0x00003d6d branch  0x00002d0b 
+ 00018871  0x00003d70 arg  0x0000490a , 0x00000006 
+ 00018872  0x00003d71 force  0x00000003 , 0x0000003f 
+ 00018873  0x00003d72 branch  0x00002d0b 
+ 00018874  0x00003d75 fetch  0x00000001 , 0x000048ce 
+ 00018875  0x00003d76 branch  0x000049aa , 0x00000034 
+ 00018876  0x00003d77 arg  0x000048cf , 0x00000006 
+ 00018877  0x00003d78 force  0x00000008 , 0x0000003f 
+ 00018878  0x00003d79 branch  0x00002d0b 
+ 00018879  0x00003d7c fetch  0x00000002 , 0x00004334 
+ 00018880  0x00003d7d isub  0x00000002 , 0x0000003e 
+ 00018881  0x00003d7e nbranch  0x000049a2 , 0x00000005 
+ 00018882  0x00003d7f call  0x00002da5 
+ 00018883  0x00003d80 nbranch  0x000049a7 , 0x00000028 
+ 00018884  0x00003d81 branch  0x00002d24 
+ 00018885  0x00003d84 copy  0x00000006 , 0x00000011 
+ 00018886  0x00003d85 fetch  0x00000002 , 0x00004337 
+ 00018887  0x00003d86 add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00018888  0x00003d87 call  0x00002908 
+ 00018889  0x00003d88 call  0x000049cc 
+ 00018890  0x00003d89 branch  0x00006878 
+ 00018891  0x00003d8c call  0x00002dc8 
+ 00018892  0x00003d8d fetch  0x00000001 , 0x0000474f 
+ 00018893  0x00003d8e beq  0x000000ff , 0x000049d1 
+ 00018894  0x00003d8f fetch  0x00000002 , 0x0000439c 
+ 00018895  0x00003d90 beq  0x00000025 , 0x000049d4 
+ 00018896  0x00003d91 rtn 
+ 00018897  0x00003d93 fetch  0x00000002 , 0x0000439c 
+ 00018898  0x00003d94 beq  0x00000021 , 0x000049d4 
+ 00018899  0x00003d95 rtn 
+ 00018900  0x00003d98 fetch  0x00000001 , 0x00000055 
+ 00018901  0x00003d99 store  0x00000001 , 0x0000470d 
+ 00018902  0x00003d9a rtn 
+ 00018903  0x00003d9e fetch  0x00000008 , 0x0000488e 
+ 00018904  0x00003d9f rtnbit0  0x0000000c 
+ 00018905  0x00003da0 call  0x000049db 
+ 00018906  0x00003da1 branch  0x000049ec 
+ 00018907  0x00003da4 fetch  0x00000009 , 0x00004ad1 
+ 00018908  0x00003da5 store  0x00000009 , 0x0000083a 
+ 00018909  0x00003da6 setarg  0x000049e1 
+ 00018910  0x00003da7 store  0x00000002 , 0x00000837 
+ 00018911  0x00003da8 jam  0x0000005a , 0x00004ace 
+ 00018912  0x00003da9 rtn 
+ 00018913  0x00003dac jam  0x0000005a , 0x00004677 
+ 00018914  0x00003dad jam  0x00000001 , 0x00000839 
+ 00018915  0x00003dae call  0x00007956 
+ 00018916  0x00003daf call  0x000049e7 
+ 00018917  0x00003db0 fetch  0x00000001 , 0x00004677 
+ 00018918  0x00003db1 branch  0x00003d2a 
+ 00018919  0x00003db4 fetch  0x00000001 , 0x0000083a 
+ 00018920  0x00003db5 rtn  0x00000034 
+ 00018921  0x00003db6 fetch  0x00000001 , 0x00004677 
+ 00018922  0x00003db7 beq  0x0000005a , 0x00003d27 
+ 00018923  0x00003db8 branch  0x00003d24 
+ 00018924  0x00003dbb fetch  0x00000001 , 0x00004ace 
+ 00018925  0x00003dbc beq  0x0000005a , 0x000049f1 
+ 00018926  0x00003dbe fetch  0x00000001 , 0x00004ace 
+ 00018927  0x00003dbf store  0x00000001 , 0x00004acf 
+ 00018928  0x00003dc0 rtn 
+ 00018929  0x00003dc2 call  0x000049ee 
+ 00018930  0x00003dc3 setarg  0x00000000 
+ 00018931  0x00003dc4 store  0x00000002 , 0x000045ef 
+ 00018932  0x00003dc5 store  0x00000002 , 0x000045f5 
+ 00018933  0x00003dc6 jam  0x00000000 , 0x00004094 
+ 00018934  0x00003dc7 fetch  0x00000001 , 0x00004ad0 
+ 00018935  0x00003dc8 call  0x00007902 , 0x00000034 
+ 00018936  0x00003dc9 jam  0x00000032 , 0x00004ad0 
+ 00018937  0x00003dca rtn 
+ 00018938  0x00003dcd fetch  0x00000008 , 0x0000488e 
+ 00018939  0x00003dce rtnbit0  0x00000024 
+ 00018940  0x00003dcf fetch  0x00000001 , 0x00004678 
+ 00018941  0x00003dd0 rtnne  0x00000004 
+ 00018942  0x00003dd1 branch  0x000078f6 
+ 00018943  0x00003dd4 fetch  0x00000008 , 0x0000488e 
+ 00018944  0x00003dd5 rtnbit0  0x00000024 
+ 00018945  0x00003dd6 fetch  0x00000001 , 0x00004678 
+ 00018946  0x00003dd7 rtnne  0x00000004 
+ 00018947  0x00003dd8 fetch  0x00000001 , 0x00008c01 
+ 00018948  0x00003dd9 store  0x00000001 , 0x00004675 
+ 00018949  0x00003dda rtnbit0  0x00000007 
+ 00018950  0x00003ddb jam  0x00000000 , 0x00004ad0 
+ 00018951  0x00003ddc setarg  0x00000000 
+ 00018952  0x00003ddd store  0x00000002 , 0x00004741 
+ 00018953  0x00003dde call  0x00004804 
+ 00018954  0x00003ddf call  0x000048e6 
+ 00018955  0x00003de0 call  0x0000469d 
+ 00018956  0x00003de1 nrtn  0x00000028 
+ 00018957  0x00003de2 fetch  0x00000001 , 0x0000472b 
+ 00018958  0x00003de3 beq  0x00000001 , 0x0000685b 
+ 00018959  0x00003de4 branch  0x00006856 
+ 00018960  0x00003de7 jam  0x00000000 , 0x000008e9 
+ 00018961  0x00003de8 arg  0x00000009 , 0x00000039 
+ 00018962  0x00003de9 fetch  0x00000008 , 0x0000488e 
+ 00018963  0x00003dea bbit1  0x00000022 , 0x00007c24 
+ 00018964  0x00003deb branch  0x00007c22 
+ 00018965  0x00003dee call  0x00003d53 
+ 00018966  0x00003def jam  0x00000024 , 0x000008ea 
+ 00018967  0x00003df0 setarg  0x00000008 
+ 00018968  0x00003df1 store  0x00000001 , 0x00000911 
+ 00018969  0x00003df2 arg  0x000049b9 , 0x00000006 
+ 00018970  0x00003df3 arg  0x00000912 , 0x00000005 
+ 00018971  0x00003df4 arg  0x0000000e , 0x00000039 
+ 00018972  0x00003df5 branch  0x00007cdc 
+ 00018973  0x00003df9 fetch  0x00000001 , 0x0000064d 
+ 00018974  0x00003dfa arg  0x00000008 , 0x00000039 
+ 00018975  0x00003dfb arg  0x000044ea , 0x00000006 
+ 00018976  0x00003dfd ifetcht  0x00000001 , 0x00000006 
+ 00018977  0x00003dfe isub  0x00000002 , 0x0000003e 
+ 00018978  0x00003dff rtn  0x00000005 
+ 00018979  0x00003e00 loop  0x00004a20 
+ 00018980  0x00003e01 branch  0x0000781c 
+ 00018981  0x00003e04 fetch  0x00000008 , 0x0000488e 
+ 00018982  0x00003e05 qset1  0x0000003f 
+ 00018983  0x00003e06 store  0x00000008 , 0x0000488e 
+ 00018984  0x00003e07 rtn 
+ 00018985  0x00003e09 fetch  0x00000008 , 0x0000488e 
+ 00018986  0x00003e0a qset0  0x0000003f 
+ 00018987  0x00003e0b store  0x00000008 , 0x0000488e 
+ 00018988  0x00003e0c rtn 
+ 00018989  0x00003e0f arg  0x00000003 , 0x00000007 
+ 00018990  0x00003e10 branch  0x00004a25 
+ 00018991  0x00003e12 arg  0x00000003 , 0x00000007 
+ 00018992  0x00003e13 branch  0x00004a29 
+ 00018993  0x00003e19 branch  0x00004a43 , 0x0000002b 
+ 00018994  0x00003e1b call  0x00002931 
+ 00018995  0x00003e1c setarg  0x00004a5e 
+ 00018996  0x00003e1d store  0x00000002 , 0x000043e4 
+ 00018997  0x00003e1e setarg  0x00004a61 
+ 00018998  0x00003e1f store  0x00000002 , 0x000043e6 
+ 00018999  0x00003e20 setarg  0x00004a5a 
+ 00019000  0x00003e21 store  0x00000002 , 0x000043dc 
+ 00019001  0x00003e22 setarg  0x00004b0a 
+ 00019002  0x00003e23 store  0x00000002 , 0x000043ea 
+ 00019003  0x00003e24 setarg  0x00004ce1 
+ 00019004  0x00003e25 store  0x00000002 , 0x000043e8 
+ 00019005  0x00003e26 setarg  0x00004cf2 
+ 00019006  0x00003e27 store  0x00000002 , 0x000043ec 
+ 00019007  0x00003e29 bpatch  0x0000006c , 0x0000400d 
+ 00019008  0x00003e2a call  0x00004a43 
+ 00019009  0x00003e2b call  0x00004a55 
+ 00019010  0x00003e2c branch  0x00004c6c 
+ 00019011  0x00003e2f fetch  0x00000001 , 0x00008060 
+ 00019012  0x00003e30 set0  0x00000000 , 0x0000003f 
+ 00019013  0x00003e31 store  0x00000001 , 0x00008060 
+ 00019014  0x00003e32 fetch  0x00000008 , 0x00004517 
+ 00019015  0x00003e33 call  0x00006d5b 
+ 00019016  0x00003e34 fetch  0x00000002 , 0x0000451f 
+ 00019017  0x00003e35 call  0x00006d66 
+ 00019018  0x00003e36 call  0x00006d75 
+ 00019019  0x00003e37 jam  0x00000008 , 0x00008077 
+ 00019020  0x00003e38 jam  0x00000049 , 0x00008076 
+ 00019021  0x00003e39 jam  0x0000000a , 0x00008079 
+ 00019022  0x00003e3a jam  0x0000000b , 0x0000807a 
+ 00019023  0x00003e3c arg  0x00000081 , 0x00000002 
+ 00019024  0x00003e3d fetch  0x00000002 , 0x00004526 
+ 00019025  0x00003e3e isolate1  0x00000000 , 0x0000003f 
+ 00019026  0x00003e3f setflag  0x00000001 , 0x00000004 , 0x00000002 
+ 00019027  0x00003e40 storet  0x00000001 , 0x00008060 
+ 00019028  0x00003e41 rtn 
+ 00019029  0x00003e49 fetcht  0x00000001 , 0x0000450c 
+ 00019030  0x00003e4a call  0x00006ef1 
+ 00019031  0x00003e4b call  0x00004a84 
+ 00019032  0x00003e4c fetcht  0x00000001 , 0x0000450a 
+ 00019033  0x00003e4d branch  0x00006ed7 
+ 00019034  0x00003e50 fetcht  0x00000001 , 0x0000450a 
+ 00019035  0x00003e51 call  0x00006ee0 
+ 00019036  0x00003e52 nbranch  0x0000377f , 0x00000001 
+ 00019037  0x00003e53 branch  0x0000377d 
+ 00019038  0x00003e57 call  0x00006935 
+ 00019039  0x00003e58 nrtn  0x00000034 
+ 00019040  0x00003e59 branch  0x00004a86 
+ 00019041  0x00003e5d copy  0x00000013 , 0x0000003f 
+ 00019042  0x00003e5e beq  0x00000014 , 0x00004a73 
+ 00019043  0x00003e5f beq  0x00000015 , 0x00004a6f 
+ 00019044  0x00003e60 beq  0x00000030 , 0x00004ca6 
+ 00019045  0x00003e61 beq  0x00000031 , 0x00004ca8 
+ 00019046  0x00003e62 beq  0x00000032 , 0x00004cb2 
+ 00019047  0x00003e63 beq  0x00000033 , 0x00004cb0 
+ 00019048  0x00003e64 beq  0x00000034 , 0x00004ca0 
+ 00019049  0x00003e65 beq  0x0000003d , 0x00004c80 
+ 00019050  0x00003e66 beq  0x00000041 , 0x00004a79 
+ 00019051  0x00003e67 beq  0x00000042 , 0x00004a7b 
+ 00019052  0x00003e68 beq  0x00000043 , 0x00004c9e 
+ 00019053  0x00003e69 beq  0x0000003b , 0x00004c89 
+ 00019054  0x00003e6a rtn 
+ 00019055  0x00003e6f call  0x000029aa 
+ 00019056  0x00003e70 jam  0x00000000 , 0x00004528 
+ 00019057  0x00003e71 call  0x00004a77 
+ 00019058  0x00003e72 branch  0x00004c52 
+ 00019059  0x00003e79 call  0x00004a7e 
+ 00019060  0x00003e7a fetch  0x00000001 , 0x00004515 
+ 00019061  0x00003e7b store  0x00000001 , 0x000040c0 
+ 00019062  0x00003e7c branch  0x00004c50 
+ 00019063  0x00003e81 call  0x00004ad3 
+ 00019064  0x00003e82 branch  0x00004a7c 
+ 00019065  0x00003e86 call  0x000030d1 
+ 00019066  0x00003e87 branch  0x00002eb3 
+ 00019067  0x00003e8a branch  0x00004cc2 
+ 00019068  0x00003e8e fetcht  0x00000001 , 0x0000450c 
+ 00019069  0x00003e8f branch  0x00006ef1 
+ 00019070  0x00003e92 call  0x00004a80 
+ 00019071  0x00003e93 branch  0x00004a84 
+ 00019072  0x00003e96 fetch  0x00000001 , 0x0000450f 
+ 00019073  0x00003e97 isolate1  0x00000001 , 0x0000003f 
+ 00019074  0x00003e98 call  0x0000378a , 0x00000001 
+ 00019075  0x00003e99 rtn 
+ 00019076  0x00003e9b fetcht  0x00000001 , 0x0000450c 
+ 00019077  0x00003e9c branch  0x00006eed 
+ 00019078  0x00003ea0 fetch  0x00000001 , 0x0000810b 
+ 00019079  0x00003ea1 rtnbit1  0x00000002 
+ 00019080  0x00003ea2 call  0x00006d89 
+ 00019081  0x00003ea3 ifetch  0x00000001 , 0x00000003 
+ 00019082  0x00003ea4 bne  0x00000001 , 0x00004a9c 
+ 00019083  0x00003ea5 fetch  0x00000002 , 0x00008112 
+ 00019084  0x00003ea6 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00019085  0x00003ea7 rtn  0x00000002 
+ 00019086  0x00003ea8 ifetch  0x00000001 , 0x00000003 
+ 00019087  0x00003ea9 store  0x00000001 , 0x000006c0 
+ 00019088  0x00003eaa ifetcht  0x00000001 , 0x00000003 
+ 00019089  0x00003eab copy  0x00000003 , 0x00000011 
+ 00019090  0x00003eac storet  0x00000001 , 0x000006c1 
+ 00019091  0x00003ead add  0x00000002 , 0x00000003 , 0x00000002 
+ 00019092  0x00003eae fetch  0x00000002 , 0x00008112 
+ 00019093  0x00003eaf isub  0x00000002 , 0x00000002 
+ 00019094  0x00003eb0 nrtn  0x00000002 
+ 00019095  0x00003eb1 jam  0x00000001 , 0x000006c2 
+ 00019096  0x00003eb2 call  0x00004aaa 
+ 00019097  0x00003eb3 fetch  0x00000001 , 0x000006c2 
+ 00019098  0x00003eb4 rtneq  0x00000000 
+ 00019099  0x00003eb5 branch  0x00004aa5 
+ 00019100  0x00003eb8 call  0x00007c97 
+ 00019101  0x00003eb9 call  0x00004c8f 
+ 00019102  0x00003eba branch  0x00004a9f 
+ 00019103  0x00003ebe bpatch  0x0000006d , 0x0000400d 
+ 00019104  0x00003ebf call  0x00006d89 
+ 00019105  0x00003ec0 fetch  0x00000002 , 0x00008112 
+ 00019106  0x00003ec1 rtn  0x00000034 
+ 00019107  0x00003ec2 iadd  0x00000003 , 0x00000003 
+ 00019108  0x00003ec3 branch  0x00004aa9 
+ 00019109  0x00003ec6 call  0x00006d89 
+ 00019110  0x00003ec7 increase  0x00000002 , 0x00000003 
+ 00019111  0x00003ec8 ifetch  0x00000001 , 0x00000003 
+ 00019112  0x00003ec9 iadd  0x00000003 , 0x00000003 
+ 00019113  0x00003ecb branch  0x00006d8f 
+ 00019114  0x00003ecf bpatch  0x0000006e , 0x0000400d 
+ 00019115  0x00003ed0 fetch  0x00000001 , 0x000006c0 
+ 00019116  0x00003ed1 beq  0x00000001 , 0x00004ac7 
+ 00019117  0x00003ed2 beq  0x00000002 , 0x00004acc 
+ 00019118  0x00003ed3 beq  0x00000004 , 0x00004ada 
+ 00019119  0x00003ed4 beq  0x00000009 , 0x00004ade 
+ 00019120  0x00003ed5 beq  0x0000000b , 0x00004b35 
+ 00019121  0x00003ed7 beq  0x0000000f , 0x00004b36 
+ 00019122  0x00003ed8 beq  0x00000010 , 0x00004b3e 
+ 00019123  0x00003ed9 beq  0x00000012 , 0x00004b42 
+ 00019124  0x00003eda beq  0x00000026 , 0x00004b46 
+ 00019125  0x00003edc beq  0x0000002a , 0x00004b4b 
+ 00019126  0x00003edd beq  0x0000002b , 0x00004b7e 
+ 00019127  0x00003ede beq  0x0000002c , 0x00004b84 
+ 00019128  0x00003edf beq  0x00000030 , 0x00004b8b 
+ 00019129  0x00003ee2 beq  0x00000033 , 0x00004b90 
+ 00019130  0x00003ee4 beq  0x00000035 , 0x00004bbd 
+ 00019131  0x00003ee5 beq  0x00000036 , 0x00004bc6 
+ 00019132  0x00003ee6 beq  0x00000037 , 0x00004bcf 
+ 00019133  0x00003ee7 beq  0x00000038 , 0x00004bd5 
+ 00019134  0x00003ee8 beq  0x00000040 , 0x00004bdd 
+ 00019135  0x00003ee9 beq  0x00000042 , 0x00004be7 
+ 00019136  0x00003eea beq  0x00000048 , 0x00004bec 
+ 00019137  0x00003eec beq  0x00000051 , 0x00004bf7 
+ 00019138  0x00003eee beq  0x00000076 , 0x00004bfb 
+ 00019139  0x00003eef beq  0x00000077 , 0x00004c01 
+ 00019140  0x00003ef0 beq  0x00000078 , 0x00004c06 
+ 00019141  0x00003ef1 beq  0x0000007a , 0x00004c3c 
+ 00019142  0x00003efc branch  0x00004c4a 
+ 00019143  0x00003f03 fetch  0x00000001 , 0x000006c1 
+ 00019144  0x00003f04 bne  0x00000006 , 0x00004c4a 
+ 00019145  0x00003f05 ifetch  0x00000006 , 0x00000003 
+ 00019146  0x00003f06 store  0x00000006 , 0x000042dd 
+ 00019147  0x00003f07 branch  0x00004c4d 
+ 00019148  0x00003f0c fetch  0x00000001 , 0x000006c1 
+ 00019149  0x00003f0d bne  0x00000001 , 0x00004c4a 
+ 00019150  0x00003f0e ifetcht  0x00000001 , 0x00000003 
+ 00019151  0x00003f0f storet  0x00000001 , 0x00004516 
+ 00019152  0x00003f10 call  0x00004c4d 
+ 00019153  0x00003f11 fetch  0x00000002 , 0x00004500 
+ 00019154  0x00003f12 rtnbit1  0x00000009 
+ 00019155  0x00003f16 fetch  0x00000001 , 0x0000450f 
+ 00019156  0x00003f17 isolate1  0x00000001 , 0x0000003f 
+ 00019157  0x00003f18 nrtn  0x00000001 
+ 00019158  0x00003f19 fetcht  0x00000001 , 0x00004516 
+ 00019159  0x00003f1a isolate1  0x00000002 , 0x00000002 
+ 00019160  0x00003f1b branch  0x0000378c , 0x00000001 
+ 00019161  0x00003f1c branch  0x0000378a 
+ 00019162  0x00003f22 arg  0x0000001d , 0x0000003f 
+ 00019163  0x00003f23 arg  0x0000426d , 0x00000005 
+ 00019164  0x00003f24 call  0x00004bc0 
+ 00019165  0x00003f25 branch  0x00002931 
+ 00019166  0x00003f2b fetch  0x00000002 , 0x00004500 
+ 00019167  0x00003f2c bbit0  0x00000009 , 0x00004c4a 
+ 00019168  0x00003f2d call  0x00004b32 
+ 00019169  0x00003f2e branch  0x00004c4a , 0x00000028 
+ 00019170  0x00003f2f jam  0x00000000 , 0x000006c2 
+ 00019171  0x00003f30 fetch  0x00000002 , 0x00004526 
+ 00019172  0x00003f31 bbit1  0x00000008 , 0x00004b03 
+ 00019173  0x00003f32 fetch  0x00000001 , 0x00004528 
+ 00019174  0x00003f33 nrtn  0x00000034 
+ 00019175  0x00003f34 jam  0x00000001 , 0x000006c2 
+ 00019176  0x00003f35 ifetch  0x00000002 , 0x00000003 
+ 00019177  0x00003f36 store  0x00000002 , 0x00004529 
+ 00019178  0x00003f37 storer  0x00000003 , 0x00000002 , 0x0000452b 
+ 00019179  0x00003f38 fetch  0x00000001 , 0x000006c1 
+ 00019180  0x00003f39 pincrease  0xfffffffe 
+ 00019181  0x00003f3a nbranch  0x00004c4a , 0x00000002 
+ 00019182  0x00003f3b branch  0x00004c4a , 0x00000005 
+ 00019183  0x00003f3c store  0x00000001 , 0x00004528 
+ 00019184  0x00003f3d fetcht  0x00000002 , 0x00004529 
+ 00019185  0x00003f3e increase  0xffffffff , 0x00000002 
+ 00019186  0x00003f3f call  0x00002cb0 
+ 00019187  0x00003f40 branch  0x00004b06 , 0x00000034 
+ 00019188  0x00003f41 ifetcht  0x00000004 , 0x00000006 
+ 00019189  0x00003f42 setarg  0x01280302 
+ 00019190  0x00003f43 isub  0x00000002 , 0x0000003e 
+ 00019191  0x00003f44 nbranch  0x00004b06 , 0x00000005 
+ 00019192  0x00003f45 ifetch  0x00000001 , 0x00000006 
+ 00019193  0x00003f46 store  0x00000001 , 0x0000452d 
+ 00019194  0x00003f47 and_into  0x00000030 , 0x0000003f 
+ 00019195  0x00003f48 branch  0x00004b06 , 0x00000034 
+ 00019196  0x00003f49 jam  0x00000000 , 0x000006c2 
+ 00019197  0x00003f4a call  0x000029a8 
+ 00019198  0x00003f4b call  0x00004b0a 
+ 00019199  0x00003f4c call  0x00004b0a 
+ 00019200  0x00003f4d call  0x00004b0a 
+ 00019201  0x00003f4e fetch  0x00000002 , 0x00004526 
+ 00019202  0x00003f4f rtnbit0  0x00000008 
+ 00019203  0x00003f51 jam  0x00000001 , 0x000006c2 
+ 00019204  0x00003f52 call  0x00004d07 
+ 00019205  0x00003f53 branch  0x00004c4d 
+ 00019206  0x00003f56 jam  0x00000000 , 0x00004528 
+ 00019207  0x00003f57 jam  0x00000001 , 0x000006c2 
+ 00019208  0x00003f58 call  0x00004d07 
+ 00019209  0x00003f59 branch  0x00004c4a 
+ 00019210  0x00003f5c fetch  0x00000001 , 0x00004528 
+ 00019211  0x00003f5d rtn  0x00000034 
+ 00019212  0x00003f5e call  0x00002a06 
+ 00019213  0x00003f5f nrtn  0x00000034 
+ 00019214  0x00003f60 call  0x00004b2d 
+ 00019215  0x00003f61 bpatch  0x0000006f , 0x0000400d 
+ 00019216  0x00003f62 fetch  0x00000002 , 0x000042e3 
+ 00019217  0x00003f63 call  0x00007db2 
+ 00019218  0x00003f64 copy  0x0000003f , 0x00000002 
+ 00019219  0x00003f65 fetch  0x00000001 , 0x0000439a 
+ 00019220  0x00003f66 rtnbit1  0x00000000 
+ 00019221  0x00003f67 add  0x00000002 , 0xfffffffd , 0x0000003f 
+ 00019222  0x00003f68 arg  0x000000fb , 0x00000002 
+ 00019223  0x00003f69 call  0x00007db2 
+ 00019224  0x00003f6a fetcht  0x00000001 , 0x00004528 
+ 00019225  0x00003f6b call  0x00007db2 
+ 00019226  0x00003f6c copy  0x0000003f , 0x00000011 
+ 00019227  0x00003f6d copy  0x00000002 , 0x0000003f 
+ 00019228  0x00003f6e isub  0x00000011 , 0x0000003f 
+ 00019229  0x00003f6f store  0x00000001 , 0x00004528 
+ 00019230  0x00003f70 call  0x00004b28 
+ 00019231  0x00003f71 fetch  0x00000002 , 0x0000452b 
+ 00019232  0x00003f72 copy  0x0000003f , 0x00000003 
+ 00019233  0x00003f73 copy  0x00000011 , 0x00000039 
+ 00019234  0x00003f74 call  0x00006dbd 
+ 00019235  0x00003f75 copy  0x00000003 , 0x0000003f 
+ 00019236  0x00003f76 store  0x00000002 , 0x0000452b 
+ 00019237  0x00003f77 fetch  0x00000001 , 0x00004528 
+ 00019238  0x00003f78 nrtn  0x00000034 
+ 00019239  0x00003f79 branch  0x00004d05 
+ 00019240  0x00003f7c fetcht  0x00000002 , 0x00004529 
+ 00019241  0x00003f7d fetch  0x00000001 , 0x0000452d 
+ 00019242  0x00003f7e bbit1  0x00000005 , 0x00002dd5 
+ 00019243  0x00003f7f bbit1  0x00000004 , 0x00002dcc 
+ 00019244  0x00003f80 rtn 
+ 00019245  0x00003f85 arg  0x00000017 , 0x00000002 
+ 00019246  0x00003f86 fetch  0x00000002 , 0x00004526 
+ 00019247  0x00003f87 rtnbit1  0x00000001 
+ 00019248  0x00003f88 fetcht  0x00000002 , 0x000042e5 
+ 00019249  0x00003f89 rtn 
+ 00019250  0x00003f8c fetch  0x00000002 , 0x00004526 
+ 00019251  0x00003f8d bbit1  0x00000002 , 0x00002da5 
+ 00019252  0x00003f8e branch  0x00007dbe 
+ 00019253  0x00003f93 branch  0x00004c70 
+ 00019254  0x00003fa6 fetchr  0x00000039 , 0x00000001 , 0x000006c1 
+ 00019255  0x00003fa7 call  0x00007d35 
+ 00019256  0x00003fa8 call  0x00006d6a 
+ 00019257  0x00003fa9 store  0x00000002 , 0x0000451f 
+ 00019258  0x00003faa call  0x00004c4d 
+ 00019259  0x00003fab call  0x00006da1 
+ 00019260  0x00003fac fetch  0x00000002 , 0x0000451f 
+ 00019261  0x00003fad branch  0x00006d66 
+ 00019262  0x00003fb2 arg  0x00000002 , 0x00000011 
+ 00019263  0x00003fb3 arg  0x00004508 , 0x00000012 
+ 00019264  0x00003fb4 arg  0x00000000 , 0x00000002 
+ 00019265  0x00003fb5 branch  0x00004c54 
+ 00019266  0x00003fbb fetch  0x00000002 , 0x00004500 
+ 00019267  0x00003fbc bbit0  0x00000009 , 0x00004c4a 
+ 00019268  0x00003fbe call  0x00004c4d 
+ 00019269  0x00003fbf branch  0x00003794 
+ 00019270  0x00003fc6 fetchr  0x00000039 , 0x00000001 , 0x000006c1 
+ 00019271  0x00003fc7 fetch  0x00000002 , 0x00004401 
+ 00019272  0x00003fc8 icopy  0x00000005 
+ 00019273  0x00003fc9 call  0x00006dbd 
+ 00019274  0x00003fca branch  0x00004c4d 
+ 00019275  0x00003fd6 arg  0x00000040 , 0x00000039 
+ 00019276  0x00003fd7 arg  0x0000434c , 0x00000005 
+ 00019277  0x00003fd8 call  0x00007ca3 
+ 00019278  0x00003fd9 setarg  0x00000000 
+ 00019279  0x00003fda store  0x00000001 , 0x00000666 
+ 00019280  0x00003fdb copy  0x00000011 , 0x00000003 
+ 00019281  0x00003fdd copy  0x00000003 , 0x0000003f 
+ 00019282  0x00003fde store  0x00000002 , 0x0000066a 
+ 00019283  0x00003fdf call  0x00004b79 
+ 00019284  0x00003fe1 fetch  0x00000001 , 0x00000666 
+ 00019285  0x00003fe2 fetcht  0x00000001 , 0x00000656 
+ 00019286  0x00003fe3 increase  0x00000001 , 0x00000002 
+ 00019287  0x00003fe4 iadd  0x00000002 , 0x0000003f 
+ 00019288  0x00003fe5 store  0x00000001 , 0x00000666 
+ 00019289  0x00003fe7 sub  0x0000003f , 0x0000001f , 0x0000003e 
+ 00019290  0x00003fe8 nbranch  0x00004b65 , 0x00000002 
+ 00019291  0x00003fea fetcht  0x00000001 , 0x0000434c 
+ 00019292  0x00003feb setarg  0x0000434d 
+ 00019293  0x00003fec iadd  0x00000002 , 0x0000003f 
+ 00019294  0x00003fed store  0x00000002 , 0x0000066f 
+ 00019295  0x00003fee fetcht  0x00000001 , 0x00000656 
+ 00019296  0x00003fef increase  0x00000001 , 0x00000002 
+ 00019297  0x00003ff0 fetch  0x00000001 , 0x0000434c 
+ 00019298  0x00003ff1 iadd  0x00000002 , 0x0000003f 
+ 00019299  0x00003ff2 store  0x00000001 , 0x0000434c 
+ 00019300  0x00003ff3 branch  0x00004b6e 
+ 00019301  0x00003ff5 fetcht  0x00000001 , 0x0000436c 
+ 00019302  0x00003ff6 setarg  0x0000436d 
+ 00019303  0x00003ff7 iadd  0x00000002 , 0x0000003f 
+ 00019304  0x00003ff8 store  0x00000002 , 0x0000066f 
+ 00019305  0x00003ff9 fetcht  0x00000001 , 0x00000656 
+ 00019306  0x00003ffa increase  0x00000001 , 0x00000002 
+ 00019307  0x00003ffb fetch  0x00000001 , 0x0000436c 
+ 00019308  0x00003ffc iadd  0x00000002 , 0x0000003f 
+ 00019309  0x00003ffd store  0x00000001 , 0x0000436c 
+ 00019310  0x00003fff fetch  0x00000002 , 0x0000066f 
+ 00019311  0x00004000 copy  0x0000003f , 0x00000005 
+ 00019312  0x00004001 fetch  0x00000002 , 0x0000066a 
+ 00019313  0x00004002 copy  0x0000003f , 0x00000003 
+ 00019314  0x00004004 copy  0x00000002 , 0x00000039 
+ 00019315  0x00004005 call  0x00006dbd 
+ 00019316  0x00004007 fetch  0x00000001 , 0x000006c1 
+ 00019317  0x00004008 fetcht  0x00000001 , 0x00000666 
+ 00019318  0x00004009 isub  0x00000002 , 0x0000003e 
+ 00019319  0x0000400a nbranch  0x00004b51 , 0x00000005 
+ 00019320  0x0000400b branch  0x00004c4d 
+ 00019321  0x0000400f ifetch  0x00000001 , 0x00000003 
+ 00019322  0x00004010 store  0x00000001 , 0x00000656 
+ 00019323  0x00004011 ifetch  0x00000001 , 0x00000003 
+ 00019324  0x00004012 store  0x00000001 , 0x00000662 
+ 00019325  0x00004013 rtn 
+ 00019326  0x00004018 arg  0x00000000 , 0x00000002 
+ 00019327  0x00004019 arg  0x00000002 , 0x00000011 
+ 00019328  0x0000401a fetch  0x00000002 , 0x00004523 
+ 00019329  0x0000401b store  0x00000002 , 0x0000067f 
+ 00019330  0x0000401c arg  0x0000067f , 0x00000012 
+ 00019331  0x0000401d branch  0x00004c54 
+ 00019332  0x00004022 fetch  0x00000001 , 0x000006c1 
+ 00019333  0x00004023 bne  0x00000001 , 0x00004c4a 
+ 00019334  0x00004024 ifetch  0x00000001 , 0x00000003 
+ 00019335  0x00004025 store  0x00000001 , 0x00004521 
+ 00019336  0x00004026 setarg  0x00000000 
+ 00019337  0x00004027 store  0x00000002 , 0x00004523 
+ 00019338  0x00004028 branch  0x00004c4d 
+ 00019339  0x0000402d fetch  0x00000001 , 0x000006c1 
+ 00019340  0x0000402e bne  0x00000004 , 0x00004c4a 
+ 00019341  0x0000402f fetch  0x00000002 , 0x00004500 
+ 00019342  0x00004030 bbit1  0x00000009 , 0x00004c3c 
+ 00019343  0x00004031 branch  0x00004c4a 
+ 00019344  0x0000405f ifetch  0x00000001 , 0x00000003 
+ 00019345  0x00004060 copy  0x0000003f , 0x00000002 
+ 00019346  0x00004061 beq  0x00000081 , 0x00004b9f 
+ 00019347  0x00004062 beq  0x00000082 , 0x00004ba3 
+ 00019348  0x00004063 beq  0x00000083 , 0x00004ba8 
+ 00019349  0x00004064 beq  0x00000084 , 0x00004bac 
+ 00019350  0x00004065 store  0x00000001 , 0x00004300 
+ 00019351  0x00004066 call  0x000074ed 
+ 00019352  0x00004067 call  0x00002ea2 
+ 00019353  0x00004068 fetch  0x00000001 , 0x00004300 
+ 00019354  0x00004069 beq  0x00000000 , 0x00004bb0 
+ 00019355  0x0000406a beq  0x00000001 , 0x00004bb3 
+ 00019356  0x0000406b beq  0x00000002 , 0x00004bb5 
+ 00019357  0x0000406c beq  0x00000004 , 0x00004bb7 
+ 00019358  0x0000406d branch  0x00004c4a 
+ 00019359  0x00004070 storet  0x00000001 , 0x00004300 
+ 00019360  0x00004071 call  0x00002e9e 
+ 00019361  0x00004072 jam  0x0000000d , 0x000042c9 
+ 00019362  0x00004073 branch  0x00004bb1 
+ 00019363  0x00004075 storet  0x00000001 , 0x00004300 
+ 00019364  0x00004076 call  0x00002e9e 
+ 00019365  0x00004077 jam  0x0000000d , 0x000042c9 
+ 00019366  0x00004078 jam  0x00000001 , 0x000042c7 
+ 00019367  0x00004079 branch  0x00004c4d 
+ 00019368  0x0000407b storet  0x00000001 , 0x00004300 
+ 00019369  0x0000407c call  0x00002e9e 
+ 00019370  0x0000407d jam  0x0000000d , 0x000042c9 
+ 00019371  0x0000407e branch  0x00004bbb 
+ 00019372  0x00004080 storet  0x00000001 , 0x00004300 
+ 00019373  0x00004081 call  0x00002e9e 
+ 00019374  0x00004082 jam  0x0000000d , 0x000042c9 
+ 00019375  0x00004083 branch  0x00004bb9 
+ 00019376  0x00004087 jam  0x00000000 , 0x000042c9 
+ 00019377  0x00004089 jam  0x00000003 , 0x000042c7 
+ 00019378  0x0000408a branch  0x00004c4d 
+ 00019379  0x0000408c jam  0x00000001 , 0x000042c9 
+ 00019380  0x0000408d branch  0x00004bb1 
+ 00019381  0x0000408f jam  0x00000005 , 0x000042c9 
+ 00019382  0x00004090 branch  0x00004bbb 
+ 00019383  0x00004092 jam  0x00000005 , 0x000042c9 
+ 00019384  0x00004093 branch  0x00004bb9 
+ 00019385  0x00004095 jam  0x00000002 , 0x000042c7 
+ 00019386  0x00004096 branch  0x00004c4d 
+ 00019387  0x00004098 jam  0x00000000 , 0x000042c7 
+ 00019388  0x00004099 branch  0x00004c4d 
+ 00019389  0x000040a5 arg  0x0000001f , 0x0000003f 
+ 00019390  0x000040a6 arg  0x0000436c , 0x00000005 
+ 00019391  0x000040a7 branch  0x00004bc0 
+ 00019392  0x000040aa fetchr  0x00000039 , 0x00000001 , 0x000006c1 
+ 00019393  0x000040ab isub  0x00000039 , 0x0000003e 
+ 00019394  0x000040ac nbranch  0x00004c4a , 0x00000002 
+ 00019395  0x000040ad istorer  0x00000039 , 0x00000001 , 0x00000005 
+ 00019396  0x000040ae call  0x00006dbd 
+ 00019397  0x000040af branch  0x00004c4d 
+ 00019398  0x000040b4 fetch  0x00000002 , 0x00004500 
+ 00019399  0x000040b5 bbit0  0x00000009 , 0x00004c4a 
+ 00019400  0x000040b6 fetch  0x00000001 , 0x000006c1 
+ 00019401  0x000040b7 bne  0x00000008 , 0x00004c4a 
+ 00019402  0x000040b8 ifetch  0x00000008 , 0x00000003 
+ 00019403  0x000040b9 store  0x00000008 , 0x000042d5 
+ 00019404  0x000040ba jam  0x00000012 , 0x0000064d 
+ 00019405  0x000040bb call  0x00007824 
+ 00019406  0x000040bc branch  0x00004c4d 
+ 00019407  0x000040c1 ifetch  0x00000002 , 0x00000003 
+ 00019408  0x000040c2 store  0x00000002 , 0x0000438d 
+ 00019409  0x000040c3 storet  0x00000001 , 0x000040a6 
+ 00019410  0x000040c4 iadd  0x00000002 , 0x0000003f 
+ 00019411  0x000040c5 store  0x00000002 , 0x000040a4 
+ 00019412  0x000040c6 branch  0x00004c4d 
+ 00019413  0x000040cb fetch  0x00000001 , 0x00004300 
+ 00019414  0x000040cc branch  0x00004c4a , 0x00000034 
+ 00019415  0x000040cd fetch  0x00000001 , 0x000042fe 
+ 00019416  0x000040ce bne  0x00000000 , 0x00004c4a 
+ 00019417  0x000040cf fetch  0x00000001 , 0x000042ff 
+ 00019418  0x000040d0 bne  0x00000000 , 0x00004c4a 
+ 00019419  0x000040d1 call  0x00007899 
+ 00019420  0x000040d2 branch  0x00004c4d 
+ 00019421  0x000040d7 fetch  0x00000001 , 0x000006c1 
+ 00019422  0x000040d8 bne  0x00000005 , 0x00004c4a 
+ 00019423  0x000040d9 ifetch  0x00000001 , 0x00000003 
+ 00019424  0x000040da store  0x00000001 , 0x00004510 
+ 00019425  0x000040db ifetch  0x00000004 , 0x00000003 
+ 00019426  0x000040dc store  0x00000004 , 0x00004511 
+ 00019427  0x000040dd fetcht  0x00000001 , 0x00004510 
+ 00019428  0x000040de call  0x00006ef1 
+ 00019429  0x000040df call  0x00004cdf 
+ 00019430  0x000040e0 branch  0x00004c4d 
+ 00019431  0x000040e5 fetch  0x00000001 , 0x000006c1 
+ 00019432  0x000040e6 bne  0x00000001 , 0x00004c4a 
+ 00019433  0x000040e7 ifetch  0x00000001 , 0x00000003 
+ 00019434  0x000040e8 store  0x00000001 , 0x00004141 
+ 00019435  0x000040e9 branch  0x00004c4d 
+ 00019436  0x000040ee ifetch  0x00000001 , 0x00000003 
+ 00019437  0x000040ef beq  0x00000001 , 0x00004bf5 
+ 00019438  0x000040f0 fetch  0x00000001 , 0x000042fc 
+ 00019439  0x000040f1 beq  0x00000003 , 0x00004bf3 
+ 00019440  0x000040f2 beq  0x00000006 , 0x00004bf3 
+ 00019441  0x000040f3 beq  0x00000007 , 0x00004bf3 
+ 00019442  0x000040f4 branch  0x00004c4a 
+ 00019443  0x000040f6 jam  0x00000001 , 0x000042fd 
+ 00019444  0x000040f7 branch  0x00004c4d 
+ 00019445  0x000040fa call  0x00002f08 
+ 00019446  0x000040fb branch  0x00004c4d 
+ 00019447  0x00004102 call  0x00004c4d 
+ 00019448  0x00004103 call  0x00006da1 
+ 00019449  0x00004104 jam  0x00000001 , 0x00008010 
+ 00019450  0x00004105 branch  0x0000233e 
+ 00019451  0x0000411f arg  0x00000001 , 0x00000002 
+ 00019452  0x00004120 call  0x00002cb0 
+ 00019453  0x00004121 add  0x00000006 , 0xfffffffe , 0x00000005 
+ 00019454  0x00004122 setarg  0x00000000 
+ 00019455  0x00004123 istore  0x00000002 , 0x00000005 
+ 00019456  0x00004124 branch  0x00004c4d 
+ 00019457  0x00004129 call  0x00004c0a 
+ 00019458  0x0000412a call  0x00004c38 
+ 00019459  0x0000412b setarg  0x00000000 
+ 00019460  0x0000412c istore  0x00000002 , 0x00000005 
+ 00019461  0x0000412d branch  0x00004cb9 
+ 00019462  0x00004133 ifetch  0x00000001 , 0x00000003 
+ 00019463  0x00004134 call  0x00004c0e 
+ 00019464  0x00004135 call  0x00004c15 
+ 00019465  0x00004136 branch  0x00004cb9 
+ 00019466  0x0000413a call  0x00004c35 
+ 00019467  0x0000413b setarg  0x00280002 
+ 00019468  0x0000413c istore  0x00000003 , 0x00000005 
+ 00019469  0x0000413d rtn 
+ 00019470  0x00004141 store  0x00000001 , 0x0000064e 
+ 00019471  0x00004142 call  0x00004c35 
+ 00019472  0x00004143 setarg  0x01280302 
+ 00019473  0x00004144 istore  0x00000004 , 0x00000005 
+ 00019474  0x00004145 fetch  0x00000001 , 0x0000064e 
+ 00019475  0x00004146 istore  0x00000003 , 0x00000005 
+ 00019476  0x00004147 rtn 
+ 00019477  0x0000414b call  0x00002cd4 
+ 00019478  0x0000414c ifetch  0x00000001 , 0x00000003 
+ 00019479  0x0000414d and  0x0000003f , 0x0000001f , 0x00000039 
+ 00019480  0x0000414e copy  0x0000003f , 0x00000011 
+ 00019481  0x0000414f isolate1  0x00000007 , 0x00000011 
+ 00019482  0x00004150 setflag  0x00000001 , 0x0000000f , 0x00000002 
+ 00019483  0x00004151 isolate1  0x00000006 , 0x00000011 
+ 00019484  0x00004152 setflag  0x00000001 , 0x0000000e , 0x00000002 
+ 00019485  0x00004153 istoret  0x00000002 , 0x00000005 
+ 00019486  0x00004154 copy  0x00000039 , 0x0000003f 
+ 00019487  0x00004155 istore  0x00000001 , 0x00000005 
+ 00019488  0x00004156 call  0x00006dd0 
+ 00019489  0x00004157 call  0x00004c38 
+ 00019490  0x00004158 setarg  0x00000000 
+ 00019491  0x00004159 istore  0x00000002 , 0x00000005 
+ 00019492  0x0000415a and  0x00000002 , 0x000000ff , 0x00000002 
+ 00019493  0x0000415b increase  0xffffffff , 0x00000002 
+ 00019494  0x0000415c call  0x00002cb0 
+ 00019495  0x0000415d add  0x00000006 , 0x00000004 , 0x00000006 
+ 00019496  0x0000415e ifetch  0x00000001 , 0x00000006 
+ 00019497  0x0000415f bbit1  0x00000004 , 0x00004c2d 
+ 00019498  0x00004160 bbit1  0x00000005 , 0x00004c2d 
+ 00019499  0x00004161 increase  0x00000001 , 0x00000002 
+ 00019500  0x00004162 rtn 
+ 00019501  0x00004166 call  0x00002cd4 
+ 00019502  0x00004167 isolate1  0x00000005 , 0x00000011 
+ 00019503  0x00004168 setflag  0x00000001 , 0x0000000f , 0x00000002 
+ 00019504  0x00004169 istoret  0x00000002 , 0x00000005 
+ 00019505  0x0000416a setarg  0x02290202 
+ 00019506  0x0000416b istore  0x00000008 , 0x00000005 
+ 00019507  0x0000416c increase  0xffffffff , 0x00000002 
+ 00019508  0x0000416d rtn 
+ 00019509  0x00004171 call  0x00002cd4 
+ 00019510  0x00004172 istoret  0x00000002 , 0x00000005 
+ 00019511  0x00004173 rtn 
+ 00019512  0x00004177 ifetch  0x00000001 , 0x00000003 
+ 00019513  0x00004178 copy  0x0000003f , 0x00000039 
+ 00019514  0x00004179 istore  0x00000001 , 0x00000005 
+ 00019515  0x0000417a branch  0x00006dd0 
+ 00019516  0x0000417f fetch  0x00000001 , 0x000042fe 
+ 00019517  0x00004180 bne  0x00000005 , 0x00004c4a 
+ 00019518  0x00004181 fetch  0x00000001 , 0x00004300 
+ 00019519  0x00004182 beq  0x00000004 , 0x00004c48 
+ 00019520  0x00004183 beq  0x00000084 , 0x00004c42 
+ 00019521  0x00004184 branch  0x00004c4a 
+ 00019522  0x00004187 jam  0x00000002 , 0x000042fb 
+ 00019523  0x00004188 jam  0x00000008 , 0x000042fc 
+ 00019524  0x00004189 branch  0x00004c45 
+ 00019525  0x0000418c ifetch  0x00000004 , 0x00000003 
+ 00019526  0x0000418d store  0x00000004 , 0x00004301 
+ 00019527  0x0000418e branch  0x00004c4d 
+ 00019528  0x00004191 call  0x00004c45 
+ 00019529  0x00004192 branch  0x00002ef1 
+ 00019530  0x000041e6 arg  0x00000001 , 0x00000002 
+ 00019531  0x000041e7 arg  0x00000000 , 0x00000011 
+ 00019532  0x000041e8 branch  0x00004c54 
+ 00019533  0x000041ec arg  0x00000000 , 0x00000002 
+ 00019534  0x000041ed arg  0x00000000 , 0x00000011 
+ 00019535  0x000041ee branch  0x00004c54 
+ 00019536  0x000041f3 jam  0x00000002 , 0x000006c0 
+ 00019537  0x000041f4 branch  0x00004c6d 
+ 00019538  0x000041fa jam  0x00000005 , 0x000006c0 
+ 00019539  0x000041fb branch  0x00004c6d 
+ 00019540  0x00004204 fetch  0x00000001 , 0x000006c0 
+ 00019541  0x00004205 copy  0x0000003f , 0x00000013 
+ 00019542  0x00004206 jam  0x00000006 , 0x000006c0 
+ 00019543  0x00004207 setarg  0x00000002 
+ 00019544  0x00004208 iadd  0x00000011 , 0x0000003f 
+ 00019545  0x00004209 call  0x00004cc8 
+ 00019546  0x0000420a copy  0x00000013 , 0x0000003f 
+ 00019547  0x0000420b istore  0x00000001 , 0x00000003 
+ 00019548  0x0000420c istoret  0x00000001 , 0x00000003 
+ 00019549  0x0000420d copy  0x00000011 , 0x00000039 
+ 00019550  0x0000420e copy  0x00000012 , 0x00000006 
+ 00019551  0x0000420f call  0x00006db7 
+ 00019552  0x00004210 branch  0x00004cd2 
+ 00019553  0x00004218 jam  0x00000008 , 0x000006c0 
+ 00019554  0x00004219 add  0x00000039 , 0x00000002 , 0x0000003f 
+ 00019555  0x0000421a call  0x00004cc8 
+ 00019556  0x0000421b fetch  0x00000002 , 0x000006eb 
+ 00019557  0x0000421c istore  0x00000002 , 0x00000003 
+ 00019558  0x0000421d fetch  0x00000002 , 0x000006e9 
+ 00019559  0x0000421e icopy  0x00000006 
+ 00019560  0x0000421f call  0x00006da4 
+ 00019561  0x00004220 copy  0x00000006 , 0x0000003f 
+ 00019562  0x00004221 store  0x00000002 , 0x000006e9 
+ 00019563  0x00004222 branch  0x00004cd2 
+ 00019564  0x00004227 jam  0x00000009 , 0x000006c0 
+ 00019565  0x00004229 setarg  0x00000000 
+ 00019566  0x0000422a call  0x00004cc8 
+ 00019567  0x0000422b branch  0x00004cd2 
+ 00019568  0x00004230 jam  0x0000000a , 0x000006c0 
+ 00019569  0x00004231 setarg  0x00000001 
+ 00019570  0x00004232 call  0x00004cc8 
+ 00019571  0x00004234 call  0x00004c7a 
+ 00019572  0x00004236 fetch  0x00000002 , 0x00004500 
+ 00019573  0x00004237 arg  0x00000009 , 0x00000007 
+ 00019574  0x00004238 qisolate1  0x0000003f 
+ 00019575  0x00004239 setflag  0x00000001 , 0x00000005 , 0x00000002 
+ 00019576  0x0000423d istoret  0x00000001 , 0x00000003 
+ 00019577  0x0000423e branch  0x00004cd2 
+ 00019578  0x00004243 arg  0x00000000 , 0x00000002 
+ 00019579  0x00004244 fetch  0x00000001 , 0x0000438c 
+ 00019580  0x00004245 arg  0x00000000 , 0x00000007 
+ 00019581  0x00004246 qisolate1  0x0000003f 
+ 00019582  0x00004247 setflag  0x00000001 , 0x00000002 , 0x00000002 
+ 00019583  0x00004248 rtn 
+ 00019584  0x0000424d jam  0x0000000d , 0x000006c0 
+ 00019585  0x0000424e fetch  0x00000001 , 0x00004403 
+ 00019586  0x0000424f mul32  0x0000003f , 0x00000022 , 0x0000003f 
+ 00019587  0x00004250 icopy  0x00000039 
+ 00019588  0x00004251 call  0x00004cc8 
+ 00019589  0x00004252 fetch  0x00000002 , 0x00004401 
+ 00019590  0x00004253 icopy  0x00000006 
+ 00019591  0x00004254 call  0x00006da4 
+ 00019592  0x00004255 branch  0x00004cd2 
+ 00019593  0x00004259 jam  0x0000000e , 0x000006c0 
+ 00019594  0x0000425a setarg  0x00000004 
+ 00019595  0x0000425b call  0x00004cc8 
+ 00019596  0x0000425c fetch  0x00000004 , 0x000005d8 
+ 00019597  0x0000425d istore  0x00000004 , 0x00000003 
+ 00019598  0x0000425e branch  0x00004cd2 
+ 00019599  0x00004262 jam  0x0000000f , 0x000006c0 
+ 00019600  0x00004263 fetch  0x00000002 , 0x00008112 
+ 00019601  0x00004264 arg  0x00000040 , 0x00000002 
+ 00019602  0x00004265 call  0x00007db2 
+ 00019603  0x00004266 copy  0x0000003f , 0x00000011 
+ 00019604  0x00004267 copy  0x0000003f , 0x00000039 
+ 00019605  0x00004268 call  0x00006d89 
+ 00019606  0x00004269 arg  0x0000067f , 0x00000005 
+ 00019607  0x0000426a call  0x00006dbd 
+ 00019608  0x0000426b copy  0x00000011 , 0x0000003f 
+ 00019609  0x0000426c copy  0x00000011 , 0x00000039 
+ 00019610  0x0000426d call  0x00004cc8 
+ 00019611  0x0000426e arg  0x0000067f , 0x00000006 
+ 00019612  0x0000426f call  0x00006da4 
+ 00019613  0x00004270 branch  0x00004cd2 
+ 00019614  0x00004275 jam  0x00000010 , 0x000006c0 
+ 00019615  0x00004276 branch  0x00004c6d 
+ 00019616  0x0000427b jam  0x00000011 , 0x000006c0 
+ 00019617  0x0000427c setarg  0x00000004 
+ 00019618  0x0000427d call  0x00004cc8 
+ 00019619  0x0000427e fetch  0x00000004 , 0x00004301 
+ 00019620  0x0000427f istore  0x00000004 , 0x00000003 
+ 00019621  0x00004280 branch  0x00004cd2 
+ 00019622  0x00004285 arg  0x00000180 , 0x00000011 
+ 00019623  0x00004286 branch  0x00004caa 
+ 00019624  0x00004289 arg  0x00000080 , 0x00000011 
+ 00019625  0x0000428a branch  0x00004caa 
+ 00019626  0x0000428e jam  0x00000014 , 0x000006c0 
+ 00019627  0x0000428f setarg  0x00000002 
+ 00019628  0x00004290 call  0x00004cc8 
+ 00019629  0x00004291 copy  0x00000011 , 0x0000003f 
+ 00019630  0x00004292 istore  0x00000002 , 0x00000003 
+ 00019631  0x00004293 branch  0x00004cd2 
+ 00019632  0x00004298 arg  0x00000000 , 0x00000013 
+ 00019633  0x00004299 branch  0x00004cb3 
+ 00019634  0x0000429c arg  0x00000001 , 0x00000013 
+ 00019635  0x0000429f jam  0x00000015 , 0x000006c0 
+ 00019636  0x000042a0 setarg  0x00000001 
+ 00019637  0x000042a1 call  0x00004cc8 
+ 00019638  0x000042a2 copy  0x00000013 , 0x0000003f 
+ 00019639  0x000042a3 istore  0x00000001 , 0x00000003 
+ 00019640  0x000042a4 branch  0x00004cd2 
+ 00019641  0x000042ab storet  0x00000002 , 0x00000656 
+ 00019642  0x000042ac jam  0x00000029 , 0x000006c0 
+ 00019643  0x000042ad setarg  0x00000002 
+ 00019644  0x000042ae call  0x00004cc8 
+ 00019645  0x000042af fetcht  0x00000002 , 0x00000656 
+ 00019646  0x000042b0 istoret  0x00000002 , 0x00000003 
+ 00019647  0x000042b1 branch  0x00004cd2 
+ 00019648  0x000042b6 jam  0x0000002b , 0x000006c0 
+ 00019649  0x000042b7 branch  0x00004c6d 
+ 00019650  0x000042bc jam  0x00000040 , 0x000006c0 
+ 00019651  0x000042bd setarg  0x00000002 
+ 00019652  0x000042be call  0x00004cc8 
+ 00019653  0x000042bf fetch  0x00000002 , 0x00004075 
+ 00019654  0x000042c0 istore  0x00000002 , 0x00000003 
+ 00019655  0x000042c1 branch  0x00004cd2 
+ 00019656  0x000042ce jam  0x00000002 , 0x000006bf 
+ 00019657  0x000042cf store  0x00000001 , 0x000006c1 
+ 00019658  0x000042d0 storet  0x00000008 , 0x00000656 
+ 00019659  0x000042d1 bpatch  0x00000070 , 0x0000400e 
+ 00019660  0x000042d2 call  0x00004cd4 
+ 00019661  0x000042d3 fetcht  0x00000008 , 0x00000656 
+ 00019662  0x000042d4 call  0x00006d95 
+ 00019663  0x000042d5 fetch  0x00000003 , 0x000006bf 
+ 00019664  0x000042d6 istore  0x00000003 , 0x00000003 
+ 00019665  0x000042d7 rtn 
+ 00019666  0x000042da bpatch  0x00000071 , 0x0000400e 
+ 00019667  0x000042db branch  0x00006d97 
+ 00019668  0x000042de call  0x00004cdd 
+ 00019669  0x000042df rtn  0x00000001 
+ 00019670  0x000042e1 call  0x00004cdb 
+ 00019671  0x000042e2 fetch  0x00000004 , 0x00004511 
+ 00019672  0x000042e3 rshift2  0x0000003f , 0x0000003f 
+ 00019673  0x000042e4 rtn  0x00000034 
+ 00019674  0x000042e5 branch  0x00007c93 
+ 00019675  0x000042e8 fetcht  0x00000001 , 0x00004510 
+ 00019676  0x000042e9 branch  0x00006ef1 
+ 00019677  0x000042ec fetcht  0x00000001 , 0x00004510 
+ 00019678  0x000042ed branch  0x00006efc 
+ 00019679  0x000042f0 fetcht  0x00000001 , 0x00004510 
+ 00019680  0x000042f1 branch  0x00006eed 
+ 00019681  0x000042fd storer  0x00000011 , 0x00000002 , 0x000006e9 
+ 00019682  0x000042fe storer  0x00000012 , 0x00000002 , 0x000006e7 
+ 00019683  0x000042ff fetch  0x00000002 , 0x0000439c 
+ 00019684  0x00004300 store  0x00000002 , 0x000006eb 
+ 00019685  0x00004301 call  0x00004b32 
+ 00019686  0x00004302 rtn  0x00000028 
+ 00019687  0x00004305 fetcht  0x00000002 , 0x000006e7 
+ 00019688  0x00004306 fetch  0x00000001 , 0x00004525 
+ 00019689  0x00004307 call  0x00007db2 
+ 00019690  0x00004308 copy  0x0000003f , 0x00000039 
+ 00019691  0x00004309 copy  0x00000002 , 0x0000003f 
+ 00019692  0x0000430a isub  0x00000039 , 0x0000003f 
+ 00019693  0x0000430b store  0x00000002 , 0x000006e7 
+ 00019694  0x0000430c call  0x00004c61 
+ 00019695  0x0000430d fetch  0x00000002 , 0x000006e7 
+ 00019696  0x0000430e rtn  0x00000034 
+ 00019697  0x0000430f branch  0x00004ce7 
+ 00019698  0x00004315 rtn 
+ 00019699  0x00004318 fetch  0x00000001 , 0x00004521 
+ 00019700  0x00004319 rtn  0x00000034 
+ 00019701  0x0000431a fetch  0x00000001 , 0x00004522 
+ 00019702  0x0000431b rtn  0x00000034 
+ 00019703  0x0000431c increase  0xffffffff , 0x0000003f 
+ 00019704  0x0000431d store  0x00000001 , 0x00004522 
+ 00019705  0x0000431e nrtn  0x00000034 
+ 00019706  0x0000431f jam  0x00000005 , 0x00004522 
+ 00019707  0x00004320 call  0x00006fb2 
+ 00019708  0x00004321 call  0x00006f8e 
+ 00019709  0x00004322 div  0x0000003f , 0x0000000a 
+ 00019710  0x00004323 call  0x00007d61 
+ 00019711  0x00004324 div  0x0000003f , 0x00000064 
+ 00019712  0x00004325 call  0x00007d61 
+ 00019713  0x00004326 remainder  0x00000002 
+ 00019714  0x00004327 store  0x00000001 , 0x00004523 
+ 00019715  0x00004328 storet  0x00000001 , 0x00004524 
+ 00019716  0x00004329 rtn 
+ 00019717  0x00004330 arg  0x00000008 , 0x00000007 
+ 00019718  0x00004331 branch  0x00004d0d 
+ 00019719  0x00004334 arg  0x00000008 , 0x00000007 
+ 00019720  0x00004335 branch  0x00004d09 
+ 00019721  0x00004338 fetch  0x00000002 , 0x00004526 
+ 00019722  0x00004339 qset0  0x0000003f 
+ 00019723  0x0000433a store  0x00000002 , 0x00004526 
+ 00019724  0x0000433b rtn 
+ 00019725  0x0000433e fetch  0x00000002 , 0x00004526 
+ 00019726  0x0000433f qset1  0x0000003f 
+ 00019727  0x00004340 store  0x00000002 , 0x00004526 
+ 00019728  0x00004341 rtn 
+ 00019729  0x00004347 call  0x00007384 
+ 00019730  0x00004348 call  0x00004d20 , 0x0000002b 
+ 00019731  0x00004349 call  0x00004d40 
+ 00019732  0x0000434a call  0x00004dec 
+ 00019733  0x0000434b call  0x00005260 
+ 00019734  0x0000434c rtn  0x0000002b 
+ 00019735  0x0000434d call  0x00005b83 
+ 00019736  0x0000434e call  0x0000506b 
+ 00019737  0x0000434f call  0x00005853 
+ 00019738  0x00004350 call  0x00004d22 
+ 00019739  0x00004351 call  0x00005303 
+ 00019740  0x00004353 fetch  0x00000002 , 0x00004500 
+ 00019741  0x00004354 bbit1  0x0000000c , 0x00005544 
+ 00019742  0x00004355 call  0x000057d7 
+ 00019743  0x00004356 branch  0x00004df5 
+ 00019744  0x00004359 call  0x00005203 
+ 00019745  0x0000435a branch  0x00006f4e 
+ 00019746  0x0000435d bpatch  0x00000072 , 0x0000400e 
+ 00019747  0x0000435e setarg  0x00005b02 
+ 00019748  0x0000435f store  0x00000002 , 0x0000460f 
+ 00019749  0x00004360 setarg  0x00005af7 
+ 00019750  0x00004361 store  0x00000002 , 0x00004611 
+ 00019751  0x00004362 setarg  0x000059f0 
+ 00019752  0x00004363 store  0x00000002 , 0x000043f2 
+ 00019753  0x00004364 setarg  0x000059bc 
+ 00019754  0x00004365 store  0x00000002 , 0x00004609 
+ 00019755  0x00004366 setarg  0x00006886 
+ 00019756  0x00004367 store  0x00000002 , 0x0000460b 
+ 00019757  0x00004368 setarg  0x00004e75 
+ 00019758  0x00004369 store  0x00000002 , 0x0000460d 
+ 00019759  0x0000436a setarg  0x00005438 
+ 00019760  0x0000436b store  0x00000002 , 0x000043e2 
+ 00019761  0x0000436c setarg  0x00004e70 
+ 00019762  0x0000436d store  0x00000002 , 0x000043e0 
+ 00019763  0x0000436e setarg  0x000053da 
+ 00019764  0x0000436f store  0x00000002 , 0x000043e6 
+ 00019765  0x00004370 setarg  0x00005759 
+ 00019766  0x00004371 store  0x00000002 , 0x000043e4 
+ 00019767  0x00004372 setarg  0x00004e3d 
+ 00019768  0x00004373 store  0x00000002 , 0x000043de 
+ 00019769  0x00004374 setarg  0x00005420 
+ 00019770  0x00004375 store  0x00000002 , 0x000043e8 
+ 00019771  0x00004376 setarg  0x00005494 
+ 00019772  0x00004377 store  0x00000002 , 0x000043ec 
+ 00019773  0x00004378 setarg  0x00004e2d 
+ 00019774  0x00004379 store  0x00000002 , 0x000043dc 
+ 00019775  0x0000437a branch  0x000068cb 
+ 00019776  0x0000437d rtn  0x0000002b 
+ 00019777  0x0000437e call  0x000035c8 
+ 00019778  0x0000437f call  0x0000323a 
+ 00019779  0x00004380 call  0x00005b7f 
+ 00019780  0x00004381 call  0x00004ee5 
+ 00019781  0x00004382 call  0x00004d88 
+ 00019782  0x00004384 call  0x00005a4b 
+ 00019783  0x00004385 call  0x00002a1f 
+ 00019784  0x00004387 bpatch  0x00000073 , 0x0000400e 
+ 00019785  0x00004388 fetch  0x00000008 , 0x0000470e 
+ 00019786  0x00004389 bbit1  0x00000011 , 0x00005640 
+ 00019787  0x0000438a bbit1  0x00000010 , 0x00005650 
+ 00019788  0x0000438b bbit1  0x00000012 , 0x00005685 
+ 00019789  0x0000438c rtn 
+ 00019790  0x0000438f jam  0x00000010 , 0x00004099 
+ 00019791  0x00004390 fetch  0x00000008 , 0x0000470e 
+ 00019792  0x00004391 rtnbit1  0x0000000b 
+ 00019793  0x00004392 jam  0x00000018 , 0x00004099 
+ 00019794  0x00004393 rtn 
+ 00019795  0x00004396 call  0x00003260 
+ 00019796  0x00004397 jam  0x00000000 , 0x000048fa 
+ 00019797  0x00004398 jam  0x00000000 , 0x000045e1 
+ 00019798  0x00004399 jam  0x00000000 , 0x0000444e 
+ 00019799  0x0000439a fetch  0x00000008 , 0x0000470e 
+ 00019800  0x0000439b rtnbit0  0x0000003d 
+ 00019801  0x0000439c jam  0x00000001 , 0x000048fa 
+ 00019802  0x0000439d jam  0x00000001 , 0x000045e1 
+ 00019803  0x0000439e jam  0x00000001 , 0x0000444e 
+ 00019804  0x0000439f branch  0x00003263 
+ 00019805  0x000043a4 bpatchx  0x000000f0 , 0x0000403e 
+ 00019806  0x000043a5 fetch  0x00000001 , 0x00004594 
+ 00019807  0x000043a6 branch  0x00004d65 , 0x00000034 
+ 00019808  0x000043a8 fetch  0x00000004 , 0x000045e3 
+ 00019809  0x000043a9 fetcht  0x00000004 , 0x000045a6 
+ 00019810  0x000043aa isub  0x00000002 , 0x0000003e 
+ 00019811  0x000043ab branch  0x00004d6c , 0x00000005 
+ 00019812  0x000043ac branch  0x00003546 
+ 00019813  0x000043af fetch  0x00000004 , 0x000045fb 
+ 00019814  0x000043b0 fetcht  0x00000004 , 0x000045a6 
+ 00019815  0x000043b1 isub  0x00000002 , 0x0000003e 
+ 00019816  0x000043b2 branch  0x00004d60 , 0x00000005 
+ 00019817  0x000043b3 fetch  0x00000004 , 0x00004576 
+ 00019818  0x000043b4 rtn  0x00000034 
+ 00019819  0x000043b5 branch  0x00004d60 
+ 00019820  0x000043b8 fetch  0x00000008 , 0x0000470e 
+ 00019821  0x000043b9 bbit1  0x00000030 , 0x0000596c 
+ 00019822  0x000043ba bbit1  0x0000003e , 0x0000596c 
+ 00019823  0x000043bb branch  0x0000351f 
+ 00019824  0x000043be fetch  0x00000008 , 0x0000470e 
+ 00019825  0x000043bf bbit0  0x0000003d , 0x00003658 
+ 00019826  0x000043c1 fetcht  0x00000001 , 0x00004618 
+ 00019827  0x000043c2 fetch  0x00000001 , 0x00004638 
+ 00019828  0x000043c3 isub  0x00000002 , 0x0000003e 
+ 00019829  0x000043c4 nbranch  0x00003675 , 0x00000002 
+ 00019830  0x000043c5 increase  0x00000001 , 0x00000002 
+ 00019831  0x000043c6 storet  0x00000001 , 0x00004618 
+ 00019832  0x000043c7 fetch  0x00000001 , 0x00004638 
+ 00019833  0x000043c8 beq  0x0000000f , 0x00004d7e 
+ 00019834  0x000043c9 fetch  0x00000001 , 0x00004618 
+ 00019835  0x000043ca beq  0x00000014 , 0x0000366f 
+ 00019836  0x000043cb beq  0x0000001e , 0x0000366f 
+ 00019837  0x000043cc rtn 
+ 00019838  0x000043cf fetch  0x00000001 , 0x00004618 
+ 00019839  0x000043d0 beq  0x0000000a , 0x0000366f 
+ 00019840  0x000043d1 beq  0x0000000f , 0x0000366f 
+ 00019841  0x000043d2 rtn 
+ 00019842  0x000043d7 bpatch  0x00000074 , 0x0000400e 
+ 00019843  0x000043d8 call  0x000067ff 
+ 00019844  0x000043d9 call  0x00004d4e 
+ 00019845  0x000043da call  0x00004d53 
+ 00019846  0x000043db call  0x000058fc 
+ 00019847  0x000043dc branch  0x00003266 
+ 00019848  0x000043e5 bpatch  0x00000075 , 0x0000400e 
+ 00019849  0x000043e6 call  0x00004d93 
+ 00019850  0x000043e7 call  0x00004da5 
+ 00019851  0x000043e8 call  0x00004dd3 
+ 00019852  0x000043ea setarg  0x00000a77 
+ 00019853  0x000043eb store  0x00000002 , 0x000043fe 
+ 00019854  0x000043ec setsect  0x00000000 , 0x00001224 
+ 00019855  0x000043ed setsect  0x00000001 , 0x00004000 
+ 00019856  0x000043ee setsect  0x00000002 , 0x00000000 
+ 00019857  0x000043ef istore  0x00000005 , 0x00000005 
+ 00019858  0x000043f0 rtn 
+ 00019859  0x000043f3 setarg  0x00009000 
+ 00019860  0x000043f4 store  0x00000002 , 0x000042f9 
+ 00019861  0x000043f5 jam  0x00000000 , 0x00004917 
+ 00019862  0x000043f6 setarg  0x00000000 
+ 00019863  0x000043f7 store  0x00000007 , 0x0000465c 
+ 00019864  0x000043f8 fetch  0x00000001 , 0x00004502 
+ 00019865  0x000043f9 store  0x00000001 , 0x00004731 
+ 00019866  0x000043fa store  0x00000001 , 0x00004732 
+ 00019867  0x000043fc jam  0x00000001 , 0x000045a0 
+ 00019868  0x000043fd jam  0x00000001 , 0x000045fa 
+ 00019869  0x000043fe jam  0x00000000 , 0x00004ac4 
+ 00019870  0x00004400 call  0x00004da0 
+ 00019871  0x00004401 branch  0x0000680c 
+ 00019872  0x00004404 arg  0x00000000 , 0x00000002 
+ 00019873  0x00004405 fetch  0x00000008 , 0x0000470e 
+ 00019874  0x00004406 bbit1  0x00000012 , 0x0000681d 
+ 00019875  0x00004407 arg  0x00ffffff , 0x00000002 
+ 00019876  0x00004408 branch  0x0000681d 
+ 00019877  0x0000440c call  0x00004dae 
+ 00019878  0x0000440d fetch  0x00000003 , 0x0000461f 
+ 00019879  0x0000440e store  0x00000003 , 0x000048dc 
+ 00019880  0x00004410 fetch  0x00000008 , 0x0000470e 
+ 00019881  0x00004411 rtnbit0  0x0000001b 
+ 00019882  0x00004412 setarg  0x00000006 
+ 00019883  0x00004414 store  0x00000002 , 0x000042d5 
+ 00019884  0x00004415 store  0x00000002 , 0x000042d7 
+ 00019885  0x00004416 rtn 
+ 00019886  0x00004419 fetch  0x00000008 , 0x0000470e 
+ 00019887  0x0000441a bbit1  0x00000019 , 0x00004db2 
+ 00019888  0x0000441b bbit1  0x00000018 , 0x00004db9 
+ 00019889  0x0000441c branch  0x00004dc6 
+ 00019890  0x0000441f fetch  0x00000001 , 0x000048bf 
+ 00019891  0x00004420 store  0x00000001 , 0x00004638 
+ 00019892  0x00004421 fetch  0x00000004 , 0x000048d0 
+ 00019893  0x00004422 store  0x00000004 , 0x000048cc 
+ 00019894  0x00004424 setarg  0x00080606 
+ 00019895  0x00004425 store  0x00000003 , 0x000045be 
+ 00019896  0x00004426 branch  0x000036bb 
+ 00019897  0x00004429 fetch  0x00000003 , 0x000048c0 
+ 00019898  0x0000442a store  0x00000003 , 0x0000461f 
+ 00019899  0x0000442b fetch  0x00000003 , 0x000048c3 
+ 00019900  0x0000442c store  0x00000003 , 0x00004622 
+ 00019901  0x0000442e fetch  0x00000004 , 0x000048d4 
+ 00019902  0x0000442f store  0x00000004 , 0x000048cc 
+ 00019903  0x00004431 setarg  0x00100c0c 
+ 00019904  0x00004432 store  0x00000003 , 0x000045be 
+ 00019905  0x00004434 jam  0x00000005 , 0x00004638 
+ 00019906  0x00004435 fetch  0x00000008 , 0x0000470e 
+ 00019907  0x00004436 rtnbit0  0x0000003d 
+ 00019908  0x00004437 jam  0x0000000f , 0x00004638 
+ 00019909  0x00004438 rtn 
+ 00019910  0x0000443b fetch  0x00000003 , 0x000048c6 
+ 00019911  0x0000443c store  0x00000003 , 0x0000461f 
+ 00019912  0x0000443d fetch  0x00000003 , 0x000048c9 
+ 00019913  0x0000443e store  0x00000003 , 0x00004622 
+ 00019914  0x00004440 fetch  0x00000004 , 0x000048d8 
+ 00019915  0x00004441 store  0x00000004 , 0x000048cc 
+ 00019916  0x00004443 setarg  0x001c1919 
+ 00019917  0x00004444 store  0x00000003 , 0x000045be 
+ 00019918  0x00004446 jam  0x0000000b , 0x00004638 
+ 00019919  0x00004447 fetch  0x00000008 , 0x0000470e 
+ 00019920  0x00004448 rtnbit0  0x0000003d 
+ 00019921  0x00004449 jam  0x0000001e , 0x00004638 
+ 00019922  0x0000444a rtn 
+ 00019923  0x0000445b bpatch  0x00000076 , 0x0000400e 
+ 00019924  0x0000445c call  0x00004de9 
+ 00019925  0x0000445d fetch  0x00000001 , 0x00004895 
+ 00019926  0x0000445e rtneq  0x000000ff 
+ 00019927  0x00004460 fetch  0x00000001 , 0x00004895 
+ 00019928  0x00004461 call  0x00005258 
+ 00019929  0x00004463 fetcht  0x00000001 , 0x00004895 
+ 00019930  0x00004464 call  0x00006ee0 
+ 00019931  0x00004465 branch  0x00004de5 , 0x00000001 
+ 00019932  0x00004467 fetch  0x00000001 , 0x00004895 
+ 00019933  0x00004468 call  0x0000525c 
+ 00019934  0x0000446a fetcht  0x00000001 , 0x00004895 
+ 00019935  0x0000446b call  0x00006ee0 
+ 00019936  0x0000446c branch  0x00004de9 , 0x00000001 
+ 00019937  0x0000446e fetch  0x00000001 , 0x00004895 
+ 00019938  0x0000446f call  0x00005258 
+ 00019939  0x00004470 fetch  0x00000001 , 0x00004898 
+ 00019940  0x00004471 branch  0x00004dea 
+ 00019941  0x00004474 fetch  0x00000001 , 0x00004895 
+ 00019942  0x00004475 call  0x0000525c 
+ 00019943  0x00004476 fetch  0x00000001 , 0x00004897 
+ 00019944  0x00004477 branch  0x00004dea 
+ 00019945  0x0000447a fetch  0x00000001 , 0x00004896 
+ 00019946  0x0000447c store  0x00000001 , 0x000049fb 
+ 00019947  0x0000447d rtn 
+ 00019948  0x00004488 bpatch  0x00000078 , 0x0000400f 
+ 00019949  0x00004489 rtn  0x0000002b 
+ 00019950  0x0000448a fetch  0x00000001 , 0x00004a1e 
+ 00019951  0x0000448b rtn  0x00000034 
+ 00019952  0x0000448c add  0x0000003f , 0x00000001 , 0x00000039 
+ 00019953  0x0000448d arg  0x00004a1e , 0x00000006 
+ 00019954  0x0000448e arg  0x0000426d , 0x00000005 
+ 00019955  0x0000448f call  0x00007cdc 
+ 00019956  0x00004490 branch  0x00002948 
+ 00019957  0x00004495 bpatch  0x00000079 , 0x0000400f 
+ 00019958  0x00004496 fetch  0x00000008 , 0x0000470e 
+ 00019959  0x00004497 bbit1  0x0000003e , 0x0000594b 
+ 00019960  0x00004498 fetch  0x00000001 , 0x00004678 
+ 00019961  0x00004499 beq  0x00000000 , 0x0000593a 
+ 00019962  0x0000449b call  0x00005a70 
+ 00019963  0x0000449c call  0x000053c1 
+ 00019964  0x0000449d fetch  0x00000001 , 0x00004678 
+ 00019965  0x0000449e beq  0x00000001 , 0x00004e00 
+ 00019966  0x0000449f beq  0x00000002 , 0x00004e05 
+ 00019967  0x000044a0 rtn 
+ 00019968  0x000044a2 fetch  0x00000006 , 0x0000467a 
+ 00019969  0x000044a3 fetcht  0x00000006 , 0x000046f8 
+ 00019970  0x000044a4 isub  0x00000002 , 0x0000003e 
+ 00019971  0x000044a5 branch  0x000053ad , 0x00000005 
+ 00019972  0x000044a6 branch  0x00004e09 
+ 00019973  0x000044a9 fetch  0x00000006 , 0x00004687 
+ 00019974  0x000044aa fetcht  0x00000006 , 0x000046f8 
+ 00019975  0x000044ab isub  0x00000002 , 0x0000003e 
+ 00019976  0x000044ac branch  0x000053ad , 0x00000005 
+ 00019977  0x000044ae bpatch  0x0000007a , 0x0000400f 
+ 00019978  0x000044af arg  0x00004679 , 0x00000011 
+ 00019979  0x000044b0 fetch  0x00000001 , 0x00004678 
+ 00019980  0x000044b1 increase  0xffffffff , 0x0000003f 
+ 00019981  0x000044b2 mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00019982  0x000044b3 iadd  0x00000011 , 0x00000011 
+ 00019983  0x000044b4 ifetch  0x00000001 , 0x00000011 
+ 00019984  0x000044b5 store  0x00000001 , 0x000043fc 
+ 00019985  0x000044b7 fetch  0x00000001 , 0x000043fc 
+ 00019986  0x000044b8 beq  0x00000034 , 0x00004e1e 
+ 00019987  0x000044b9 branch  0x000053ad 
+ 00019988  0x000044bc bpatch  0x0000007b , 0x0000400f 
+ 00019989  0x000044bd disable  0x00000028 
+ 00019990  0x000044be fetch  0x00000008 , 0x0000470e 
+ 00019991  0x000044bf bbit0  0x0000000a , 0x00004e1b 
+ 00019992  0x000044c0 fetch  0x00000001 , 0x00008132 
+ 00019993  0x000044c1 bbit1  0x00000004 , 0x00004e1b 
+ 00019994  0x000044c2 enable  0x00000028 
+ 00019995  0x000044c4 fetch  0x00000001 , 0x00004740 
+ 00019996  0x000044c5 store  0x00000001 , 0x0000473f 
+ 00019997  0x000044c6 rtn 
+ 00019998  0x000044c9 jam  0x00000001 , 0x00004754 
+ 00019999  0x000044ca fetcht  0x00000001 , 0x00004719 
+ 00020000  0x000044cb fetch  0x00000001 , 0x0000474f 
+ 00020001  0x000044cc beq  0x000000ff , 0x00004e23 
+ 00020002  0x000044cd fetcht  0x00000001 , 0x00004653 
+ 00020003  0x000044cf storet  0x00000001 , 0x00004720 
+ 00020004  0x000044d0 call  0x000037a2 
+ 00020005  0x000044d1 fetch  0x00000003 , 0x0000475c 
+ 00020006  0x000044d2 store  0x00000003 , 0x00004351 
+ 00020007  0x000044d3 call  0x0000545e 
+ 00020008  0x000044d4 setarg  0x00000004 
+ 00020009  0x000044d5 istore  0x00000001 , 0x00000006 
+ 00020010  0x000044d6 arg  0x0000436d , 0x00000006 
+ 00020011  0x000044d7 call  0x00005465 
+ 00020012  0x000044d8 branch  0x00007860 
+ 00020013  0x000044dd bmark1  0x00000026 , 0x0000377d 
+ 00020014  0x000044de fetch  0x00000001 , 0x000049f9 
+ 00020015  0x000044df branch  0x0000377d , 0x00000034 
+ 00020016  0x000044e0 fetch  0x00000001 , 0x00004781 
+ 00020017  0x000044e1 beq  0x00000001 , 0x0000377d 
+ 00020018  0x000044e2 fetch  0x00000001 , 0x00004672 
+ 00020019  0x000044e3 nbranch  0x0000377d , 0x00000034 
+ 00020020  0x000044e4 branch  0x0000377f 
+ 00020021  0x000044e9 bpatch  0x0000007c , 0x0000400f 
+ 00020022  0x000044ea setarg  0x00000006 
+ 00020023  0x000044eb call  0x00006971 
+ 00020024  0x000044ec bbit1  0x00000003 , 0x00004e3b 
+ 00020025  0x000044ed call  0x000052f0 
+ 00020026  0x000044ee call  0x00005303 
+ 00020027  0x000044f0 call  0x00004e42 
+ 00020028  0x000044f1 branch  0x0000379c 
+ 00020029  0x000044f4 bpatch  0x0000007d , 0x0000400f 
+ 00020030  0x000044f5 call  0x00007388 
+ 00020031  0x000044f7 call  0x0000567d 
+ 00020032  0x000044f8 fetcht  0x00000001 , 0x00004667 
+ 00020033  0x000044f9 branch  0x00006ecd 
+ 00020034  0x000044fc bpatch  0x0000007e , 0x0000400f 
+ 00020035  0x000044fd call  0x000053ab 
+ 00020036  0x000044fe call  0x00007de6 
+ 00020037  0x000044ff call  0x00004fc9 
+ 00020038  0x00004500 fetch  0x00000001 , 0x00004894 
+ 00020039  0x00004501 call  0x00005254 
+ 00020040  0x00004502 fetcht  0x00000001 , 0x00004665 
+ 00020041  0x00004503 call  0x00004f02 
+ 00020042  0x00004504 call  0x00004e75 
+ 00020043  0x00004506 fetcht  0x00000001 , 0x00004666 
+ 00020044  0x00004507 call  0x00004f0a 
+ 00020045  0x00004508 call  0x00004f0e 
+ 00020046  0x00004509 call  0x000059fc 
+ 00020047  0x0000450a call  0x00005ace 
+ 00020048  0x0000450b call  0x00004e5c 
+ 00020049  0x0000450c branch  0x00004e52 
+ 00020050  0x0000450f fetch  0x00000008 , 0x0000470e 
+ 00020051  0x00004510 rtnbit0  0x0000003c 
+ 00020052  0x00004512 fetcht  0x00000001 , 0x00004668 
+ 00020053  0x00004513 call  0x00006ecd 
+ 00020054  0x00004514 fetcht  0x00000001 , 0x00004669 
+ 00020055  0x00004515 call  0x00006ecd 
+ 00020056  0x00004516 fetcht  0x00000001 , 0x00004668 
+ 00020057  0x00004517 call  0x00004f06 
+ 00020058  0x00004518 fetcht  0x00000001 , 0x00004669 
+ 00020059  0x00004519 branch  0x00004f06 
+ 00020060  0x0000451c fetch  0x00000008 , 0x0000470e 
+ 00020061  0x0000451d rtnbit0  0x00000013 
+ 00020062  0x0000451e fetch  0x00000001 , 0x0000441d 
+ 00020063  0x0000451f rtnne  0x00000002 
+ 00020064  0x00004520 fetcht  0x00000001 , 0x0000464c 
+ 00020065  0x00004521 branch  0x00006f05 
+ 00020066  0x00004526 arg  0x00008070 , 0x00000006 
+ 00020067  0x00004527 arg  0x00000010 , 0x00000039 
+ 00020068  0x00004529 ifetch  0x00000001 , 0x00000006 
+ 00020069  0x0000452a nbranch  0x00004e69 , 0x00000034 
+ 00020070  0x0000452b setarg  0x00000080 
+ 00020071  0x0000452c add  0x00000006 , 0xffffffff , 0x00000005 
+ 00020072  0x0000452d istore  0x00000001 , 0x00000005 
+ 00020073  0x0000452f loop  0x00004e64 
+ 00020074  0x00004530 arg  0x000080dc , 0x0000003f 
+ 00020075  0x00004531 isub  0x00000006 , 0x0000003e 
+ 00020076  0x00004532 rtn  0x00000005 
+ 00020077  0x00004534 arg  0x00000008 , 0x00000039 
+ 00020078  0x00004535 arg  0x000080d4 , 0x00000006 
+ 00020079  0x00004536 branch  0x00004e64 
+ 00020080  0x00004539 rtnmark1  0x00000026 
+ 00020081  0x0000453a call  0x00004e75 
+ 00020082  0x0000453b fetch  0x00000001 , 0x00000015 
+ 00020083  0x0000453c nrtn  0x00000034 
+ 00020084  0x0000453d branch  0x00006ecd 
+ 00020085  0x00004540 bpatch  0x0000007f , 0x0000400f 
+ 00020086  0x00004541 jam  0x00000000 , 0x0000488c 
+ 00020087  0x00004542 call  0x00007de6 
+ 00020088  0x00004543 fetcht  0x00000001 , 0x0000489c 
+ 00020089  0x00004544 call  0x00006ef1 
+ 00020090  0x00004545 fetcht  0x00000001 , 0x0000489c 
+ 00020091  0x00004546 call  0x00006ecd 
+ 00020092  0x00004548 call  0x00004f42 
+ 00020093  0x00004549 fetch  0x00000001 , 0x00004893 
+ 00020094  0x0000454a call  0x00005254 
+ 00020095  0x0000454b call  0x00006968 
+ 00020096  0x0000454d fetcht  0x00000001 , 0x0000488d 
+ 00020097  0x0000454e call  0x00006eac 
+ 00020098  0x0000454f fetcht  0x00000001 , 0x0000488f 
+ 00020099  0x00004550 call  0x00006eac 
+ 00020100  0x00004551 fetcht  0x00000001 , 0x0000488e 
+ 00020101  0x00004552 call  0x00006eac 
+ 00020102  0x00004554 fetcht  0x00000001 , 0x00004890 
+ 00020103  0x00004555 call  0x00006eac 
+ 00020104  0x00004556 fetcht  0x00000001 , 0x00004891 
+ 00020105  0x00004557 call  0x00006eac 
+ 00020106  0x00004558 fetcht  0x00000001 , 0x00004892 
+ 00020107  0x00004559 call  0x00006eac 
+ 00020108  0x0000455a fetcht  0x00000001 , 0x0000489d 
+ 00020109  0x0000455b call  0x00006eac 
+ 00020110  0x0000455d fetcht  0x00000001 , 0x0000489e 
+ 00020111  0x0000455e call  0x00006eac 
+ 00020112  0x00004560 call  0x00004e62 
+ 00020113  0x00004562 fetcht  0x00000001 , 0x00004668 
+ 00020114  0x00004563 call  0x00006ea5 
+ 00020115  0x00004564 fetcht  0x00000001 , 0x00004669 
+ 00020116  0x00004565 call  0x00006ea5 
+ 00020117  0x00004566 fetcht  0x00000001 , 0x0000489a 
+ 00020118  0x00004567 call  0x00006ea5 
+ 00020119  0x00004568 fetcht  0x00000001 , 0x0000489b 
+ 00020120  0x00004569 call  0x00006ea5 
+ 00020121  0x0000456a fetcht  0x00000001 , 0x00004667 
+ 00020122  0x0000456b branch  0x00006eac 
+ 00020123  0x00004570 fetch  0x00000002 , 0x00004500 
+ 00020124  0x00004571 rtnbit0  0x00000009 
+ 00020125  0x00004572 copy  0x00000011 , 0x0000003f 
+ 00020126  0x00004573 nbranch  0x000029b4 , 0x00000034 
+ 00020127  0x00004574 branch  0x000029b9 
+ 00020128  0x00004579 bpatch  0x00000080 , 0x00004010 
+ 00020129  0x0000457a fetch  0x00000001 , 0x0000441d 
+ 00020130  0x0000457b rtnne  0x00000002 
+ 00020131  0x0000457c fetcht  0x00000001 , 0x0000464c 
+ 00020132  0x0000457d branch  0x00006f0b 
+ 00020133  0x00004580 bpatch  0x00000081 , 0x00004010 
+ 00020134  0x00004581 fetch  0x00000008 , 0x0000470e 
+ 00020135  0x00004582 rtnbit0  0x00000013 
+ 00020136  0x00004583 call  0x00004ea0 
+ 00020137  0x00004585 call  0x00006fb2 
+ 00020138  0x00004586 call  0x00006f8e 
+ 00020139  0x00004587 store  0x00000002 , 0x0000464a 
+ 00020140  0x00004588 fetch  0x00000001 , 0x0000441d 
+ 00020141  0x00004589 bne  0x00000002 , 0x00004eb4 
+ 00020142  0x0000458a fetcht  0x00000002 , 0x0000464a 
+ 00020143  0x0000458b mul32  0x00000002 , 0x00000008 , 0x0000003f 
+ 00020144  0x0000458c div  0x0000003f , 0x0000000a 
+ 00020145  0x0000458d call  0x00007d61 
+ 00020146  0x0000458e iadd  0x00000002 , 0x0000003f 
+ 00020147  0x0000458f store  0x00000002 , 0x0000464a 
+ 00020148  0x00004591 arg  0x00004644 , 0x00000011 
+ 00020149  0x00004592 call  0x00004ec4 
+ 00020150  0x00004593 fetch  0x00000001 , 0x00004422 
+ 00020151  0x00004594 bbit1  0x00000001 , 0x00004e35 
+ 00020152  0x00004595 bbit0  0x00000000 , 0x00004ebd 
+ 00020153  0x00004596 jam  0x00000001 , 0x0000464e 
+ 00020154  0x00004597 branch  0x00004ebb 
+ 00020155  0x0000459a arg  0x00000004 , 0x00000007 
+ 00020156  0x0000459b branch  0x0000582e 
+ 00020157  0x0000459d arg  0x00000004 , 0x00000007 
+ 00020158  0x0000459e call  0x00005832 
+ 00020159  0x0000459f jam  0x00000001 , 0x0000464d 
+ 00020160  0x000045a0 fetch  0x00000001 , 0x0000464e 
+ 00020161  0x000045a1 rtn  0x00000034 
+ 00020162  0x000045a2 jam  0x00000000 , 0x0000464e 
+ 00020163  0x000045a3 branch  0x00005a43 
+ 00020164  0x000045a7 bpatch  0x00000082 , 0x00004010 
+ 00020165  0x000045a8 ifetch  0x00000008 , 0x00000011 
+ 00020166  0x000045a9 store  0x00000008 , 0x0000064e 
+ 00020167  0x000045ab call  0x00007057 
+ 00020168  0x000045ac call  0x00007051 
+ 00020169  0x000045ad fetch  0x00000002 , 0x00000654 
+ 00020170  0x000045ae fetcht  0x00000002 , 0x00000650 
+ 00020171  0x000045af isub  0x00000002 , 0x0000003e 
+ 00020172  0x000045b0 ncall  0x00007054 , 0x00000002 
+ 00020173  0x000045b1 fetcht  0x00000002 , 0x00000652 
+ 00020174  0x000045b2 isub  0x00000002 , 0x0000003e 
+ 00020175  0x000045b3 ncall  0x0000704e , 0x00000002 
+ 00020176  0x000045b5 fetch  0x00000002 , 0x00000654 
+ 00020177  0x000045b6 fetcht  0x00000002 , 0x0000064e 
+ 00020178  0x000045b7 isub  0x00000002 , 0x0000003e 
+ 00020179  0x000045b8 branch  0x00004ee1 , 0x00000002 
+ 00020180  0x000045b9 fetcht  0x00000002 , 0x00000650 
+ 00020181  0x000045ba isub  0x00000002 , 0x0000003f 
+ 00020182  0x000045bb nbranch  0x00004ee3 , 0x00000002 
+ 00020183  0x000045bc branch  0x00004ee3 , 0x00000034 
+ 00020184  0x000045bd mul32  0x0000003f , 0x00000064 , 0x00000011 
+ 00020185  0x000045be fetch  0x00000002 , 0x0000064e 
+ 00020186  0x000045bf fetcht  0x00000002 , 0x00000650 
+ 00020187  0x000045c0 isub  0x00000002 , 0x00000002 
+ 00020188  0x000045c1 copy  0x00000011 , 0x0000003f 
+ 00020189  0x000045c2 idiv  0x00000002 
+ 00020190  0x000045c3 call  0x00007d61 
+ 00020191  0x000045c4 store  0x00000001 , 0x0000477c 
+ 00020192  0x000045c5 rtn 
+ 00020193  0x000045c8 jam  0x00000064 , 0x0000477c 
+ 00020194  0x000045c9 rtn 
+ 00020195  0x000045cb jam  0x00000000 , 0x0000477c 
+ 00020196  0x000045cc rtn 
+ 00020197  0x000045d3 fetcht  0x00000001 , 0x0000443e 
+ 00020198  0x000045d4 call  0x00006ef1 
+ 00020199  0x000045d6 fetcht  0x00000001 , 0x0000488d 
+ 00020200  0x000045d7 call  0x00004f0a 
+ 00020201  0x000045d8 fetcht  0x00000001 , 0x0000488f 
+ 00020202  0x000045d9 call  0x00004f0a 
+ 00020203  0x000045da fetcht  0x00000001 , 0x0000488e 
+ 00020204  0x000045db call  0x00004f0a 
+ 00020205  0x000045dc fetcht  0x00000001 , 0x00004890 
+ 00020206  0x000045dd call  0x00004f0a 
+ 00020207  0x000045de fetcht  0x00000001 , 0x00004891 
+ 00020208  0x000045df call  0x00004f0a 
+ 00020209  0x000045e0 fetcht  0x00000001 , 0x00004892 
+ 00020210  0x000045e1 call  0x00004f0a 
+ 00020211  0x000045e3 fetcht  0x00000001 , 0x0000489c 
+ 00020212  0x000045e4 call  0x00004f0a 
+ 00020213  0x000045e6 fetcht  0x00000001 , 0x0000489d 
+ 00020214  0x000045e7 call  0x00004f0a 
+ 00020215  0x000045e9 fetcht  0x00000001 , 0x0000489e 
+ 00020216  0x000045ea call  0x00004f0a 
+ 00020217  0x000045ec call  0x0000591f 
+ 00020218  0x000045ee fetcht  0x00000001 , 0x0000489a 
+ 00020219  0x000045ef call  0x00004f0a 
+ 00020220  0x000045f0 fetcht  0x00000001 , 0x0000489b 
+ 00020221  0x000045f1 call  0x00004f0a 
+ 00020222  0x000045f3 fetcht  0x00000001 , 0x00004667 
+ 00020223  0x000045f4 call  0x00004f0a 
+ 00020224  0x000045f6 fetcht  0x00000001 , 0x00004665 
+ 00020225  0x000045f7 branch  0x00004f0a 
+ 00020226  0x000045fa and  0x00000002 , 0x0000007f , 0x00000007 
+ 00020227  0x000045fb fetch  0x00000004 , 0x0000811c 
+ 00020228  0x000045fc qisolate1  0x0000003f 
+ 00020229  0x000045fd branch  0x00004f0a , 0x00000001 
+ 00020230  0x000045ff sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00020231  0x00004600 rtn  0x00000005 
+ 00020232  0x00004601 set1  0x00000007 , 0x00000002 
+ 00020233  0x00004602 branch  0x00006ed7 
+ 00020234  0x00004605 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00020235  0x00004606 rtn  0x00000005 
+ 00020236  0x00004607 set0  0x00000007 , 0x00000002 
+ 00020237  0x00004608 branch  0x00006ed7 
+ 00020238  0x0000460b fetch  0x00000003 , 0x0000472e 
+ 00020239  0x0000460c store  0x00000003 , 0x0000064e 
+ 00020240  0x0000460d arg  0x00000018 , 0x00000039 
+ 00020241  0x0000460e arg  0x00000000 , 0x00000002 
+ 00020242  0x00004610 fetch  0x00000003 , 0x0000064e 
+ 00020243  0x00004611 isolate1  0x00000000 , 0x0000003f 
+ 00020244  0x00004612 call  0x00006f05 , 0x00000001 
+ 00020245  0x00004614 fetch  0x00000003 , 0x0000064e 
+ 00020246  0x00004615 lshift  0x0000003f , 0x0000003f 
+ 00020247  0x00004616 store  0x00000003 , 0x0000064e 
+ 00020248  0x00004617 increase  0x00000001 , 0x00000002 
+ 00020249  0x00004618 loop  0x00004f12 
+ 00020250  0x00004619 rtn 
+ 00020251  0x0000461f call  0x00004f20 
+ 00020252  0x00004620 jam  0x00000073 , 0x000043fe 
+ 00020253  0x00004622 call  0x00004f1f 
+ 00020254  0x00004623 branch  0x0000696c 
+ 00020255  0x00004627 branch  0x00006bbc 
+ 00020256  0x0000462a fetch  0x00000001 , 0x00004893 
+ 00020257  0x0000462b arg  0x00000021 , 0x00000002 
+ 00020258  0x0000462c call  0x00006f1d 
+ 00020259  0x0000462d fetch  0x00000001 , 0x00004894 
+ 00020260  0x0000462e arg  0x00000023 , 0x00000002 
+ 00020261  0x0000462f branch  0x00006f1d 
+ 00020262  0x00004635 bpatch  0x00000083 , 0x00004010 
+ 00020263  0x00004636 call  0x0000684e 
+ 00020264  0x00004637 disable  0x00000028 
+ 00020265  0x00004638 setarg  0x00000000 
+ 00020266  0x00004639 store  0x00000006 , 0x0000465d 
+ 00020267  0x0000463a call  0x0000530c 
+ 00020268  0x0000463b setarg  0x00000089 
+ 00020269  0x0000463c call  0x00006970 
+ 00020270  0x0000463d call  0x0000506b 
+ 00020271  0x0000463e call  0x00004f38 
+ 00020272  0x0000463f call  0x00004f3d 
+ 00020273  0x00004640 call  0x000050ca 
+ 00020274  0x00004641 fetch  0x00000001 , 0x0000465c 
+ 00020275  0x00004642 and_into  0x0000001f , 0x0000003f 
+ 00020276  0x00004643 store  0x00000001 , 0x0000465c 
+ 00020277  0x00004644 nbranch  0x00005853 , 0x00000028 
+ 00020278  0x00004645 call  0x00005841 
+ 00020279  0x00004646 branch  0x00005535 
+ 00020280  0x0000464b fetch  0x00000001 , 0x00004671 
+ 00020281  0x0000464c rtn  0x00000034 
+ 00020282  0x0000464d store  0x00000001 , 0x00004661 
+ 00020283  0x0000464e jam  0x00000000 , 0x00004671 
+ 00020284  0x0000464f branch  0x00007dbc 
+ 00020285  0x00004652 fetch  0x00000001 , 0x0000466d 
+ 00020286  0x00004653 rtn  0x00000034 
+ 00020287  0x00004654 store  0x00000001 , 0x00004662 
+ 00020288  0x00004655 jam  0x00000000 , 0x0000466d 
+ 00020289  0x00004656 branch  0x00007dbc 
+ 00020290  0x00004659 bpatch  0x00000084 , 0x00004010 
+ 00020291  0x0000465a call  0x0000591f 
+ 00020292  0x0000465b call  0x00004f51 
+ 00020293  0x0000465c call  0x00004f8d 
+ 00020294  0x0000465d fetch  0x00000001 , 0x0000466b 
+ 00020295  0x0000465e fetcht  0x00000001 , 0x0000466a 
+ 00020296  0x0000465f store  0x00000001 , 0x0000466a 
+ 00020297  0x00004660 isub  0x00000002 , 0x0000003e 
+ 00020298  0x00004661 nbranch  0x00003781 , 0x00000005 
+ 00020299  0x00004662 fetch  0x00000001 , 0x0000466f 
+ 00020300  0x00004663 fetcht  0x00000001 , 0x0000466e 
+ 00020301  0x00004664 store  0x00000001 , 0x0000466e 
+ 00020302  0x00004665 isub  0x00000002 , 0x0000003e 
+ 00020303  0x00004666 nbranch  0x00003781 , 0x00000005 
+ 00020304  0x00004667 rtn 
+ 00020305  0x00004669 fetch  0x00000001 , 0x0000489a 
+ 00020306  0x0000466a rtneq  0x000000ff 
+ 00020307  0x0000466b arg  0x00000000 , 0x00000011 
+ 00020308  0x0000466c fetcht  0x00000001 , 0x0000489a 
+ 00020309  0x0000466d call  0x00006ee0 
+ 00020310  0x0000466e setflag  0x00000001 , 0x00000000 , 0x00000011 
+ 00020311  0x0000466f fetcht  0x00000001 , 0x0000489b 
+ 00020312  0x00004670 call  0x00006ee0 
+ 00020313  0x00004671 setflag  0x00000001 , 0x00000001 , 0x00000011 
+ 00020314  0x00004672 copy  0x00000011 , 0x0000003f 
+ 00020315  0x00004673 store  0x00000001 , 0x0000466b 
+ 00020316  0x00004674 beq  0x00000001 , 0x00004f61 
+ 00020317  0x00004675 beq  0x00000002 , 0x00004f65 
+ 00020318  0x00004676 fetch  0x00000001 , 0x0000466c 
+ 00020319  0x00004677 bbit1  0x00000007 , 0x00004f71 
+ 00020320  0x00004678 rtn 
+ 00020321  0x0000467b fetch  0x00000001 , 0x0000466a 
+ 00020322  0x0000467c beq  0x00000000 , 0x00004f69 
+ 00020323  0x0000467d beq  0x00000003 , 0x00004f6b 
+ 00020324  0x0000467e rtn 
+ 00020325  0x00004680 fetch  0x00000001 , 0x0000466a 
+ 00020326  0x00004681 beq  0x00000000 , 0x00004f6d 
+ 00020327  0x00004682 beq  0x00000003 , 0x00004f6f 
+ 00020328  0x00004683 rtn 
+ 00020329  0x00004685 jam  0x00000082 , 0x0000466c 
+ 00020330  0x00004686 rtn 
+ 00020331  0x00004688 jam  0x00000081 , 0x0000466c 
+ 00020332  0x00004689 rtn 
+ 00020333  0x0000468b jam  0x00000080 , 0x0000466c 
+ 00020334  0x0000468c rtn 
+ 00020335  0x0000468e jam  0x00000083 , 0x0000466c 
+ 00020336  0x0000468f rtn 
+ 00020337  0x00004691 fetch  0x00000001 , 0x0000466c 
+ 00020338  0x00004692 set0  0x00000007 , 0x0000003f 
+ 00020339  0x00004693 store  0x00000001 , 0x0000466c 
+ 00020340  0x00004694 beq  0x00000000 , 0x00004f79 
+ 00020341  0x00004695 beq  0x00000001 , 0x00004f7c 
+ 00020342  0x00004696 beq  0x00000002 , 0x00004f7f 
+ 00020343  0x00004697 beq  0x00000003 , 0x00004f82 
+ 00020344  0x00004698 rtn 
+ 00020345  0x0000469a fetch  0x00000001 , 0x0000466b 
+ 00020346  0x0000469b beq  0x00000003 , 0x00004f85 
+ 00020347  0x0000469c rtn 
+ 00020348  0x0000469e fetch  0x00000001 , 0x0000466b 
+ 00020349  0x0000469f beq  0x00000000 , 0x00004f85 
+ 00020350  0x000046a0 rtn 
+ 00020351  0x000046a2 fetch  0x00000001 , 0x0000466b 
+ 00020352  0x000046a3 beq  0x00000003 , 0x00004f89 
+ 00020353  0x000046a4 rtn 
+ 00020354  0x000046a6 fetch  0x00000001 , 0x0000466b 
+ 00020355  0x000046a7 beq  0x00000000 , 0x00004f89 
+ 00020356  0x000046a8 rtn 
+ 00020357  0x000046aa fetch  0x00000001 , 0x0000466d 
+ 00020358  0x000046ab increase  0x00000001 , 0x0000003f 
+ 00020359  0x000046ac store  0x00000001 , 0x0000466d 
+ 00020360  0x000046ad rtn 
+ 00020361  0x000046af fetch  0x00000001 , 0x0000466d 
+ 00020362  0x000046b0 increase  0xffffffff , 0x0000003f 
+ 00020363  0x000046b1 store  0x00000001 , 0x0000466d 
+ 00020364  0x000046b2 rtn 
+ 00020365  0x000046b6 fetch  0x00000001 , 0x00004668 
+ 00020366  0x000046b7 rtneq  0x000000ff 
+ 00020367  0x000046b8 arg  0x00000000 , 0x00000011 
+ 00020368  0x000046b9 fetcht  0x00000001 , 0x00004668 
+ 00020369  0x000046ba call  0x00006ee0 
+ 00020370  0x000046bb setflag  0x00000001 , 0x00000000 , 0x00000011 
+ 00020371  0x000046bc fetcht  0x00000001 , 0x00004669 
+ 00020372  0x000046bd call  0x00006ee0 
+ 00020373  0x000046be setflag  0x00000001 , 0x00000001 , 0x00000011 
+ 00020374  0x000046bf copy  0x00000011 , 0x0000003f 
+ 00020375  0x000046c0 store  0x00000001 , 0x0000466f 
+ 00020376  0x000046c1 beq  0x00000001 , 0x00004f9d 
+ 00020377  0x000046c2 beq  0x00000002 , 0x00004fa1 
+ 00020378  0x000046c3 fetch  0x00000001 , 0x00004670 
+ 00020379  0x000046c4 bbit1  0x00000007 , 0x00004fad 
+ 00020380  0x000046c5 rtn 
+ 00020381  0x000046c8 fetch  0x00000001 , 0x0000466e 
+ 00020382  0x000046c9 beq  0x00000000 , 0x00004fa5 
+ 00020383  0x000046ca beq  0x00000003 , 0x00004fa7 
+ 00020384  0x000046cb rtn 
+ 00020385  0x000046cd fetch  0x00000001 , 0x0000466e 
+ 00020386  0x000046ce beq  0x00000000 , 0x00004fa9 
+ 00020387  0x000046cf beq  0x00000003 , 0x00004fab 
+ 00020388  0x000046d0 rtn 
+ 00020389  0x000046d2 jam  0x00000082 , 0x00004670 
+ 00020390  0x000046d3 rtn 
+ 00020391  0x000046d5 jam  0x00000081 , 0x00004670 
+ 00020392  0x000046d6 rtn 
+ 00020393  0x000046d8 jam  0x00000080 , 0x00004670 
+ 00020394  0x000046d9 rtn 
+ 00020395  0x000046db jam  0x00000083 , 0x00004670 
+ 00020396  0x000046dc rtn 
+ 00020397  0x000046de fetch  0x00000001 , 0x00004670 
+ 00020398  0x000046df set0  0x00000007 , 0x0000003f 
+ 00020399  0x000046e0 store  0x00000001 , 0x00004670 
+ 00020400  0x000046e1 beq  0x00000000 , 0x00004fb5 
+ 00020401  0x000046e2 beq  0x00000001 , 0x00004fb8 
+ 00020402  0x000046e3 beq  0x00000002 , 0x00004fbb 
+ 00020403  0x000046e4 beq  0x00000003 , 0x00004fbe 
+ 00020404  0x000046e5 rtn 
+ 00020405  0x000046e7 fetch  0x00000001 , 0x0000466f 
+ 00020406  0x000046e8 beq  0x00000003 , 0x00004fc1 
+ 00020407  0x000046e9 rtn 
+ 00020408  0x000046eb fetch  0x00000001 , 0x0000466f 
+ 00020409  0x000046ec beq  0x00000000 , 0x00004fc1 
+ 00020410  0x000046ed rtn 
+ 00020411  0x000046ef fetch  0x00000001 , 0x0000466f 
+ 00020412  0x000046f0 beq  0x00000003 , 0x00004fc5 
+ 00020413  0x000046f1 rtn 
+ 00020414  0x000046f3 fetch  0x00000001 , 0x0000466f 
+ 00020415  0x000046f4 beq  0x00000000 , 0x00004fc5 
+ 00020416  0x000046f5 rtn 
+ 00020417  0x000046f7 fetch  0x00000001 , 0x00004671 
+ 00020418  0x000046f8 increase  0x00000001 , 0x0000003f 
+ 00020419  0x000046f9 store  0x00000001 , 0x00004671 
+ 00020420  0x000046fa rtn 
+ 00020421  0x000046fc fetch  0x00000001 , 0x00004671 
+ 00020422  0x000046fd increase  0xffffffff , 0x0000003f 
+ 00020423  0x000046fe store  0x00000001 , 0x00004671 
+ 00020424  0x000046ff rtn 
+ 00020425  0x00004702 fetcht  0x00000001 , 0x00004668 
+ 00020426  0x00004703 call  0x00004f02 
+ 00020427  0x00004704 fetcht  0x00000001 , 0x00004669 
+ 00020428  0x00004705 call  0x00004f02 
+ 00020429  0x00004706 fetcht  0x00000001 , 0x0000489a 
+ 00020430  0x00004707 call  0x00004f02 
+ 00020431  0x00004708 fetcht  0x00000001 , 0x0000489b 
+ 00020432  0x00004709 branch  0x00004f02 
+ 00020433  0x0000470c fetch  0x00000002 , 0x00004661 
+ 00020434  0x0000470d rtn  0x00000034 
+ 00020435  0x0000470e jam  0x00000001 , 0x00004672 
+ 00020436  0x0000470f jam  0x0000000a , 0x00004673 
+ 00020437  0x00004710 rtn 
+ 00020438  0x00004713 arg  0x00004673 , 0x00000013 
+ 00020439  0x00004714 arg  0x00004fd9 , 0x00000012 
+ 00020440  0x00004715 branch  0x00003755 
+ 00020441  0x00004717 jam  0x00000000 , 0x00004672 
+ 00020442  0x00004718 rtn 
+ 00020443  0x00004721 fetch  0x00000001 , 0x00004892 
+ 00020444  0x00004722 rtneq  0x000000ff 
+ 00020445  0x00004723 arg  0x00000000 , 0x00000011 
+ 00020446  0x00004724 jam  0x00000005 , 0x00004a0f 
+ 00020447  0x00004725 fetcht  0x00000001 , 0x00004892 
+ 00020448  0x00004726 call  0x00004fe8 
+ 00020449  0x00004727 store  0x00000001 , 0x00004a0c 
+ 00020450  0x00004728 fetch  0x00000001 , 0x0000489c 
+ 00020451  0x00004729 beq  0x000000ff , 0x00004ffc 
+ 00020452  0x0000472a call  0x00005203 
+ 00020453  0x0000472c copy  0x00000011 , 0x0000003f 
+ 00020454  0x0000472d bbit1  0x00000005 , 0x00005004 
+ 00020455  0x0000472e branch  0x0000500b 
+ 00020456  0x00004731 fetch  0x00000008 , 0x0000470e 
+ 00020457  0x00004732 bbit1  0x0000002b , 0x00005002 
+ 00020458  0x00004733 fetch  0x00000001 , 0x00004a0c 
+ 00020459  0x00004734 copy  0x0000003f , 0x00000013 
+ 00020460  0x00004735 fetch  0x00000001 , 0x0000489c 
+ 00020461  0x00004736 beq  0x000000ff , 0x00004ff8 
+ 00020462  0x00004737 fetch  0x00000001 , 0x00004a13 
+ 00020463  0x00004738 nbranch  0x00004fff , 0x00000034 
+ 00020464  0x0000473a call  0x00006ee0 
+ 00020465  0x0000473b fetcht  0x00000001 , 0x0000489c 
+ 00020466  0x0000473c branch  0x00005002 , 0x00000001 
+ 00020467  0x0000473d fetcht  0x00000001 , 0x0000489c 
+ 00020468  0x0000473e call  0x00006ef1 
+ 00020469  0x0000473f fetcht  0x00000001 , 0x00004892 
+ 00020470  0x00004740 fetch  0x00000001 , 0x00004a0c 
+ 00020471  0x00004741 branch  0x00005236 
+ 00020472  0x00004744 fetch  0x00000001 , 0x00004892 
+ 00020473  0x00004745 call  0x00005256 
+ 00020474  0x00004746 fetcht  0x00000001 , 0x00004892 
+ 00020475  0x00004747 branch  0x00005242 
+ 00020476  0x0000474b fetcht  0x00000001 , 0x00004892 
+ 00020477  0x0000474c call  0x00004f0a 
+ 00020478  0x0000474d branch  0x00004fe5 
+ 00020479  0x00004750 jam  0x00000000 , 0x00004917 
+ 00020480  0x00004751 jam  0x00000000 , 0x00004a0c 
+ 00020481  0x00004752 rtn 
+ 00020482  0x00004755 fetch  0x00000001 , 0x00004a0c 
+ 00020483  0x00004756 branch  0x00005236 
+ 00020484  0x00004759 fetch  0x00000001 , 0x00004917 
+ 00020485  0x0000475a rtneq  0x00000001 
+ 00020486  0x0000475b jam  0x00000001 , 0x00004917 
+ 00020487  0x0000475c fetch  0x00000008 , 0x0000470e 
+ 00020488  0x0000475d rtnbit1  0x00000028 
+ 00020489  0x0000475e rtnbit1  0x00000036 
+ 00020490  0x0000475f branch  0x0000501b 
+ 00020491  0x00004762 fetch  0x00000001 , 0x00004917 
+ 00020492  0x00004763 rtneq  0x00000000 
+ 00020493  0x00004764 jam  0x00000000 , 0x00004917 
+ 00020494  0x00004765 fetch  0x00000008 , 0x0000470e 
+ 00020495  0x00004766 bbit1  0x00000028 , 0x00005012 
+ 00020496  0x00004767 bbit1  0x00000036 , 0x00005012 
+ 00020497  0x00004768 rtn 
+ 00020498  0x0000476a fetch  0x00000001 , 0x00004918 
+ 00020499  0x0000476b nbranch  0x00005016 , 0x00000034 
+ 00020500  0x0000476c fetch  0x00000001 , 0x00004732 
+ 00020501  0x0000476d ncall  0x0000501b , 0x00000034 
+ 00020502  0x0000476f jam  0x00000000 , 0x00004918 
+ 00020503  0x00004770 fetch  0x00000001 , 0x00004502 
+ 00020504  0x00004771 store  0x00000001 , 0x00004732 
+ 00020505  0x00004772 store  0x00000001 , 0x00004731 
+ 00020506  0x00004773 rtn 
+ 00020507  0x00004776 bpatch  0x00000085 , 0x00004010 
+ 00020508  0x00004777 call  0x0000504c 
+ 00020509  0x00004778 rtn  0x00000028 
+ 00020510  0x0000477a fetch  0x00000001 , 0x000046a2 
+ 00020511  0x0000477c copy  0x0000003f , 0x00000002 
+ 00020512  0x0000477d fetch  0x00000008 , 0x0000470e 
+ 00020513  0x0000477e bbit1  0x00000015 , 0x00005028 
+ 00020514  0x0000477f copy  0x00000002 , 0x0000003f 
+ 00020515  0x00004781 increase  0x00000001 , 0x0000003f 
+ 00020516  0x00004782 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00020517  0x00004784 store  0x00000001 , 0x000046a2 
+ 00020518  0x00004785 call  0x00005068 
+ 00020519  0x00004786 branch  0x0000557a 
+ 00020520  0x0000478c fetch  0x00000001 , 0x00004a1c 
+ 00020521  0x0000478d nbranch  0x00005045 , 0x00000034 
+ 00020522  0x0000478f fetch  0x00000008 , 0x0000470e 
+ 00020523  0x00004790 bbit1  0x0000001c , 0x00005039 
+ 00020524  0x00004791 copy  0x00000002 , 0x0000003f 
+ 00020525  0x00004792 rtneq  0x00000001 
+ 00020526  0x00004794 beq  0x00000000 , 0x00005035 
+ 00020527  0x00004795 beq  0x00000002 , 0x00005033 
+ 00020528  0x00004796 rtn 
+ 00020529  0x00004799 setarg  0x00000002 
+ 00020530  0x0000479a branch  0x00005025 
+ 00020531  0x0000479c setarg  0x00000000 
+ 00020532  0x0000479d branch  0x00005025 
+ 00020533  0x0000479f setarg  0x00000001 
+ 00020534  0x000047a0 branch  0x00005025 
+ 00020535  0x000047a2 setarg  0x00000003 
+ 00020536  0x000047a3 branch  0x00005025 
+ 00020537  0x000047a6 copy  0x00000002 , 0x0000003f 
+ 00020538  0x000047a7 rtneq  0x00000001 
+ 00020539  0x000047a8 beq  0x00000000 , 0x00005035 
+ 00020540  0x000047a9 beq  0x00000002 , 0x00005037 
+ 00020541  0x000047aa beq  0x00000003 , 0x00005033 
+ 00020542  0x000047ab rtn 
+ 00020543  0x000047ad copy  0x00000002 , 0x0000003f 
+ 00020544  0x000047ae rtneq  0x00000002 
+ 00020545  0x000047af beq  0x00000000 , 0x00005037 
+ 00020546  0x000047b0 beq  0x00000001 , 0x00005033 
+ 00020547  0x000047b1 beq  0x00000003 , 0x00005031 
+ 00020548  0x000047b2 rtn 
+ 00020549  0x000047b6 fetch  0x00000008 , 0x0000470e 
+ 00020550  0x000047b7 bbit1  0x0000001c , 0x0000503f 
+ 00020551  0x000047b8 copy  0x00000002 , 0x0000003f 
+ 00020552  0x000047b9 rtneq  0x00000002 
+ 00020553  0x000047bb beq  0x00000000 , 0x00005031 
+ 00020554  0x000047bc beq  0x00000001 , 0x00005033 
+ 00020555  0x000047bd rtn 
+ 00020556  0x000047c3 disable  0x00000028 
+ 00020557  0x000047c4 fetch  0x00000008 , 0x0000470e 
+ 00020558  0x000047c5 rtnbit1  0x0000002b 
+ 00020559  0x000047c6 branch  0x000057b1 
+ 00020560  0x000047c9 fetch  0x00000008 , 0x0000470e 
+ 00020561  0x000047ca bbit1  0x00000028 , 0x00005054 
+ 00020562  0x000047cb bbit1  0x00000036 , 0x0000505b 
+ 00020563  0x000047cc rtn 
+ 00020564  0x000047cf fetch  0x00000001 , 0x00004917 
+ 00020565  0x000047d0 rtnne  0x00000001 
+ 00020566  0x000047d1 arg  0x00004732 , 0x00000013 
+ 00020567  0x000047d2 arg  0x00005059 , 0x00000012 
+ 00020568  0x000047d3 branch  0x00003755 
+ 00020569  0x000047d6 jam  0x00000001 , 0x00004918 
+ 00020570  0x000047d7 branch  0x000057f6 
+ 00020571  0x000047da fetch  0x00000001 , 0x00004917 
+ 00020572  0x000047db rtnne  0x00000001 
+ 00020573  0x000047dc arg  0x00004731 , 0x00000013 
+ 00020574  0x000047dd arg  0x00005060 , 0x00000012 
+ 00020575  0x000047de branch  0x00003755 
+ 00020576  0x000047e1 jam  0x00000001 , 0x00004918 
+ 00020577  0x000047e2 branch  0x000054b2 
+ 00020578  0x000047e5 fetch  0x00000008 , 0x0000470e 
+ 00020579  0x000047e6 rtnbit1  0x0000001c 
+ 00020580  0x000047e7 fetch  0x00000001 , 0x000046a2 
+ 00020581  0x000047e8 rtnne  0x00000003 
+ 00020582  0x000047e9 jam  0x00000000 , 0x000046a2 
+ 00020583  0x000047ea rtn 
+ 00020584  0x000047ed bpatch  0x00000086 , 0x00004010 
+ 00020585  0x000047ee call  0x00005062 
+ 00020586  0x000047ef call  0x00005a1e 
+ 00020587  0x000047f1 bpatch  0x00000087 , 0x00004010 
+ 00020588  0x000047f2 fetch  0x00000001 , 0x000049fa 
+ 00020589  0x000047f3 beq  0x0000000c , 0x0000508f 
+ 00020590  0x000047f4 beq  0x00000003 , 0x000050a9 
+ 00020591  0x000047f5 beq  0x0000000b , 0x000050bd 
+ 00020592  0x000047f6 fetch  0x00000001 , 0x000046a2 
+ 00020593  0x000047f7 beq  0x00000000 , 0x00005077 
+ 00020594  0x000047f8 beq  0x00000001 , 0x00005075 
+ 00020595  0x000047f9 beq  0x00000002 , 0x00005079 
+ 00020596  0x000047fa beq  0x00000003 , 0x0000507b 
+ 00020597  0x000047fc fetcht  0x00000001 , 0x00004906 
+ 00020598  0x000047fd branch  0x0000507c 
+ 00020599  0x000047ff fetcht  0x00000001 , 0x00004905 
+ 00020600  0x00004800 branch  0x0000507c 
+ 00020601  0x00004802 fetcht  0x00000001 , 0x00004907 
+ 00020602  0x00004803 branch  0x0000507c 
+ 00020603  0x00004805 fetcht  0x00000001 , 0x00004908 
+ 00020604  0x00004807 fetch  0x00000001 , 0x000049fa 
+ 00020605  0x00004808 beq  0x00000004 , 0x0000508b 
+ 00020606  0x00004809 beq  0x00000005 , 0x0000508b 
+ 00020607  0x0000480a beq  0x00000008 , 0x0000508d 
+ 00020608  0x0000480b beq  0x00000007 , 0x0000508d 
+ 00020609  0x0000480c beq  0x00000006 , 0x0000508b 
+ 00020610  0x0000480e storet  0x00000001 , 0x00004916 
+ 00020611  0x0000480f setarg  0x00000006 
+ 00020612  0x00004810 call  0x00006971 
+ 00020613  0x00004811 and  0x0000003f , 0x000000f8 , 0x00000002 
+ 00020614  0x00004812 fetch  0x00000001 , 0x00004916 
+ 00020615  0x00004813 iadd  0x00000002 , 0x0000003f 
+ 00020616  0x00004814 lshift8  0x0000003f , 0x0000003f 
+ 00020617  0x00004815 add  0x0000003f , 0x00000006 , 0x0000003f 
+ 00020618  0x00004816 branch  0x00006970 
+ 00020619  0x00004819 increase  0xffffffff , 0x00000002 
+ 00020620  0x0000481a branch  0x00005082 
+ 00020621  0x0000481d increase  0x00000002 , 0x00000002 
+ 00020622  0x0000481e branch  0x00005082 
+ 00020623  0x00004821 fetch  0x00000001 , 0x000046a2 
+ 00020624  0x00004822 beq  0x00000000 , 0x00005095 
+ 00020625  0x00004823 beq  0x00000001 , 0x00005099 
+ 00020626  0x00004824 beq  0x00000002 , 0x0000509b 
+ 00020627  0x00004825 beq  0x00000003 , 0x0000509d 
+ 00020628  0x00004826 rtn 
+ 00020629  0x00004828 fetch  0x00000001 , 0x00004911 
+ 00020630  0x00004829 branch  0x0000509e 
+ 00020631  0x0000482c fetch  0x00000001 , 0x00004912 
+ 00020632  0x0000482d branch  0x0000509e 
+ 00020633  0x00004830 fetch  0x00000001 , 0x00004913 
+ 00020634  0x00004831 branch  0x0000509e 
+ 00020635  0x00004834 fetch  0x00000001 , 0x00004914 
+ 00020636  0x00004835 branch  0x0000509e 
+ 00020637  0x00004838 fetch  0x00000001 , 0x00004915 
+ 00020638  0x0000483a copy  0x0000003f , 0x00000011 
+ 00020639  0x0000483b setarg  0x0000c309 
+ 00020640  0x0000483c call  0x00006970 
+ 00020641  0x0000483d copy  0x00000011 , 0x0000003f 
+ 00020642  0x0000483e lshift8  0x0000003f , 0x0000003f 
+ 00020643  0x0000483f add  0x0000003f , 0x00000023 , 0x0000003f 
+ 00020644  0x00004840 call  0x00006970 
+ 00020645  0x00004842 setarg  0x00000009 
+ 00020646  0x00004843 branch  0x00006970 
+ 00020647  0x00004845 setarg  0x00005a09 
+ 00020648  0x00004846 branch  0x00006970 
+ 00020649  0x00004849 fetch  0x00000001 , 0x000046a2 
+ 00020650  0x0000484a beq  0x00000000 , 0x000050b0 
+ 00020651  0x0000484b beq  0x00000001 , 0x000050ae 
+ 00020652  0x0000484c beq  0x00000002 , 0x000050b2 
+ 00020653  0x0000484d beq  0x00000003 , 0x000050b4 
+ 00020654  0x0000484f fetch  0x00000001 , 0x0000490a 
+ 00020655  0x00004850 branch  0x000050b5 
+ 00020656  0x00004852 fetch  0x00000001 , 0x00004909 
+ 00020657  0x00004853 branch  0x000050b5 
+ 00020658  0x00004855 fetch  0x00000001 , 0x0000490b 
+ 00020659  0x00004856 branch  0x000050b5 
+ 00020660  0x00004858 fetch  0x00000001 , 0x0000490c 
+ 00020661  0x0000485a store  0x00000001 , 0x00004916 
+ 00020662  0x0000485b lshift8  0x0000003f , 0x0000003f 
+ 00020663  0x0000485c copy  0x0000003f , 0x00000011 
+ 00020664  0x0000485d add  0x0000003f , 0x0000000d , 0x0000003f 
+ 00020665  0x0000485e call  0x00006970 
+ 00020666  0x0000485f copy  0x00000011 , 0x0000003f 
+ 00020667  0x00004860 add  0x0000003f , 0x0000000e , 0x0000003f 
+ 00020668  0x00004861 branch  0x00006970 
+ 00020669  0x00004864 fetch  0x00000001 , 0x000046a2 
+ 00020670  0x00004865 beq  0x00000000 , 0x000050c4 
+ 00020671  0x00004866 beq  0x00000001 , 0x000050c2 
+ 00020672  0x00004867 beq  0x00000002 , 0x000050c6 
+ 00020673  0x00004868 beq  0x00000003 , 0x000050c8 
+ 00020674  0x0000486a fetch  0x00000001 , 0x0000490e 
+ 00020675  0x0000486b branch  0x000050b5 
+ 00020676  0x0000486e fetch  0x00000001 , 0x0000490d 
+ 00020677  0x0000486f branch  0x000050b5 
+ 00020678  0x00004872 fetch  0x00000001 , 0x0000490f 
+ 00020679  0x00004873 branch  0x000050b5 
+ 00020680  0x00004876 fetch  0x00000001 , 0x00004910 
+ 00020681  0x00004877 branch  0x000050b5 
+ 00020682  0x00004880 call  0x00005170 
+ 00020683  0x00004881 fetch  0x00000001 , 0x00004a19 
+ 00020684  0x00004882 nbranch  0x00005184 , 0x00000034 
+ 00020685  0x00004883 fetch  0x00000001 , 0x00004a14 
+ 00020686  0x00004884 nbranch  0x00005183 , 0x00000034 
+ 00020687  0x00004886 call  0x000051ac 
+ 00020688  0x00004887 call  0x000050e0 
+ 00020689  0x00004888 call  0x00004e9b 
+ 00020690  0x00004889 call  0x000050db 
+ 00020691  0x0000488a copy  0x00000011 , 0x0000003f 
+ 00020692  0x0000488b fetcht  0x00000001 , 0x00004664 
+ 00020693  0x0000488c store  0x00000001 , 0x00004664 
+ 00020694  0x0000488d store  0x00000001 , 0x0000465c 
+ 00020695  0x0000488e ixor  0x00000002 , 0x0000003f 
+ 00020696  0x0000488f sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00020697  0x00004890 rtn  0x00000005 
+ 00020698  0x00004891 branch  0x00007dbc 
+ 00020699  0x00004894 rtnmark0  0x00000026 
+ 00020700  0x00004895 copy  0x00000011 , 0x0000003f 
+ 00020701  0x00004896 rtn  0x00000034 
+ 00020702  0x00004897 store  0x00000001 , 0x0000465c 
+ 00020703  0x00004898 branch  0x00007dbc 
+ 00020704  0x0000489e jam  0x00000000 , 0x00004a11 
+ 00020705  0x0000489f jam  0x00000000 , 0x00004a12 
+ 00020706  0x000048a0 jam  0x00000000 , 0x00004a13 
+ 00020707  0x000048a1 copy  0x0000003f , 0x00000012 
+ 00020708  0x000048a2 fetcht  0x00000001 , 0x0000488d 
+ 00020709  0x000048a3 fetch  0x00000001 , 0x00004890 
+ 00020710  0x000048a4 isub  0x00000002 , 0x0000003e 
+ 00020711  0x000048a5 branch  0x000050f0 , 0x00000005 
+ 00020712  0x000048a6 fetch  0x00000001 , 0x00004891 
+ 00020713  0x000048a7 isub  0x00000002 , 0x0000003e 
+ 00020714  0x000048a8 branch  0x000050f5 , 0x00000005 
+ 00020715  0x000048a9 fetcht  0x00000001 , 0x0000488e 
+ 00020716  0x000048aa fetch  0x00000001 , 0x00004890 
+ 00020717  0x000048ab isub  0x00000002 , 0x0000003e 
+ 00020718  0x000048ac branch  0x00005104 , 0x00000005 
+ 00020719  0x000048ad branch  0x00005107 
+ 00020720  0x000048b0 fetcht  0x00000001 , 0x0000488e 
+ 00020721  0x000048b1 fetch  0x00000001 , 0x00004891 
+ 00020722  0x000048b2 isub  0x00000002 , 0x0000003e 
+ 00020723  0x000048b3 branch  0x000050fa , 0x00000005 
+ 00020724  0x000048b4 branch  0x000050fd 
+ 00020725  0x000048b7 fetcht  0x00000001 , 0x0000488e 
+ 00020726  0x000048b8 fetch  0x00000001 , 0x00004890 
+ 00020727  0x000048b9 isub  0x00000002 , 0x0000003e 
+ 00020728  0x000048ba branch  0x000050ff , 0x00000005 
+ 00020729  0x000048bb branch  0x00005102 
+ 00020730  0x000048be call  0x00005113 
+ 00020731  0x000048bf call  0x0000511f 
+ 00020732  0x000048c0 branch  0x00005109 
+ 00020733  0x000048c3 call  0x00005113 
+ 00020734  0x000048c4 branch  0x00005105 
+ 00020735  0x000048c7 call  0x0000511c 
+ 00020736  0x000048c8 call  0x00005116 
+ 00020737  0x000048c9 branch  0x00005109 
+ 00020738  0x000048cc call  0x0000511c 
+ 00020739  0x000048cd branch  0x00005108 
+ 00020740  0x000048d0 call  0x00005116 
+ 00020741  0x000048d2 call  0x00005122 
+ 00020742  0x000048d3 branch  0x00005109 
+ 00020743  0x000048d6 call  0x0000511f 
+ 00020744  0x000048d8 call  0x00005119 
+ 00020745  0x000048da call  0x00005125 
+ 00020746  0x000048db call  0x00005128 
+ 00020747  0x000048dc fetch  0x00000001 , 0x00004a12 
+ 00020748  0x000048dd rtn  0x00000034 
+ 00020749  0x000048de fetch  0x00000001 , 0x00004a11 
+ 00020750  0x000048df rtn  0x00000034 
+ 00020751  0x000048e0 jam  0x00000001 , 0x00004a13 
+ 00020752  0x000048e1 fetch  0x00000001 , 0x00004664 
+ 00020753  0x000048e2 copy  0x0000003f , 0x00000011 
+ 00020754  0x000048e3 rtn 
+ 00020755  0x000048e6 and  0x00000012 , 0x00000009 , 0x0000003f 
+ 00020756  0x000048e7 beq  0x00000009 , 0x00005130 
+ 00020757  0x000048e8 rtn 
+ 00020758  0x000048ea and  0x00000012 , 0x00000012 , 0x0000003f 
+ 00020759  0x000048eb beq  0x00000012 , 0x00005130 
+ 00020760  0x000048ec rtn 
+ 00020761  0x000048ee and  0x00000012 , 0x0000000a , 0x0000003f 
+ 00020762  0x000048ef beq  0x0000000a , 0x00005130 
+ 00020763  0x000048f0 rtn 
+ 00020764  0x000048f2 and  0x00000012 , 0x00000011 , 0x0000003f 
+ 00020765  0x000048f3 beq  0x00000011 , 0x00005130 
+ 00020766  0x000048f4 rtn 
+ 00020767  0x000048f6 and  0x00000012 , 0x00000014 , 0x0000003f 
+ 00020768  0x000048f7 beq  0x00000014 , 0x00005130 
+ 00020769  0x000048f8 rtn 
+ 00020770  0x000048fa and  0x00000012 , 0x00000012 , 0x0000003f 
+ 00020771  0x000048fb beq  0x00000012 , 0x00005130 
+ 00020772  0x000048fc rtn 
+ 00020773  0x000048ff and  0x00000012 , 0x00000018 , 0x0000003f 
+ 00020774  0x00004900 beq  0x00000018 , 0x0000512e 
+ 00020775  0x00004901 rtn 
+ 00020776  0x00004904 and  0x00000002 , 0x00000007 , 0x0000003f 
+ 00020777  0x00004905 beq  0x00000003 , 0x0000512e 
+ 00020778  0x00004906 beq  0x00000005 , 0x0000512e 
+ 00020779  0x00004907 beq  0x00000006 , 0x0000512e 
+ 00020780  0x00004908 beq  0x00000007 , 0x0000512e 
+ 00020781  0x00004909 rtn 
+ 00020782  0x0000490d jam  0x00000001 , 0x00004a12 
+ 00020783  0x0000490e rtn 
+ 00020784  0x00004911 jam  0x00000001 , 0x00004a11 
+ 00020785  0x00004912 rtn 
+ 00020786  0x0000491b fetch  0x00000008 , 0x0000470e 
+ 00020787  0x0000491c rtnbit0  0x00000015 
+ 00020788  0x0000491d bbit0  0x0000002c , 0x0000513a 
+ 00020789  0x0000491f fetch  0x00000001 , 0x000048a0 
+ 00020790  0x00004920 call  0x00005254 
+ 00020791  0x00004921 call  0x00005148 
+ 00020792  0x00004922 fetcht  0x00000001 , 0x000048a0 
+ 00020793  0x00004923 branch  0x00004f0a 
+ 00020794  0x00004926 fetch  0x00000001 , 0x000048a0 
+ 00020795  0x00004927 call  0x00005256 
+ 00020796  0x00004928 jam  0x00000000 , 0x00004a1d 
+ 00020797  0x00004929 fetcht  0x00000001 , 0x000048a0 
+ 00020798  0x0000492a fetch  0x00000001 , 0x00004a1a 
+ 00020799  0x0000492b call  0x00005161 
+ 00020800  0x0000492c call  0x0000514c 
+ 00020801  0x0000492d fetcht  0x00000001 , 0x000048a0 
+ 00020802  0x0000492e branch  0x00004f0a 
+ 00020803  0x00004931 call  0x00004f0a 
+ 00020804  0x00004932 fetch  0x00000001 , 0x00004a1b 
+ 00020805  0x00004933 rtneq  0x00000001 
+ 00020806  0x00004934 jam  0x00000001 , 0x00004a1b 
+ 00020807  0x00004935 branch  0x0000501b 
+ 00020808  0x00004938 jam  0x00000000 , 0x00004a1d 
+ 00020809  0x00004939 fetcht  0x00000001 , 0x000048a0 
+ 00020810  0x0000493a fetch  0x00000001 , 0x00004a1a 
+ 00020811  0x0000493b call  0x00005157 
+ 00020812  0x0000493d store  0x00000001 , 0x00004a1a 
+ 00020813  0x0000493e fetch  0x00000001 , 0x00004a1c 
+ 00020814  0x0000493f branch  0x00005153 , 0x00000034 
+ 00020815  0x00004941 fetch  0x00000001 , 0x00004a1b 
+ 00020816  0x00004942 rtneq  0x00000001 
+ 00020817  0x00004943 jam  0x00000001 , 0x00004a1b 
+ 00020818  0x00004944 branch  0x0000501b 
+ 00020819  0x00004947 fetch  0x00000001 , 0x00004a1b 
+ 00020820  0x00004948 rtneq  0x00000000 
+ 00020821  0x00004949 jam  0x00000000 , 0x00004a1b 
+ 00020822  0x0000494a rtn 
+ 00020823  0x0000494d lshift  0x0000003f , 0x0000003f 
+ 00020824  0x0000494e copy  0x0000003f , 0x00000012 
+ 00020825  0x0000494f call  0x00006ee0 
+ 00020826  0x00004950 setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00020827  0x00004951 and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00020828  0x00004952 fetcht  0x00000001 , 0x00004a1d 
+ 00020829  0x00004953 copy  0x00000002 , 0x00000007 
+ 00020830  0x00004954 beq  0x00000007 , 0x0000516c 
+ 00020831  0x00004955 beq  0x00000000 , 0x0000516e 
+ 00020832  0x00004956 rtn 
+ 00020833  0x00004959 lshift  0x0000003f , 0x0000003f 
+ 00020834  0x0000495a copy  0x0000003f , 0x00000012 
+ 00020835  0x0000495b call  0x00004f06 
+ 00020836  0x0000495c call  0x00006ee0 
+ 00020837  0x0000495d setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00020838  0x0000495e and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00020839  0x0000495f fetcht  0x00000001 , 0x00004a1d 
+ 00020840  0x00004960 copy  0x00000002 , 0x00000007 
+ 00020841  0x00004961 beq  0x00000007 , 0x0000516c 
+ 00020842  0x00004962 beq  0x00000000 , 0x0000516e 
+ 00020843  0x00004963 rtn 
+ 00020844  0x00004966 jam  0x00000001 , 0x00004a1c 
+ 00020845  0x00004967 rtn 
+ 00020846  0x00004969 jam  0x00000000 , 0x00004a1c 
+ 00020847  0x0000496a rtn 
+ 00020848  0x00004973 arg  0x00000000 , 0x00000012 
+ 00020849  0x00004974 fetch  0x00000001 , 0x0000489f 
+ 00020850  0x00004975 rtneq  0x000000ff 
+ 00020851  0x00004976 fetch  0x00000008 , 0x0000470e 
+ 00020852  0x00004977 bbit0  0x0000002e , 0x0000517d 
+ 00020853  0x00004979 fetcht  0x00000001 , 0x0000489f 
+ 00020854  0x0000497a call  0x00004f0a 
+ 00020855  0x0000497b fetcht  0x00000001 , 0x0000489f 
+ 00020856  0x0000497c call  0x00006ee0 
+ 00020857  0x0000497d setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00020858  0x0000497f copy  0x00000012 , 0x0000003f 
+ 00020859  0x00004980 store  0x00000001 , 0x00004a19 
+ 00020860  0x00004981 rtn 
+ 00020861  0x00004984 fetcht  0x00000001 , 0x0000489f 
+ 00020862  0x00004985 call  0x00004f06 
+ 00020863  0x00004986 fetcht  0x00000001 , 0x0000489f 
+ 00020864  0x00004987 call  0x00006ee0 
+ 00020865  0x00004988 nsetflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00020866  0x00004989 branch  0x0000517a 
+ 00020867  0x0000498c beq  0x00000004 , 0x0000519c 
+ 00020868  0x0000498e call  0x0000519f 
+ 00020869  0x0000498f fetch  0x00000004 , 0x00004a15 
+ 00020870  0x00004990 arg  0x000000a0 , 0x00000002 
+ 00020871  0x00004991 iadd  0x00000002 , 0x00000002 
+ 00020872  0x00004992 copy  0x00000022 , 0x0000003f 
+ 00020873  0x00004993 isub  0x00000002 , 0x0000003e 
+ 00020874  0x00004994 nrtn  0x00000002 
+ 00020875  0x00004995 store  0x00000004 , 0x00004a15 
+ 00020876  0x00004996 fetch  0x00000001 , 0x00004a14 
+ 00020877  0x00004997 beq  0x00000000 , 0x00005192 
+ 00020878  0x00004998 beq  0x00000001 , 0x00005195 
+ 00020879  0x00004999 beq  0x00000002 , 0x00005198 
+ 00020880  0x0000499a beq  0x00000003 , 0x0000519a 
+ 00020881  0x0000499b rtn 
+ 00020882  0x0000499e jam  0x00000001 , 0x00004a14 
+ 00020883  0x000049a0 jam  0x00000001 , 0x0000465c 
+ 00020884  0x000049a1 branch  0x00007dbc 
+ 00020885  0x000049a4 jam  0x00000002 , 0x00004a14 
+ 00020886  0x000049a6 jam  0x00000000 , 0x0000465c 
+ 00020887  0x000049a7 branch  0x00007dbc 
+ 00020888  0x000049aa jam  0x00000003 , 0x00004a14 
+ 00020889  0x000049ab branch  0x00005193 
+ 00020890  0x000049ae jam  0x00000000 , 0x00004a14 
+ 00020891  0x000049af branch  0x00005196 
+ 00020892  0x000049b2 jam  0x00000000 , 0x00004a14 
+ 00020893  0x000049b3 jam  0x00000000 , 0x0000465c 
+ 00020894  0x000049b4 rtn 
+ 00020895  0x000049b7 fetcht  0x00000004 , 0x00004a15 
+ 00020896  0x000049b8 copy  0x00000022 , 0x0000003f 
+ 00020897  0x000049b9 isub  0x00000002 , 0x0000003e 
+ 00020898  0x000049ba ncall  0x000051a4 , 0x00000002 
+ 00020899  0x000049bb rtn 
+ 00020900  0x000049bd setarg  0x00000000 
+ 00020901  0x000049be store  0x00000004 , 0x00004a15 
+ 00020902  0x000049bf rtn 
+ 00020903  0x000049c8 call  0x000051b9 
+ 00020904  0x000049c9 call  0x000051ac 
+ 00020905  0x000049ca setarg  0x00000000 
+ 00020906  0x000049cb store  0x00000003 , 0x00004a07 
+ 00020907  0x000049cc rtn 
+ 00020908  0x000049cf bpatch  0x00000088 , 0x00004011 
+ 00020909  0x000049d0 fetch  0x00000001 , 0x00004737 
+ 00020910  0x000049d1 ncall  0x000051b9 , 0x00000034 
+ 00020911  0x000049d2 arg  0x00000000 , 0x00000011 
+ 00020912  0x000049d3 call  0x000051bc 
+ 00020913  0x000049d4 call  0x000051c5 
+ 00020914  0x000049d5 call  0x000051ce 
+ 00020915  0x000049d6 call  0x000051d7 
+ 00020916  0x000049d7 call  0x000051f3 
+ 00020917  0x000049d8 call  0x00005170 
+ 00020918  0x000049d9 call  0x00005210 
+ 00020919  0x000049da copy  0x00000011 , 0x0000003f 
+ 00020920  0x000049db rtn 
+ 00020921  0x000049de setarg  0x00030303 
+ 00020922  0x000049df store  0x00000003 , 0x00004a07 
+ 00020923  0x000049e0 rtn 
+ 00020924  0x000049e3 fetch  0x00000001 , 0x0000488d 
+ 00020925  0x000049e4 call  0x00005254 
+ 00020926  0x000049e5 jam  0x00000000 , 0x00004a0f 
+ 00020927  0x000049e6 fetcht  0x00000001 , 0x0000488d 
+ 00020928  0x000049e7 fetch  0x00000001 , 0x00004a07 
+ 00020929  0x000049e8 call  0x00005236 
+ 00020930  0x000049e9 store  0x00000001 , 0x00004a07 
+ 00020931  0x000049ea fetcht  0x00000001 , 0x0000488d 
+ 00020932  0x000049eb branch  0x00004f0a 
+ 00020933  0x000049ee fetch  0x00000001 , 0x0000488f 
+ 00020934  0x000049ef call  0x00005254 
+ 00020935  0x000049f0 jam  0x00000001 , 0x00004a0f 
+ 00020936  0x000049f1 fetcht  0x00000001 , 0x0000488f 
+ 00020937  0x000049f2 fetch  0x00000001 , 0x00004a08 
+ 00020938  0x000049f3 call  0x00005236 
+ 00020939  0x000049f4 store  0x00000001 , 0x00004a08 
+ 00020940  0x000049f5 fetcht  0x00000001 , 0x0000488f 
+ 00020941  0x000049f6 branch  0x00004f0a 
+ 00020942  0x000049f9 fetch  0x00000001 , 0x0000488e 
+ 00020943  0x000049fa call  0x00005254 
+ 00020944  0x000049fb jam  0x00000002 , 0x00004a0f 
+ 00020945  0x000049fc fetcht  0x00000001 , 0x0000488e 
+ 00020946  0x000049fd fetch  0x00000001 , 0x00004a09 
+ 00020947  0x000049fe call  0x00005236 
+ 00020948  0x000049ff store  0x00000001 , 0x00004a09 
+ 00020949  0x00004a00 fetcht  0x00000001 , 0x0000488e 
+ 00020950  0x00004a01 branch  0x00004f0a 
+ 00020951  0x00004a04 fetch  0x00000001 , 0x00004890 
+ 00020952  0x00004a05 rtneq  0x000000ff 
+ 00020953  0x00004a06 jam  0x00000003 , 0x00004a0f 
+ 00020954  0x00004a07 fetch  0x00000001 , 0x00004a0a 
+ 00020955  0x00004a08 copy  0x0000003f , 0x00000013 
+ 00020956  0x00004a09 fetcht  0x00000001 , 0x00004890 
+ 00020957  0x00004a0a fetch  0x00000001 , 0x0000489c 
+ 00020958  0x00004a0b beq  0x000000ff , 0x000051ec 
+ 00020959  0x00004a0c call  0x00006ee0 
+ 00020960  0x00004a0d branch  0x000051e8 , 0x00000001 
+ 00020961  0x00004a0e fetcht  0x00000001 , 0x0000489c 
+ 00020962  0x00004a0f call  0x00006ef1 
+ 00020963  0x00004a10 fetcht  0x00000001 , 0x00004890 
+ 00020964  0x00004a11 fetch  0x00000001 , 0x00004a0a 
+ 00020965  0x00004a12 call  0x00005236 
+ 00020966  0x00004a14 store  0x00000001 , 0x00004a0a 
+ 00020967  0x00004a15 branch  0x00005203 
+ 00020968  0x00004a18 fetcht  0x00000001 , 0x0000489c 
+ 00020969  0x00004a19 fetch  0x00000001 , 0x00004a0a 
+ 00020970  0x00004a1a call  0x00005236 
+ 00020971  0x00004a1b branch  0x000051e6 
+ 00020972  0x00004a1e fetch  0x00000001 , 0x00004890 
+ 00020973  0x00004a1f call  0x00005256 
+ 00020974  0x00004a20 fetcht  0x00000001 , 0x00004890 
+ 00020975  0x00004a21 call  0x00005242 
+ 00020976  0x00004a22 store  0x00000001 , 0x00004a0a 
+ 00020977  0x00004a23 fetcht  0x00000001 , 0x00004890 
+ 00020978  0x00004a24 branch  0x00004f0a 
+ 00020979  0x00004a28 fetch  0x00000001 , 0x00004891 
+ 00020980  0x00004a29 rtneq  0x000000ff 
+ 00020981  0x00004a2a jam  0x00000004 , 0x00004a0f 
+ 00020982  0x00004a2b fetch  0x00000001 , 0x00004a0b 
+ 00020983  0x00004a2c copy  0x0000003f , 0x00000013 
+ 00020984  0x00004a2d fetcht  0x00000001 , 0x00004891 
+ 00020985  0x00004a2e fetch  0x00000001 , 0x0000489c 
+ 00020986  0x00004a2f beq  0x000000ff , 0x00005209 
+ 00020987  0x00004a30 call  0x00006ee0 
+ 00020988  0x00004a31 branch  0x00005205 , 0x00000001 
+ 00020989  0x00004a32 fetcht  0x00000001 , 0x0000489c 
+ 00020990  0x00004a33 call  0x00006ef1 
+ 00020991  0x00004a34 fetcht  0x00000001 , 0x00004891 
+ 00020992  0x00004a35 fetch  0x00000001 , 0x00004a0b 
+ 00020993  0x00004a36 call  0x00005236 
+ 00020994  0x00004a38 store  0x00000001 , 0x00004a0b 
+ 00020995  0x00004a3a fetcht  0x00000001 , 0x0000489c 
+ 00020996  0x00004a3b branch  0x00004f0a 
+ 00020997  0x00004a3e fetcht  0x00000001 , 0x0000489c 
+ 00020998  0x00004a3f fetch  0x00000001 , 0x00004a0b 
+ 00020999  0x00004a40 call  0x00005236 
+ 00021000  0x00004a41 branch  0x00005202 
+ 00021001  0x00004a44 fetch  0x00000001 , 0x00004891 
+ 00021002  0x00004a45 call  0x00005256 
+ 00021003  0x00004a46 fetcht  0x00000001 , 0x00004891 
+ 00021004  0x00004a47 call  0x00005242 
+ 00021005  0x00004a48 store  0x00000001 , 0x00004a0b 
+ 00021006  0x00004a49 fetcht  0x00000001 , 0x00004891 
+ 00021007  0x00004a4a branch  0x00004f0a 
+ 00021008  0x00004a4d jam  0x00000000 , 0x0000472b 
+ 00021009  0x00004a4e fetch  0x00000001 , 0x0000489e 
+ 00021010  0x00004a4f rtneq  0x000000ff 
+ 00021011  0x00004a50 fetch  0x00000008 , 0x0000470e 
+ 00021012  0x00004a51 rtnbit0  0x00000014 
+ 00021013  0x00004a52 bbit1  0x0000002f , 0x00005221 
+ 00021014  0x00004a54 jam  0x00000007 , 0x00004a0f 
+ 00021015  0x00004a55 fetcht  0x00000001 , 0x0000489e 
+ 00021016  0x00004a56 fetch  0x00000001 , 0x00004a0e 
+ 00021017  0x00004a57 call  0x00005236 
+ 00021018  0x00004a58 store  0x00000001 , 0x00004a0e 
+ 00021019  0x00004a5a copy  0x00000011 , 0x0000003f 
+ 00021020  0x00004a5b bbit1  0x00000007 , 0x0000522c 
+ 00021021  0x00004a5c call  0x0000522f 
+ 00021022  0x00004a5e fetch  0x00000001 , 0x0000472c 
+ 00021023  0x00004a5f store  0x00000001 , 0x0000472d 
+ 00021024  0x00004a60 rtn 
+ 00021025  0x00004a63 jam  0x00000007 , 0x00004a0f 
+ 00021026  0x00004a64 fetch  0x00000001 , 0x00004a0e 
+ 00021027  0x00004a65 copy  0x0000003f , 0x00000013 
+ 00021028  0x00004a66 fetch  0x00000001 , 0x0000489e 
+ 00021029  0x00004a67 call  0x00005256 
+ 00021030  0x00004a68 fetcht  0x00000001 , 0x0000489e 
+ 00021031  0x00004a69 call  0x00005242 
+ 00021032  0x00004a6a store  0x00000001 , 0x00004a0e 
+ 00021033  0x00004a6b call  0x0000521b 
+ 00021034  0x00004a6c fetcht  0x00000001 , 0x0000489e 
+ 00021035  0x00004a6d branch  0x00004f0a 
+ 00021036  0x00004a70 jam  0x00000001 , 0x0000472c 
+ 00021037  0x00004a71 call  0x00005232 
+ 00021038  0x00004a72 branch  0x0000521e 
+ 00021039  0x00004a75 jam  0x00000000 , 0x0000472c 
+ 00021040  0x00004a76 fetch  0x00000001 , 0x0000472d 
+ 00021041  0x00004a77 rtn  0x00000034 
+ 00021042  0x00004a79 jam  0x00000001 , 0x0000472b 
+ 00021043  0x00004a7a rtn 
+ 00021044  0x00004a84 qset0  0x00000011 
+ 00021045  0x00004a85 rtn 
+ 00021046  0x00004a88 lshift  0x0000003f , 0x0000003f 
+ 00021047  0x00004a89 copy  0x0000003f , 0x00000012 
+ 00021048  0x00004a8a call  0x00006ee0 
+ 00021049  0x00004a8b setflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00021050  0x00004a8d and  0x00000012 , 0x00000007 , 0x0000003f 
+ 00021051  0x00004a8e fetcht  0x00000001 , 0x00004a0f 
+ 00021052  0x00004a8f copy  0x00000002 , 0x00000007 
+ 00021053  0x00004a90 beq  0x00000007 , 0x00005240 
+ 00021054  0x00004a91 beq  0x00000000 , 0x00005234 
+ 00021055  0x00004a92 rtn 
+ 00021056  0x00004a95 qset1  0x00000011 
+ 00021057  0x00004a96 rtn 
+ 00021058  0x00004a99 bpatch  0x00000089 , 0x00004011 
+ 00021059  0x00004a9a copy  0x00000013 , 0x0000003f 
+ 00021060  0x00004a9b store  0x00000001 , 0x00004a10 
+ 00021061  0x00004a9c lshift  0x0000003f , 0x0000003f 
+ 00021062  0x00004a9d copy  0x0000003f , 0x00000012 
+ 00021063  0x00004a9e copy  0x00000002 , 0x00000013 
+ 00021064  0x00004a9f call  0x00004f06 
+ 00021065  0x00004aa0 copy  0x00000013 , 0x00000002 
+ 00021066  0x00004aa1 call  0x00006ee0 
+ 00021067  0x00004aa2 nsetflag  0x00000001 , 0x00000000 , 0x00000012 
+ 00021068  0x00004aa3 call  0x0000524e 
+ 00021069  0x00004aa4 branch  0x0000523a 
+ 00021070  0x00004aa7 fetcht  0x00000001 , 0x00004a10 
+ 00021071  0x00004aa8 and_into  0x00000001 , 0x00000002 
+ 00021072  0x00004aa9 and  0x00000012 , 0x00000001 , 0x0000003f 
+ 00021073  0x00004aaa isub  0x00000002 , 0x0000003e 
+ 00021074  0x00004aab nbranch  0x000053d5 , 0x00000005 
+ 00021075  0x00004aac rtn 
+ 00021076  0x00004ab1 arg  0x0000003f , 0x00000002 
+ 00021077  0x00004ab2 branch  0x00006f1d 
+ 00021078  0x00004ab6 arg  0x0000003e , 0x00000002 
+ 00021079  0x00004ab7 branch  0x00006f1d 
+ 00021080  0x00004abb store  0x00000001 , 0x000048a7 
+ 00021081  0x00004abc call  0x00005254 
+ 00021082  0x00004abd fetcht  0x00000001 , 0x000048a7 
+ 00021083  0x00004abe branch  0x00004f0a 
+ 00021084  0x00004ac2 store  0x00000001 , 0x000048a7 
+ 00021085  0x00004ac3 call  0x00005256 
+ 00021086  0x00004ac4 fetcht  0x00000001 , 0x000048a7 
+ 00021087  0x00004ac5 branch  0x00004f06 
+ 00021088  0x00004acb bpatch  0x0000008a , 0x00004011 
+ 00021089  0x00004acc call  0x00004f1b 
+ 00021090  0x00004acd rtn  0x0000002b 
+ 00021091  0x00004acf call  0x000052fd 
+ 00021092  0x00004ad1 bpatch  0x0000008b , 0x00004011 
+ 00021093  0x00004ad2 call  0x0000526f 
+ 00021094  0x00004ad3 beq  0x00000030 , 0x00005276 
+ 00021095  0x00004ad4 beq  0x00000031 , 0x000052dc 
+ 00021096  0x00004ad5 beq  0x00000058 , 0x000052e5 
+ 00021097  0x00004ad6 call  0x0000526c 
+ 00021098  0x00004ad7 nop  0x00001af4 
+ 00021099  0x00004ad8 branch  0x00005264 
+ 00021100  0x00004ada fetcht  0x00000001 , 0x00004893 
+ 00021101  0x00004adb call  0x00006953 
+ 00021102  0x00004adc branch  0x00004f20 
+ 00021103  0x00004adf setarg  0x00000001 
+ 00021104  0x00004ae0 call  0x00006971 
+ 00021105  0x00004ae1 store  0x00000001 , 0x000048fc 
+ 00021106  0x00004ae2 setarg  0x00000000 
+ 00021107  0x00004ae3 call  0x00006971 
+ 00021108  0x00004ae4 store  0x00000001 , 0x000048fb 
+ 00021109  0x00004ae5 rtn 
+ 00021110  0x00004ae8 fetch  0x00000001 , 0x000048fc 
+ 00021111  0x00004ae9 beq  0x0000005a , 0x00005285 
+ 00021112  0x00004aea beq  0x000000d8 , 0x0000528a 
+ 00021113  0x00004aeb beq  0x000000d1 , 0x0000527f 
+ 00021114  0x00004aec beq  0x000000d2 , 0x000052a2 
+ 00021115  0x00004aed beq  0x00000002 , 0x000052a9 
+ 00021116  0x00004aee beq  0x00000054 , 0x000052b2 
+ 00021117  0x00004aef beq  0x00000050 , 0x000052d9 
+ 00021118  0x00004af0 branch  0x00005264 
+ 00021119  0x00004af3 setarg  0x00000049 
+ 00021120  0x00004af4 call  0x00006971 
+ 00021121  0x00004af5 beq  0x000000a1 , 0x00005283 
+ 00021122  0x00004af6 branch  0x00005299 
+ 00021123  0x00004af9 jam  0x0000000c , 0x000049fa 
+ 00021124  0x00004afa rtn 
+ 00021125  0x00004afd jam  0x00000005 , 0x000049fa 
+ 00021126  0x00004afe call  0x000052f0 
+ 00021127  0x00004aff call  0x00007c97 
+ 00021128  0x00004b00 arg  0x00004973 , 0x00000013 
+ 00021129  0x00004b01 branch  0x00005301 
+ 00021130  0x00004b04 setarg  0x00000016 
+ 00021131  0x00004b05 call  0x00006971 
+ 00021132  0x00004b06 sub  0x0000003f , 0x000000bd , 0x0000003e 
+ 00021133  0x00004b07 nbranch  0x00005260 , 0x00000005 
+ 00021134  0x00004b08 setarg  0x00000019 
+ 00021135  0x00004b09 call  0x00006971 
+ 00021136  0x00004b0a sub  0x0000003f , 0x00000055 , 0x0000003e 
+ 00021137  0x00004b0b nbranch  0x00005260 , 0x00000005 
+ 00021138  0x00004b0c setarg  0x0000001b 
+ 00021139  0x00004b0d call  0x00006971 
+ 00021140  0x00004b0e sub  0x0000003f , 0x0000001d , 0x0000003e 
+ 00021141  0x00004b0f nbranch  0x00005260 , 0x00000005 
+ 00021142  0x00004b10 jam  0x00000006 , 0x000049fa 
+ 00021143  0x00004b11 arg  0x000049af , 0x00000013 
+ 00021144  0x00004b12 branch  0x000052ab 
+ 00021145  0x00004b15 jam  0x00000000 , 0x000049fa 
+ 00021146  0x00004b16 arg  0x0000492d , 0x00000013 
+ 00021147  0x00004b17 call  0x000052ab 
+ 00021148  0x00004b18 arg  0x00004937 , 0x00000013 
+ 00021149  0x00004b19 call  0x000052ab 
+ 00021150  0x00004b1a setarg  0x00000943 
+ 00021151  0x00004b1b call  0x00006970 
+ 00021152  0x00004b1c arg  0x00004951 , 0x00000013 
+ 00021153  0x00004b1d branch  0x000052ab 
+ 00021154  0x00004b20 jam  0x00000002 , 0x000049fa 
+ 00021155  0x00004b21 arg  0x00004923 , 0x00000013 
+ 00021156  0x00004b22 call  0x000052ab 
+ 00021157  0x00004b23 arg  0x00004937 , 0x00000013 
+ 00021158  0x00004b24 call  0x000052ab 
+ 00021159  0x00004b25 arg  0x00004951 , 0x00000013 
+ 00021160  0x00004b26 branch  0x000052ab 
+ 00021161  0x00004b29 jam  0x00000003 , 0x000049fa 
+ 00021162  0x00004b2a arg  0x00004919 , 0x00000013 
+ 00021163  0x00004b2c ifetch  0x00000002 , 0x00000013 
+ 00021164  0x00004b2d arg  0x0000ffff , 0x00000002 
+ 00021165  0x00004b2e isub  0x00000002 , 0x0000003e 
+ 00021166  0x00004b2f rtn  0x00000005 
+ 00021167  0x00004b30 call  0x00006970 
+ 00021168  0x00004b31 increase  0x00000002 , 0x00000013 
+ 00021169  0x00004b32 branch  0x000052ab 
+ 00021170  0x00004b35 call  0x000050a7 
+ 00021171  0x00004b36 setarg  0x00009a5b 
+ 00021172  0x00004b37 call  0x00006970 
+ 00021173  0x00004b38 setarg  0x0000000d 
+ 00021174  0x00004b39 call  0x00006971 
+ 00021175  0x00004b3a sub  0x0000003f , 0x00000012 , 0x0000003e 
+ 00021176  0x00004b3b branch  0x000052c6 , 0x00000005 
+ 00021177  0x00004b3c sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00021178  0x00004b3d nbranch  0x000052c9 , 0x00000005 
+ 00021179  0x00004b3e setarg  0x0000000e 
+ 00021180  0x00004b3f call  0x00006971 
+ 00021181  0x00004b40 sub  0x0000003f , 0x000000e5 , 0x0000003e 
+ 00021182  0x00004b41 nbranch  0x00005264 , 0x00000005 
+ 00021183  0x00004b42 setarg  0x00000010 
+ 00021184  0x00004b43 call  0x00006971 
+ 00021185  0x00004b44 sub  0x0000003f , 0x000000a5 , 0x0000003e 
+ 00021186  0x00004b45 branch  0x000052c6 , 0x00000005 
+ 00021187  0x00004b46 call  0x000052d6 
+ 00021188  0x00004b48 jam  0x00000008 , 0x000049fa 
+ 00021189  0x00004b49 rtn 
+ 00021190  0x00004b4b jam  0x00000009 , 0x000049fa 
+ 00021191  0x00004b4c arg  0x00004991 , 0x00000013 
+ 00021192  0x00004b4d branch  0x000052ab 
+ 00021193  0x00004b4f sub  0x0000003f , 0x00000010 , 0x0000003e 
+ 00021194  0x00004b50 nbranch  0x00005264 , 0x00000005 
+ 00021195  0x00004b51 setarg  0x0000000e 
+ 00021196  0x00004b52 call  0x00006971 
+ 00021197  0x00004b53 sub  0x0000003f , 0x000000c5 , 0x0000003e 
+ 00021198  0x00004b54 nbranch  0x00005264 , 0x00000005 
+ 00021199  0x00004b55 setarg  0x00000010 
+ 00021200  0x00004b56 call  0x00006971 
+ 00021201  0x00004b57 sub  0x0000003f , 0x00000038 , 0x0000003e 
+ 00021202  0x00004b58 nbranch  0x00005264 , 0x00000005 
+ 00021203  0x00004b5a call  0x000052d6 
+ 00021204  0x00004b5b jam  0x0000000a , 0x000049fa 
+ 00021205  0x00004b5c rtn 
+ 00021206  0x00004b5e setarg  0x0000005b 
+ 00021207  0x00004b5f call  0x00006970 
+ 00021208  0x00004b60 branch  0x000050a5 
+ 00021209  0x00004b63 jam  0x00000007 , 0x000049fa 
+ 00021210  0x00004b64 arg  0x000049d1 , 0x00000013 
+ 00021211  0x00004b65 branch  0x000052ab 
+ 00021212  0x00004b68 call  0x000052fd 
+ 00021213  0x00004b69 fetch  0x00000001 , 0x000048fc 
+ 00021214  0x00004b6a beq  0x00000070 , 0x000052e3 
+ 00021215  0x00004b6b beq  0x00000000 , 0x000052e1 
+ 00021216  0x00004b6c branch  0x00005264 
+ 00021217  0x00004b6f jam  0x00000001 , 0x000049fa 
+ 00021218  0x00004b70 rtn 
+ 00021219  0x00004b73 jam  0x00000004 , 0x000049fa 
+ 00021220  0x00004b74 rtn 
+ 00021221  0x00004b77 call  0x000052fd 
+ 00021222  0x00004b78 fetch  0x00000001 , 0x000048fc 
+ 00021223  0x00004b79 beq  0x00000057 , 0x000052ed 
+ 00021224  0x00004b7a beq  0x00000059 , 0x000052ea 
+ 00021225  0x00004b7b branch  0x00005276 
+ 00021226  0x00004b7d jam  0x0000000b , 0x000049fa 
+ 00021227  0x00004b7e arg  0x000049bf , 0x00000013 
+ 00021228  0x00004b7f branch  0x000052ab 
+ 00021229  0x00004b82 jam  0x0000000d , 0x000049fa 
+ 00021230  0x00004b83 arg  0x000049dd , 0x00000013 
+ 00021231  0x00004b84 branch  0x00005301 
+ 00021232  0x00004b87 arg  0x00008006 , 0x00000002 
+ 00021233  0x00004b88 fetch  0x00000001 , 0x000049fa 
+ 00021234  0x00004b89 bne  0x0000000b , 0x000052f4 
+ 00021235  0x00004b8a arg  0x00009706 , 0x00000002 
+ 00021236  0x00004b8c copy  0x00000002 , 0x0000003f 
+ 00021237  0x00004b8d call  0x00006970 
+ 00021238  0x00004b8e nop  0x00002ee0 
+ 00021239  0x00004b8f rtn 
+ 00021240  0x00004b92 arg  0x000049e9 , 0x00000013 
+ 00021241  0x00004b93 fetch  0x00000001 , 0x000049fa 
+ 00021242  0x00004b94 rtnne  0x0000000b 
+ 00021243  0x00004b95 arg  0x000049f1 , 0x00000013 
+ 00021244  0x00004b96 rtn 
+ 00021245  0x00004b99 bpatch  0x0000008c , 0x00004011 
+ 00021246  0x00004b9a call  0x00004f1b 
+ 00021247  0x00004b9b call  0x000052f0 
+ 00021248  0x00004b9c call  0x000052f8 
+ 00021249  0x00004b9e call  0x000052ab 
+ 00021250  0x00004b9f branch  0x0000506b 
+ 00021251  0x00004ba2 bpatch  0x0000008d , 0x00004011 
+ 00021252  0x00004ba3 call  0x00005260 
+ 00021253  0x00004ba4 call  0x00004f1b 
+ 00021254  0x00004ba5 arg  0x00000806 , 0x00000002 
+ 00021255  0x00004ba6 fetch  0x00000001 , 0x000049fa 
+ 00021256  0x00004ba7 bne  0x0000000b , 0x0000530a 
+ 00021257  0x00004ba8 arg  0x00001f06 , 0x00000002 
+ 00021258  0x00004baa copy  0x00000002 , 0x0000003f 
+ 00021259  0x00004bab branch  0x00006970 
+ 00021260  0x00004bb2 fetch  0x00000001 , 0x00004437 
+ 00021261  0x00004bb3 rtnne  0x00000000 
+ 00021262  0x00004bb4 fetch  0x00000001 , 0x000049fa 
+ 00021263  0x00004bb5 beq  0x00000000 , 0x00005319 
+ 00021264  0x00004bb6 beq  0x00000001 , 0x00005319 
+ 00021265  0x00004bb7 beq  0x00000008 , 0x00005319 
+ 00021266  0x00004bb8 beq  0x00000002 , 0x00005319 
+ 00021267  0x00004bb9 beq  0x00000003 , 0x0000533d 
+ 00021268  0x00004bba beq  0x00000004 , 0x00005319 
+ 00021269  0x00004bbb beq  0x00000006 , 0x00005365 
+ 00021270  0x00004bbc beq  0x0000000b , 0x0000535b 
+ 00021271  0x00004bbd beq  0x0000000d , 0x0000535b 
+ 00021272  0x00004bbe branch  0x00005319 
+ 00021273  0x00004bc2 call  0x00005387 
+ 00021274  0x00004bc3 disable  0x00000028 
+ 00021275  0x00004bc4 fetch  0x00000001 , 0x00004667 
+ 00021276  0x00004bc5 beq  0x000000ff , 0x00005320 
+ 00021277  0x00004bc6 fetcht  0x00000001 , 0x00004667 
+ 00021278  0x00004bc7 call  0x00006ee0 
+ 00021279  0x00004bc8 nrtn  0x00000001 
+ 00021280  0x00004bca setarg  0x00000000 
+ 00021281  0x00004bcb call  0x00006971 
+ 00021282  0x00004bcc bne  0x00000030 , 0x00005333 
+ 00021283  0x00004bce setarg  0x00000002 
+ 00021284  0x00004bcf call  0x00006971 
+ 00021285  0x00004bd0 rtnbit0  0x00000007 
+ 00021286  0x00004bd1 call  0x0000539e 
+ 00021287  0x00004bd2 fetch  0x00000001 , 0x0000465d 
+ 00021288  0x00004bd3 call  0x00005397 
+ 00021289  0x00004bd4 store  0x00000002 , 0x0000465d 
+ 00021290  0x00004bd5 fetch  0x00000001 , 0x0000465f 
+ 00021291  0x00004bd6 call  0x00005397 
+ 00021292  0x00004bd7 store  0x00000002 , 0x0000465f 
+ 00021293  0x00004bd8 fetch  0x00000001 , 0x000049fb 
+ 00021294  0x00004bd9 beq  0x00000000 , 0x00005335 
+ 00021295  0x00004bda beq  0x00000001 , 0x00005337 
+ 00021296  0x00004bdb beq  0x00000002 , 0x00005339 
+ 00021297  0x00004bdc beq  0x00000003 , 0x0000533b 
+ 00021298  0x00004bdd rtn 
+ 00021299  0x00004be0 beq  0x00000031 , 0x00005323 
+ 00021300  0x00004be1 branch  0x0000526c 
+ 00021301  0x00004be4 call  0x00005370 
+ 00021302  0x00004be5 branch  0x000053a4 
+ 00021303  0x00004be7 call  0x00005378 
+ 00021304  0x00004be8 branch  0x000053a4 
+ 00021305  0x00004bea call  0x00005374 
+ 00021306  0x00004beb branch  0x000053a4 
+ 00021307  0x00004bed call  0x00005380 
+ 00021308  0x00004bee branch  0x000053a4 
+ 00021309  0x00004bf3 call  0x00005387 
+ 00021310  0x00004bf4 fetch  0x00000001 , 0x00004667 
+ 00021311  0x00004bf5 beq  0x000000ff , 0x00005343 
+ 00021312  0x00004bf6 fetcht  0x00000001 , 0x00004667 
+ 00021313  0x00004bf7 call  0x00006ee0 
+ 00021314  0x00004bf8 nrtn  0x00000001 
+ 00021315  0x00004bfa setarg  0x00000000 
+ 00021316  0x00004bfb call  0x00006971 
+ 00021317  0x00004bfc bne  0x00000030 , 0x0000526c 
+ 00021318  0x00004bfe setarg  0x00000002 
+ 00021319  0x00004bff call  0x00006971 
+ 00021320  0x00004c00 rtnbit0  0x00000007 
+ 00021321  0x00004c01 call  0x0000539e 
+ 00021322  0x00004c02 call  0x00005359 
+ 00021323  0x00004c03 store  0x00000001 , 0x00004663 
+ 00021324  0x00004c04 rshift4  0x0000003f , 0x0000003f 
+ 00021325  0x00004c05 call  0x0000539b 
+ 00021326  0x00004c06 store  0x00000001 , 0x0000465e 
+ 00021327  0x00004c07 fetch  0x00000001 , 0x00004663 
+ 00021328  0x00004c08 and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00021329  0x00004c09 call  0x0000539b 
+ 00021330  0x00004c0a store  0x00000001 , 0x00004660 
+ 00021331  0x00004c0b fetch  0x00000001 , 0x000049fb 
+ 00021332  0x00004c0c beq  0x00000000 , 0x00005370 
+ 00021333  0x00004c0d beq  0x00000001 , 0x00005378 
+ 00021334  0x00004c0e beq  0x00000002 , 0x00005374 
+ 00021335  0x00004c0f beq  0x00000003 , 0x00005380 
+ 00021336  0x00004c10 rtn 
+ 00021337  0x00004c13 setarg  0x00000012 
+ 00021338  0x00004c14 branch  0x00006971 
+ 00021339  0x00004c17 call  0x00005387 
+ 00021340  0x00004c18 fetch  0x00000001 , 0x00004667 
+ 00021341  0x00004c19 beq  0x000000ff , 0x00005361 
+ 00021342  0x00004c1a fetcht  0x00000001 , 0x00004667 
+ 00021343  0x00004c1b call  0x00006ee0 
+ 00021344  0x00004c1c nrtn  0x00000001 
+ 00021345  0x00004c1e setarg  0x00000000 
+ 00021346  0x00004c1f call  0x00006971 
+ 00021347  0x00004c20 bne  0x00000058 , 0x0000526c 
+ 00021348  0x00004c21 branch  0x00005346 
+ 00021349  0x00004c25 call  0x00005387 
+ 00021350  0x00004c26 disable  0x00000028 
+ 00021351  0x00004c27 setarg  0x00000002 
+ 00021352  0x00004c28 call  0x00006971 
+ 00021353  0x00004c29 rtnbit0  0x00000007 
+ 00021354  0x00004c2a setarg  0x00000008 
+ 00021355  0x00004c2b call  0x00006971 
+ 00021356  0x00004c2c branch  0x00005326 , 0x00000034 
+ 00021357  0x00004c2d setarg  0x00000000 
+ 00021358  0x00004c2e store  0x00000006 , 0x0000465d 
+ 00021359  0x00004c2f rtn 
+ 00021360  0x00004c32 fetch  0x00000002 , 0x0000465d 
+ 00021361  0x00004c33 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00021362  0x00004c34 store  0x00000002 , 0x0000465d 
+ 00021363  0x00004c35 branch  0x00007dbc 
+ 00021364  0x00004c37 fetch  0x00000002 , 0x0000465f 
+ 00021365  0x00004c38 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00021366  0x00004c39 store  0x00000002 , 0x0000465f 
+ 00021367  0x00004c3a branch  0x00007dbc 
+ 00021368  0x00004c3c fetch  0x00000002 , 0x0000465f 
+ 00021369  0x00004c3d sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00021370  0x00004c3e store  0x00000002 , 0x0000465f 
+ 00021371  0x00004c3f fetch  0x00000002 , 0x0000465d 
+ 00021372  0x00004c40 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00021373  0x00004c41 store  0x00000002 , 0x0000465d 
+ 00021374  0x00004c42 call  0x00005382 
+ 00021375  0x00004c43 branch  0x00007dbc 
+ 00021376  0x00004c45 call  0x00005382 
+ 00021377  0x00004c46 branch  0x00007dbc 
+ 00021378  0x00004c49 fetch  0x00000002 , 0x0000465f 
+ 00021379  0x00004c4a fetcht  0x00000002 , 0x0000465d 
+ 00021380  0x00004c4b store  0x00000002 , 0x0000465d 
+ 00021381  0x00004c4c storet  0x00000002 , 0x0000465f 
+ 00021382  0x00004c4d rtn 
+ 00021383  0x00004c51 fetch  0x00000001 , 0x000048fd 
+ 00021384  0x00004c52 call  0x0000539e , 0x00000034 
+ 00021385  0x00004c53 jam  0x00000001 , 0x000048fd 
+ 00021386  0x00004c54 rtn 
+ 00021387  0x00004c57 jam  0x00000001 , 0x000049f9 
+ 00021388  0x00004c58 call  0x000029a8 
+ 00021389  0x00004c5a branch  0x00005260 
+ 00021390  0x00004c5d fetch  0x00000001 , 0x00004667 
+ 00021391  0x00004c5e rtnne  0x000000ff 
+ 00021392  0x00004c5f fetch  0x00000001 , 0x0000473d 
+ 00021393  0x00004c60 rtn  0x00000034 
+ 00021394  0x00004c61 increase  0xffffffff , 0x0000003f 
+ 00021395  0x00004c62 store  0x00000001 , 0x0000473d 
+ 00021396  0x00004c63 setarg  0x00000000 
+ 00021397  0x00004c64 store  0x00000004 , 0x0000465d 
+ 00021398  0x00004c65 branch  0x0000538d 
+ 00021399  0x00004c68 rtnbit0  0x00000007 
+ 00021400  0x00004c69 arg  0x0000ff00 , 0x00000002 
+ 00021401  0x00004c6b ior  0x00000002 , 0x0000003f 
+ 00021402  0x00004c6c rtn 
+ 00021403  0x00004c6f rtnbit0  0x00000003 
+ 00021404  0x00004c70 arg  0x000000f0 , 0x00000002 
+ 00021405  0x00004c71 branch  0x00005399 
+ 00021406  0x00004c74 arg  0x00000003 , 0x0000003f 
+ 00021407  0x00004c75 call  0x00006971 
+ 00021408  0x00004c76 store  0x00000002 , 0x0000465d 
+ 00021409  0x00004c77 arg  0x00000004 , 0x0000003f 
+ 00021410  0x00004c78 call  0x00006971 
+ 00021411  0x00004c79 branch  0x0000586a 
+ 00021412  0x00004c7d fetcht  0x00000001 , 0x00004894 
+ 00021413  0x00004c7e call  0x00006ee0 
+ 00021414  0x00004c7f rtn  0x00000001 
+ 00021415  0x00004c80 setarg  0x0000000a 
+ 00021416  0x00004c81 call  0x00006971 
+ 00021417  0x00004c82 nop  0x000003e8 
+ 00021418  0x00004c83 branch  0x000053a4 
+ 00021419  0x00004c86 setarg  0x00008100 
+ 00021420  0x00004c87 branch  0x00006970 
+ 00021421  0x00004c8d jam  0x000000ff , 0x0000474f 
+ 00021422  0x00004c8f jam  0x00000034 , 0x000043fc 
+ 00021423  0x00004c90 setarg  0x000f0f0f 
+ 00021424  0x00004c91 store  0x00000003 , 0x000042dd 
+ 00021425  0x00004c92 store  0x00000003 , 0x000042e0 
+ 00021426  0x00004c93 branch  0x00004e11 
+ 00021427  0x00004c96 bpatch  0x0000008e , 0x00004011 
+ 00021428  0x00004c97 call  0x000067d5 
+ 00021429  0x00004c98 call  0x000053c1 
+ 00021430  0x00004c99 fetch  0x00000001 , 0x00004678 
+ 00021431  0x00004c9a beq  0x00000001 , 0x000053ba 
+ 00021432  0x00004c9b beq  0x00000002 , 0x000053bc 
+ 00021433  0x00004c9c rtn 
+ 00021434  0x00004c9e fetch  0x00000006 , 0x0000467a 
+ 00021435  0x00004c9f branch  0x000053bd 
+ 00021436  0x00004ca1 fetch  0x00000006 , 0x00004687 
+ 00021437  0x00004ca3 fetcht  0x00000006 , 0x000046f8 
+ 00021438  0x00004ca4 isub  0x00000002 , 0x0000003e 
+ 00021439  0x00004ca5 branch  0x00005544 , 0x00000005 
+ 00021440  0x00004ca6 branch  0x00004e09 
+ 00021441  0x00004ca9 jam  0x0000005a , 0x0000474f 
+ 00021442  0x00004caa rtn 
+ 00021443  0x00004cae fetch  0x00000002 , 0x00004500 
+ 00021444  0x00004caf bbit1  0x00000009 , 0x00003794 
+ 00021445  0x00004cb0 branch  0x00005562 
+ 00021446  0x00004cb2 setarg  0x00000000 
+ 00021447  0x00004cb3 store  0x00000002 , 0x00004741 
+ 00021448  0x00004cb4 fetch  0x00000002 , 0x00004500 
+ 00021449  0x00004cb5 bbit1  0x00000009 , 0x00003794 
+ 00021450  0x00004cb6 rtn 
+ 00021451  0x00004cb9 fetch  0x00000008 , 0x0000470e 
+ 00021452  0x00004cba rtnbit0  0x0000001b 
+ 00021453  0x00004cbc nbranch  0x000053d3 , 0x00000028 
+ 00021454  0x00004cbd fetch  0x00000001 , 0x000049fc 
+ 00021455  0x00004cbe increase  0x00000001 , 0x0000003f 
+ 00021456  0x00004cbf and_into  0x0000000f , 0x0000003f 
+ 00021457  0x00004cc0 store  0x00000001 , 0x000049fc 
+ 00021458  0x00004cc1 nrtn  0x00000034 
+ 00021459  0x00004cc3 jam  0x00000000 , 0x000049fc 
+ 00021460  0x00004cc4 branch  0x00007dbe 
+ 00021461  0x00004cc7 fetch  0x00000001 , 0x00004667 
+ 00021462  0x00004cc8 rtnne  0x000000ff 
+ 00021463  0x00004cc9 jam  0x00000000 , 0x000040c0 
+ 00021464  0x00004cca jam  0x0000001e , 0x0000473e 
+ 00021465  0x00004ccb rtn 
+ 00021466  0x00004ccf bpatch  0x0000008f , 0x00004011 
+ 00021467  0x00004cd0 copy  0x00000013 , 0x0000003f 
+ 00021468  0x00004cd1 beq  0x00000014 , 0x000053e9 
+ 00021469  0x00004cd2 beq  0x00000015 , 0x000053f9 
+ 00021470  0x00004cd3 beq  0x00000010 , 0x0000553f 
+ 00021471  0x00004cd4 beq  0x00000031 , 0x00005406 
+ 00021472  0x00004cd5 beq  0x00000029 , 0x00005408 
+ 00021473  0x00004cd6 beq  0x00000032 , 0x0000540a 
+ 00021474  0x00004cd7 beq  0x0000003e , 0x0000379e 
+ 00021475  0x00004cd8 beq  0x00000040 , 0x00005415 
+ 00021476  0x00004cd9 beq  0x00000039 , 0x000059a8 
+ 00021477  0x00004cda beq  0x0000003a , 0x00005971 
+ 00021478  0x00004cdb beq  0x0000003c , 0x00005997 
+ 00021479  0x00004cdc beq  0x00000044 , 0x00005428 
+ 00021480  0x00004cdd rtn 
+ 00021481  0x00004ce1 call  0x00005a62 
+ 00021482  0x00004ce2 jam  0x00000000 , 0x0000473d 
+ 00021483  0x00004ce3 call  0x0000538d 
+ 00021484  0x00004ce4 jam  0x00000001 , 0x00004753 
+ 00021485  0x00004ce5 call  0x00005960 
+ 00021486  0x00004ce6 fetch  0x00000001 , 0x00004754 
+ 00021487  0x00004ce7 nbranch  0x000053f1 , 0x00000034 
+ 00021488  0x00004ce8 jam  0x00000014 , 0x00004755 
+ 00021489  0x00004cea fetch  0x00000002 , 0x000043fa 
+ 00021490  0x00004ceb set0  0x00000000 , 0x0000003f 
+ 00021491  0x00004cec store  0x00000002 , 0x000043fa 
+ 00021492  0x00004ced jam  0x00000000 , 0x00004720 
+ 00021493  0x00004cee fetch  0x00000002 , 0x0000477d 
+ 00021494  0x00004cef store  0x00000002 , 0x0000477f 
+ 00021495  0x00004cf0 call  0x00005535 
+ 00021496  0x00004cf1 branch  0x00005562 
+ 00021497  0x00004cf4 setarg  0x00000000 
+ 00021498  0x00004cf5 store  0x00000002 , 0x0000477f 
+ 00021499  0x00004cf6 jam  0x00000000 , 0x00004753 
+ 00021500  0x00004cf7 arg  0x00000006 , 0x00000002 
+ 00021501  0x00004cf8 fetch  0x00000008 , 0x0000470e 
+ 00021502  0x00004cf9 bbit1  0x0000001b , 0x00005400 
+ 00021503  0x00004cfa arg  0x00000007 , 0x00000002 
+ 00021504  0x00004cfc storet  0x00000002 , 0x000042d5 
+ 00021505  0x00004cfd storet  0x00000002 , 0x000042d7 
+ 00021506  0x00004cfe jam  0x00000000 , 0x00004781 
+ 00021507  0x00004cff jam  0x00000000 , 0x000049f9 
+ 00021508  0x00004d00 call  0x000029aa 
+ 00021509  0x00004d01 branch  0x00005484 
+ 00021510  0x00004d04 arg  0x00000002 , 0x00000007 
+ 00021511  0x00004d05 branch  0x00005411 
+ 00021512  0x00004d09 jam  0x00000012 , 0x0000064d 
+ 00021513  0x00004d0a branch  0x00007824 
+ 00021514  0x00004d0d fetch  0x00000001 , 0x00004754 
+ 00021515  0x00004d0e beq  0x00000001 , 0x0000540d 
+ 00021516  0x00004d0f branch  0x0000540f 
+ 00021517  0x00004d11 call  0x00005408 
+ 00021518  0x00004d12 jam  0x00000014 , 0x00004883 
+ 00021519  0x00004d14 arg  0x00000001 , 0x00000007 
+ 00021520  0x00004d15 branch  0x00005411 
+ 00021521  0x00004d18 fetch  0x00000001 , 0x00004882 
+ 00021522  0x00004d19 qset1  0x0000003f 
+ 00021523  0x00004d1a store  0x00000001 , 0x00004882 
+ 00021524  0x00004d1b rtn 
+ 00021525  0x00004d1e fetch  0x00000002 , 0x00004340 
+ 00021526  0x00004d1f rtneq  0x00000000 
+ 00021527  0x00004d20 fetch  0x00000001 , 0x0000016a 
+ 00021528  0x00004d21 rshift2  0x0000003f , 0x0000003f 
+ 00021529  0x00004d22 sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00021530  0x00004d23 rtn  0x00000002 
+ 00021531  0x00004d24 setarg  0x00000009 
+ 00021532  0x00004d25 call  0x00004dab 
+ 00021533  0x00004d26 call  0x00005408 
+ 00021534  0x00004d28 jam  0x00000001 , 0x00004781 
+ 00021535  0x00004d29 rtn 
+ 00021536  0x00004d2c fetch  0x00000001 , 0x00004754 
+ 00021537  0x00004d2d nrtn  0x00000034 
+ 00021538  0x00004d2e fetch  0x00000001 , 0x0000439c 
+ 00021539  0x00004d2f sub  0x0000003f , 0x00000022 , 0x0000003f 
+ 00021540  0x00004d30 nrtn  0x00000005 
+ 00021541  0x00004d31 jam  0x00000000 , 0x00004883 
+ 00021542  0x00004d33 arg  0x00000000 , 0x00000007 
+ 00021543  0x00004d34 branch  0x00005411 
+ 00021544  0x00004d37 fetch  0x00000001 , 0x000001a2 
+ 00021545  0x00004d38 sub  0x0000003f , 0x0000000c , 0x0000003e 
+ 00021546  0x00004d39 nbranch  0x0000541e , 0x00000002 
+ 00021547  0x00004d3a call  0x00004dab 
+ 00021548  0x00004d3b fetch  0x00000001 , 0x000001a4 
+ 00021549  0x00004d3c branch  0x00005434 , 0x00000034 
+ 00021550  0x00004d3d fetcht  0x00000001 , 0x0000488b 
+ 00021551  0x00004d3e isub  0x00000002 , 0x0000003e 
+ 00021552  0x00004d3f branch  0x00005434 , 0x00000002 
+ 00021553  0x00004d40 fetch  0x00000001 , 0x000001a4 
+ 00021554  0x00004d41 store  0x00000001 , 0x000040c0 
+ 00021555  0x00004d42 branch  0x00005436 
+ 00021556  0x00004d44 fetch  0x00000001 , 0x0000488b 
+ 00021557  0x00004d45 store  0x00000001 , 0x000040c0 
+ 00021558  0x00004d47 jam  0x00000000 , 0x00004781 
+ 00021559  0x00004d48 rtn 
+ 00021560  0x00004d4d bpatch  0x00000090 , 0x00004012 
+ 00021561  0x00004d4e call  0x00002a06 
+ 00021562  0x00004d4f nrtn  0x00000034 
+ 00021563  0x00004d50 fetch  0x00000001 , 0x0000474f 
+ 00021564  0x00004d51 beq  0x000000ff , 0x00005440 
+ 00021565  0x00004d52 fetch  0x00000001 , 0x00004882 
+ 00021566  0x00004d53 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00021567  0x00004d54 rtnne  0x00000003 
+ 00021568  0x00004d56 fetch  0x00000001 , 0x000049f9 
+ 00021569  0x00004d57 call  0x0000538b , 0x00000034 
+ 00021570  0x00004d58 fetch  0x00000008 , 0x0000470e 
+ 00021571  0x00004d59 bbit1  0x00000001 , 0x00006824 
+ 00021572  0x00004d5a bbit1  0x00000000 , 0x00006824 
+ 00021573  0x00004d5b bbit1  0x00000005 , 0x00006824 
+ 00021574  0x00004d5c bbit1  0x00000006 , 0x00006824 
+ 00021575  0x00004d5d call  0x00004f26 
+ 00021576  0x00004d5e call  0x000053cb 
+ 00021577  0x00004d5f nrtn  0x00000028 
+ 00021578  0x00004d60 call  0x000053d5 
+ 00021579  0x00004d61 call  0x0000538e 
+ 00021580  0x00004d62 call  0x00004fd1 
+ 00021581  0x00004d63 fetch  0x00000008 , 0x0000470e 
+ 00021582  0x00004d64 bbit0  0x00000014 , 0x0000683e 
+ 00021583  0x00004d65 branch  0x0000683c 
+ 00021584  0x00004d68 arg  0x00000001 , 0x00000011 
+ 00021585  0x00004d69 fetcht  0x00000002 , 0x0000477a 
+ 00021586  0x00004d6a call  0x00002dcc 
+ 00021587  0x00004d6b fetch  0x00000001 , 0x0000477c 
+ 00021588  0x00004d6c branch  0x00007dce 
+ 00021589  0x00004d70 jam  0x00000000 , 0x00004754 
+ 00021590  0x00004d71 fetch  0x00000003 , 0x00004759 
+ 00021591  0x00004d72 store  0x00000003 , 0x00004351 
+ 00021592  0x00004d73 call  0x0000545e 
+ 00021593  0x00004d74 setarg  0x00000005 
+ 00021594  0x00004d75 istore  0x00000001 , 0x00000006 
+ 00021595  0x00004d76 arg  0x0000475f , 0x00000006 
+ 00021596  0x00004d77 call  0x00005465 
+ 00021597  0x00004d78 branch  0x00007860 
+ 00021598  0x00004d7b arg  0x0000434d , 0x00000011 
+ 00021599  0x00004d7d ifetch  0x00000001 , 0x00000011 
+ 00021600  0x00004d7e rtn  0x00000034 
+ 00021601  0x00004d7f iadd  0x00000006 , 0x00000011 
+ 00021602  0x00004d80 ifetch  0x00000001 , 0x00000006 
+ 00021603  0x00004d81 rtneq  0x00000001 
+ 00021604  0x00004d82 branch  0x0000545f 
+ 00021605  0x00004d85 arg  0x00004358 , 0x00000005 
+ 00021606  0x00004d86 arg  0x00000013 , 0x00000039 
+ 00021607  0x00004d87 call  0x00007cdc 
+ 00021608  0x00004d88 branch  0x00002948 
+ 00021609  0x00004d8c bpatch  0x00000091 , 0x00004012 
+ 00021610  0x00004d8d copy  0x00000011 , 0x00000006 
+ 00021611  0x00004d8e ifetch  0x00000003 , 0x00000006 
+ 00021612  0x00004d8f store  0x00000003 , 0x0000439b 
+ 00021613  0x00004d90 beq  0x0000000a , 0x00005470 
+ 00021614  0x00004d91 beq  0x00000012 , 0x0000547f 
+ 00021615  0x00004d92 branch  0x00002b76 
+ 00021616  0x00004d95 fetch  0x00000008 , 0x0000470e 
+ 00021617  0x00004d96 bbit0  0x0000003b , 0x00002cf7 
+ 00021618  0x00004d97 call  0x00002da5 
+ 00021619  0x00004d98 fetcht  0x00000002 , 0x0000439c 
+ 00021620  0x00004d99 fetch  0x00000001 , 0x00004323 
+ 00021621  0x00004d9a bbit1  0x00000003 , 0x0000547a 
+ 00021622  0x00004d9d fetch  0x00000002 , 0x0000439c 
+ 00021623  0x00004d9e beq  0x00000030 , 0x00002de1 
+ 00021624  0x00004d9f fetcht  0x00000002 , 0x0000439c 
+ 00021625  0x00004da0 branch  0x00002cfb 
+ 00021626  0x00004da3 fetch  0x00000002 , 0x00004334 
+ 00021627  0x00004da4 isub  0x00000002 , 0x0000003e 
+ 00021628  0x00004da5 nbranch  0x00005476 , 0x00000005 
+ 00021629  0x00004da6 nbranch  0x00005476 , 0x00000028 
+ 00021630  0x00004da7 branch  0x00002d24 
+ 00021631  0x00004daa copy  0x00000006 , 0x00000011 
+ 00021632  0x00004dab fetch  0x00000002 , 0x00004337 
+ 00021633  0x00004dac add  0x0000003f , 0xfffffffd , 0x00000012 
+ 00021634  0x00004dad call  0x00002908 
+ 00021635  0x00004dae branch  0x00006878 
+ 00021636  0x00004db1 bpatch  0x00000092 , 0x00004012 
+ 00021637  0x00004db2 call  0x0000548a 
+ 00021638  0x00004db3 fetch  0x00000002 , 0x000043f8 
+ 00021639  0x00004db4 bbit1  0x00000007 , 0x00005490 
+ 00021640  0x00004db5 bbit1  0x00000000 , 0x00003771 
+ 00021641  0x00004db6 branch  0x00005544 
+ 00021642  0x00004db9 setarg  0x00000000 
+ 00021643  0x00004dba store  0x00000008 , 0x0000466a 
+ 00021644  0x00004dbb istore  0x00000002 , 0x00000005 
+ 00021645  0x00004dbc jam  0x00000000 , 0x000048fd 
+ 00021646  0x00004dbd jam  0x00000000 , 0x0000429c 
+ 00021647  0x00004dbe rtn 
+ 00021648  0x00004dc1 jam  0x00000000 , 0x00004882 
+ 00021649  0x00004dc2 fetch  0x00000002 , 0x000043f8 
+ 00021650  0x00004dc3 bbit1  0x00000000 , 0x00003771 
+ 00021651  0x00004dc4 branch  0x00004e35 
+ 00021652  0x00004dc9 bpatch  0x00000093 , 0x00004012 
+ 00021653  0x00004dcb call  0x00005a29 
+ 00021654  0x00004dcc call  0x00004ea5 
+ 00021655  0x00004dce call  0x000059f2 
+ 00021656  0x00004dcf call  0x00005a81 
+ 00021657  0x00004dd0 call  0x00005a00 
+ 00021658  0x00004dd2 call  0x00005050 
+ 00021659  0x00004dd3 call  0x000054ab 
+ 00021660  0x00004dd4 call  0x000054d7 
+ 00021661  0x00004dd5 call  0x000054ba 
+ 00021662  0x00004dd6 call  0x000054cb 
+ 00021663  0x00004dd8 call  0x00005527 
+ 00021664  0x00004dd9 call  0x00004fd6 
+ 00021665  0x00004dda call  0x00005538 
+ 00021666  0x00004ddb call  0x0000552f 
+ 00021667  0x00004dde call  0x000058f6 
+ 00021668  0x00004ddf call  0x0000326c 
+ 00021669  0x00004de0 call  0x00003507 
+ 00021670  0x00004de3 call  0x000054fa 
+ 00021671  0x00004de4 call  0x000054ff 
+ 00021672  0x00004de5 call  0x0000550d 
+ 00021673  0x00004de6 call  0x0000551a 
+ 00021674  0x00004de7 branch  0x00005510 
+ 00021675  0x00004dec fetch  0x00000008 , 0x0000470e 
+ 00021676  0x00004ded rtnbit0  0x00000037 
+ 00021677  0x00004def fetch  0x00000001 , 0x00004734 
+ 00021678  0x00004df0 rtnne  0x00000001 
+ 00021679  0x00004df1 arg  0x00004731 , 0x00000013 
+ 00021680  0x00004df2 arg  0x000054b2 , 0x00000012 
+ 00021681  0x00004df3 branch  0x00003755 
+ 00021682  0x00004df6 fetch  0x00000001 , 0x00004678 
+ 00021683  0x00004df7 rtneq  0x00000000 
+ 00021684  0x00004df8 fetch  0x00000008 , 0x0000470e 
+ 00021685  0x00004df9 rtnbit1  0x00000006 
+ 00021686  0x00004dfa arg  0x00000006 , 0x00000007 
+ 00021687  0x00004dfb call  0x0000582e 
+ 00021688  0x00004dfc call  0x00003745 
+ 00021689  0x00004dfd branch  0x0000553f 
+ 00021690  0x00004e00 fetch  0x00000001 , 0x00004abf 
+ 00021691  0x00004e01 rtneq  0x000000ff 
+ 00021692  0x00004e02 fetch  0x00000001 , 0x00004ac4 
+ 00021693  0x00004e03 rtn  0x00000034 
+ 00021694  0x00004e04 call  0x000051ac 
+ 00021695  0x00004e05 and  0x00000011 , 0x00000007 , 0x0000003f 
+ 00021696  0x00004e06 fetcht  0x00000001 , 0x00004abf 
+ 00021697  0x00004e07 isub  0x00000002 , 0x0000003e 
+ 00021698  0x00004e08 branch  0x000054c6 , 0x00000005 
+ 00021699  0x00004e09 fetch  0x00000001 , 0x00004ac1 
+ 00021700  0x00004e0b store  0x00000001 , 0x00004ac3 
+ 00021701  0x00004e0c rtn 
+ 00021702  0x00004e0f arg  0x00004ac3 , 0x00000013 
+ 00021703  0x00004e10 arg  0x0000501e , 0x00000012 
+ 00021704  0x00004e11 branch  0x00003755 
+ 00021705  0x00004e15 fetch  0x00000001 , 0x00004737 
+ 00021706  0x00004e16 rtn  0x00000034 
+ 00021707  0x00004e18 fetch  0x00000001 , 0x00004ac0 
+ 00021708  0x00004e19 rtneq  0x000000ff 
+ 00021709  0x00004e1a call  0x000051ac 
+ 00021710  0x00004e1b and  0x00000011 , 0x00000007 , 0x0000003f 
+ 00021711  0x00004e1c fetcht  0x00000001 , 0x00004ac0 
+ 00021712  0x00004e1d isub  0x00000002 , 0x0000003e 
+ 00021713  0x00004e1e branch  0x000054d4 , 0x00000005 
+ 00021714  0x00004e1f fetch  0x00000001 , 0x00004ac2 
+ 00021715  0x00004e20 branch  0x000054c4 
+ 00021716  0x00004e23 arg  0x00004ac3 , 0x00000013 
+ 00021717  0x00004e24 arg  0x000057f6 , 0x00000012 
+ 00021718  0x00004e25 branch  0x00003755 
+ 00021719  0x00004e28 fetch  0x00000001 , 0x00004678 
+ 00021720  0x00004e29 beq  0x00000000 , 0x000054dd 
+ 00021721  0x00004e2a fetch  0x00000008 , 0x0000470e 
+ 00021722  0x00004e2b rtnbit0  0x00000035 
+ 00021723  0x00004e2c fetcht  0x00000001 , 0x00004abd 
+ 00021724  0x00004e2d branch  0x000054e0 
+ 00021725  0x00004e30 fetch  0x00000008 , 0x0000470e 
+ 00021726  0x00004e31 rtnbit0  0x00000032 
+ 00021727  0x00004e32 fetcht  0x00000001 , 0x00004abe 
+ 00021728  0x00004e34 storet  0x00000001 , 0x00004733 
+ 00021729  0x00004e35 call  0x000051ac 
+ 00021730  0x00004e36 and  0x00000011 , 0x00000007 , 0x0000003f 
+ 00021731  0x00004e37 fetcht  0x00000001 , 0x00004733 
+ 00021732  0x00004e38 isub  0x00000002 , 0x0000003e 
+ 00021733  0x00004e39 branch  0x000054ec , 0x00000005 
+ 00021734  0x00004e3b fetch  0x00000001 , 0x00004502 
+ 00021735  0x00004e3c store  0x00000001 , 0x00004736 
+ 00021736  0x00004e3d fetch  0x00000001 , 0x00004735 
+ 00021737  0x00004e3e rtneq  0x00000000 
+ 00021738  0x00004e3f jam  0x00000000 , 0x00004735 
+ 00021739  0x00004e40 rtn 
+ 00021740  0x00004e43 call  0x000054f1 
+ 00021741  0x00004e44 fetch  0x00000001 , 0x00004735 
+ 00021742  0x00004e45 rtneq  0x00000001 
+ 00021743  0x00004e46 jam  0x00000001 , 0x00004735 
+ 00021744  0x00004e47 rtn 
+ 00021745  0x00004e4a arg  0x00005965 , 0x00000012 
+ 00021746  0x00004e4b arg  0x00004736 , 0x00000013 
+ 00021747  0x00004e4c fetch  0x00000001 , 0x00004678 
+ 00021748  0x00004e4d beq  0x00000000 , 0x00003755 
+ 00021749  0x00004e4e arg  0x000054b2 , 0x00000012 
+ 00021750  0x00004e4f call  0x00003755 
+ 00021751  0x00004e50 fetch  0x00000001 , 0x00004736 
+ 00021752  0x00004e51 beq  0x00000001 , 0x00005820 
+ 00021753  0x00004e52 rtn 
+ 00021754  0x00004e55 arg  0x00004750 , 0x00000013 
+ 00021755  0x00004e56 arg  0x000054fd , 0x00000012 
+ 00021756  0x00004e57 branch  0x0000375c 
+ 00021757  0x00004e5a call  0x00005562 
+ 00021758  0x00004e5b branch  0x00004e35 
+ 00021759  0x00004e5e arg  0x00004720 , 0x00000013 
+ 00021760  0x00004e5f arg  0x00005505 , 0x00000012 
+ 00021761  0x00004e60 call  0x00003755 
+ 00021762  0x00004e61 fetch  0x00000001 , 0x00004720 
+ 00021763  0x00004e62 beq  0x00000001 , 0x00003788 
+ 00021764  0x00004e63 rtn 
+ 00021765  0x00004e66 fetch  0x00000001 , 0x0000474f 
+ 00021766  0x00004e67 beq  0x000000ff , 0x000053b3 
+ 00021767  0x00004e68 fetch  0x00000001 , 0x0000473f 
+ 00021768  0x00004e69 nbranch  0x00005836 , 0x00000034 
+ 00021769  0x00004e6a fetch  0x00000008 , 0x0000470e 
+ 00021770  0x00004e6b bbit1  0x00000033 , 0x00005544 
+ 00021771  0x00004e6c bbit1  0x0000003e , 0x0000595d 
+ 00021772  0x00004e6d branch  0x00004e35 
+ 00021773  0x00004e70 arg  0x00004883 , 0x00000013 
+ 00021774  0x00004e71 arg  0x00005426 , 0x00000012 
+ 00021775  0x00004e72 branch  0x00003755 
+ 00021776  0x00004e75 fetch  0x00000001 , 0x00004753 
+ 00021777  0x00004e76 rtn  0x00000034 
+ 00021778  0x00004e77 arg  0x00004755 , 0x00000013 
+ 00021779  0x00004e78 arg  0x00005515 , 0x00000012 
+ 00021780  0x00004e79 branch  0x00003755 
+ 00021781  0x00004e7b fetch  0x00000001 , 0x00004754 
+ 00021782  0x00004e7c nrtn  0x00000034 
+ 00021783  0x00004e7d fetch  0x00000001 , 0x000042fe 
+ 00021784  0x00004e7e rtnne  0x00000000 
+ 00021785  0x00004e7f branch  0x00002fab 
+ 00021786  0x00004e82 fetch  0x00000008 , 0x0000470e 
+ 00021787  0x00004e83 rtnbit1  0x0000003b 
+ 00021788  0x00004e84 arg  0x0000477f , 0x00000013 
+ 00021789  0x00004e85 arg  0x0000551f , 0x00000012 
+ 00021790  0x00004e86 branch  0x00003755 
+ 00021791  0x00004e89 fetch  0x00000002 , 0x0000477d 
+ 00021792  0x00004e8a store  0x00000002 , 0x0000477f 
+ 00021793  0x00004e8b branch  0x00005450 
+ 00021794  0x00004e8e fetch  0x00000001 , 0x00004882 
+ 00021795  0x00004e8f rtnbit1  0x00000002 
+ 00021796  0x00004e90 call  0x00005408 
+ 00021797  0x00004e91 arg  0x00000000 , 0x00000007 
+ 00021798  0x00004e92 branch  0x00005411 
+ 00021799  0x00004e95 arg  0x0000473e , 0x00000013 
+ 00021800  0x00004e96 arg  0x0000552a , 0x00000012 
+ 00021801  0x00004e97 branch  0x00003755 
+ 00021802  0x00004e99 fetch  0x00000001 , 0x0000488b 
+ 00021803  0x00004e9a store  0x00000001 , 0x000040c0 
+ 00021804  0x00004e9c fetch  0x00000001 , 0x0000473c 
+ 00021805  0x00004e9d store  0x00000001 , 0x0000473d 
+ 00021806  0x00004e9e rtn 
+ 00021807  0x00004ea1 arg  0x00004741 , 0x00000013 
+ 00021808  0x00004ea2 arg  0x00005532 , 0x00000012 
+ 00021809  0x00004ea3 branch  0x0000375c 
+ 00021810  0x00004ea6 fetch  0x00000001 , 0x00004678 
+ 00021811  0x00004ea7 beq  0x00000000 , 0x0000590a 
+ 00021812  0x00004ea8 branch  0x000053c6 
+ 00021813  0x00004eab fetch  0x00000002 , 0x0000471e 
+ 00021814  0x00004eac store  0x00000002 , 0x00004741 
+ 00021815  0x00004ead rtn 
+ 00021816  0x00004eb0 arg  0x00004705 , 0x00000013 
+ 00021817  0x00004eb1 arg  0x0000553b , 0x00000012 
+ 00021818  0x00004eb2 branch  0x00003755 
+ 00021819  0x00004eb5 call  0x00005574 
+ 00021820  0x00004eb6 fetch  0x00000001 , 0x00004752 
+ 00021821  0x00004eb7 nbranch  0x00005801 , 0x00000034 
+ 00021822  0x00004eb8 rtn 
+ 00021823  0x00004ebd isolate1  0x00000026 , 0x00000000 
+ 00021824  0x00004ebe call  0x00005936 , 0x00000001 
+ 00021825  0x00004ebf call  0x000053c6 
+ 00021826  0x00004ec0 jam  0x00000000 , 0x00004882 
+ 00021827  0x00004ec1 branch  0x00005544 
+ 00021828  0x00004ec4 bpatch  0x00000094 , 0x00004012 
+ 00021829  0x00004ec5 call  0x00005a7a 
+ 00021830  0x00004ec6 fetch  0x00000002 , 0x00004500 
+ 00021831  0x00004ec7 isolate1  0x0000000b , 0x0000003f 
+ 00021832  0x00004ec8 call  0x00005565 , 0x00000001 
+ 00021833  0x00004ec9 call  0x000053c1 
+ 00021834  0x00004eca fetch  0x00000002 , 0x00004500 
+ 00021835  0x00004ecb bbit1  0x0000000b , 0x00005554 
+ 00021836  0x00004ecc fetch  0x00000008 , 0x0000470e 
+ 00021837  0x00004ecd bbit0  0x00000008 , 0x00005554 
+ 00021838  0x00004ece fetcht  0x00000001 , 0x000046a7 
+ 00021839  0x00004ecf increase  0x00000001 , 0x00000002 
+ 00021840  0x00004ed0 storet  0x00000001 , 0x000046a7 
+ 00021841  0x00004ed1 storet  0x00000001 , 0x000042df 
+ 00021842  0x00004ed2 random  0x0000003f 
+ 00021843  0x00004ed3 store  0x00000002 , 0x000042dd 
+ 00021844  0x00004ed5 fetch  0x00000003 , 0x00004756 
+ 00021845  0x00004ed6 store  0x00000003 , 0x000042e0 
+ 00021846  0x00004ed7 call  0x000037a2 
+ 00021847  0x00004ed8 fetch  0x00000002 , 0x0000464f 
+ 00021848  0x00004ed9 store  0x00000002 , 0x00004750 
+ 00021849  0x00004eda setarg  0x00000000 
+ 00021850  0x00004edb store  0x00000002 , 0x00004741 
+ 00021851  0x00004edc store  0x00000002 , 0x0000477f 
+ 00021852  0x00004edd store  0x00000001 , 0x00004720 
+ 00021853  0x00004ede store  0x00000001 , 0x000049f9 
+ 00021854  0x00004edf arg  0x00000002 , 0x00000007 
+ 00021855  0x00004ee0 call  0x0000582e 
+ 00021856  0x00004ee1 call  0x00005822 
+ 00021857  0x00004ee2 branch  0x00005455 
+ 00021858  0x00004ee5 bpatch  0x00000095 , 0x00004012 
+ 00021859  0x00004ee6 arg  0x00000006 , 0x00000007 
+ 00021860  0x00004ee7 call  0x00005832 
+ 00021861  0x00004ee9 setarg  0x00000000 
+ 00021862  0x00004eea store  0x00000001 , 0x00004720 
+ 00021863  0x00004eeb store  0x00000002 , 0x00004750 
+ 00021864  0x00004eec branch  0x00007866 
+ 00021865  0x00004eef bpatch  0x00000096 , 0x00004012 
+ 00021866  0x00004ef0 fetch  0x00000008 , 0x0000470e 
+ 00021867  0x00004ef1 rtnbit0  0x00000002 
+ 00021868  0x00004ef2 arg  0x00000002 , 0x00000007 
+ 00021869  0x00004ef3 call  0x00005832 
+ 00021870  0x00004ef4 call  0x000067e4 
+ 00021871  0x00004ef6 call  0x000067c1 
+ 00021872  0x00004ef7 branch  0x00005571 
+ 00021873  0x00004efc fetch  0x00000001 , 0x00004706 
+ 00021874  0x00004efd store  0x00000001 , 0x00004705 
+ 00021875  0x00004efe rtn 
+ 00021876  0x00004f01 bpatch  0x00000097 , 0x00004012 
+ 00021877  0x00004f02 fetch  0x00000008 , 0x0000470e 
+ 00021878  0x00004f03 bbit1  0x00000011 , 0x00005580 
+ 00021879  0x00004f04 bbit1  0x00000010 , 0x00005588 
+ 00021880  0x00004f05 bbit1  0x00000012 , 0x0000558a 
+ 00021881  0x00004f06 rtn 
+ 00021882  0x00004f09 bpatch  0x00000098 , 0x00004013 
+ 00021883  0x00004f0a fetch  0x00000008 , 0x0000470e 
+ 00021884  0x00004f0b bbit1  0x00000011 , 0x00005584 
+ 00021885  0x00004f0c bbit1  0x00000012 , 0x00005612 
+ 00021886  0x00004f0d bbit1  0x00000010 , 0x00005588 
+ 00021887  0x00004f0e rtn 
+ 00021888  0x00004f13 arg  0x00000080 , 0x00000002 
+ 00021889  0x00004f14 arg  0x00004678 , 0x00000011 
+ 00021890  0x00004f15 arg  0x00000000 , 0x00000012 
+ 00021891  0x00004f16 branch  0x00006cc9 
+ 00021892  0x00004f19 arg  0x00000001 , 0x00000002 
+ 00021893  0x00004f1a arg  0x000046a2 , 0x00000011 
+ 00021894  0x00004f1b arg  0x0000005a , 0x00000012 
+ 00021895  0x00004f1c branch  0x00006cc9 
+ 00021896  0x00004f21 call  0x000067bb 
+ 00021897  0x00004f22 branch  0x00004f1b 
+ 00021898  0x00004f28 call  0x0000558e 
+ 00021899  0x00004f29 call  0x00005594 
+ 00021900  0x00004f2a call  0x000055bb 
+ 00021901  0x00004f2b branch  0x000055fc 
+ 00021902  0x00004f2e call  0x00005699 
+ 00021903  0x00004f2f fetch  0x00000002 , 0x000046a0 
+ 00021904  0x00004f30 arg  0x0000aa55 , 0x00000002 
+ 00021905  0x00004f31 isub  0x00000002 , 0x0000003e 
+ 00021906  0x00004f32 rtn  0x00000005 
+ 00021907  0x00004f33 branch  0x0000569d 
+ 00021908  0x00004f37 fetchr  0x00000012 , 0x00000002 , 0x00004a7f 
+ 00021909  0x00004f38 copy  0x00000012 , 0x00000013 
+ 00021910  0x00004f3a call  0x000056ad 
+ 00021911  0x00004f3b fetch  0x00000001 , 0x00004718 
+ 00021912  0x00004f3c branch  0x000055a0 , 0x00000034 
+ 00021913  0x00004f3d store  0x00000001 , 0x00004a32 
+ 00021914  0x00004f3e increase  0x00000001 , 0x00000013 
+ 00021915  0x00004f3f fetch  0x00000002 , 0x00004a81 
+ 00021916  0x00004f40 isub  0x00000013 , 0x0000003e 
+ 00021917  0x00004f41 nrtn  0x00000002 
+ 00021918  0x00004f42 copy  0x00000013 , 0x00000012 
+ 00021919  0x00004f43 branch  0x00005596 
+ 00021920  0x00004f46 fetch  0x00000001 , 0x00004a32 
+ 00021921  0x00004f47 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00021922  0x00004f48 branch  0x000055aa , 0x00000034 
+ 00021923  0x00004f4a fetch  0x00000001 , 0x00004678 
+ 00021924  0x00004f4b call  0x000055b8 
+ 00021925  0x00004f4c store  0x00000001 , 0x00004a33 
+ 00021926  0x00004f4f arg  0x00000001 , 0x00000039 
+ 00021927  0x00004f50 copy  0x00000013 , 0x00000012 
+ 00021928  0x00004f51 arg  0x00004a33 , 0x00000011 
+ 00021929  0x00004f52 branch  0x00006b33 
+ 00021930  0x00004f55 fetcht  0x00000001 , 0x00004a32 
+ 00021931  0x00004f56 fetch  0x00000001 , 0x00004678 
+ 00021932  0x00004f57 call  0x000055b8 
+ 00021933  0x00004f59 isub  0x00000002 , 0x0000003e 
+ 00021934  0x00004f5a rtn  0x00000005 
+ 00021935  0x00004f5b lshift4  0x0000003f , 0x0000003f 
+ 00021936  0x00004f5c iadd  0x00000002 , 0x0000003f 
+ 00021937  0x00004f5d store  0x00000001 , 0x00004a33 
+ 00021938  0x00004f5f copy  0x00000013 , 0x0000003f 
+ 00021939  0x00004f60 fetcht  0x00000002 , 0x00004a7f 
+ 00021940  0x00004f61 isub  0x00000002 , 0x0000003e 
+ 00021941  0x00004f62 branch  0x000055a6 , 0x00000005 
+ 00021942  0x00004f64 increase  0xffffffff , 0x00000013 
+ 00021943  0x00004f65 branch  0x000055a6 
+ 00021944  0x00004f68 rtnne  0x00000000 
+ 00021945  0x00004f69 increase  0x00000004 , 0x0000003f 
+ 00021946  0x00004f6a rtn 
+ 00021947  0x00004f6e fetch  0x00000001 , 0x00004678 
+ 00021948  0x00004f6f beq  0x00000000 , 0x000055c0 
+ 00021949  0x00004f70 beq  0x00000001 , 0x000055d4 
+ 00021950  0x00004f71 beq  0x00000002 , 0x000055e8 
+ 00021951  0x00004f72 rtn 
+ 00021952  0x00004f75 fetchr  0x00000012 , 0x00000002 , 0x00004a83 
+ 00021953  0x00004f76 copy  0x00000012 , 0x00000013 
+ 00021954  0x00004f78 call  0x00005726 
+ 00021955  0x00004f79 fetch  0x00000004 , 0x00004a6b 
+ 00021956  0x00004f7a branch  0x000055cc , 0x00000034 
+ 00021957  0x00004f7b store  0x00000004 , 0x00004a67 
+ 00021958  0x00004f7c increase  0x00000004 , 0x00000013 
+ 00021959  0x00004f7d fetch  0x00000002 , 0x00004a85 
+ 00021960  0x00004f7e isub  0x00000013 , 0x0000003e 
+ 00021961  0x00004f7f nrtn  0x00000002 
+ 00021962  0x00004f80 copy  0x00000013 , 0x00000012 
+ 00021963  0x00004f81 branch  0x000055c2 
+ 00021964  0x00004f84 fetch  0x00000004 , 0x00004a67 
+ 00021965  0x00004f85 fetcht  0x00000004 , 0x000046a3 
+ 00021966  0x00004f86 isub  0x00000002 , 0x0000003e 
+ 00021967  0x00004f87 rtn  0x00000005 
+ 00021968  0x00004f88 arg  0x00000004 , 0x00000039 
+ 00021969  0x00004f89 arg  0x000046a3 , 0x00000011 
+ 00021970  0x00004f8a copy  0x00000013 , 0x00000012 
+ 00021971  0x00004f8b branch  0x00006b33 
+ 00021972  0x00004f8e fetchr  0x00000012 , 0x00000002 , 0x00004a87 
+ 00021973  0x00004f8f copy  0x00000012 , 0x00000013 
+ 00021974  0x00004f91 call  0x000056d3 
+ 00021975  0x00004f92 fetch  0x00000006 , 0x00004a3a 
+ 00021976  0x00004f93 branch  0x000055e0 , 0x00000034 
+ 00021977  0x00004f94 store  0x00000006 , 0x00004a34 
+ 00021978  0x00004f95 increase  0x00000006 , 0x00000013 
+ 00021979  0x00004f96 fetch  0x00000002 , 0x00004a89 
+ 00021980  0x00004f97 isub  0x00000013 , 0x0000003e 
+ 00021981  0x00004f98 nrtn  0x00000002 
+ 00021982  0x00004f99 copy  0x00000013 , 0x00000012 
+ 00021983  0x00004f9a branch  0x000055d6 
+ 00021984  0x00004f9d fetch  0x00000006 , 0x00004a34 
+ 00021985  0x00004f9e fetcht  0x00000006 , 0x0000467a 
+ 00021986  0x00004f9f isub  0x00000002 , 0x0000003e 
+ 00021987  0x00004fa0 rtn  0x00000005 
+ 00021988  0x00004fa1 arg  0x00000006 , 0x00000039 
+ 00021989  0x00004fa2 arg  0x0000467a , 0x00000011 
+ 00021990  0x00004fa3 copy  0x00000013 , 0x00000012 
+ 00021991  0x00004fa4 branch  0x00006b33 
+ 00021992  0x00004fa8 fetchr  0x00000012 , 0x00000002 , 0x00004a73 
+ 00021993  0x00004fa9 copy  0x00000012 , 0x00000013 
+ 00021994  0x00004fab call  0x000056fc 
+ 00021995  0x00004fac fetch  0x00000006 , 0x00004a52 
+ 00021996  0x00004fad branch  0x000055f4 , 0x00000034 
+ 00021997  0x00004fae store  0x00000006 , 0x00004a4c 
+ 00021998  0x00004faf increase  0x00000006 , 0x00000013 
+ 00021999  0x00004fb0 fetch  0x00000002 , 0x00004a75 
+ 00022000  0x00004fb1 isub  0x00000013 , 0x0000003e 
+ 00022001  0x00004fb2 nrtn  0x00000002 
+ 00022002  0x00004fb3 copy  0x00000013 , 0x00000012 
+ 00022003  0x00004fb4 branch  0x000055ea 
+ 00022004  0x00004fb7 fetch  0x00000006 , 0x00004a4c 
+ 00022005  0x00004fb8 fetcht  0x00000006 , 0x00004687 
+ 00022006  0x00004fb9 isub  0x00000002 , 0x0000003e 
+ 00022007  0x00004fba rtn  0x00000005 
+ 00022008  0x00004fbb arg  0x00000006 , 0x00000039 
+ 00022009  0x00004fbc arg  0x00004687 , 0x00000011 
+ 00022010  0x00004fbd copy  0x00000013 , 0x00000012 
+ 00022011  0x00004fbe branch  0x00006b33 
+ 00022012  0x00004fc3 fetch  0x00000001 , 0x00004678 
+ 00022013  0x00004fc4 rtneq  0x00000000 
+ 00022014  0x00004fc5 fetchr  0x00000012 , 0x00000002 , 0x00004a8f 
+ 00022015  0x00004fc6 copy  0x00000012 , 0x00000013 
+ 00022016  0x00004fc8 call  0x00005738 
+ 00022017  0x00004fc9 fetch  0x00000001 , 0x00004a71 
+ 00022018  0x00004fca branch  0x0000560a , 0x00000034 
+ 00022019  0x00004fcb store  0x00000001 , 0x00004a6f 
+ 00022020  0x00004fcc increase  0x00000001 , 0x00000013 
+ 00022021  0x00004fcd fetch  0x00000002 , 0x00004a91 
+ 00022022  0x00004fce isub  0x00000013 , 0x0000003e 
+ 00022023  0x00004fcf nrtn  0x00000002 
+ 00022024  0x00004fd0 copy  0x00000013 , 0x00000012 
+ 00022025  0x00004fd1 branch  0x00005600 
+ 00022026  0x00004fd4 fetch  0x00000001 , 0x00004a6f 
+ 00022027  0x00004fd5 fetcht  0x00000001 , 0x000046a7 
+ 00022028  0x00004fd6 isub  0x00000002 , 0x0000003e 
+ 00022029  0x00004fd7 rtn  0x00000005 
+ 00022030  0x00004fd8 arg  0x00000001 , 0x00000039 
+ 00022031  0x00004fd9 arg  0x000046a7 , 0x00000011 
+ 00022032  0x00004fda copy  0x00000013 , 0x00000012 
+ 00022033  0x00004fdb branch  0x00006b33 
+ 00022034  0x00004fe0 fetch  0x00000008 , 0x0000470e 
+ 00022035  0x00004fe1 rtnbit0  0x0000000e 
+ 00022036  0x00004fe2 fetchr  0x00000012 , 0x00000002 , 0x00004a7b 
+ 00022037  0x00004fe3 copy  0x00000012 , 0x00000013 
+ 00022038  0x00004fe5 call  0x0000574c 
+ 00022039  0x00004fe6 fetch  0x00000001 , 0x00004a65 
+ 00022040  0x00004fe7 branch  0x00005620 , 0x00000034 
+ 00022041  0x00004fe8 store  0x00000001 , 0x00004a64 
+ 00022042  0x00004fe9 increase  0x00000001 , 0x00000013 
+ 00022043  0x00004fea fetch  0x00000002 , 0x00004a7d 
+ 00022044  0x00004feb isub  0x00000013 , 0x0000003e 
+ 00022045  0x00004fec nrtn  0x00000002 
+ 00022046  0x00004fed copy  0x00000013 , 0x00000012 
+ 00022047  0x00004fee branch  0x00005616 
+ 00022048  0x00004ff1 fetch  0x00000001 , 0x00004a64 
+ 00022049  0x00004ff2 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00022050  0x00004ff3 branch  0x0000562a , 0x00000034 
+ 00022051  0x00004ff4 fetch  0x00000001 , 0x000046a2 
+ 00022052  0x00004ff5 call  0x00005638 
+ 00022053  0x00004ff6 store  0x00000001 , 0x00004a66 
+ 00022054  0x00004ff8 arg  0x00000001 , 0x00000039 
+ 00022055  0x00004ff9 copy  0x00000013 , 0x00000012 
+ 00022056  0x00004ffa arg  0x00004a66 , 0x00000011 
+ 00022057  0x00004ffb branch  0x00006b33 
+ 00022058  0x00004ffe fetcht  0x00000001 , 0x00004a64 
+ 00022059  0x00004fff fetch  0x00000001 , 0x000046a2 
+ 00022060  0x00005000 call  0x00005638 
+ 00022061  0x00005001 isub  0x00000002 , 0x0000003e 
+ 00022062  0x00005002 rtn  0x00000005 
+ 00022063  0x00005003 lshift4  0x0000003f , 0x0000003f 
+ 00022064  0x00005004 iadd  0x00000002 , 0x0000003f 
+ 00022065  0x00005005 store  0x00000001 , 0x00004a66 
+ 00022066  0x00005007 copy  0x00000013 , 0x0000003f 
+ 00022067  0x00005008 fetcht  0x00000002 , 0x00004a7b 
+ 00022068  0x00005009 isub  0x00000002 , 0x0000003e 
+ 00022069  0x0000500a branch  0x00005626 , 0x00000005 
+ 00022070  0x0000500c increase  0xffffffff , 0x00000013 
+ 00022071  0x0000500d branch  0x00005626 
+ 00022072  0x00005010 rtnne  0x00000000 
+ 00022073  0x00005011 increase  0x00000007 , 0x0000003f 
+ 00022074  0x00005012 rtn 
+ 00022075  0x0000501b fetch  0x00000001 , 0x00004678 
+ 00022076  0x0000501c sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00022077  0x0000501d rtn  0x00000002 
+ 00022078  0x0000501e call  0x00007dcc 
+ 00022079  0x0000501f branch  0x000056bb 
+ 00022080  0x00005023 call  0x00006cb2 
+ 00022081  0x00005024 fetch  0x00000008 , 0x0000470e 
+ 00022082  0x00005025 isolate1  0x00000009 , 0x0000003f 
+ 00022083  0x00005026 ncall  0x00006cba , 0x00000001 
+ 00022084  0x00005027 call  0x00006cb7 , 0x00000001 
+ 00022085  0x00005028 call  0x00005648 
+ 00022086  0x00005029 call  0x0000563b 
+ 00022087  0x0000502a branch  0x00005689 
+ 00022088  0x0000502d arg  0x00000080 , 0x00000002 
+ 00022089  0x0000502e arg  0x00004678 , 0x00000011 
+ 00022090  0x0000502f arg  0x00000000 , 0x00000012 
+ 00022091  0x00005030 branch  0x00006cd7 
+ 00022092  0x00005033 arg  0x00000001 , 0x00000002 
+ 00022093  0x00005034 arg  0x000046a2 , 0x00000011 
+ 00022094  0x00005035 arg  0x0000005a , 0x00000012 
+ 00022095  0x00005036 branch  0x00006cd7 
+ 00022096  0x0000503b call  0x000067b6 
+ 00022097  0x0000503c call  0x0000563b 
+ 00022098  0x0000503d call  0x00005689 
+ 00022099  0x0000503e branch  0x00004f1b 
+ 00022100  0x00005041 setarg  0x000046f8 
+ 00022101  0x00005042 arg  0x00004678 , 0x00000002 
+ 00022102  0x00005043 isub  0x00000002 , 0x00000002 
+ 00022103  0x00005044 fetch  0x00000003 , 0x000046fe 
+ 00022104  0x00005045 arg  0x00004678 , 0x00000011 
+ 00022105  0x00005046 rtn 
+ 00022106  0x00005049 jam  0x000000ab , 0x00000656 
+ 00022107  0x0000504b call  0x000070bf 
+ 00022108  0x0000504c call  0x00006c1c 
+ 00022109  0x0000504d arg  0x00004701 , 0x00000011 
+ 00022110  0x0000504e fetcht  0x00000001 , 0x00000656 
+ 00022111  0x0000504f call  0x00005663 
+ 00022112  0x00005050 branch  0x000070bf 
+ 00022113  0x00005053 jam  0x000000b9 , 0x00000656 
+ 00022114  0x00005054 branch  0x0000565b 
+ 00022115  0x00005057 istoret  0x00000001 , 0x00000011 
+ 00022116  0x00005058 rshift16  0x0000003f , 0x00000002 
+ 00022117  0x00005059 istoret  0x00000001 , 0x00000005 
+ 00022118  0x0000505a rshift8  0x0000003f , 0x00000002 
+ 00022119  0x0000505b istoret  0x00000001 , 0x00000005 
+ 00022120  0x0000505c istore  0x00000001 , 0x00000005 
+ 00022121  0x0000505d deposit  0x00000011 
+ 00022122  0x0000505e store  0x00000002 , 0x00008084 
+ 00022123  0x0000505f setarg  0x00000000 
+ 00022124  0x00005060 store  0x00000002 , 0x00008088 
+ 00022125  0x00005061 jam  0x00000002 , 0x00008006 
+ 00022126  0x00005062 branch  0x00006bd6 
+ 00022127  0x00005065 fetch  0x00000003 , 0x000046fe 
+ 00022128  0x00005066 store  0x00000003 , 0x00004430 
+ 00022129  0x00005067 branch  0x00006bf0 
+ 00022130  0x0000506a copy  0x0000003f , 0x00000013 
+ 00022131  0x0000506b copy  0x00000011 , 0x0000003f 
+ 00022132  0x0000506c increase  0xfffffffc , 0x0000003f 
+ 00022133  0x0000506d copy  0x0000003f , 0x00000012 
+ 00022134  0x0000506e ifetch  0x00000004 , 0x00000012 
+ 00022135  0x0000506f store  0x00000004 , 0x00004701 
+ 00022136  0x00005070 copy  0x00000013 , 0x0000003f 
+ 00022137  0x00005071 call  0x00006c32 
+ 00022138  0x00005072 fetch  0x00000004 , 0x00004701 
+ 00022139  0x00005073 istore  0x00000004 , 0x00000012 
+ 00022140  0x00005074 rtn 
+ 00022141  0x00005077 fetch  0x00000008 , 0x0000470e 
+ 00022142  0x00005078 rtnbit0  0x00000010 
+ 00022143  0x00005079 call  0x00005661 
+ 00022144  0x0000507a call  0x0000696c 
+ 00022145  0x0000507b fetcht  0x00000001 , 0x00004438 
+ 00022146  0x0000507c call  0x00006eed 
+ 00022147  0x0000507d fetcht  0x00000001 , 0x0000443d 
+ 00022148  0x0000507e branch  0x00004f06 
+ 00022149  0x00005083 call  0x0000573e 
+ 00022150  0x00005084 call  0x000056a1 
+ 00022151  0x00005085 call  0x0000563b 
+ 00022152  0x00005086 call  0x000056bf 
+ 00022153  0x00005088 bpatch  0x00000099 , 0x00004013 
+ 00022154  0x00005089 fetch  0x00000008 , 0x0000470e 
+ 00022155  0x0000508a isolate1  0x00000012 , 0x0000003f 
+ 00022156  0x0000508b call  0x00005699 , 0x00000001 
+ 00022157  0x0000508c fetch  0x00000002 , 0x000046a0 
+ 00022158  0x0000508d arg  0x0000aa55 , 0x00000002 
+ 00022159  0x0000508e isub  0x00000002 , 0x0000003e 
+ 00022160  0x0000508f branch  0x000067cf , 0x00000005 
+ 00022161  0x00005091 storet  0x00000002 , 0x000046a0 
+ 00022162  0x00005092 call  0x000067f8 
+ 00022163  0x00005093 fetch  0x00000001 , 0x00004717 
+ 00022164  0x00005094 store  0x00000001 , 0x00004678 
+ 00022165  0x00005095 store  0x00000001 , 0x000046a7 
+ 00022166  0x00005097 fetch  0x00000001 , 0x00004899 
+ 00022167  0x00005099 store  0x00000001 , 0x000046a2 
+ 00022168  0x0000509a rtn 
+ 00022169  0x0000509d arg  0x00000002 , 0x00000039 
+ 00022170  0x0000509e fetchr  0x00000012 , 0x00000002 , 0x00004a93 
+ 00022171  0x0000509f arg  0x000046a0 , 0x00000011 
+ 00022172  0x000050a0 branch  0x00006b62 
+ 00022173  0x000050a3 arg  0x00000002 , 0x00000039 
+ 00022174  0x000050a4 arg  0x000046a0 , 0x00000011 
+ 00022175  0x000050a5 fetchr  0x00000012 , 0x00000002 , 0x00004a93 
+ 00022176  0x000050a6 branch  0x00006b33 
+ 00022177  0x000050aa fetchr  0x00000012 , 0x00000002 , 0x00004a7f 
+ 00022178  0x000050ab copy  0x00000012 , 0x00000013 
+ 00022179  0x000050ad call  0x000056ad 
+ 00022180  0x000050ae fetch  0x00000001 , 0x00004718 
+ 00022181  0x000050af branch  0x000056b0 , 0x00000034 
+ 00022182  0x000050b0 store  0x00000001 , 0x00004a32 
+ 00022183  0x000050b1 increase  0x00000001 , 0x00000013 
+ 00022184  0x000050b2 fetch  0x00000002 , 0x00004a81 
+ 00022185  0x000050b3 isub  0x00000013 , 0x0000003e 
+ 00022186  0x000050b4 nbranch  0x000056b0 , 0x00000002 
+ 00022187  0x000050b5 copy  0x00000013 , 0x00000012 
+ 00022188  0x000050b6 branch  0x000056a3 
+ 00022189  0x000050b9 arg  0x00000001 , 0x00000039 
+ 00022190  0x000050ba arg  0x00004718 , 0x00000011 
+ 00022191  0x000050bb branch  0x00006b62 
+ 00022192  0x000050be fetch  0x00000001 , 0x00004a32 
+ 00022193  0x000050bf copy  0x0000003f , 0x00000002 
+ 00022194  0x000050c0 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00022195  0x000050c1 branch  0x000056b6 , 0x00000034 
+ 00022196  0x000050c2 rshift4  0x0000003f , 0x0000003f 
+ 00022197  0x000050c3 branch  0x000056b7 
+ 00022198  0x000050c6 copy  0x00000002 , 0x0000003f 
+ 00022199  0x000050c8 sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00022200  0x000050c9 branch  0x000056bd , 0x00000005 
+ 00022201  0x000050ca sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00022202  0x000050cb call  0x00007dcc , 0x00000005 
+ 00022203  0x000050cd store  0x00000001 , 0x00004678 
+ 00022204  0x000050ce rtn 
+ 00022205  0x000050d1 fetch  0x00000001 , 0x00004717 
+ 00022206  0x000050d2 branch  0x000056bb 
+ 00022207  0x000050d6 call  0x0000571a 
+ 00022208  0x000050d7 call  0x000056c3 
+ 00022209  0x000050d8 call  0x000056c5 
+ 00022210  0x000050d9 branch  0x0000572c 
+ 00022211  0x000050dc call  0x000056c7 
+ 00022212  0x000050dd branch  0x000056d9 
+ 00022213  0x000050e0 call  0x000056f0 
+ 00022214  0x000050e1 branch  0x00005702 
+ 00022215  0x000050e5 fetchr  0x00000012 , 0x00000002 , 0x00004a87 
+ 00022216  0x000050e6 copy  0x00000012 , 0x00000013 
+ 00022217  0x000050e8 call  0x000056d3 
+ 00022218  0x000050e9 fetch  0x00000006 , 0x00004a3a 
+ 00022219  0x000050ea branch  0x000056d6 , 0x00000034 
+ 00022220  0x000050eb store  0x00000006 , 0x00004a34 
+ 00022221  0x000050ec increase  0x00000006 , 0x00000013 
+ 00022222  0x000050ed fetch  0x00000002 , 0x00004a89 
+ 00022223  0x000050ee isub  0x00000013 , 0x0000003e 
+ 00022224  0x000050ef nbranch  0x000056d6 , 0x00000002 
+ 00022225  0x000050f0 copy  0x00000013 , 0x00000012 
+ 00022226  0x000050f1 branch  0x000056c9 
+ 00022227  0x000050f4 arg  0x00000006 , 0x00000039 
+ 00022228  0x000050f5 arg  0x00004a3a , 0x00000011 
+ 00022229  0x000050f6 branch  0x00006b62 
+ 00022230  0x000050f9 fetch  0x00000006 , 0x00004a34 
+ 00022231  0x000050fa store  0x00000006 , 0x0000467a 
+ 00022232  0x000050fb rtn 
+ 00022233  0x000050ff fetchr  0x00000012 , 0x00000002 , 0x00004a8b 
+ 00022234  0x00005100 copy  0x00000012 , 0x00000013 
+ 00022235  0x00005102 call  0x000056e5 
+ 00022236  0x00005103 fetch  0x00000006 , 0x00004a46 
+ 00022237  0x00005104 branch  0x000056e8 , 0x00000034 
+ 00022238  0x00005105 store  0x00000006 , 0x00004a40 
+ 00022239  0x00005106 increase  0x00000006 , 0x00000013 
+ 00022240  0x00005107 fetch  0x00000002 , 0x00004a8d 
+ 00022241  0x00005108 isub  0x00000013 , 0x0000003e 
+ 00022242  0x00005109 nbranch  0x000056e8 , 0x00000002 
+ 00022243  0x0000510a copy  0x00000013 , 0x00000012 
+ 00022244  0x0000510b branch  0x000056db 
+ 00022245  0x0000510e arg  0x00000006 , 0x00000039 
+ 00022246  0x0000510f arg  0x00004a46 , 0x00000011 
+ 00022247  0x00005110 branch  0x00006b62 
+ 00022248  0x00005113 fetch  0x00000006 , 0x00004a40 
+ 00022249  0x00005114 fetcht  0x00000006 , 0x000046f8 
+ 00022250  0x00005115 isub  0x00000002 , 0x0000003e 
+ 00022251  0x00005116 call  0x000056ee , 0x00000005 
+ 00022252  0x00005117 store  0x00000006 , 0x00004680 
+ 00022253  0x00005118 rtn 
+ 00022254  0x0000511b fetch  0x00000006 , 0x000042dd 
+ 00022255  0x0000511c rtn 
+ 00022256  0x00005120 fetchr  0x00000012 , 0x00000002 , 0x00004a73 
+ 00022257  0x00005121 copy  0x00000012 , 0x00000013 
+ 00022258  0x00005123 call  0x000056fc 
+ 00022259  0x00005124 fetch  0x00000006 , 0x00004a52 
+ 00022260  0x00005125 branch  0x000056ff , 0x00000034 
+ 00022261  0x00005126 store  0x00000006 , 0x00004a4c 
+ 00022262  0x00005127 increase  0x00000006 , 0x00000013 
+ 00022263  0x00005128 fetch  0x00000002 , 0x00004a75 
+ 00022264  0x00005129 isub  0x00000013 , 0x0000003e 
+ 00022265  0x0000512a nbranch  0x000056ff , 0x00000002 
+ 00022266  0x0000512b copy  0x00000013 , 0x00000012 
+ 00022267  0x0000512c branch  0x000056f2 
+ 00022268  0x0000512f arg  0x00000006 , 0x00000039 
+ 00022269  0x00005130 arg  0x00004a52 , 0x00000011 
+ 00022270  0x00005131 branch  0x00006b62 
+ 00022271  0x00005134 fetch  0x00000006 , 0x00004a4c 
+ 00022272  0x00005135 store  0x00000006 , 0x00004687 
+ 00022273  0x00005136 rtn 
+ 00022274  0x0000513a fetchr  0x00000012 , 0x00000002 , 0x00004a77 
+ 00022275  0x0000513b copy  0x00000012 , 0x00000013 
+ 00022276  0x0000513d call  0x0000570e 
+ 00022277  0x0000513e fetch  0x00000006 , 0x00004a5e 
+ 00022278  0x0000513f branch  0x00005711 , 0x00000034 
+ 00022279  0x00005140 store  0x00000006 , 0x00004a58 
+ 00022280  0x00005141 increase  0x00000006 , 0x00000013 
+ 00022281  0x00005142 fetch  0x00000002 , 0x00004a79 
+ 00022282  0x00005143 isub  0x00000013 , 0x0000003e 
+ 00022283  0x00005144 nbranch  0x00005711 , 0x00000002 
+ 00022284  0x00005145 copy  0x00000013 , 0x00000012 
+ 00022285  0x00005146 branch  0x00005704 
+ 00022286  0x00005149 arg  0x00000006 , 0x00000039 
+ 00022287  0x0000514a arg  0x00004a5e , 0x00000011 
+ 00022288  0x0000514b branch  0x00006b62 
+ 00022289  0x0000514e fetch  0x00000006 , 0x00004a58 
+ 00022290  0x0000514f fetcht  0x00000006 , 0x000046f8 
+ 00022291  0x00005150 isub  0x00000002 , 0x0000003e 
+ 00022292  0x00005151 call  0x00005717 , 0x00000005 
+ 00022293  0x00005152 store  0x00000006 , 0x0000468d 
+ 00022294  0x00005153 rtn 
+ 00022295  0x00005156 fetch  0x00000006 , 0x000042dd 
+ 00022296  0x00005157 add  0x0000003f , 0x00000100 , 0x0000003f 
+ 00022297  0x00005158 rtn 
+ 00022298  0x0000515c fetchr  0x00000012 , 0x00000002 , 0x00004a83 
+ 00022299  0x0000515d copy  0x00000012 , 0x00000013 
+ 00022300  0x0000515f call  0x00005726 
+ 00022301  0x00005160 fetch  0x00000004 , 0x00004a6b 
+ 00022302  0x00005161 branch  0x00005729 , 0x00000034 
+ 00022303  0x00005162 store  0x00000004 , 0x00004a67 
+ 00022304  0x00005163 increase  0x00000004 , 0x00000013 
+ 00022305  0x00005164 fetch  0x00000002 , 0x00004a85 
+ 00022306  0x00005165 isub  0x00000013 , 0x0000003e 
+ 00022307  0x00005166 nbranch  0x00005729 , 0x00000002 
+ 00022308  0x00005167 copy  0x00000013 , 0x00000012 
+ 00022309  0x00005168 branch  0x0000571c 
+ 00022310  0x0000516b arg  0x00000004 , 0x00000039 
+ 00022311  0x0000516c arg  0x00004a6b , 0x00000011 
+ 00022312  0x0000516d branch  0x00006b62 
+ 00022313  0x00005170 fetch  0x00000004 , 0x00004a67 
+ 00022314  0x00005171 store  0x00000004 , 0x000046a3 
+ 00022315  0x00005172 rtn 
+ 00022316  0x00005176 fetchr  0x00000012 , 0x00000002 , 0x00004a8f 
+ 00022317  0x00005177 copy  0x00000012 , 0x00000013 
+ 00022318  0x00005179 call  0x00005738 
+ 00022319  0x0000517a fetch  0x00000001 , 0x00004a71 
+ 00022320  0x0000517b branch  0x0000573b , 0x00000034 
+ 00022321  0x0000517c store  0x00000001 , 0x00004a6f 
+ 00022322  0x0000517d increase  0x00000001 , 0x00000013 
+ 00022323  0x0000517e fetch  0x00000002 , 0x00004a91 
+ 00022324  0x0000517f isub  0x00000013 , 0x0000003e 
+ 00022325  0x00005180 nbranch  0x0000573b , 0x00000002 
+ 00022326  0x00005181 copy  0x00000013 , 0x00000012 
+ 00022327  0x00005182 branch  0x0000572e 
+ 00022328  0x00005185 arg  0x00000001 , 0x00000039 
+ 00022329  0x00005186 arg  0x00004a71 , 0x00000011 
+ 00022330  0x00005187 branch  0x00006b62 
+ 00022331  0x0000518a fetch  0x00000001 , 0x00004a6f 
+ 00022332  0x0000518b store  0x00000001 , 0x000046a7 
+ 00022333  0x0000518c rtn 
+ 00022334  0x00005190 fetch  0x00000008 , 0x0000470e 
+ 00022335  0x00005191 bbit0  0x0000000e , 0x00005696 
+ 00022336  0x00005192 fetchr  0x00000012 , 0x00000002 , 0x00004a7b 
+ 00022337  0x00005193 copy  0x00000012 , 0x00000013 
+ 00022338  0x00005195 call  0x0000574c 
+ 00022339  0x00005196 fetch  0x00000001 , 0x00004a65 
+ 00022340  0x00005197 branch  0x0000574f , 0x00000034 
+ 00022341  0x00005198 store  0x00000001 , 0x00004a64 
+ 00022342  0x00005199 increase  0x00000001 , 0x00000013 
+ 00022343  0x0000519a fetch  0x00000002 , 0x00004a7d 
+ 00022344  0x0000519b isub  0x00000013 , 0x0000003e 
+ 00022345  0x0000519c nbranch  0x0000574f , 0x00000002 
+ 00022346  0x0000519d copy  0x00000013 , 0x00000012 
+ 00022347  0x0000519e branch  0x00005742 
+ 00022348  0x000051a1 arg  0x00000001 , 0x00000039 
+ 00022349  0x000051a2 arg  0x00004a65 , 0x00000011 
+ 00022350  0x000051a3 branch  0x00006b62 
+ 00022351  0x000051a6 fetch  0x00000001 , 0x00004a64 
+ 00022352  0x000051a7 copy  0x0000003f , 0x00000002 
+ 00022353  0x000051a8 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00022354  0x000051a9 branch  0x00005755 , 0x00000034 
+ 00022355  0x000051aa rshift4  0x0000003f , 0x0000003f 
+ 00022356  0x000051ab branch  0x00005756 
+ 00022357  0x000051ae copy  0x00000002 , 0x0000003f 
+ 00022358  0x000051b0 sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00022359  0x000051b1 call  0x00007dcc , 0x00000005 
+ 00022360  0x000051b2 branch  0x00005697 
+ 00022361  0x000051b8 bpatch  0x0000009a , 0x00004013 
+ 00022362  0x000051b9 call  0x00005add 
+ 00022363  0x000051ba call  0x0000789a 
+ 00022364  0x000051bb call  0x00004fdb 
+ 00022365  0x000051bc call  0x00005132 
+ 00022366  0x000051bd call  0x00005767 
+ 00022367  0x000051be call  0x000057b8 
+ 00022368  0x000051bf call  0x00005815 
+ 00022369  0x000051c0 call  0x00004f42 
+ 00022370  0x000051c1 fetch  0x00000008 , 0x0000470e 
+ 00022371  0x000051c2 rtnbit0  0x0000000c 
+ 00022372  0x000051c3 bpatch  0x0000009b , 0x00004013 
+ 00022373  0x000051c4 call  0x00005b87 
+ 00022374  0x000051c5 branch  0x00005bb0 
+ 00022375  0x000051c8 fetch  0x00000008 , 0x0000470e 
+ 00022376  0x000051c9 bbit1  0x00000029 , 0x0000576b 
+ 00022377  0x000051ca bbit1  0x00000037 , 0x0000576b 
+ 00022378  0x000051cb rtn 
+ 00022379  0x000051ce call  0x0000576d 
+ 00022380  0x000051cf branch  0x0000577e 
+ 00022381  0x000051d2 bpatch  0x0000009c , 0x00004013 
+ 00022382  0x000051d3 arg  0x00000000 , 0x00000011 
+ 00022383  0x000051d4 jam  0x00000006 , 0x00004a0f 
+ 00022384  0x000051d5 fetcht  0x00000001 , 0x0000489d 
+ 00022385  0x000051d6 call  0x00005781 
+ 00022386  0x000051d7 store  0x00000001 , 0x00004a0d 
+ 00022387  0x000051d8 fetch  0x00000001 , 0x0000489c 
+ 00022388  0x000051d9 beq  0x000000ff , 0x0000577c 
+ 00022389  0x000051da branch  0x00005203 
+ 00022390  0x000051dd fetch  0x00000001 , 0x0000489d 
+ 00022391  0x000051de rtneq  0x000000ff 
+ 00022392  0x000051df call  0x0000576d 
+ 00022393  0x000051e0 copy  0x00000011 , 0x0000003f 
+ 00022394  0x000051e1 bbit1  0x00000006 , 0x000057a4 
+ 00022395  0x000051e2 branch  0x00005797 
+ 00022396  0x000051e5 fetcht  0x00000001 , 0x0000489d 
+ 00022397  0x000051e6 call  0x00004f0a 
+ 00022398  0x000051e8 copy  0x00000011 , 0x0000003f 
+ 00022399  0x000051e9 bbit1  0x00000006 , 0x000057a2 
+ 00022400  0x000051ea branch  0x00005797 
+ 00022401  0x000051ed fetch  0x00000008 , 0x0000470e 
+ 00022402  0x000051ee bbit1  0x0000002d , 0x0000578d 
+ 00022403  0x000051ef fetch  0x00000001 , 0x00004a0d 
+ 00022404  0x000051f0 copy  0x0000003f , 0x00000013 
+ 00022405  0x000051f1 fetch  0x00000001 , 0x0000489c 
+ 00022406  0x000051f2 beq  0x000000ff , 0x00005242 
+ 00022407  0x000051f3 fetch  0x00000001 , 0x00004a13 
+ 00022408  0x000051f4 nbranch  0x0000578a , 0x00000034 
+ 00022409  0x000051f5 branch  0x0000578f 
+ 00022410  0x000051f8 jam  0x00000000 , 0x00004734 
+ 00022411  0x000051f9 jam  0x00000000 , 0x00004a0d 
+ 00022412  0x000051fa rtn 
+ 00022413  0x000051fd fetch  0x00000001 , 0x00004a0d 
+ 00022414  0x000051fe branch  0x00005236 
+ 00022415  0x00005201 call  0x00006ee0 
+ 00022416  0x00005202 fetcht  0x00000001 , 0x0000489c 
+ 00022417  0x00005203 branch  0x0000578d , 0x00000001 
+ 00022418  0x00005204 fetcht  0x00000001 , 0x0000489c 
+ 00022419  0x00005205 call  0x00006ef1 
+ 00022420  0x00005206 fetcht  0x00000001 , 0x0000489d 
+ 00022421  0x00005207 fetch  0x00000001 , 0x00004a0d 
+ 00022422  0x00005208 branch  0x00005236 
+ 00022423  0x0000520b fetch  0x00000001 , 0x00004734 
+ 00022424  0x0000520c rtneq  0x00000000 
+ 00022425  0x0000520d jam  0x00000000 , 0x00004734 
+ 00022426  0x0000520e fetch  0x00000008 , 0x0000470e 
+ 00022427  0x0000520f rtnbit1  0x00000034 
+ 00022428  0x00005210 fetch  0x00000001 , 0x00004731 
+ 00022429  0x00005211 sub  0x0000003f , 0x00000014 , 0x0000003e 
+ 00022430  0x00005212 ncall  0x000057f6 , 0x00000002 
+ 00022431  0x00005213 fetch  0x00000001 , 0x00004502 
+ 00022432  0x00005214 store  0x00000001 , 0x00004731 
+ 00022433  0x00005215 rtn 
+ 00022434  0x00005218 call  0x000057ae 
+ 00022435  0x00005219 rtn  0x00000028 
+ 00022436  0x0000521a fetch  0x00000001 , 0x00004734 
+ 00022437  0x0000521b rtneq  0x00000001 
+ 00022438  0x0000521c jam  0x00000001 , 0x00004734 
+ 00022439  0x0000521d fetch  0x00000008 , 0x0000470e 
+ 00022440  0x0000521e bbit1  0x00000034 , 0x000054b2 
+ 00022441  0x0000521f fetch  0x00000001 , 0x00004720 
+ 00022442  0x00005220 rtn  0x00000034 
+ 00022443  0x00005221 fetch  0x00000001 , 0x00004653 
+ 00022444  0x00005222 store  0x00000001 , 0x00004720 
+ 00022445  0x00005223 rtn 
+ 00022446  0x00005226 disable  0x00000028 
+ 00022447  0x00005227 fetch  0x00000008 , 0x0000470e 
+ 00022448  0x00005228 rtnbit1  0x0000002d 
+ 00022449  0x0000522a fetch  0x00000001 , 0x00004a07 
+ 00022450  0x0000522b rtn  0x00000034 
+ 00022451  0x0000522c fetch  0x00000001 , 0x00004a08 
+ 00022452  0x0000522d rtn  0x00000034 
+ 00022453  0x0000522e fetch  0x00000001 , 0x00004a09 
+ 00022454  0x0000522f rtn  0x00000034 
+ 00022455  0x00005230 branch  0x00007dbc 
+ 00022456  0x00005235 bpatch  0x0000009d , 0x00004013 
+ 00022457  0x00005236 fetch  0x00000008 , 0x0000470e 
+ 00022458  0x00005237 rtnbit0  0x0000002a 
+ 00022459  0x00005238 bbit0  0x00000016 , 0x000057bf 
+ 00022460  0x0000523a call  0x000057c2 
+ 00022461  0x0000523b fetch  0x00000001 , 0x00004665 
+ 00022462  0x0000523c branch  0x00005258 
+ 00022463  0x0000523f call  0x000057c8 
+ 00022464  0x00005240 fetch  0x00000001 , 0x00004665 
+ 00022465  0x00005241 branch  0x0000525c 
+ 00022466  0x00005244 fetch  0x00000001 , 0x00004665 
+ 00022467  0x00005245 call  0x0000525c 
+ 00022468  0x00005246 fetcht  0x00000001 , 0x00004665 
+ 00022469  0x00005247 call  0x00006ee0 
+ 00022470  0x00005248 branch  0x000057ce , 0x00000001 
+ 00022471  0x00005249 branch  0x000057d2 
+ 00022472  0x0000524c fetch  0x00000001 , 0x00004665 
+ 00022473  0x0000524d call  0x00005258 
+ 00022474  0x0000524e fetcht  0x00000001 , 0x00004665 
+ 00022475  0x0000524f call  0x00006ee0 
+ 00022476  0x00005250 branch  0x000057d2 , 0x00000001 
+ 00022477  0x00005251 branch  0x000057ce 
+ 00022478  0x00005254 fetch  0x00000001 , 0x00004678 
+ 00022479  0x00005255 rtneq  0x00000001 
+ 00022480  0x00005256 jam  0x00000001 , 0x00004678 
+ 00022481  0x00005257 branch  0x000057d5 
+ 00022482  0x0000525a fetch  0x00000001 , 0x00004678 
+ 00022483  0x0000525b rtneq  0x00000000 
+ 00022484  0x0000525c jam  0x00000000 , 0x00004678 
+ 00022485  0x0000525e call  0x000057f0 
+ 00022486  0x0000525f branch  0x00005801 
+ 00022487  0x00005264 bpatch  0x0000009e , 0x00004013 
+ 00022488  0x00005265 fetch  0x00000008 , 0x0000470e 
+ 00022489  0x00005266 rtnbit0  0x0000002a 
+ 00022490  0x00005267 bbit0  0x00000016 , 0x000057de 
+ 00022491  0x00005269 call  0x000057e1 
+ 00022492  0x0000526a fetch  0x00000001 , 0x00004665 
+ 00022493  0x0000526b branch  0x00005258 
+ 00022494  0x0000526e call  0x000057e7 
+ 00022495  0x0000526f fetch  0x00000001 , 0x00004665 
+ 00022496  0x00005270 branch  0x0000525c 
+ 00022497  0x00005274 fetch  0x00000001 , 0x00004665 
+ 00022498  0x00005275 call  0x0000525c 
+ 00022499  0x00005276 fetcht  0x00000001 , 0x00004665 
+ 00022500  0x00005277 call  0x00006ee0 
+ 00022501  0x00005278 branch  0x000057f2 , 0x00000001 
+ 00022502  0x00005279 branch  0x000057ed 
+ 00022503  0x0000527d fetch  0x00000001 , 0x00004665 
+ 00022504  0x0000527e call  0x00005258 
+ 00022505  0x0000527f fetcht  0x00000001 , 0x00004665 
+ 00022506  0x00005280 call  0x00006ee0 
+ 00022507  0x00005281 branch  0x000057ed , 0x00000001 
+ 00022508  0x00005282 branch  0x000057f2 
+ 00022509  0x00005285 fetch  0x00000001 , 0x00004678 
+ 00022510  0x00005286 rtneq  0x00000000 
+ 00022511  0x00005287 jam  0x00000000 , 0x00004678 
+ 00022512  0x00005289 call  0x00005936 
+ 00022513  0x0000528a branch  0x000053c3 
+ 00022514  0x0000528d fetch  0x00000001 , 0x00004678 
+ 00022515  0x0000528e rtneq  0x00000001 
+ 00022516  0x0000528f jam  0x00000001 , 0x00004678 
+ 00022517  0x00005290 branch  0x000057f0 
+ 00022518  0x00005296 bpatch  0x0000009f , 0x00004013 
+ 00022519  0x00005297 fetch  0x00000001 , 0x00004716 
+ 00022520  0x00005298 rtneq  0x00000001 
+ 00022521  0x00005299 call  0x00005803 
+ 00022522  0x0000529a storet  0x00000001 , 0x00004678 
+ 00022523  0x0000529c call  0x00005818 
+ 00022524  0x0000529d call  0x000053c3 
+ 00022525  0x0000529e call  0x00003745 
+ 00022526  0x0000529f call  0x0000581a 
+ 00022527  0x000052a0 jam  0x00000001 , 0x00004752 
+ 00022528  0x000052a1 branch  0x00005571 
+ 00022529  0x000052a4 call  0x00005818 
+ 00022530  0x000052a5 branch  0x00006c99 
+ 00022531  0x000052a8 fetcht  0x00000001 , 0x00004678 
+ 00022532  0x000052a9 increase  0x00000001 , 0x00000002 
+ 00022533  0x000052aa fetch  0x00000008 , 0x0000470e 
+ 00022534  0x000052ab bbit1  0x0000000f , 0x0000580b 
+ 00022535  0x000052ac sub  0x00000002 , 0x00000002 , 0x0000003e 
+ 00022536  0x000052ad rtn  0x00000002 
+ 00022537  0x000052af arg  0x00000001 , 0x00000002 
+ 00022538  0x000052b0 rtn 
+ 00022539  0x000052b3 fetch  0x00000001 , 0x00004716 
+ 00022540  0x000052b4 increase  0xffffffff , 0x0000003f 
+ 00022541  0x000052b5 isub  0x00000002 , 0x0000003e 
+ 00022542  0x000052b6 rtn  0x00000002 
+ 00022543  0x000052b8 arg  0x00000000 , 0x00000002 
+ 00022544  0x000052b9 rtn 
+ 00022545  0x000052bc arg  0x00000001 , 0x00000002 
+ 00022546  0x000052bd arg  0x00004678 , 0x00000011 
+ 00022547  0x000052be arg  0x00000000 , 0x00000012 
+ 00022548  0x000052bf branch  0x00006cc9 
+ 00022549  0x000052c2 fetch  0x00000008 , 0x0000470e 
+ 00022550  0x000052c3 rtnbit0  0x00000034 
+ 00022551  0x000052c4 branch  0x0000576b 
+ 00022552  0x000052c7 arg  0x00000000 , 0x00000007 
+ 00022553  0x000052c8 branch  0x0000582e 
+ 00022554  0x000052ca arg  0x00000000 , 0x00000007 
+ 00022555  0x000052cb branch  0x00005832 
+ 00022556  0x000052cd arg  0x00000003 , 0x00000007 
+ 00022557  0x000052ce branch  0x0000582e 
+ 00022558  0x000052d0 arg  0x00000003 , 0x00000007 
+ 00022559  0x000052d1 branch  0x00005832 
+ 00022560  0x000052d3 arg  0x00000005 , 0x00000007 
+ 00022561  0x000052d4 branch  0x0000582e 
+ 00022562  0x000052d6 arg  0x00000005 , 0x00000007 
+ 00022563  0x000052d7 branch  0x00005832 
+ 00022564  0x000052da arg  0x00000013 , 0x00000007 
+ 00022565  0x000052db branch  0x0000582e 
+ 00022566  0x000052de arg  0x00000018 , 0x00000007 
+ 00022567  0x000052df branch  0x0000582e 
+ 00022568  0x000052e2 arg  0x0000000d , 0x00000007 
+ 00022569  0x000052e3 branch  0x0000582e 
+ 00022570  0x000052e6 arg  0x0000000b , 0x00000007 
+ 00022571  0x000052e7 branch  0x0000582e 
+ 00022572  0x000052ea arg  0x0000001c , 0x00000007 
+ 00022573  0x000052eb branch  0x0000582e 
+ 00022574  0x000052ee fetch  0x00000008 , 0x0000470e 
+ 00022575  0x000052ef qset1  0x0000003f 
+ 00022576  0x000052f0 store  0x00000008 , 0x0000470e 
+ 00022577  0x000052f1 rtn 
+ 00022578  0x000052f4 fetch  0x00000008 , 0x0000470e 
+ 00022579  0x000052f5 qset0  0x0000003f 
+ 00022580  0x000052f6 store  0x00000008 , 0x0000470e 
+ 00022581  0x000052f7 rtn 
+ 00022582  0x000052fa bpatch  0x000000a0 , 0x00004014 
+ 00022583  0x000052fb fetch  0x00000001 , 0x0000473f 
+ 00022584  0x000052fc increase  0xffffffff , 0x0000003f 
+ 00022585  0x000052fd store  0x00000001 , 0x0000473f 
+ 00022586  0x000052fe fetcht  0x00000001 , 0x00004678 
+ 00022587  0x000052ff sub  0x00000002 , 0x00000001 , 0x0000003e 
+ 00022588  0x00005300 ncall  0x00005803 , 0x00000005 
+ 00022589  0x00005301 storet  0x00000001 , 0x00004678 
+ 00022590  0x00005302 call  0x00005811 
+ 00022591  0x00005303 call  0x000067c1 
+ 00022592  0x00005304 branch  0x00004e09 
+ 00022593  0x00005309 bpatch  0x000000a1 , 0x00004014 
+ 00022594  0x0000530a fetch  0x00000001 , 0x000049fa 
+ 00022595  0x0000530b rtneq  0x00000003 
+ 00022596  0x0000530c rtneq  0x0000000b 
+ 00022597  0x0000530d fetch  0x00000008 , 0x0000470e 
+ 00022598  0x0000530e rtnbit0  0x00000038 
+ 00022599  0x0000530f fetch  0x00000004 , 0x0000465d 
+ 00022600  0x00005310 rtn  0x00000034 
+ 00022601  0x00005311 call  0x000058e6 
+ 00022602  0x00005312 setarg  0x00000003 
+ 00022603  0x00005313 call  0x000058dc 
+ 00022604  0x00005314 call  0x000058d8 , 0x00000034 
+ 00022605  0x00005315 ncall  0x000058da , 0x00000034 
+ 00022606  0x00005316 setarg  0x00000002 
+ 00022607  0x00005317 call  0x000058e1 
+ 00022608  0x00005318 call  0x000058d8 , 0x00000034 
+ 00022609  0x00005319 fetch  0x00000001 , 0x000048fe 
+ 00022610  0x0000531a beq  0x00000001 , 0x00005858 
+ 00022611  0x0000531c fetch  0x00000008 , 0x0000470e 
+ 00022612  0x0000531d rtnbit0  0x00000038 
+ 00022613  0x0000531e arg  0x00000005 , 0x00000039 
+ 00022614  0x0000531f arg  0x000048fe , 0x00000005 
+ 00022615  0x00005320 branch  0x00007ca3 
+ 00022616  0x00005323 call  0x0000586c 
+ 00022617  0x00005324 fetch  0x00000002 , 0x000048ff 
+ 00022618  0x00005325 store  0x00000002 , 0x000006e9 
+ 00022619  0x00005326 fetch  0x00000002 , 0x0000465d 
+ 00022620  0x00005327 store  0x00000002 , 0x000006eb 
+ 00022621  0x00005328 call  0x000058a2 
+ 00022622  0x00005329 fetch  0x00000002 , 0x000006e9 
+ 00022623  0x0000532a store  0x00000002 , 0x000048ff 
+ 00022624  0x0000532b fetch  0x00000002 , 0x000006eb 
+ 00022625  0x0000532c store  0x00000002 , 0x0000465d 
+ 00022626  0x0000532e fetch  0x00000002 , 0x00004901 
+ 00022627  0x0000532f store  0x00000002 , 0x000006e9 
+ 00022628  0x00005330 fetch  0x00000002 , 0x0000465f 
+ 00022629  0x00005331 store  0x00000002 , 0x000006eb 
+ 00022630  0x00005332 call  0x000058aa 
+ 00022631  0x00005333 fetch  0x00000002 , 0x000006e9 
+ 00022632  0x00005334 store  0x00000002 , 0x00004901 
+ 00022633  0x00005335 fetch  0x00000002 , 0x000006eb 
+ 00022634  0x00005337 store  0x00000002 , 0x0000465f 
+ 00022635  0x00005338 rtn 
+ 00022636  0x0000533b fetch  0x00000008 , 0x0000470e 
+ 00022637  0x0000533c rtnbit0  0x00000039 
+ 00022638  0x0000533d bpatch  0x000000a2 , 0x00004014 
+ 00022639  0x0000533e fetch  0x00000002 , 0x000048ff 
+ 00022640  0x0000533f store  0x00000002 , 0x000006f0 
+ 00022641  0x00005340 call  0x0000587f 
+ 00022642  0x00005341 store  0x00000002 , 0x000048ff 
+ 00022643  0x00005342 fetch  0x00000002 , 0x0000465d 
+ 00022644  0x00005343 store  0x00000002 , 0x000006f0 
+ 00022645  0x00005344 call  0x0000588d 
+ 00022646  0x00005345 store  0x00000002 , 0x0000465d 
+ 00022647  0x00005346 fetch  0x00000002 , 0x00004901 
+ 00022648  0x00005347 store  0x00000002 , 0x000006f0 
+ 00022649  0x00005348 call  0x0000587f 
+ 00022650  0x00005349 store  0x00000002 , 0x00004901 
+ 00022651  0x0000534a fetch  0x00000002 , 0x0000465f 
+ 00022652  0x0000534b store  0x00000002 , 0x000006f0 
+ 00022653  0x0000534c call  0x0000588d 
+ 00022654  0x0000534d branch  0x0000586a 
+ 00022655  0x00005350 fetch  0x00000001 , 0x000006f1 
+ 00022656  0x00005351 branch  0x00005882 , 0x00000034 
+ 00022657  0x00005352 branch  0x00005887 
+ 00022658  0x00005355 fetch  0x00000001 , 0x000006f0 
+ 00022659  0x00005356 call  0x0000589a 
+ 00022660  0x00005357 store  0x00000001 , 0x000006f0 
+ 00022661  0x00005359 fetch  0x00000002 , 0x000006f0 
+ 00022662  0x0000535a rtn 
+ 00022663  0x0000535c fetch  0x00000001 , 0x000006f0 
+ 00022664  0x0000535d call  0x000058d4 
+ 00022665  0x0000535e call  0x0000589a 
+ 00022666  0x0000535f call  0x00007dca , 0x00000034 
+ 00022667  0x00005360 call  0x000058d0 
+ 00022668  0x00005361 branch  0x00005885 
+ 00022669  0x00005364 fetch  0x00000001 , 0x000006f1 
+ 00022670  0x00005365 branch  0x00005890 , 0x00000034 
+ 00022671  0x00005366 branch  0x00005894 
+ 00022672  0x00005368 fetch  0x00000001 , 0x000006f0 
+ 00022673  0x00005369 call  0x0000589d 
+ 00022674  0x0000536a store  0x00000001 , 0x000006f0 
+ 00022675  0x0000536b branch  0x00005885 
+ 00022676  0x0000536d fetch  0x00000001 , 0x000006f0 
+ 00022677  0x0000536e call  0x000058d4 
+ 00022678  0x0000536f call  0x0000589d 
+ 00022679  0x00005370 call  0x00007dca , 0x00000034 
+ 00022680  0x00005371 call  0x000058d0 
+ 00022681  0x00005372 branch  0x00005885 
+ 00022682  0x00005375 mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00022683  0x00005376 div  0x0000003f , 0x00000005 
+ 00022684  0x00005377 branch  0x0000589f 
+ 00022685  0x0000537a mul32  0x0000003f , 0x0000000c , 0x0000003f 
+ 00022686  0x0000537b div  0x0000003f , 0x0000000a 
+ 00022687  0x0000537d call  0x00007d64 
+ 00022688  0x0000537e quotient  0x0000003f 
+ 00022689  0x0000537f rtn 
+ 00022690  0x00005382 fetch  0x00000002 , 0x000006e9 
+ 00022691  0x00005383 fetcht  0x00000002 , 0x000006eb 
+ 00022692  0x00005384 iadd  0x00000002 , 0x0000003f 
+ 00022693  0x00005385 fetcht  0x00000001 , 0x00004903 
+ 00022694  0x00005386 iadd  0x00000002 , 0x0000003f 
+ 00022695  0x00005387 and  0x0000003f , 0x00000001 , 0x00000002 
+ 00022696  0x00005388 storet  0x00000001 , 0x00004903 
+ 00022697  0x00005389 branch  0x000058b2 
+ 00022698  0x0000538c fetch  0x00000002 , 0x000006e9 
+ 00022699  0x0000538d fetcht  0x00000002 , 0x000006eb 
+ 00022700  0x0000538e iadd  0x00000002 , 0x0000003f 
+ 00022701  0x0000538f fetcht  0x00000001 , 0x00004904 
+ 00022702  0x00005390 iadd  0x00000002 , 0x0000003f 
+ 00022703  0x00005391 and  0x0000003f , 0x00000001 , 0x00000002 
+ 00022704  0x00005392 storet  0x00000001 , 0x00004904 
+ 00022705  0x00005393 branch  0x000058b2 
+ 00022706  0x00005396 store  0x00000003 , 0x000006ed 
+ 00022707  0x00005397 isolate1  0x00000010 , 0x0000003f 
+ 00022708  0x00005398 branch  0x000058bc , 0x00000001 
+ 00022709  0x00005399 fetch  0x00000001 , 0x000006ee 
+ 00022710  0x0000539a beq  0x000000ff , 0x000058c3 
+ 00022711  0x0000539b fetch  0x00000001 , 0x000006ed 
+ 00022712  0x0000539d rshift  0x0000003f , 0x0000003f 
+ 00022713  0x0000539e store  0x00000002 , 0x000006e9 
+ 00022714  0x0000539f store  0x00000002 , 0x000006eb 
+ 00022715  0x000053a0 rtn 
+ 00022716  0x000053a2 fetch  0x00000001 , 0x000006ee 
+ 00022717  0x000053a3 beq  0x00000000 , 0x000058c0 
+ 00022718  0x000053a4 fetch  0x00000003 , 0x000006ed 
+ 00022719  0x000053a5 branch  0x000058b8 
+ 00022720  0x000053a7 jam  0x00000000 , 0x000006ef 
+ 00022721  0x000053a8 fetch  0x00000001 , 0x000006ed 
+ 00022722  0x000053a9 branch  0x000058b8 
+ 00022723  0x000053ac fetch  0x00000001 , 0x000006ed 
+ 00022724  0x000053ad call  0x000058ce 
+ 00022725  0x000053ae store  0x00000001 , 0x000006e9 
+ 00022726  0x000053af store  0x00000001 , 0x000006eb 
+ 00022727  0x000053b0 branch  0x000058cc , 0x00000034 
+ 00022728  0x000053b1 setarg  0x000000ff 
+ 00022729  0x000053b3 store  0x00000001 , 0x000006ea 
+ 00022730  0x000053b4 store  0x00000001 , 0x000006ec 
+ 00022731  0x000053b5 rtn 
+ 00022732  0x000053b7 setarg  0x00000000 
+ 00022733  0x000053b8 branch  0x000058c9 
+ 00022734  0x000053bb call  0x000058d4 
+ 00022735  0x000053bc rshift  0x0000003f , 0x0000003f 
+ 00022736  0x000053be call  0x000058d5 
+ 00022737  0x000053bf sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00022738  0x000053c0 store  0x00000001 , 0x000006f0 
+ 00022739  0x000053c1 rtn 
+ 00022740  0x000053c4 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00022741  0x000053c6 store  0x00000001 , 0x00000662 
+ 00022742  0x000053c7 fetch  0x00000001 , 0x00000662 
+ 00022743  0x000053c8 rtn 
+ 00022744  0x000053cb jam  0x00000000 , 0x000048fe 
+ 00022745  0x000053cc rtn 
+ 00022746  0x000053ce jam  0x00000001 , 0x000048fe 
+ 00022747  0x000053cf rtn 
+ 00022748  0x000053d3 isub  0x00000011 , 0x0000003e 
+ 00022749  0x000053d4 nbranch  0x00007dca , 0x00000002 
+ 00022750  0x000053d5 isub  0x00000012 , 0x0000003e 
+ 00022751  0x000053d6 nbranch  0x00007dca , 0x00000002 
+ 00022752  0x000053d7 branch  0x00007dcc 
+ 00022753  0x000053d9 isub  0x00000011 , 0x0000003e 
+ 00022754  0x000053da nrtn  0x00000002 
+ 00022755  0x000053db isub  0x00000012 , 0x0000003e 
+ 00022756  0x000053dc nrtn  0x00000002 
+ 00022757  0x000053dd branch  0x00007dcc 
+ 00022758  0x000053e0 fetch  0x00000002 , 0x0000465d 
+ 00022759  0x000053e1 call  0x000058ed 
+ 00022760  0x000053e2 copy  0x0000003f , 0x00000011 
+ 00022761  0x000053e3 fetch  0x00000002 , 0x0000465f 
+ 00022762  0x000053e4 call  0x000058ed 
+ 00022763  0x000053e5 copy  0x0000003f , 0x00000012 
+ 00022764  0x000053e6 rtn 
+ 00022765  0x000053e9 store  0x00000002 , 0x000006eb 
+ 00022766  0x000053ea fetch  0x00000001 , 0x000006ec 
+ 00022767  0x000053eb beq  0x000000ff , 0x000058f3 
+ 00022768  0x000053ec fetch  0x00000001 , 0x000006eb 
+ 00022769  0x000053ee and_into  0x000000ff , 0x0000003f 
+ 00022770  0x000053f0 rtn 
+ 00022771  0x000053f2 fetch  0x00000002 , 0x000006eb 
+ 00022772  0x000053f3 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00022773  0x000053f4 branch  0x000058f1 
+ 00022774  0x000053f7 arg  0x00004636 , 0x00000013 
+ 00022775  0x000053f8 arg  0x000058f9 , 0x00000012 
+ 00022776  0x000053f9 branch  0x00003755 
+ 00022777  0x000053fb fetch  0x00000004 , 0x0000462a 
+ 00022778  0x000053fc store  0x00000004 , 0x000045c6 
+ 00022779  0x000053fd branch  0x0000552c 
+ 00022780  0x00005401 fetch  0x00000001 , 0x00004738 
+ 00022781  0x00005402 beq  0x00000000 , 0x00005904 
+ 00022782  0x00005403 beq  0x00000001 , 0x00005906 
+ 00022783  0x00005404 beq  0x00000002 , 0x00005901 
+ 00022784  0x00005405 beq  0x00000003 , 0x00005908 
+ 00022785  0x00005407 setarg  0x000ea600 
+ 00022786  0x00005409 store  0x00000004 , 0x0000462a 
+ 00022787  0x0000540a rtn 
+ 00022788  0x0000540c setarg  0x0005e740 
+ 00022789  0x0000540d branch  0x00005902 
+ 00022790  0x0000540f setarg  0x000927c0 
+ 00022791  0x00005410 branch  0x00005902 
+ 00022792  0x00005412 setarg  0x00124f80 
+ 00022793  0x00005413 branch  0x00005902 
+ 00022794  0x00005416 bpatch  0x000000a3 , 0x00004014 
+ 00022795  0x00005417 jam  0x00000000 , 0x00004ac4 
+ 00022796  0x00005418 jam  0x00000000 , 0x00004617 
+ 00022797  0x00005419 call  0x00003620 
+ 00022798  0x0000541a setarg  0xffffffff 
+ 00022799  0x0000541b store  0x00000008 , 0x000045c6 
+ 00022800  0x0000541c setarg  0x00000000 
+ 00022801  0x0000541d store  0x00000007 , 0x0000465c 
+ 00022802  0x0000541e jam  0x00000001 , 0x00004737 
+ 00022803  0x0000541f call  0x00005303 
+ 00022804  0x00005420 call  0x00004e42 
+ 00022805  0x00005421 branch  0x00005af7 
+ 00022806  0x00005424 bpatch  0x000000a4 , 0x00004014 
+ 00022807  0x00005425 fetch  0x00000001 , 0x00004737 
+ 00022808  0x00005426 ncall  0x0000591b , 0x00000034 
+ 00022809  0x00005427 jam  0x00000000 , 0x00004737 
+ 00022810  0x00005428 rtn 
+ 00022811  0x0000542b jam  0x00000001 , 0x00004ac4 
+ 00022812  0x0000542c call  0x00005263 
+ 00022813  0x0000542d fetch  0x00000008 , 0x0000470e 
+ 00022814  0x0000542e rtnbit0  0x0000003c 
+ 00022815  0x00005430 fetcht  0x00000001 , 0x00004668 
+ 00022816  0x00005431 call  0x00004f0a 
+ 00022817  0x00005432 fetcht  0x00000001 , 0x00004669 
+ 00022818  0x00005433 branch  0x00004f0a 
+ 00022819  0x00005436 call  0x00005927 
+ 00022820  0x00005437 fetch  0x00000001 , 0x00004737 
+ 00022821  0x00005438 nbranch  0x00005b02 , 0x00000034 
+ 00022822  0x00005439 branch  0x000035e8 
+ 00022823  0x0000543c fetch  0x00000004 , 0x000045ff 
+ 00022824  0x0000543d fetcht  0x00000004 , 0x000045fb 
+ 00022825  0x0000543e isub  0x00000002 , 0x0000003e 
+ 00022826  0x0000543f branch  0x0000592d , 0x00000005 
+ 00022827  0x00005441 jam  0x000000ff , 0x00004143 
+ 00022828  0x00005442 rtn 
+ 00022829  0x00005445 jam  0x00000000 , 0x00004143 
+ 00022830  0x00005446 jam  0x000000aa , 0x00004141 
+ 00022831  0x00005447 rtn 
+ 00022832  0x0000544a fetch  0x00000001 , 0x00004141 
+ 00022833  0x0000544b store  0x00000001 , 0x00004656 
+ 00022834  0x0000544c rtn 
+ 00022835  0x0000544f fetch  0x00000001 , 0x00004656 
+ 00022836  0x00005450 store  0x00000001 , 0x00004141 
+ 00022837  0x00005451 rtn 
+ 00022838  0x00005454 set0  0x00000026 , 0x00000000 
+ 00022839  0x00005455 jam  0x00000000 , 0x00004613 
+ 00022840  0x00005456 arg  0x00000001 , 0x00000007 
+ 00022841  0x00005457 branch  0x00005832 
+ 00022842  0x0000545a fetch  0x00000008 , 0x0000470e 
+ 00022843  0x0000545b bbit0  0x0000000f , 0x00005948 
+ 00022844  0x0000545c call  0x00005a69 
+ 00022845  0x0000545d call  0x00004e14 
+ 00022846  0x0000545e branch  0x00005988 , 0x00000028 
+ 00022847  0x0000545f fetch  0x00000008 , 0x0000470e 
+ 00022848  0x00005460 bbit1  0x00000030 , 0x0000594d 
+ 00022849  0x00005461 bbit0  0x00000031 , 0x0000594d 
+ 00022850  0x00005462 call  0x000051a7 
+ 00022851  0x00005463 and  0x00000011 , 0x00000007 , 0x0000003f 
+ 00022852  0x00005464 fetcht  0x00000001 , 0x00004abe 
+ 00022853  0x00005465 isub  0x00000002 , 0x0000003e 
+ 00022854  0x00005466 branch  0x00005965 , 0x00000005 
+ 00022855  0x00005467 branch  0x0000594d 
+ 00022856  0x0000546a fetch  0x00000001 , 0x0000473f 
+ 00022857  0x0000546b nbranch  0x00005836 , 0x00000034 
+ 00022858  0x0000546c rtn 
+ 00022859  0x0000546f call  0x00004e14 
+ 00022860  0x00005470 branch  0x00005956 , 0x00000028 
+ 00022861  0x00005472 jam  0x00000000 , 0x00004678 
+ 00022862  0x00005473 fetch  0x00000002 , 0x0000471a 
+ 00022863  0x00005474 store  0x00000002 , 0x000045f5 
+ 00022864  0x00005475 jam  0x00000001 , 0x000045f9 
+ 00022865  0x00005476 branch  0x0000350a 
+ 00022866  0x00005479 fetch  0x00000002 , 0x000045ed 
+ 00022867  0x0000547a store  0x00000002 , 0x000045f5 
+ 00022868  0x0000547b jam  0x00000004 , 0x000045f9 
+ 00022869  0x0000547c branch  0x0000350a 
+ 00022870  0x0000547f fetch  0x00000001 , 0x00004678 
+ 00022871  0x00005480 beq  0x00000000 , 0x00005988 
+ 00022872  0x00005481 call  0x000053c1 
+ 00022873  0x00005483 call  0x00005936 
+ 00022874  0x00005484 jam  0x00000001 , 0x00004678 
+ 00022875  0x00005485 call  0x000067d5 
+ 00022876  0x00005486 branch  0x00004dfa 
+ 00022877  0x00005489 call  0x00004e14 
+ 00022878  0x0000548a branch  0x00004e35 , 0x00000028 
+ 00022879  0x0000548b branch  0x00005544 
+ 00022880  0x0000548e call  0x00004e14 
+ 00022881  0x0000548f rtn  0x00000028 
+ 00022882  0x00005490 fetch  0x00000008 , 0x0000470e 
+ 00022883  0x00005491 bbit1  0x0000003e , 0x00005571 
+ 00022884  0x00005492 rtn 
+ 00022885  0x00005495 call  0x00005a69 
+ 00022886  0x00005496 jam  0x00000000 , 0x000045f9 
+ 00022887  0x00005497 arg  0x00000001 , 0x00000007 
+ 00022888  0x00005498 call  0x0000582e 
+ 00022889  0x00005499 setarg  0x00000000 
+ 00022890  0x0000549a store  0x00000002 , 0x000045f5 
+ 00022891  0x0000549b call  0x00005562 
+ 00022892  0x0000549d jam  0x00000001 , 0x000045a0 
+ 00022893  0x0000549e fetch  0x00000008 , 0x0000470e 
+ 00022894  0x0000549f bbit0  0x00000014 , 0x0000326f 
+ 00022895  0x000054a0 jam  0x00000002 , 0x000045a0 
+ 00022896  0x000054a1 branch  0x0000326f 
+ 00022897  0x000054a4 call  0x0000592b 
+ 00022898  0x000054a5 call  0x00005933 
+ 00022899  0x000054a6 fetch  0x00000001 , 0x00004617 
+ 00022900  0x000054a7 nbranch  0x0000590a , 0x00000034 
+ 00022901  0x000054a8 fetch  0x00000001 , 0x000045f9 
+ 00022902  0x000054a9 beq  0x00000002 , 0x00005980 
+ 00022903  0x000054aa beq  0x00000001 , 0x00005980 
+ 00022904  0x000054ab beq  0x00000004 , 0x0000598c 
+ 00022905  0x000054ac beq  0x00000003 , 0x00005991 
+ 00022906  0x000054ae call  0x00005936 
+ 00022907  0x000054af fetch  0x00000001 , 0x0000473f 
+ 00022908  0x000054b0 nbranch  0x00005836 , 0x00000034 
+ 00022909  0x000054b1 fetch  0x00000001 , 0x00004678 
+ 00022910  0x000054b2 beq  0x00000000 , 0x00004e35 
+ 00022911  0x000054b3 rtn 
+ 00022912  0x000054b6 fetch  0x00000008 , 0x0000470e 
+ 00022913  0x000054b7 bbit1  0x0000003e , 0x00005952 
+ 00022914  0x000054b8 bbit1  0x00000030 , 0x00005952 
+ 00022915  0x000054b9 bbit0  0x0000003a , 0x00005988 
+ 00022916  0x000054ba fetch  0x00000004 , 0x000046a3 
+ 00022917  0x000054bb fetcht  0x00000004 , 0x000046f8 
+ 00022918  0x000054bc isub  0x00000002 , 0x0000003e 
+ 00022919  0x000054bd branch  0x00005965 , 0x00000005 
+ 00022920  0x000054bf fetch  0x00000002 , 0x000045f3 
+ 00022921  0x000054c0 store  0x00000002 , 0x000045f5 
+ 00022922  0x000054c1 jam  0x00000003 , 0x000045f9 
+ 00022923  0x000054c2 branch  0x0000350a 
+ 00022924  0x000054c5 fetch  0x00000008 , 0x0000470e 
+ 00022925  0x000054c6 bbit0  0x0000003e , 0x0000597a 
+ 00022926  0x000054c7 fetch  0x00000001 , 0x00004716 
+ 00022927  0x000054c8 beq  0x00000001 , 0x0000597a 
+ 00022928  0x000054c9 branch  0x00005959 
+ 00022929  0x000054cc fetch  0x00000008 , 0x0000470e 
+ 00022930  0x000054cd bbit0  0x0000003e , 0x0000597a 
+ 00022931  0x000054ce bbit1  0x00000011 , 0x0000597a 
+ 00022932  0x000054cf bbit1  0x00000010 , 0x0000597a 
+ 00022933  0x000054d0 bbit1  0x00000012 , 0x0000597a 
+ 00022934  0x000054d1 branch  0x00005952 
+ 00022935  0x000054d4 fetch  0x00000004 , 0x000045a6 
+ 00022936  0x000054d5 store  0x00000004 , 0x000045ff 
+ 00022937  0x000054d6 store  0x00000004 , 0x000046a3 
+ 00022938  0x000054d7 call  0x00003530 
+ 00022939  0x000054d8 call  0x00005535 
+ 00022940  0x000054d9 call  0x00005a62 
+ 00022941  0x000054da call  0x0000538d 
+ 00022942  0x000054db jam  0x00000000 , 0x0000473d 
+ 00022943  0x000054dc jam  0x00000000 , 0x00004613 
+ 00022944  0x000054dd jam  0x00000000 , 0x000045f9 
+ 00022945  0x000054de fetch  0x00000004 , 0x000045ff 
+ 00022946  0x000054df fetcht  0x00000004 , 0x000045fb 
+ 00022947  0x000054e0 isub  0x00000002 , 0x0000003e 
+ 00022948  0x000054e1 rtn  0x00000005 
+ 00022949  0x000054e2 call  0x0000592b 
+ 00022950  0x000054e3 call  0x00005933 
+ 00022951  0x000054e4 branch  0x00005960 
+ 00022952  0x000054e7 call  0x0000592b 
+ 00022953  0x000054e8 call  0x00005933 
+ 00022954  0x000054e9 call  0x0000538d 
+ 00022955  0x000054ea call  0x0000539e 
+ 00022956  0x000054eb call  0x00005a62 
+ 00022957  0x000054ec call  0x00005535 
+ 00022958  0x000054ed arg  0x00000001 , 0x00000007 
+ 00022959  0x000054ee call  0x00005832 
+ 00022960  0x000054ef setarg  0x00000000 
+ 00022961  0x000054f0 store  0x00000002 , 0x000045ef 
+ 00022962  0x000054f1 store  0x00000002 , 0x000045f5 
+ 00022963  0x000054f2 store  0x00000001 , 0x00004613 
+ 00022964  0x000054f3 store  0x00000001 , 0x000048fd 
+ 00022965  0x000054f4 store  0x00000001 , 0x000045f9 
+ 00022966  0x000054f7 fetch  0x00000004 , 0x000045a6 
+ 00022967  0x000054f8 store  0x00000004 , 0x000045ff 
+ 00022968  0x000054f9 store  0x00000004 , 0x000046a3 
+ 00022969  0x000054fa branch  0x00005571 
+ 00022970  0x000054fd call  0x00007de6 
+ 00022971  0x000054fe branch  0x000023e1 
+ 00022972  0x00005501 bpatch  0x000000a5 , 0x00004014 
+ 00022973  0x00005502 rtnmark0  0x00000026 
+ 00022974  0x00005503 call  0x00004f26 
+ 00022975  0x00005504 nrtn  0x00000028 
+ 00022976  0x00005505 fetch  0x00000001 , 0x0000473b 
+ 00022977  0x00005506 jam  0x00000000 , 0x0000473b 
+ 00022978  0x00005507 ncall  0x000059ba , 0x00000034 
+ 00022979  0x00005509 fetch  0x00000008 , 0x0000470e 
+ 00022980  0x0000550a bbit0  0x00000014 , 0x000059c7 
+ 00022981  0x0000550b fetch  0x00000001 , 0x0000472b 
+ 00022982  0x0000550c nbranch  0x000059dc , 0x00000034 
+ 00022983  0x0000550e call  0x0000538e 
+ 00022984  0x0000550f fetch  0x00000001 , 0x000045a0 
+ 00022985  0x00005510 bbit1  0x00000001 , 0x000059d6 
+ 00022986  0x00005511 fetcht  0x00000001 , 0x00004531 
+ 00022987  0x00005512 fetch  0x00000001 , 0x0000465c 
+ 00022988  0x00005513 ior  0x00000002 , 0x0000003f 
+ 00022989  0x00005514 store  0x00000001 , 0x0000465c 
+ 00022990  0x00005515 fetcht  0x00000001 , 0x00004536 
+ 00022991  0x00005516 fetch  0x00000001 , 0x00004661 
+ 00022992  0x00005517 iadd  0x00000002 , 0x0000003f 
+ 00022993  0x00005518 store  0x00000001 , 0x00004661 
+ 00022994  0x00005519 fetcht  0x00000001 , 0x00004537 
+ 00022995  0x0000551a fetch  0x00000001 , 0x00004662 
+ 00022996  0x0000551b iadd  0x00000002 , 0x0000003f 
+ 00022997  0x0000551c store  0x00000001 , 0x00004662 
+ 00022998  0x0000551e jam  0x00000001 , 0x000045a0 
+ 00022999  0x0000551f arg  0x00000007 , 0x00000011 
+ 00023000  0x00005520 arg  0x0000465c , 0x00000012 
+ 00023001  0x00005521 fetch  0x00000002 , 0x00004661 
+ 00023002  0x00005522 rtn  0x00000034 
+ 00023003  0x00005523 branch  0x000036bb 
+ 00023004  0x00005526 jam  0x00000002 , 0x000045a0 
+ 00023005  0x00005527 arg  0x00000009 , 0x00000011 
+ 00023006  0x00005528 branch  0x00006852 
+ 00023007  0x0000552b fetch  0x00000001 , 0x00004752 
+ 00023008  0x0000552c nrtn  0x00000034 
+ 00023009  0x0000552d call  0x000059e3 
+ 00023010  0x0000552e branch  0x0000363b 
+ 00023011  0x00005531 arg  0x0000000c , 0x00000007 
+ 00023012  0x00005532 call  0x00007cf1 
+ 00023013  0x00005533 nrtn  0x00000034 
+ 00023014  0x00005534 call  0x00005776 
+ 00023015  0x00005535 call  0x000054c9 
+ 00023016  0x00005536 call  0x000059ed 
+ 00023017  0x00005537 call  0x00005050 
+ 00023018  0x00005539 arg  0x0000000c , 0x00000007 
+ 00023019  0x0000553a setarg  0x000000a0 
+ 00023020  0x0000553b branch  0x00007ce3 
+ 00023021  0x0000553e fetch  0x00000008 , 0x0000470e 
+ 00023022  0x0000553f rtnbit0  0x00000028 
+ 00023023  0x00005540 branch  0x00004fdb 
+ 00023024  0x00005544 call  0x00006f4b 
+ 00023025  0x00005545 branch  0x000068c4 
+ 00023026  0x0000554b fetch  0x00000001 , 0x000048a1 
+ 00023027  0x0000554c rtneq  0x000000ff 
+ 00023028  0x0000554d fetch  0x00000002 , 0x00004741 
+ 00023029  0x0000554e rtn  0x00000034 
+ 00023030  0x0000554f fetch  0x00000002 , 0x0000471e 
+ 00023031  0x00005550 fetcht  0x00000002 , 0x00004741 
+ 00023032  0x00005551 isub  0x00000002 , 0x00000002 
+ 00023033  0x00005552 fetch  0x00000002 , 0x000048bb 
+ 00023034  0x00005553 isub  0x00000002 , 0x0000003f 
+ 00023035  0x00005554 branch  0x000059fe , 0x00000002 
+ 00023036  0x00005556 fetcht  0x00000001 , 0x000048a1 
+ 00023037  0x00005557 branch  0x00005ab6 
+ 00023038  0x00005559 fetcht  0x00000001 , 0x000048a1 
+ 00023039  0x0000555a branch  0x00005ab5 
+ 00023040  0x00005562 arg  0x000048bd , 0x00000013 
+ 00023041  0x00005563 arg  0x00005a03 , 0x00000012 
+ 00023042  0x00005564 branch  0x00003755 
+ 00023043  0x00005567 bpatch  0x000000a6 , 0x00004014 
+ 00023044  0x00005568 fetch  0x00000008 , 0x0000470e 
+ 00023045  0x00005569 bbit1  0x0000001c , 0x00005a0b 
+ 00023046  0x0000556b fetch  0x00000001 , 0x000046a2 
+ 00023047  0x0000556c beq  0x00000000 , 0x00005a13 
+ 00023048  0x0000556d beq  0x00000001 , 0x00005a15 
+ 00023049  0x0000556e beq  0x00000002 , 0x00005a11 
+ 00023050  0x0000556f rtn 
+ 00023051  0x00005572 fetch  0x00000001 , 0x000046a2 
+ 00023052  0x00005573 beq  0x00000000 , 0x00005a15 
+ 00023053  0x00005574 beq  0x00000001 , 0x00005a17 
+ 00023054  0x00005575 beq  0x00000002 , 0x00005a11 
+ 00023055  0x00005576 beq  0x00000003 , 0x00005a13 
+ 00023056  0x00005577 rtn 
+ 00023057  0x0000557a setarg  0x00000002 
+ 00023058  0x0000557b branch  0x00005a19 
+ 00023059  0x0000557e setarg  0x00000004 
+ 00023060  0x0000557f branch  0x00005a19 
+ 00023061  0x00005582 setarg  0x00000006 
+ 00023062  0x00005583 branch  0x00005a19 
+ 00023063  0x00005586 setarg  0x00000008 
+ 00023064  0x00005587 branch  0x00005a19 
+ 00023065  0x0000558a store  0x00000001 , 0x000048b8 
+ 00023066  0x0000558b jam  0x00000004 , 0x000048ab 
+ 00023067  0x0000558c call  0x00005a59 
+ 00023068  0x0000558d jam  0x00000001 , 0x000048a9 
+ 00023069  0x0000558e branch  0x00005a66 
+ 00023070  0x00005599 fetch  0x00000001 , 0x00004ac4 
+ 00023071  0x0000559a rtn  0x00000034 
+ 00023072  0x0000559b fetch  0x00000001 , 0x000048be 
+ 00023073  0x0000559c branch  0x00005a03 , 0x00000034 
+ 00023074  0x0000559d store  0x00000001 , 0x000048bd 
+ 00023075  0x0000559e rtn 
+ 00023076  0x000055a7 disable  0x00000028 
+ 00023077  0x000055a8 fetch  0x00000001 , 0x000048ab 
+ 00023078  0x000055a9 sub  0x0000003f , 0x00000004 , 0x0000003e 
+ 00023079  0x000055aa nrtn  0x00000005 
+ 00023080  0x000055ab branch  0x00007dbc 
+ 00023081  0x000055ae fetch  0x00000008 , 0x0000470e 
+ 00023082  0x000055af rtnbit0  0x00000023 
+ 00023083  0x000055b0 rtnbit0  0x00000004 
+ 00023084  0x000055b9 fetch  0x00000001 , 0x00004ac4 
+ 00023085  0x000055ba rtn  0x00000034 
+ 00023086  0x000055bb call  0x00005a24 
+ 00023087  0x000055bc rtn  0x00000028 
+ 00023088  0x000055be fetch  0x00000001 , 0x000048ba 
+ 00023089  0x000055bf branch  0x00005a47 , 0x00000034 
+ 00023090  0x000055c1 fetcht  0x00000001 , 0x0000464d 
+ 00023091  0x000055c2 increase  0x00000001 , 0x00000002 
+ 00023092  0x000055c3 storet  0x00000001 , 0x0000464d 
+ 00023093  0x000055c4 fetch  0x00000001 , 0x000048b4 
+ 00023094  0x000055c5 isub  0x00000002 , 0x0000003e 
+ 00023095  0x000055c6 ncall  0x00005a3f , 0x00000002 
+ 00023096  0x000055c7 fetch  0x00000001 , 0x000048b5 
+ 00023097  0x000055c8 isub  0x00000002 , 0x0000003e 
+ 00023098  0x000055c9 nbranch  0x00005a43 , 0x00000002 
+ 00023099  0x000055cb fetch  0x00000008 , 0x0000470e 
+ 00023100  0x000055cc bbit1  0x00000024 , 0x00005aaa 
+ 00023101  0x000055ce fetcht  0x00000001 , 0x000048a5 
+ 00023102  0x000055cf branch  0x00005ab5 
+ 00023103  0x000055d2 jam  0x00000001 , 0x0000464d 
+ 00023104  0x000055d3 fetch  0x00000001 , 0x000048ba 
+ 00023105  0x000055d4 increase  0xffffffff , 0x0000003f 
+ 00023106  0x000055d5 store  0x00000001 , 0x000048ba 
+ 00023107  0x000055d7 fetch  0x00000008 , 0x0000470e 
+ 00023108  0x000055d8 bbit1  0x00000024 , 0x00005abc 
+ 00023109  0x000055da fetcht  0x00000001 , 0x000048a5 
+ 00023110  0x000055db branch  0x00005ab6 
+ 00023111  0x000055de fetch  0x00000008 , 0x0000470e 
+ 00023112  0x000055df bbit1  0x00000022 , 0x00005a43 
+ 00023113  0x000055e0 call  0x00005a52 
+ 00023114  0x000055e1 branch  0x00005a32 
+ 00023115  0x000055ea jam  0x00000000 , 0x000048a8 
+ 00023116  0x000055eb call  0x00005ace 
+ 00023117  0x000055ec jam  0x00000000 , 0x000048ab 
+ 00023118  0x000055ed fetch  0x00000001 , 0x000048b4 
+ 00023119  0x000055ee rshift  0x0000003f , 0x0000003f 
+ 00023120  0x000055ef store  0x00000001 , 0x000048b5 
+ 00023121  0x000055f0 rtn 
+ 00023122  0x000055f2 fetch  0x00000001 , 0x000048b9 
+ 00023123  0x000055f3 store  0x00000001 , 0x000048ba 
+ 00023124  0x000055f4 rtn 
+ 00023125  0x000055f7 fetch  0x00000001 , 0x000048ab 
+ 00023126  0x000055f8 beq  0x00000001 , 0x00005a5c 
+ 00023127  0x000055f9 beq  0x00000002 , 0x00005a5e 
+ 00023128  0x000055fa beq  0x00000003 , 0x00005a60 
+ 00023129  0x000055fc fetch  0x00000001 , 0x000048b2 
+ 00023130  0x000055fe store  0x00000001 , 0x000048b3 
+ 00023131  0x000055ff rtn 
+ 00023132  0x00005601 fetch  0x00000001 , 0x000048af 
+ 00023133  0x00005602 branch  0x00005a5a 
+ 00023134  0x00005604 fetch  0x00000001 , 0x000048b0 
+ 00023135  0x00005605 branch  0x00005a5a 
+ 00023136  0x00005607 fetch  0x00000001 , 0x000048b1 
+ 00023137  0x00005608 branch  0x00005a5a 
+ 00023138  0x0000560c bpatch  0x000000a7 , 0x00004014 
+ 00023139  0x0000560d fetch  0x00000001 , 0x000048ad 
+ 00023140  0x0000560e store  0x00000001 , 0x000048ae 
+ 00023141  0x0000560f jam  0x00000000 , 0x000048a9 
+ 00023142  0x00005611 jam  0x00000000 , 0x000048aa 
+ 00023143  0x00005612 jam  0x00000001 , 0x000048a8 
+ 00023144  0x00005613 rtn 
+ 00023145  0x00005617 bpatch  0x000000a8 , 0x00004015 
+ 00023146  0x00005619 call  0x00005a7c 
+ 00023147  0x0000561a jam  0x00000001 , 0x000048ab 
+ 00023148  0x0000561b fetch  0x00000001 , 0x000048ac 
+ 00023149  0x0000561c rtn  0x00000034 
+ 00023150  0x0000561d fetch  0x00000001 , 0x000048b6 
+ 00023151  0x0000561e branch  0x00005a78 
+ 00023152  0x00005621 bpatchx  0x000000d3 , 0x0000403a 
+ 00023153  0x00005622 fetch  0x00000008 , 0x0000470e 
+ 00023154  0x00005623 rtnbit0  0x00000021 
+ 00023155  0x00005625 call  0x00005a7c 
+ 00023156  0x00005626 jam  0x00000003 , 0x000048ab 
+ 00023157  0x00005627 fetch  0x00000001 , 0x000048ac 
+ 00023158  0x00005628 rtn  0x00000034 
+ 00023159  0x00005629 fetch  0x00000001 , 0x000048b7 
+ 00023160  0x0000562b store  0x00000001 , 0x000048b8 
+ 00023161  0x0000562c rtn 
+ 00023162  0x00005630 jam  0x00000000 , 0x000048ac 
+ 00023163  0x00005631 jam  0x00000002 , 0x000048ab 
+ 00023164  0x00005633 bpatchx  0x000000d4 , 0x0000403a 
+ 00023165  0x00005634 jam  0x0000000a , 0x000048b3 
+ 00023166  0x00005635 jam  0x00000001 , 0x000048a8 
+ 00023167  0x00005636 jam  0x00000001 , 0x000048a9 
+ 00023168  0x00005637 branch  0x00005aa9 
+ 00023169  0x0000563c fetch  0x00000001 , 0x000048a8 
+ 00023170  0x0000563d rtn  0x00000034 
+ 00023171  0x0000563e fetch  0x00000001 , 0x000048a9 
+ 00023172  0x0000563f beq  0x00000001 , 0x00005a8e 
+ 00023173  0x00005641 fetch  0x00000001 , 0x000048ae 
+ 00023174  0x00005642 branch  0x00005a8a , 0x00000034 
+ 00023175  0x00005643 increase  0xffffffff , 0x0000003f 
+ 00023176  0x00005644 store  0x00000001 , 0x000048ae 
+ 00023177  0x00005645 branch  0x00005aaa 
+ 00023178  0x00005648 jam  0x00000000 , 0x000048a8 
+ 00023179  0x00005649 jam  0x00000001 , 0x00004ac4 
+ 00023180  0x0000564a call  0x00005a52 
+ 00023181  0x0000564b branch  0x00005abc 
+ 00023182  0x0000564e bpatch  0x000000a9 , 0x00004015 
+ 00023183  0x0000564f fetch  0x00000001 , 0x000048ab 
+ 00023184  0x00005650 rtn  0x00000034 
+ 00023185  0x00005651 beq  0x00000004 , 0x00005a96 
+ 00023186  0x00005652 branch  0x00005a93 
+ 00023187  0x00005655 fetch  0x00000001 , 0x000048ac 
+ 00023188  0x00005656 beq  0x00000001 , 0x00005a96 
+ 00023189  0x00005657 branch  0x00005a98 
+ 00023190  0x0000565a fetch  0x00000001 , 0x000048b8 
+ 00023191  0x0000565b branch  0x00005ab7 , 0x00000034 
+ 00023192  0x0000565d arg  0x000048b3 , 0x00000013 
+ 00023193  0x0000565e arg  0x00005a9b , 0x00000012 
+ 00023194  0x0000565f branch  0x00003755 
+ 00023195  0x00005662 fetch  0x00000001 , 0x000048ab 
+ 00023196  0x00005663 beq  0x00000004 , 0x00005aa3 
+ 00023197  0x00005664 fetch  0x00000001 , 0x000048ac 
+ 00023198  0x00005665 beq  0x00000001 , 0x00005aa3 
+ 00023199  0x00005667 call  0x00005a55 
+ 00023200  0x00005668 fetch  0x00000001 , 0x000048aa 
+ 00023201  0x00005669 beq  0x00000001 , 0x00005ab9 
+ 00023202  0x0000566a branch  0x00005aa7 
+ 00023203  0x0000566d fetch  0x00000001 , 0x000048b8 
+ 00023204  0x0000566e increase  0xffffffff , 0x0000003f 
+ 00023205  0x0000566f store  0x00000001 , 0x000048b8 
+ 00023206  0x00005670 branch  0x00005a9f 
+ 00023207  0x00005674 fetch  0x00000001 , 0x000048ab 
+ 00023208  0x00005675 beq  0x00000004 , 0x00005ad8 
+ 00023209  0x00005677 jam  0x00000001 , 0x000048aa 
+ 00023210  0x00005679 bpatch  0x000000aa , 0x00004015 
+ 00023211  0x0000567a fetch  0x00000001 , 0x00004678 
+ 00023212  0x0000567b beq  0x00000000 , 0x00005ab0 
+ 00023213  0x0000567c beq  0x00000001 , 0x00005ab2 
+ 00023214  0x0000567d beq  0x00000002 , 0x00005ab4 
+ 00023215  0x0000567e rtn 
+ 00023216  0x00005680 fetcht  0x00000001 , 0x000048a2 
+ 00023217  0x00005681 branch  0x00005ab5 
+ 00023218  0x00005683 fetcht  0x00000001 , 0x000048a3 
+ 00023219  0x00005684 branch  0x00005ab5 
+ 00023220  0x00005686 fetcht  0x00000001 , 0x000048a4 
+ 00023221  0x00005688 branch  0x00006ef1 
+ 00023222  0x0000568b branch  0x00006eed 
+ 00023223  0x0000568e jam  0x00000000 , 0x000048a8 
+ 00023224  0x0000568f jam  0x00000000 , 0x000048ab 
+ 00023225  0x00005691 fetch  0x00000001 , 0x000048ab 
+ 00023226  0x00005692 beq  0x00000004 , 0x00005ad3 
+ 00023227  0x00005694 jam  0x00000000 , 0x000048aa 
+ 00023228  0x00005696 bpatch  0x000000ab , 0x00004015 
+ 00023229  0x00005697 fetch  0x00000001 , 0x00004678 
+ 00023230  0x00005698 beq  0x00000000 , 0x00005ac2 
+ 00023231  0x00005699 beq  0x00000001 , 0x00005ac6 
+ 00023232  0x0000569a beq  0x00000002 , 0x00005aca 
+ 00023233  0x0000569b rtn 
+ 00023234  0x0000569d fetcht  0x00000001 , 0x000048a2 
+ 00023235  0x0000569e fetch  0x00000008 , 0x0000470e 
+ 00023236  0x0000569f bbit0  0x00000020 , 0x00005ab6 
+ 00023237  0x000056a0 branch  0x00006f05 
+ 00023238  0x000056a2 fetcht  0x00000001 , 0x000048a3 
+ 00023239  0x000056a3 fetch  0x00000008 , 0x0000470e 
+ 00023240  0x000056a4 bbit0  0x00000020 , 0x00005ab6 
+ 00023241  0x000056a5 branch  0x00006f05 
+ 00023242  0x000056a7 fetcht  0x00000001 , 0x000048a4 
+ 00023243  0x000056a8 fetch  0x00000008 , 0x0000470e 
+ 00023244  0x000056a9 bbit0  0x00000020 , 0x00005ab6 
+ 00023245  0x000056aa branch  0x00006f05 
+ 00023246  0x000056ad call  0x00005ac2 
+ 00023247  0x000056ae call  0x00005ac6 
+ 00023248  0x000056af call  0x00005aca 
+ 00023249  0x000056b0 call  0x00005a43 
+ 00023250  0x000056b1 branch  0x00005ad3 
+ 00023251  0x000056b4 jam  0x00000000 , 0x000048aa 
+ 00023252  0x000056b5 fetch  0x00000008 , 0x0000470e 
+ 00023253  0x000056b6 bbit1  0x00000025 , 0x00005abb 
+ 00023254  0x000056b8 fetcht  0x00000001 , 0x000048a6 
+ 00023255  0x000056b9 branch  0x00005ab6 
+ 00023256  0x000056bc jam  0x00000001 , 0x000048aa 
+ 00023257  0x000056bd fetch  0x00000008 , 0x0000470e 
+ 00023258  0x000056be bbit1  0x00000025 , 0x00005aa9 
+ 00023259  0x000056c0 fetcht  0x00000001 , 0x000048a6 
+ 00023260  0x000056c1 branch  0x00005ab5 
+ 00023261  0x000056c6 fetch  0x00000008 , 0x0000470e 
+ 00023262  0x000056c7 rtnbit0  0x00000004 
+ 00023263  0x000056c8 fetch  0x00000001 , 0x0000464d 
+ 00023264  0x000056c9 fetcht  0x00000001 , 0x000048b5 
+ 00023265  0x000056ca sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00023266  0x000056cb branch  0x00005ae9 , 0x00000002 
+ 00023267  0x000056cd fetch  0x00000001 , 0x00004678 
+ 00023268  0x000056ce beq  0x00000000 , 0x00005ae6 
+ 00023269  0x000056cf branch  0x00006820 
+ 00023270  0x000056d2 fetch  0x00000008 , 0x0000470e 
+ 00023271  0x000056d3 rtnbit1  0x00000018 
+ 00023272  0x000056d4 branch  0x000036aa 
+ 00023273  0x000056d7 fetch  0x00000001 , 0x00004678 
+ 00023274  0x000056d8 beq  0x00000000 , 0x000036bb 
+ 00023275  0x000056d9 branch  0x00006822 
+ 00023276  0x000056de fetch  0x00000001 , 0x00000009 
+ 00023277  0x000056df branch  0x000035a3 
+ 00023278  0x000056e2 call  0x00005aec 
+ 00023279  0x000056e3 branch  0x000036c8 
+ 00023280  0x000056e6 fetch  0x00000002 , 0x00004500 
+ 00023281  0x000056e7 rtnbit0  0x00000009 
+ 00023282  0x000056e9 fetch  0x00000001 , 0x00004882 
+ 00023283  0x000056ea compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00023284  0x000056eb nbranch  0x00007dca , 0x00000001 
+ 00023285  0x000056ec call  0x000037a0 
+ 00023286  0x000056ed branch  0x00007dcc 
+ 00023287  0x000056f0 bpatch  0x000000ac , 0x00004015 
+ 00023288  0x000056f1 call  0x00003694 
+ 00023289  0x000056f2 nrtn  0x00000028 
+ 00023290  0x000056f3 jam  0x00000001 , 0x0000473b 
+ 00023291  0x000056f4 call  0x0000369e 
+ 00023292  0x000056f5 jam  0x00000000 , 0x000048f1 
+ 00023293  0x000056f6 call  0x00005b7f 
+ 00023294  0x000056f7 fetch  0x00000001 , 0x00004737 
+ 00023295  0x000056f8 ncall  0x00004e42 , 0x00000034 
+ 00023296  0x000056f9 fetch  0x00000008 , 0x000045c6 
+ 00023297  0x000056fa branch  0x000035fa 
+ 00023298  0x000056fd fetch  0x00000001 , 0x000048fa 
+ 00023299  0x000056fe branch  0x000035ee , 0x00000034 
+ 00023300  0x000056ff call  0x00003694 
+ 00023301  0x00005700 nrtn  0x00000028 
+ 00023302  0x00005701 fetch  0x00000001 , 0x000048f1 
+ 00023303  0x00005702 jam  0x00000000 , 0x000048f1 
+ 00023304  0x00005703 sub  0x0000003f , 0x00000000 , 0x0000003e 
+ 00023305  0x00005704 nbranch  0x00005b0f , 0x00000005 
+ 00023306  0x00005705 fetcht  0x00000002 , 0x00004639 
+ 00023307  0x00005706 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00023308  0x00005707 branch  0x00005b22 , 0x00000005 
+ 00023309  0x00005709 fetch  0x00000004 , 0x000048e6 
+ 00023310  0x0000570a branch  0x00005b22 , 0x00000034 
+ 00023311  0x0000570c fetcht  0x00000004 , 0x000048f6 
+ 00023312  0x0000570d isolate1  0x0000001f , 0x00000002 
+ 00023313  0x0000570e branch  0x00005b2e , 0x00000001 
+ 00023314  0x0000570f fetch  0x00000004 , 0x000048e6 
+ 00023315  0x00005710 iadd  0x00000002 , 0x0000003f 
+ 00023316  0x00005712 fetcht  0x00000004 , 0x000048cc 
+ 00023317  0x00005713 isub  0x00000002 , 0x00000002 
+ 00023318  0x00005714 storet  0x00000004 , 0x000048f6 
+ 00023319  0x00005715 nbranch  0x00005b25 , 0x00000002 
+ 00023320  0x00005716 fetch  0x00000003 , 0x0000461f 
+ 00023321  0x00005717 isub  0x00000002 , 0x0000003f 
+ 00023322  0x00005718 nbranch  0x00005b2c , 0x00000002 
+ 00023323  0x00005719 arg  0x00000600 , 0x00000002 
+ 00023324  0x0000571a isub  0x00000002 , 0x0000003e 
+ 00023325  0x0000571b nbranch  0x00005b2c , 0x00000002 
+ 00023326  0x0000571d jam  0x000000fa , 0x000048f0 
+ 00023327  0x0000571f call  0x00007d27 
+ 00023328  0x00005720 storet  0x00000004 , 0x000040a9 
+ 00023329  0x00005721 branch  0x00002406 
+ 00023330  0x00005724 call  0x00005b29 
+ 00023331  0x00005725 fetch  0x00000003 , 0x0000461f 
+ 00023332  0x00005726 branch  0x00005b1e 
+ 00023333  0x00005729 sub  0x00000002 , 0x00000000 , 0x00000002 
+ 00023334  0x0000572a fetch  0x00000003 , 0x0000461f 
+ 00023335  0x0000572b iadd  0x00000002 , 0x0000003f 
+ 00023336  0x0000572c branch  0x00005b1e 
+ 00023337  0x0000572f setarg  0x00000000 
+ 00023338  0x00005730 store  0x00000004 , 0x000048f6 
+ 00023339  0x00005731 rtn 
+ 00023340  0x00005734 jam  0x00000001 , 0x000048f1 
+ 00023341  0x00005735 rtn 
+ 00023342  0x00005738 arg  0xffffffff , 0x0000003f 
+ 00023343  0x00005739 isub  0x00000002 , 0x0000002f 
+ 00023344  0x0000573a fetch  0x00000004 , 0x000048e6 
+ 00023345  0x0000573b isub  0x0000002f , 0x0000003f 
+ 00023346  0x0000573c branch  0x00005b14 
+ 00023347  0x0000573f call  0x00005b35 
+ 00023348  0x00005740 branch  0x00005916 
+ 00023349  0x00005743 fetch  0x00000001 , 0x000048fa 
+ 00023350  0x00005744 rtn  0x00000034 
+ 00023351  0x00005745 fetch  0x00000001 , 0x0000462f 
+ 00023352  0x00005746 beq  0x00000001 , 0x00005b7b 
+ 00023353  0x00005747 fetch  0x00000001 , 0x000048df 
+ 00023354  0x00005748 branch  0x00005b7b , 0x00000034 
+ 00023355  0x00005749 copy  0x00000019 , 0x0000003f 
+ 00023356  0x0000574a fetcht  0x00000006 , 0x000048e0 
+ 00023357  0x0000574b store  0x00000006 , 0x000048e0 
+ 00023358  0x0000574c call  0x00007d12 
+ 00023359  0x0000574d store  0x00000004 , 0x000048e6 
+ 00023360  0x0000574f fetch  0x00000001 , 0x000048f1 
+ 00023361  0x00005750 nrtn  0x00000034 
+ 00023362  0x00005751 fetch  0x00000002 , 0x00004639 
+ 00023363  0x00005752 nrtn  0x00000034 
+ 00023364  0x00005753 fetch  0x00000004 , 0x000048f6 
+ 00023365  0x00005754 nrtn  0x00000034 
+ 00023366  0x00005756 fetch  0x00000004 , 0x000048e6 
+ 00023367  0x00005757 fetcht  0x00000004 , 0x000048cc 
+ 00023368  0x00005758 lshift  0x00000002 , 0x00000002 
+ 00023369  0x00005759 isub  0x00000002 , 0x0000003e 
+ 00023370  0x0000575a branch  0x00005b7f , 0x00000002 
+ 00023371  0x0000575c fetcht  0x00000005 , 0x000048ea 
+ 00023372  0x0000575d iadd  0x00000002 , 0x0000003f 
+ 00023373  0x0000575e store  0x00000005 , 0x000048ea 
+ 00023374  0x0000575f fetcht  0x00000001 , 0x000048df 
+ 00023375  0x00005760 fetch  0x00000001 , 0x000048ef 
+ 00023376  0x00005761 isub  0x00000002 , 0x0000003e 
+ 00023377  0x00005762 branch  0x00005b55 , 0x00000005 
+ 00023378  0x00005763 increase  0x00000001 , 0x00000002 
+ 00023379  0x00005764 storet  0x00000001 , 0x000048df 
+ 00023380  0x00005765 rtn 
+ 00023381  0x00005768 jam  0x00000001 , 0x000048df 
+ 00023382  0x00005769 arg  0x00000000 , 0x00000002 
+ 00023383  0x0000576a fetch  0x00000005 , 0x000048ea 
+ 00023384  0x0000576b storet  0x00000005 , 0x000048ea 
+ 00023385  0x0000576c fetcht  0x00000001 , 0x000048ef 
+ 00023386  0x0000576d idiv  0x00000002 
+ 00023387  0x0000576e call  0x00007d64 
+ 00023388  0x0000576f quotient  0x00000011 
+ 00023389  0x00005771 fetch  0x00000004 , 0x000048cc 
+ 00023390  0x00005772 fetcht  0x00000001 , 0x000048f0 
+ 00023391  0x00005773 isub  0x00000002 , 0x00000002 
+ 00023392  0x00005775 copy  0x00000011 , 0x0000003f 
+ 00023393  0x00005776 isub  0x00000002 , 0x0000003f 
+ 00023394  0x00005777 branch  0x00005b6f , 0x00000002 
+ 00023395  0x00005778 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00023396  0x0000577a rshift2  0x0000003f , 0x0000003f 
+ 00023397  0x0000577b fetcht  0x00000003 , 0x0000461f 
+ 00023398  0x0000577c iadd  0x00000002 , 0x00000002 
+ 00023399  0x0000577d bpatch  0x000000ad , 0x00004015 
+ 00023400  0x0000577e fetch  0x00000003 , 0x000048dc 
+ 00023401  0x0000577f arg  0x00001800 , 0x00000011 
+ 00023402  0x00005780 iadd  0x00000011 , 0x0000003f 
+ 00023403  0x00005781 isub  0x00000002 , 0x0000003e 
+ 00023404  0x00005782 nbranch  0x00005b79 , 0x00000002 
+ 00023405  0x00005784 storet  0x00000003 , 0x0000461f 
+ 00023406  0x00005785 rtn 
+ 00023407  0x00005788 rshift2  0x0000003f , 0x00000002 
+ 00023408  0x00005789 fetch  0x00000003 , 0x0000461f 
+ 00023409  0x0000578a isub  0x00000002 , 0x00000002 
+ 00023410  0x0000578b bpatch  0x000000ae , 0x00004015 
+ 00023411  0x0000578c fetch  0x00000003 , 0x000048dc 
+ 00023412  0x0000578d arg  0x00001800 , 0x00000011 
+ 00023413  0x0000578e isub  0x00000011 , 0x0000003f 
+ 00023414  0x0000578f isub  0x00000002 , 0x0000003e 
+ 00023415  0x00005790 branch  0x00005b79 , 0x00000002 
+ 00023416  0x00005791 branch  0x00005b6d 
+ 00023417  0x00005794 store  0x00000003 , 0x0000461f 
+ 00023418  0x00005795 rtn 
+ 00023419  0x00005798 jam  0x00000001 , 0x000048df 
+ 00023420  0x00005799 copy  0x00000019 , 0x0000003f 
+ 00023421  0x0000579a store  0x00000006 , 0x000048e0 
+ 00023422  0x0000579b rtn 
+ 00023423  0x0000579e setarg  0x00000000 
+ 00023424  0x0000579f store  0x00000001 , 0x000048df 
+ 00023425  0x000057a0 store  0x00000005 , 0x000048ea 
+ 00023426  0x000057a1 rtn 
+ 00023427  0x000057a5 fetch  0x00000008 , 0x0000470e 
+ 00023428  0x000057a6 rtnbit0  0x0000000c 
+ 00023429  0x000057a7 jam  0x000000a5 , 0x00004676 
+ 00023430  0x000057a8 rtn 
+ 00023431  0x000057ab call  0x00005b8b 
+ 00023432  0x000057ac fetch  0x00000001 , 0x00004676 
+ 00023433  0x000057ad rtnne  0x0000005a 
+ 00023434  0x000057ae branch  0x000078f6 
+ 00023435  0x000057b1 bpatch  0x000000af , 0x00004015 
+ 00023436  0x000057b2 fetcht  0x00000001 , 0x0000084a 
+ 00023437  0x000057b3 call  0x00006ee0 
+ 00023438  0x000057b4 nbranch  0x00005ba4 , 0x00000001 
+ 00023439  0x000057b6 fetch  0x00000001 , 0x00004676 
+ 00023440  0x000057b7 rtneq  0x0000005a 
+ 00023441  0x000057b8 jam  0x0000005a , 0x00004676 
+ 00023442  0x000057b9 setarg  0x00000000 
+ 00023443  0x000057ba store  0x00000002 , 0x000045ef 
+ 00023444  0x000057bb store  0x00000002 , 0x000045f5 
+ 00023445  0x000057bc jam  0x00000000 , 0x00004094 
+ 00023446  0x000057bd call  0x0000712c 
+ 00023447  0x000057be call  0x00005936 
+ 00023448  0x000057bf call  0x000053c3 
+ 00023449  0x000057c0 disable  0x0000002b 
+ 00023450  0x000057c1 call  0x0000538d 
+ 00023451  0x000057c3 setarg  0x00005bd7 
+ 00023452  0x000057c4 store  0x00000002 , 0x00000837 
+ 00023453  0x000057c5 fetch  0x00000001 , 0x00004a95 
+ 00023454  0x000057c6 store  0x00000001 , 0x00000839 
+ 00023455  0x000057c7 arg  0x00004a96 , 0x00000006 
+ 00023456  0x000057c8 arg  0x0000083a , 0x00000005 
+ 00023457  0x000057c9 arg  0x00000009 , 0x00000039 
+ 00023458  0x000057ca call  0x00007cdc 
+ 00023459  0x000057cb branch  0x00007902 
+ 00023460  0x000057ce fetch  0x00000001 , 0x00004677 
+ 00023461  0x000057cf rtneq  0x000000a5 
+ 00023462  0x000057d0 jam  0x000000a5 , 0x00004676 
+ 00023463  0x000057d1 jam  0x00000000 , 0x000008ec 
+ 00023464  0x000057d2 jam  0x00000000 , 0x000006e7 
+ 00023465  0x000057d3 jam  0x00000000 , 0x000008de 
+ 00023466  0x000057d4 fetch  0x00000002 , 0x00008050 
+ 00023467  0x000057d5 set1  0x0000000a , 0x0000003f 
+ 00023468  0x000057d6 store  0x00000002 , 0x00008050 
+ 00023469  0x000057d7 jam  0x00000001 , 0x00004094 
+ 00023470  0x000057d8 call  0x0000712c 
+ 00023471  0x000057d9 branch  0x00005801 
+ 00023472  0x000057dc fetch  0x00000001 , 0x00008c01 
+ 00023473  0x000057dd store  0x00000001 , 0x00004675 
+ 00023474  0x000057de rtnbit0  0x00000007 
+ 00023475  0x000057df call  0x00005bc2 
+ 00023476  0x000057e0 nrtn  0x00000028 
+ 00023477  0x000057e1 call  0x00004f26 
+ 00023478  0x000057e2 nrtn  0x00000028 
+ 00023479  0x000057e3 fetch  0x00000001 , 0x00008c25 
+ 00023480  0x000057e4 rtnbit1  0x00000002 
+ 00023481  0x000057e5 branch  0x00005bba 
+ 00023482  0x000057e8 fetch  0x00000001 , 0x00008c01 
+ 00023483  0x000057e9 rtnbit0  0x00000007 
+ 00023484  0x000057ea bpatch  0x000000b0 , 0x00004016 
+ 00023485  0x000057eb fetch  0x00000008 , 0x0000470e 
+ 00023486  0x000057ec bbit0  0x00000014 , 0x00006856 
+ 00023487  0x000057ed fetch  0x00000001 , 0x0000472b 
+ 00023488  0x000057ee beq  0x00000001 , 0x0000685b 
+ 00023489  0x000057ef branch  0x00006856 
+ 00023490  0x000057f2 call  0x00007dbe 
+ 00023491  0x000057f3 fetcht  0x00000004 , 0x0000474b 
+ 00023492  0x000057f4 copy  0x00000022 , 0x0000003f 
+ 00023493  0x000057f5 isub  0x00000002 , 0x0000003e 
+ 00023494  0x000057f6 ncall  0x00005bd1 , 0x00000002 
+ 00023495  0x000057f7 copy  0x0000003f , 0x00000012 
+ 00023496  0x000057f8 fetch  0x00000004 , 0x0000474b 
+ 00023497  0x000057f9 fetcht  0x00000001 , 0x00004674 
+ 00023498  0x000057fa iadd  0x00000002 , 0x00000002 
+ 00023499  0x000057fb copy  0x00000012 , 0x0000003f 
+ 00023500  0x000057fc isub  0x00000002 , 0x0000003e 
+ 00023501  0x000057fd nrtn  0x00000002 
+ 00023502  0x000057fe set0  0x0000001c , 0x0000003f 
+ 00023503  0x000057ff store  0x00000004 , 0x0000474b 
+ 00023504  0x00005800 branch  0x00007dbc 
+ 00023505  0x00005803 rtn  0x00000005 
+ 00023506  0x00005804 set1  0x0000001c , 0x0000003f 
+ 00023507  0x00005805 rtn 
+ 00023508  0x00005808 setarg  0x00000000 
+ 00023509  0x00005809 store  0x00000004 , 0x0000474b 
+ 00023510  0x0000580a rtn 
+ 00023511  0x0000580d bpatch  0x000000b1 , 0x00004016 
+ 00023512  0x0000580e call  0x00005be1 
+ 00023513  0x0000580f call  0x00005bea 
+ 00023514  0x00005810 call  0x00005be6 
+ 00023515  0x00005812 fetch  0x00000001 , 0x00004a9f 
+ 00023516  0x00005813 rtn  0x00000034 
+ 00023517  0x00005814 arg  0x00004a9f , 0x00000006 
+ 00023518  0x00005815 arg  0x000007fb , 0x00000005 
+ 00023519  0x00005816 arg  0x0000001e , 0x00000039 
+ 00023520  0x00005817 branch  0x00007cdc 
+ 00023521  0x0000581a jam  0x00001fc0 , 0x00004677 
+ 00023522  0x0000581b fetch  0x00000008 , 0x0000470e 
+ 00023523  0x0000581c rtnbit0  0x00000014 
+ 00023524  0x0000581d jam  0x0000005a , 0x00004677 
+ 00023525  0x0000581e rtn 
+ 00023526  0x00005821 call  0x00007956 
+ 00023527  0x00005822 call  0x00003d20 
+ 00023528  0x00005824 fetch  0x00000001 , 0x00004677 
+ 00023529  0x00005825 branch  0x00003d2a 
+ 00023530  0x00005828 call  0x00005bd4 
+ 00023531  0x00005829 fetch  0x00000008 , 0x0000470e 
+ 00023532  0x0000582a bbit1  0x0000001d , 0x00005bf1 
+ 00023533  0x0000582b bbit1  0x0000001e , 0x00005bf3 
+ 00023534  0x0000582c bbit1  0x0000001f , 0x00005bf5 
+ 00023535  0x0000582e jam  0x00000020 , 0x00004674 
+ 00023536  0x0000582f rtn 
+ 00023537  0x00005831 jam  0x00000010 , 0x00004674 
+ 00023538  0x00005832 rtn 
+ 00023539  0x00005834 jam  0x00000008 , 0x00004674 
+ 00023540  0x00005835 rtn 
+ 00023541  0x00005837 jam  0x00000004 , 0x00004674 
+ 00023542  0x00005838 rtn 
+ 00023543  0x00005842 setarg  0x00005bfa 
+ 00023544  0x00005843 store  0x00000002 , 0x000043e4 
+ 00023545  0x00005847 rtn 
+ 00023546  0x0000584b call  0x00005bfc 
+ 00023547  0x0000584c rtn 
+ 00023548  0x0000584f bpatch  0x000000b2 , 0x00004016 
+ 00023549  0x00005850 arg  0x00000000 , 0x00000011 
+ 00023550  0x00005851 fetcht  0x00000004 , 0x000049f2 
+ 00023551  0x00005852 copy  0x00000022 , 0x00000012 
+ 00023552  0x00005853 copy  0x00000012 , 0x0000003f 
+ 00023553  0x00005854 isub  0x00000002 , 0x0000003e 
+ 00023554  0x00005855 ncall  0x000077f4 , 0x00000002 
+ 00023555  0x00005857 copy  0x00000012 , 0x0000003f 
+ 00023556  0x00005858 increase  0x00000008 , 0x00000002 
+ 00023557  0x00005859 isub  0x00000002 , 0x0000003e 
+ 00023558  0x0000585a nbranch  0x00005c0e , 0x00000002 
+ 00023559  0x0000585b increase  0x00000001 , 0x00000011 
+ 00023560  0x0000585c and  0x00000011 , 0x0000000f , 0x0000003f 
+ 00023561  0x0000585d nbranch  0x00005c03 , 0x00000034 
+ 00023562  0x0000585e arg  0x00000000 , 0x00000011 
+ 00023563  0x0000585f call  0x00005c13 
+ 00023564  0x00005861 storer  0x00000022 , 0x00000004 , 0x000049f2 
+ 00023565  0x00005862 rtn 
+ 00023566  0x00005864 copy  0x00000011 , 0x0000003f 
+ 00023567  0x00005865 rtn  0x00000034 
+ 00023568  0x00005866 increase  0xfffffff8 , 0x00000002 
+ 00023569  0x00005867 set0  0x0000001c , 0x00000002 
+ 00023570  0x00005868 storet  0x00000004 , 0x000049f2 
+ 00023571  0x0000586a store  0x00000001 , 0x000049f6 
+ 00023572  0x0000586c fetch  0x00000001 , 0x000049f6 
+ 00023573  0x0000586d rtn  0x00000034 
+ 00023574  0x0000586e increase  0xffffffff , 0x0000003f 
+ 00023575  0x0000586f store  0x00000001 , 0x000049f6 
+ 00023576  0x00005870 fetch  0x00000002 , 0x000049f7 
+ 00023577  0x00005871 call  0x00007d7b 
+ 00023578  0x00005872 branch  0x00005c14 
+ 00023579  0x00005879 bpatch  0x000000b3 , 0x00004016 
+ 00023580  0x0000587a fetch  0x00000001 , 0x000049fb 
+ 00023581  0x0000587b rtn  0x00000034 
+ 00023582  0x0000587c jam  0x00000000 , 0x00004a00 
+ 00023583  0x0000587d jam  0x00000000 , 0x00004a17 
+ 00023584  0x0000587e call  0x00005d0a 
+ 00023585  0x00005880 call  0x00005ca3 
+ 00023586  0x00005881 fetch  0x00000001 , 0x00004a22 
+ 00023587  0x00005882 nrtn  0x00000034 
+ 00023588  0x00005883 call  0x00005d1b 
+ 00023589  0x00005884 call  0x000023e1 
+ 00023590  0x00005886 bpatch  0x000000b4 , 0x00004016 
+ 00023591  0x00005887 call  0x00005c2c 
+ 00023592  0x00005888 call  0x00005c32 
+ 00023593  0x00005889 call  0x00005c3f 
+ 00023594  0x0000588a call  0x00005c77 
+ 00023595  0x0000588b branch  0x00005c7a 
+ 00023596  0x0000588e arg  0x00004a0d , 0x00000011 
+ 00023597  0x0000588f fetch  0x00000001 , 0x00004a00 
+ 00023598  0x00005890 iadd  0x00000011 , 0x00000011 
+ 00023599  0x00005891 storer  0x00000011 , 0x00000002 , 0x000049fd 
+ 00023600  0x00005892 ifetcht  0x00000001 , 0x00000011 
+ 00023601  0x00005893 branch  0x00006ef1 
+ 00023602  0x00005896 fetch  0x00000001 , 0x000049fb 
+ 00023603  0x00005897 rtn  0x00000034 
+ 00023604  0x00005898 fetcht  0x00000001 , 0x00004a00 
+ 00023605  0x00005899 isub  0x00000002 , 0x0000003f 
+ 00023606  0x0000589a iforce  0x00000039 
+ 00023607  0x0000589b arg  0x00004a03 , 0x00000011 
+ 00023608  0x0000589c fetch  0x00000001 , 0x00004a00 
+ 00023609  0x0000589d iadd  0x00000011 , 0x00000011 
+ 00023610  0x0000589f ifetch  0x00000001 , 0x00000011 
+ 00023611  0x000058a0 call  0x00005cf3 
+ 00023612  0x000058a1 increase  0x00000001 , 0x00000011 
+ 00023613  0x000058a2 loop  0x00005c3a 
+ 00023614  0x000058a3 rtn 
+ 00023615  0x000058a7 jam  0x00000000 , 0x000049ff 
+ 00023616  0x000058a8 fetch  0x00000001 , 0x000049fb 
+ 00023617  0x000058a9 fetcht  0x00000001 , 0x00004a00 
+ 00023618  0x000058aa isub  0x00000002 , 0x0000003f 
+ 00023619  0x000058ab store  0x00000001 , 0x00004a19 
+ 00023620  0x000058ad arg  0x00004a03 , 0x00000011 
+ 00023621  0x000058ae fetch  0x00000001 , 0x00004a00 
+ 00023622  0x000058af iadd  0x00000011 , 0x00000011 
+ 00023623  0x000058b1 ifetcht  0x00000001 , 0x00000011 
+ 00023624  0x000058b2 storet  0x00000001 , 0x00004a6d 
+ 00023625  0x000058b3 call  0x00005ce4 
+ 00023626  0x000058b4 nrtn  0x00000028 
+ 00023627  0x000058b6 call  0x00005c5c , 0x00000001 
+ 00023628  0x000058b7 increase  0x00000001 , 0x00000011 
+ 00023629  0x000058b8 fetch  0x00000001 , 0x000049ff 
+ 00023630  0x000058b9 increase  0x00000001 , 0x0000003f 
+ 00023631  0x000058ba store  0x00000001 , 0x000049ff 
+ 00023632  0x000058bc fetcht  0x00000001 , 0x00004a17 
+ 00023633  0x000058bd increase  0x00000001 , 0x00000002 
+ 00023634  0x000058be storet  0x00000001 , 0x00004a17 
+ 00023635  0x000058c0 fetcht  0x00000001 , 0x00004a19 
+ 00023636  0x000058c1 isub  0x00000002 , 0x0000003e 
+ 00023637  0x000058c2 nbranch  0x00005c47 , 0x00000002 
+ 00023638  0x000058c4 fetch  0x00000002 , 0x00004a01 
+ 00023639  0x000058c5 rtn  0x00000034 
+ 00023640  0x000058c6 store  0x00000002 , 0x00004a67 
+ 00023641  0x000058c8 setarg  0x00000000 
+ 00023642  0x000058c9 store  0x00000002 , 0x00004a01 
+ 00023643  0x000058ca rtn 
+ 00023644  0x000058cd storer  0x00000011 , 0x00000002 , 0x00004a65 
+ 00023645  0x000058d3 fetch  0x00000001 , 0x000049ff 
+ 00023646  0x000058d4 copy  0x0000003f , 0x00000007 
+ 00023647  0x000058d5 fetcht  0x00000001 , 0x00004a01 
+ 00023648  0x000058d6 qset1  0x00000002 
+ 00023649  0x000058d7 storet  0x00000001 , 0x00004a01 
+ 00023650  0x000058d9 fetch  0x00000001 , 0x00004a00 
+ 00023651  0x000058da copy  0x0000003f , 0x00000007 
+ 00023652  0x000058db fetcht  0x00000001 , 0x00004a02 
+ 00023653  0x000058dc qset1  0x00000002 
+ 00023654  0x000058dd storet  0x00000001 , 0x00004a02 
+ 00023655  0x000058df call  0x00005c6a 
+ 00023656  0x000058e1 fetchr  0x00000011 , 0x00000002 , 0x00004a65 
+ 00023657  0x000058e2 rtn 
+ 00023658  0x000058e5 fetcht  0x00000002 , 0x00004a01 
+ 00023659  0x000058e6 arg  0x00004a23 , 0x00000011 
+ 00023660  0x000058e8 ifetch  0x00000002 , 0x00000011 
+ 00023661  0x000058e9 rtn  0x00000034 
+ 00023662  0x000058ea isub  0x00000002 , 0x0000003e 
+ 00023663  0x000058eb call  0x00005c72 , 0x00000005 
+ 00023664  0x000058ec increase  0x00000002 , 0x00000011 
+ 00023665  0x000058ed branch  0x00005c6c 
+ 00023666  0x000058f0 fetchr  0x00000007 , 0x00000001 , 0x00004a17 
+ 00023667  0x000058f1 fetch  0x00000008 , 0x00004a55 
+ 00023668  0x000058f2 qset1  0x0000003f 
+ 00023669  0x000058f3 store  0x00000008 , 0x00004a55 
+ 00023670  0x000058f4 rtn 
+ 00023671  0x000058f7 fetch  0x00000002 , 0x000049fd 
+ 00023672  0x000058f8 ifetch  0x00000001 , 0x0000003f 
+ 00023673  0x000058f9 branch  0x00005cf3 
+ 00023674  0x000058fc fetch  0x00000001 , 0x00004a00 
+ 00023675  0x000058fd increase  0x00000001 , 0x0000003f 
+ 00023676  0x000058fe store  0x00000001 , 0x00004a00 
+ 00023677  0x000058ff fetcht  0x00000001 , 0x000049fc 
+ 00023678  0x00005900 isub  0x00000002 , 0x0000003e 
+ 00023679  0x00005901 nbranch  0x00005c26 , 0x00000002 
+ 00023680  0x00005902 fetch  0x00000002 , 0x00004a67 
+ 00023681  0x00005903 branch  0x00005c8e , 0x00000034 
+ 00023682  0x00005905 store  0x00000002 , 0x00004a1c 
+ 00023683  0x00005906 fetch  0x00000001 , 0x00004a1e 
+ 00023684  0x00005907 nbranch  0x00005ca0 , 0x00000034 
+ 00023685  0x00005908 fetch  0x00000001 , 0x00004a1b 
+ 00023686  0x00005909 rtneq  0x00000001 
+ 00023687  0x0000590a jam  0x00000001 , 0x00004a1b 
+ 00023688  0x0000590b jam  0x00000001 , 0x00004a1e 
+ 00023689  0x0000590c bpatch  0x000000b5 , 0x00004016 
+ 00023690  0x0000590d call  0x00005c9c 
+ 00023691  0x0000590e fetch  0x00000002 , 0x00004500 
+ 00023692  0x0000590f rtnbit1  0x0000000b 
+ 00023693  0x00005910 branch  0x00005db7 
+ 00023694  0x00005913 fetch  0x00000001 , 0x00004a1b 
+ 00023695  0x00005914 rtneq  0x00000000 
+ 00023696  0x00005915 jam  0x00000000 , 0x00004a1b 
+ 00023697  0x00005916 fetch  0x00000002 , 0x00004500 
+ 00023698  0x00005917 bbit1  0x0000000b , 0x00005c96 
+ 00023699  0x00005918 fetch  0x00000001 , 0x00000da0 
+ 00023700  0x00005919 nbranch  0x00005c96 , 0x00000034 
+ 00023701  0x0000591a call  0x00005db9 
+ 00023702  0x0000591c setarg  0x00000000 
+ 00023703  0x0000591d store  0x00000008 , 0x00004a55 
+ 00023704  0x0000591e store  0x00000001 , 0x00004a1e 
+ 00023705  0x00005920 jam  0x00000000 , 0x00004a1f 
+ 00023706  0x00005921 arg  0x00004bef , 0x00000013 
+ 00023707  0x00005922 branch  0x0000618e 
+ 00023708  0x00005925 call  0x00005d4c 
+ 00023709  0x00005927 setarg  0x00000000 
+ 00023710  0x00005928 store  0x00000002 , 0x00004a1c 
+ 00023711  0x00005929 rtn 
+ 00023712  0x0000592c setarg  0x00000000 
+ 00023713  0x0000592d store  0x00000002 , 0x00004a67 
+ 00023714  0x0000592e rtn 
+ 00023715  0x00005931 arg  0x00000000 , 0x00000011 
+ 00023716  0x00005932 arg  0x00000000 , 0x00000012 
+ 00023717  0x00005933 force  0x00000000 , 0x00000038 
+ 00023718  0x00005934 fetch  0x00000001 , 0x00004a18 
+ 00023719  0x00005935 iforce  0x00000039 
+ 00023720  0x00005936 arg  0x00004a0d , 0x00000013 
+ 00023721  0x00005938 call  0x00005d0b 
+ 00023722  0x00005939 call  0x00005d10 
+ 00023723  0x0000593a ifetch  0x00000001 , 0x00000013 
+ 00023724  0x0000593b call  0x00005cf3 
+ 00023725  0x0000593c call  0x00005d12 
+ 00023726  0x0000593d call  0x00005d0d 
+ 00023727  0x0000593e ifetcht  0x00000001 , 0x00000013 
+ 00023728  0x0000593f storet  0x00000001 , 0x00004a6d 
+ 00023729  0x00005940 call  0x00005ce4 
+ 00023730  0x00005941 nrtn  0x00000028 
+ 00023731  0x00005943 copy  0x00000012 , 0x00000007 
+ 00023732  0x00005944 call  0x00005cdc , 0x00000001 
+ 00023733  0x00005945 ncall  0x00005cde , 0x00000001 
+ 00023734  0x00005946 increase  0x00000001 , 0x00000013 
+ 00023735  0x00005947 increase  0x00000001 , 0x00000012 
+ 00023736  0x00005948 loop  0x00005ca9 
+ 00023737  0x00005949 copy  0x00000011 , 0x0000003f 
+ 00023738  0x0000594a branch  0x00005cc5 , 0x00000034 
+ 00023739  0x0000594c store  0x00000001 , 0x00004a21 
+ 00023740  0x0000594d fetch  0x00000001 , 0x00004a1a 
+ 00023741  0x0000594e rtneq  0x00000001 
+ 00023742  0x0000594f jam  0x00000001 , 0x00004a1a 
+ 00023743  0x00005950 jam  0x00000001 , 0x00004a22 
+ 00023744  0x00005951 bpatch  0x000000b6 , 0x00004016 
+ 00023745  0x00005952 call  0x00005ccf 
+ 00023746  0x00005953 fetch  0x00000002 , 0x00004500 
+ 00023747  0x00005954 rtnbit1  0x0000000b 
+ 00023748  0x00005955 branch  0x00005db7 
+ 00023749  0x00005958 fetch  0x00000001 , 0x00004a1a 
+ 00023750  0x00005959 rtneq  0x00000000 
+ 00023751  0x0000595a jam  0x00000000 , 0x00004a1a 
+ 00023752  0x0000595b fetch  0x00000002 , 0x00004500 
+ 00023753  0x0000595c bbit1  0x0000000b , 0x00005ccd 
+ 00023754  0x0000595d fetch  0x00000001 , 0x00000da0 
+ 00023755  0x0000595e nbranch  0x00005ccd , 0x00000034 
+ 00023756  0x0000595f call  0x00005db9 
+ 00023757  0x00005961 jam  0x00000000 , 0x00004a22 
+ 00023758  0x00005962 branch  0x00005c99 
+ 00023759  0x00005965 call  0x00005cd2 
+ 00023760  0x00005967 jam  0x00000000 , 0x00004a21 
+ 00023761  0x00005968 rtn 
+ 00023762  0x0000596b fetcht  0x00000001 , 0x00004a21 
+ 00023763  0x0000596c arg  0x00004a4b , 0x00000011 
+ 00023764  0x0000596d arg  0x00000000 , 0x00000012 
+ 00023765  0x0000596f ifetch  0x00000001 , 0x00000011 
+ 00023766  0x00005970 rtn  0x00000034 
+ 00023767  0x00005971 isub  0x00000002 , 0x0000003e 
+ 00023768  0x00005972 branch  0x00005d3f , 0x00000005 
+ 00023769  0x00005973 increase  0x00000001 , 0x00000011 
+ 00023770  0x00005974 increase  0x00000001 , 0x00000012 
+ 00023771  0x00005975 branch  0x00005cd5 
+ 00023772  0x00005978 qset1  0x00000011 
+ 00023773  0x00005979 rtn 
+ 00023774  0x0000597c qset0  0x00000011 
+ 00023775  0x0000597d rtn 
+ 00023776  0x00005981 jam  0x00000001 , 0x00004a6b 
+ 00023777  0x00005982 rtn 
+ 00023778  0x00005984 jam  0x00000001 , 0x00004a6c 
+ 00023779  0x00005985 rtn 
+ 00023780  0x00005987 call  0x00007dbe 
+ 00023781  0x00005988 jam  0x00000000 , 0x00004a6b 
+ 00023782  0x00005989 jam  0x00000000 , 0x00004a6c 
+ 00023783  0x0000598a fetcht  0x00000001 , 0x00004a6d 
+ 00023784  0x0000598b call  0x00006ee0 
+ 00023785  0x0000598c call  0x00005ce0 , 0x00000001 
+ 00023786  0x0000598d nop  0x000004b0 
+ 00023787  0x0000598e fetcht  0x00000001 , 0x00004a6d 
+ 00023788  0x0000598f call  0x00006ee0 
+ 00023789  0x00005990 call  0x00005ce2 , 0x00000001 
+ 00023790  0x00005991 fetch  0x00000001 , 0x00004a6b 
+ 00023791  0x00005992 fetcht  0x00000001 , 0x00004a6c 
+ 00023792  0x00005993 isub  0x00000002 , 0x0000003e 
+ 00023793  0x00005994 nrtn  0x00000005 
+ 00023794  0x00005995 branch  0x00007dbc 
+ 00023795  0x0000599a store  0x00000001 , 0x00004a6e 
+ 00023796  0x0000599b call  0x00005d07 
+ 00023797  0x0000599c fetch  0x00000001 , 0x00004a6e 
+ 00023798  0x0000599e arg  0x00000001 , 0x00000013 
+ 00023799  0x0000599f div  0x0000003f , 0x00000002 
+ 00023800  0x000059a0 call  0x00007d64 
+ 00023801  0x000059a1 quotient  0x00000002 
+ 00023802  0x000059a2 remainder  0x0000003f 
+ 00023803  0x000059a3 ncall  0x00005d05 , 0x00000034 
+ 00023804  0x000059a4 copy  0x00000002 , 0x0000003f 
+ 00023805  0x000059a5 arg  0x0000814d , 0x00000005 
+ 00023806  0x000059a6 until  0x0000003e , 0x00000033 
+ 00023807  0x000059a7 until  0x0000003e , 0x00000033 
+ 00023808  0x000059a8 iadd  0x00000005 , 0x00000005 
+ 00023809  0x000059a9 ifetch  0x00000001 , 0x00000005 
+ 00023810  0x000059aa ior  0x00000013 , 0x0000003f 
+ 00023811  0x000059ab istore  0x00000001 , 0x00000005 
+ 00023812  0x000059ac branch  0x000023c4 
+ 00023813  0x000059af arg  0x00000010 , 0x00000013 
+ 00023814  0x000059b0 rtn 
+ 00023815  0x000059b4 or  0x0000003f , 0x00000080 , 0x0000003f 
+ 00023816  0x000059b5 arg  0x00000000 , 0x00000002 
+ 00023817  0x000059b6 branch  0x00006f1c 
+ 00023818  0x000059b9 branch  0x00006f4e 
+ 00023819  0x000059bc copy  0x00000013 , 0x0000003f 
+ 00023820  0x000059bd branch  0x00005d15 
+ 00023821  0x000059c0 call  0x00005d18 
+ 00023822  0x000059c1 copy  0x0000003f , 0x00000013 
+ 00023823  0x000059c2 rtn 
+ 00023824  0x000059c5 copy  0x00000011 , 0x0000003f 
+ 00023825  0x000059c6 branch  0x00005d15 
+ 00023826  0x000059c9 call  0x00005d18 
+ 00023827  0x000059ca copy  0x0000003f , 0x00000011 
+ 00023828  0x000059cb rtn 
+ 00023829  0x000059ce increase  0x00000001 , 0x00000038 
+ 00023830  0x000059cf copy  0x0000003f , 0x0000002f 
+ 00023831  0x000059d0 rtn 
+ 00023832  0x000059d3 copy  0x0000002f , 0x0000003f 
+ 00023833  0x000059d4 increase  0xffffffff , 0x00000038 
+ 00023834  0x000059d5 rtn 
+ 00023835  0x000059d8 call  0x00005d21 
+ 00023836  0x000059d9 call  0x00005d24 
+ 00023837  0x000059da call  0x00005d0a 
+ 00023838  0x000059dc setarg  0x000000f0 
+ 00023839  0x000059dd store  0x00000001 , 0x00008141 
+ 00023840  0x000059de branch  0x000023c4 
+ 00023841  0x000059e1 fetch  0x00000001 , 0x00004a18 
+ 00023842  0x000059e2 arg  0x00004a0d , 0x00000011 
+ 00023843  0x000059e3 branch  0x00005d28 
+ 00023844  0x000059e6 fetchr  0x00000012 , 0x00000001 , 0x00004a20 
+ 00023845  0x000059e7 fetch  0x00000001 , 0x00004a18 
+ 00023846  0x000059e8 arg  0x00004a0d , 0x00000011 
+ 00023847  0x000059e9 branch  0x00005d2e 
+ 00023848  0x000059ec copy  0x0000003f , 0x00000039 
+ 00023849  0x000059ee ifetcht  0x00000001 , 0x00000011 
+ 00023850  0x000059ef call  0x00006f0b 
+ 00023851  0x000059f0 increase  0x00000001 , 0x00000011 
+ 00023852  0x000059f1 loop  0x00005d29 
+ 00023853  0x000059f2 rtn 
+ 00023854  0x000059f6 copy  0x0000003f , 0x00000039 
+ 00023855  0x000059f8 ifetcht  0x00000001 , 0x00000011 
+ 00023856  0x000059f9 rshift  0x00000002 , 0x0000003f 
+ 00023857  0x000059fa arg  0x00000016 , 0x00000005 
+ 00023858  0x000059fb iadd  0x00000005 , 0x00000005 
+ 00023859  0x000059fc call  0x00005d3a 
+ 00023860  0x000059fd ifetcht  0x00000001 , 0x00000005 
+ 00023861  0x000059fe ior  0x00000002 , 0x0000003f 
+ 00023862  0x000059ff istore  0x00000001 , 0x00000005 
+ 00023863  0x00005a00 increase  0x00000001 , 0x00000011 
+ 00023864  0x00005a01 loop  0x00005d2f 
+ 00023865  0x00005a02 rtn 
+ 00023866  0x00005a05 copy  0x00000012 , 0x0000003f 
+ 00023867  0x00005a06 isolate0  0x00000000 , 0x00000002 
+ 00023868  0x00005a07 rtn  0x00000001 
+ 00023869  0x00005a08 lshift4  0x0000003f , 0x0000003f 
+ 00023870  0x00005a09 rtn 
+ 00023871  0x00005a0c bpatch  0x000000b7 , 0x00004016 
+ 00023872  0x00005a0d copy  0x00000012 , 0x0000003f 
+ 00023873  0x00005a0e fetcht  0x00000001 , 0x00004c07 
+ 00023874  0x00005a0f iadd  0x00000002 , 0x0000003f 
+ 00023875  0x00005a11 arg  0x00004bf2 , 0x00000013 
+ 00023876  0x00005a12 iadd  0x00000013 , 0x00000013 
+ 00023877  0x00005a13 ifetch  0x00000001 , 0x00000013 
+ 00023878  0x00005a14 store  0x00000001 , 0x00004a1f 
+ 00023879  0x00005a15 increase  0xffffffff , 0x0000003f 
+ 00023880  0x00005a16 mul32  0x0000003f , 0x00000003 , 0x0000003f 
+ 00023881  0x00005a17 arg  0x00004bb0 , 0x00000013 
+ 00023882  0x00005a18 iadd  0x00000013 , 0x00000013 
+ 00023883  0x00005a19 branch  0x00005d59 
+ 00023884  0x00005a1c fetcht  0x00000002 , 0x00004a1c 
+ 00023885  0x00005a1d arg  0x00004a23 , 0x00000011 
+ 00023886  0x00005a1e arg  0x00000000 , 0x00000012 
+ 00023887  0x00005a20 ifetch  0x00000002 , 0x00000011 
+ 00023888  0x00005a21 rtn  0x00000034 
+ 00023889  0x00005a22 isub  0x00000002 , 0x0000003e 
+ 00023890  0x00005a23 branch  0x00005d56 , 0x00000005 
+ 00023891  0x00005a24 increase  0x00000002 , 0x00000011 
+ 00023892  0x00005a25 increase  0x00000001 , 0x00000012 
+ 00023893  0x00005a26 branch  0x00005d4f 
+ 00023894  0x00005a29 bpatch  0x000000b8 , 0x00004017 
+ 00023895  0x00005a2a copy  0x00000012 , 0x0000003f 
+ 00023896  0x00005a2b branch  0x00005d43 
+ 00023897  0x00005a2e bpatch  0x000000b9 , 0x00004017 
+ 00023898  0x00005a2f fetch  0x00000001 , 0x00004c0b 
+ 00023899  0x00005a30 nbranch  0x00005d5e , 0x00000034 
+ 00023900  0x00005a32 call  0x00005d61 
+ 00023901  0x00005a33 branch  0x0000618e 
+ 00023902  0x00005a36 fetch  0x00000001 , 0x00004c09 
+ 00023903  0x00005a37 rtn  0x00000034 
+ 00023904  0x00005a38 branch  0x00005d5c 
+ 00023905  0x00005a3b ifetch  0x00000001 , 0x00000013 
+ 00023906  0x00005a3c increase  0x00000001 , 0x00000013 
+ 00023907  0x00005a3d beq  0x00000000 , 0x00005d68 
+ 00023908  0x00005a3e beq  0x00000001 , 0x00005d6a 
+ 00023909  0x00005a3f beq  0x00000002 , 0x00005d6c 
+ 00023910  0x00005a40 beq  0x00000003 , 0x00005d6e 
+ 00023911  0x00005a41 rtn 
+ 00023912  0x00005a43 jam  0x00000000 , 0x00004a6f 
+ 00023913  0x00005a44 rtn 
+ 00023914  0x00005a46 jam  0x00000001 , 0x00004a6f 
+ 00023915  0x00005a47 rtn 
+ 00023916  0x00005a49 jam  0x00000002 , 0x00004a6f 
+ 00023917  0x00005a4a rtn 
+ 00023918  0x00005a4c jam  0x00000003 , 0x00004a6f 
+ 00023919  0x00005a4d rtn 
+ 00023920  0x00005a50 bpatch  0x000000ba , 0x00004017 
+ 00023921  0x00005a51 call  0x000061a2 
+ 00023922  0x00005a52 nrtn  0x00000028 
+ 00023923  0x00005a53 store  0x00000001 , 0x00004c08 
+ 00023924  0x00005a54 fetch  0x00000001 , 0x00004a1f 
+ 00023925  0x00005a55 call  0x00005e05 , 0x00000034 
+ 00023926  0x00005a57 fetch  0x00000002 , 0x00004500 
+ 00023927  0x00005a58 bbit0  0x00000009 , 0x00005d7e 
+ 00023928  0x00005a59 fetch  0x00000001 , 0x00004a6f 
+ 00023929  0x00005a5a beq  0x00000000 , 0x00005d88 
+ 00023930  0x00005a5b beq  0x00000001 , 0x00005d9c 
+ 00023931  0x00005a5c beq  0x00000002 , 0x00005da9 
+ 00023932  0x00005a5d beq  0x00000003 , 0x00005d7e 
+ 00023933  0x00005a5e rtn 
+ 00023934  0x00005a61 fetch  0x00000001 , 0x00004a1f 
+ 00023935  0x00005a62 beq  0x00000000 , 0x00005e05 
+ 00023936  0x00005a63 fetch  0x00000001 , 0x00004c08 
+ 00023937  0x00005a64 pincrease  0xffffffff 
+ 00023938  0x00005a65 mul32  0x0000003f , 0x00000003 , 0x0000003f 
+ 00023939  0x00005a66 arg  0x00004b80 , 0x00000002 
+ 00023940  0x00005a67 iadd  0x00000002 , 0x00000006 
+ 00023941  0x00005a68 ifetch  0x00000002 , 0x00000006 
+ 00023942  0x00005a69 ifetcht  0x00000001 , 0x00000006 
+ 00023943  0x00005a6a branch  0x00005e01 
+ 00023944  0x00005a6d call  0x00002a06 
+ 00023945  0x00005a6e nrtn  0x00000034 
+ 00023946  0x00005a6f fetch  0x00000001 , 0x00004c08 
+ 00023947  0x00005a70 pincrease  0xffffffff 
+ 00023948  0x00005a71 mul32  0x0000003f , 0x00000003 , 0x0000003f 
+ 00023949  0x00005a72 arg  0x00004b10 , 0x00000002 
+ 00023950  0x00005a73 iadd  0x00000002 , 0x00000006 
+ 00023951  0x00005a74 arg  0x00000003 , 0x00000039 
+ 00023952  0x00005a75 arg  0x0000064e , 0x00000005 
+ 00023953  0x00005a76 call  0x00007cdc 
+ 00023954  0x00005a77 jam  0x00000003 , 0x00004c0a 
+ 00023955  0x00005a78 fetcht  0x00000002 , 0x00004c0e 
+ 00023956  0x00005a7a fetch  0x00000001 , 0x00004c09 
+ 00023957  0x00005a7b rtn  0x00000034 
+ 00023958  0x00005a7c fetchr  0x00000011 , 0x00000001 , 0x00004c0a 
+ 00023959  0x00005a7d call  0x00002dcc 
+ 00023960  0x00005a7e fetcht  0x00000001 , 0x00004c0a 
+ 00023961  0x00005a7f copy  0x00000002 , 0x00000039 
+ 00023962  0x00005a80 arg  0x0000064e , 0x00000006 
+ 00023963  0x00005a81 branch  0x00007cdc 
+ 00023964  0x00005a85 call  0x00002a06 
+ 00023965  0x00005a86 nrtn  0x00000034 
+ 00023966  0x00005a87 fetch  0x00000001 , 0x00004c08 
+ 00023967  0x00005a88 pincrease  0xffffffff 
+ 00023968  0x00005a89 mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00023969  0x00005a8a arg  0x00004b40 , 0x00000002 
+ 00023970  0x00005a8b iadd  0x00000002 , 0x00000006 
+ 00023971  0x00005a8c arg  0x00000004 , 0x00000039 
+ 00023972  0x00005a8d arg  0x0000064e , 0x00000005 
+ 00023973  0x00005a8e call  0x00007cdc 
+ 00023974  0x00005a8f jam  0x00000004 , 0x00004c0a 
+ 00023975  0x00005a90 fetcht  0x00000002 , 0x00004c12 
+ 00023976  0x00005a91 branch  0x00005d94 
+ 00023977  0x00005a94 call  0x00002a06 
+ 00023978  0x00005a95 nrtn  0x00000034 
+ 00023979  0x00005a96 fetch  0x00000001 , 0x00004c08 
+ 00023980  0x00005a97 pincrease  0xffffffff 
+ 00023981  0x00005a98 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00023982  0x00005a99 arg  0x00004a70 , 0x00000002 
+ 00023983  0x00005a9a iadd  0x00000002 , 0x00000006 
+ 00023984  0x00005a9b ifetch  0x00000002 , 0x00000006 
+ 00023985  0x00005a9d arg  0x00000008 , 0x00000039 
+ 00023986  0x00005a9e arg  0x0000064e , 0x00000005 
+ 00023987  0x00005a9f call  0x00007cdc 
+ 00023988  0x00005aa0 jam  0x00000008 , 0x00004c0a 
+ 00023989  0x00005aa1 fetcht  0x00000002 , 0x00004c0c 
+ 00023990  0x00005aa2 branch  0x00005d94 
+ 00023991  0x00005aab arg  0x00000000 , 0x00000011 
+ 00023992  0x00005aac branch  0x000077a8 
+ 00023993  0x00005aaf arg  0x00000000 , 0x00000011 
+ 00023994  0x00005ab0 branch  0x000077ad 
+ 00023995  0x00005ab8 store  0x00000002 , 0x00000d96 
+ 00023996  0x00005ab9 storet  0x00000001 , 0x00000d98 
+ 00023997  0x00005aba force  0x00000000 , 0x00000038 
+ 00023998  0x00005abb call  0x00005dcd 
+ 00023999  0x00005abc call  0x00005dd9 
+ 00024000  0x00005abd fetch  0x00000001 , 0x00000d96 
+ 00024001  0x00005abe call  0x00005de5 
+ 00024002  0x00005abf fetch  0x00000001 , 0x00000d97 
+ 00024003  0x00005ac0 call  0x00005de5 
+ 00024004  0x00005ac1 fetch  0x00000001 , 0x00000d98 
+ 00024005  0x00005ac2 call  0x00005de5 
+ 00024006  0x00005ac3 fetch  0x00000001 , 0x00000d98 
+ 00024007  0x00005ac4 invert  0x0000003f , 0x0000003f 
+ 00024008  0x00005ac5 call  0x00005de5 
+ 00024009  0x00005ac6 setarg  0x0000023a 
+ 00024010  0x00005ac7 call  0x00005dde 
+ 00024011  0x00005ac8 setarg  0x00000001 
+ 00024012  0x00005ac9 branch  0x00005ddc 
+ 00024013  0x00005acc setarg  0x00000000 
+ 00024014  0x00005acd call  0x000070bc 
+ 00024015  0x00005ace call  0x00007103 
+ 00024016  0x00005acf call  0x00005dd3 
+ 00024017  0x00005ad0 fetch  0x00000001 , 0x00004e33 
+ 00024018  0x00005ad1 branch  0x00007100 
+ 00024019  0x00005ad5 arg  0x0000009d , 0x00000011 
+ 00024020  0x00005ad6 arg  0x0000009d , 0x00000012 
+ 00024021  0x00005ad7 arg  0x00000000 , 0x0000003f 
+ 00024022  0x00005ad8 call  0x000070de 
+ 00024023  0x00005ad9 jam  0x00000000 , 0x0000809a 
+ 00024024  0x00005ada rtn 
+ 00024025  0x00005ade setarg  0x00002328 
+ 00024026  0x00005adf call  0x00005dde 
+ 00024027  0x00005ae0 setarg  0x00001194 
+ 00024028  0x00005ae2 jam  0x00000000 , 0x0000809a 
+ 00024029  0x00005ae3 branch  0x00005de0 
+ 00024030  0x00005ae7 jam  0x00000001 , 0x0000809a 
+ 00024031  0x00005ae8 branch  0x00005de0 
+ 00024032  0x00005aec rtn  0x00000034 
+ 00024033  0x00005aee increase  0xffffffff , 0x0000003f 
+ 00024034  0x00005aef nop  0x00000008 
+ 00024035  0x00005af0 nbranch  0x00005de1 , 0x00000034 
+ 00024036  0x00005af1 rtn 
+ 00024037  0x00005af5 arg  0x00000008 , 0x00000039 
+ 00024038  0x00005af7 call  0x00005d15 
+ 00024039  0x00005af8 call  0x00005dec 
+ 00024040  0x00005af9 call  0x00005d18 
+ 00024041  0x00005afa rshift  0x0000003f , 0x0000003f 
+ 00024042  0x00005afb loop  0x00005de6 
+ 00024043  0x00005afc rtn 
+ 00024044  0x00005aff bbit0  0x00000000 , 0x00005def 
+ 00024045  0x00005b00 bbit1  0x00000000 , 0x00005df2 
+ 00024046  0x00005b01 rtn 
+ 00024047  0x00005b04 arg  0x0000023a , 0x00000011 
+ 00024048  0x00005b05 arg  0x00000226 , 0x00000012 
+ 00024049  0x00005b06 branch  0x00005df5 
+ 00024050  0x00005b09 arg  0x0000023a , 0x00000011 
+ 00024051  0x00005b0a arg  0x00000690 , 0x00000012 
+ 00024052  0x00005b0b branch  0x00005df5 
+ 00024053  0x00005b0f copy  0x00000011 , 0x0000003f 
+ 00024054  0x00005b10 call  0x00005dde 
+ 00024055  0x00005b11 copy  0x00000012 , 0x0000003f 
+ 00024056  0x00005b12 branch  0x00005ddc 
+ 00024057  0x00005b16 setarg  0x00002328 
+ 00024058  0x00005b17 call  0x00005dde 
+ 00024059  0x00005b18 setarg  0x000008ca 
+ 00024060  0x00005b19 call  0x00005ddc 
+ 00024061  0x00005b1a setarg  0x00000230 
+ 00024062  0x00005b1b call  0x00005dde 
+ 00024063  0x00005b1c setarg  0x00000001 
+ 00024064  0x00005b1d branch  0x00005ddc 
+ 00024065  0x00005b21 call  0x00005dbb 
+ 00024066  0x00005b22 call  0x00005e0c 
+ 00024067  0x00005b23 jam  0x00000010 , 0x00000d94 
+ 00024068  0x00005b24 rtn 
+ 00024069  0x00005b27 call  0x00005e10 
+ 00024070  0x00005b29 call  0x00007103 
+ 00024071  0x00005b2b fetch  0x00000001 , 0x00004e33 
+ 00024072  0x00005b2d arg  0x0000003e , 0x00000002 
+ 00024073  0x00005b2e branch  0x00006f1d 
+ 00024074  0x00005b31 arg  0x0000003f , 0x00000002 
+ 00024075  0x00005b32 branch  0x00006f1d 
+ 00024076  0x00005b35 setarg  0x0000002b 
+ 00024077  0x00005b37 store  0x00000001 , 0x00000d95 
+ 00024078  0x00005b38 store  0x00000001 , 0x00000d94 
+ 00024079  0x00005b39 rtn 
+ 00024080  0x00005b3c setarg  0x00000000 
+ 00024081  0x00005b3d branch  0x00005e0d 
+ 00024082  0x00005b47 fetch  0x00000002 , 0x00008120 
+ 00024083  0x00005b48 fetcht  0x00000002 , 0x00008066 
+ 00024084  0x00005b49 isub  0x00000002 , 0x0000003f 
+ 00024085  0x00005b4a nbranch  0x00005e17 , 0x00000002 
+ 00024086  0x00005b4b rtn 
+ 00024087  0x00005b4d fetcht  0x00000002 , 0x00008120 
+ 00024088  0x00005b4e fetch  0x00000002 , 0x00008066 
+ 00024089  0x00005b4f isub  0x00000002 , 0x00000002 
+ 00024090  0x00005b50 setarg  0x00000100 
+ 00024091  0x00005b51 isub  0x00000002 , 0x0000003f 
+ 00024092  0x00005b52 rtn 
+ 00024093  0x00005b55 fetch  0x00000002 , 0x00008066 
+ 00024094  0x00005b56 ifetcht  0x00000003 , 0x0000003f 
+ 00024095  0x00005b57 storet  0x00000001 , 0x00000dd2 
+ 00024096  0x00005b58 rshift8  0x00000002 , 0x00000002 
+ 00024097  0x00005b59 storet  0x00000001 , 0x00000dd3 
+ 00024098  0x00005b5a rshift8  0x00000002 , 0x00000002 
+ 00024099  0x00005b5b storet  0x00000001 , 0x00000dd4 
+ 00024100  0x00005b5d fetch  0x00000001 , 0x00000dd2 
+ 00024101  0x00005b5e and_into  0x00000080 , 0x0000003f 
+ 00024102  0x00005b5f bne  0x00000080 , 0x00005e28 
+ 00024103  0x00005b60 branch  0x00005e33 
+ 00024104  0x00005b63 fetch  0x00000001 , 0x00000dd2 
+ 00024105  0x00005b64 store  0x00000001 , 0x00000dd5 
+ 00024106  0x00005b65 fetch  0x00000002 , 0x00008066 
+ 00024107  0x00005b66 fetcht  0x00000002 , 0x00008064 
+ 00024108  0x00005b67 isub  0x00000002 , 0x0000003f 
+ 00024109  0x00005b68 branch  0x00005e5b , 0x00000002 
+ 00024110  0x00005b69 fetch  0x00000002 , 0x00008066 
+ 00024111  0x00005b6a increase  0x00000001 , 0x0000003f 
+ 00024112  0x00005b6b store  0x00000002 , 0x00008066 
+ 00024113  0x00005b6c jam  0x00000001 , 0x00000dd8 
+ 00024114  0x00005b6d rtn 
+ 00024115  0x00005b70 fetch  0x00000001 , 0x00000dd4 
+ 00024116  0x00005b71 and_into  0x00000080 , 0x0000003f 
+ 00024117  0x00005b72 beq  0x00000080 , 0x00005e46 
+ 00024118  0x00005b73 fetch  0x00000001 , 0x00000dd3 
+ 00024119  0x00005b74 lshift8  0x0000003f , 0x0000003f 
+ 00024120  0x00005b75 rshift  0x0000003f , 0x0000003f 
+ 00024121  0x00005b76 fetcht  0x00000001 , 0x00000dd2 
+ 00024122  0x00005b77 and_into  0x0000007f , 0x00000002 
+ 00024123  0x00005b78 ior  0x00000002 , 0x0000003f 
+ 00024124  0x00005b79 store  0x00000002 , 0x00000dd5 
+ 00024125  0x00005b7a fetch  0x00000002 , 0x00008066 
+ 00024126  0x00005b7b fetcht  0x00000002 , 0x00008064 
+ 00024127  0x00005b7c isub  0x00000002 , 0x0000003f 
+ 00024128  0x00005b7d branch  0x00005e5b , 0x00000002 
+ 00024129  0x00005b7e fetch  0x00000002 , 0x00008066 
+ 00024130  0x00005b7f increase  0x00000002 , 0x0000003f 
+ 00024131  0x00005b80 store  0x00000002 , 0x00008066 
+ 00024132  0x00005b81 jam  0x00000002 , 0x00000dd8 
+ 00024133  0x00005b82 rtn 
+ 00024134  0x00005b85 fetch  0x00000001 , 0x00000dd4 
+ 00024135  0x00005b86 and_into  0x0000007f , 0x0000003f 
+ 00024136  0x00005b87 lshift16  0x0000003f , 0x0000003f 
+ 00024137  0x00005b88 rshift  0x0000003f , 0x00000011 
+ 00024138  0x00005b89 fetch  0x00000001 , 0x00000dd3 
+ 00024139  0x00005b8a lshift8  0x0000003f , 0x0000003f 
+ 00024140  0x00005b8b rshift  0x0000003f , 0x0000003f 
+ 00024141  0x00005b8c fetcht  0x00000001 , 0x00000dd2 
+ 00024142  0x00005b8d and_into  0x0000007f , 0x00000002 
+ 00024143  0x00005b8e ior  0x00000002 , 0x0000003f 
+ 00024144  0x00005b8f ior  0x00000011 , 0x0000003f 
+ 00024145  0x00005b90 store  0x00000003 , 0x00000dd5 
+ 00024146  0x00005b92 fetch  0x00000002 , 0x00008066 
+ 00024147  0x00005b93 fetcht  0x00000002 , 0x00008064 
+ 00024148  0x00005b94 isub  0x00000002 , 0x0000003f 
+ 00024149  0x00005b95 branch  0x00005e5b , 0x00000002 
+ 00024150  0x00005b97 fetch  0x00000002 , 0x00008066 
+ 00024151  0x00005b98 increase  0x00000003 , 0x0000003f 
+ 00024152  0x00005b99 store  0x00000002 , 0x00008066 
+ 00024153  0x00005b9a jam  0x00000003 , 0x00000dd8 
+ 00024154  0x00005b9b rtn 
+ 00024155  0x00005b9e arg  0x00000a88 , 0x00000002 
+ 00024156  0x00005b9f iadd  0x00000002 , 0x0000003f 
+ 00024157  0x00005ba0 store  0x00000002 , 0x00008066 
+ 00024158  0x00005ba1 rtn 
+ 00024159  0x00005ba3 setarg  0x00000b88 
+ 00024160  0x00005ba4 store  0x00000002 , 0x00000dcc 
+ 00024161  0x00005ba5 store  0x00000002 , 0x00000dd0 
+ 00024162  0x00005ba6 rtn 
+ 00024163  0x00005ba9 call  0x00005e6c 
+ 00024164  0x00005baa fetch  0x00000001 , 0x00000dd5 
+ 00024165  0x00005bab fetcht  0x00000002 , 0x00000ddc 
+ 00024166  0x00005bac iadd  0x00000002 , 0x0000003f 
+ 00024167  0x00005bad store  0x00000002 , 0x00000ddc 
+ 00024168  0x00005bae setarg  0x00000000 
+ 00024169  0x00005baf store  0x00000003 , 0x00000dd5 
+ 00024170  0x00005bb0 store  0x00000001 , 0x00000dd8 
+ 00024171  0x00005bb1 rtn 
+ 00024172  0x00005bb4 fetch  0x00000001 , 0x00000db7 
+ 00024173  0x00005bb5 sub  0x0000003f , 0x00000014 , 0x0000003e 
+ 00024174  0x00005bb6 rtn  0x00000005 
+ 00024175  0x00005bb7 increase  0x00000001 , 0x0000003f 
+ 00024176  0x00005bb8 store  0x00000001 , 0x00000db7 
+ 00024177  0x00005bb9 fetch  0x00000001 , 0x00000dd5 
+ 00024178  0x00005bba fetcht  0x00000002 , 0x00000db5 
+ 00024179  0x00005bbb istore  0x00000001 , 0x00000002 
+ 00024180  0x00005bbc increase  0x00000001 , 0x00000002 
+ 00024181  0x00005bbd storet  0x00000002 , 0x00000db5 
+ 00024182  0x00005bbe rtn 
+ 00024183  0x00005bc2 fetch  0x00000004 , 0x00008100 
+ 00024184  0x00005bc3 fetcht  0x00000004 , 0x00000dde 
+ 00024185  0x00005bc4 isub  0x00000002 , 0x0000003f 
+ 00024186  0x00005bc5 rtn 
+ 00024187  0x00005bc9 fetcht  0x00000004 , 0x00000de6 
+ 00024188  0x00005bca isub  0x00000002 , 0x0000003e 
+ 00024189  0x00005bcb rtn 
+ 00024190  0x00005bce fetch  0x00000004 , 0x00008100 
+ 00024191  0x00005bcf store  0x00000004 , 0x00000dde 
+ 00024192  0x00005bd0 setarg  0x0000026c 
+ 00024193  0x00005bd1 store  0x00000004 , 0x00000de6 
+ 00024194  0x00005bd2 rtn 
+ 00024195  0x00005bd5 fetch  0x00000001 , 0x00000d93 
+ 00024196  0x00005bd6 rtn  0x00000034 
+ 00024197  0x00005bd7 mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00024198  0x00005bd8 increase  0xfffffff6 , 0x0000003f 
+ 00024199  0x00005bd9 copy  0x0000003f , 0x00000039 
+ 00024200  0x00005bda store  0x00000001 , 0x00000c90 
+ 00024201  0x00005bdb arg  0x00000b88 , 0x00000006 
+ 00024202  0x00005bdc increase  0x00000006 , 0x00000006 
+ 00024203  0x00005bdd arg  0x00000c93 , 0x00000005 
+ 00024204  0x00005bde branch  0x00007cdc 
+ 00024205  0x00005be7 jam  0x00000028 , 0x00004db5 
+ 00024206  0x00005be8 fetch  0x00000002 , 0x00004df2 
+ 00024207  0x00005be9 store  0x00000002 , 0x00004db6 
+ 00024208  0x00005bea setarg  0x00000a24 
+ 00024209  0x00005beb store  0x00000002 , 0x00004db8 
+ 00024210  0x00005bed fetch  0x00000004 , 0x00004dad 
+ 00024211  0x00005bee store  0x00000004 , 0x00004dc0 
+ 00024212  0x00005bf0 fetch  0x00000004 , 0x00004db1 
+ 00024213  0x00005bf1 store  0x00000004 , 0x00004dc4 
+ 00024214  0x00005bf3 fetch  0x00000001 , 0x00004dc4 
+ 00024215  0x00005bf4 lshift2  0x0000003f , 0x0000003f 
+ 00024216  0x00005bf5 arg  0x00004c49 , 0x00000002 
+ 00024217  0x00005bf6 iadd  0x00000002 , 0x00000002 
+ 00024218  0x00005bf7 ifetch  0x00000004 , 0x00000002 
+ 00024219  0x00005bf8 store  0x00000004 , 0x00004dbc 
+ 00024220  0x00005bfa jam  0x00000001 , 0x00004dd0 
+ 00024221  0x00005bfc call  0x00005f3c 
+ 00024222  0x00005bfe fetch  0x00000004 , 0x00004dd1 
+ 00024223  0x00005bff fetcht  0x00000004 , 0x00004dc0 
+ 00024224  0x00005c00 isub  0x00000002 , 0x0000003f 
+ 00024225  0x00005c01 store  0x00000004 , 0x00004dd9 
+ 00024226  0x00005c03 call  0x00005ed7 
+ 00024227  0x00005c04 call  0x00005ede 
+ 00024228  0x00005c06 jam  0x00000000 , 0x00004dbb 
+ 00024229  0x00005c08 fetch  0x00000004 , 0x00004dbc 
+ 00024230  0x00005c09 rshift3  0x0000003f , 0x0000003f 
+ 00024231  0x00005c0a store  0x00000004 , 0x00004dc8 
+ 00024232  0x00005c0c call  0x00005ee5 
+ 00024233  0x00005c0e fetch  0x00000004 , 0x00004dbc 
+ 00024234  0x00005c0f rshift  0x0000003f , 0x0000003f 
+ 00024235  0x00005c10 store  0x00000004 , 0x00004dbc 
+ 00024236  0x00005c12 call  0x00005ef3 
+ 00024237  0x00005c14 fetch  0x00000004 , 0x00004dbc 
+ 00024238  0x00005c15 rshift  0x0000003f , 0x0000003f 
+ 00024239  0x00005c16 store  0x00000004 , 0x00004dbc 
+ 00024240  0x00005c18 call  0x00005efb 
+ 00024241  0x00005c1a call  0x00005f03 
+ 00024242  0x00005c1c call  0x00005f0e 
+ 00024243  0x00005c1e fetch  0x00000001 , 0x00004dbb 
+ 00024244  0x00005c1f fetcht  0x00000001 , 0x00004dba 
+ 00024245  0x00005c20 ior  0x00000002 , 0x0000003f 
+ 00024246  0x00005c21 store  0x00000001 , 0x00004dbb 
+ 00024247  0x00005c23 fetch  0x00000001 , 0x00004dbb 
+ 00024248  0x00005c24 arg  0x00004c39 , 0x00000002 
+ 00024249  0x00005c25 iadd  0x00000002 , 0x00000002 
+ 00024250  0x00005c26 ifetch  0x00000001 , 0x00000002 
+ 00024251  0x00005c27 call  0x00005f49 
+ 00024252  0x00005c28 fetcht  0x00000004 , 0x00004dc4 
+ 00024253  0x00005c29 iadd  0x00000002 , 0x0000003f 
+ 00024254  0x00005c2a store  0x00000004 , 0x00004dc4 
+ 00024255  0x00005c2c call  0x00005f1b 
+ 00024256  0x00005c2d call  0x00005f20 
+ 00024257  0x00005c2f fetch  0x00000004 , 0x00004dc4 
+ 00024258  0x00005c30 lshift2  0x0000003f , 0x0000003f 
+ 00024259  0x00005c31 arg  0x00004c49 , 0x00000002 
+ 00024260  0x00005c32 iadd  0x00000002 , 0x00000002 
+ 00024261  0x00005c33 ifetch  0x00000004 , 0x00000002 
+ 00024262  0x00005c34 store  0x00000004 , 0x00004dbc 
+ 00024263  0x00005c36 call  0x00005f2a 
+ 00024264  0x00005c38 fetch  0x00000001 , 0x00004dd0 
+ 00024265  0x00005c39 arg  0x00000001 , 0x00000002 
+ 00024266  0x00005c3a ixor  0x00000002 , 0x0000003f 
+ 00024267  0x00005c3b store  0x00000001 , 0x00004dd0 
+ 00024268  0x00005c3d fetch  0x00000001 , 0x00004db5 
+ 00024269  0x00005c3e increase  0xffffffff , 0x0000003f 
+ 00024270  0x00005c3f store  0x00000001 , 0x00004db5 
+ 00024271  0x00005c40 nbranch  0x00005e9d , 0x00000034 
+ 00024272  0x00005c43 fetch  0x00000001 , 0x00004dd0 
+ 00024273  0x00005c44 call  0x00005f3a , 0x00000034 
+ 00024274  0x00005c46 fetch  0x00000004 , 0x00004dc0 
+ 00024275  0x00005c47 store  0x00000004 , 0x00004dad 
+ 00024276  0x00005c49 fetch  0x00000004 , 0x00004dc4 
+ 00024277  0x00005c4a store  0x00000004 , 0x00004db1 
+ 00024278  0x00005c4b rtn 
+ 00024279  0x00005c4f fetch  0x00000004 , 0x00004dd9 
+ 00024280  0x00005c50 bbit1  0x0000001f , 0x00005edc 
+ 00024281  0x00005c51 setarg  0x00000000 
+ 00024282  0x00005c53 store  0x00000001 , 0x00004dba 
+ 00024283  0x00005c54 rtn 
+ 00024284  0x00005c57 setarg  0x00000008 
+ 00024285  0x00005c58 branch  0x00005eda 
+ 00024286  0x00005c5b fetch  0x00000001 , 0x00004dba 
+ 00024287  0x00005c5c nbranch  0x00005ee1 , 0x00000034 
+ 00024288  0x00005c5d rtn 
+ 00024289  0x00005c60 fetch  0x00000004 , 0x00004dd9 
+ 00024290  0x00005c61 sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00024291  0x00005c62 store  0x00000004 , 0x00004dd9 
+ 00024292  0x00005c63 rtn 
+ 00024293  0x00005c66 fetch  0x00000004 , 0x00004dd9 
+ 00024294  0x00005c67 fetcht  0x00000004 , 0x00004dbc 
+ 00024295  0x00005c68 isub  0x00000002 , 0x0000003f 
+ 00024296  0x00005c69 rtnbit1  0x0000001f 
+ 00024297  0x00005c6a jam  0x00000004 , 0x00004dbb 
+ 00024298  0x00005c6c fetch  0x00000004 , 0x00004dd9 
+ 00024299  0x00005c6d fetcht  0x00000004 , 0x00004dbc 
+ 00024300  0x00005c6e isub  0x00000002 , 0x0000003f 
+ 00024301  0x00005c6f store  0x00000004 , 0x00004dd9 
+ 00024302  0x00005c71 fetch  0x00000004 , 0x00004dc8 
+ 00024303  0x00005c72 fetcht  0x00000004 , 0x00004dbc 
+ 00024304  0x00005c73 iadd  0x00000002 , 0x0000003f 
+ 00024305  0x00005c74 store  0x00000004 , 0x00004dc8 
+ 00024306  0x00005c75 rtn 
+ 00024307  0x00005c78 fetch  0x00000004 , 0x00004dd9 
+ 00024308  0x00005c79 fetcht  0x00000004 , 0x00004dbc 
+ 00024309  0x00005c7a isub  0x00000002 , 0x0000003f 
+ 00024310  0x00005c7b rtnbit1  0x0000001f 
+ 00024311  0x00005c7c fetch  0x00000001 , 0x00004dbb 
+ 00024312  0x00005c7d or  0x0000003f , 0x00000002 , 0x0000003f 
+ 00024313  0x00005c7e store  0x00000001 , 0x00004dbb 
+ 00024314  0x00005c7f branch  0x00005eea 
+ 00024315  0x00005c82 fetch  0x00000004 , 0x00004dd9 
+ 00024316  0x00005c83 fetcht  0x00000004 , 0x00004dbc 
+ 00024317  0x00005c84 isub  0x00000002 , 0x0000003f 
+ 00024318  0x00005c85 rtnbit1  0x0000001f 
+ 00024319  0x00005c86 fetch  0x00000001 , 0x00004dbb 
+ 00024320  0x00005c87 or  0x0000003f , 0x00000001 , 0x0000003f 
+ 00024321  0x00005c88 store  0x00000001 , 0x00004dbb 
+ 00024322  0x00005c89 branch  0x00005eee 
+ 00024323  0x00005c8c fetch  0x00000001 , 0x00004dba 
+ 00024324  0x00005c8d branch  0x00005f0a , 0x00000034 
+ 00024325  0x00005c8f fetch  0x00000004 , 0x00004dc0 
+ 00024326  0x00005c90 fetcht  0x00000004 , 0x00004dc8 
+ 00024327  0x00005c91 isub  0x00000002 , 0x0000003f 
+ 00024328  0x00005c93 store  0x00000004 , 0x00004dc0 
+ 00024329  0x00005c94 rtn 
+ 00024330  0x00005c97 fetch  0x00000004 , 0x00004dc0 
+ 00024331  0x00005c98 fetcht  0x00000004 , 0x00004dc8 
+ 00024332  0x00005c99 iadd  0x00000002 , 0x0000003f 
+ 00024333  0x00005c9a branch  0x00005f08 
+ 00024334  0x00005c9d fetch  0x00000004 , 0x00004dc0 
+ 00024335  0x00005c9e arg  0x00007fff , 0x00000002 
+ 00024336  0x00005c9f isub  0x00000002 , 0x0000003f 
+ 00024337  0x00005ca0 bbit0  0x0000001f , 0x00005f17 
+ 00024338  0x00005ca2 fetch  0x00000004 , 0x00004dc0 
+ 00024339  0x00005ca3 arg  0xffff8001 , 0x00000002 
+ 00024340  0x00005ca4 isub  0x00000002 , 0x0000003f 
+ 00024341  0x00005ca5 bbit1  0x0000001f , 0x00005f19 
+ 00024342  0x00005ca6 rtn 
+ 00024343  0x00005ca9 setarg  0x00007fff 
+ 00024344  0x00005caa branch  0x00005f08 
+ 00024345  0x00005cad setarg  0xffff8001 
+ 00024346  0x00005cae branch  0x00005f08 
+ 00024347  0x00005cb1 fetch  0x00000004 , 0x00004dc4 
+ 00024348  0x00005cb2 arg  0x00000000 , 0x00000002 
+ 00024349  0x00005cb3 isub  0x00000002 , 0x0000003f 
+ 00024350  0x00005cb4 bbit1  0x0000001f , 0x00005f25 
+ 00024351  0x00005cb5 rtn 
+ 00024352  0x00005cb8 fetch  0x00000004 , 0x00004dc4 
+ 00024353  0x00005cb9 arg  0x00000058 , 0x00000002 
+ 00024354  0x00005cba isub  0x00000002 , 0x0000003f 
+ 00024355  0x00005cbb bbit0  0x0000001f , 0x00005f28 
+ 00024356  0x00005cbc rtn 
+ 00024357  0x00005cbf setarg  0x00000000 
+ 00024358  0x00005cc1 store  0x00000004 , 0x00004dc4 
+ 00024359  0x00005cc2 rtn 
+ 00024360  0x00005cc5 setarg  0x00000058 
+ 00024361  0x00005cc6 branch  0x00005f26 
+ 00024362  0x00005cc9 fetch  0x00000001 , 0x00004dd0 
+ 00024363  0x00005cca branch  0x00005f30 , 0x00000034 
+ 00024364  0x00005ccc fetch  0x00000001 , 0x00004dbb 
+ 00024365  0x00005ccd and  0x0000003f , 0x0000000f , 0x0000003f 
+ 00024366  0x00005cce store  0x00000004 , 0x00004dd5 
+ 00024367  0x00005ccf rtn 
+ 00024368  0x00005cd3 fetch  0x00000001 , 0x00004dbb 
+ 00024369  0x00005cd4 lshift4 , 0x0000003f , 0x0000003f 
+ 00024370  0x00005cd5 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00024371  0x00005cd6 fetcht  0x00000004 , 0x00004dd5 
+ 00024372  0x00005cd7 ior  0x00000002 , 0x0000003f 
+ 00024373  0x00005cd9 fetcht  0x00000002 , 0x00004db8 
+ 00024374  0x00005cda istore  0x00000001 , 0x00000002 
+ 00024375  0x00005cdb increase  0x00000001 , 0x00000002 
+ 00024376  0x00005cdc storet  0x00000002 , 0x00004db8 
+ 00024377  0x00005cdd rtn 
+ 00024378  0x00005ce0 fetch  0x00000004 , 0x00004dd5 
+ 00024379  0x00005ce1 branch  0x00005f35 
+ 00024380  0x00005ce8 fetcht  0x00000002 , 0x00004db6 
+ 00024381  0x00005ce9 ifetch  0x00000002 , 0x00000002 
+ 00024382  0x00005cea increase  0x00000002 , 0x00000002 
+ 00024383  0x00005ceb storet  0x00000002 , 0x00004db6 
+ 00024384  0x00005cec call  0x00005f43 
+ 00024385  0x00005ced store  0x00000004 , 0x00004dd1 
+ 00024386  0x00005cee rtn 
+ 00024387  0x00005cf1 bbit1  0x0000000f , 0x00005f45 
+ 00024388  0x00005cf2 rtn 
+ 00024389  0x00005cf5 arg  0x0000ffff , 0x00000002 
+ 00024390  0x00005cf6 lshift16  0x00000002 , 0x00000002 
+ 00024391  0x00005cf8 ixor  0x00000002 , 0x0000003f 
+ 00024392  0x00005cf9 rtn 
+ 00024393  0x00005cfd bbit1  0x00000007 , 0x00005f4b 
+ 00024394  0x00005cfe rtn 
+ 00024395  0x00005d00 arg  0x00ffffff , 0x00000002 
+ 00024396  0x00005d01 lshift8  0x00000002 , 0x00000002 
+ 00024397  0x00005d02 branch  0x00005f47 
+ 00024398  0x00005d0a arg  0x00000014 , 0x00000011 
+ 00024399  0x00005d0b fetcht  0x00000002 , 0x00004df4 
+ 00024400  0x00005d0d call  0x00002dcc 
+ 00024401  0x00005d0e arg  0x00004dde , 0x00000006 
+ 00024402  0x00005d0f arg  0x00000014 , 0x00000039 
+ 00024403  0x00005d10 branch  0x00007cdc 
+ 00024404  0x00005d13 jam  0x00000001 , 0x0000064e 
+ 00024405  0x00005d15 jam  0x00000001 , 0x00004c0a 
+ 00024406  0x00005d16 fetcht  0x00000002 , 0x00004df8 
+ 00024407  0x00005d17 branch  0x00005d94 
+ 00024408  0x00005d1a jam  0x00000000 , 0x0000064e 
+ 00024409  0x00005d1b branch  0x00005f55 
+ 00024410  0x00005d1f arg  0x00000014 , 0x00000011 
+ 00024411  0x00005d20 fetcht  0x00000002 , 0x00004df6 
+ 00024412  0x00005d21 branch  0x00005f50 
+ 00024413  0x00005d24 setarg  0x00000221 
+ 00024414  0x00005d26 store  0x00000003 , 0x0000064e 
+ 00024415  0x00005d27 jam  0x00000003 , 0x00004c0a 
+ 00024416  0x00005d28 fetcht  0x00000002 , 0x00004dfa 
+ 00024417  0x00005d29 branch  0x00005d94 
+ 00024418  0x00005d2c setarg  0x0000cccc 
+ 00024419  0x00005d2d branch  0x00005f5e 
+ 00024420  0x00005d3c bpatch  0x000000bb , 0x00004017 
+ 00024421  0x00005d3d copy  0x00000011 , 0x00000006 
+ 00024422  0x00005d3e ifetch  0x00000001 , 0x00000006 
+ 00024423  0x00005d3f rtnne  0x000000ba 
+ 00024424  0x00005d40 ifetch  0x00000001 , 0x00000006 
+ 00024425  0x00005d41 store  0x00000001 , 0x00004e51 
+ 00024426  0x00005d42 beq  0x00000010 , 0x00005f77 
+ 00024427  0x00005d43 beq  0x00000011 , 0x00005f7f 
+ 00024428  0x00005d44 beq  0x00000015 , 0x00005f86 
+ 00024429  0x00005d45 beq  0x00000016 , 0x00005fb2 
+ 00024430  0x00005d46 beq  0x00000017 , 0x00005fbf 
+ 00024431  0x00005d47 beq  0x00000018 , 0x00005fcd 
+ 00024432  0x00005d49 setarg  0xffffffff 
+ 00024433  0x00005d4a store  0x00000002 , 0x00004e35 
+ 00024434  0x00005d4b setarg  0x00000000 
+ 00024435  0x00005d4c store  0x00000004 , 0x00004e43 
+ 00024436  0x00005d4d store  0x00000002 , 0x00004e37 
+ 00024437  0x00005d4e jam  0x00000000 , 0x00004e52 
+ 00024438  0x00005d4f rtn 
+ 00024439  0x00005d52 arg  0x00000005 , 0x00000011 
+ 00024440  0x00005d53 call  0x00005fc4 
+ 00024441  0x00005d54 fetch  0x00000002 , 0x00004e48 
+ 00024442  0x00005d55 istore  0x00000002 , 0x00000005 
+ 00024443  0x00005d56 jam  0x00000001 , 0x00004e65 
+ 00024444  0x00005d57 fetch  0x00000008 , 0x00004e5c 
+ 00024445  0x00005d58 store  0x00000008 , 0x000042d5 
+ 00024446  0x00005d59 branch  0x00002e71 
+ 00024447  0x00005d5c arg  0x00000007 , 0x00000011 
+ 00024448  0x00005d5d call  0x00005fc4 
+ 00024449  0x00005d5e fetch  0x00000002 , 0x00004e4a 
+ 00024450  0x00005d5f istore  0x00000002 , 0x00000005 
+ 00024451  0x00005d60 fetch  0x00000002 , 0x00004e4c 
+ 00024452  0x00005d61 istore  0x00000002 , 0x00000005 
+ 00024453  0x00005d62 rtn 
+ 00024454  0x00005d65 ifetch  0x00000001 , 0x00000006 
+ 00024455  0x00005d66 store  0x00000001 , 0x00004e47 
+ 00024456  0x00005d67 beq  0x00000000 , 0x00005f92 
+ 00024457  0x00005d69 arg  0x00000004 , 0x00000011 
+ 00024458  0x00005d6a jam  0x00000003 , 0x00004e52 
+ 00024459  0x00005d6b call  0x00005fc5 
+ 00024460  0x00005d6c fetch  0x00000001 , 0x00004e47 
+ 00024461  0x00005d6d branch  0x00007dce 
+ 00024462  0x00005d71 arg  0x00000004 , 0x00000011 
+ 00024463  0x00005d72 call  0x00005fc4 
+ 00024464  0x00005d73 fetch  0x00000001 , 0x00004e47 
+ 00024465  0x00005d74 branch  0x00007dce 
+ 00024466  0x00005d78 call  0x00005f8e 
+ 00024467  0x00005d79 call  0x00005f70 
+ 00024468  0x00005d7a setarg  0x00000000 
+ 00024469  0x00005d7b store  0x00000003 , 0x00004e6b 
+ 00024470  0x00005d7c jam  0x00000001 , 0x00004e66 
+ 00024471  0x00005d7d setarg  0x00000000 
+ 00024472  0x00005d7e arg  0x00000010 , 0x00000002 
+ 00024473  0x00005d7f arg  0x00000c8c , 0x00000011 
+ 00024474  0x00005d80 call  0x00006c43 
+ 00024475  0x00005d81 call  0x00005fa8 
+ 00024476  0x00005d82 fetchr  0x00000011 , 0x00000003 , 0x00004e68 
+ 00024477  0x00005d83 arg  0x00000009 , 0x00000039 
+ 00024478  0x00005d85 force  0x00000000 , 0x00000038 
+ 00024479  0x00005d87 call  0x0000608e 
+ 00024480  0x00005d88 storer  0x00000011 , 0x00000003 , 0x00004430 
+ 00024481  0x00005d89 call  0x0000609f 
+ 00024482  0x00005d8a call  0x00006bee 
+ 00024483  0x00005d8b call  0x000060a1 
+ 00024484  0x00005d8c setarg  0x00001000 
+ 00024485  0x00005d8d iadd  0x00000011 , 0x00000011 
+ 00024486  0x00005d8e loop  0x00005f9f 
+ 00024487  0x00005d8f rtn 
+ 00024488  0x00005d92 bpatchx  0x000000f1 , 0x0000403e 
+ 00024489  0x00005d93 fetcht  0x00000003 , 0x00004e75 
+ 00024490  0x00005d94 storet  0x00000003 , 0x00004e68 
+ 00024491  0x00005d95 storet  0x00000003 , 0x00004e40 
+ 00024492  0x00005d96 fetch  0x00000001 , 0x00000c8c 
+ 00024493  0x00005d97 rtneq  0x00000060 
+ 00024494  0x00005d98 fetcht  0x00000003 , 0x00004e72 
+ 00024495  0x00005d99 storet  0x00000003 , 0x00004e68 
+ 00024496  0x00005d9a storet  0x00000003 , 0x00004e40 
+ 00024497  0x00005d9b rtn 
+ 00024498  0x00005da0 fetcht  0x00000002 , 0x00004337 
+ 00024499  0x00005da1 increase  0xfffffff8 , 0x00000002 
+ 00024500  0x00005da2 fetch  0x00000002 , 0x00004e37 
+ 00024501  0x00005da3 iadd  0x00000002 , 0x0000003f 
+ 00024502  0x00005da4 store  0x00000002 , 0x00004e37 
+ 00024503  0x00005da5 copy  0x00000002 , 0x00000039 
+ 00024504  0x00005da6 copy  0x00000011 , 0x00000006 
+ 00024505  0x00005da7 increase  0x00000005 , 0x00000006 
+ 00024506  0x00005da8 call  0x00006052 
+ 00024507  0x00005da9 fetch  0x00000002 , 0x00004e35 
+ 00024508  0x00005daa increase  0x00000001 , 0x0000003f 
+ 00024509  0x00005dab store  0x00000002 , 0x00004e35 
+ 00024510  0x00005dac rtn 
+ 00024511  0x00005daf call  0x00005fb2 
+ 00024512  0x00005db0 jam  0x00000000 , 0x00004e52 
+ 00024513  0x00005db1 jam  0x00000017 , 0x00004e51 
+ 00024514  0x00005db2 arg  0x00000003 , 0x00000011 
+ 00024515  0x00005db3 branch  0x00005fc5 
+ 00024516  0x00005db6 jam  0x00000000 , 0x00004e52 
+ 00024517  0x00005db9 fetcht  0x00000002 , 0x00004e4f 
+ 00024518  0x00005dba call  0x00002dcc 
+ 00024519  0x00005dbb setarg  0x000000ab 
+ 00024520  0x00005dbc istore  0x00000001 , 0x00000005 
+ 00024521  0x00005dbd fetch  0x00000001 , 0x00004e52 
+ 00024522  0x00005dbe istore  0x00000001 , 0x00000005 
+ 00024523  0x00005dbf fetch  0x00000001 , 0x00004e51 
+ 00024524  0x00005dc0 branch  0x00007dce 
+ 00024525  0x00005dc3 force  0x00000000 , 0x00000038 
+ 00024526  0x00005dc4 call  0x00006097 
+ 00024527  0x00005dc5 call  0x00005ff2 
+ 00024528  0x00005dc6 jam  0x00000000 , 0x00004e66 
+ 00024529  0x00005dc7 setarg  0x00000000 
+ 00024530  0x00005dc8 store  0x00000003 , 0x00004e6b 
+ 00024531  0x00005dc9 store  0x00000004 , 0x00004e43 
+ 00024532  0x00005dca call  0x00006007 
+ 00024533  0x00005dcb call  0x00006099 
+ 00024534  0x00005dcc increase  0x00000001 , 0x00000006 
+ 00024535  0x00005dcd ifetch  0x00000004 , 0x00000006 
+ 00024536  0x00005dce store  0x00000004 , 0x0000064e 
+ 00024537  0x00005dcf ifetch  0x00000004 , 0x00000006 
+ 00024538  0x00005dd0 store  0x00000004 , 0x00000652 
+ 00024539  0x00005dd2 fetch  0x00000004 , 0x0000064e 
+ 00024540  0x00005dd3 fetcht  0x00000004 , 0x00004e37 
+ 00024541  0x00005dd4 isub  0x00000002 , 0x0000003e 
+ 00024542  0x00005dd5 nbranch  0x00005fee , 0x00000005 
+ 00024543  0x00005dd7 fetch  0x00000004 , 0x00004e43 
+ 00024544  0x00005dd8 fetcht  0x00000004 , 0x00000652 
+ 00024545  0x00005dd9 isub  0x00000002 , 0x0000003e 
+ 00024546  0x00005dda nbranch  0x00005ff0 , 0x00000005 
+ 00024547  0x00005ddb call  0x00006070 
+ 00024548  0x00005ddc jam  0x00000002 , 0x00004e64 
+ 00024549  0x00005dde arg  0x0000000c , 0x00000011 
+ 00024550  0x00005ddf call  0x00005fc5 
+ 00024551  0x00005de0 fetch  0x00000001 , 0x00004e47 
+ 00024552  0x00005de1 istore  0x00000001 , 0x00000005 
+ 00024553  0x00005de2 fetch  0x00000004 , 0x00004e37 
+ 00024554  0x00005de3 istore  0x00000004 , 0x00000005 
+ 00024555  0x00005de4 fetch  0x00000004 , 0x00004e43 
+ 00024556  0x00005de5 istore  0x00000004 , 0x00000005 
+ 00024557  0x00005de6 rtn 
+ 00024558  0x00005de9 jam  0x00000005 , 0x00004e52 
+ 00024559  0x00005dea branch  0x00005fe5 
+ 00024560  0x00005ded jam  0x00000007 , 0x00004e52 
+ 00024561  0x00005dee rtn 
+ 00024562  0x00005df1 fetch  0x00000001 , 0x00004e66 
+ 00024563  0x00005df2 rtn  0x00000034 
+ 00024564  0x00005df3 call  0x00006001 
+ 00024565  0x00005df4 rtn  0x00000002 
+ 00024566  0x00005df5 fetcht  0x00000002 , 0x00004e6e 
+ 00024567  0x00005df6 call  0x000060a7 
+ 00024568  0x00005df7 copy  0x00000002 , 0x00000039 
+ 00024569  0x00005df8 arg  0x00000c8c , 0x00000005 
+ 00024570  0x00005df9 call  0x00006061 
+ 00024571  0x00005dfa call  0x0000608e 
+ 00024572  0x00005dfb call  0x000060a9 
+ 00024573  0x00005dfc call  0x000060a7 
+ 00024574  0x00005dfd call  0x00006041 
+ 00024575  0x00005dfe call  0x000060a9 
+ 00024576  0x00005dff branch  0x0000603d 
+ 00024577  0x00005e02 fetch  0x00000002 , 0x00004e6e 
+ 00024578  0x00005e03 arg  0x00000100 , 0x00000002 
+ 00024579  0x00005e04 isub  0x00000002 , 0x0000003e 
+ 00024580  0x00005e05 rtn 
+ 00024581  0x00005e09 arg  0x00000100 , 0x00000039 
+ 00024582  0x00005e0a branch  0x00006017 
+ 00024583  0x00005e0d fetch  0x00000002 , 0x00004e37 
+ 00024584  0x00005e0e fetcht  0x00000002 , 0x00004e6b 
+ 00024585  0x00005e0f isub  0x00000002 , 0x0000003f 
+ 00024586  0x00005e10 rtn  0x00000005 
+ 00024587  0x00005e11 call  0x00005d15 
+ 00024588  0x00005e12 call  0x0000601d 
+ 00024589  0x00005e13 call  0x00005d18 
+ 00024590  0x00005e14 call  0x00006013 
+ 00024591  0x00005e15 fetch  0x00000004 , 0x00004e43 
+ 00024592  0x00005e16 iadd  0x00000002 , 0x0000003f 
+ 00024593  0x00005e17 store  0x00000004 , 0x00004e43 
+ 00024594  0x00005e18 branch  0x00006007 
+ 00024595  0x00005e1b arg  0x00000100 , 0x00000002 
+ 00024596  0x00005e1c isub  0x00000002 , 0x0000003e 
+ 00024597  0x00005e1d branch  0x00006005 , 0x00000002 
+ 00024598  0x00005e1e copy  0x0000003f , 0x00000039 
+ 00024599  0x00005e20 arg  0x00000c8c , 0x00000006 
+ 00024600  0x00005e21 arg  0x00000000 , 0x00000002 
+ 00024601  0x00005e23 ifetch  0x00000001 , 0x00000006 
+ 00024602  0x00005e24 iadd  0x00000002 , 0x00000002 
+ 00024603  0x00005e25 loop  0x00006019 
+ 00024604  0x00005e26 rtn 
+ 00024605  0x00005e29 arg  0x00000100 , 0x00000002 
+ 00024606  0x00005e2a isub  0x00000002 , 0x0000003e 
+ 00024607  0x00005e2b branch  0x0000602b , 0x00000002 
+ 00024608  0x00005e2c call  0x00005d15 
+ 00024609  0x00005e2d copy  0x0000003f , 0x00000039 
+ 00024610  0x00005e2e call  0x00006026 
+ 00024611  0x00005e2f call  0x00005d18 
+ 00024612  0x00005e30 copy  0x0000003f , 0x00000002 
+ 00024613  0x00005e31 branch  0x0000603d 
+ 00024614  0x00005e34 fetch  0x00000003 , 0x00004e68 
+ 00024615  0x00005e35 fetchr  0x00000012 , 0x00000003 , 0x00004e6b 
+ 00024616  0x00005e36 iadd  0x00000012 , 0x0000003f 
+ 00024617  0x00005e37 arg  0x00000c8c , 0x00000011 
+ 00024618  0x00005e38 branch  0x00006c43 
+ 00024619  0x00005e3b arg  0x00000100 , 0x00000002 
+ 00024620  0x00005e3c call  0x00006026 
+ 00024621  0x00005e3d arg  0x00000100 , 0x00000002 
+ 00024622  0x00005e3e branch  0x0000603d 
+ 00024623  0x00005e42 fetch  0x00000001 , 0x00004e66 
+ 00024624  0x00005e43 ncall  0x00006032 , 0x00000034 
+ 00024625  0x00005e44 rtn 
+ 00024626  0x00005e47 fetch  0x00000001 , 0x00004e66 
+ 00024627  0x00005e48 rtn  0x00000034 
+ 00024628  0x00005e49 call  0x00006001 
+ 00024629  0x00005e4a nrtn  0x00000002 
+ 00024630  0x00005e4b arg  0x00000100 , 0x00000039 
+ 00024631  0x00005e4c arg  0x00000c8c , 0x00000005 
+ 00024632  0x00005e4d call  0x00006061 
+ 00024633  0x00005e4e call  0x0000608e 
+ 00024634  0x00005e4f arg  0x00000100 , 0x00000002 
+ 00024635  0x00005e50 call  0x00006041 
+ 00024636  0x00005e51 arg  0x00000100 , 0x00000002 
+ 00024637  0x00005e53 fetch  0x00000002 , 0x00004e6b 
+ 00024638  0x00005e54 iadd  0x00000002 , 0x0000003f 
+ 00024639  0x00005e55 store  0x00000002 , 0x00004e6b 
+ 00024640  0x00005e56 rtn 
+ 00024641  0x00005e59 fetch  0x00000003 , 0x00004e68 
+ 00024642  0x00005e5a fetchr  0x00000012 , 0x00000003 , 0x00004e6b 
+ 00024643  0x00005e5b iadd  0x00000012 , 0x0000003f 
+ 00024644  0x00005e5c arg  0x00000c8c , 0x00000011 
+ 00024645  0x00005e5d branch  0x00006c29 
+ 00024646  0x00005e61 setarg  0x000006ef 
+ 00024647  0x00005e62 fetcht  0x00000002 , 0x00004e70 
+ 00024648  0x00005e64 increase  0xffffffff , 0x00000002 
+ 00024649  0x00005e65 copy  0x0000003f , 0x00000005 
+ 00024650  0x00005e66 increase  0xfffffff8 , 0x00000005 
+ 00024651  0x00005e67 istore  0x00000002 , 0x00000005 
+ 00024652  0x00005e68 iadd  0x00000002 , 0x0000003f 
+ 00024653  0x00005e69 istore  0x00000002 , 0x00000005 
+ 00024654  0x00005e6a isub  0x00000002 , 0x0000003f 
+ 00024655  0x00005e6b istore  0x00000002 , 0x00000005 
+ 00024656  0x00005e6c istore  0x00000002 , 0x00000005 
+ 00024657  0x00005e6d rtn 
+ 00024658  0x00005e70 call  0x00006097 
+ 00024659  0x00005e71 bpatch  0x000000bc , 0x00004017 
+ 00024660  0x00005e72 fetch  0x00000002 , 0x00004e6e 
+ 00024661  0x00005e73 iadd  0x00000039 , 0x0000003f 
+ 00024662  0x00005e74 store  0x00000002 , 0x00004e6e 
+ 00024663  0x00005e75 setarg  0x000006ef 
+ 00024664  0x00005e76 call  0x000060ac 
+ 00024665  0x00005e77 call  0x00006099 
+ 00024666  0x00005e78 call  0x000060c0 
+ 00024667  0x00005e79 fetch  0x00000002 , 0x00004e6e 
+ 00024668  0x00005e7a fetcht  0x00000002 , 0x00004e70 
+ 00024669  0x00005e7b isub  0x00000002 , 0x0000003e 
+ 00024670  0x00005e7c call  0x00006060 , 0x00000002 
+ 00024671  0x00005e7d rtn 
+ 00024672  0x00005e7f rtn 
+ 00024673  0x00005e82 call  0x0000609b 
+ 00024674  0x00005e83 fetch  0x00000002 , 0x00004e6e 
+ 00024675  0x00005e84 isub  0x00000039 , 0x0000003f 
+ 00024676  0x00005e85 store  0x00000002 , 0x00004e6e 
+ 00024677  0x00005e86 setarg  0x000006ef 
+ 00024678  0x00005e87 call  0x000060b6 
+ 00024679  0x00005e88 call  0x0000609d 
+ 00024680  0x00005e8a copy  0x00000003 , 0x0000003f 
+ 00024681  0x00005e8b isub  0x00000002 , 0x0000003e 
+ 00024682  0x00005e8c branch  0x0000233e , 0x00000005 
+ 00024683  0x00005e8e ifetch  0x00000001 , 0x00000003 
+ 00024684  0x00005e8f istore  0x00000001 , 0x00000005 
+ 00024685  0x00005e90 loop  0x0000606b 
+ 00024686  0x00005e91 istorer  0x00000003 , 0x00000002 , 0x00000011 
+ 00024687  0x00005e92 rtn 
+ 00024688  0x00005e95 call  0x00006079 
+ 00024689  0x00005e96 setarg  0x00000000 
+ 00024690  0x00005e97 call  0x00006085 
+ 00024691  0x00005e99 bpatch  0x000000bd , 0x00004017 
+ 00024692  0x00005e9a fetch  0x00000001 , 0x00000c8c 
+ 00024693  0x00005e9b beq  0x00000060 , 0x0000607d 
+ 00024694  0x00005e9c beq  0x000000f0 , 0x00006077 
+ 00024695  0x00005e9e fetch  0x00000003 , 0x00004e72 
+ 00024696  0x00005e9f branch  0x0000607e 
+ 00024697  0x00005ea2 setarg  0x00000000 
+ 00024698  0x00005ea3 arg  0x00000100 , 0x00000002 
+ 00024699  0x00005ea4 arg  0x00000c8c , 0x00000011 
+ 00024700  0x00005ea5 branch  0x00006c43 
+ 00024701  0x00005ea8 fetch  0x00000003 , 0x00004e75 
+ 00024702  0x00005eaa increase  0x00000002 , 0x0000003f 
+ 00024703  0x00005eab byteswap  0x0000003f , 0x0000003f 
+ 00024704  0x00005eac store  0x00000002 , 0x00000c8c 
+ 00024705  0x00005ead arg  0x00000100 , 0x00000002 
+ 00024706  0x00005eae arg  0x00000c8c , 0x00000011 
+ 00024707  0x00005eaf setarg  0x00000000 
+ 00024708  0x00005eb0 branch  0x00006c29 
+ 00024709  0x00005eb4 store  0x00000003 , 0x00004430 
+ 00024710  0x00005eb5 call  0x0000608e 
+ 00024711  0x00005eb6 call  0x00006c16 
+ 00024712  0x00005eb7 call  0x00006c1c 
+ 00024713  0x00005eb8 arg  0x000001bc , 0x00000011 
+ 00024714  0x00005eb9 jam  0x00000004 , 0x00008082 
+ 00024715  0x00005eba fetch  0x00000003 , 0x00004430 
+ 00024716  0x00005ebb arg  0x00000081 , 0x00000002 
+ 00024717  0x00005ebc branch  0x00006c36 
+ 00024718  0x00005ebf setarg  0x000001bc 
+ 00024719  0x00005ec0 store  0x00000002 , 0x00008084 
+ 00024720  0x00005ec1 setarg  0x000001c1 
+ 00024721  0x00005ec2 store  0x00000002 , 0x00008086 
+ 00024722  0x00005ec3 jam  0x00000000 , 0x00008083 
+ 00024723  0x00005ec4 setarg  0x00000005 
+ 00024724  0x00005ec5 call  0x00006bcd 
+ 00024725  0x00005ec6 bbit1  0x00000000 , 0x0000608e 
+ 00024726  0x00005ec7 rtn 
+ 00024727  0x00005eca copy  0x00000006 , 0x0000003f 
+ 00024728  0x00005ecb branch  0x00005d15 
+ 00024729  0x00005ece call  0x00005d18 
+ 00024730  0x00005ecf branch  0x00007c6a 
+ 00024731  0x00005ed2 copy  0x00000005 , 0x0000003f 
+ 00024732  0x00005ed3 branch  0x00005d15 
+ 00024733  0x00005ed6 call  0x00005d18 
+ 00024734  0x00005ed7 branch  0x00007c67 
+ 00024735  0x00005eda call  0x000060a5 
+ 00024736  0x00005edb branch  0x00005d10 
+ 00024737  0x00005ede call  0x00005d12 
+ 00024738  0x00005ee0 call  0x00005d18 
+ 00024739  0x00005ee1 copy  0x0000003f , 0x00000039 
+ 00024740  0x00005ee2 rtn 
+ 00024741  0x00005ee5 copy  0x00000039 , 0x0000003f 
+ 00024742  0x00005ee6 branch  0x00005d15 
+ 00024743  0x00005ee9 copy  0x00000002 , 0x0000003f 
+ 00024744  0x00005eea branch  0x00005d15 
+ 00024745  0x00005eed call  0x00005d18 
+ 00024746  0x00005eee copy  0x0000003f , 0x00000002 
+ 00024747  0x00005eef rtn 
+ 00024748  0x00005ef6 increase  0xfffffff8 , 0x0000003f 
+ 00024749  0x00005ef7 ifetchr  0x0000000a , 0x00000002 , 0x0000003f 
+ 00024750  0x00005ef8 increase  0x00000002 , 0x0000003f 
+ 00024751  0x00005ef9 ifetchr  0x00000010 , 0x00000002 , 0x0000003f 
+ 00024752  0x00005efa increase  0x00000002 , 0x0000003f 
+ 00024753  0x00005efb ifetchr  0x00000002 , 0x00000002 , 0x0000003f 
+ 00024754  0x00005efc increase  0x00000002 , 0x0000003f 
+ 00024755  0x00005efd ifetchr  0x00000003 , 0x00000002 , 0x0000003f 
+ 00024756  0x00005efe copy  0x0000003f , 0x00000011 
+ 00024757  0x00005eff rtn 
+ 00024758  0x00005f03 increase  0xfffffff8 , 0x0000003f 
+ 00024759  0x00005f04 ifetchr  0x0000000a , 0x00000002 , 0x0000003f 
+ 00024760  0x00005f05 increase  0x00000002 , 0x0000003f 
+ 00024761  0x00005f06 ifetchr  0x00000010 , 0x00000002 , 0x0000003f 
+ 00024762  0x00005f07 increase  0x00000002 , 0x0000003f 
+ 00024763  0x00005f08 ifetchr  0x00000003 , 0x00000002 , 0x0000003f 
+ 00024764  0x00005f09 copy  0x0000003f , 0x00000011 
+ 00024765  0x00005f0a increase  0x00000002 , 0x0000003f 
+ 00024766  0x00005f0b ifetchr  0x00000002 , 0x00000002 , 0x0000003f 
+ 00024767  0x00005f0c rtn 
+ 00024768  0x00005f11 ifetch  0x00000001 , 0x00000006 
+ 00024769  0x00005f12 istore  0x00000001 , 0x00000003 
+ 00024770  0x00005f13 loop  0x000060c0 
+ 00024771  0x00005f14 istorer  0x00000003 , 0x00000002 , 0x00000011 
+ 00024772  0x00005f15 copy  0x00000003 , 0x0000003f 
+ 00024773  0x00005f16 isub  0x00000002 , 0x0000003e 
+ 00024774  0x00005f17 branch  0x0000233e , 0x00000005 
+ 00024775  0x00005f18 rtn 
+ 00024776  0x00005f21 call  0x00007384 
+ 00024777  0x00005f22 rtn  0x0000002b 
+ 00024778  0x00005f24 setarg  0x00006143 
+ 00024779  0x00005f25 store  0x00000002 , 0x000043e4 
+ 00024780  0x00005f27 setarg  0x000060f3 
+ 00024781  0x00005f28 store  0x00000002 , 0x000043e6 
+ 00024782  0x00005f2a setarg  0x000061a7 
+ 00024783  0x00005f2b store  0x00000002 , 0x000043e8 
+ 00024784  0x00005f2d setarg  0x0000612a 
+ 00024785  0x00005f2e store  0x00000002 , 0x000043ec 
+ 00024786  0x00005f30 setarg  0x00006182 
+ 00024787  0x00005f31 store  0x00000002 , 0x0000453b 
+ 00024788  0x00005f33 call  0x000060dc 
+ 00024789  0x00005f35 bpatch  0x000000be , 0x00004017 
+ 00024790  0x00005f36 call  0x000061b3 
+ 00024791  0x00005f39 fetch  0x00000001 , 0x00004531 
+ 00024792  0x00005f3a beq  0x00000000 , 0x000060ea 
+ 00024793  0x00005f3b fetch  0x00000001 , 0x00004532 
+ 00024794  0x00005f3c store  0x00000001 , 0x00004503 
+ 00024795  0x00005f3d branch  0x000061be 
+ 00024796  0x00005f41 setarg  0x00006147 
+ 00024797  0x00005f42 store  0x00000002 , 0x000043de 
+ 00024798  0x00005f44 setarg  0x00006145 
+ 00024799  0x00005f45 store  0x00000002 , 0x000043e0 
+ 00024800  0x00005f47 setarg  0x0000615d 
+ 00024801  0x00005f48 store  0x00000002 , 0x00004536 
+ 00024802  0x00005f4a setarg  0x000061b7 
+ 00024803  0x00005f4b store  0x00000002 , 0x00004538 
+ 00024804  0x00005f4d jam  0x00000007 , 0x00004160 
+ 00024805  0x00005f4e call  0x00002948 
+ 00024806  0x00005f4f call  0x000061aa 
+ 00024807  0x00005f50 call  0x0000705b 
+ 00024808  0x00005f51 call  0x0000789d 
+ 00024809  0x00005f52 branch  0x0000779a 
+ 00024810  0x00005f57 jam  0x000000ff , 0x00004503 
+ 00024811  0x00005f58 jam  0x00000001 , 0x00004533 
+ 00024812  0x00005f59 branch  0x0000615d 
+ 00024813  0x00005f5e fetch  0x00000001 , 0x00004533 
+ 00024814  0x00005f5f beq  0x00000002 , 0x0000377d 
+ 00024815  0x00005f60 call  0x00006945 
+ 00024816  0x00005f61 fetch  0x00000001 , 0x00004458 
+ 00024817  0x00005f62 nbranch  0x0000377d , 0x00000034 
+ 00024818  0x00005f63 branch  0x0000377f 
+ 00024819  0x00005f68 copy  0x00000013 , 0x0000003f 
+ 00024820  0x00005f6b beq  0x00000014 , 0x000060fc 
+ 00024821  0x00005f6c beq  0x00000015 , 0x00006100 
+ 00024822  0x00005f6d beq  0x0000003f , 0x00006103 
+ 00024823  0x00005f6e beq  0x00000040 , 0x0000610b 
+ 00024824  0x00005f70 beq  0x00000010 , 0x000061d3 
+ 00024825  0x00005f71 beq  0x0000002c , 0x00006111 
+ 00024826  0x00005f72 beq  0x0000002d , 0x0000611c 
+ 00024827  0x00005f73 rtn 
+ 00024828  0x00005f79 call  0x0000614a 
+ 00024829  0x00005f7a setarg  0x00000000 
+ 00024830  0x00005f7b store  0x00000002 , 0x0000450f 
+ 00024831  0x00005f7c branch  0x0000379a 
+ 00024832  0x00005f7f call  0x0000789d 
+ 00024833  0x00005f80 jam  0x00000000 , 0x00004508 
+ 00024834  0x00005f81 branch  0x0000615d 
+ 00024835  0x00005f84 call  0x0000789d 
+ 00024836  0x00005f85 jam  0x00000001 , 0x00004508 
+ 00024837  0x00005f86 call  0x000065b3 
+ 00024838  0x00005f87 call  0x000037a0 
+ 00024839  0x00005f88 nbranch  0x0000632b , 0x00000034 
+ 00024840  0x00005f89 fetch  0x00000008 , 0x00004ecb 
+ 00024841  0x00005f8a store  0x00000008 , 0x000042d5 
+ 00024842  0x00005f8b branch  0x00002e71 
+ 00024843  0x00005f8f fetch  0x00000002 , 0x00004340 
+ 00024844  0x00005f90 rtneq  0x00000000 
+ 00024845  0x00005f91 fetch  0x00000008 , 0x00004521 
+ 00024846  0x00005f92 rtn  0x00000034 
+ 00024847  0x00005f93 store  0x00000008 , 0x000042d5 
+ 00024848  0x00005f94 branch  0x00002e71 
+ 00024849  0x00005f98 fetch  0x00000001 , 0x00004531 
+ 00024850  0x00005f99 rtneq  0x00000000 
+ 00024851  0x00005f9a fetch  0x00000001 , 0x00004533 
+ 00024852  0x00005f9b rtnne  0x00000001 
+ 00024853  0x00005f9c call  0x00006117 
+ 00024854  0x00005f9d branch  0x00003798 
+ 00024855  0x00005fa0 jam  0x00000001 , 0x0000469c 
+ 00024856  0x00005fa1 arg  0x0000000b , 0x00000039 
+ 00024857  0x00005fa2 arg  0x0000469d , 0x00000005 
+ 00024858  0x00005fa3 arg  0x00004686 , 0x00000006 
+ 00024859  0x00005fa4 branch  0x00007cdc 
+ 00024860  0x00005fa7 fetch  0x00000001 , 0x00004531 
+ 00024861  0x00005fa8 rtneq  0x00000000 
+ 00024862  0x00005fa9 fetch  0x00000001 , 0x00004533 
+ 00024863  0x00005faa beq  0x00000001 , 0x00006121 
+ 00024864  0x00005fab branch  0x000061cf 
+ 00024865  0x00005fae fetch  0x00000001 , 0x0000469c 
+ 00024866  0x00005faf rtnne  0x00000001 
+ 00024867  0x00005fb0 jam  0x00000000 , 0x0000469c 
+ 00024868  0x00005fb1 fetch  0x00000002 , 0x00004500 
+ 00024869  0x00005fb2 bbit1  0x00000009 , 0x0000379a 
+ 00024870  0x00005fb3 arg  0x0000000b , 0x00000039 
+ 00024871  0x00005fb4 arg  0x0000469d , 0x00000006 
+ 00024872  0x00005fb5 arg  0x00004686 , 0x00000005 
+ 00024873  0x00005fb6 branch  0x00007cdc 
+ 00024874  0x00005fbd call  0x0000612d 
+ 00024875  0x00005fc0 call  0x00006134 
+ 00024876  0x00005fc4 branch  0x0000613e 
+ 00024877  0x00005fc9 arg  0x0000452f , 0x00000013 
+ 00024878  0x00005fca arg  0x00006130 , 0x00000012 
+ 00024879  0x00005fcb branch  0x0000375c 
+ 00024880  0x00005fcd jam  0x00000002 , 0x00004533 
+ 00024881  0x00005fce call  0x0000379a 
+ 00024882  0x00005fcf call  0x0000616b 
+ 00024883  0x00005fd0 branch  0x000061bb 
+ 00024884  0x00005fd4 arg  0x000046a9 , 0x00000013 
+ 00024885  0x00005fd5 arg  0x00006137 , 0x00000012 
+ 00024886  0x00005fd6 branch  0x00003755 
+ 00024887  0x00005fd9 fetch  0x00000002 , 0x00004500 
+ 00024888  0x00005fda bbit1  0x00000009 , 0x000061bb 
+ 00024889  0x00005fdb fetch  0x00000001 , 0x00004686 
+ 00024890  0x00005fdc beq  0x00000001 , 0x000061bb 
+ 00024891  0x00005fdd beq  0x00000004 , 0x000061bb 
+ 00024892  0x00005fde beq  0x00000005 , 0x000061bb 
+ 00024893  0x00005fdf branch  0x0000379c 
+ 00024894  0x00005fe4 fetch  0x00000001 , 0x00004533 
+ 00024895  0x00005fe5 rtnne  0x00000001 
+ 00024896  0x00005fe6 arg  0x0000450f , 0x00000013 
+ 00024897  0x00005fe7 arg  0x0000614e , 0x00000012 
+ 00024898  0x00005fe8 branch  0x0000375c 
+ 00024899  0x00005fec call  0x00006193 
+ 00024900  0x00005fed branch  0x0000708b 
+ 00024901  0x00005ff1 call  0x00006f32 
+ 00024902  0x00005ff2 branch  0x0000707f 
+ 00024903  0x00005ff5 jam  0x000000ff , 0x00004503 
+ 00024904  0x00005ff6 call  0x00006f32 
+ 00024905  0x00005ff7 branch  0x00007388 
+ 00024906  0x00006002 fetch  0x00000002 , 0x0000452b 
+ 00024907  0x00006003 store  0x00000002 , 0x0000452d 
+ 00024908  0x00006004 store  0x00000002 , 0x0000452f 
+ 00024909  0x00006005 branch  0x0000378a 
+ 00024910  0x00006009 fetch  0x00000001 , 0x00004533 
+ 00024911  0x0000600a rtnne  0x00000001 
+ 00024912  0x0000600f fetch  0x00000002 , 0x00004500 
+ 00024913  0x00006010 rtnbit1  0x00000009 
+ 00024914  0x00006011 fetch  0x00000002 , 0x00004529 
+ 00024915  0x00006012 store  0x00000002 , 0x0000452d 
+ 00024916  0x00006013 store  0x00000002 , 0x0000452f 
+ 00024917  0x00006014 fetch  0x00000002 , 0x0000450b 
+ 00024918  0x00006015 call  0x000061e4 
+ 00024919  0x00006016 call  0x00003796 
+ 00024920  0x00006017 fetch  0x00000004 , 0x00004515 
+ 00024921  0x00006018 store  0x00000004 , 0x00004689 
+ 00024922  0x00006019 fetch  0x00000002 , 0x00004500 
+ 00024923  0x0000601a rtnbit1  0x0000000b 
+ 00024924  0x0000601b branch  0x0000378c 
+ 00024925  0x0000601f fetch  0x00000001 , 0x00004533 
+ 00024926  0x00006020 rtnne  0x00000001 
+ 00024927  0x00006025 fetch  0x00000002 , 0x0000450f 
+ 00024928  0x00006026 fetcht  0x00000002 , 0x0000450d 
+ 00024929  0x00006027 storet  0x00000002 , 0x0000450f 
+ 00024930  0x00006028 nrtn  0x00000034 
+ 00024931  0x00006029 fetch  0x00000002 , 0x00004509 
+ 00024932  0x0000602a call  0x000061e4 
+ 00024933  0x0000602b call  0x00003796 
+ 00024934  0x0000602c fetch  0x00000004 , 0x00004511 
+ 00024935  0x0000602d store  0x00000004 , 0x00004689 
+ 00024936  0x0000602e fetch  0x00000002 , 0x00004500 
+ 00024937  0x0000602f rtnbit1  0x0000000b 
+ 00024938  0x00006030 branch  0x0000378c 
+ 00024939  0x00006033 fetch  0x00000002 , 0x00004500 
+ 00024940  0x00006034 bbit1  0x00000009 , 0x00003794 
+ 00024941  0x00006035 branch  0x0000614a 
+ 00024942  0x0000603a call  0x00007dbe 
+ 00024943  0x0000603b fetch  0x00000002 , 0x00004500 
+ 00024944  0x0000603c bbit1  0x00000009 , 0x00006172 
+ 00024945  0x0000603d rtn 
+ 00024946  0x00006040 fetch  0x00000001 , 0x00004508 
+ 00024947  0x00006041 rtn  0x00000034 
+ 00024948  0x00006042 branch  0x00007dbc 
+ 00024949  0x00006048 call  0x00007dbe 
+ 00024950  0x00006049 fetch  0x00000002 , 0x00004500 
+ 00024951  0x0000604a rtnbit1  0x00000009 
+ 00024952  0x0000604b branch  0x00007dbc 
+ 00024953  0x00006054 branch  0x0000615d 
+ 00024954  0x00006059 disable  0x0000002c 
+ 00024955  0x0000605a fetch  0x00000002 , 0x0000452d 
+ 00024956  0x0000605b store  0x00000002 , 0x0000452f 
+ 00024957  0x0000605d call  0x00006175 
+ 00024958  0x0000605e branch  0x00006179 , 0x00000028 
+ 00024959  0x00006060 call  0x0000616e 
+ 00024960  0x00006061 nrtn  0x00000028 
+ 00024961  0x00006062 branch  0x00007dc0 
+ 00024962  0x00006067 call  0x0000617a 
+ 00024963  0x00006068 nrtn  0x0000002c 
+ 00024964  0x00006069 deposit  0x00000011 
+ 00024965  0x0000606a branch  0x00006189 , 0x00000034 
+ 00024966  0x0000606c call  0x00003798 
+ 00024967  0x0000606d arg  0x0000453f , 0x00000013 
+ 00024968  0x0000606e branch  0x0000618b 
+ 00024969  0x00006071 call  0x0000379a 
+ 00024970  0x00006072 arg  0x0000454e , 0x00000013 
+ 00024971  0x00006075 arg  0x00000005 , 0x0000003f 
+ 00024972  0x00006076 imul32  0x00000007 , 0x0000003f 
+ 00024973  0x00006077 iadd  0x00000013 , 0x00000013 
+ 00024974  0x0000607b ifetch  0x00000001 , 0x00000013 
+ 00024975  0x0000607c rtn  0x00000034 
+ 00024976  0x0000607d call  0x0000619f 
+ 00024977  0x0000607e increase  0x00000001 , 0x00000013 
+ 00024978  0x0000607f branch  0x0000618e 
+ 00024979  0x00006083 fetch  0x00000002 , 0x00004500 
+ 00024980  0x00006084 bbit1  0x00000009 , 0x00006196 
+ 00024981  0x00006085 rtn 
+ 00024982  0x00006088 call  0x00002a06 
+ 00024983  0x00006089 nrtn  0x00000034 
+ 00024984  0x0000608a call  0x000061a2 
+ 00024985  0x0000608b nrtn  0x00000028 
+ 00024986  0x0000608c pincrease  0xffffffff 
+ 00024987  0x0000608d mul32  0x0000003f , 0x00000005 , 0x0000003f 
+ 00024988  0x0000608e arg  0x0000455d , 0x00000002 
+ 00024989  0x0000608f iadd  0x00000002 , 0x00000006 
+ 00024990  0x00006090 branch  0x000061e8 
+ 00024991  0x00006095 store  0x00000001 , 0x0000064e 
+ 00024992  0x00006096 arg  0x0000064e , 0x00000011 
+ 00024993  0x00006097 branch  0x000078a2 
+ 00024994  0x0000609a arg  0x0000064e , 0x00000011 
+ 00024995  0x0000609b call  0x000078ba 
+ 00024996  0x0000609c nrtn  0x00000028 
+ 00024997  0x0000609d fetch  0x00000001 , 0x0000064e 
+ 00024998  0x0000609e rtn 
+ 00024999  0x000060a2 fetch  0x00000002 , 0x0000439c 
+ 00025000  0x000060a3 beq  0x00000018 , 0x00006103 
+ 00025001  0x000060a4 rtn 
+ 00025002  0x000060a7 jam  0x00000002 , 0x000046a8 
+ 00025003  0x000060a9 setarg  0x00200008 
+ 00025004  0x000060aa store  0x00000004 , 0x00004519 
+ 00025005  0x000060ab setarg  0x012c0005 
+ 00025006  0x000060ac istore  0x00000004 , 0x00000005 
+ 00025007  0x000060af jam  0x00000017 , 0x000042e3 
+ 00025008  0x000060b2 setarg  0x0000001b 
+ 00025009  0x000060b3 store  0x00000002 , 0x00004334 
+ 00025010  0x000060b4 branch  0x00002a1f 
+ 00025011  0x000060b9 arg  0x00000028 , 0x00000039 
+ 00025012  0x000060ba arg  0x0000455d , 0x00000005 
+ 00025013  0x000060bb arg  0x000097bd , 0x00000006 
+ 00025014  0x000060bc branch  0x00007cce 
+ 00025015  0x000060bf arg  0x00000000 , 0x00000011 
+ 00025016  0x000060c0 arg  0x00004691 , 0x00000013 
+ 00025017  0x000060c1 call  0x000077b8 
+ 00025018  0x000060c2 call  0x0000616b 
+ 00025019  0x000060c4 fetch  0x00000001 , 0x000046a8 
+ 00025020  0x000060c5 store  0x00000001 , 0x000046a9 
+ 00025021  0x000060c6 rtn 
+ 00025022  0x000060cb setarg  0x00000000 
+ 00025023  0x000060cc call  0x000061ca 
+ 00025024  0x000060cd jam  0x00000001 , 0x000044fb 
+ 00025025  0x000060ce call  0x00007764 
+ 00025026  0x000060cf call  0x0000776e 
+ 00025027  0x000060d1 fetch  0x00000001 , 0x000046af 
+ 00025028  0x000060d2 branch  0x000061c7 , 0x00000034 
+ 00025029  0x000060d3 fetch  0x00000001 , 0x00008132 
+ 00025030  0x000060d4 bbit1  0x00000004 , 0x000061d6 
+ 00025031  0x000060d6 fetch  0x00000002 , 0x00004500 
+ 00025032  0x000060d7 rtnbit1  0x0000000c 
+ 00025033  0x000060d8 branch  0x0000379c 
+ 00025034  0x000060db fetcht  0x00000002 , 0x00004447 
+ 00025035  0x000060dc istore  0x00000001 , 0x00000002 
+ 00025036  0x000060dd ifetch  0x00000001 , 0x00000005 
+ 00025037  0x000060de store  0x00000001 , 0x00004502 
+ 00025038  0x000060df rtn 
+ 00025039  0x000060e3 fetch  0x00000002 , 0x00004447 
+ 00025040  0x000060e4 ifetch  0x00000001 , 0x0000003f 
+ 00025041  0x000060e5 rtnne  0x00000000 
+ 00025042  0x000060e6 branch  0x0000379c 
+ 00025043  0x000060ea fetcht  0x00000002 , 0x00004447 
+ 00025044  0x000060eb ifetch  0x00000001 , 0x00000002 
+ 00025045  0x000060ec beq  0x00000001 , 0x000061de 
+ 00025046  0x000060ee setarg  0x00000001 
+ 00025047  0x000060ef fetcht  0x00000002 , 0x00004447 
+ 00025048  0x000060f0 istore  0x00000001 , 0x00000002 
+ 00025049  0x000060f1 add  0x00000002 , 0x00000002 , 0x00000006 
+ 00025050  0x000060f2 ifetch  0x00000001 , 0x00000006 
+ 00025051  0x000060f3 istore  0x00000001 , 0x00004502 
+ 00025052  0x000060f4 ifetch  0x00000002 , 0x00000006 
+ 00025053  0x000060f5 branch  0x00007d7b 
+ 00025054  0x000060f8 setarg  0x00000002 
+ 00025055  0x000060f9 call  0x000061ca 
+ 00025056  0x000060fa add  0x00000002 , 0x00000005 , 0x00000006 
+ 00025057  0x000060fb ifetch  0x00000002 , 0x00000006 
+ 00025058  0x000060fc branch  0x0000379c , 0x00000034 
+ 00025059  0x000060fd branch  0x00007d7b 
+ 00025060  0x00006103 store  0x00000002 , 0x000040a4 
+ 00025061  0x00006104 increase  0xfffffffc , 0x0000003f 
+ 00025062  0x00006105 store  0x00000002 , 0x0000438d 
+ 00025063  0x00006106 rtn 
+ 00025064  0x00006109 ifetch  0x00000001 , 0x00000006 
+ 00025065  0x0000610a copy  0x0000003f , 0x00000011 
+ 00025066  0x0000610b ifetcht  0x00000002 , 0x00000006 
+ 00025067  0x0000610c call  0x00007c6f 
+ 00025068  0x0000610d call  0x00002dcc 
+ 00025069  0x0000610e copy  0x00000011 , 0x00000039 
+ 00025070  0x0000610f call  0x00007c69 
+ 00025071  0x00006110 branch  0x00007cdc 
+ 00025072  0x00006113 setarg  0x00009684 
+ 00025073  0x00006114 store  0x00000002 , 0x000042f9 
+ 00025074  0x00006115 rtn 
+ 00025075  0x0000611a fetch  0x00000002 , 0x000046aa 
+ 00025076  0x0000611b store  0x00000002 , 0x0000453d 
+ 00025077  0x0000611c fetch  0x00000001 , 0x000046ac 
+ 00025078  0x0000611d store  0x00000001 , 0x00004688 
+ 00025079  0x0000611e store  0x00000001 , 0x00004693 
+ 00025080  0x0000611f fetch  0x00000001 , 0x000046ad 
+ 00025081  0x00006120 store  0x00000001 , 0x00004531 
+ 00025082  0x00006121 fetch  0x00000001 , 0x000046ae 
+ 00025083  0x00006122 store  0x00000001 , 0x00004532 
+ 00025084  0x00006124 setarg  0x00000002 
+ 00025085  0x00006125 store  0x00000002 , 0x0000453f 
+ 00025086  0x00006126 setarg  0x00000001 
+ 00025087  0x00006127 store  0x00000002 , 0x00004544 
+ 00025088  0x00006128 setarg  0x00000006 
+ 00025089  0x00006129 store  0x00000002 , 0x0000454e 
+ 00025090  0x0000612a store  0x00000002 , 0x00004553 
+ 00025091  0x0000612b setarg  0x00004533 
+ 00025092  0x0000612c store  0x00000002 , 0x00004447 
+ 00025093  0x0000612d setarg  0x00201400 
+ 00025094  0x0000612e store  0x00000003 , 0x00004533 
+ 00025095  0x0000612f jam  0x00000001 , 0x00004094 
+ 00025096  0x00006130 setarg  0x00000100 
+ 00025097  0x00006131 store  0x00000002 , 0x000040a4 
+ 00025098  0x00006132 jam  0x00000008 , 0x000040a6 
+ 00025099  0x00006133 jam  0x00000005 , 0x000040c0 
+ 00025100  0x00006134 jam  0x00000002 , 0x000040c1 
+ 00025101  0x00006135 setarg  0x00000096 
+ 00025102  0x00006136 store  0x00000002 , 0x00004511 
+ 00025103  0x00006137 istore  0x00000002 , 0x00000005 
+ 00025104  0x00006138 setarg  0x00000296 
+ 00025105  0x00006139 store  0x00000002 , 0x00004515 
+ 00025106  0x0000613a istore  0x00000002 , 0x00000005 
+ 00025107  0x0000613b setsect  0x00000000 , 0x00000010 
+ 00025108  0x0000613c setsect  0x00000001 , 0x00008008 
+ 00025109  0x0000613d setsect  0x00000002 , 0x0002c000 
+ 00025110  0x0000613e setsect  0x00000003 , 0x00000004 
+ 00025111  0x0000613f store  0x00000008 , 0x00004521 
+ 00025112  0x00006140 jam  0x00000001 , 0x00004505 
+ 00025113  0x00006141 setarg  0x00004686 
+ 00025114  0x00006142 store  0x00000002 , 0x00004506 
+ 00025115  0x00006143 setarg  0x00000000 
+ 00025116  0x00006144 store  0x00000002 , 0x00004686 
+ 00025117  0x00006145 setsect  0x00000000 , 0x000001a0 
+ 00025118  0x00006146 setsect  0x00000001 , 0x00000068 
+ 00025119  0x00006147 setsect  0x00000002 , 0x00000000 
+ 00025120  0x00006148 setsect  0x00000003 , 0x00000000 
+ 00025121  0x00006149 store  0x00000008 , 0x00004689 
+ 00025122  0x0000614a setarg  0x00000301 
+ 00025123  0x0000614b store  0x00000002 , 0x00004691 
+ 00025124  0x0000614c setsect  0x00000000 , 0x000001a0 
+ 00025125  0x0000614d setsect  0x00000001 , 0x000000e8 
+ 00025126  0x0000614e setsect  0x00000002 , 0x00000000 
+ 00025127  0x0000614f setsect  0x00000003 , 0x00000000 
+ 00025128  0x00006150 store  0x00000008 , 0x00004694 
+ 00025129  0x00006151 setarg  0x0000000e 
+ 00025130  0x00006152 store  0x00000002 , 0x00004509 
+ 00025131  0x00006153 setarg  0x00000140 
+ 00025132  0x00006154 store  0x00000002 , 0x0000450b 
+ 00025133  0x00006155 store  0x00000002 , 0x0000438d 
+ 00025134  0x00006156 setarg  0x00000050 
+ 00025135  0x00006157 store  0x00000002 , 0x0000450d 
+ 00025136  0x00006158 jam  0x00000007 , 0x00004397 
+ 00025137  0x00006159 jam  0x00000000 , 0x0000438c 
+ 00025138  0x0000615a setsect  0x00000000 , 0x000000fb 
+ 00025139  0x0000615b setsect  0x00000001 , 0x0002c212 
+ 00025140  0x0000615c setsect  0x00000002 , 0x0000800f 
+ 00025141  0x0000615d setsect  0x00000003 , 0x00000021 
+ 00025142  0x0000615e store  0x00000008 , 0x000043c4 
+ 00025143  0x0000615f setsect  0x00000000 , 0x00000bb8 
+ 00025144  0x00006160 setsect  0x00000001 , 0x000002ee 
+ 00025145  0x00006161 store  0x00000004 , 0x00004529 
+ 00025146  0x00006162 setarg  0x000045b7 
+ 00025147  0x00006163 store  0x00000002 , 0x00004404 
+ 00025148  0x00006164 setarg  0x00002001 
+ 00025149  0x00006165 store  0x00000002 , 0x000045b7 
+ 00025150  0x00006166 jam  0x0000001f , 0x0000434c 
+ 00025151  0x00006167 setsect  0x00000000 , 0x00010102 
+ 00025152  0x00006168 setsect  0x00000001 , 0x000080c1 
+ 00025153  0x00006169 setsect  0x00000002 , 0x00018120 
+ 00025154  0x0000616a setsect  0x00000003 , 0x0000640c 
+ 00025155  0x0000616b store  0x00000009 , 0x0000434d 
+ 00025156  0x0000616c setsect  0x00000000 , 0x000003c1 
+ 00025157  0x0000616d istore  0x00000002 , 0x00000005 
+ 00025158  0x0000616e jam  0x0000001f , 0x0000436c 
+ 00025159  0x0000616f setsect  0x00000000 , 0x0002090d 
+ 00025160  0x00006170 setsect  0x00000001 , 0x00034c15 
+ 00025161  0x00006171 setsect  0x00000002 , 0x00028532 
+ 00025162  0x00006172 setsect  0x00000003 , 0x0001d1d5 
+ 00025163  0x00006173 store  0x00000009 , 0x0000436d 
+ 00025164  0x00006174 setsect  0x00000000 , 0x00026574 
+ 00025165  0x00006175 setsect  0x00000001 , 0x0000001c 
+ 00025166  0x00006176 istore  0x00000003 , 0x00000005 
+ 00025167  0x00006177 setarg  0x0000453a 
+ 00025168  0x00006178 store  0x00000002 , 0x00004443 
+ 00025169  0x00006179 jam  0x00000002 , 0x0000453a 
+ 00025170  0x0000617a setarg  0x000045dc 
+ 00025171  0x0000617b store  0x00000002 , 0x00004401 
+ 00025172  0x0000617c jam  0x00000005 , 0x00004403 
+ 00025173  0x0000617d fetch  0x00000001 , 0x000046b0 
+ 00025174  0x0000617e beq  0x00000000 , 0x000061f0 
+ 00025175  0x0000617f beq  0x00000001 , 0x00006283 
+ 00025176  0x00006180 rtn 
+ 00025177  0x0000618e fetch  0x00000006 , 0x00004eab 
+ 00025178  0x0000618f store  0x00000006 , 0x0000453d 
+ 00025179  0x00006190 jam  0x00000006 , 0x0000453a 
+ 00025180  0x00006191 setarg  0x0000453a 
+ 00025181  0x00006192 store  0x00000002 , 0x00004443 
+ 00025182  0x00006193 rtn 
+ 00025183  0x00006197 fetch  0x00000007 , 0x00004eab 
+ 00025184  0x00006198 store  0x00000007 , 0x0000453d 
+ 00025185  0x00006199 jam  0x00000007 , 0x0000453a 
+ 00025186  0x0000619a setarg  0x0000453a 
+ 00025187  0x0000619b store  0x00000002 , 0x00004443 
+ 00025188  0x0000619c rtn 
+ 00025189  0x000061a0 fetch  0x00000008 , 0x00004eab 
+ 00025190  0x000061a1 store  0x00000008 , 0x0000453d 
+ 00025191  0x000061a2 jam  0x00000008 , 0x0000453a 
+ 00025192  0x000061a3 setarg  0x0000453a 
+ 00025193  0x000061a4 store  0x00000002 , 0x00004443 
+ 00025194  0x000061a5 rtn 
+ 00025195  0x000061a8 fetch  0x00000001 , 0x00004eaa 
+ 00025196  0x000061a9 beq  0x00000006 , 0x00006259 
+ 00025197  0x000061aa beq  0x00000007 , 0x0000625f 
+ 00025198  0x000061ab beq  0x00000008 , 0x00006265 
+ 00025199  0x000061ac rtn 
+ 00025200  0x000061af bpatch  0x000000bf , 0x00004017 
+ 00025201  0x000061b1 fetch  0x00000008 , 0x00004edb 
+ 00025202  0x000061b2 store  0x00000008 , 0x00004529 
+ 00025203  0x000061b3 setarg  0x00000096 
+ 00025204  0x000061b4 store  0x00000002 , 0x0000450d 
+ 00025205  0x000061b6 fetch  0x00000007 , 0x00004ee5 
+ 00025206  0x000061b7 store  0x00000007 , 0x00004686 
+ 00025207  0x000061b8 fetch  0x00000007 , 0x00004eec 
+ 00025208  0x000061b9 store  0x00000007 , 0x00004691 
+ 00025209  0x000061bb fetch  0x00000004 , 0x00004ef3 
+ 00025210  0x000061bc store  0x00000004 , 0x00004511 
+ 00025211  0x000061bd fetch  0x00000004 , 0x00004ef7 
+ 00025212  0x000061be store  0x00000004 , 0x00004515 
+ 00025213  0x000061c0 setarg  0x0000000e 
+ 00025214  0x000061c1 store  0x00000002 , 0x00004509 
+ 00025215  0x000061c2 setarg  0x00000140 
+ 00025216  0x000061c3 store  0x00000002 , 0x0000450b 
+ 00025217  0x000061c4 store  0x00000002 , 0x0000438d 
+ 00025218  0x000061ca rtn 
+ 00025219  0x000061cd setarg  0x000047a7 
+ 00025220  0x000061ce store  0x00000002 , 0x000042f9 
+ 00025221  0x000061cf rtn 
+ 00025222  0x000061d2 call  0x00007384 
+ 00025223  0x000061d3 rtn  0x0000002b 
+ 00025224  0x000061d5 call  0x0000626b 
+ 00025225  0x000061d6 call  0x00006270 
+ 00025226  0x000061d8 setarg  0x000062c1 
+ 00025227  0x000061d9 store  0x00000002 , 0x000043e4 
+ 00025228  0x000061db setarg  0x0000631a 
+ 00025229  0x000061dc store  0x00000002 , 0x000043e6 
+ 00025230  0x000061de setarg  0x00006548 
+ 00025231  0x000061df store  0x00000002 , 0x000043e8 
+ 00025232  0x000061e1 setarg  0x000062f2 
+ 00025233  0x000061e2 store  0x00000002 , 0x000043ec 
+ 00025234  0x000061e4 setarg  0x0000634d 
+ 00025235  0x000061e5 store  0x00000002 , 0x0000453b 
+ 00025236  0x000061e7 setarg  0x000062ab 
+ 00025237  0x000061e8 store  0x00000002 , 0x000043de 
+ 00025238  0x000061ea setarg  0x000062a9 
+ 00025239  0x000061eb store  0x00000002 , 0x000043e0 
+ 00025240  0x000061ed setarg  0x0000615d 
+ 00025241  0x000061ee store  0x00000002 , 0x00004536 
+ 00025242  0x000061f0 setarg  0x000061b7 
+ 00025243  0x000061f1 store  0x00000002 , 0x00004538 
+ 00025244  0x000061f3 jam  0x00000007 , 0x00004160 
+ 00025245  0x000061f4 call  0x00002948 
+ 00025246  0x000061f5 call  0x000061aa 
+ 00025247  0x000061f6 call  0x0000705b 
+ 00025248  0x000061f7 call  0x0000789d 
+ 00025249  0x000061f8 call  0x0000779a 
+ 00025250  0x000061fa fetch  0x00000002 , 0x00004f12 
+ 00025251  0x000061fb store  0x00000002 , 0x00004334 
+ 00025252  0x000061fc fetch  0x00000008 , 0x00004521 
+ 00025253  0x000061fd store  0x00000008 , 0x00004519 
+ 00025254  0x000061fe call  0x000062cb 
+ 00025255  0x000061ff bpatch  0x000000c0 , 0x00004018 
+ 00025256  0x00006200 branch  0x000060d7 
+ 00025257  0x00006203 call  0x00006f32 
+ 00025258  0x00006204 branch  0x0000707f 
+ 00025259  0x00006207 jam  0x000000ff , 0x00004503 
+ 00025260  0x00006208 call  0x00006f32 
+ 00025261  0x00006209 call  0x000062af 
+ 00025262  0x0000620a branch  0x00007388 
+ 00025263  0x0000620d fetch  0x00000001 , 0x000046ad 
+ 00025264  0x0000620e rtn  0x00000034 
+ 00025265  0x0000620f fetch  0x00000001 , 0x00004eaa 
+ 00025266  0x00006210 copy  0x0000003f , 0x00000039 
+ 00025267  0x00006211 arg  0x0000453d , 0x00000011 
+ 00025268  0x00006213 ifetch  0x00000001 , 0x00000011 
+ 00025269  0x00006214 fetcht  0x00000001 , 0x000046ae 
+ 00025270  0x00006215 isub  0x00000002 , 0x0000003e 
+ 00025271  0x00006216 branch  0x000062bc , 0x00000005 
+ 00025272  0x00006217 sub  0x0000003f , 0x000000ff , 0x0000003e 
+ 00025273  0x00006218 branch  0x000062bc , 0x00000005 
+ 00025274  0x00006219 copy  0x0000003f , 0x00000002 
+ 00025275  0x0000621a call  0x000062bf 
+ 00025276  0x0000621c increase  0x00000001 , 0x00000011 
+ 00025277  0x0000621d loop  0x000062b4 
+ 00025278  0x0000621e rtn 
+ 00025279  0x00006221 set1  0x00000007 , 0x00000002 
+ 00025280  0x00006222 branch  0x00006ed7 
+ 00025281  0x00006225 call  0x000062d8 
+ 00025282  0x00006226 arg  0x00000009 , 0x00000007 
+ 00025283  0x00006227 call  0x00007cf1 
+ 00025284  0x00006228 nrtn  0x00000034 
+ 00025285  0x00006229 setarg  0x00000020 
+ 00025286  0x0000622a arg  0x00000009 , 0x00000007 
+ 00025287  0x0000622b call  0x00007ce3 
+ 00025288  0x0000622c disable  0x00000028 
+ 00025289  0x0000622d call  0x0000707f 
+ 00025290  0x0000622e branch  0x000063b7 
+ 00025291  0x00006231 setarg  0x0000002b 
+ 00025292  0x00006232 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025293  0x00006233 arg  0x00004c4b , 0x00000002 
+ 00025294  0x00006234 iadd  0x00000002 , 0x00000011 
+ 00025295  0x00006235 increase  0x00000003 , 0x00000011 
+ 00025296  0x00006236 arg  0x00000fff , 0x00000002 
+ 00025297  0x00006237 istoret  0x00000001 , 0x00000011 
+ 00025298  0x00006238 increase  0x0000000b , 0x00000011 
+ 00025299  0x00006239 arg  0x00000fff , 0x0000003f 
+ 00025300  0x0000623a isub  0x00000002 , 0x0000003f 
+ 00025301  0x0000623b lshift4  0x0000003f , 0x0000003f 
+ 00025302  0x0000623c istore  0x00000002 , 0x00000011 
+ 00025303  0x0000623d rtn 
+ 00025304  0x00006240 fetch  0x00000002 , 0x00004500 
+ 00025305  0x00006241 bbit1  0x00000009 , 0x000062dd 
+ 00025306  0x00006242 arg  0x000045b9 , 0x00000005 
+ 00025307  0x00006243 arg  0x00000023 , 0x00000039 
+ 00025308  0x00006244 branch  0x00007ca3 
+ 00025309  0x00006247 call  0x00002a06 
+ 00025310  0x00006248 nrtn  0x00000034 
+ 00025311  0x00006249 call  0x000078ea 
+ 00025312  0x0000624a rtn  0x00000034 
+ 00025313  0x0000624b fetcht  0x00000004 , 0x00004959 
+ 00025314  0x0000624c copy  0x00000022 , 0x0000003f 
+ 00025315  0x0000624d isub  0x00000002 , 0x00000002 
+ 00025316  0x0000624e rtn  0x00000005 
+ 00025317  0x0000624f nbranch  0x000062e9 , 0x00000002 
+ 00025318  0x00006250 fetch  0x00000001 , 0x00004958 
+ 00025319  0x00006251 isub  0x00000002 , 0x0000003e 
+ 00025320  0x00006252 rtn  0x00000002 
+ 00025321  0x00006254 copy  0x00000022 , 0x0000003f 
+ 00025322  0x00006255 store  0x00000004 , 0x00004959 
+ 00025323  0x00006256 call  0x000061a2 
+ 00025324  0x00006257 nrtn  0x00000028 
+ 00025325  0x00006258 pincrease  0xffffffff 
+ 00025326  0x00006259 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025327  0x0000625a arg  0x00004c4b , 0x00000002 
+ 00025328  0x0000625b iadd  0x00000002 , 0x00000006 
+ 00025329  0x0000625c branch  0x000061e8 
+ 00025330  0x00006260 call  0x000066d9 
+ 00025331  0x00006261 call  0x000065ef 
+ 00025332  0x00006262 call  0x000065dd 
+ 00025333  0x00006263 call  0x000062f9 
+ 00025334  0x00006264 call  0x0000630e 
+ 00025335  0x00006265 call  0x0000612d 
+ 00025336  0x00006266 branch  0x00006314 
+ 00025337  0x00006269 arg  0x00004e88 , 0x00000013 
+ 00025338  0x0000626a arg  0x000062fc , 0x00000012 
+ 00025339  0x0000626b branch  0x00003755 
+ 00025340  0x0000626e call  0x000078ea 
+ 00025341  0x0000626f nrtn  0x00000034 
+ 00025342  0x00006270 fetch  0x00000002 , 0x000046bf 
+ 00025343  0x00006271 nrtn  0x00000034 
+ 00025344  0x00006273 call  0x000065b3 
+ 00025345  0x00006274 rtn  0x00000034 
+ 00025346  0x00006275 copy  0x00000007 , 0x0000003f 
+ 00025347  0x00006276 compare  0x00000004 , 0x0000003f , 0x00000007 
+ 00025348  0x00006277 branch  0x0000630a , 0x00000001 
+ 00025349  0x00006279 copy  0x00000007 , 0x0000003f 
+ 00025350  0x0000627a compare  0x00000001 , 0x0000003f , 0x00000007 
+ 00025351  0x0000627b branch  0x0000630c , 0x00000001 
+ 00025352  0x0000627c arg  0x00004e7d , 0x00000013 
+ 00025353  0x0000627d branch  0x0000618e 
+ 00025354  0x00006280 arg  0x00004e96 , 0x00000013 
+ 00025355  0x00006281 branch  0x0000618e 
+ 00025356  0x00006284 arg  0x00004ea0 , 0x00000013 
+ 00025357  0x00006285 branch  0x0000618e 
+ 00025358  0x00006288 arg  0x00004c48 , 0x00000013 
+ 00025359  0x00006289 arg  0x00006311 , 0x00000012 
+ 00025360  0x0000628a branch  0x00003755 
+ 00025361  0x0000628d arg  0x0000000a , 0x00000039 
+ 00025362  0x0000628e arg  0x00004967 , 0x00000005 
+ 00025363  0x0000628f branch  0x00007ca3 
+ 00025364  0x00006293 arg  0x000046a9 , 0x00000013 
+ 00025365  0x00006294 arg  0x00006317 , 0x00000012 
+ 00025366  0x00006295 branch  0x00003755 
+ 00025367  0x00006297 fetch  0x00000002 , 0x00004500 
+ 00025368  0x00006298 bbit1  0x00000009 , 0x000061bb 
+ 00025369  0x00006299 branch  0x0000379c 
+ 00025370  0x0000629c copy  0x00000013 , 0x0000003f 
+ 00025371  0x0000629d beq  0x00000014 , 0x0000633c 
+ 00025372  0x0000629e beq  0x00000015 , 0x00006337 
+ 00025373  0x0000629f beq  0x00000031 , 0x0000632e 
+ 00025374  0x000062a0 beq  0x00000040 , 0x00006322 
+ 00025375  0x000062a1 rtneq  0x00000040 
+ 00025376  0x000062a2 beq  0x00000032 , 0x0000654b 
+ 00025377  0x000062a3 branch  0x000060f3 
+ 00025378  0x000062a6 fetch  0x00000002 , 0x00004340 
+ 00025379  0x000062a7 rtneq  0x00000000 
+ 00025380  0x000062a8 fetch  0x00000008 , 0x00004521 
+ 00025381  0x000062a9 rtn  0x00000034 
+ 00025382  0x000062aa call  0x000065b3 
+ 00025383  0x000062ab nbranch  0x0000632b , 0x00000034 
+ 00025384  0x000062ac fetch  0x00000008 , 0x00004ecb 
+ 00025385  0x000062ad store  0x00000008 , 0x000042d5 
+ 00025386  0x000062ae branch  0x00002e71 
+ 00025387  0x000062b1 fetch  0x00000008 , 0x00004ed3 
+ 00025388  0x000062b2 store  0x00000008 , 0x000042d5 
+ 00025389  0x000062b3 branch  0x00002e71 
+ 00025390  0x000062b6 jam  0x00000001 , 0x00004e89 
+ 00025391  0x000062b7 call  0x00006606 
+ 00025392  0x000062b9 fetch  0x00000002 , 0x00004eff 
+ 00025393  0x000062ba store  0x00000002 , 0x00004e75 
+ 00025394  0x000062bc fetcht  0x00000002 , 0x00004f01 
+ 00025395  0x000062bd setarg  0x00000fff 
+ 00025396  0x000062be isub  0x00000002 , 0x0000003f 
+ 00025397  0x000062bf store  0x00000002 , 0x00004e77 
+ 00025398  0x000062c0 rtn 
+ 00025399  0x000062c3 jam  0x00000000 , 0x00004e72 
+ 00025400  0x000062c4 jam  0x00000000 , 0x00004e89 
+ 00025401  0x000062c5 call  0x000063f6 
+ 00025402  0x000062c6 call  0x00006348 
+ 00025403  0x000062c7 branch  0x00006100 
+ 00025404  0x000062ca copy  0x00000022 , 0x0000003f 
+ 00025405  0x000062cb store  0x00000004 , 0x00004959 
+ 00025406  0x000062cc call  0x000065ac 
+ 00025407  0x000062cd branch  0x000060fc 
+ 00025408  0x000062d1 disable  0x0000002c 
+ 00025409  0x000062d2 fetch  0x00000002 , 0x0000452d 
+ 00025410  0x000062d3 store  0x00000002 , 0x0000452f 
+ 00025411  0x000062d4 call  0x00006175 
+ 00025412  0x000062d5 branch  0x00006179 , 0x00000028 
+ 00025413  0x000062d6 call  0x0000616e 
+ 00025414  0x000062d7 nrtn  0x00000028 
+ 00025415  0x000062d8 branch  0x00007dc0 
+ 00025416  0x000062db jam  0x00000000 , 0x00004e8c 
+ 00025417  0x000062dc rtn 
+ 00025418  0x000062df copy  0x00000007 , 0x0000003f 
+ 00025419  0x000062e0 rtnne  0x00000001 
+ 00025420  0x000062e1 branch  0x00006354 
+ 00025421  0x000062e4 call  0x00006340 
+ 00025422  0x000062e5 nrtn  0x0000002c 
+ 00025423  0x000062e6 deposit  0x00000011 
+ 00025424  0x000062e7 branch  0x0000637f , 0x00000034 
+ 00025425  0x000062e9 bpatch  0x000000c1 , 0x00004018 
+ 00025426  0x000062ea fetch  0x00000001 , 0x00004f2a 
+ 00025427  0x000062eb nbranch  0x0000634a , 0x00000034 
+ 00025428  0x000062ed jam  0x00000001 , 0x00004c49 
+ 00025429  0x000062ee call  0x00003798 
+ 00025430  0x000062ef call  0x00006374 
+ 00025431  0x000062f0 call  0x000063a9 
+ 00025432  0x000062f1 branch  0x00006348 , 0x00000002 
+ 00025433  0x000062f2 copy  0x00000007 , 0x0000003f 
+ 00025434  0x000062f3 fetcht  0x00000001 , 0x00004e8c 
+ 00025435  0x000062f4 isub  0x00000002 , 0x0000003e 
+ 00025436  0x000062f5 ncall  0x0000636e , 0x00000005 
+ 00025437  0x000062f6 copy  0x00000007 , 0x0000003f 
+ 00025438  0x000062f7 store  0x00000001 , 0x00004e8c 
+ 00025439  0x000062f8 fetcht  0x00000001 , 0x00004e8f 
+ 00025440  0x000062f9 isub  0x00000002 , 0x0000003e 
+ 00025441  0x000062fa branch  0x0000636c , 0x00000005 
+ 00025442  0x000062fb fetch  0x00000001 , 0x00004e90 
+ 00025443  0x000062fc nbranch  0x00006367 , 0x00000034 
+ 00025444  0x000062fe call  0x000065b5 
+ 00025445  0x000062ff arg  0x0000000a , 0x0000003f 
+ 00025446  0x00006300 branch  0x000063a2 
+ 00025447  0x00006303 call  0x00006602 
+ 00025448  0x00006304 copy  0x00000007 , 0x0000003f 
+ 00025449  0x00006305 beq  0x00000001 , 0x00006364 
+ 00025450  0x00006306 call  0x0000648c 
+ 00025451  0x00006307 branch  0x0000643d 
+ 00025452  0x0000630a jam  0x00000001 , 0x00004e8d 
+ 00025453  0x0000630b branch  0x0000643d 
+ 00025454  0x0000630e bpatch  0x000000c2 , 0x00004018 
+ 00025455  0x0000630f fetch  0x00000001 , 0x00004e90 
+ 00025456  0x00006310 branch  0x00006300 , 0x00000034 
+ 00025457  0x00006311 copy  0x00000007 , 0x0000003f 
+ 00025458  0x00006312 beq  0x00000001 , 0x00006300 
+ 00025459  0x00006313 rtn 
+ 00025460  0x00006315 arg  0x0000000a , 0x0000003f 
+ 00025461  0x00006316 imul32  0x00000007 , 0x0000003f 
+ 00025462  0x00006317 arg  0x0000495d , 0x00000013 
+ 00025463  0x00006318 iadd  0x00000013 , 0x00000013 
+ 00025464  0x00006319 copy  0x00000022 , 0x0000003f 
+ 00025465  0x0000631a istore  0x00000004 , 0x00000013 
+ 00025466  0x0000631b increase  0x00000004 , 0x00000013 
+ 00025467  0x0000631c ifetch  0x00000001 , 0x00000013 
+ 00025468  0x0000631d increase  0x00000001 , 0x0000003f 
+ 00025469  0x0000631e istore  0x00000001 , 0x00000013 
+ 00025470  0x0000631f rtn 
+ 00025471  0x00006321 bpatch  0x000000c3 , 0x00004018 
+ 00025472  0x00006322 fetch  0x00000001 , 0x00004e90 
+ 00025473  0x00006323 call  0x00006393 , 0x00000034 
+ 00025474  0x00006325 arg  0x0000000a , 0x0000003f 
+ 00025475  0x00006326 imul32  0x00000007 , 0x0000003f 
+ 00025476  0x00006327 arg  0x0000495d , 0x00000013 
+ 00025477  0x00006328 iadd  0x00000013 , 0x00000013 
+ 00025478  0x00006329 ifetcht  0x00000004 , 0x00000013 
+ 00025479  0x0000632a sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00025480  0x0000632b rtn  0x00000005 
+ 00025481  0x0000632c copy  0x00000022 , 0x0000003f 
+ 00025482  0x0000632d isub  0x00000002 , 0x00000002 
+ 00025483  0x0000632e ncall  0x000077f4 , 0x00000002 
+ 00025484  0x0000632f add  0x00000013 , 0x00000009 , 0x00000006 
+ 00025485  0x00006330 ifetch  0x00000001 , 0x00000006 
+ 00025486  0x00006331 nbranch  0x000063ae , 0x00000034 
+ 00025487  0x00006332 increase  0x00000005 , 0x00000013 
+ 00025488  0x00006333 copy  0x00000022 , 0x0000003f 
+ 00025489  0x00006334 istore  0x00000004 , 0x00000013 
+ 00025490  0x00006335 rtn 
+ 00025491  0x00006338 fetch  0x00000001 , 0x00004f2a 
+ 00025492  0x00006339 nbranch  0x00003798 , 0x00000034 
+ 00025493  0x0000633a branch  0x0000379a 
+ 00025494  0x0000633d add  0x00000013 , 0x00000004 , 0x00000006 
+ 00025495  0x0000633e ifetch  0x00000001 , 0x00000006 
+ 00025496  0x0000633f branch  0x00006399 
+ 00025497  0x00006342 call  0x000063b4 
+ 00025498  0x00006343 fetch  0x00000001 , 0x00004e90 
+ 00025499  0x00006344 nbranch  0x000063a5 , 0x00000034 
+ 00025500  0x00006346 call  0x000063a9 
+ 00025501  0x00006347 branch  0x00006348 , 0x00000002 
+ 00025502  0x00006348 call  0x000065bb 
+ 00025503  0x00006349 copy  0x00000007 , 0x0000003f 
+ 00025504  0x0000634a beq  0x00000003 , 0x000065c3 
+ 00025505  0x0000634b arg  0x0000000f , 0x0000003f 
+ 00025506  0x0000634d imul32  0x00000007 , 0x0000003f 
+ 00025507  0x0000634e iadd  0x00000013 , 0x00000013 
+ 00025508  0x0000634f branch  0x0000618e 
+ 00025509  0x00006352 copy  0x00000007 , 0x0000003f 
+ 00025510  0x00006353 beq  0x00000001 , 0x0000639c 
+ 00025511  0x00006354 beq  0x00000003 , 0x0000639c 
+ 00025512  0x00006355 rtn 
+ 00025513  0x00006358 call  0x000078f2 
+ 00025514  0x00006359 ifetcht  0x00000001 , 0x00000006 
+ 00025515  0x0000635a isub  0x00000002 , 0x0000003f 
+ 00025516  0x0000635b sub  0x0000003f , 0x0000000a , 0x0000003e 
+ 00025517  0x0000635c rtn 
+ 00025518  0x0000635f jam  0x00000001 , 0x00004e87 
+ 00025519  0x00006360 call  0x000063b4 
+ 00025520  0x00006361 call  0x000065ec 
+ 00025521  0x00006362 arg  0x00004ab3 , 0x00000013 
+ 00025522  0x00006363 arg  0x00000003 , 0x0000003f 
+ 00025523  0x00006364 branch  0x000063a2 
+ 00025524  0x00006367 arg  0x0000000a , 0x00000039 
+ 00025525  0x00006368 copy  0x00000013 , 0x00000005 
+ 00025526  0x00006369 branch  0x00007ca3 
+ 00025527  0x0000636c fetch  0x00000002 , 0x000046bf 
+ 00025528  0x0000636d store  0x00000002 , 0x00004445 
+ 00025529  0x0000636e call  0x00006407 
+ 00025530  0x0000636f fetch  0x00000002 , 0x00004445 
+ 00025531  0x00006370 store  0x00000002 , 0x000046bf 
+ 00025532  0x00006372 arg  0x00000000 , 0x00000007 
+ 00025533  0x00006373 fetch  0x00000001 , 0x0000453a 
+ 00025534  0x00006374 copy  0x0000003f , 0x00000039 
+ 00025535  0x00006375 arg  0x0000495d , 0x00000013 
+ 00025536  0x00006377 copy  0x00000039 , 0x0000003f 
+ 00025537  0x00006378 store  0x00000002 , 0x00000656 
+ 00025538  0x00006379 copy  0x00000013 , 0x0000003f 
+ 00025539  0x0000637a store  0x00000002 , 0x0000066a 
+ 00025540  0x0000637b copy  0x00000007 , 0x0000003f 
+ 00025541  0x0000637c store  0x00000002 , 0x00000658 
+ 00025542  0x0000637d call  0x000063fd 
+ 00025543  0x0000637f fetch  0x00000002 , 0x0000066a 
+ 00025544  0x00006380 copy  0x0000003f , 0x00000013 
+ 00025545  0x00006381 fetch  0x00000002 , 0x00000658 
+ 00025546  0x00006382 copy  0x0000003f , 0x00000007 
+ 00025547  0x00006383 call  0x000063d4 
+ 00025548  0x00006385 fetch  0x00000002 , 0x00000658 
+ 00025549  0x00006386 add  0x0000003f , 0x00000001 , 0x00000007 
+ 00025550  0x00006387 fetch  0x00000002 , 0x0000066a 
+ 00025551  0x00006388 add  0x0000003f , 0x0000000a , 0x00000013 
+ 00025552  0x00006389 fetch  0x00000002 , 0x00000656 
+ 00025553  0x0000638a copy  0x0000003f , 0x00000039 
+ 00025554  0x0000638b loop  0x000063c0 
+ 00025555  0x0000638c rtn 
+ 00025556  0x0000638f ifetch  0x00000004 , 0x00000013 
+ 00025557  0x00006390 rtn  0x00000034 
+ 00025558  0x00006391 copy  0x0000003f , 0x00000002 
+ 00025559  0x00006392 copy  0x00000022 , 0x0000003f 
+ 00025560  0x00006393 isub  0x00000002 , 0x00000002 
+ 00025561  0x00006394 nrtn  0x00000002 
+ 00025562  0x00006395 setarg  0x000009c4 
+ 00025563  0x00006396 isub  0x00000002 , 0x0000003e 
+ 00025564  0x00006397 rtn  0x00000002 
+ 00025565  0x00006398 copy  0x00000022 , 0x0000003f 
+ 00025566  0x00006399 istore  0x00000004 , 0x00000013 
+ 00025567  0x0000639a increase  0x00000009 , 0x00000013 
+ 00025568  0x0000639b setarg  0x00000001 
+ 00025569  0x0000639c istore  0x00000001 , 0x00000013 
+ 00025570  0x0000639d fetch  0x00000001 , 0x00004e87 
+ 00025571  0x0000639e rtn  0x00000034 
+ 00025572  0x0000639f jam  0x00000000 , 0x00004e87 
+ 00025573  0x000063a0 bpatch  0x000000c4 , 0x00004018 
+ 00025574  0x000063a1 call  0x000065d8 
+ 00025575  0x000063a2 fetch  0x00000001 , 0x00004e8e 
+ 00025576  0x000063a3 beq  0x00000000 , 0x000063eb 
+ 00025577  0x000063a4 beq  0x00000001 , 0x000063ee 
+ 00025578  0x000063a5 rtn 
+ 00025579  0x000063a8 call  0x000063f8 
+ 00025580  0x000063a9 arg  0x00000003 , 0x0000003f 
+ 00025581  0x000063aa branch  0x000063a2 
+ 00025582  0x000063ad copy  0x00000007 , 0x0000003f 
+ 00025583  0x000063ae fetcht  0x00000001 , 0x00004e8f 
+ 00025584  0x000063af isub  0x00000002 , 0x0000003e 
+ 00025585  0x000063b0 nbranch  0x000063eb , 0x00000005 
+ 00025586  0x000063b1 fetch  0x00000001 , 0x00004e90 
+ 00025587  0x000063b2 setflip  0x00000000 , 0x0000003f 
+ 00025588  0x000063b3 store  0x00000001 , 0x00004e90 
+ 00025589  0x000063b4 nrtn  0x00000034 
+ 00025590  0x000063b6 jam  0x00000000 , 0x00004e90 
+ 00025591  0x000063b7 branch  0x0000379a 
+ 00025592  0x000063ba arg  0x00004a98 , 0x00000013 
+ 00025593  0x000063bb call  0x000065b3 
+ 00025594  0x000063bc rtn  0x00000034 
+ 00025595  0x000063bd arg  0x00004bfd , 0x00000013 
+ 00025596  0x000063be rtn 
+ 00025597  0x000063c1 add  0x00000013 , 0x00000005 , 0x00000012 
+ 00025598  0x000063c2 ifetch  0x00000004 , 0x00000012 
+ 00025599  0x000063c3 rtn  0x00000034 
+ 00025600  0x000063c4 copy  0x0000003f , 0x00000002 
+ 00025601  0x000063c5 copy  0x00000022 , 0x0000003f 
+ 00025602  0x000063c6 isub  0x00000002 , 0x00000002 
+ 00025603  0x000063c7 ncall  0x000077f4 , 0x00000002 
+ 00025604  0x000063c8 setarg  0x000003e8 
+ 00025605  0x000063c9 isub  0x00000002 , 0x0000003e 
+ 00025606  0x000063ca branch  0x00006396 
+ 00025607  0x000063cc fetch  0x00000002 , 0x00004443 
+ 00025608  0x000063cd ifetch  0x00000001 , 0x0000003f 
+ 00025609  0x000063ce rtn  0x00000034 
+ 00025610  0x000063d0 setarg  0x00000000 
+ 00025611  0x000063d1 store  0x00000002 , 0x000006cf 
+ 00025612  0x000063d2 call  0x00007067 
+ 00025613  0x000063d3 nbranch  0x00007793 , 0x00000028 
+ 00025614  0x000063d4 call  0x00007791 
+ 00025615  0x000063d5 disable  0x00000028 
+ 00025616  0x000063d6 fetch  0x00000001 , 0x0000438c 
+ 00025617  0x000063d7 nrtn  0x00000034 
+ 00025618  0x000063d8 bpatch  0x000000c5 , 0x00004018 
+ 00025619  0x000063d9 fetch  0x00000001 , 0x00004e8e 
+ 00025620  0x000063da beq  0x00000001 , 0x00006418 
+ 00025621  0x000063db call  0x00006472 
+ 00025622  0x000063dc call  0x00006425 
+ 00025623  0x000063dd rtn  0x00000028 
+ 00025624  0x000063df call  0x0000641e 
+ 00025625  0x000063e0 fetch  0x00000002 , 0x000006cf 
+ 00025626  0x000063e1 store  0x00000002 , 0x000006d6 
+ 00025627  0x000063e2 jam  0x00000000 , 0x000006d8 
+ 00025628  0x000063e3 force  0x00000000 , 0x00000007 
+ 00025629  0x000063e4 branch  0x0000709f 
+ 00025630  0x000063e7 fetch  0x00000001 , 0x00004e8c 
+ 00025631  0x000063e8 fetcht  0x00000001 , 0x00004e8f 
+ 00025632  0x000063e9 isub  0x00000002 , 0x0000003e 
+ 00025633  0x000063ea branch  0x00003798 , 0x00000005 
+ 00025634  0x000063eb fetch  0x00000001 , 0x00004e90 
+ 00025635  0x000063ec nbranch  0x0000379a , 0x00000034 
+ 00025636  0x000063ed rtn 
+ 00025637  0x000063f0 arg  0x00000000 , 0x00000007 
+ 00025638  0x000063f2 arg  0x00004ace , 0x00000012 
+ 00025639  0x000063f3 arg  0x00000002 , 0x0000003f 
+ 00025640  0x000063f4 imul32  0x00000007 , 0x0000003f 
+ 00025641  0x000063f5 iadd  0x00000012 , 0x00000012 
+ 00025642  0x000063f6 ifetch  0x00000002 , 0x00000012 
+ 00025643  0x000063f8 rtn  0x00000034 
+ 00025644  0x000063f9 fetcht  0x00000002 , 0x000006cf 
+ 00025645  0x000063fa ixor  0x00000002 , 0x0000003e 
+ 00025646  0x000063fb branch  0x00006431 , 0x00000005 
+ 00025647  0x000063fc increase  0x00000001 , 0x00000007 
+ 00025648  0x000063fd branch  0x00006426 
+ 00025649  0x00006400 store  0x00000002 , 0x00004ada 
+ 00025650  0x00006401 call  0x00003798 
+ 00025651  0x00006402 arg  0x00004adc , 0x00000013 
+ 00025652  0x00006403 arg  0x0000000a , 0x0000003f 
+ 00025653  0x00006404 imul32  0x00000007 , 0x0000003f 
+ 00025654  0x00006405 iadd  0x00000013 , 0x00000013 
+ 00025655  0x00006406 call  0x00006439 
+ 00025656  0x00006407 branch  0x0000647d 
+ 00025657  0x0000640a call  0x00006602 
+ 00025658  0x0000640b ifetch  0x00000001 , 0x00000013 
+ 00025659  0x0000640c rtn  0x00000034 
+ 00025660  0x0000640d call  0x0000648c 
+ 00025661  0x0000640f call  0x00006602 
+ 00025662  0x00006410 call  0x000065b3 
+ 00025663  0x00006411 nbranch  0x00006444 , 0x00000034 
+ 00025664  0x00006412 arg  0x0000001c , 0x0000003f 
+ 00025665  0x00006413 call  0x0000619f 
+ 00025666  0x00006414 arg  0x0000001d , 0x0000003f 
+ 00025667  0x00006415 branch  0x0000619f 
+ 00025668  0x00006418 call  0x00006453 
+ 00025669  0x00006419 call  0x0000645e 
+ 00025670  0x0000641a call  0x00006468 
+ 00025671  0x0000641b arg  0x00000029 , 0x0000003f 
+ 00025672  0x0000641c branch  0x0000619f 
+ 00025673  0x0000641f fetcht  0x00000001 , 0x00004e71 
+ 00025674  0x00006420 call  0x000065b3 
+ 00025675  0x00006421 rtn  0x00000034 
+ 00025676  0x00006422 fetcht  0x00000001 , 0x00004e74 
+ 00025677  0x00006423 increase  0x00000001 , 0x00000002 
+ 00025678  0x00006424 fetch  0x00000001 , 0x00004e8d 
+ 00025679  0x00006425 rtn  0x00000034 
+ 00025680  0x00006426 fetcht  0x00000001 , 0x00004e71 
+ 00025681  0x00006427 jam  0x00000000 , 0x00004e8d 
+ 00025682  0x00006428 rtn 
+ 00025683  0x0000642b call  0x00006449 
+ 00025684  0x0000642c copy  0x00000002 , 0x0000003f 
+ 00025685  0x0000642d rtn  0x00000034 
+ 00025686  0x0000642e store  0x00000001 , 0x00004e7a 
+ 00025687  0x00006430 arg  0x0000002b , 0x0000003f 
+ 00025688  0x00006431 call  0x0000619f 
+ 00025689  0x00006432 fetch  0x00000001 , 0x00004e7a 
+ 00025690  0x00006433 increase  0xffffffff , 0x0000003f 
+ 00025691  0x00006434 store  0x00000001 , 0x00004e7a 
+ 00025692  0x00006435 rtn  0x00000034 
+ 00025693  0x00006436 branch  0x00006457 
+ 00025694  0x00006439 fetch  0x00000001 , 0x00004e73 
+ 00025695  0x0000643a rtn  0x00000034 
+ 00025696  0x0000643b store  0x00000001 , 0x00004e7b 
+ 00025697  0x0000643d arg  0x0000002c , 0x0000003f 
+ 00025698  0x0000643e call  0x0000619f 
+ 00025699  0x0000643f fetch  0x00000001 , 0x00004e7b 
+ 00025700  0x00006440 increase  0xffffffff , 0x0000003f 
+ 00025701  0x00006441 store  0x00000001 , 0x00004e7b 
+ 00025702  0x00006442 rtn  0x00000034 
+ 00025703  0x00006443 branch  0x00006461 
+ 00025704  0x00006446 fetch  0x00000001 , 0x00004e74 
+ 00025705  0x00006447 rtn  0x00000034 
+ 00025706  0x00006448 store  0x00000001 , 0x00004e7c 
+ 00025707  0x0000644a arg  0x0000002d , 0x0000003f 
+ 00025708  0x0000644b call  0x0000619f 
+ 00025709  0x0000644c fetch  0x00000001 , 0x00004e7c 
+ 00025710  0x0000644d increase  0xffffffff , 0x0000003f 
+ 00025711  0x0000644e store  0x00000001 , 0x00004e7c 
+ 00025712  0x0000644f rtn  0x00000034 
+ 00025713  0x00006450 branch  0x0000646b 
+ 00025714  0x00006453 fetch  0x00000002 , 0x00004ada 
+ 00025715  0x00006454 rtn  0x00000034 
+ 00025716  0x00006455 fetcht  0x00000002 , 0x000006cf 
+ 00025717  0x00006456 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00025718  0x00006457 branch  0x00006480 , 0x00000005 
+ 00025719  0x00006458 isub  0x00000002 , 0x0000003e 
+ 00025720  0x00006459 rtn  0x00000005 
+ 00025721  0x0000645a storet  0x00000002 , 0x00004ada 
+ 00025722  0x0000645b fetch  0x00000002 , 0x00004e8a 
+ 00025723  0x0000645c isub  0x00000002 , 0x0000003e 
+ 00025724  0x0000645d call  0x0000379a , 0x00000005 
+ 00025725  0x0000645f fetch  0x00000002 , 0x000006cf 
+ 00025726  0x00006460 store  0x00000002 , 0x00004445 
+ 00025727  0x00006461 branch  0x00007dbc 
+ 00025728  0x00006463 jam  0x00000001 , 0x00004e87 
+ 00025729  0x00006464 call  0x0000379a 
+ 00025730  0x00006465 arg  0x00004b18 , 0x00000013 
+ 00025731  0x00006466 call  0x00006439 
+ 00025732  0x00006467 setarg  0x00000000 
+ 00025733  0x00006468 store  0x00000002 , 0x00004ada 
+ 00025734  0x00006469 jam  0x00000032 , 0x000046b1 
+ 00025735  0x0000646a call  0x0000647d 
+ 00025736  0x0000646b fetch  0x00000001 , 0x0000453a 
+ 00025737  0x0000646c mul32  0x0000003f , 0x0000000a , 0x00000039 
+ 00025738  0x0000646d arg  0x0000495d , 0x00000005 
+ 00025739  0x0000646e branch  0x00007ca3 
+ 00025740  0x00006470 bpatch  0x000000c6 , 0x00004018 
+ 00025741  0x00006471 fetch  0x00000001 , 0x00004e8e 
+ 00025742  0x00006472 beq  0x00000001 , 0x00006491 
+ 00025743  0x00006473 beq  0x00000000 , 0x00006497 
+ 00025744  0x00006474 rtn 
+ 00025745  0x00006476 copy  0x00000007 , 0x0000003f 
+ 00025746  0x00006477 beq  0x00000005 , 0x000064c0 
+ 00025747  0x00006478 beq  0x00000000 , 0x00006507 
+ 00025748  0x00006479 beq  0x00000004 , 0x0000650f 
+ 00025749  0x0000647a beq  0x00000002 , 0x00006539 
+ 00025750  0x0000647b rtn 
+ 00025751  0x0000647d ifetch  0x00000001 , 0x00000013 
+ 00025752  0x0000647e beq  0x00000001 , 0x000064c0 
+ 00025753  0x0000647f beq  0x00000002 , 0x00006507 
+ 00025754  0x00006480 beq  0x00000003 , 0x0000650f 
+ 00025755  0x00006481 beq  0x00000004 , 0x00006539 
+ 00025756  0x00006482 beq  0x00000005 , 0x0000649e 
+ 00025757  0x00006483 rtn 
+ 00025758  0x00006486 call  0x000065b3 
+ 00025759  0x00006487 nbranch  0x000064a8 , 0x00000034 
+ 00025760  0x00006488 setarg  0x0000001b 
+ 00025761  0x00006489 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025762  0x0000648a arg  0x00004c4b , 0x00000002 
+ 00025763  0x0000648b iadd  0x00000002 , 0x00000005 
+ 00025764  0x0000648c increase  0x00000005 , 0x00000005 
+ 00025765  0x0000648d fetch  0x00000004 , 0x00004b22 
+ 00025766  0x0000648e istore  0x00000004 , 0x00000005 
+ 00025767  0x0000648f rtn 
+ 00025768  0x00006492 setarg  0x00000029 
+ 00025769  0x00006493 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025770  0x00006494 arg  0x00004c4b , 0x00000002 
+ 00025771  0x00006495 iadd  0x00000002 , 0x00000005 
+ 00025772  0x00006496 increase  0x00000003 , 0x00000005 
+ 00025773  0x00006497 fetch  0x00000002 , 0x00004e75 
+ 00025774  0x00006498 istore  0x00000003 , 0x00000005 
+ 00025775  0x00006499 increase  0x00000007 , 0x00000005 
+ 00025776  0x0000649a fetch  0x00000002 , 0x00004e77 
+ 00025777  0x0000649b lshift4  0x0000003f , 0x0000003f 
+ 00025778  0x0000649c lshift8  0x0000003f , 0x0000003f 
+ 00025779  0x0000649d istore  0x00000003 , 0x00000005 
+ 00025780  0x0000649e rtn 
+ 00025781  0x000064a1 fetch  0x00000001 , 0x00004e73 
+ 00025782  0x000064a2 rtn  0x00000034 
+ 00025783  0x000064a3 increase  0xffffffff , 0x0000003f 
+ 00025784  0x000064a4 store  0x00000001 , 0x00004e73 
+ 00025785  0x000064a5 arg  0x00000fff , 0x0000003f 
+ 00025786  0x000064a6 rtn 
+ 00025787  0x000064a8 arg  0x00000055 , 0x00000002 
+ 00025788  0x000064a9 call  0x000065b3 
+ 00025789  0x000064aa rtn  0x00000034 
+ 00025790  0x000064ab arg  0x00000007 , 0x00000002 
+ 00025791  0x000064ac rtn 
+ 00025792  0x000064ae call  0x000064bb 
+ 00025793  0x000064af fetch  0x00000002 , 0x00004e75 
+ 00025794  0x000064b0 isub  0x00000002 , 0x0000003e 
+ 00025795  0x000064b1 ncall  0x000064b5 , 0x00000002 
+ 00025796  0x000064b2 nrtn  0x00000002 
+ 00025797  0x000064b3 isub  0x00000002 , 0x0000003f 
+ 00025798  0x000064b5 store  0x00000002 , 0x00004e75 
+ 00025799  0x000064b7 bpatch  0x000000c7 , 0x00004018 
+ 00025800  0x000064b8 call  0x000065b3 
+ 00025801  0x000064b9 branch  0x000064e2 , 0x00000034 
+ 00025802  0x000064bb fetch  0x00000002 , 0x00004e75 
+ 00025803  0x000064bc fetcht  0x00000002 , 0x00004e77 
+ 00025804  0x000064bd lshift8  0x00000002 , 0x00000002 
+ 00025805  0x000064be lshift4  0x00000002 , 0x00000002 
+ 00025806  0x000064bf iadd  0x00000002 , 0x0000003f 
+ 00025807  0x000064c0 store  0x00000003 , 0x00004b22 
+ 00025808  0x000064c1 call  0x000064d2 
+ 00025809  0x000064c2 branch  0x000064da 
+ 00025810  0x000064c5 setarg  0x00000028 
+ 00025811  0x000064c6 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025812  0x000064c7 arg  0x00004c4b , 0x00000002 
+ 00025813  0x000064c8 iadd  0x00000002 , 0x00000005 
+ 00025814  0x000064c9 increase  0x00000003 , 0x00000005 
+ 00025815  0x000064ca fetch  0x00000003 , 0x00004b22 
+ 00025816  0x000064cb istore  0x00000003 , 0x00000005 
+ 00025817  0x000064cc rtn 
+ 00025818  0x000064cf setarg  0x00000029 
+ 00025819  0x000064d0 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025820  0x000064d1 arg  0x00004c4b , 0x00000002 
+ 00025821  0x000064d2 iadd  0x00000002 , 0x00000005 
+ 00025822  0x000064d3 increase  0x00000003 , 0x00000005 
+ 00025823  0x000064d4 fetch  0x00000003 , 0x00004b22 
+ 00025824  0x000064d5 istore  0x00000003 , 0x00000005 
+ 00025825  0x000064d6 rtn 
+ 00025826  0x000064d9 fetch  0x00000002 , 0x00004e75 
+ 00025827  0x000064da fetcht  0x00000002 , 0x00004e77 
+ 00025828  0x000064db lshift16  0x00000002 , 0x00000002 
+ 00025829  0x000064dc iadd  0x00000002 , 0x0000003f 
+ 00025830  0x000064dd store  0x00000004 , 0x00004b22 
+ 00025831  0x000064de call  0x000064e9 
+ 00025832  0x000064df branch  0x000064f1 
+ 00025833  0x000064e2 setarg  0x0000001b 
+ 00025834  0x000064e3 mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025835  0x000064e4 arg  0x00004c4b , 0x00000002 
+ 00025836  0x000064e5 iadd  0x00000002 , 0x00000005 
+ 00025837  0x000064e6 increase  0x00000005 , 0x00000005 
+ 00025838  0x000064e7 fetch  0x00000004 , 0x00004b22 
+ 00025839  0x000064e8 istore  0x00000004 , 0x00000005 
+ 00025840  0x000064e9 rtn 
+ 00025841  0x000064ec setarg  0x0000001c 
+ 00025842  0x000064ed mul32  0x0000003f , 0x0000000a , 0x0000003f 
+ 00025843  0x000064ee arg  0x00004c4b , 0x00000002 
+ 00025844  0x000064ef iadd  0x00000002 , 0x00000005 
+ 00025845  0x000064f0 increase  0x00000005 , 0x00000005 
+ 00025846  0x000064f1 fetch  0x00000004 , 0x00004b22 
+ 00025847  0x000064f2 istore  0x00000004 , 0x00000005 
+ 00025848  0x000064f3 rtn 
+ 00025849  0x000064f6 fetch  0x00000002 , 0x00004e75 
+ 00025850  0x000064f7 arg  0x00000fff , 0x00000002 
+ 00025851  0x000064f8 isub  0x00000002 , 0x00000002 
+ 00025852  0x000064f9 nrtn  0x00000002 
+ 00025853  0x000064fa copy  0x00000002 , 0x0000003f 
+ 00025854  0x000064fb fetcht  0x00000001 , 0x00004e73 
+ 00025855  0x000064fc sub  0x00000002 , 0x00000003 , 0x0000003e 
+ 00025856  0x000064fd branch  0x00006504 , 0x00000005 
+ 00025857  0x000064fe increase  0x00000001 , 0x00000002 
+ 00025858  0x000064ff storet  0x00000001 , 0x00004e73 
+ 00025859  0x00006500 branch  0x000064c6 
+ 00025860  0x00006502 jam  0x00000000 , 0x00004e73 
+ 00025861  0x00006503 arg  0x00000000 , 0x0000003f 
+ 00025862  0x00006504 branch  0x000064c6 
+ 00025863  0x00006506 call  0x000065b3 
+ 00025864  0x00006507 ncall  0x000064f9 , 0x00000034 
+ 00025865  0x00006508 call  0x000064bb 
+ 00025866  0x00006509 fetch  0x00000002 , 0x00004e75 
+ 00025867  0x0000650b iadd  0x00000002 , 0x0000003f 
+ 00025868  0x0000650c arg  0x00000fff , 0x00000002 
+ 00025869  0x0000650d call  0x00007d6e 
+ 00025870  0x0000650e branch  0x000064c6 
+ 00025871  0x00006511 call  0x000065b3 
+ 00025872  0x00006512 branch  0x00006523 , 0x00000034 
+ 00025873  0x00006514 call  0x000064bb 
+ 00025874  0x00006515 fetch  0x00000002 , 0x00004e77 
+ 00025875  0x00006516 isub  0x00000002 , 0x0000003f 
+ 00025876  0x00006517 store  0x00000002 , 0x00004e77 
+ 00025877  0x00006518 fetcht  0x00000002 , 0x00004e77 
+ 00025878  0x00006519 setarg  0x00000fff 
+ 00025879  0x0000651a isub  0x00000002 , 0x0000003f 
+ 00025880  0x0000651b arg  0x00000fff , 0x00000002 
+ 00025881  0x0000651c isub  0x00000002 , 0x00000002 
+ 00025882  0x0000651d nbranch  0x000064c7 , 0x00000002 
+ 00025883  0x0000651e setarg  0x00000fff 
+ 00025884  0x0000651f isub  0x00000002 , 0x0000003f 
+ 00025885  0x00006520 fetcht  0x00000001 , 0x00004e74 
+ 00025886  0x00006521 sub  0x00000002 , 0x00000005 , 0x0000003e 
+ 00025887  0x00006522 branch  0x0000652a , 0x00000005 
+ 00025888  0x00006523 increase  0x00000001 , 0x00000002 
+ 00025889  0x00006524 storet  0x00000001 , 0x00004e74 
+ 00025890  0x00006525 branch  0x00006537 
+ 00025891  0x00006528 call  0x000064bb 
+ 00025892  0x00006529 fetch  0x00000002 , 0x00004e77 
+ 00025893  0x0000652a isub  0x00000002 , 0x0000003e 
+ 00025894  0x0000652b nrtn  0x00000002 
+ 00025895  0x0000652c isub  0x00000002 , 0x0000003f 
+ 00025896  0x0000652d store  0x00000002 , 0x00004e77 
+ 00025897  0x0000652e branch  0x000064c7 
+ 00025898  0x00006532 jam  0x00000000 , 0x00004e74 
+ 00025899  0x00006534 setarg  0x00000fff 
+ 00025900  0x00006535 branch  0x00006537 
+ 00025901  0x00006538 call  0x000065b3 
+ 00025902  0x00006539 branch  0x0000652b , 0x00000034 
+ 00025903  0x0000653a fetch  0x00000001 , 0x00004e74 
+ 00025904  0x0000653b branch  0x0000652b , 0x00000034 
+ 00025905  0x0000653c increase  0xffffffff , 0x0000003f 
+ 00025906  0x0000653d store  0x00000001 , 0x00004e74 
+ 00025907  0x0000653e setarg  0x0000ffff 
+ 00025908  0x0000653f arg  0x00000fff , 0x00000002 
+ 00025909  0x00006540 isub  0x00000002 , 0x0000003f 
+ 00025910  0x00006541 iadd  0x00000011 , 0x0000003f 
+ 00025911  0x00006543 store  0x00000002 , 0x00004e77 
+ 00025912  0x00006544 branch  0x000064c7 
+ 00025913  0x00006547 call  0x000065b3 
+ 00025914  0x00006548 branch  0x00006542 , 0x00000034 
+ 00025915  0x0000654a call  0x000064bb 
+ 00025916  0x0000654b fetch  0x00000002 , 0x00004e77 
+ 00025917  0x0000654c iadd  0x00000002 , 0x0000003f 
+ 00025918  0x0000654d arg  0x00000fff , 0x00000002 
+ 00025919  0x0000654e isub  0x00000002 , 0x00000011 
+ 00025920  0x0000654f call  0x0000652d , 0x00000002 
+ 00025921  0x00006550 branch  0x00006537 
+ 00025922  0x00006553 call  0x000064bb 
+ 00025923  0x00006554 fetch  0x00000002 , 0x00004e77 
+ 00025924  0x00006555 iadd  0x00000002 , 0x0000003f 
+ 00025925  0x00006556 arg  0x00000fff , 0x00000002 
+ 00025926  0x00006557 call  0x00007d6e 
+ 00025927  0x00006558 branch  0x00006537 
+ 00025928  0x0000655b fetch  0x00000002 , 0x0000439c 
+ 00025929  0x0000655c beq  0x00000024 , 0x00006103 
+ 00025930  0x0000655d rtn 
+ 00025931  0x00006560 arg  0x00000017 , 0x00000011 
+ 00025932  0x00006561 arg  0x00000004 , 0x00000012 
+ 00025933  0x00006562 call  0x000029d9 
+ 00025934  0x00006563 setarg  0x00000006 
+ 00025935  0x00006564 istore  0x00000001 , 0x00000005 
+ 00025936  0x00006565 setarg  0x00000001 
+ 00025937  0x00006566 istore  0x00000002 , 0x00000005 
+ 00025938  0x00006567 setarg  0x0000ffff 
+ 00025939  0x00006568 istore  0x00000002 , 0x00000005 
+ 00025940  0x00006569 setarg  0x00002800 
+ 00025941  0x0000656a istore  0x00000002 , 0x00000005 
+ 00025942  0x0000656b arg  0x00004947 , 0x00000006 
+ 00025943  0x0000656c branch  0x00007c91 
+ 00025944  0x00006570 bpatch  0x000000c8 , 0x00004019 
+ 00025945  0x00006571 copy  0x00000011 , 0x00000006 
+ 00025946  0x00006572 ifetch  0x00000003 , 0x00000006 
+ 00025947  0x00006573 store  0x00000003 , 0x0000439b 
+ 00025948  0x00006574 beq  0x00000007 , 0x00006587 
+ 00025949  0x00006575 beq  0x00000001 , 0x000065a8 
+ 00025950  0x00006576 beq  0x0000000a , 0x00006577 
+ 00025951  0x00006577 beq  0x0000000c , 0x00006561 
+ 00025952  0x00006578 branch  0x00002b76 
+ 00025953  0x0000657b ifetch  0x00000002 , 0x00000006 
+ 00025954  0x0000657c store  0x00000002 , 0x00000693 
+ 00025955  0x0000657d iforce  0x00000011 
+ 00025956  0x0000657e fetcht  0x00000002 , 0x0000439c 
+ 00025957  0x0000657f fetch  0x00000002 , 0x00004334 
+ 00025958  0x00006580 isub  0x00000002 , 0x0000003e 
+ 00025959  0x00006581 nbranch  0x00002d2e , 0x00000005 
+ 00025960  0x00006582 call  0x000065b3 
+ 00025961  0x00006583 nbranch  0x0000656c , 0x00000034 
+ 00025962  0x00006584 fetcht  0x00000002 , 0x00004943 
+ 00025963  0x00006585 branch  0x0000656d 
+ 00025964  0x00006588 fetcht  0x00000002 , 0x00004945 
+ 00025965  0x0000658a arg  0x000046c1 , 0x00000006 
+ 00025966  0x0000658b call  0x00007c6f 
+ 00025967  0x0000658c copy  0x00000002 , 0x0000003f 
+ 00025968  0x0000658d isub  0x00000011 , 0x0000003f 
+ 00025969  0x0000658e nbranch  0x00002de1 , 0x00000002 
+ 00025970  0x0000658f increase  0x00000001 , 0x0000003f 
+ 00025971  0x00006590 sub  0x0000003f , 0x00000017 , 0x0000003e 
+ 00025972  0x00006591 branch  0x00002d37 , 0x00000002 
+ 00025973  0x00006592 force  0x00000017 , 0x0000003f 
+ 00025974  0x00006593 branch  0x00002d37 
+ 00025975  0x00006596 fetcht  0x00000002 , 0x0000439c 
+ 00025976  0x00006597 fetch  0x00000001 , 0x00004323 
+ 00025977  0x00006598 bbit1  0x00000003 , 0x0000657b 
+ 00025978  0x00006599 branch  0x00002cfb 
+ 00025979  0x0000659b fetch  0x00000002 , 0x00004334 
+ 00025980  0x0000659c isub  0x00000002 , 0x0000003e 
+ 00025981  0x0000659d nbranch  0x00002cfb , 0x00000005 
+ 00025982  0x0000659e call  0x00002da5 
+ 00025983  0x0000659f nbranch  0x00006581 , 0x00000028 
+ 00025984  0x000065a0 branch  0x00002d24 
+ 00025985  0x000065a3 fetch  0x00000002 , 0x00004334 
+ 00025986  0x000065a4 isub  0x00000002 , 0x0000003e 
+ 00025987  0x000065a5 nbranch  0x00002cfb , 0x00000005 
+ 00025988  0x000065a6 arg  0x000046c1 , 0x00000006 
+ 00025989  0x000065a7 force  0x00000017 , 0x0000003f 
+ 00025990  0x000065a8 branch  0x00002d0b 
+ 00025991  0x000065ac bpatch  0x000000c9 , 0x00004019 
+ 00025992  0x000065ad jam  0x00000005 , 0x00004e71 
+ 00025993  0x000065ae jam  0x00000001 , 0x00004957 
+ 00025994  0x000065af jam  0x00000001 , 0x00004e79 
+ 00025995  0x000065b0 jam  0x000000f0 , 0x00004958 
+ 00025996  0x000065b1 jam  0x0000000a , 0x00004e88 
+ 00025997  0x000065b2 jam  0x00000001 , 0x00004e8d 
+ 00025998  0x000065b3 call  0x00006642 
+ 00025999  0x000065b4 fetch  0x00000001 , 0x00004e89 
+ 00026000  0x000065b5 rtn  0x00000034 
+ 00026001  0x000065b6 call  0x00006606 
+ 00026002  0x000065b7 arg  0x00000fff , 0x00000002 
+ 00026003  0x000065b9 fetch  0x00000002 , 0x00004f03 
+ 00026004  0x000065ba arg  0x00004e75 , 0x00000011 
+ 00026005  0x000065bb arg  0x00004e73 , 0x00000012 
+ 00026006  0x000065bc call  0x000065a1 
+ 00026007  0x000065bd arg  0x00000fff , 0x00000002 
+ 00026008  0x000065bf fetch  0x00000002 , 0x00004f05 
+ 00026009  0x000065c0 arg  0x00004e77 , 0x00000011 
+ 00026010  0x000065c1 arg  0x00004e74 , 0x00000012 
+ 00026011  0x000065c2 call  0x000065a1 
+ 00026012  0x000065c3 setarg  0x00000fff 
+ 00026013  0x000065c4 fetcht  0x00000002 , 0x00004e77 
+ 00026014  0x000065c5 isub  0x00000002 , 0x0000003f 
+ 00026015  0x000065c6 store  0x00000002 , 0x00004e77 
+ 00026016  0x000065c7 rtn 
+ 00026017  0x000065ca idiv  0x00000002 
+ 00026018  0x000065cb call  0x00007d64 
+ 00026019  0x000065cc quotient  0x0000003f 
+ 00026020  0x000065cd remainder  0x00000002 
+ 00026021  0x000065ce istore  0x00000001 , 0x00000012 
+ 00026022  0x000065cf istoret  0x00000002 , 0x00000011 
+ 00026023  0x000065d0 rtn 
+ 00026024  0x000065d2 increase  0xfffffffe , 0x00000006 
+ 00026025  0x000065d3 ifetch  0x00000001 , 0x00000006 
+ 00026026  0x000065d4 beq  0x00000006 , 0x000065b1 
+ 00026027  0x000065d5 rtn 
+ 00026028  0x000065d7 jam  0x00000001 , 0x00004e71 
+ 00026029  0x000065d8 jam  0x00000000 , 0x00004957 
+ 00026030  0x000065d9 jam  0x00000000 , 0x00004e79 
+ 00026031  0x000065da jam  0x0000000a , 0x00004958 
+ 00026032  0x000065db rtn 
+ 00026033  0x000065de call  0x000065ac 
+ 00026034  0x000065df branch  0x00006642 
+ 00026035  0x000065e2 fetch  0x00000001 , 0x00004957 
+ 00026036  0x000065e3 rtn 
+ 00026037  0x000065e7 arg  0x000049b7 , 0x00000013 
+ 00026038  0x000065e8 call  0x000065b3 
+ 00026039  0x000065e9 rtn  0x00000034 
+ 00026040  0x000065ea jam  0x00000078 , 0x00004958 
+ 00026041  0x000065eb arg  0x00004b26 , 0x00000013 
+ 00026042  0x000065ec rtn 
+ 00026043  0x000065ef arg  0x00004a11 , 0x00000013 
+ 00026044  0x000065f0 call  0x000065b3 
+ 00026045  0x000065f1 rtn  0x00000034 
+ 00026046  0x000065f2 arg  0x00004b76 , 0x00000013 
+ 00026047  0x000065f3 jam  0x0000000c , 0x00004958 
+ 00026048  0x000065f4 copy  0x00000007 , 0x0000003f 
+ 00026049  0x000065f5 rtneq  0x00000001 
+ 00026050  0x000065f6 rtn 
+ 00026051  0x000065f8 bpatch  0x000000ca , 0x00004019 
+ 00026052  0x000065f9 fetch  0x00000001 , 0x00004c47 
+ 00026053  0x000065fa setflip  0x00000000 , 0x0000003f 
+ 00026054  0x000065fb store  0x00000001 , 0x00004c47 
+ 00026055  0x000065fc beq  0x00000000 , 0x000065cc 
+ 00026056  0x000065fd beq  0x00000001 , 0x000065ca 
+ 00026057  0x000065fe rtn 
+ 00026058  0x00006600 call  0x000065d3 
+ 00026059  0x00006601 branch  0x0000618e 
+ 00026060  0x00006603 call  0x000065ce 
+ 00026061  0x00006604 branch  0x0000618e 
+ 00026062  0x00006606 arg  0x00004a3e , 0x00000013 
+ 00026063  0x00006607 call  0x000065b3 
+ 00026064  0x00006608 rtn  0x00000034 
+ 00026065  0x00006609 arg  0x00004ba3 , 0x00000013 
+ 00026066  0x0000660a rtn 
+ 00026067  0x0000660c arg  0x00004c33 , 0x00000013 
+ 00026068  0x0000660d call  0x000065b3 
+ 00026069  0x0000660e rtn  0x00000034 
+ 00026070  0x0000660f arg  0x00004c3d , 0x00000013 
+ 00026071  0x00006610 rtn 
+ 00026072  0x00006614 copy  0x00000007 , 0x0000003f 
+ 00026073  0x00006615 beq  0x00000001 , 0x000065fa 
+ 00026074  0x00006616 beq  0x00000002 , 0x000065e8 
+ 00026075  0x00006617 beq  0x00000004 , 0x000065e4 
+ 00026076  0x00006618 rtn 
+ 00026077  0x0000661c arg  0x00004f18 , 0x00000013 
+ 00026078  0x0000661d arg  0x000065e0 , 0x00000012 
+ 00026079  0x0000661e branch  0x00003755 
+ 00026080  0x00006620 jam  0x00000004 , 0x00004f18 
+ 00026081  0x00006621 fetch  0x00000001 , 0x00004c47 
+ 00026082  0x00006622 branch  0x000065e4 , 0x00000034 
+ 00026083  0x00006623 branch  0x000065e8 
+ 00026084  0x00006627 jam  0x00000000 , 0x00004c47 
+ 00026085  0x00006628 jam  0x00000004 , 0x00004f18 
+ 00026086  0x00006629 arg  0x00004aa4 , 0x00000013 
+ 00026087  0x0000662a branch  0x0000618e 
+ 00026088  0x0000662d jam  0x00000001 , 0x00004c47 
+ 00026089  0x0000662e jam  0x00000004 , 0x00004f18 
+ 00026090  0x0000662f arg  0x00004a9e , 0x00000013 
+ 00026091  0x00006630 branch  0x0000618e 
+ 00026092  0x00006632 jam  0x00000000 , 0x00004c47 
+ 00026093  0x00006633 jam  0x00000000 , 0x00004f18 
+ 00026094  0x00006634 rtn 
+ 00026095  0x00006638 arg  0x00004f19 , 0x00000013 
+ 00026096  0x00006639 arg  0x000065f2 , 0x00000012 
+ 00026097  0x0000663a branch  0x00003755 
+ 00026098  0x0000663c jam  0x00000002 , 0x00004f19 
+ 00026099  0x0000663d call  0x000065f5 
+ 00026100  0x0000663e branch  0x0000618e 
+ 00026101  0x00006641 arg  0x00004f1a , 0x00000013 
+ 00026102  0x00006642 call  0x000065b3 
+ 00026103  0x00006643 rtn  0x00000034 
+ 00026104  0x00006644 arg  0x00004f22 , 0x00000013 
+ 00026105  0x00006645 rtn 
+ 00026106  0x00006648 fetch  0x00000001 , 0x00004f2a 
+ 00026107  0x00006649 nbranch  0x000065ff , 0x00000034 
+ 00026108  0x0000664a jam  0x00000001 , 0x00004f2a 
+ 00026109  0x0000664b jam  0x00000002 , 0x00004f19 
+ 00026110  0x0000664c rtn 
+ 00026111  0x0000664f jam  0x00000000 , 0x00004f2a 
+ 00026112  0x00006650 jam  0x00000000 , 0x00004f19 
+ 00026113  0x00006651 rtn 
+ 00026114  0x00006654 fetch  0x00000001 , 0x00004e72 
+ 00026115  0x00006655 nrtn  0x00000034 
+ 00026116  0x00006656 jam  0x00000001 , 0x00004e72 
+ 00026117  0x00006657 branch  0x000064c7 
+ 00026118  0x0000665a setarg  0x00000000 
+ 00026119  0x0000665b store  0x00000007 , 0x00004e73 
+ 00026120  0x0000665c rtn 
+ 00026121  0x0000665f call  0x000065b3 
+ 00026122  0x00006660 beq  0x00000001 , 0x00006611 
+ 00026123  0x00006661 beq  0x00000000 , 0x00006623 
+ 00026124  0x00006662 rtn 
+ 00026125  0x00006665 fetch  0x00000001 , 0x00004f0b 
+ 00026126  0x00006666 beq  0x00000001 , 0x0000662a 
+ 00026127  0x00006667 beq  0x00000000 , 0x0000663c 
+ 00026128  0x00006668 rtn 
+ 00026129  0x0000666b fetch  0x00000001 , 0x00004e73 
+ 00026130  0x0000666c mul32  0x0000003f , 0x00000fff , 0x0000003f 
+ 00026131  0x0000666d copy  0x0000003f , 0x00000002 
+ 00026132  0x0000666e fetch  0x00000002 , 0x00004e75 
+ 00026133  0x0000666f iadd  0x00000002 , 0x0000003f 
+ 00026134  0x00006670 store  0x00000002 , 0x00004f07 
+ 00026135  0x00006672 fetch  0x00000001 , 0x00004e74 
+ 00026136  0x00006673 mul32  0x0000003f , 0x00000fff , 0x0000003f 
+ 00026137  0x00006674 copy  0x0000003f , 0x00000002 
+ 00026138  0x00006675 fetch  0x00000002 , 0x00004e77 
+ 00026139  0x00006676 copy  0x0000003f , 0x00000011 
+ 00026140  0x00006677 setarg  0x00000fff 
+ 00026141  0x00006678 isub  0x00000011 , 0x0000003f 
+ 00026142  0x00006679 iadd  0x00000002 , 0x0000003f 
+ 00026143  0x0000667a store  0x00000002 , 0x00004f09 
+ 00026144  0x0000667c call  0x000065b3 
+ 00026145  0x0000667e store  0x00000001 , 0x00004f0b 
+ 00026146  0x0000667f rtn 
+ 00026147  0x00006682 fetch  0x00000002 , 0x00004e75 
+ 00026148  0x00006683 store  0x00000002 , 0x00004f07 
+ 00026149  0x00006684 fetch  0x00000002 , 0x00004e77 
+ 00026150  0x00006685 store  0x00000002 , 0x00004f09 
+ 00026151  0x00006686 call  0x000065b3 
+ 00026152  0x00006687 store  0x00000001 , 0x00004f0b 
+ 00026153  0x00006688 rtn 
+ 00026154  0x0000668a fetch  0x00000002 , 0x00004f07 
+ 00026155  0x0000668b div  0x0000003f , 0x00000fff 
+ 00026156  0x0000668c call  0x00007d64 
+ 00026157  0x0000668d quotient  0x0000003f 
+ 00026158  0x0000668e remainder  0x00000002 
+ 00026159  0x0000668f store  0x00000001 , 0x00004e73 
+ 00026160  0x00006690 copy  0x00000002 , 0x0000003f 
+ 00026161  0x00006691 store  0x00000002 , 0x00004e75 
+ 00026162  0x00006692 fetch  0x00000002 , 0x00004f09 
+ 00026163  0x00006693 div  0x0000003f , 0x00000fff 
+ 00026164  0x00006694 call  0x00007d64 
+ 00026165  0x00006695 quotient  0x0000003f 
+ 00026166  0x00006696 remainder  0x00000002 
+ 00026167  0x00006697 store  0x00000001 , 0x00004e74 
+ 00026168  0x00006699 setarg  0x00000fff 
+ 00026169  0x0000669a isub  0x00000002 , 0x0000003f 
+ 00026170  0x0000669b store  0x00000002 , 0x00004e77 
+ 00026171  0x0000669e rtn 
+ 00026172  0x000066a0 fetch  0x00000002 , 0x00004f07 
+ 00026173  0x000066a1 store  0x00000002 , 0x00004e75 
+ 00026174  0x000066a2 fetch  0x00000002 , 0x00004f09 
+ 00026175  0x000066a3 store  0x00000002 , 0x00004e77 
+ 00026176  0x000066a6 rtn 
+ 00026177  0x000066a9 branch  0x000066bd 
+ 00026178  0x000066ac branch  0x000066a4 
+ 00026179  0x000066b0 call  0x00006665 
+ 00026180  0x000066b1 fetch  0x00000002 , 0x00004f0e 
+ 00026181  0x000066b2 call  0x000066d0 
+ 00026182  0x000066b3 jam  0x00000000 , 0x00004f16 
+ 00026183  0x000066b4 fetch  0x00000005 , 0x00004f07 
+ 00026184  0x000066b5 jam  0x00000000 , 0x00004f17 
+ 00026185  0x000066b6 jam  0x00000000 , 0x00004f14 
+ 00026186  0x000066b7 call  0x00006669 
+ 00026187  0x000066b8 fetch  0x00000001 , 0x00004f14 
+ 00026188  0x000066b9 rtneq  0x00000000 
+ 00026189  0x000066ba branch  0x00006643 
+ 00026190  0x000066bf fetch  0x00000002 , 0x00004efb 
+ 00026191  0x000066c0 increase  0xfffffffb , 0x0000003f 
+ 00026192  0x000066c1 store  0x00000002 , 0x00004f0e 
+ 00026193  0x000066c2 rtn 
+ 00026194  0x000066c6 fetch  0x00000002 , 0x00004f0e 
+ 00026195  0x000066c7 increase  0xfffffffb , 0x0000003f 
+ 00026196  0x000066c8 store  0x00000002 , 0x00004f0e 
+ 00026197  0x000066c9 rtn 
+ 00026198  0x000066cd fetch  0x00000002 , 0x00004f0e 
+ 00026199  0x000066ce pincrease  0x00000005 
+ 00026200  0x000066cf store  0x00000002 , 0x00004f0e 
+ 00026201  0x000066d0 rtn 
+ 00026202  0x000066d3 fetch  0x00000002 , 0x00004f10 
+ 00026203  0x000066d4 pincrease  0x00000005 
+ 00026204  0x000066d5 store  0x00000002 , 0x00004f10 
+ 00026205  0x000066d7 fetch  0x00000002 , 0x00004f10 
+ 00026206  0x000066d8 copy  0x0000003f , 0x00000002 
+ 00026207  0x000066da fetch  0x00000002 , 0x00004efb 
+ 00026208  0x000066db isub  0x00000002 , 0x0000003f 
+ 00026209  0x000066dc arg  0x00000005 , 0x00000002 
+ 00026210  0x000066dd isub  0x00000002 , 0x0000003e 
+ 00026211  0x000066df nbranch  0x00006689 , 0x00000002 
+ 00026212  0x000066e0 rtn 
+ 00026213  0x000066e3 fetch  0x00000001 , 0x00004f16 
+ 00026214  0x000066e4 beq  0x00000001 , 0x0000664e 
+ 00026215  0x000066e5 beq  0x00000000 , 0x00006652 
+ 00026216  0x000066e6 rtn 
+ 00026217  0x000066ea arg  0x00000000 , 0x00000012 
+ 00026218  0x000066eb copy  0x00000012 , 0x00000002 
+ 00026219  0x000066ec fetch  0x00000002 , 0x00004f07 
+ 00026220  0x000066ed icompare  0x0000ffff , 0x00000002 
+ 00026221  0x000066ef ncall  0x00006679 , 0x00000001 
+ 00026222  0x000066f0 arg  0x00000000 , 0x00000012 
+ 00026223  0x000066f1 copy  0x00000012 , 0x00000002 
+ 00026224  0x000066f2 fetch  0x00000002 , 0x00004f09 
+ 00026225  0x000066f3 icompare  0x0000ffff , 0x00000002 
+ 00026226  0x000066f4 ncall  0x00006679 , 0x00000001 
+ 00026227  0x000066f5 arg  0x00000000 , 0x00000012 
+ 00026228  0x000066f6 copy  0x00000012 , 0x00000002 
+ 00026229  0x000066f7 fetch  0x00000001 , 0x00004f0b 
+ 00026230  0x000066f8 icompare  0x000000ff , 0x00000002 
+ 00026231  0x000066f9 ncall  0x00006679 , 0x00000001 
+ 00026232  0x000066fa rtn 
+ 00026233  0x000066fe fetch  0x00000001 , 0x00004f14 
+ 00026234  0x000066ff pincrease  0x00000001 
+ 00026235  0x00006700 store  0x00000001 , 0x00004f14 
+ 00026236  0x00006701 rtn 
+ 00026237  0x00006703 jam  0x00000001 , 0x00004f14 
+ 00026238  0x00006704 call  0x0000665a 
+ 00026239  0x00006705 fetch  0x00000002 , 0x00004f10 
+ 00026240  0x00006706 call  0x000066d0 
+ 00026241  0x00006707 call  0x000065b3 
+ 00026242  0x00006708 copy  0x0000003f , 0x00000002 
+ 00026243  0x00006709 fetch  0x00000001 , 0x00004f0b 
+ 00026244  0x0000670a icompare  0x000000ff , 0x00000002 
+ 00026245  0x0000670b call  0x000066a2 , 0x00000001 
+ 00026246  0x0000670d fetch  0x00000001 , 0x00004f14 
+ 00026247  0x0000670e rtneq  0x00000000 
+ 00026248  0x0000670f branch  0x0000667d 
+ 00026249  0x00006713 bpatch  0x000000cb , 0x00004019 
+ 00026250  0x00006714 call  0x000066a2 
+ 00026251  0x00006715 call  0x000065b3 
+ 00026252  0x00006716 branch  0x0000668e , 0x00000034 
+ 00026253  0x00006717 branch  0x00006693 
+ 00026254  0x00006719 fetch  0x00000002 , 0x00004eff 
+ 00026255  0x0000671a store  0x00000002 , 0x00004e75 
+ 00026256  0x0000671b fetch  0x00000002 , 0x00004f01 
+ 00026257  0x0000671c store  0x00000002 , 0x00004e77 
+ 00026258  0x0000671d branch  0x00006641 
+ 00026259  0x00006720 arg  0x00000fff , 0x00000002 
+ 00026260  0x00006722 fetch  0x00000002 , 0x00004f03 
+ 00026261  0x00006723 arg  0x00004e75 , 0x00000011 
+ 00026262  0x00006724 arg  0x00004e73 , 0x00000012 
+ 00026263  0x00006725 call  0x000065a1 
+ 00026264  0x00006726 arg  0x00000fff , 0x00000002 
+ 00026265  0x00006728 fetch  0x00000002 , 0x00004f05 
+ 00026266  0x00006729 arg  0x00004e77 , 0x00000011 
+ 00026267  0x0000672a arg  0x00004e74 , 0x00000012 
+ 00026268  0x0000672b call  0x000065a1 
+ 00026269  0x0000672c setarg  0x00000fff 
+ 00026270  0x0000672d fetcht  0x00000002 , 0x00004e77 
+ 00026271  0x0000672e isub  0x00000002 , 0x0000003f 
+ 00026272  0x0000672f store  0x00000002 , 0x00004e77 
+ 00026273  0x00006730 branch  0x00006641 
+ 00026274  0x00006733 jam  0x00000000 , 0x00004f14 
+ 00026275  0x00006734 rtn 
+ 00026276  0x00006737 bpatch  0x000000cc , 0x00004019 
+ 00026277  0x00006738 jam  0x00000001 , 0x00004f16 
+ 00026278  0x00006739 call  0x00006643 
+ 00026279  0x0000673d fetch  0x00000002 , 0x00004efd 
+ 00026280  0x0000673e copy  0x0000003f , 0x00000002 
+ 00026281  0x0000673f fetch  0x00000002 , 0x00004f0e 
+ 00026282  0x00006740 isub  0x00000002 , 0x0000003f 
+ 00026283  0x00006741 arg  0x00000000 , 0x00000002 
+ 00026284  0x00006742 isub  0x00000002 , 0x0000003e 
+ 00026285  0x00006743 nrtn  0x00000002 
+ 00026286  0x00006744 fetch  0x00000002 , 0x00004f0e 
+ 00026287  0x00006745 copy  0x0000003f , 0x00000002 
+ 00026288  0x00006747 fetch  0x00000002 , 0x00004efb 
+ 00026289  0x00006748 increase  0xfffffffb , 0x0000003f 
+ 00026290  0x00006749 isub  0x00000002 , 0x0000003f 
+ 00026291  0x0000674c fetch  0x00000002 , 0x00004f0e 
+ 00026292  0x0000674d store  0x00000002 , 0x00004f10 
+ 00026293  0x0000674e call  0x0000667d 
+ 00026294  0x0000674f fetch  0x00000002 , 0x00004f10 
+ 00026295  0x00006750 ncall  0x000066d0 , 0x00000005 
+ 00026296  0x00006753 jam  0x00000000 , 0x00004f14 
+ 00026297  0x00006754 call  0x00006669 
+ 00026298  0x00006755 fetch  0x00000001 , 0x00004f14 
+ 00026299  0x00006756 rtneq  0x00000000 
+ 00026300  0x00006757 branch  0x0000660d 
+ 00026301  0x0000675b bpatch  0x000000cd , 0x00004019 
+ 00026302  0x0000675c jam  0x00000001 , 0x00004f16 
+ 00026303  0x0000675d call  0x00006643 
+ 00026304  0x00006761 fetcht  0x00000002 , 0x00004efd 
+ 00026305  0x00006763 fetch  0x00000002 , 0x00004f0e 
+ 00026306  0x00006764 isub  0x00000002 , 0x0000003f 
+ 00026307  0x00006765 arg  0x00000000 , 0x00000002 
+ 00026308  0x00006766 isub  0x00000002 , 0x0000003e 
+ 00026309  0x00006767 nrtn  0x00000002 
+ 00026310  0x00006769 fetcht  0x00000002 , 0x00004f0e 
+ 00026311  0x0000676b fetch  0x00000002 , 0x00004efb 
+ 00026312  0x0000676c isub  0x00000002 , 0x0000003f 
+ 00026313  0x0000676d arg  0x00000000 , 0x00000002 
+ 00026314  0x0000676e isub  0x00000002 , 0x0000003e 
+ 00026315  0x0000676f nrtn  0x00000002 
+ 00026316  0x00006770 fetch  0x00000002 , 0x00004f0e 
+ 00026317  0x00006771 store  0x00000002 , 0x00004f0c 
+ 00026318  0x00006772 call  0x00006609 
+ 00026319  0x00006774 branch  0x000066d5 
+ 00026320  0x00006778 copy  0x0000003f , 0x00000012 
+ 00026321  0x00006779 bpatch  0x000000ce , 0x00004019 
+ 00026322  0x0000677a arg  0x00000005 , 0x00000039 
+ 00026323  0x0000677b arg  0x00004f07 , 0x00000011 
+ 00026324  0x0000677c branch  0x00006b62 
+ 00026325  0x00006780 arg  0x00000005 , 0x00000039 
+ 00026326  0x00006781 arg  0x00004f07 , 0x00000011 
+ 00026327  0x00006782 fetchr  0x00000012 , 0x00000002 , 0x00004f0c 
+ 00026328  0x00006783 branch  0x00006b33 
+ 00026329  0x00006786 arg  0x000046b1 , 0x00000013 
+ 00026330  0x00006787 arg  0x00006641 , 0x00000012 
+ 00026331  0x00006788 branch  0x00003755 
+ 00026332  0x00006794 fetch  0x00000001 , 0x00004456 
+ 00026333  0x00006796 arg  0x0000003e , 0x00000002 
+ 00026334  0x00006797 branch  0x00006f1c 
+ 00026335  0x0000679b fetch  0x00000001 , 0x00004456 
+ 00026336  0x0000679d arg  0x0000003f , 0x00000002 
+ 00026337  0x0000679e branch  0x00006f1c 
+ 00026338  0x000067a1 call  0x000066df 
+ 00026339  0x000067a3 call  0x000066dc 
+ 00026340  0x000067a4 branch  0x000066df 
+ 00026341  0x000067a8 call  0x000066e3 
+ 00026342  0x000067aa branch  0x000066dc 
+ 00026343  0x000067ad branch  0x000066e3 
+ 00026344  0x000067b0 call  0x000066e3 
+ 00026345  0x000067b1 branch  0x000066e5 
+ 00026346  0x000067b6 branch  0x000066dc 
+ 00026347  0x000067bb fetch  0x00000001 , 0x00004457 
+ 00026348  0x000067bc branch  0x000066dd 
+ 00026349  0x000067c0 fetch  0x00000001 , 0x00004457 
+ 00026350  0x000067c1 branch  0x000066e0 
+ 00026351  0x000067c4 call  0x000066eb 
+ 00026352  0x000067c5 call  0x000066ed 
+ 00026353  0x000067c6 branch  0x000066eb 
+ 00026354  0x000067ce clear_stack 
+ 00026355  0x000067cf call  0x0000711d 
+ 00026356  0x000067d0 call  0x000066fd 
+ 00026357  0x000067d1 call  0x000066ff 
+ 00026358  0x000067d2 call  0x00006713 
+ 00026359  0x000067d3 call  0x0000672f 
+ 00026360  0x000067d4 call  0x00006733 
+ 00026361  0x000067d6 jam  0x00000001 , 0x000006ed 
+ 00026362  0x000067d7 jam  0x00000004 , 0x000006ea 
+ 00026363  0x000067da call  0x0000673e 
+ 00026364  0x000067db branch  0x000066fb 
+ 00026365  0x000067de jam  0x00000004 , 0x00008042 
+ 00026366  0x000067df rtn 
+ 00026367  0x000067e2 call  0x00006703 
+ 00026368  0x000067e3 call  0x00006707 
+ 00026369  0x000067e4 call  0x0000670b 
+ 00026370  0x000067e5 branch  0x0000670f 
+ 00026371  0x000067e8 fetch  0x00000001 , 0x00004508 
+ 00026372  0x000067e9 nrtn  0x00000034 
+ 00026373  0x000067ea jam  0x00000007 , 0x00004508 
+ 00026374  0x000067eb rtn 
+ 00026375  0x000067ee fetch  0x00000001 , 0x00004509 
+ 00026376  0x000067ef nrtn  0x00000034 
+ 00026377  0x000067f0 jam  0x00000006 , 0x00004509 
+ 00026378  0x000067f1 rtn 
+ 00026379  0x000067f3 fetch  0x00000001 , 0x0000450a 
+ 00026380  0x000067f4 nrtn  0x00000034 
+ 00026381  0x000067f5 jam  0x00000009 , 0x0000450a 
+ 00026382  0x000067f6 rtn 
+ 00026383  0x000067f8 fetch  0x00000001 , 0x0000450b 
+ 00026384  0x000067f9 nrtn  0x00000034 
+ 00026385  0x000067fa jam  0x0000000a , 0x0000450b 
+ 00026386  0x000067fb rtn 
+ 00026387  0x000067ff setarg  0x00000c00 
+ 00026388  0x00006800 store  0x00000002 , 0x0000064e 
+ 00026389  0x00006801 setarg  0x00000eff 
+ 00026390  0x00006802 istore  0x00000002 , 0x00000005 
+ 00026391  0x00006803 setarg  0x00000f00 
+ 00026392  0x00006804 istore  0x00000002 , 0x00000005 
+ 00026393  0x00006805 setarg  0x00000fff 
+ 00026394  0x00006806 istore  0x00000002 , 0x00000005 
+ 00026395  0x00006807 fetch  0x00000008 , 0x0000064e 
+ 00026396  0x00006808 call  0x00006d5b 
+ 00026397  0x00006809 call  0x00006d75 
+ 00026398  0x0000680a arg  0x0001c200 , 0x00000002 
+ 00026399  0x0000680b call  0x00006d68 
+ 00026400  0x0000680c fetch  0x00000001 , 0x00004508 
+ 00026401  0x0000680d arg  0x00000008 , 0x00000002 
+ 00026402  0x0000680e call  0x00006f1d 
+ 00026403  0x0000680f fetch  0x00000001 , 0x00004509 
+ 00026404  0x00006810 arg  0x00000049 , 0x00000002 
+ 00026405  0x00006811 call  0x00006f1d 
+ 00026406  0x00006812 fetch  0x00000001 , 0x0000450a 
+ 00026407  0x00006813 arg  0x0000000a , 0x00000002 
+ 00026408  0x00006814 call  0x00006f1d 
+ 00026409  0x00006815 fetch  0x00000001 , 0x0000450b 
+ 00026410  0x00006816 arg  0x0000000b , 0x00000002 
+ 00026411  0x00006817 call  0x00006f1d 
+ 00026412  0x00006819 arg  0x00000081 , 0x00000002 
+ 00026413  0x0000681a storet  0x00000001 , 0x00008060 
+ 00026414  0x0000681b branch  0x00007d78 
+ 00026415  0x0000681e fetch  0x00000001 , 0x0000450c 
+ 00026416  0x0000681f nrtn  0x00000034 
+ 00026417  0x00006820 jam  0x0000000c , 0x0000450c 
+ 00026418  0x00006821 rtn 
+ 00026419  0x00006824 fetch  0x00000001 , 0x0000450c 
+ 00026420  0x00006825 arg  0x00000010 , 0x00000002 
+ 00026421  0x00006826 call  0x00006f1d 
+ 00026422  0x00006827 arg  0x00000040 , 0x00000011 
+ 00026423  0x00006828 call  0x000070b9 
+ 00026424  0x00006829 arg  0x00000000 , 0x00000011 
+ 00026425  0x0000682a arg  0x00000000 , 0x00000012 
+ 00026426  0x0000682b setarg  0x00000000 
+ 00026427  0x0000682c call  0x000070de 
+ 00026428  0x0000682d arg  0x00000000 , 0x00000007 
+ 00026429  0x0000682e branch  0x00007106 
+ 00026430  0x00006832 fetch  0x00000002 , 0x00008112 
+ 00026431  0x00006833 add  0x0000003f , 0xfffffffc , 0x00000011 
+ 00026432  0x00006834 nrtn  0x00000002 
+ 00026433  0x00006835 call  0x00006d89 
+ 00026434  0x00006836 ifetch  0x00000001 , 0x00000003 
+ 00026435  0x00006837 beq  0x00000001 , 0x00006746 
+ 00026436  0x00006839 call  0x00007c97 
+ 00026437  0x0000683a branch  0x00006d91 
+ 00026438  0x0000683f ifetch  0x00000002 , 0x00000003 
+ 00026439  0x00006840 store  0x00000002 , 0x000006ee 
+ 00026440  0x00006841 arg  0x000003ff , 0x00000002 
+ 00026441  0x00006842 iand  0x00000002 , 0x00000002 
+ 00026442  0x00006843 storet  0x00000002 , 0x000006e7 
+ 00026443  0x00006844 rshift2  0x0000003f , 0x0000003f 
+ 00026444  0x00006845 rshift8  0x0000003f , 0x0000003f 
+ 00026445  0x00006846 store  0x00000001 , 0x000006e9 
+ 00026446  0x00006847 ifetch  0x00000001 , 0x00000003 
+ 00026447  0x00006848 pincrease  0xffffffff 
+ 00026448  0x00006849 isub  0x00000011 , 0x0000003e 
+ 00026449  0x0000684a rtn  0x00000002 
+ 00026450  0x0000684b call  0x00006754 
+ 00026451  0x0000684c branch  0x000067af 
+ 00026452  0x0000684f fetch  0x00000001 , 0x000006e9 
+ 00026453  0x00006857 beq  0x0000003f , 0x00006757 
+ 00026454  0x00006858 branch  0x0000679b 
+ 00026455  0x00006863 bpatch  0x000000d2 , 0x0000401a 
+ 00026456  0x00006864 fetch  0x00000001 , 0x000006e7 
+ 00026457  0x00006865 beq  0x00000000 , 0x0000679a 
+ 00026458  0x00006866 beq  0x00000001 , 0x00006762 
+ 00026459  0x00006867 beq  0x00000002 , 0x00006767 
+ 00026460  0x00006868 beq  0x00000003 , 0x00006775 
+ 00026461  0x00006869 beq  0x00000004 , 0x0000677f 
+ 00026462  0x0000686a beq  0x00000005 , 0x0000679a 
+ 00026463  0x0000686b beq  0x00000010 , 0x00006790 
+ 00026464  0x0000686c beq  0x00000014 , 0x00006796 
+ 00026465  0x0000686d branch  0x0000679a 
+ 00026466  0x00006871 jam  0x00000000 , 0x000006f0 
+ 00026467  0x00006872 fetch  0x00000002 , 0x00008000 
+ 00026468  0x00006873 store  0x00000002 , 0x000006f1 
+ 00026469  0x00006874 arg  0x00000003 , 0x00000039 
+ 00026470  0x00006875 branch  0x000067a2 
+ 00026471  0x00006878 ifetch  0x00000002 , 0x00000003 
+ 00026472  0x00006879 store  0x00000002 , 0x00008052 
+ 00026473  0x0000687a rtn 
+ 00026474  0x0000687e ifetch  0x00000001 , 0x00000003 
+ 00026475  0x0000687f copy  0x0000003f , 0x00000002 
+ 00026476  0x00006880 store  0x00000001 , 0x00008024 
+ 00026477  0x00006881 ifetch  0x00000001 , 0x00000003 
+ 00026478  0x00006882 iadd  0x00000002 , 0x00000002 
+ 00026479  0x00006883 set1  0x00000007 , 0x0000003f 
+ 00026480  0x00006884 store  0x00000001 , 0x00008023 
+ 00026481  0x00006885 ifetch  0x00000001 , 0x00000003 
+ 00026482  0x00006886 iadd  0x00000002 , 0x00000002 
+ 00026483  0x00006887 copy  0x0000003f , 0x00000039 
+ 00026484  0x00006888 rtn 
+ 00026485  0x0000688b call  0x0000676a 
+ 00026486  0x0000688d ifetch  0x00000001 , 0x00000003 
+ 00026487  0x0000688e store  0x00000001 , 0x00008025 
+ 00026488  0x0000688f iadd  0x00000002 , 0x00000002 
+ 00026489  0x00006890 loop  0x00006776 
+ 00026490  0x00006892 and  0x00000002 , 0x000000ff , 0x00000002 
+ 00026491  0x00006893 ifetch  0x00000001 , 0x00000003 
+ 00026492  0x00006894 isub  0x00000002 , 0x0000003e 
+ 00026493  0x00006895 nbranch  0x0000678e , 0x00000005 
+ 00026494  0x00006896 branch  0x0000679a 
+ 00026495  0x00006899 arg  0x00000020 , 0x00000039 
+ 00026496  0x0000689a arg  0x00004000 , 0x00000005 
+ 00026497  0x0000689b arg  0x00000000 , 0x00000002 
+ 00026498  0x0000689d ifetch  0x00000001 , 0x00000003 
+ 00026499  0x0000689e istore  0x00000001 , 0x00000005 
+ 00026500  0x0000689f iadd  0x00000002 , 0x00000002 
+ 00026501  0x000068a0 loop  0x00006782 
+ 00026502  0x000068a1 and  0x00000002 , 0x000000ff , 0x00000002 
+ 00026503  0x000068a2 ifetch  0x00000001 , 0x00000003 
+ 00026504  0x000068a3 isub  0x00000002 , 0x0000003e 
+ 00026505  0x000068a4 nbranch  0x0000678e , 0x00000005 
+ 00026506  0x000068a5 jam  0x00000000 , 0x00008023 
+ 00026507  0x000068a6 call  0x0000679a 
+ 00026508  0x000068a7 call  0x00006da1 
+ 00026509  0x000068a8 branch  0x00002001 
+ 00026510  0x000068ab jam  0x00000000 , 0x00008023 
+ 00026511  0x000068ac branch  0x0000679b 
+ 00026512  0x000068b0 ifetch  0x00000001 , 0x00000003 
+ 00026513  0x000068b1 copy  0x0000003f , 0x00000039 
+ 00026514  0x000068b2 ifetch  0x00000002 , 0x00000003 
+ 00026515  0x000068b3 copy  0x0000003f , 0x00000005 
+ 00026516  0x000068b4 call  0x00006dd0 
+ 00026517  0x000068b5 branch  0x0000679a 
+ 00026518  0x000068b8 fetch  0x00000001 , 0x00008060 
+ 00026519  0x000068b9 set1  0x00000004 , 0x0000003f 
+ 00026520  0x000068ba store  0x00000001 , 0x00008060 
+ 00026521  0x000068bb branch  0x0000679a 
+ 00026522  0x000068bf branch  0x0000679f 
+ 00026523  0x000068c2 jam  0x00000001 , 0x000006f0 
+ 00026524  0x000068c3 branch  0x000067a0 
+ 00026525  0x000068c5 jam  0x0000000c , 0x000006f0 
+ 00026526  0x000068c6 branch  0x000067a0 
+ 00026527  0x000068c8 jam  0x00000000 , 0x000006f0 
+ 00026528  0x000068c9 arg  0x00000001 , 0x00000039 
+ 00026529  0x000068ca branch  0x000067a2 
+ 00026530  0x000068cd jam  0x0000000e , 0x000006eb 
+ 00026531  0x000068ce add  0x00000039 , 0x00000003 , 0x0000003f 
+ 00026532  0x000068cf store  0x00000001 , 0x000006ec 
+ 00026533  0x000068d0 call  0x000067ab 
+ 00026534  0x000068d1 fetch  0x00000003 , 0x000006ed 
+ 00026535  0x000068d2 istore  0x00000003 , 0x00000003 
+ 00026536  0x000068d4 arg  0x000006f0 , 0x00000006 
+ 00026537  0x000068d5 call  0x00006db7 
+ 00026538  0x000068d6 branch  0x00006d97 
+ 00026539  0x000068db call  0x00006d95 
+ 00026540  0x000068dc fetch  0x00000003 , 0x000006ea 
+ 00026541  0x000068dd istore  0x00000003 , 0x00000003 
+ 00026542  0x000068de rtn 
+ 00026543  0x000068e1 call  0x00006d89 
+ 00026544  0x000068e2 increase  0x00000003 , 0x00000003 
+ 00026545  0x000068e3 ifetch  0x00000001 , 0x00000003 
+ 00026546  0x000068e4 iadd  0x00000003 , 0x00000003 
+ 00026547  0x000068e5 branch  0x00006d8f 
+ 00026548  0x000068e8 jam  0x00000000 , 0x00004114 
+ 00026549  0x000068e9 rtn 
+ 00026550  0x000068f1 call  0x00006c16 
+ 00026551  0x000068f2 call  0x0000565a 
+ 00026552  0x000068f3 call  0x00005654 
+ 00026553  0x000068f4 call  0x00006c43 
+ 00026554  0x000068f5 branch  0x00005661 
+ 00026555  0x000068f8 call  0x00006c16 
+ 00026556  0x000068f9 call  0x0000565a 
+ 00026557  0x000068fa call  0x0000566f 
+ 00026558  0x000068fc call  0x00005654 
+ 00026559  0x000068fd call  0x00005672 
+ 00026560  0x000068fe branch  0x00005661 
+ 00026561  0x00006901 arg  0x00004679 , 0x00000011 
+ 00026562  0x00006902 fetch  0x00000001 , 0x00004678 
+ 00026563  0x00006903 increase  0xffffffff , 0x0000003f 
+ 00026564  0x00006904 mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00026565  0x00006905 iadd  0x00000011 , 0x00000011 
+ 00026566  0x00006906 fetch  0x00000001 , 0x00000032 
+ 00026567  0x00006907 istore  0x00000001 , 0x00000011 
+ 00026568  0x00006908 beq  0x00000034 , 0x000067ca 
+ 00026569  0x00006909 rtn 
+ 00026570  0x0000690c fetch  0x00000006 , 0x00000178 
+ 00026571  0x0000690d istore  0x00000006 , 0x00000005 
+ 00026572  0x0000690e fetch  0x00000006 , 0x000042dd 
+ 00026573  0x0000690f istore  0x00000006 , 0x00000005 
+ 00026574  0x00006910 rtn 
+ 00026575  0x00006914 bpatch  0x000000d3 , 0x0000401a 
+ 00026576  0x00006915 call  0x000067d5 
+ 00026577  0x00006916 fetch  0x00000004 , 0x000046a3 
+ 00026578  0x00006917 store  0x00000004 , 0x000045ff 
+ 00026579  0x00006918 store  0x00000004 , 0x000045a6 
+ 00026580  0x00006919 rtn 
+ 00026581  0x0000691c bpatch  0x000000d4 , 0x0000401a 
+ 00026582  0x0000691d arg  0x00004679 , 0x00000011 
+ 00026583  0x0000691e fetch  0x00000001 , 0x00004678 
+ 00026584  0x0000691f rtneq  0x00000000 
+ 00026585  0x00006920 increase  0xffffffff , 0x0000003f 
+ 00026586  0x00006921 mul32  0x0000003f , 0x0000000d , 0x0000003f 
+ 00026587  0x00006922 iadd  0x00000011 , 0x00000011 
+ 00026588  0x00006923 ifetch  0x00000001 , 0x00000011 
+ 00026589  0x00006924 store  0x00000001 , 0x000043fc 
+ 00026590  0x00006925 rtnne  0x00000034 
+ 00026591  0x00006927 ifetch  0x00000006 , 0x00000006 
+ 00026592  0x00006928 store  0x00000006 , 0x00004116 
+ 00026593  0x00006929 ifetch  0x00000006 , 0x00000006 
+ 00026594  0x0000692a store  0x00000006 , 0x000042dd 
+ 00026595  0x0000692b rtn 
+ 00026596  0x0000692e fetch  0x00000001 , 0x00000032 
+ 00026597  0x0000692f rtnne  0x00000034 
+ 00026598  0x00006931 store  0x00000001 , 0x00004884 
+ 00026599  0x00006932 fetch  0x00000006 , 0x00000178 
+ 00026600  0x00006934 store  0x00000006 , 0x00004885 
+ 00026601  0x00006935 fetch  0x00000007 , 0x00004884 
+ 00026602  0x00006936 arg  0x00004679 , 0x00000006 
+ 00026603  0x00006937 arg  0x00000003 , 0x00000039 
+ 00026604  0x00006939 ifetcht  0x00000007 , 0x00000006 
+ 00026605  0x0000693a isub  0x00000002 , 0x0000003e 
+ 00026606  0x0000693b branch  0x000067f2 , 0x00000005 
+ 00026607  0x0000693c increase  0x00000007 , 0x00000006 
+ 00026608  0x0000693d loop  0x000067ec 
+ 00026609  0x0000693e rtn 
+ 00026610  0x00006941 increase  0xfffffffa , 0x00000006 
+ 00026611  0x00006942 copy  0x00000006 , 0x00000005 
+ 00026612  0x00006943 fetcht  0x00000006 , 0x00004885 
+ 00026613  0x00006944 increase  0x00000003 , 0x00000002 
+ 00026614  0x00006945 istoret  0x00000006 , 0x00000005 
+ 00026615  0x00006946 rtn 
+ 00026616  0x00006949 fetch  0x00000006 , 0x000042dd 
+ 00026617  0x0000694a store  0x00000006 , 0x00004680 
+ 00026618  0x0000694b add  0x0000003f , 0x00000100 , 0x0000003f 
+ 00026619  0x0000694c store  0x00000006 , 0x0000468d 
+ 00026620  0x0000694d add  0x0000003f , 0x00000100 , 0x0000003f 
+ 00026621  0x0000694e store  0x00000006 , 0x0000469a 
+ 00026622  0x0000694f rtn 
+ 00026623  0x00006952 jam  0x000000ff , 0x00004503 
+ 00026624  0x00006953 jam  0x00000000 , 0x00004505 
+ 00026625  0x00006955 fetch  0x00000002 , 0x00004651 
+ 00026626  0x00006956 store  0x00000002 , 0x000045ed 
+ 00026627  0x00006958 fetch  0x00000001 , 0x00004654 
+ 00026628  0x00006959 store  0x00000002 , 0x000045f3 
+ 00026629  0x0000695b fetch  0x00000005 , 0x00004657 
+ 00026630  0x0000695c store  0x00000005 , 0x0000463f 
+ 00026631  0x0000695e fetch  0x00000001 , 0x00004655 
+ 00026632  0x0000695f store  0x00000001 , 0x000045e8 
+ 00026633  0x00006961 fetch  0x00000001 , 0x000045d0 
+ 00026634  0x00006962 ncall  0x0000324a , 0x00000034 
+ 00026635  0x00006963 rtn 
+ 00026636  0x00006966 jam  0x00000003 , 0x000040c1 
+ 00026637  0x00006967 jam  0x00000008 , 0x000040a6 
+ 00026638  0x00006968 jam  0x00000000 , 0x00004734 
+ 00026639  0x00006969 jam  0x00000000 , 0x00004735 
+ 00026640  0x0000696a setarg  0x00000200 
+ 00026641  0x0000696b store  0x00000002 , 0x000040a4 
+ 00026642  0x0000696c jam  0x00000017 , 0x000042e3 
+ 00026643  0x0000696d jam  0x00000017 , 0x000042e5 
+ 00026644  0x0000696f fetch  0x00000001 , 0x00004678 
+ 00026645  0x00006970 store  0x00000001 , 0x00004717 
+ 00026646  0x00006971 fetch  0x00000003 , 0x000042e0 
+ 00026647  0x00006972 store  0x00000003 , 0x00004756 
+ 00026648  0x00006974 setarg  0x00004782 
+ 00026649  0x00006975 store  0x00000002 , 0x00004343 
+ 00026650  0x00006976 setarg  0x00000020 
+ 00026651  0x00006977 store  0x00000002 , 0x00004345 
+ 00026652  0x00006978 branch  0x00005930 
+ 00026653  0x0000697b storet  0x00000003 , 0x000046f8 
+ 00026654  0x0000697c storet  0x00000003 , 0x000046fb 
+ 00026655  0x0000697d rtn 
+ 00026656  0x00006980 jam  0x00000001 , 0x00004094 
+ 00026657  0x00006981 rtn 
+ 00026658  0x00006984 jam  0x00000000 , 0x00004094 
+ 00026659  0x00006985 rtn 
+ 00026660  0x00006989 jam  0x00000000 , 0x0000472c 
+ 00026661  0x0000698b bpatch  0x000000d5 , 0x0000401a 
+ 00026662  0x0000698c fetch  0x00000001 , 0x0000472c 
+ 00026663  0x0000698d call  0x0000684b , 0x00000034 
+ 00026664  0x0000698f fetch  0x00000001 , 0x00004721 
+ 00026665  0x00006990 beq  0x00000000 , 0x0000682e 
+ 00026666  0x00006991 beq  0x00000005 , 0x00006833 
+ 00026667  0x00006992 beq  0x00000003 , 0x00006836 
+ 00026668  0x00006993 beq  0x00000002 , 0x00006839 
+ 00026669  0x00006994 beq  0x00000008 , 0x00004885 
+ 00026670  0x00006996 fetch  0x00000001 , 0x000043cf 
+ 00026671  0x00006997 beq  0x0000000f , 0x0000488e 
+ 00026672  0x00006999 jam  0x00000008 , 0x00004773 
+ 00026673  0x0000699b fetcht  0x00000002 , 0x00004774 
+ 00026674  0x0000699c branch  0x00006843 
+ 00026675  0x0000699f jam  0x00000004 , 0x00004773 
+ 00026676  0x000069a0 fetcht  0x00000002 , 0x00004776 
+ 00026677  0x000069a1 branch  0x00006843 
+ 00026678  0x000069a4 jam  0x00000003 , 0x00004773 
+ 00026679  0x000069a5 fetcht  0x00000002 , 0x00004776 
+ 00026680  0x000069a6 branch  0x00006843 
+ 00026681  0x000069a9 jam  0x00000002 , 0x00004773 
+ 00026682  0x000069aa fetcht  0x00000002 , 0x00004778 
+ 00026683  0x000069ab branch  0x00006843 
+ 00026684  0x000069ae fetch  0x00000001 , 0x0000472b 
+ 00026685  0x000069af beq  0x00000001 , 0x00006825 
+ 00026686  0x000069b1 jam  0x00000007 , 0x00004773 
+ 00026687  0x000069b2 fetch  0x00000007 , 0x0000465c 
+ 00026688  0x000069b3 store  0x00000007 , 0x00004722 
+ 00026689  0x000069b4 fetcht  0x00000002 , 0x0000439f 
+ 00026690  0x000069b5 branch  0x00006843 
+ 00026691  0x000069b8 bpatch  0x000000d6 , 0x0000401a 
+ 00026692  0x000069b9 fetch  0x00000001 , 0x00004773 
+ 00026693  0x000069ba copy  0x0000003f , 0x00000011 
+ 00026694  0x000069bb call  0x00002dcc 
+ 00026695  0x000069bc fetcht  0x00000001 , 0x00004773 
+ 00026696  0x000069bd copy  0x00000002 , 0x00000039 
+ 00026697  0x000069be arg  0x00004722 , 0x00000006 
+ 00026698  0x000069bf branch  0x00007cdc 
+ 00026699  0x000069c2 arg  0x00000009 , 0x00000039 
+ 00026700  0x000069c3 arg  0x00004722 , 0x00000005 
+ 00026701  0x000069c4 branch  0x00007ca3 
+ 00026702  0x000069c7 arg  0x0000000a , 0x00000039 
+ 00026703  0x000069c8 arg  0x000049fd , 0x00000006 
+ 00026704  0x000069c9 arg  0x00004721 , 0x00000005 
+ 00026705  0x000069ca branch  0x00007cdc 
+ 00026706  0x000069cd fetch  0x00000001 , 0x0000472c 
+ 00026707  0x000069ce call  0x0000684b , 0x00000034 
+ 00026708  0x000069cf arg  0x00004721 , 0x00000012 
+ 00026709  0x000069d0 rtn 
+ 00026710  0x000069d6 setarg  0x00000001 
+ 00026711  0x000069d7 store  0x00000001 , 0x000008f1 
+ 00026712  0x000069d8 fetch  0x00000007 , 0x0000465c 
+ 00026713  0x000069d9 istore  0x00000007 , 0x00000005 
+ 00026714  0x000069da branch  0x00003d52 
+ 00026715  0x000069dd fetch  0x00000001 , 0x0000472c 
+ 00026716  0x000069de call  0x0000684b , 0x00000034 
+ 00026717  0x000069e0 bpatch  0x0000006b , 0x0000400d 
+ 00026718  0x000069e1 fetch  0x00000001 , 0x00004721 
+ 00026719  0x000069e2 beq  0x00000000 , 0x00006864 
+ 00026720  0x000069e3 beq  0x00000002 , 0x00006869 
+ 00026721  0x000069e4 beq  0x00000003 , 0x0000686f 
+ 00026722  0x000069e5 beq  0x00000005 , 0x00006875 
+ 00026723  0x000069e6 beq  0x00000008 , 0x00004a15 
+ 00026724  0x000069e8 call  0x00003d61 
+ 00026725  0x000069e9 arg  0x00004722 , 0x00000006 
+ 00026726  0x000069ea arg  0x00000901 , 0x00000005 
+ 00026727  0x000069eb arg  0x00000009 , 0x00000039 
+ 00026728  0x000069ec branch  0x00007cdc 
+ 00026729  0x000069ef jam  0x00000022 , 0x000008ea 
+ 00026730  0x000069f0 setarg  0x00000002 
+ 00026731  0x000069f1 store  0x00000001 , 0x00000929 
+ 00026732  0x000069f2 fetch  0x00000001 , 0x00004722 
+ 00026733  0x000069f3 istore  0x00000001 , 0x00000005 
+ 00026734  0x000069f4 branch  0x00003d53 
+ 00026735  0x000069f7 jam  0x00000021 , 0x000008ea 
+ 00026736  0x000069f8 setarg  0x00000003 
+ 00026737  0x000069f9 store  0x00000001 , 0x00000921 
+ 00026738  0x000069fa fetch  0x00000003 , 0x00004722 
+ 00026739  0x000069fb istore  0x00000003 , 0x00000005 
+ 00026740  0x000069fc branch  0x00003d53 
+ 00026741  0x000069ff jam  0x00000023 , 0x000008ea 
+ 00026742  0x00006a00 setarg  0x00000005 
+ 00026743  0x00006a01 branch  0x00006871 
+ 00026744  0x00006a06 fetch  0x00000001 , 0x0000474f 
+ 00026745  0x00006a07 beq  0x000000ff , 0x00002d8a 
+ 00026746  0x00006a08 fetch  0x00000001 , 0x0000474f 
+ 00026747  0x00006a09 branch  0x00002d8a , 0x00000034 
+ 00026748  0x00006a0a fetch  0x00000001 , 0x00004882 
+ 00026749  0x00006a0b bbit1  0x00000001 , 0x00002d8a 
+ 00026750  0x00006a0c setarg  0x0000001a 
+ 00026751  0x00006a0d fetcht  0x00000002 , 0x0000439c 
+ 00026752  0x00006a0e isub  0x00000002 , 0x0000003e 
+ 00026753  0x00006a0f nbranch  0x00002d8a , 0x00000005 
+ 00026754  0x00006a10 branch  0x00002d24 
+ 00026755  0x00006a15 setarg  0x00000000 
+ 00026756  0x00006a16 store  0x00000003 , 0x0000470a 
+ 00026757  0x00006a17 rtn 
+ 00026758  0x00006a1a fetch  0x00000008 , 0x0000470e 
+ 00026759  0x00006a1b rtnbit0  0x0000000d 
+ 00026760  0x00006a1d fetch  0x00000001 , 0x0000473d 
+ 00026761  0x00006a1e rtn  0x00000034 
+ 00026762  0x00006a1f fetch  0x00000001 , 0x00004619 
+ 00026763  0x00006a20 rtn  0x00000034 
+ 00026764  0x00006a21 fetch  0x00000001 , 0x00004707 
+ 00026765  0x00006a22 increase  0x00000001 , 0x0000003f 
+ 00026766  0x00006a23 and_into  0x00000003 , 0x0000003f 
+ 00026767  0x00006a24 store  0x00000001 , 0x00004707 
+ 00026768  0x00006a25 nrtn  0x00000034 
+ 00026769  0x00006a26 jam  0x00000000 , 0x00004708 
+ 00026770  0x00006a28 bpatch  0x000000d7 , 0x0000401a 
+ 00026771  0x00006a29 fetch  0x00000001 , 0x00004708 
+ 00026772  0x00006a2a increase  0x00000001 , 0x0000003f 
+ 00026773  0x00006a2b store  0x00000001 , 0x00004708 
+ 00026774  0x00006a2c sub  0x0000003f , 0x00000008 , 0x0000003e 
+ 00026775  0x00006a2d nbranch  0x0000689e , 0x00000002 
+ 00026776  0x00006a2e call  0x00003557 
+ 00026777  0x00006a2f call  0x0000362a 
+ 00026778  0x00006a30 nbranch  0x000068a4 , 0x00000018 
+ 00026779  0x00006a31 nbranch  0x000068a4 , 0x0000002f 
+ 00026780  0x00006a32 call  0x000068bc 
+ 00026781  0x00006a33 call  0x000068b1 
+ 00026782  0x00006a35 call  0x00003553 
+ 00026783  0x00006a36 fetch  0x00000001 , 0x00004709 
+ 00026784  0x00006a37 increase  0x00000001 , 0x0000003f 
+ 00026785  0x00006a38 store  0x00000001 , 0x00004709 
+ 00026786  0x00006a39 beq  0x00000010 , 0x000068a6 
+ 00026787  0x00006a3a rtn 
+ 00026788  0x00006a3d call  0x00003201 
+ 00026789  0x00006a3e branch  0x00006892 
+ 00026790  0x00006a41 bpatch  0x000000d8 , 0x0000401b 
+ 00026791  0x00006a42 jam  0x00000000 , 0x00004709 
+ 00026792  0x00006a43 fetch  0x00000001 , 0x0000470a 
+ 00026793  0x00006a44 rtnbit1  0x00000000 
+ 00026794  0x00006a45 set1  0x00000000 , 0x0000003f 
+ 00026795  0x00006a46 store  0x00000001 , 0x0000470a 
+ 00026796  0x00006a47 fetch  0x00000002 , 0x0000471c 
+ 00026797  0x00006a48 store  0x00000002 , 0x00004741 
+ 00026798  0x00006a49 fetch  0x00000001 , 0x000043cf 
+ 00026799  0x00006a4a beq  0x00000008 , 0x00005303 
+ 00026800  0x00006a4b rtn 
+ 00026801  0x00006a4e fetch  0x00000001 , 0x00004619 
+ 00026802  0x00006a4f branch  0x00006883 , 0x00000034 
+ 00026803  0x00006a50 jam  0x00000000 , 0x00004709 
+ 00026804  0x00006a51 fetch  0x00000001 , 0x0000470a 
+ 00026805  0x00006a52 rtnbit0  0x00000000 
+ 00026806  0x00006a53 set0  0x00000000 , 0x0000003f 
+ 00026807  0x00006a54 store  0x00000001 , 0x0000470a 
+ 00026808  0x00006a55 call  0x00005535 
+ 00026809  0x00006a56 fetch  0x00000001 , 0x000043cf 
+ 00026810  0x00006a57 beq  0x00000008 , 0x00005263 
+ 00026811  0x00006a58 rtn 
+ 00026812  0x00006a5b call  0x00003647 
+ 00026813  0x00006a5c fetch  0x00000001 , 0x0000450f 
+ 00026814  0x00006a5d compare  0x00000008 , 0x0000003f , 0x000000f8 
+ 00026815  0x00006a5e nrtn  0x00000001 
+ 00026816  0x00006a5f fetch  0x00000001 , 0x00004510 
+ 00026817  0x00006a60 beq  0x000000ff , 0x0000590a 
+ 00026818  0x00006a61 store  0x00000001 , 0x0000470d 
+ 00026819  0x00006a62 rtn 
+ 00026820  0x00006a65 fetch  0x00000001 , 0x00004678 
+ 00026821  0x00006a66 rtnne  0x00000000 
+ 00026822  0x00006a67 fetch  0x00000001 , 0x000045e1 
+ 00026823  0x00006a68 rtn  0x00000034 
+ 00026824  0x00006a6a jam  0x00000002 , 0x00008042 
+ 00026825  0x00006a6b jam  0x000000f8 , 0x00008130 
+ 00026826  0x00006a6c rtn 
+ 00026827  0x00006a6f setarg  0x00004f1f 
+ 00026828  0x00006a70 store  0x00000002 , 0x000043f0 
+ 00026829  0x00006a71 setarg  0x00005aee 
+ 00026830  0x00006a72 store  0x00000002 , 0x000043ea 
+ 00026831  0x00006a73 setarg  0x00005af0 
+ 00026832  0x00006a74 store  0x00000002 , 0x000043ee 
+ 00026833  0x00006a75 rtn 
+ 00026834  0x00006a7c branch  0x000068d7 , 0x0000002b 
+ 00026835  0x00006a7d setarg  0x00004467 
+ 00026836  0x00006a7e arg  0x00004458 , 0x00000005 
+ 00026837  0x00006a7f isub  0x00000005 , 0x00000039 
+ 00026838  0x00006a80 call  0x00007ca3 
+ 00026839  0x00006a83 rtn 
+ 00026840  0x00006a88 arg  0x00000000 , 0x00000007 
+ 00026841  0x00006a89 arg  0x00000000 , 0x00000012 
+ 00026842  0x00006a8c sub  0x00000007 , 0x00000007 , 0x0000003e 
+ 00026843  0x00006a8d nrtn  0x00000002 
+ 00026844  0x00006a8e qisolate1  0x00000011 
+ 00026845  0x00006a8f branch  0x000068df , 0x00000001 
+ 00026846  0x00006a90 branch  0x000068e3 
+ 00026847  0x00006a93 copy  0x00000002 , 0x0000003f 
+ 00026848  0x00006a94 branch  0x000068e3 , 0x00000034 
+ 00026849  0x00006a95 qset1  0x00000012 
+ 00026850  0x00006a96 increase  0xffffffff , 0x00000002 
+ 00026851  0x00006a99 increase  0x00000001 , 0x00000007 
+ 00026852  0x00006a9a branch  0x000068da 
+ 00026853  0x00006aa8 fetchr  0x00000018 , 0x00000002 , 0x00004343 
+ 00026854  0x00006aa9 fetchr  0x0000002b , 0x00000002 , 0x00004345 
+ 00026855  0x00006aaa call  0x00007dbe 
+ 00026856  0x00006aab branch  0x000068e9 
+ 00026857  0x00006aae bpatch  0x000000da , 0x0000401b 
+ 00026858  0x00006aaf call  0x00006935 
+ 00026859  0x00006ab0 nbranch  0x0000233e , 0x00000034 
+ 00026860  0x00006ab1 call  0x00006945 
+ 00026861  0x00006ab2 arg  0x00000008 , 0x00000039 
+ 00026862  0x00006ab4 fetcht  0x00000001 , 0x00004458 
+ 00026863  0x00006ab5 sub  0x00000039 , 0x00000008 , 0x00000007 
+ 00026864  0x00006ab6 qisolate1  0x00000002 
+ 00026865  0x00006ab7 branch  0x000068f6 , 0x00000001 
+ 00026866  0x00006ab8 call  0x000068fd 
+ 00026867  0x00006ab9 nbranch  0x000068f6 , 0x00000002 
+ 00026868  0x00006aba call  0x00006913 
+ 00026869  0x00006abb branch  0x000068fa 
+ 00026870  0x00006abd copy  0x0000002b , 0x0000003f 
+ 00026871  0x00006abe iadd  0x00000018 , 0x00000018 
+ 00026872  0x00006abf loop  0x000068ee 
+ 00026873  0x00006ac0 branch  0x0000233e 
+ 00026874  0x00006ac2 copy  0x00000018 , 0x0000003f 
+ 00026875  0x00006ac3 copy  0x00000018 , 0x00000005 
+ 00026876  0x00006ac4 rtn 
+ 00026877  0x00006ace bpatch  0x000000db , 0x0000401b 
+ 00026878  0x00006acf sub  0x00000039 , 0x00000008 , 0x00000007 
+ 00026879  0x00006ad0 arg  0x00000000 , 0x00000002 
+ 00026880  0x00006ad1 arg  0x00000000 , 0x0000000b 
+ 00026881  0x00006ad3 copy  0x00000007 , 0x0000003f 
+ 00026882  0x00006ad4 beq  0x00000008 , 0x0000690e 
+ 00026883  0x00006ad5 fetch  0x00000001 , 0x00004458 
+ 00026884  0x00006ad6 qisolate1  0x0000003f 
+ 00026885  0x00006ad7 branch  0x0000690e , 0x00000001 
+ 00026886  0x00006ad8 qset1  0x0000000b 
+ 00026887  0x00006ad9 copy  0x0000002b , 0x0000003f 
+ 00026888  0x00006ada iadd  0x00000002 , 0x00000002 
+ 00026889  0x00006adb increase  0x00000001 , 0x00000007 
+ 00026890  0x00006adc copy  0x00000011 , 0x0000003f 
+ 00026891  0x00006add isub  0x00000002 , 0x0000003e 
+ 00026892  0x00006ade branch  0x0000690e , 0x00000005 
+ 00026893  0x00006adf branch  0x00006901 , 0x00000002 
+ 00026894  0x00006ae1 copy  0x00000002 , 0x0000003f 
+ 00026895  0x00006ae2 isub  0x00000011 , 0x0000003e 
+ 00026896  0x00006ae3 nrtn  0x00000005 
+ 00026897  0x00006ae4 qset1  0x0000000b 
+ 00026898  0x00006ae5 rtn 
+ 00026899  0x00006aef bpatch  0x000000dc , 0x0000401b 
+ 00026900  0x00006af0 call  0x00006935 
+ 00026901  0x00006af1 nbranch  0x0000233e , 0x00000034 
+ 00026902  0x00006af2 call  0x0000693b 
+ 00026903  0x00006af3 branch  0x0000691c , 0x00000034 
+ 00026904  0x00006af4 fetch  0x00000009 , 0x0000445c 
+ 00026905  0x00006af5 store  0x00000009 , 0x00004459 
+ 00026906  0x00006af6 setarg  0x00000000 
+ 00026907  0x00006af7 istore  0x00000003 , 0x00000005 
+ 00026908  0x00006af9 storer  0x0000000b , 0x00000001 , 0x00004462 
+ 00026909  0x00006afa storer  0x00000018 , 0x00000002 , 0x00004463 
+ 00026910  0x00006afb rtn 
+ 00026911  0x00006b05 bpatch  0x000000dd , 0x0000401b 
+ 00026912  0x00006b06 call  0x0000693e 
+ 00026913  0x00006b07 increase  0x00000001 , 0x00000006 
+ 00026914  0x00006b08 ifetch  0x00000002 , 0x00000006 
+ 00026915  0x00006b09 rtn 
+ 00026916  0x00006b11 bpatch  0x000000de , 0x0000401b 
+ 00026917  0x00006b12 call  0x0000693e 
+ 00026918  0x00006b13 copy  0x00000006 , 0x00000005 
+ 00026919  0x00006b14 copy  0x00000006 , 0x00000002 
+ 00026920  0x00006b15 setarg  0x00000000 
+ 00026921  0x00006b16 istore  0x00000003 , 0x00000005 
+ 00026922  0x00006b17 rtn 
+ 00026923  0x00006b1f bpatch  0x000000df , 0x0000401b 
+ 00026924  0x00006b20 call  0x0000693b 
+ 00026925  0x00006b21 branch  0x0000233e , 0x00000034 
+ 00026926  0x00006b22 fetch  0x00000003 , 0x0000445f 
+ 00026927  0x00006b23 store  0x00000003 , 0x00004462 
+ 00026928  0x00006b24 fetch  0x00000003 , 0x0000445c 
+ 00026929  0x00006b25 store  0x00000003 , 0x0000445f 
+ 00026930  0x00006b26 fetch  0x00000003 , 0x00004459 
+ 00026931  0x00006b27 store  0x00000003 , 0x0000445c 
+ 00026932  0x00006b28 rtn 
+ 00026933  0x00006b31 bpatch  0x000000e0 , 0x0000401c 
+ 00026934  0x00006b32 fetch  0x00000003 , 0x00004459 
+ 00026935  0x00006b33 rtn 
+ 00026936  0x00006b3c bpatch  0x000000e1 , 0x0000401c 
+ 00026937  0x00006b3d fetch  0x00000003 , 0x0000445c 
+ 00026938  0x00006b3e rtn 
+ 00026939  0x00006b47 bpatch  0x000000e2 , 0x0000401c 
+ 00026940  0x00006b48 fetch  0x00000003 , 0x00004462 
+ 00026941  0x00006b49 rtn 
+ 00026942  0x00006b51 call  0x0000693b 
+ 00026943  0x00006b52 branch  0x00006943 , 0x00000034 
+ 00026944  0x00006b53 arg  0x00004459 , 0x00000006 
+ 00026945  0x00006b55 ifetch  0x00000003 , 0x00000006 
+ 00026946  0x00006b56 branch  0x00006941 , 0x00000034 
+ 00026947  0x00006b58 increase  0xfffffffd , 0x00000006 
+ 00026948  0x00006b59 rtn 
+ 00026949  0x00006b62 bpatch  0x000000e3 , 0x0000401c 
+ 00026950  0x00006b63 arg  0x00000004 , 0x00000039 
+ 00026951  0x00006b64 arg  0x00004459 , 0x00000006 
+ 00026952  0x00006b65 arg  0x00000000 , 0x00000002 
+ 00026953  0x00006b67 ifetch  0x00000003 , 0x00000006 
+ 00026954  0x00006b68 and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00026955  0x00006b69 ior  0x00000002 , 0x00000002 
+ 00026956  0x00006b6a loop  0x00006949 
+ 00026957  0x00006b6b storet  0x00000001 , 0x00004458 
+ 00026958  0x00006b6c rtn 
+ 00026959  0x00006b70 arg  0x0000000c , 0x00000007 
+ 00026960  0x00006b71 branch  0x000024be 
+ 00026961  0x00006b74 arg  0x0000000c , 0x00000007 
+ 00026962  0x00006b75 branch  0x000024c2 
+ 00026963  0x00006b81 bpatch  0x000000e5 , 0x0000401c 
+ 00026964  0x00006b82 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00026965  0x00006b83 rtn  0x00000005 
+ 00026966  0x00006b84 copy  0x00000002 , 0x0000003f 
+ 00026967  0x00006b85 and_into  0x000000ff , 0x0000003f 
+ 00026968  0x00006b86 sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00026969  0x00006b87 nbranch  0x00006965 , 0x00000002 
+ 00026970  0x00006b88 arg  0x00008070 , 0x00000005 
+ 00026971  0x00006b8a iadd  0x00000005 , 0x00000005 
+ 00026972  0x00006b8b copy  0x00000005 , 0x00000011 
+ 00026973  0x00006b8c arg  0x0000003e , 0x00000002 
+ 00026974  0x00006b8d istoret  0x00000001 , 0x00000005 
+ 00026975  0x00006b8e call  0x00006968 
+ 00026976  0x00006b8f nop  0x0000001e 
+ 00026977  0x00006b90 copy  0x00000011 , 0x00000005 
+ 00026978  0x00006b91 arg  0x0000003f , 0x00000002 
+ 00026979  0x00006b92 istoret  0x00000001 , 0x00000005 
+ 00026980  0x00006b93 branch  0x0000696c 
+ 00026981  0x00006b96 arg  0x000080d4 , 0x00000005 
+ 00026982  0x00006b97 increase  0xfffffff0 , 0x0000003f 
+ 00026983  0x00006b98 branch  0x0000695b 
+ 00026984  0x00006b9c fetch  0x00000001 , 0x00008081 
+ 00026985  0x00006b9d and_into  0x0000007f , 0x0000003f 
+ 00026986  0x00006b9e store  0x00000001 , 0x00008081 
+ 00026987  0x00006b9f rtn 
+ 00026988  0x00006ba2 fetch  0x00000001 , 0x00008081 
+ 00026989  0x00006ba3 or_into  0x00000080 , 0x0000003f 
+ 00026990  0x00006ba4 store  0x00000001 , 0x00008081 
+ 00026991  0x00006ba5 rtn 
+ 00026992  0x00006ba8 branch  0x00006bc6 
+ 00026993  0x00006bab branch  0x00006bcd 
+ 00026994  0x00006bb0 fetch  0x00000001 , 0x0000806f 
+ 00026995  0x00006bb1 set0  0x00000007 , 0x0000003f 
+ 00026996  0x00006bb2 store  0x00000001 , 0x0000806f 
+ 00026997  0x00006bb3 rtn 
+ 00026998  0x00006bb6 nbranch  0x0000697a , 0x00000028 
+ 00026999  0x00006bb7 fetch  0x00000001 , 0x0000806f 
+ 00027000  0x00006bb8 set1  0x00000007 , 0x0000003f 
+ 00027001  0x00006bb9 store  0x00000001 , 0x0000806f 
+ 00027002  0x00006bbb copy  0x00000002 , 0x0000003e 
+ 00027003  0x00006bbc branch  0x0000697d , 0x00000005 
+ 00027004  0x00006bbd copy  0x00000013 , 0x0000003d 
+ 00027005  0x00006bc0 isolate0  0x00000000 , 0x0000003e 
+ 00027006  0x00006bc1 branch  0x00006ae9 
+ 00027007  0x00006bc5 force  0x00000004 , 0x00000002 
+ 00027008  0x00006bc7 arg  0x000001c5 , 0x00000011 
+ 00027009  0x00006bc8 call  0x00006972 
+ 00027010  0x00006bc9 call  0x0000697a 
+ 00027011  0x00006bca arg  0x000055aa , 0x00000011 
+ 00027012  0x00006bcb fetch  0x00000002 , 0x000001c5 
+ 00027013  0x00006bcc ifetcht  0x00000002 , 0x00000006 
+ 00027014  0x00006bcd isub  0x00000011 , 0x0000003e 
+ 00027015  0x00006bce rtn 
+ 00027016  0x00006bd2 call  0x0000699a , 0x00000028 
+ 00027017  0x00006bd3 arg  0x00000002 , 0x00000002 
+ 00027018  0x00006bd4 arg  0x000043cc , 0x00000011 
+ 00027019  0x00006bd5 call  0x0000697a 
+ 00027020  0x00006bd6 fetch  0x00000002 , 0x000043cc 
+ 00027021  0x00006bd8 store  0x00000002 , 0x000001be 
+ 00027022  0x00006bd9 call  0x00006990 , 0x00000028 
+ 00027023  0x00006bda rtn 
+ 00027024  0x00006bdd arg  0x00000010 , 0x00000002 
+ 00027025  0x00006bde arg  0x000001cb , 0x00000011 
+ 00027026  0x00006bdf call  0x00006972 
+ 00027027  0x00006be0 call  0x0000697a 
+ 00027028  0x00006be2 arg  0x000001cb , 0x00000006 
+ 00027029  0x00006be3 arg  0x00000010 , 0x00000039 
+ 00027030  0x00006be4 call  0x00007341 
+ 00027031  0x00006be5 call  0x000072c8 
+ 00027032  0x00006be6 call  0x0000735d 
+ 00027033  0x00006be7 branch  0x000072c2 
+ 00027034  0x00006bea jam  0x00000000 , 0x00008023 
+ 00027035  0x00006beb call  0x00006972 
+ 00027036  0x00006bec branch  0x0000735d 
+ 00027037  0x00006bef setarg  0x00000000 
+ 00027038  0x00006bf0 store  0x00000002 , 0x00000677 
+ 00027039  0x00006bf1 disable  0x0000002d 
+ 00027040  0x00006bf2 call  0x0000697f 
+ 00027041  0x00006bf3 nrtn  0x00000005 
+ 00027042  0x00006bf4 enable  0x0000002d 
+ 00027043  0x00006bf5 setarg  0x00008000 
+ 00027044  0x00006bf6 store  0x00000003 , 0x00008022 
+ 00027045  0x00006bf7 arg  0x00008025 , 0x00000011 
+ 00027046  0x00006bf8 call  0x00006976 
+ 00027047  0x00006bf9 jam  0x00000000 , 0x00008023 
+ 00027048  0x00006bfa fetch  0x00000001 , 0x000001bb 
+ 00027049  0x00006bfb rtnbit0  0x00000000 
+ 00027050  0x00006bfd arg  0x00000006 , 0x00000002 
+ 00027051  0x00006bfe call  0x00006980 
+ 00027052  0x00006bff nbranch  0x000069ba , 0x00000005 
+ 00027053  0x00006c00 ifetchr  0x00000011 , 0x00000002 , 0x00000006 
+ 00027054  0x00006c01 call  0x0000697a 
+ 00027055  0x00006c02 call  0x000069b1 
+ 00027056  0x00006c03 branch  0x000069aa 
+ 00027057  0x00006c07 fetch  0x00000002 , 0x00000677 
+ 00027058  0x00006c08 arg  0x00000006 , 0x00000039 
+ 00027059  0x00006c09 arg  0x000001c5 , 0x00000006 
+ 00027060  0x00006c0a call  0x00007dd0 
+ 00027061  0x00006c0b fetchr  0x00000039 , 0x00000002 , 0x000001c7 
+ 00027062  0x00006c0c copy  0x00000011 , 0x00000006 
+ 00027063  0x00006c0d call  0x00007dd0 
+ 00027064  0x00006c0e store  0x00000002 , 0x00000677 
+ 00027065  0x00006c0f rtn 
+ 00027066  0x00006c12 fetch  0x00000001 , 0x000001fa 
+ 00027067  0x00006c13 beq  0x0000005a , 0x000069c8 
+ 00027068  0x00006c14 arg  0x0000aa55 , 0x00000011 
+ 00027069  0x00006c15 fetch  0x00000002 , 0x000001c5 
+ 00027070  0x00006c16 isub  0x00000011 , 0x0000003e 
+ 00027071  0x00006c17 nbranch  0x000069ca , 0x00000005 
+ 00027072  0x00006c18 arg  0x000055aa , 0x00000011 
+ 00027073  0x00006c19 fetch  0x00000002 , 0x000001c7 
+ 00027074  0x00006c1a isub  0x00000011 , 0x0000003e 
+ 00027075  0x00006c1b nbranch  0x000069ca , 0x00000005 
+ 00027076  0x00006c1c fetch  0x00000002 , 0x000001c9 
+ 00027077  0x00006c1d fetcht  0x00000002 , 0x00000677 
+ 00027078  0x00006c1e isub  0x00000002 , 0x0000003e 
+ 00027079  0x00006c1f nbranch  0x000069ca , 0x00000005 
+ 00027080  0x00006c21 set1  0x0000000f , 0x00000011 
+ 00027081  0x00006c22 branch  0x0000697d 
+ 00027082  0x00006c25 jam  0x00000000 , 0x000001bb 
+ 00027083  0x00006c26 rtn 
+ 00027084  0x00006c2c and  0x0000003f , 0x000000ff , 0x0000003f 
+ 00027085  0x00006c2d rshift4  0x0000003f , 0x0000003f 
+ 00027086  0x00006c2e store  0x00000001 , 0x000043cf 
+ 00027087  0x00006c2f branch  0x00006a11 
+ 00027088  0x00006c32 fetch  0x00000002 , 0x00008143 
+ 00027089  0x00006c33 nbranch  0x000069cc , 0x00000034 
+ 00027090  0x00006c34 call  0x00006a11 
+ 00027091  0x00006c35 fetch  0x00000002 , 0x000043cf 
+ 00027092  0x00006c36 rtn  0x00000034 
+ 00027093  0x00006c37 call  0x000069d7 
+ 00027094  0x00006c38 branch  0x0000239c 
+ 00027095  0x00006c3b fetch  0x00000001 , 0x000043cf 
+ 00027096  0x00006c3c rtn  0x00000034 
+ 00027097  0x00006c3d and  0x0000003f , 0x0000000f , 0x00000002 
+ 00027098  0x00006c3e storet  0x00000001 , 0x000043cf 
+ 00027099  0x00006c3f rshift4  0x0000003f , 0x0000003f 
+ 00027100  0x00006c40 ixor  0x00000002 , 0x0000003f 
+ 00027101  0x00006c41 bne  0x0000000f , 0x00006bb8 
+ 00027102  0x00006c42 branch  0x00006b7b 
+ 00027103  0x00006c45 fetch  0x00000001 , 0x000001f7 
+ 00027104  0x00006c46 ncall  0x000023c2 , 0x00000034 
+ 00027105  0x00006c47 fetch  0x00000001 , 0x000001f8 
+ 00027106  0x00006c48 rtn  0x00000034 
+ 00027107  0x00006c49 branch  0x000023c7 
+ 00027108  0x00006c4d bpatch  0x000000e6 , 0x0000401c 
+ 00027109  0x00006c4e nrtn  0x0000002b 
+ 00027110  0x00006c4f fetch  0x00000002 , 0x0000415d 
+ 00027111  0x00006c50 rtn  0x00000034 
+ 00027112  0x00006c51 store  0x00000002 , 0x000001ed 
+ 00027113  0x00006c52 branch  0x000069fb 
+ 00027114  0x00006c55 call  0x000069df 
+ 00027115  0x00006c56 fetch  0x00000004 , 0x000001eb 
+ 00027116  0x00006c57 rtn  0x00000034 
+ 00027117  0x00006c58 until  0x0000003e , 0x00000033 
+ 00027118  0x00006c59 fetch  0x00000001 , 0x00008136 
+ 00027119  0x00006c5a and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00027120  0x00006c5b fetcht  0x00000001 , 0x000001eb 
+ 00027121  0x00006c5c ior  0x00000002 , 0x0000003f 
+ 00027122  0x00006c5d store  0x00000001 , 0x00008136 
+ 00027123  0x00006c5e until  0x0000003e , 0x00000033 
+ 00027124  0x00006c60 fetch  0x00000001 , 0x00008138 
+ 00027125  0x00006c61 and  0x0000003f , 0x00000007 , 0x0000003f 
+ 00027126  0x00006c62 fetcht  0x00000001 , 0x000001ec 
+ 00027127  0x00006c63 lshift3  0x00000002 , 0x00000002 
+ 00027128  0x00006c64 ior  0x00000002 , 0x0000003f 
+ 00027129  0x00006c65 store  0x00000001 , 0x00008138 
+ 00027130  0x00006c66 until  0x0000003e , 0x00000033 
+ 00027131  0x00006c68 fetch  0x00000001 , 0x00008acb 
+ 00027132  0x00006c69 and  0x0000003f , 0x000000f0 , 0x0000003f 
+ 00027133  0x00006c6a fetcht  0x00000001 , 0x000001ed 
+ 00027134  0x00006c6b storet  0x00000001 , 0x0000415d 
+ 00027135  0x00006c6c ior  0x00000002 , 0x0000003f 
+ 00027136  0x00006c6d store  0x00000001 , 0x00008acb 
+ 00027137  0x00006c6f fetch  0x00000001 , 0x000001ee 
+ 00027138  0x00006c70 store  0x00000001 , 0x0000415e 
+ 00027139  0x00006c71 isolate1  0x00000003 , 0x0000003f 
+ 00027140  0x00006c72 fetch  0x00000001 , 0x00008a06 
+ 00027141  0x00006c73 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00027142  0x00006c74 store  0x00000001 , 0x00008a06 
+ 00027143  0x00006c76 fetch  0x00000001 , 0x000001ee 
+ 00027144  0x00006c77 and  0x0000003f , 0x00000007 , 0x00000002 
+ 00027145  0x00006c78 lshift4  0x00000002 , 0x00000002 
+ 00027146  0x00006c79 lshift  0x00000002 , 0x00000002 
+ 00027147  0x00006c7a storet  0x00000001 , 0x0000444f 
+ 00027148  0x00006c7b fetch  0x00000001 , 0x00008a02 
+ 00027149  0x00006c7c and  0x0000003f , 0x0000001f , 0x0000003f 
+ 00027150  0x00006c7d ior  0x00000002 , 0x0000003f 
+ 00027151  0x00006c7e store  0x00000001 , 0x00008a02 
+ 00027152  0x00006c7f rtn 
+ 00027153  0x00006c83 disable  0x00000028 
+ 00027154  0x00006c84 fetch  0x00000001 , 0x000043ce 
+ 00027155  0x00006c85 rtnbit0  0x00000003 
+ 00027156  0x00006c86 call  0x00006a67 
+ 00027157  0x00006c87 arg  0x00000ff0 , 0x0000003f 
+ 00027158  0x00006c88 iadd  0x00000012 , 0x00000012 
+ 00027159  0x00006c89 force  0x00000010 , 0x00000039 
+ 00027160  0x00006c8a arg  0x000001cb , 0x00000011 
+ 00027161  0x00006c8b call  0x00006b62 
+ 00027162  0x00006c8c jam  0x00000008 , 0x00008006 
+ 00027163  0x00006c8d arg  0x000001cb , 0x00000006 
+ 00027164  0x00006c8e call  0x0000734d 
+ 00027165  0x00006c90 arg  0x000001cb , 0x00000005 
+ 00027166  0x00006c91 call  0x00007c9b 
+ 00027167  0x00006c92 branch  0x00007dbc 
+ 00027168  0x00006c96 jam  0x00000025 , 0x00008050 
+ 00027169  0x00006c97 call  0x00006b28 
+ 00027170  0x00006c98 arg  0x00000000 , 0x00000012 
+ 00027171  0x00006c99 force  0x0000000b , 0x00000039 
+ 00027172  0x00006c9a arg  0x000043cc , 0x00000011 
+ 00027173  0x00006c9b call  0x00006b63 
+ 00027174  0x00006c9c fetchr  0x00000037 , 0x00000005 , 0x000043cc 
+ 00027175  0x00006c9d fetchr  0x0000002b , 0x00000006 , 0x000043d1 
+ 00027176  0x00006c9e fetch  0x00000001 , 0x000043ce 
+ 00027177  0x00006c9f bbit0  0x00000004 , 0x00006a31 
+ 00027178  0x00006ca0 jam  0x00000007 , 0x0000806f 
+ 00027179  0x00006ca2 fetch  0x00000001 , 0x0000815e 
+ 00027180  0x00006ca3 bne  0x00000007 , 0x00006a2b 
+ 00027181  0x00006ca4 fetch  0x00000001 , 0x00008160 
+ 00027182  0x00006ca5 lshift4  0x0000003f , 0x0000003f 
+ 00027183  0x00006ca6 store  0x00000001 , 0x0000806f 
+ 00027184  0x00006ca7 branch  0x00006a34 
+ 00027185  0x00006caa call  0x00006adc 
+ 00027186  0x00006cab call  0x00007d78 
+ 00027187  0x00006cac call  0x00007d76 
+ 00027188  0x00006cae storer  0x00000037 , 0x00000005 , 0x000043cc 
+ 00027189  0x00006caf storer  0x0000002b , 0x00000006 , 0x000043d1 
+ 00027190  0x00006cb0 call  0x00006a67 
+ 00027191  0x00006cb1 arg  0x00000fd0 , 0x0000003f 
+ 00027192  0x00006cb2 iadd  0x00000012 , 0x00000012 
+ 00027193  0x00006cb3 arg  0x00000020 , 0x00000039 
+ 00027194  0x00006cb4 arg  0x000001db , 0x00000011 
+ 00027195  0x00006cb5 call  0x00006b62 
+ 00027196  0x00006cb7 call  0x000069ea 
+ 00027197  0x00006cb8 call  0x000069d0 
+ 00027198  0x00006cba fetch  0x00000001 , 0x000043ce 
+ 00027199  0x00006cbb bbit0  0x00000003 , 0x00006a49 
+ 00027200  0x00006cbc fetcht  0x00000001 , 0x000043d0 
+ 00027201  0x00006cbd arg  0x00000000 , 0x0000003f 
+ 00027202  0x00006cbe set1  0x00000006 , 0x0000003f 
+ 00027203  0x00006cbf set1  0x00000007 , 0x0000003f 
+ 00027204  0x00006cc0 iand  0x00000002 , 0x00000011 
+ 00027205  0x00006cc1 sub  0x00000011 , 0x00000000 , 0x0000003e 
+ 00027206  0x00006cc2 branch  0x00006aab , 0x00000005 
+ 00027207  0x00006cc3 isub  0x00000011 , 0x0000003e 
+ 00027208  0x00006cc4 branch  0x00006aab , 0x00000005 
+ 00027209  0x00006cc6 jam  0x00000000 , 0x00000030 
+ 00027210  0x00006cc7 arg  0x00006b0c , 0x00000013 
+ 00027211  0x00006cc9 call  0x00006a9f 
+ 00027212  0x00006cca nbranch  0x00006aab , 0x00000002 
+ 00027213  0x00006ccb fetch  0x00000002 , 0x000043cc 
+ 00027214  0x00006ccc branch  0x00006a56 , 0x00000034 
+ 00027215  0x00006ccd call  0x0000698d 
+ 00027216  0x00006cce call  0x0000699d 
+ 00027217  0x00006ccf nbranch  0x00006a56 , 0x0000002d 
+ 00027218  0x00006cd0 fetch  0x00000001 , 0x000001bb 
+ 00027219  0x00006cd1 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027220  0x00006cd2 nbranch  0x00006a4b , 0x00000001 
+ 00027221  0x00006cd3 call  0x00006a64 
+ 00027222  0x00006cd5 call  0x00006b25 
+ 00027223  0x00006cd6 jam  0x00000000 , 0x00000030 
+ 00027224  0x00006cd8 call  0x00006a9f 
+ 00027225  0x00006cd9 nbranch  0x00006aab , 0x00000002 
+ 00027226  0x00006cda fetch  0x00000001 , 0x000043ce 
+ 00027227  0x00006cdb bbit1  0x00000002 , 0x00006a77 
+ 00027228  0x00006cdc call  0x00006a91 
+ 00027229  0x00006cdd call  0x00006cba 
+ 00027230  0x00006cde call  0x00006a99 
+ 00027231  0x00006cdf nbranch  0x00006a6e , 0x0000002d 
+ 00027232  0x00006ce0 fetch  0x00000001 , 0x000001bb 
+ 00027233  0x00006ce1 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027234  0x00006ce2 nbranch  0x00006a58 , 0x00000001 
+ 00027235  0x00006ce3 branch  0x00006a77 
+ 00027236  0x00006ce6 setarg  0x000001ff 
+ 00027237  0x00006ce7 arg  0x00000000 , 0x0000003d 
+ 00027238  0x00006ce8 rtn 
+ 00027239  0x00006ceb arg  0x00001000 , 0x00000012 
+ 00027240  0x00006cec fetch  0x00000001 , 0x00008144 
+ 00027241  0x00006ced bbit1  0x00000007 , 0x00006a6c 
+ 00027242  0x00006cee fetch  0x00000001 , 0x000043d0 
+ 00027243  0x00006cef rtnbit0  0x00000007 
+ 00027244  0x00006cf1 arg  0x00000000 , 0x00000012 
+ 00027245  0x00006cf2 rtn 
+ 00027246  0x00006cf6 call  0x00006cb7 
+ 00027247  0x00006cf7 fetch  0x00000001 , 0x000043ce 
+ 00027248  0x00006cf8 bbit1  0x00000002 , 0x00006a77 
+ 00027249  0x00006cf9 call  0x00006a99 
+ 00027250  0x00006cfa nbranch  0x00006a77 , 0x0000002d 
+ 00027251  0x00006cfb fetch  0x00000001 , 0x000001bb 
+ 00027252  0x00006cfc compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027253  0x00006cfd nbranch  0x00006a58 , 0x00000001 
+ 00027254  0x00006cfe branch  0x00006a87 
+ 00027255  0x00006d01 jam  0x00000000 , 0x00000030 
+ 00027256  0x00006d03 call  0x00006a9f 
+ 00027257  0x00006d04 nbranch  0x00006aab , 0x00000002 
+ 00027258  0x00006d05 fetch  0x00000001 , 0x000043ce 
+ 00027259  0x00006d06 bbit1  0x00000001 , 0x00006a87 
+ 00027260  0x00006d07 call  0x00006c16 
+ 00027261  0x00006d08 nop  0x000000c8 
+ 00027262  0x00006d09 call  0x00006c25 
+ 00027263  0x00006d0a nop  0x00000064 
+ 00027264  0x00006d0b arg  0x00006c62 , 0x00000013 
+ 00027265  0x00006d0c call  0x00006988 
+ 00027266  0x00006d0d call  0x0000699d 
+ 00027267  0x00006d0e nbranch  0x00006a87 , 0x0000002d 
+ 00027268  0x00006d0f fetch  0x00000001 , 0x000001bb 
+ 00027269  0x00006d10 compare  0x00000003 , 0x0000003f , 0x00000003 
+ 00027270  0x00006d11 nbranch  0x00006a78 , 0x00000001 
+ 00027271  0x00006d14 call  0x00006a8b 
+ 00027272  0x00006d15 fetch  0x00000001 , 0x000043ce 
+ 00027273  0x00006d16 rtnbit0  0x00000000 
+ 00027274  0x00006d17 branch  0x000066f2 
+ 00027275  0x00006d1a arg  0x000001cb , 0x00000005 
+ 00027276  0x00006d1b call  0x00007c9b 
+ 00027277  0x00006d1c force  0x00000004 , 0x00000038 
+ 00027278  0x00006d1d call  0x0000735e 
+ 00027279  0x00006d1e jam  0x00000021 , 0x00008050 
+ 00027280  0x00006d1f rtn 
+ 00027281  0x00006d22 fetch  0x00000001 , 0x00004440 
+ 00027282  0x00006d23 fetcht  0x00000001 , 0x0000443f 
+ 00027283  0x00006d24 isub  0x00000002 , 0x0000003e 
+ 00027284  0x00006d25 nbranch  0x00006cb2 , 0x00000005 
+ 00027285  0x00006d27 jam  0x00000004 , 0x0000443e 
+ 00027286  0x00006d28 jam  0x00000008 , 0x0000443f 
+ 00027287  0x00006d29 jam  0x00000007 , 0x00004440 
+ 00027288  0x00006d2a branch  0x00006cb2 
+ 00027289  0x00006d2f setarg  0x00000000 
+ 00027290  0x00006d30 store  0x00000002 , 0x000001be 
+ 00027291  0x00006d31 arg  0x00006cdd , 0x00000013 
+ 00027292  0x00006d32 call  0x00006c9b 
+ 00027293  0x00006d33 call  0x00006988 
+ 00027294  0x00006d34 branch  0x0000699d 
+ 00027295  0x00006d3a call  0x00006aa5 
+ 00027296  0x00006d3b fetch  0x00000001 , 0x00000030 
+ 00027297  0x00006d3c increase  0x00000001 , 0x0000003f 
+ 00027298  0x00006d3d sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00027299  0x00006d3e store  0x00000001 , 0x00000030 
+ 00027300  0x00006d3f rtn 
+ 00027301  0x00006d42 fetch  0x00000001 , 0x00000030 
+ 00027302  0x00006d43 rtn  0x00000034 
+ 00027303  0x00006d44 fetch  0x00000001 , 0x000001f9 
+ 00027304  0x00006d45 rtn  0x00000034 
+ 00027305  0x00006d46 copy  0x0000003f , 0x00000039 
+ 00027306  0x00006d47 branch  0x00007c98 
+ 00027307  0x00006d4b call  0x00006a8b 
+ 00027308  0x00006d4c call  0x00006972 
+ 00027309  0x00006d4e call  0x00007d7e 
+ 00027310  0x00006d4f rtn 
+ 00027311  0x00006d52 call  0x00006adc 
+ 00027312  0x00006d53 call  0x00006ab7 
+ 00027313  0x00006d56 fetch  0x00000001 , 0x0000806f 
+ 00027314  0x00006d57 rtnbit0  0x00000006 
+ 00027315  0x00006d59 call  0x00006ad1 
+ 00027316  0x00006d5a arg  0x00000004 , 0x00000039 
+ 00027317  0x00006d5b arg  0x000043d8 , 0x00000006 
+ 00027318  0x00006d5c branch  0x00006b07 
+ 00027319  0x00006d60 fetch  0x00000001 , 0x0000806f 
+ 00027320  0x00006d61 rtnbit0  0x00000005 
+ 00027321  0x00006d62 fetcht  0x00000002 , 0x000043d3 
+ 00027322  0x00006d63 rshift3  0x00000002 , 0x00000002 
+ 00027323  0x00006d64 arg  0x00004000 , 0x0000003f 
+ 00027324  0x00006d65 iadd  0x00000002 , 0x00000005 
+ 00027325  0x00006d66 fetch  0x00000001 , 0x000043d7 
+ 00027326  0x00006d67 branch  0x00007dce 
+ 00027327  0x00006d6b bpatchx  0x000000f2 , 0x0000403e 
+ 00027328  0x00006d6c fetch  0x00000001 , 0x0000806f 
+ 00027329  0x00006d6d rtnbit0  0x00000005 
+ 00027330  0x00006d6e fetchr  0x00000011 , 0x00000002 , 0x000043d3 
+ 00027331  0x00006d6f rshift3  0x00000011 , 0x00000011 
+ 00027332  0x00006d70 arg  0x00004000 , 0x0000003f 
+ 00027333  0x00006d71 iadd  0x00000011 , 0x00000006 
+ 00027334  0x00006d72 ifetch  0x00000001 , 0x00000006 
+ 00027335  0x00006d73 store  0x00000001 , 0x000043d7 
+ 00027336  0x00006d74 rtn 
+ 00027337  0x00006d77 rtn  0x0000002b 
+ 00027338  0x00006d78 fetch  0x00000001 , 0x0000806f 
+ 00027339  0x00006d79 rtnbit0  0x00000006 
+ 00027340  0x00006d7a call  0x00006ad1 
+ 00027341  0x00006d7b nop  0x0000000a 
+ 00027342  0x00006d7c arg  0x00000004 , 0x00000039 
+ 00027343  0x00006d7d arg  0x000043d8 , 0x00000005 
+ 00027344  0x00006d7e branch  0x00006afa 
+ 00027345  0x00006d81 jam  0x00000000 , 0x00008022 
+ 00027346  0x00006d82 fetch  0x00000002 , 0x000043d5 
+ 00027347  0x00006d83 rshift4  0x0000003f , 0x0000003f 
+ 00027348  0x00006d84 rshift  0x0000003f , 0x0000003f 
+ 00027349  0x00006d85 rshift4  0x0000003f , 0x00000002 
+ 00027350  0x00006d86 rshift2  0x00000002 , 0x00000002 
+ 00027351  0x00006d87 set1  0x00000007 , 0x00000002 
+ 00027352  0x00006d88 storet  0x00000001 , 0x00008023 
+ 00027353  0x00006d89 lshift2  0x0000003f , 0x0000003f 
+ 00027354  0x00006d8a store  0x00000001 , 0x00008024 
+ 00027355  0x00006d8b rtn 
+ 00027356  0x00006d8f fetch  0x00000001 , 0x000043ce 
+ 00027357  0x00006d90 and_into  0x000000e0 , 0x0000003f 
+ 00027358  0x00006d91 rtn  0x00000034 
+ 00027359  0x00006d92 rshift  0x0000003f , 0x0000003f 
+ 00027360  0x00006d93 store  0x00000001 , 0x0000806f 
+ 00027361  0x00006d94 setarg  0x00000001 
+ 00027362  0x00006d95 arg  0x000043d1 , 0x00000006 
+ 00027363  0x00006d97 ifetcht  0x00000002 , 0x00000006 
+ 00027364  0x00006d98 storet  0x00000002 , 0x0000804c 
+ 00027365  0x00006d99 store  0x00000001 , 0x00008020 
+ 00027366  0x00006d9a lshift  0x0000003f , 0x0000003f 
+ 00027367  0x00006d9b bbit0  0x00000003 , 0x00006ae3 
+ 00027368  0x00006d9c rtn 
+ 00027369  0x00006da0 fetch  0x00000001 , 0x000001bb 
+ 00027370  0x00006da1 lshift  0x0000003f , 0x0000003f 
+ 00027371  0x00006da2 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00027372  0x00006da3 isolate0  0x0000000f , 0x00000011 
+ 00027373  0x00006da4 rtn  0x00000001 
+ 00027374  0x00006da5 store  0x00000001 , 0x000001bb 
+ 00027375  0x00006da6 rtn 
+ 00027376  0x00006daa fetch  0x00000001 , 0x0000806f 
+ 00027377  0x00006dab rtnbit0  0x00000007 
+ 00027378  0x00006dac branch  0x00006af6 
+ 00027379  0x00006dae fetch  0x00000001 , 0x00008128 
+ 00027380  0x00006daf qisolate1  0x0000003f 
+ 00027381  0x00006db0 rtn  0x00000001 
+ 00027382  0x00006db2 fetch  0x00000001 , 0x00008108 
+ 00027383  0x00006db3 bbit0  0x00000001 , 0x00006af3 
+ 00027384  0x00006db4 call  0x000072c2 
+ 00027385  0x00006db5 branch  0x00006af3 
+ 00027386  0x00006dc2 fetch  0x00000001 , 0x00008025 
+ 00027387  0x00006dc3 istore  0x00000001 , 0x00000005 
+ 00027388  0x00006dc4 loop  0x00006afa 
+ 00027389  0x00006dc5 jam  0x00000000 , 0x00008023 
+ 00027390  0x00006dc6 rtn 
+ 00027391  0x00006dca fetch  0x00000002 , 0x000040f0 
+ 00027392  0x00006dcb rtn  0x00000034 
+ 00027393  0x00006dcc jam  0x00000080 , 0x00008023 
+ 00027394  0x00006dcd jam  0x00000000 , 0x00008022 
+ 00027395  0x00006dce jam  0x00000000 , 0x00008024 
+ 00027396  0x00006dcf fetcht  0x00000002 , 0x000040f2 
+ 00027397  0x00006dd0 lshift2  0x00000002 , 0x00000039 
+ 00027398  0x00006dd1 iforce  0x00000006 
+ 00027399  0x00006dd3 ifetch  0x00000001 , 0x00000006 
+ 00027400  0x00006dd4 store  0x00000001 , 0x00008025 
+ 00027401  0x00006dd5 loop  0x00006b07 
+ 00027402  0x00006dd6 jam  0x00000000 , 0x00008023 
+ 00027403  0x00006dd7 rtn 
+ 00027404  0x00006ddf copy  0x00000002 , 0x00000039 
+ 00027405  0x00006de0 fetch  0x00000002 , 0x000001be 
+ 00027406  0x00006de1 iadd  0x00000002 , 0x00000002 
+ 00027407  0x00006de2 storet  0x00000002 , 0x000001be 
+ 00027408  0x00006de3 iforce  0x00000012 
+ 00027409  0x00006de4 copy  0x00000011 , 0x0000002e 
+ 00027410  0x00006de5 jam  0x00000010 , 0x00008006 
+ 00027411  0x00006de6 call  0x00006b62 
+ 00027412  0x00006de7 copy  0x0000002e , 0x00000011 
+ 00027413  0x00006de8 isolate0  0x0000000f , 0x00000011 
+ 00027414  0x00006de9 rtn  0x00000001 
+ 00027415  0x00006dea call  0x00007dc8 , 0x00000034 
+ 00027416  0x00006deb branch  0x00006ae9 
+ 00027417  0x00006def jam  0x00000001 , 0x00008ac8 
+ 00027418  0x00006df0 nop  0x0000012c 
+ 00027419  0x00006df1 jam  0x00000005 , 0x00008ac8 
+ 00027420  0x00006df2 nop  0x00000064 
+ 00027421  0x00006df3 jam  0x00000025 , 0x00008ac8 
+ 00027422  0x00006df4 nop  0x000003e8 
+ 00027423  0x00006df5 jam  0x00000027 , 0x00008ac8 
+ 00027424  0x00006df6 nop  0x0000012c 
+ 00027425  0x00006df7 rtn 
+ 00027426  0x00006dfa call  0x00006b19 
+ 00027427  0x00006dfb jam  0x0000003f , 0x00008ac8 
+ 00027428  0x00006dfc rtn 
+ 00027429  0x00006dff jam  0x00000083 , 0x00008047 
+ 00027430  0x00006e01 jam  0x00000000 , 0x00008ac8 
+ 00027431  0x00006e02 rtn 
+ 00027432  0x00006e05 call  0x00006b19 
+ 00027433  0x00006e08 jam  0x00000082 , 0x00008047 
+ 00027434  0x00006e09 nop  0x0000000c 
+ 00027435  0x00006e0a jam  0x00000080 , 0x00008047 
+ 00027436  0x00006e0b jam  0x00000082 , 0x00008047 
+ 00027437  0x00006e0c nop  0x00000096 
+ 00027438  0x00006e0d rtn 
+ 00027439  0x00006e11 lshift3  0x00000012 , 0x00000012 
+ 00027440  0x00006e12 storer  0x00000012 , 0x00000002 , 0x00008044 
+ 00027441  0x00006e13 jam  0x00000000 , 0x00008046 
+ 00027442  0x00006e14 rtn 
+ 00027443  0x00006e18 bpatch  0x000000e9 , 0x0000401d 
+ 00027444  0x00006e19 call  0x00006b22 
+ 00027445  0x00006e1a call  0x00006b2f 
+ 00027446  0x00006e1b call  0x00006b29 
+ 00027447  0x00006e1d ifetcht  0x00000001 , 0x00000011 
+ 00027448  0x00006e1e increase  0x00000001 , 0x00000011 
+ 00027449  0x00006e1f force  0x00000000 , 0x00000007 
+ 00027450  0x00006e21 qisolate0  0x00000002 
+ 00027451  0x00006e22 branch  0x00006b5a , 0x00000001 
+ 00027452  0x00006e23 fetch  0x00000001 , 0x00008046 
+ 00027453  0x00006e24 set1  0x00000006 , 0x0000003f 
+ 00027454  0x00006e25 set1  0x00000007 , 0x0000003f 
+ 00027455  0x00006e26 store  0x00000001 , 0x00008046 
+ 00027456  0x00006e27 jam  0x00000002 , 0x00008047 
+ 00027457  0x00006e28 jam  0x00000082 , 0x00008047 
+ 00027458  0x00006e29 set0  0x00000007 , 0x0000003f 
+ 00027459  0x00006e2a store  0x00000001 , 0x00008046 
+ 00027460  0x00006e2b jam  0x0000008a , 0x00008047 
+ 00027461  0x00006e2c nop  0x0000000b 
+ 00027462  0x00006e2d jam  0x000000ca , 0x00008047 
+ 00027463  0x00006e2e nop  0x00000021 
+ 00027464  0x00006e2f jam  0x0000004a , 0x00008047 
+ 00027465  0x00006e30 nop  0x0000002c 
+ 00027466  0x00006e31 jam  0x000000ca , 0x00008047 
+ 00027467  0x00006e32 nop  0x00000016 
+ 00027468  0x00006e33 jam  0x0000008a , 0x00008047 
+ 00027469  0x00006e34 nop  0x00000021 
+ 00027470  0x00006e35 jam  0x00000082 , 0x00008047 
+ 00027471  0x00006e36 nop  0x00000001 
+ 00027472  0x00006e37 jam  0x00000092 , 0x00008047 
+ 00027473  0x00006e38 nop  0x0000000a 
+ 00027474  0x00006e39 jam  0x000000b2 , 0x00008047 
+ 00027475  0x00006e3a fetch  0x00000001 , 0x00008007 
+ 00027476  0x00006e3b jam  0x00000092 , 0x00008047 
+ 00027477  0x00006e3c nop  0x00000001 
+ 00027478  0x00006e3d jam  0x00000082 , 0x00008047 
+ 00027479  0x00006e3e nop  0x00000001 
+ 00027480  0x00006e3f qisolate0  0x0000003f 
+ 00027481  0x00006e40 branch  0x00006b3a , 0x00000001 
+ 00027482  0x00006e42 fetch  0x00000002 , 0x00008044 
+ 00027483  0x00006e43 increase  0x00000001 , 0x0000003f 
+ 00027484  0x00006e44 store  0x00000002 , 0x00008044 
+ 00027485  0x00006e45 increase  0x00000001 , 0x00000007 
+ 00027486  0x00006e46 compare  0x00000008 , 0x00000007 , 0x0000000f 
+ 00027487  0x00006e47 nbranch  0x00006b3a , 0x00000001 
+ 00027488  0x00006e48 loop  0x00006b37 
+ 00027489  0x00006e49 branch  0x00006b26 
+ 00027490  0x00006e50 bpatch  0x000000ea , 0x0000401d 
+ 00027491  0x00006e52 call  0x00006b2f 
+ 00027492  0x00006e53 jam  0x000000a2 , 0x00008047 
+ 00027493  0x00006e54 increase  0x00000008 , 0x00000012 
+ 00027494  0x00006e55 arg  0x00000000 , 0x00000007 
+ 00027495  0x00006e56 setarg  0xffffffff 
+ 00027496  0x00006e58 fetcht  0x00000001 , 0x00008007 
+ 00027497  0x00006e59 istoret  0x00000001 , 0x00000011 
+ 00027498  0x00006e5a bcrc  0x00000002 
+ 00027499  0x00006e5b jam  0x00000020 , 0x00008006 
+ 00027500  0x00006e5c storer  0x00000012 , 0x00000002 , 0x00008044 
+ 00027501  0x00006e5d isolate1  0x0000000f , 0x00000011 
+ 00027502  0x00006e5e branch  0x00006b71 , 0x00000001 
+ 00027503  0x00006e5f increase  0x00000001 , 0x00000011 
+ 00027504  0x00006e60 branch  0x00006b77 
+ 00027505  0x00006e63 nbranch  0x00006b77 , 0x00000028 
+ 00027506  0x00006e64 increase  0x00000001 , 0x00000007 
+ 00027507  0x00006e65 compare  0x00000000 , 0x00000007 , 0x0000000f 
+ 00027508  0x00006e66 nbranch  0x00006b77 , 0x00000001 
+ 00027509  0x00006e67 call  0x000072c2 
+ 00027510  0x00006e68 jam  0x00000010 , 0x00008006 
+ 00027511  0x00006e6a increase  0x00000008 , 0x00000012 
+ 00027512  0x00006e6b loop  0x00006b68 
+ 00027513  0x00006e6c jam  0x00000082 , 0x00008047 
+ 00027514  0x00006e6d rtn 
+ 00027515  0x00006e79 fetch  0x00000001 , 0x000043cf 
+ 00027516  0x00006e7a beq  0x0000000a , 0x00006b8c 
+ 00027517  0x00006e7b beq  0x00000004 , 0x00006b90 
+ 00027518  0x00006e7d beq  0x00000008 , 0x00006b96 
+ 00027519  0x00006e7e beq  0x00000009 , 0x00006ba0 
+ 00027520  0x00006e7f beq  0x00000006 , 0x00006ba0 
+ 00027521  0x00006e80 beq  0x0000000c , 0x00006b8c 
+ 00027522  0x00006e81 beq  0x0000000d , 0x00006ba7 
+ 00027523  0x00006e82 beq  0x0000000e , 0x00006ba4 
+ 00027524  0x00006e83 beq  0x0000000f , 0x00006b89 
+ 00027525  0x00006e84 beq  0x00000001 , 0x00006bb0 
+ 00027526  0x00006e85 beq  0x00000002 , 0x00006bb5 
+ 00027527  0x00006e86 beq  0x00000007 , 0x00006b9c 
+ 00027528  0x00006e87 branch  0x00006bb8 
+ 00027529  0x00006e8b arg  0x00004a31 , 0x0000003f 
+ 00027530  0x00006e8c arg  0x000066d9 , 0x00000002 
+ 00027531  0x00006e8d branch  0x00006bad 
+ 00027532  0x00006e91 arg  0x000037c1 , 0x0000003f 
+ 00027533  0x00006e92 arg  0x00004a2f , 0x00000002 
+ 00027534  0x00006e93 call  0x00006bad 
+ 00027535  0x00006e94 branch  0x00006bb5 
+ 00027536  0x00006e97 arg  0x00003e8f , 0x0000003f 
+ 00027537  0x00006e98 arg  0x000066d9 , 0x00000002 
+ 00027538  0x00006e99 call  0x00006bad 
+ 00027539  0x00006e9a arg  0x000037c1 , 0x0000003f 
+ 00027540  0x00006e9b arg  0x00003cc7 , 0x00000002 
+ 00027541  0x00006e9c branch  0x00006bb2 
+ 00027542  0x00006ea0 arg  0x000037c1 , 0x0000003f 
+ 00027543  0x00006ea1 arg  0x00004d0d , 0x00000002 
+ 00027544  0x00006ea2 call  0x00006bad 
+ 00027545  0x00006ea3 arg  0x00005bf7 , 0x0000003f 
+ 00027546  0x00006ea4 arg  0x000066d9 , 0x00000002 
+ 00027547  0x00006ea5 branch  0x00006bb2 
+ 00027548  0x00006ea8 arg  0x000037c1 , 0x0000003f 
+ 00027549  0x00006ea9 arg  0x00004d0d , 0x00000002 
+ 00027550  0x00006eaa call  0x00006bad 
+ 00027551  0x00006eab branch  0x00006bb0 
+ 00027552  0x00006eae arg  0x000037c1 , 0x0000003f 
+ 00027553  0x00006eaf arg  0x000060c0 , 0x00000002 
+ 00027554  0x00006eb0 call  0x00006bad 
+ 00027555  0x00006eb1 branch  0x00006bb5 
+ 00027556  0x00006eb4 arg  0x00003cd1 , 0x0000003f 
+ 00027557  0x00006eb5 arg  0x000066d9 , 0x00000002 
+ 00027558  0x00006eb6 branch  0x00006bad 
+ 00027559  0x00006eba arg  0x00003cd1 , 0x0000003f 
+ 00027560  0x00006ebb arg  0x000066d9 , 0x00000002 
+ 00027561  0x00006ebc call  0x00006bad 
+ 00027562  0x00006ebd arg  0x00002ae3 , 0x0000003f 
+ 00027563  0x00006ebe arg  0x000030eb , 0x00000002 
+ 00027564  0x00006ebf branch  0x00006bb2 
+ 00027565  0x00006ec3 lshift16  0x00000002 , 0x00000002 
+ 00027566  0x00006ec4 ior  0x00000002 , 0x0000003f 
+ 00027567  0x00006ec5 branch  0x000023b1 
+ 00027568  0x00006ec9 arg  0x00002b6e , 0x0000003f 
+ 00027569  0x00006eca arg  0x000030eb , 0x00000002 
+ 00027570  0x00006ecc lshift16  0x00000002 , 0x00000002 
+ 00027571  0x00006ecd ior  0x00000002 , 0x0000003f 
+ 00027572  0x00006ece branch  0x000023b8 
+ 00027573  0x00006ed1 arg  0x000030f1 , 0x0000003f 
+ 00027574  0x00006ed2 arg  0x000036bf , 0x00000002 
+ 00027575  0x00006ed3 branch  0x00006bb2 
+ 00027576  0x00006ed6 call  0x00006bb5 
+ 00027577  0x00006ed7 arg  0x00002b6e , 0x0000003f 
+ 00027578  0x00006ed8 arg  0x000030eb , 0x00000002 
+ 00027579  0x00006ed9 branch  0x00006bad 
+ 00027580  0x00006ee0 bpatch  0x000000eb , 0x0000401d 
+ 00027581  0x00006ee2 fetch  0x00000001 , 0x000043fe 
+ 00027582  0x00006ee3 store  0x00000001 , 0x00008080 
+ 00027583  0x00006ee4 fetch  0x00000001 , 0x000043ff 
+ 00027584  0x00006ee5 store  0x00000001 , 0x00008081 
+ 00027585  0x00006ee6 setarg  0x000001bc 
+ 00027586  0x00006ee7 store  0x00000002 , 0x00008084 
+ 00027587  0x00006ee8 setarg  0x000001c1 
+ 00027588  0x00006ee9 store  0x00000002 , 0x00008086 
+ 00027589  0x00006eea branch  0x00006968 
+ 00027590  0x00006ef0 set1  0x00000007 , 0x0000003f 
+ 00027591  0x00006ef1 store  0x00000002 , 0x000001bc 
+ 00027592  0x00006ef2 bpatch  0x000000ec , 0x0000401d 
+ 00027593  0x00006ef3 jam  0x00000002 , 0x00008082 
+ 00027594  0x00006ef4 jam  0x00000000 , 0x00008088 
+ 00027595  0x00006ef5 jam  0x00000002 , 0x00008006 
+ 00027596  0x00006ef6 branch  0x00006bd6 
+ 00027597  0x00006efa force  0x00000001 , 0x00000002 
+ 00027598  0x00006efc store  0x00000001 , 0x000001bc 
+ 00027599  0x00006efd bpatch  0x000000ed , 0x0000401d 
+ 00027600  0x00006efe jam  0x00000001 , 0x00008082 
+ 00027601  0x00006eff storet  0x00000002 , 0x00008088 
+ 00027602  0x00006f00 jam  0x00000002 , 0x00008006 
+ 00027603  0x00006f01 call  0x00006bd6 
+ 00027604  0x00006f02 fetch  0x00000001 , 0x000001c1 
+ 00027605  0x00006f03 rtn 
+ 00027606  0x00006f0a nop  0x00000005 
+ 00027607  0x00006f0b fetch  0x00000001 , 0x00008128 
+ 00027608  0x00006f0c bbit0  0x00000003 , 0x00006bd6 
+ 00027609  0x00006f0d rtn 
+ 00027610  0x00006f16 disable  0x00000028 
+ 00027611  0x00006f17 copy  0x0000003f , 0x00000012 
+ 00027612  0x00006f18 fetch  0x00000001 , 0x00004437 
+ 00027613  0x00006f19 rtnne  0x00000000 
+ 00027614  0x00006f1a enable  0x00000028 
+ 00027615  0x00006f1b copy  0x00000012 , 0x0000003f 
+ 00027616  0x00006f1c branch  0x00006be8 
+ 00027617  0x00006f20 fetch  0x00000001 , 0x00004437 
+ 00027618  0x00006f21 beq  0x00000001 , 0x00006be8 
+ 00027619  0x00006f22 beq  0x00000002 , 0x00006bee 
+ 00027620  0x00006f23 beq  0x00000003 , 0x00006bf6 
+ 00027621  0x00006f24 beq  0x00000004 , 0x00006bfa 
+ 00027622  0x00006f25 beq  0x00000005 , 0x00006c01 
+ 00027623  0x00006f26 rtn 
+ 00027624  0x00006f29 store  0x00000003 , 0x00004430 
+ 00027625  0x00006f2a copy  0x00000011 , 0x0000003f 
+ 00027626  0x00006f2b store  0x00000002 , 0x00004433 
+ 00027627  0x00006f2c storet  0x00000002 , 0x00004435 
+ 00027628  0x00006f2d jam  0x00000002 , 0x00004437 
+ 00027629  0x00006f2e branch  0x00006c16 
+ 00027630  0x00006f31 call  0x00006c16 
+ 00027631  0x00006f32 jam  0x00000003 , 0x00004437 
+ 00027632  0x00006f33 call  0x00006c1c 
+ 00027633  0x00006f34 arg  0x000001bc , 0x00000011 
+ 00027634  0x00006f35 jam  0x00000004 , 0x00008082 
+ 00027635  0x00006f36 fetch  0x00000003 , 0x00004430 
+ 00027636  0x00006f37 arg  0x00000020 , 0x00000002 
+ 00027637  0x00006f38 branch  0x00006c36 
+ 00027638  0x00006f3b call  0x00006c16 
+ 00027639  0x00006f3c call  0x00006c59 
+ 00027640  0x00006f3d jam  0x00000004 , 0x00004437 
+ 00027641  0x00006f3e rtn 
+ 00027642  0x00006f42 bpatch  0x000000ee , 0x0000401d 
+ 00027643  0x00006f43 call  0x00006c16 
+ 00027644  0x00006f44 jam  0x00000005 , 0x00004437 
+ 00027645  0x00006f45 call  0x00006c1c 
+ 00027646  0x00006f46 call  0x00006c0e 
+ 00027647  0x00006f47 call  0x00006c32 
+ 00027648  0x00006f48 branch  0x00006c09 
+ 00027649  0x00006f4a call  0x00006c16 
+ 00027650  0x00006f4b call  0x00006c1c 
+ 00027651  0x00006f4c setarg  0x00000005 
+ 00027652  0x00006f4d call  0x00006bcd 
+ 00027653  0x00006f4e rtnbit1  0x00000000 
+ 00027654  0x00006f4f jam  0x00000000 , 0x00004437 
+ 00027655  0x00006f50 fetch  0x00000002 , 0x000043f0 
+ 00027656  0x00006f51 branch  0x00007d7b 
+ 00027657  0x00006f53 fetch  0x00000004 , 0x00000656 
+ 00027658  0x00006f54 fetcht  0x00000002 , 0x00004433 
+ 00027659  0x00006f56 increase  0xfffffffc , 0x00000002 
+ 00027660  0x00006f57 istore  0x00000004 , 0x00000002 
+ 00027661  0x00006f58 rtn 
+ 00027662  0x00006f5b fetcht  0x00000002 , 0x00004433 
+ 00027663  0x00006f5c copy  0x00000002 , 0x00000011 
+ 00027664  0x00006f5d increase  0xfffffffc , 0x00000002 
+ 00027665  0x00006f5e ifetch  0x00000004 , 0x00000002 
+ 00027666  0x00006f5f store  0x00000004 , 0x00000656 
+ 00027667  0x00006f60 fetcht  0x00000002 , 0x00004435 
+ 00027668  0x00006f61 fetch  0x00000003 , 0x00004430 
+ 00027669  0x00006f62 rtn 
+ 00027670  0x00006f65 bpatch  0x000000ef , 0x0000401d 
+ 00027671  0x00006f66 call  0x00006c81 
+ 00027672  0x00006f67 call  0x00006968 
+ 00027673  0x00006f68 setarg  0x00000000 
+ 00027674  0x00006f69 store  0x00000004 , 0x000001bc 
+ 00027675  0x00006f6a rtn 
+ 00027676  0x00006f6d jam  0x00000006 , 0x000001bc 
+ 00027677  0x00006f6f setarg  0x00000000 
+ 00027678  0x00006f70 store  0x00000002 , 0x00008088 
+ 00027679  0x00006f71 setarg  0x00000001 
+ 00027680  0x00006f72 store  0x00000002 , 0x00008082 
+ 00027681  0x00006f73 setarg  0x000001bc 
+ 00027682  0x00006f74 store  0x00000002 , 0x00008084 
+ 00027683  0x00006f75 jam  0x00000002 , 0x00008006 
+ 00027684  0x00006f76 branch  0x00006bd6 
+ 00027685  0x00006f79 jam  0x000000ab , 0x000001bc 
+ 00027686  0x00006f7a branch  0x00006c1d 
+ 00027687  0x00006f7d jam  0x000000b9 , 0x000001bc 
+ 00027688  0x00006f7e branch  0x00006c1d 
+ 00027689  0x00006f81 store  0x00000003 , 0x0000064e 
+ 00027690  0x00006f82 storet  0x00000002 , 0x00000656 
+ 00027691  0x00006f83 storer  0x00000011 , 0x00000002 , 0x00000662 
+ 00027692  0x00006f84 bpatch  0x000000f0 , 0x0000401e 
+ 00027693  0x00006f85 call  0x00006c1c 
+ 00027694  0x00006f86 fetch  0x00000003 , 0x0000064e 
+ 00027695  0x00006f87 fetcht  0x00000002 , 0x00000656 
+ 00027696  0x00006f88 fetchr  0x00000011 , 0x00000002 , 0x00000662 
+ 00027697  0x00006f89 branch  0x00006c32 
+ 00027698  0x00006f8d increase  0x00000004 , 0x00000002 
+ 00027699  0x00006f8e storet  0x00000002 , 0x00008082 
+ 00027700  0x00006f8f arg  0x00000002 , 0x00000002 
+ 00027701  0x00006f90 increase  0xfffffffc , 0x00000011 
+ 00027702  0x00006f93 istoret  0x00000001 , 0x00000011 
+ 00027703  0x00006f94 rshift16  0x0000003f , 0x00000002 
+ 00027704  0x00006f95 istoret  0x00000001 , 0x00000005 
+ 00027705  0x00006f96 rshift8  0x0000003f , 0x00000002 
+ 00027706  0x00006f97 istoret  0x00000001 , 0x00000005 
+ 00027707  0x00006f98 istore  0x00000001 , 0x00000005 
+ 00027708  0x00006f99 deposit  0x00000011 
+ 00027709  0x00006f9a store  0x00000002 , 0x00008084 
+ 00027710  0x00006f9b setarg  0x00000000 
+ 00027711  0x00006f9c store  0x00000002 , 0x00008088 
+ 00027712  0x00006f9d jam  0x00000002 , 0x00008006 
+ 00027713  0x00006f9e call  0x00006bd6 
+ 00027714  0x00006f9f branch  0x00006c59 
+ 00027715  0x00006fa4 storet  0x00000002 , 0x00008088 
+ 00027716  0x00006fa5 rshift16  0x0000003f , 0x00000002 
+ 00027717  0x00006fa6 storet  0x00000001 , 0x000001bd 
+ 00027718  0x00006fa7 rshift8  0x0000003f , 0x00000002 
+ 00027719  0x00006fa8 storet  0x00000001 , 0x000001be 
+ 00027720  0x00006fa9 store  0x00000001 , 0x000001bf 
+ 00027721  0x00006faa setarg  0x00000004 
+ 00027722  0x00006fab store  0x00000002 , 0x00008082 
+ 00027723  0x00006fac jam  0x00000003 , 0x000001bc 
+ 00027724  0x00006fad setarg  0x000001bc 
+ 00027725  0x00006fae store  0x00000002 , 0x00008084 
+ 00027726  0x00006faf deposit  0x00000011 
+ 00027727  0x00006fb0 store  0x00000002 , 0x00008086 
+ 00027728  0x00006fb1 fetch  0x00000001 , 0x00008080 
+ 00027729  0x00006fb2 isolate0  0x0000000f , 0x00000011 
+ 00027730  0x00006fb3 setflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00027731  0x00006fb4 store  0x00000001 , 0x00008080 
+ 00027732  0x00006fb5 jam  0x00000002 , 0x00008006 
+ 00027733  0x00006fb7 fetch  0x00000001 , 0x00008128 
+ 00027734  0x00006fb8 bbit1  0x00000007 , 0x00006c55 
+ 00027735  0x00006fb9 arg  0x00000003 , 0x00000007 
+ 00027736  0x00006fba branch  0x00006bd6 
+ 00027737  0x00006fbd setarg  0x000007d0 
+ 00027738  0x00006fbe call  0x00002340 
+ 00027739  0x00006fbf call  0x00006c1c 
+ 00027740  0x00006fc0 setarg  0x000001c1 
+ 00027741  0x00006fc1 store  0x00000002 , 0x00008086 
+ 00027742  0x00006fc2 setarg  0x00000005 
+ 00027743  0x00006fc3 call  0x00006bcd 
+ 00027744  0x00006fc4 bbit1  0x00000000 , 0x00006c59 
+ 00027745  0x00006fc5 rtn 
+ 00027746  0x00006fcc storet  0x00000002 , 0x00008088 
+ 00027747  0x00006fcd setarg  0x00000004 
+ 00027748  0x00006fce store  0x00000002 , 0x00008082 
+ 00027749  0x00006fcf jam  0x00000003 , 0x000001bc 
+ 00027750  0x00006fd0 setarg  0x000001bc 
+ 00027751  0x00006fd1 store  0x00000002 , 0x00008084 
+ 00027752  0x00006fd2 deposit  0x00000011 
+ 00027753  0x00006fd3 store  0x00000002 , 0x00008086 
+ 00027754  0x00006fd4 fetch  0x00000001 , 0x00008080 
+ 00027755  0x00006fd5 isolate0  0x0000000f , 0x00000011 
+ 00027756  0x00006fd6 setflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00027757  0x00006fd7 store  0x00000001 , 0x00008080 
+ 00027758  0x00006fd8 jam  0x00000002 , 0x00008006 
+ 00027759  0x00006fda fetch  0x00000001 , 0x00008128 
+ 00027760  0x00006fdb bbit1  0x00000007 , 0x00006c6f 
+ 00027761  0x00006fdc arg  0x00000003 , 0x00000007 
+ 00027762  0x00006fdd call  0x00006af0 
+ 00027763  0x00006fde call  0x00006bd6 
+ 00027764  0x00006fdf isolate1  0x00000002 , 0x0000003f 
+ 00027765  0x00006fe0 call  0x00006ae9 
+ 00027766  0x00006fe1 fetch  0x00000001 , 0x000001bd 
+ 00027767  0x00006fe2 lshift16  0x0000003f , 0x00000012 
+ 00027768  0x00006fe3 fetch  0x00000002 , 0x000001be 
+ 00027769  0x00006fe4 byteswap  0x0000003f , 0x0000003f 
+ 00027770  0x00006fe5 ior  0x00000012 , 0x0000003f 
+ 00027771  0x00006fe6 iadd  0x00000002 , 0x0000003f 
+ 00027772  0x00006fe7 store  0x00000001 , 0x000001bf 
+ 00027773  0x00006fe8 rshift8  0x0000003f , 0x0000003f 
+ 00027774  0x00006fe9 byteswap  0x0000003f , 0x0000003f 
+ 00027775  0x00006fea store  0x00000002 , 0x000001bd 
+ 00027776  0x00006feb rtn 
+ 00027777  0x00006fee fetch  0x00000001 , 0x00004438 
+ 00027778  0x00006fef fetcht  0x00000001 , 0x0000443a 
+ 00027779  0x00006ff0 isub  0x00000002 , 0x0000003e 
+ 00027780  0x00006ff1 nbranch  0x00006c86 , 0x00000005 
+ 00027781  0x00006ff2 call  0x00006c92 
+ 00027782  0x00006ff5 fetch  0x00000001 , 0x00004438 
+ 00027783  0x00006ff6 arg  0x00000020 , 0x00000002 
+ 00027784  0x00006ff7 call  0x00006f1d 
+ 00027785  0x00006ff8 fetch  0x00000001 , 0x0000443b 
+ 00027786  0x00006ff9 arg  0x00000021 , 0x00000002 
+ 00027787  0x00006ffa call  0x00006f1d 
+ 00027788  0x00006ffb fetch  0x00000001 , 0x00004439 
+ 00027789  0x00006ffc arg  0x00000022 , 0x00000002 
+ 00027790  0x00006ffd call  0x00006f1d 
+ 00027791  0x00006ffe fetch  0x00000001 , 0x0000443a 
+ 00027792  0x00006fff arg  0x0000001f , 0x00000002 
+ 00027793  0x00007000 branch  0x00006f1d 
+ 00027794  0x00007003 jam  0x00000001 , 0x00004438 
+ 00027795  0x00007004 jam  0x00000003 , 0x00004439 
+ 00027796  0x00007005 jam  0x00000000 , 0x0000443a 
+ 00027797  0x00007006 jam  0x00000002 , 0x0000443b 
+ 00027798  0x00007007 jam  0x0000000b , 0x0000443c 
+ 00027799  0x00007008 jam  0x0000000a , 0x0000443d 
+ 00027800  0x00007009 rtn 
+ 00027801  0x0000700d jam  0x00000001 , 0x00008010 
+ 00027802  0x0000700e rtn 
+ 00027803  0x00007015 jam  0x00000005 , 0x0000808b 
+ 00027804  0x00007016 jam  0x00000007 , 0x0000808c 
+ 00027805  0x00007017 jam  0x00000007 , 0x0000808d 
+ 00027806  0x00007018 jam  0x00000007 , 0x0000808e 
+ 00027807  0x00007019 jam  0x00000007 , 0x0000808f 
+ 00027808  0x0000701a jam  0x00000005 , 0x00008090 
+ 00027809  0x0000701b jam  0x00000000 , 0x00008091 
+ 00027810  0x0000701c rtn 
+ 00027811  0x0000701f jam  0x0000000c , 0x0000808b 
+ 00027812  0x00007020 jam  0x0000000d , 0x0000808c 
+ 00027813  0x00007021 jam  0x0000000d , 0x0000808d 
+ 00027814  0x00007022 jam  0x0000000d , 0x0000808e 
+ 00027815  0x00007023 jam  0x0000000d , 0x0000808f 
+ 00027816  0x00007024 jam  0x0000000c , 0x00008090 
+ 00027817  0x00007025 jam  0x00000000 , 0x00008091 
+ 00027818  0x00007026 rtn 
+ 00027819  0x00007029 call  0x00006cce 
+ 00027820  0x0000702b fetch  0x00000001 , 0x0000443f 
+ 00027821  0x0000702c arg  0x0000006c , 0x00000002 
+ 00027822  0x0000702d call  0x00006f1d 
+ 00027823  0x0000702e fetch  0x00000001 , 0x00004440 
+ 00027824  0x0000702f arg  0x0000006d , 0x00000002 
+ 00027825  0x00007030 branch  0x00006f1d 
+ 00027826  0x00007033 call  0x00006cd5 
+ 00027827  0x00007034 branch  0x00006cac 
+ 00027828  0x00007037 fetch  0x00000001 , 0x00008128 
+ 00027829  0x00007038 bbit0  0x00000005 , 0x00006cb4 
+ 00027830  0x00007039 rtn 
+ 00027831  0x00007054 set1  0x00000028 , 0x00000000 
+ 00027832  0x00007055 jam  0x00000008 , 0x000043fd 
+ 00027833  0x00007056 rtn 
+ 00027834  0x00007059 set0  0x00000028 , 0x00000000 
+ 00027835  0x0000705a jam  0x00000020 , 0x000043fd 
+ 00027836  0x0000705b rtn 
+ 00027837  0x0000705f fetch  0x00000001 , 0x000043f4 
+ 00027838  0x00007060 iadd  0x00000012 , 0x0000003f 
+ 00027839  0x00007061 store  0x00000001 , 0x000001be 
+ 00027840  0x00007062 branch  0x00006cc4 
+ 00027841  0x00007065 fetch  0x00000002 , 0x000001be 
+ 00027842  0x00007066 byteswap  0x0000003f , 0x0000003f 
+ 00027843  0x00007067 store  0x00000001 , 0x000001be 
+ 00027844  0x0000706d setarg  0x00000003 
+ 00027845  0x0000706e store  0x00000002 , 0x00008092 
+ 00027846  0x0000706f jam  0x000000a0 , 0x000001bd 
+ 00027847  0x00007070 jam  0x000000a1 , 0x000001bf 
+ 00027848  0x00007071 branch  0x00006ce3 
+ 00027849  0x00007078 storet  0x00000002 , 0x00000656 
+ 00027850  0x00007079 call  0x00006cce 
+ 00027851  0x0000707a fetcht  0x00000002 , 0x00000656 
+ 00027852  0x0000707b call  0x00006cfa 
+ 00027853  0x0000707c branch  0x00006cd5 
+ 00027854  0x0000707f fetch  0x00000001 , 0x0000443e 
+ 00027855  0x00007080 rtneq  0x000000ff 
+ 00027856  0x00007081 bbit0  0x00000006 , 0x00006cd3 
+ 00027857  0x00007082 setarg  0x000249f0 
+ 00027858  0x00007083 call  0x00002340 
+ 00027859  0x00007085 fetcht  0x00000001 , 0x0000443e 
+ 00027860  0x00007086 branch  0x00006ef1 
+ 00027861  0x00007089 fetcht  0x00000001 , 0x0000443e 
+ 00027862  0x0000708a branch  0x00006eed 
+ 00027863  0x00007090 bpatch  0x000000f1 , 0x0000401e 
+ 00027864  0x00007091 bmark1  0x00000028 , 0x00006cbd 
+ 00027865  0x00007092 fetch  0x00000002 , 0x000043f4 
+ 00027866  0x00007093 iadd  0x00000012 , 0x0000003f 
+ 00027867  0x00007094 byteswap  0x0000003f , 0x0000003f 
+ 00027868  0x00007095 store  0x00000002 , 0x000001be 
+ 00027869  0x00007099 bpatch  0x000000f2 , 0x0000401e 
+ 00027870  0x0000709a bmark1  0x00000028 , 0x00006cc1 
+ 00027871  0x0000709b setarg  0x00000004 
+ 00027872  0x0000709c store  0x00000002 , 0x00008092 
+ 00027873  0x0000709d jam  0x000000a0 , 0x000001bd 
+ 00027874  0x0000709e jam  0x000000a1 , 0x000001c0 
+ 00027875  0x000070a0 setarg  0x000001bd 
+ 00027876  0x000070a1 store  0x00000002 , 0x00008094 
+ 00027877  0x000070a2 storet  0x00000002 , 0x00008098 
+ 00027878  0x000070a3 storer  0x00000011 , 0x00000002 , 0x00008096 
+ 00027879  0x000070a4 setarg  0x00000002 
+ 00027880  0x000070a5 isolate0  0x0000000f , 0x00000011 
+ 00027881  0x000070a6 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00027882  0x000070a7 store  0x00000001 , 0x0000808a 
+ 00027883  0x000070a8 jam  0x00000004 , 0x00008006 
+ 00027884  0x000070a9 arg  0x00000005 , 0x00000007 
+ 00027885  0x000070aa call  0x00006af0 
+ 00027886  0x000070ab call  0x00006cb4 
+ 00027887  0x000070ac isolate1  0x00000004 , 0x0000003f 
+ 00027888  0x000070ad call  0x00006ae9 
+ 00027889  0x000070ae bmark1  0x00000028 , 0x00006cf5 
+ 00027890  0x000070b0 fetch  0x00000002 , 0x000001be 
+ 00027891  0x000070b1 byteswap  0x0000003f , 0x0000003f 
+ 00027892  0x000070b2 branch  0x00006cf6 
+ 00027893  0x000070b5 fetch  0x00000001 , 0x000001be 
+ 00027894  0x000070b7 iadd  0x00000002 , 0x0000003f 
+ 00027895  0x000070b8 byteswap  0x0000003f , 0x0000003f 
+ 00027896  0x000070b9 store  0x00000002 , 0x000001be 
+ 00027897  0x000070ba rtn 
+ 00027898  0x000070c1 fetch  0x00000002 , 0x000043f4 
+ 00027899  0x000070c2 iadd  0x00000012 , 0x0000003f 
+ 00027900  0x000070c5 store  0x00000002 , 0x0000064e 
+ 00027901  0x000070c6 bpatch  0x000000f3 , 0x0000401e 
+ 00027902  0x000070c7 storet  0x00000002 , 0x00000656 
+ 00027903  0x000070c8 storer  0x00000011 , 0x00000002 , 0x0000066d 
+ 00027904  0x000070ca call  0x00006d0f 
+ 00027905  0x000070cc fetcht  0x00000002 , 0x00000666 
+ 00027906  0x000070cd fetchr  0x00000011 , 0x00000002 , 0x0000066d 
+ 00027907  0x000070ce fetch  0x00000002 , 0x0000064e 
+ 00027908  0x000070d0 call  0x00006d30 
+ 00027909  0x000070d2 fetch  0x00000002 , 0x00000666 
+ 00027910  0x000070d3 fetcht  0x00000002 , 0x0000066d 
+ 00027911  0x000070d4 iadd  0x00000002 , 0x00000002 
+ 00027912  0x000070d5 storet  0x00000002 , 0x0000066d 
+ 00027913  0x000070d6 fetcht  0x00000002 , 0x0000064e 
+ 00027914  0x000070d7 iadd  0x00000002 , 0x00000002 
+ 00027915  0x000070d8 storet  0x00000002 , 0x0000064e 
+ 00027916  0x000070d9 fetch  0x00000002 , 0x00000656 
+ 00027917  0x000070da nbranch  0x00006d00 , 0x00000034 
+ 00027918  0x000070db rtn 
+ 00027919  0x000070e4 bpatch  0x000000f4 , 0x0000401e 
+ 00027920  0x000070e5 fetch  0x00000001 , 0x000043fd 
+ 00027921  0x000070e6 increase  0xffffffff , 0x0000003f 
+ 00027922  0x000070e7 fetcht  0x00000002 , 0x0000064e 
+ 00027923  0x000070e8 ior  0x00000002 , 0x0000003f 
+ 00027924  0x000070e9 increase  0x00000001 , 0x0000003f 
+ 00027925  0x000070ea store  0x00000003 , 0x0000066a 
+ 00027926  0x000070ec fetch  0x00000002 , 0x00000656 
+ 00027927  0x000070ed iadd  0x00000002 , 0x0000003f 
+ 00027928  0x000070ef fetcht  0x00000003 , 0x0000066a 
+ 00027929  0x000070f0 isub  0x00000002 , 0x0000003f 
+ 00027930  0x000070f1 nbranch  0x00006d21 , 0x00000002 
+ 00027931  0x000070f2 store  0x00000002 , 0x00000656 
+ 00027932  0x000070f3 fetch  0x00000003 , 0x0000066a 
+ 00027933  0x000070f4 fetcht  0x00000002 , 0x0000064e 
+ 00027934  0x000070f5 isub  0x00000002 , 0x0000003f 
+ 00027935  0x000070f6 store  0x00000002 , 0x00000666 
+ 00027936  0x000070f7 rtn 
+ 00027937  0x000070fa fetch  0x00000002 , 0x00000656 
+ 00027938  0x000070fb store  0x00000002 , 0x00000666 
+ 00027939  0x000070fc setarg  0x00000000 
+ 00027940  0x000070fd store  0x00000002 , 0x00000656 
+ 00027941  0x000070fe rtn 
+ 00027942  0x00007101 copy  0x00000012 , 0x0000003f 
+ 00027943  0x00007102 increase  0x00000002 , 0x00000002 
+ 00027944  0x00007103 storet  0x00000002 , 0x00008092 
+ 00027945  0x00007104 increase  0xfffffffe , 0x00000011 
+ 00027946  0x00007105 ifetcht  0x00000003 , 0x00000011 
+ 00027947  0x00007106 copy  0x00000002 , 0x00000012 
+ 00027948  0x00007107 arg  0x000000a0 , 0x00000002 
+ 00027949  0x00007108 istoret  0x00000001 , 0x00000011 
+ 00027950  0x00007109 istore  0x00000001 , 0x00000005 
+ 00027951  0x0000710a branch  0x00006d3d 
+ 00027952  0x0000710e copy  0x0000003f , 0x00000012 
+ 00027953  0x0000710f bpatch  0x000000f5 , 0x0000401e 
+ 00027954  0x00007110 bmark1  0x00000028 , 0x00006d26 
+ 00027955  0x00007111 copy  0x00000012 , 0x0000003f 
+ 00027956  0x00007112 increase  0x00000003 , 0x00000002 
+ 00027957  0x00007113 storet  0x00000002 , 0x00008092 
+ 00027958  0x00007114 increase  0xfffffffd , 0x00000011 
+ 00027959  0x00007115 ifetcht  0x00000003 , 0x00000011 
+ 00027960  0x00007116 copy  0x00000002 , 0x00000012 
+ 00027961  0x00007117 arg  0x000000a0 , 0x00000002 
+ 00027962  0x00007118 istoret  0x00000001 , 0x00000011 
+ 00027963  0x00007119 byteswap  0x0000003f , 0x0000003f 
+ 00027964  0x0000711a istore  0x00000002 , 0x00000005 
+ 00027965  0x0000711c storer  0x00000011 , 0x00000002 , 0x00008094 
+ 00027966  0x0000711d setarg  0x00000000 
+ 00027967  0x0000711e store  0x00000002 , 0x00008098 
+ 00027968  0x0000711f jam  0x00000001 , 0x0000808a 
+ 00027969  0x00007120 jam  0x00000004 , 0x00008006 
+ 00027970  0x00007121 call  0x00006cb4 
+ 00027971  0x00007122 istorer  0x00000012 , 0x00000003 , 0x00000011 
+ 00027972  0x00007124 bpatch  0x000000f6 , 0x0000401e 
+ 00027973  0x00007125 jam  0x00000000 , 0x000001c0 
+ 00027974  0x00007127 setarg  0x00000001 
+ 00027975  0x00007128 store  0x00000002 , 0x00008092 
+ 00027976  0x00007129 jam  0x000000a0 , 0x000001bd 
+ 00027977  0x0000712a setarg  0x000001bd 
+ 00027978  0x0000712b store  0x00000002 , 0x00008094 
+ 00027979  0x0000712c setarg  0x00000000 
+ 00027980  0x0000712d store  0x00000002 , 0x00008098 
+ 00027981  0x0000712e store  0x00000002 , 0x00008096 
+ 00027982  0x0000712f setarg  0x00000003 
+ 00027983  0x00007130 store  0x00000001 , 0x0000808a 
+ 00027984  0x00007131 jam  0x00000004 , 0x00008006 
+ 00027985  0x00007132 call  0x00006cb4 
+ 00027986  0x00007133 fetch  0x00000001 , 0x00008128 
+ 00027987  0x00007134 rtnbit0  0x00000006 
+ 00027988  0x00007135 nop  0x000005dc 
+ 00027989  0x00007136 fetch  0x00000001 , 0x000001c0 
+ 00027990  0x00007137 increase  0x00000001 , 0x0000003f 
+ 00027991  0x00007138 store  0x00000001 , 0x000001c0 
+ 00027992  0x00007139 sub  0x0000003f , 0x00000028 , 0x0000003e 
+ 00027993  0x0000713a nrtn  0x00000002 
+ 00027994  0x0000713b branch  0x00006d46 
+ 00027995  0x00007140 call  0x00007dbc 
+ 00027996  0x00007141 branch  0x00006d5d 
+ 00027997  0x00007144 rshift16  0x0000003f , 0x00000002 
+ 00027998  0x00007145 call  0x00006d81 , 0x00000028 
+ 00027999  0x00007146 rshift32  0x0000003f , 0x0000003f 
+ 00028000  0x00007147 rshift16  0x0000003f , 0x00000002 
+ 00028001  0x00007148 call  0x00006d7d , 0x00000028 
+ 00028002  0x00007149 fetch  0x00000002 , 0x00008050 
+ 00028003  0x0000714a set0  0x0000000f , 0x0000003f 
+ 00028004  0x0000714b store  0x00000002 , 0x00008050 
+ 00028005  0x0000714c rtn 
+ 00028006  0x00007150 store  0x00000002 , 0x00008052 
+ 00028007  0x00007151 rtn 
+ 00028008  0x00007155 call  0x00006d6a 
+ 00028009  0x00007156 branch  0x00006d66 
+ 00028010  0x0000715a call  0x00006d6f 
+ 00028011  0x0000715b idiv  0x00000002 
+ 00028012  0x0000715c call  0x00007d64 
+ 00028013  0x0000715d quotient  0x0000003f 
+ 00028014  0x0000715e rtn 
+ 00028015  0x00007161 fetch  0x00000001 , 0x00008043 
+ 00028016  0x00007162 bbit0  0x00000000 , 0x00006d73 
+ 00028017  0x00007163 setarg  0x02dc6c00 
+ 00028018  0x00007164 rtn 
+ 00028019  0x00007166 setarg  0x016e3600 
+ 00028020  0x00007167 rtn 
+ 00028021  0x0000716a fetch  0x00000001 , 0x00008043 
+ 00028022  0x0000716b and  0x0000003f , 0x000000fe , 0x0000003f 
+ 00028023  0x0000716c store  0x00000001 , 0x00008043 
+ 00028024  0x0000716d rtn 
+ 00028025  0x00007170 fetch  0x00000001 , 0x00008043 
+ 00028026  0x00007171 or  0x0000003f , 0x00000001 , 0x0000003f 
+ 00028027  0x00007172 store  0x00000001 , 0x00008043 
+ 00028028  0x00007173 rtn 
+ 00028029  0x00007178 store  0x00000002 , 0x0000805a 
+ 00028030  0x00007179 store  0x00000002 , 0x0000805e 
+ 00028031  0x0000717a storet  0x00000002 , 0x0000805c 
+ 00028032  0x0000717b rtn 
+ 00028033  0x0000717f store  0x00000002 , 0x00008054 
+ 00028034  0x00007180 store  0x00000002 , 0x00008058 
+ 00028035  0x00007181 storet  0x00000002 , 0x00008056 
+ 00028036  0x00007182 rtn 
+ 00028037  0x00007185 fetchr  0x0000000a , 0x00000002 , 0x0000805a 
+ 00028038  0x00007186 fetchr  0x00000010 , 0x00000002 , 0x0000805c 
+ 00028039  0x00007187 fetchr  0x00000003 , 0x00000002 , 0x0000805e 
+ 00028040  0x00007188 rtn 
+ 00028041  0x0000718b fetchr  0x0000000a , 0x00000002 , 0x00008054 
+ 00028042  0x0000718c fetchr  0x00000010 , 0x00000002 , 0x00008056 
+ 00028043  0x0000718d fetchr  0x00000003 , 0x00000002 , 0x00008058 
+ 00028044  0x0000718e rtn 
+ 00028045  0x00007191 storer  0x00000003 , 0x00000002 , 0x0000805e 
+ 00028046  0x00007192 rtn 
+ 00028047  0x00007195 storer  0x00000003 , 0x00000002 , 0x00008058 
+ 00028048  0x00007196 rtn 
+ 00028049  0x00007199 call  0x00006d89 
+ 00028050  0x0000719a fetch  0x00000002 , 0x00008112 
+ 00028051  0x0000719b iadd  0x00000003 , 0x00000003 
+ 00028052  0x0000719c branch  0x00006d8f 
+ 00028053  0x0000719f call  0x00006d99 
+ 00028054  0x000071a0 branch  0x00006d85 
+ 00028055  0x000071a3 call  0x00006d8d 
+ 00028056  0x000071a4 branch  0x00006d9d 
+ 00028057  0x000071a8 storer  0x00000003 , 0x00000002 , 0x00000675 
+ 00028058  0x000071a9 storer  0x0000000a , 0x00000002 , 0x00000673 
+ 00028059  0x000071aa storer  0x00000010 , 0x00000002 , 0x00000671 
+ 00028060  0x000071ab rtn 
+ 00028061  0x000071ae fetchr  0x00000003 , 0x00000002 , 0x00000675 
+ 00028062  0x000071af fetchr  0x0000000a , 0x00000002 , 0x00000673 
+ 00028063  0x000071b0 fetchr  0x00000010 , 0x00000002 , 0x00000671 
+ 00028064  0x000071b1 rtn 
+ 00028065  0x000071b4 fetch  0x00000002 , 0x0000810e 
+ 00028066  0x000071b5 nbranch  0x00006da1 , 0x00000034 
+ 00028067  0x000071b6 rtn 
+ 00028068  0x000071b9 deposit  0x00000039 
+ 00028069  0x000071ba rtn  0x00000034 
+ 00028070  0x000071bc increase  0xfffffff8 , 0x00000039 
+ 00028071  0x000071bd call  0x00006db1 , 0x00000002 
+ 00028072  0x000071be rtn  0x00000005 
+ 00028073  0x000071bf branch  0x00006da6 , 0x00000002 
+ 00028074  0x000071c0 increase  0x00000008 , 0x00000039 
+ 00028075  0x000071c2 increase  0xfffffffc , 0x00000039 
+ 00028076  0x000071c3 call  0x00006db4 , 0x00000002 
+ 00028077  0x000071c4 rtn  0x00000005 
+ 00028078  0x000071c5 branch  0x00006dab , 0x00000002 
+ 00028079  0x000071c6 increase  0x00000004 , 0x00000039 
+ 00028080  0x000071c7 branch  0x00006db7 
+ 00028081  0x000071ca ifetch  0x00000008 , 0x00000006 
+ 00028082  0x000071cb istore  0x00000008 , 0x00000003 
+ 00028083  0x000071cc rtn 
+ 00028084  0x000071cf ifetch  0x00000004 , 0x00000006 
+ 00028085  0x000071d0 istore  0x00000004 , 0x00000003 
+ 00028086  0x000071d1 rtn 
+ 00028087  0x000071d4 deposit  0x00000039 
+ 00028088  0x000071d5 rtn  0x00000034 
+ 00028089  0x000071d7 ifetch  0x00000001 , 0x00000006 
+ 00028090  0x000071d8 istore  0x00000001 , 0x00000003 
+ 00028091  0x000071d9 loop  0x00006db9 
+ 00028092  0x000071da rtn 
+ 00028093  0x000071dd deposit  0x00000039 
+ 00028094  0x000071de rtn  0x00000034 
+ 00028095  0x000071e0 increase  0xfffffff8 , 0x00000039 
+ 00028096  0x000071e1 call  0x00006dca , 0x00000002 
+ 00028097  0x000071e2 rtn  0x00000005 
+ 00028098  0x000071e3 branch  0x00006dbf , 0x00000002 
+ 00028099  0x000071e4 increase  0x00000008 , 0x00000039 
+ 00028100  0x000071e6 increase  0xfffffffc , 0x00000039 
+ 00028101  0x000071e7 call  0x00006dcd , 0x00000002 
+ 00028102  0x000071e8 rtn  0x00000005 
+ 00028103  0x000071e9 branch  0x00006dc4 , 0x00000002 
+ 00028104  0x000071ea increase  0x00000004 , 0x00000039 
+ 00028105  0x000071eb branch  0x00006dd0 
+ 00028106  0x000071ef ifetch  0x00000008 , 0x00000003 
+ 00028107  0x000071f0 istore  0x00000008 , 0x00000005 
+ 00028108  0x000071f1 rtn 
+ 00028109  0x000071f4 ifetch  0x00000004 , 0x00000003 
+ 00028110  0x000071f5 istore  0x00000004 , 0x00000005 
+ 00028111  0x000071f6 rtn 
+ 00028112  0x000071fa deposit  0x00000039 
+ 00028113  0x000071fb rtn  0x00000034 
+ 00028114  0x000071fd ifetch  0x00000001 , 0x00000003 
+ 00028115  0x000071fe istore  0x00000001 , 0x00000005 
+ 00028116  0x000071ff loop  0x00006dd2 
+ 00028117  0x00007200 rtn 
+ 00028118  0x00007206 jam  0x0000003d , 0x0000064d 
+ 00028119  0x00007207 branch  0x00007819 
+ 00028120  0x0000720a bpatch  0x000000f7 , 0x0000401e 
+ 00028121  0x0000720b fetch  0x00000001 , 0x00004403 
+ 00028122  0x0000720c rtn  0x00000034 
+ 00028123  0x0000720d call  0x00006e79 
+ 00028124  0x0000720e call  0x00006e7f , 0x00000005 
+ 00028125  0x0000720f call  0x00007dc2 
+ 00028126  0x00007210 call  0x00006e0b 
+ 00028127  0x00007212 fetch  0x00000001 , 0x00004403 
+ 00028128  0x00007213 icopy  0x00000013 
+ 00028129  0x00007214 fetcht  0x00000002 , 0x00004401 
+ 00028130  0x00007215 storet  0x00000002 , 0x00000033 
+ 00028131  0x00007217 copy  0x00000013 , 0x0000003f 
+ 00028132  0x00007218 branch  0x00006dd6 , 0x00000034 
+ 00028133  0x00007219 increase  0xffffffff , 0x00000013 
+ 00028134  0x0000721a copy  0x00000002 , 0x00000011 
+ 00028135  0x0000721b ifetch  0x00000001 , 0x00000011 
+ 00028136  0x0000721c fetcht  0x00000001 , 0x00000031 
+ 00028137  0x0000721d isub  0x00000002 , 0x0000003e 
+ 00028138  0x0000721e call  0x00006df3 , 0x00000005 
+ 00028139  0x0000721f branch  0x00006def , 0x00000002 
+ 00028140  0x00007220 ifetch  0x00000001 , 0x00000011 
+ 00028141  0x00007221 increase  0x00000001 , 0x0000003f 
+ 00028142  0x00007222 istore  0x00000001 , 0x00000011 
+ 00028143  0x00007224 fetcht  0x00000002 , 0x00000033 
+ 00028144  0x00007225 increase  0x00000022 , 0x00000002 
+ 00028145  0x00007226 storet  0x00000002 , 0x00000033 
+ 00028146  0x00007227 branch  0x00006de3 
+ 00028147  0x0000722a setarg  0x00000000 
+ 00028148  0x0000722b istore  0x00000001 , 0x00000011 
+ 00028149  0x0000722c fetch  0x00000001 , 0x00000032 
+ 00028150  0x0000722d istore  0x00000001 , 0x00000005 
+ 00028151  0x0000722e bne  0x00000033 , 0x00006e00 
+ 00028152  0x00007231 ifetch  0x00000006 , 0x00000006 
+ 00028153  0x00007232 istore  0x00000008 , 0x00000005 
+ 00028154  0x00007233 setarg  0x00000000 
+ 00028155  0x00007234 istore  0x00000008 , 0x00000005 
+ 00028156  0x00007235 copy  0x00000012 , 0x00000006 
+ 00028157  0x00007237 call  0x00007c91 
+ 00028158  0x00007238 force  0x00000001 , 0x0000003e 
+ 00028159  0x00007239 rtn 
+ 00028160  0x0000723c beq  0x00000036 , 0x00006e04 
+ 00028161  0x0000723d beq  0x00000037 , 0x00006e08 
+ 00028162  0x0000723e arg  0x0000428c , 0x00000012 
+ 00028163  0x0000723f branch  0x00006df8 
+ 00028164  0x00007242 arg  0x0000430f , 0x00000006 
+ 00028165  0x00007243 call  0x00007c91 
+ 00028166  0x00007245 arg  0x0000428c , 0x00000006 
+ 00028167  0x00007246 branch  0x00006dfd 
+ 00028168  0x00007249 arg  0x00004307 , 0x00000006 
+ 00028169  0x0000724a call  0x00007c91 
+ 00028170  0x0000724b branch  0x00006e06 
+ 00028171  0x00007251 bpatch  0x000000f8 , 0x0000401f 
+ 00028172  0x00007252 call  0x00007dbe 
+ 00028173  0x00007253 fetch  0x00000001 , 0x00004403 
+ 00028174  0x00007254 rtn  0x00000034 
+ 00028175  0x00007255 fetch  0x00000002 , 0x00004500 
+ 00028176  0x00007256 rtnbit0  0x00000009 
+ 00028177  0x00007258 fetch  0x00000001 , 0x000042cd 
+ 00028178  0x00007259 beq  0x00000000 , 0x00006e26 
+ 00028179  0x0000725a fetch  0x00000001 , 0x0000017d 
+ 00028180  0x0000725b compare  0x000000c0 , 0x0000003f , 0x000000c0 
+ 00028181  0x0000725c branch  0x00006e19 , 0x00000001 
+ 00028182  0x0000725d compare  0x00000040 , 0x0000003f , 0x000000c0 
+ 00028183  0x0000725e branch  0x00006e2b , 0x00000001 
+ 00028184  0x0000725f branch  0x00006e20 
+ 00028185  0x00007262 branch  0x00006e1d , 0x0000002c 
+ 00028186  0x00007263 fetch  0x00000001 , 0x000042c4 
+ 00028187  0x00007264 bbit0  0x00000001 , 0x00006e26 
+ 00028188  0x00007265 branch  0x00006e20 
+ 00028189  0x00007268 call  0x00006e26 
+ 00028190  0x00007269 rtn  0x00000028 
+ 00028191  0x0000726a branch  0x00006e20 
+ 00028192  0x0000726f fetch  0x00000001 , 0x00004300 
+ 00028193  0x00007270 bbit1  0x00000007 , 0x00006e23 
+ 00028194  0x00007271 branch  0x00006e29 
+ 00028195  0x00007275 fetch  0x00000006 , 0x00000178 
+ 00028196  0x00007276 store  0x00000008 , 0x00004307 
+ 00028197  0x00007277 branch  0x00006e29 
+ 00028198  0x0000727b jam  0x00000035 , 0x00000032 
+ 00028199  0x0000727c fetch  0x00000006 , 0x00000178 
+ 00028200  0x0000727d branch  0x00006e2d 
+ 00028201  0x00007280 jam  0x00000037 , 0x00000032 
+ 00028202  0x00007281 branch  0x00006e2d 
+ 00028203  0x00007285 jam  0x00000036 , 0x00000032 
+ 00028204  0x00007286 branch  0x00006e2d 
+ 00028205  0x00007289 bpatch  0x000000f9 , 0x0000401f 
+ 00028206  0x0000728b fetch  0x00000002 , 0x00004401 
+ 00028207  0x0000728c ifetcht  0x00000001 , 0x0000003f 
+ 00028208  0x0000728d pincrease  0x00000001 
+ 00028209  0x0000728e store  0x00000002 , 0x00000033 
+ 00028210  0x0000728f storet  0x00000001 , 0x00000031 
+ 00028211  0x00007290 fetch  0x00000001 , 0x00004403 
+ 00028212  0x00007291 icopy  0x00000013 
+ 00028213  0x00007293 fetch  0x00000002 , 0x00000033 
+ 00028214  0x00007294 copy  0x0000003f , 0x00000011 
+ 00028215  0x00007295 call  0x00006e45 
+ 00028216  0x00007296 rtn  0x00000028 
+ 00028217  0x00007297 fetcht  0x00000002 , 0x00000033 
+ 00028218  0x00007298 increase  0x00000022 , 0x00000002 
+ 00028219  0x00007299 storet  0x00000002 , 0x00000033 
+ 00028220  0x0000729a increase  0xffffffff , 0x00000002 
+ 00028221  0x0000729b ifetch  0x00000001 , 0x00000002 
+ 00028222  0x0000729c store  0x00000001 , 0x00000031 
+ 00028223  0x0000729d increase  0xffffffff , 0x00000013 
+ 00028224  0x0000729e nbranch  0x00006e35 , 0x00000005 
+ 00028225  0x0000729f fetch  0x00000001 , 0x00004403 
+ 00028226  0x000072a0 pincrease  0xffffffff 
+ 00028227  0x000072a1 store  0x00000001 , 0x00000031 
+ 00028228  0x000072a2 rtn 
+ 00028229  0x000072a4 fetch  0x00000001 , 0x00000032 
+ 00028230  0x000072a5 bne  0x00000033 , 0x00006e4c 
+ 00028231  0x000072a7 arg  0x00000032 , 0x00000012 
+ 00028232  0x000072a8 arg  0x00000007 , 0x00000039 
+ 00028233  0x000072a9 call  0x00007d66 
+ 00028234  0x000072aa branch  0x00007dbc , 0x00000005 
+ 00028235  0x000072ab rtn 
+ 00028236  0x000072ae beq  0x00000036 , 0x00006e4f 
+ 00028237  0x000072af beq  0x00000037 , 0x00006e6a 
+ 00028238  0x000072b0 branch  0x00006e47 
+ 00028239  0x000072b3 ifetcht  0x00000001 , 0x00000011 
+ 00028240  0x000072b4 isub  0x00000002 , 0x0000003e 
+ 00028241  0x000072b5 nrtn  0x00000005 
+ 00028242  0x000072b6 arg  0x0000067f , 0x00000005 
+ 00028243  0x000072b7 arg  0x00000010 , 0x00000039 
+ 00028244  0x000072b8 call  0x00007ca3 
+ 00028245  0x000072b9 fetch  0x00000003 , 0x0000017b 
+ 00028246  0x000072ba store  0x00000003 , 0x0000067f 
+ 00028247  0x000072bb call  0x00006e61 
+ 00028248  0x000072bc fetch  0x00000002 , 0x0000069c 
+ 00028249  0x000072bd byteswap  0x0000003f , 0x0000003f 
+ 00028250  0x000072be lshift8  0x0000003f , 0x00000002 
+ 00028251  0x000072bf ifetch  0x00000001 , 0x00000006 
+ 00028252  0x000072c0 iadd  0x00000002 , 0x0000003f 
+ 00028253  0x000072c1 fetcht  0x00000003 , 0x00000178 
+ 00028254  0x000072c2 isub  0x00000002 , 0x0000003e 
+ 00028255  0x000072c3 branch  0x00007dbc , 0x00000005 
+ 00028256  0x000072c4 rtn 
+ 00028257  0x000072c8 arg  0x0000067f , 0x00000006 
+ 00028258  0x000072c9 call  0x0000734f 
+ 00028259  0x000072cb ifetch  0x00000001 , 0x00000011 
+ 00028260  0x000072cc call  0x00007350 
+ 00028261  0x000072cd force  0x00000038 , 0x00000036 
+ 00028262  0x000072ce force  0x00000000 , 0x00000036 
+ 00028263  0x000072cf call  0x000072bd 
+ 00028264  0x000072d0 arg  0x0000068f , 0x00000005 
+ 00028265  0x000072d1 branch  0x00007363 
+ 00028266  0x000072d4 ifetcht  0x00000001 , 0x00000011 
+ 00028267  0x000072d5 isub  0x00000002 , 0x0000003e 
+ 00028268  0x000072d6 nrtn  0x00000005 
+ 00028269  0x000072d7 copy  0x00000006 , 0x00000011 
+ 00028270  0x000072d8 add  0x00000006 , 0x00000008 , 0x00000013 
+ 00028271  0x000072d9 arg  0x00004307 , 0x00000012 
+ 00028272  0x000072da arg  0x00000008 , 0x00000039 
+ 00028273  0x000072db call  0x00007d66 
+ 00028274  0x000072dc branch  0x00007dbc , 0x00000005 
+ 00028275  0x000072dd copy  0x00000013 , 0x00000011 
+ 00028276  0x000072de arg  0x0000430f , 0x00000012 
+ 00028277  0x000072df arg  0x00000008 , 0x00000039 
+ 00028278  0x000072e0 call  0x00007d66 
+ 00028279  0x000072e1 branch  0x00007dbc , 0x00000005 
+ 00028280  0x000072e2 rtn 
+ 00028281  0x000072e5 fetch  0x00000002 , 0x00004401 
+ 00028282  0x000072e6 ifetcht  0x00000001 , 0x0000003f 
+ 00028283  0x000072e7 pincrease  0x00000022 
+ 00028284  0x000072e8 ifetch  0x00000001 , 0x0000003f 
+ 00028285  0x000072e9 isub  0x00000002 , 0x0000003e 
+ 00028286  0x000072ea rtn 
+ 00028287  0x000072ed fetch  0x00000001 , 0x00004403 
+ 00028288  0x000072ee icopy  0x00000039 
+ 00028289  0x000072ef fetcht  0x00000002 , 0x00004401 
+ 00028290  0x000072f0 setarg  0x00000000 
+ 00028291  0x000072f2 istore  0x00000001 , 0x00000002 
+ 00028292  0x000072f3 increase  0x00000022 , 0x00000002 
+ 00028293  0x000072f4 pincrease  0x00000001 
+ 00028294  0x000072f5 loop  0x00006e83 
+ 00028295  0x000072f6 rtn 
+ 00028296  0x000072fb call  0x00007dc0 
+ 00028297  0x000072fc call  0x00006e0b 
+ 00028298  0x000072fd nbranch  0x00006e93 , 0x00000028 
+ 00028299  0x000072fe fetch  0x00000002 , 0x00000033 
+ 00028300  0x000072ff add  0x0000003f , 0x00000001 , 0x00000006 
+ 00028301  0x00007300 arg  0x0000430f , 0x00000005 
+ 00028302  0x00007301 call  0x00007c91 
+ 00028303  0x00007302 arg  0x0000428c , 0x00000005 
+ 00028304  0x00007303 call  0x00007c91 
+ 00028305  0x00007304 jam  0x00000001 , 0x0000429c 
+ 00028306  0x00007305 rtn 
+ 00028307  0x00007308 jam  0x00000000 , 0x0000429c 
+ 00028308  0x00007309 rtn 
+ 00028309  0x0000730d jam  0x00000034 , 0x00000032 
+ 00028310  0x0000730e branch  0x00006e97 
+ 00028311  0x00007311 fetch  0x00000001 , 0x000043cf 
+ 00028312  0x00007312 beq  0x0000000a , 0x00006dd8 
+ 00028313  0x00007313 beq  0x00000008 , 0x00005569 
+ 00028314  0x00007314 beq  0x0000000f , 0x000048f2 
+ 00028315  0x00007315 rtn 
+ 00028316  0x0000731c and  0x00000002 , 0x0000001f , 0x0000003f 
+ 00028317  0x0000731d rshift  0x0000003f , 0x0000003f 
+ 00028318  0x0000731e arg  0x00000016 , 0x00000005 
+ 00028319  0x0000731f iadd  0x00000005 , 0x00000005 
+ 00028320  0x00007320 arg  0x000000f0 , 0x00000030 
+ 00028321  0x00007321 isolate0  0x00000000 , 0x00000002 
+ 00028322  0x00007322 rtn  0x00000001 
+ 00028323  0x00007323 arg  0x0000000f , 0x00000030 
+ 00028324  0x00007324 rtn 
+ 00028325  0x00007328 bpatch  0x000000fa , 0x0000401f 
+ 00028326  0x00007329 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028327  0x0000732a rtn  0x00000005 
+ 00028328  0x0000732b set1  0x00000007 , 0x00000002 
+ 00028329  0x0000732c call  0x00006ee0 
+ 00028330  0x0000732d nbranch  0x00006ebc , 0x00000001 
+ 00028331  0x0000732e nsetflag  0x00000001 , 0x00000007 , 0x00000002 
+ 00028332  0x00007332 bpatch  0x000000fb , 0x0000401f 
+ 00028333  0x00007333 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028334  0x00007334 rtn  0x00000005 
+ 00028335  0x00007335 arg  0x00000004 , 0x00000008 
+ 00028336  0x00007336 isolate1  0x00000007 , 0x00000002 
+ 00028337  0x00007337 branch  0x00006eb3 , 0x00000001 
+ 00028338  0x00007338 arg  0x00000002 , 0x00000008 
+ 00028339  0x0000733a call  0x00006e9c 
+ 00028340  0x0000733b isolate0  0x00000000 , 0x00000002 
+ 00028341  0x0000733c branch  0x00006eb7 , 0x00000001 
+ 00028342  0x0000733d lshift4  0x00000008 , 0x00000008 
+ 00028343  0x0000733f ifetch  0x00000001 , 0x00000005 
+ 00028344  0x00007340 iand  0x00000030 , 0x0000003f 
+ 00028345  0x00007341 ior  0x00000008 , 0x0000003f 
+ 00028346  0x00007342 istore  0x00000001 , 0x00000005 
+ 00028347  0x00007343 rtn 
+ 00028348  0x00007346 jam  0x00000001 , 0x0000488c 
+ 00028349  0x00007347 call  0x00006f0b 
+ 00028350  0x00007348 arg  0x00000006 , 0x00000008 
+ 00028351  0x00007349 branch  0x00006eb3 
+ 00028352  0x0000734d bpatch  0x000000fc , 0x0000401f 
+ 00028353  0x0000734e sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028354  0x0000734f rtn  0x00000005 
+ 00028355  0x00007350 arg  0x00000001 , 0x00000008 
+ 00028356  0x00007351 call  0x00006e9c 
+ 00028357  0x00007352 isolate0  0x00000000 , 0x00000002 
+ 00028358  0x00007353 branch  0x00006ec8 , 0x00000001 
+ 00028359  0x00007354 lshift4  0x00000008 , 0x00000008 
+ 00028360  0x00007356 ifetch  0x00000001 , 0x00000005 
+ 00028361  0x00007357 iand  0x00000030 , 0x0000003f 
+ 00028362  0x00007358 ior  0x00000008 , 0x0000003f 
+ 00028363  0x00007359 istore  0x00000001 , 0x00000005 
+ 00028364  0x0000735a rtn 
+ 00028365  0x00007360 bpatch  0x000000fd , 0x0000401f 
+ 00028366  0x00007361 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028367  0x00007362 rtn  0x00000005 
+ 00028368  0x00007363 call  0x00006e9c 
+ 00028369  0x00007364 ifetch  0x00000001 , 0x00000005 
+ 00028370  0x00007365 iand  0x00000030 , 0x0000003f 
+ 00028371  0x00007366 istore  0x00000001 , 0x00000005 
+ 00028372  0x00007367 rtn 
+ 00028373  0x0000736a call  0x00006ecd 
+ 00028374  0x0000736b branch  0x00006eda 
+ 00028375  0x0000736f sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028376  0x00007370 rtn  0x00000005 
+ 00028377  0x00007371 ncall  0x00006eac , 0x0000002b 
+ 00028378  0x00007373 call  0x00006f10 
+ 00028379  0x00007374 setarg  0x00000000 
+ 00028380  0x00007375 isolate1  0x00000007 , 0x00000002 
+ 00028381  0x00007376 nsetflag  0x00000001 , 0x00000006 , 0x0000003f 
+ 00028382  0x00007377 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00028383  0x00007378 branch  0x00006f09 
+ 00028384  0x0000737c bpatch  0x000000fe , 0x0000401f 
+ 00028385  0x0000737d arg  0x0000811c , 0x00000005 
+ 00028386  0x0000737e and  0x00000002 , 0x00000007 , 0x00000007 
+ 00028387  0x0000737f rshift3  0x00000002 , 0x0000003f 
+ 00028388  0x00007380 and_into  0x00000003 , 0x0000003f 
+ 00028389  0x00007381 iadd  0x00000005 , 0x00000005 
+ 00028390  0x00007382 ifetch  0x00000001 , 0x00000005 
+ 00028391  0x00007383 isolate1  0x00000007 , 0x00000002 
+ 00028392  0x00007384 branch  0x00006eeb , 0x00000001 
+ 00028393  0x00007385 qisolate0  0x0000003f 
+ 00028394  0x00007386 rtn 
+ 00028395  0x00007388 qisolate1  0x0000003f 
+ 00028396  0x00007389 rtn 
+ 00028397  0x0000738d sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028398  0x0000738e rtn  0x00000005 
+ 00028399  0x0000738f isolate1  0x00000007 , 0x0000003e 
+ 00028400  0x00007390 branch  0x00006ef4 
+ 00028401  0x00007394 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028402  0x00007395 rtn  0x00000005 
+ 00028403  0x00007396 isolate0  0x00000007 , 0x0000003e 
+ 00028404  0x0000739a setarg  0x00000000 
+ 00028405  0x0000739b nsetflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00028406  0x0000739c ixor  0x00000002 , 0x00000002 
+ 00028407  0x000073a0 call  0x00006f10 
+ 00028408  0x000073a1 setarg  0x0000003f 
+ 00028409  0x000073a2 isolate1  0x00000007 , 0x00000002 
+ 00028410  0x000073a3 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00028411  0x000073a4 branch  0x00006f09 
+ 00028412  0x000073a8 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028413  0x000073a9 branch  0x00007dc6 , 0x00000005 
+ 00028414  0x000073aa call  0x00006f10 
+ 00028415  0x000073ab ifetch  0x00000001 , 0x00000005 
+ 00028416  0x000073ac bbit1  0x00000000 , 0x00006f03 
+ 00028417  0x000073ad isolate0  0x00000007 , 0x00000002 
+ 00028418  0x000073ae rtn 
+ 00028419  0x000073b0 isolate1  0x00000007 , 0x00000002 
+ 00028420  0x000073b1 rtn 
+ 00028421  0x000073b4 sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028422  0x000073b5 rtn  0x00000005 
+ 00028423  0x000073b6 call  0x00006f10 
+ 00028424  0x000073b7 setarg  0x000000c0 
+ 00028425  0x000073b9 istore  0x00000001 , 0x00000005 
+ 00028426  0x000073ba rtn 
+ 00028427  0x000073bd sub  0x00000002 , 0x000000ff , 0x0000003e 
+ 00028428  0x000073be rtn  0x00000005 
+ 00028429  0x000073bf call  0x00006f10 
+ 00028430  0x000073c0 setarg  0x00000000 
+ 00028431  0x000073c1 branch  0x00006f09 
+ 00028432  0x000073c4 and  0x00000002 , 0x0000003f , 0x0000003f 
+ 00028433  0x000073c5 sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00028434  0x000073c6 nbranch  0x00006f16 , 0x00000002 
+ 00028435  0x000073c7 arg  0x00008070 , 0x00000005 
+ 00028436  0x000073c9 iadd  0x00000005 , 0x00000005 
+ 00028437  0x000073ca rtn 
+ 00028438  0x000073cc arg  0x000080d4 , 0x00000005 
+ 00028439  0x000073cd increase  0xfffffff0 , 0x0000003f 
+ 00028440  0x000073ce branch  0x00006f14 
+ 00028441  0x000073d2 and  0x0000003f , 0x000000ff , 0x00000002 
+ 00028442  0x000073d3 rshift8  0x0000003f , 0x0000003f 
+ 00028443  0x000073d4 branch  0x00006f1d 
+ 00028444  0x000073d8 rtnbit0  0x00000007 
+ 00028445  0x000073da rtneq  0x000000ff 
+ 00028446  0x000073db and_into  0x0000003f , 0x0000003f 
+ 00028447  0x000073dc sub  0x0000003f , 0x0000000f , 0x0000003e 
+ 00028448  0x000073dd nbranch  0x00006f25 , 0x00000002 
+ 00028449  0x000073de arg  0x00008070 , 0x00000005 
+ 00028450  0x000073e0 iadd  0x00000005 , 0x00000005 
+ 00028451  0x000073e1 istoret  0x00000001 , 0x00000005 
+ 00028452  0x000073e2 rtn 
+ 00028453  0x000073e4 arg  0x000080d4 , 0x00000005 
+ 00028454  0x000073e5 increase  0xfffffff0 , 0x0000003f 
+ 00028455  0x000073e6 branch  0x00006f22 
+ 00028456  0x000073eb and_into  0x0000003f , 0x00000002 
+ 00028457  0x000073ec sub  0x00000002 , 0x0000000f , 0x0000003e 
+ 00028458  0x000073ed nbranch  0x00006f2f , 0x00000002 
+ 00028459  0x000073ee setarg  0x00008070 
+ 00028460  0x000073f0 iadd  0x00000002 , 0x00000006 
+ 00028461  0x000073f1 ifetch  0x00000001 , 0x00000006 
+ 00028462  0x000073f2 rtn 
+ 00028463  0x000073f4 setarg  0x000080d4 
+ 00028464  0x000073f5 increase  0xfffffff0 , 0x00000002 
+ 00028465  0x000073f6 branch  0x00006f2c 
+ 00028466  0x000073fb arg  0x00000010 , 0x00000039 
+ 00028467  0x000073fc arg  0x00008070 , 0x00000006 
+ 00028468  0x000073fe copy  0x00000006 , 0x00000005 
+ 00028469  0x000073ff ifetch  0x00000001 , 0x00000006 
+ 00028470  0x00007400 beq  0x0000001f , 0x00006f45 
+ 00028471  0x00007401 beq  0x00000020 , 0x00006f45 
+ 00028472  0x00007402 beq  0x00000021 , 0x00006f45 
+ 00028473  0x00007403 beq  0x00000022 , 0x00006f45 
+ 00028474  0x00007404 beq  0x00000023 , 0x00006f45 
+ 00028475  0x00007405 beq  0x0000002c , 0x00006f45 
+ 00028476  0x00007406 beq  0x0000002d , 0x00006f45 
+ 00028477  0x00007407 beq  0x00000000 , 0x00006f45 
+ 00028478  0x00007409 loop  0x00006f34 
+ 00028479  0x0000740a arg  0x000080dc , 0x0000003f 
+ 00028480  0x0000740b isub  0x00000006 , 0x0000003e 
+ 00028481  0x0000740c rtn  0x00000005 
+ 00028482  0x0000740e arg  0x00000008 , 0x00000039 
+ 00028483  0x0000740f arg  0x000080d4 , 0x00000006 
+ 00028484  0x00007410 branch  0x00006f34 
+ 00028485  0x00007414 setarg  0x00000040 
+ 00028486  0x00007415 istore  0x00000001 , 0x00000005 
+ 00028487  0x00007416 branch  0x00006f3e 
+ 00028488  0x00007418 setarg  0x00000080 
+ 00028489  0x00007419 istore  0x00000001 , 0x00000005 
+ 00028490  0x0000741a branch  0x00006f3e 
+ 00028491  0x0000741f fetch  0x00000001 , 0x0000488c 
+ 00028492  0x00007420 branch  0x00006f4e , 0x00000034 
+ 00028493  0x00007421 branch  0x00006f51 
+ 00028494  0x00007424 setarg  0x00000010 
+ 00028495  0x00007426 store  0x00000001 , 0x00008141 
+ 00028496  0x00007427 branch  0x000023c4 
+ 00028497  0x0000742a setarg  0x00000080 
+ 00028498  0x0000742b branch  0x00006f4f 
+ 00028499  0x00007430 bpatch  0x000000ff , 0x0000401f 
+ 00028500  0x00007431 rtn  0x0000002b 
+ 00028501  0x00007432 jam  0x00000077 , 0x00008a07 
+ 00028502  0x00007433 jam  0x000000c9 , 0x00008a08 
+ 00028503  0x00007434 jam  0x00000001 , 0x00008a0b 
+ 00028504  0x00007435 fetch  0x00000001 , 0x0000441f 
+ 00028505  0x00007436 store  0x00000001 , 0x000080cd 
+ 00028506  0x00007437 jam  0x00000003 , 0x000080cc 
+ 00028507  0x00007438 call  0x0000700e 
+ 00028508  0x00007439 fetcht  0x00000002 , 0x00008164 
+ 00028509  0x0000743b jam  0x00000000 , 0x000080cc 
+ 00028510  0x0000743c jam  0x000000c1 , 0x00008a08 
+ 00028511  0x0000743e arg  0x00000008 , 0x00000039 
+ 00028512  0x0000743f arg  0x00004428 , 0x00000011 
+ 00028513  0x00007440 jam  0x00000005 , 0x00008a0a 
+ 00028514  0x00007442 fetch  0x00000001 , 0x00008a0c 
+ 00028515  0x00007443 istore  0x00000001 , 0x00000011 
+ 00028516  0x00007444 increase  0x00000001 , 0x00000011 
+ 00028517  0x00007445 fetch  0x00000001 , 0x00008a0a 
+ 00028518  0x00007446 increase  0x00000020 , 0x0000003f 
+ 00028519  0x00007447 store  0x00000001 , 0x00008a0a 
+ 00028520  0x00007448 loop  0x00006f62 
+ 00028521  0x00007449 jam  0x00000000 , 0x00008a07 
+ 00028522  0x0000744a rtn 
+ 00028523  0x0000744d fetch  0x00000001 , 0x000080cc 
+ 00028524  0x0000744e set1  0x00000001 , 0x0000003f 
+ 00028525  0x0000744f store  0x00000001 , 0x000080cc 
+ 00028526  0x00007450 arg  0x00000008 , 0x00000039 
+ 00028527  0x00007451 arg  0x00004428 , 0x00000011 
+ 00028528  0x00007452 jam  0x00000015 , 0x00008a0a 
+ 00028529  0x00007454 ifetch  0x00000001 , 0x00000011 
+ 00028530  0x00007455 store  0x00000001 , 0x00008a09 
+ 00028531  0x00007456 increase  0x00000001 , 0x00000011 
+ 00028532  0x00007457 fetch  0x00000001 , 0x00008a0a 
+ 00028533  0x00007458 increase  0x00000020 , 0x0000003f 
+ 00028534  0x00007459 store  0x00000001 , 0x00008a0a 
+ 00028535  0x0000745a loop  0x00006f71 
+ 00028536  0x0000745b fetch  0x00000001 , 0x000080cc 
+ 00028537  0x0000745c set0  0x00000001 , 0x0000003f 
+ 00028538  0x0000745d store  0x00000001 , 0x000080cc 
+ 00028539  0x0000745e rtn 
+ 00028540  0x00007463 bpatchx  0x00000000 , 0x00004020 
+ 00028541  0x00007464 fetch  0x00000008 , 0x000001db 
+ 00028542  0x00007465 rtn  0x00000034 
+ 00028543  0x00007466 store  0x00000008 , 0x00004406 
+ 00028544  0x00007467 call  0x00006b28 
+ 00028545  0x00007468 call  0x00006a67 
+ 00028546  0x00007469 arg  0x00000fc0 , 0x0000003f 
+ 00028547  0x0000746a iadd  0x00000012 , 0x00000012 
+ 00028548  0x0000746b arg  0x0000000a , 0x00000039 
+ 00028549  0x0000746c arg  0x000001db , 0x00000011 
+ 00028550  0x0000746d call  0x00006b62 
+ 00028551  0x0000746e call  0x00006b25 
+ 00028552  0x0000746f fetch  0x00000008 , 0x000001db 
+ 00028553  0x00007470 rtn  0x00000034 
+ 00028554  0x00007471 store  0x00000008 , 0x0000440e 
+ 00028555  0x00007472 ifetch  0x00000002 , 0x00000006 
+ 00028556  0x00007473 istore  0x00000002 , 0x00000005 
+ 00028557  0x00007474 rtn 
+ 00028558  0x00007478 bpatchx  0x00000001 , 0x00004020 
+ 00028559  0x00007479 fetch  0x00000001 , 0x0000441a 
+ 00028560  0x0000747a beq  0x00000001 , 0x00006f93 
+ 00028561  0x0000747b beq  0x00000002 , 0x00006fd1 
+ 00028562  0x0000747c branch  0x00006f93 
+ 00028563  0x0000747f fetch  0x00000001 , 0x0000441d 
+ 00028564  0x00007480 beq  0x00000001 , 0x00006f97 
+ 00028565  0x00007481 beq  0x00000002 , 0x00006f9e 
+ 00028566  0x00007482 rtn 
+ 00028567  0x00007485 setarg  0x000003e8 
+ 00028568  0x00007486 store  0x00000002 , 0x0000441b 
+ 00028569  0x00007487 fetcht  0x00000002 , 0x00004412 
+ 00028570  0x00007488 fetch  0x00000002 , 0x00004414 
+ 00028571  0x00007489 arg  0x00000e10 , 0x00000013 
+ 00028572  0x0000748a call  0x0000702a 
+ 00028573  0x0000748b branch  0x00006fa4 
+ 00028574  0x0000748e setarg  0x000003e8 
+ 00028575  0x0000748f store  0x00000002 , 0x0000441b 
+ 00028576  0x00007490 fetcht  0x00000002 , 0x0000440e 
+ 00028577  0x00007491 fetch  0x00000002 , 0x00004410 
+ 00028578  0x00007492 arg  0x000003e8 , 0x00000013 
+ 00028579  0x00007493 call  0x0000702a 
+ 00028580  0x00007495 fetcht  0x00000002 , 0x00004416 
+ 00028581  0x00007496 imul32  0x00000002 , 0x0000003f 
+ 00028582  0x00007497 fetcht  0x00000002 , 0x00004418 
+ 00028583  0x00007498 idiv  0x00000002 
+ 00028584  0x00007499 branch  0x00007d61 
+ 00028585  0x0000749c call  0x00006f6b 
+ 00028586  0x0000749d fetch  0x00000001 , 0x00008a09 
+ 00028587  0x0000749e set0  0x00000007 , 0x0000003f 
+ 00028588  0x0000749f store  0x00000001 , 0x00008a09 
+ 00028589  0x000074a0 jam  0x00000077 , 0x00008a07 
+ 00028590  0x000074a1 jam  0x000000c1 , 0x00008a08 
+ 00028591  0x000074a2 jam  0x00000061 , 0x00008a0d 
+ 00028592  0x000074a3 jam  0x00000000 , 0x00008a0b 
+ 00028593  0x000074a4 rtn 
+ 00028594  0x000074a8 bpatchx  0x00000002 , 0x00004020 
+ 00028595  0x000074a9 fetch  0x00000001 , 0x0000441a 
+ 00028596  0x000074aa beq  0x00000001 , 0x00006fb7 
+ 00028597  0x000074ab beq  0x00000002 , 0x00006fee 
+ 00028598  0x000074ac branch  0x00006fb7 
+ 00028599  0x000074af call  0x00006fa9 
+ 00028600  0x000074b0 call  0x00007007 
+ 00028601  0x000074b1 fetch  0x00000001 , 0x0000441f 
+ 00028602  0x000074b2 store  0x00000001 , 0x000080cd 
+ 00028603  0x000074b3 call  0x00007011 
+ 00028604  0x000074b4 jam  0x00000060 , 0x00008a0d 
+ 00028605  0x000074b5 jam  0x00000000 , 0x000080cd 
+ 00028606  0x000074b9 call  0x00006fa9 
+ 00028607  0x000074ba fetch  0x00000001 , 0x0000441f 
+ 00028608  0x000074bb store  0x00000001 , 0x000080cd 
+ 00028609  0x000074bc jam  0x00000050 , 0x00008a0b 
+ 00028610  0x000074bd jam  0x000000c0 , 0x00008a0e 
+ 00028611  0x000074bf arg  0x0000000b , 0x00000038 
+ 00028612  0x000074c0 fetchr  0x0000002f , 0x00000002 , 0x00004420 
+ 00028613  0x000074c2 jam  0x00000003 , 0x000080cc 
+ 00028614  0x000074c3 call  0x0000700e 
+ 00028615  0x000074c4 fetcht  0x00000002 , 0x00008164 
+ 00028616  0x000074c5 storet  0x00000002 , 0x00004418 
+ 00028617  0x000074c7 jam  0x00000006 , 0x000080cc 
+ 00028618  0x000074c8 call  0x00007017 
+ 00028619  0x000074ca arg  0x0000000b , 0x00000038 
+ 00028620  0x000074cb storer  0x0000002f , 0x00000002 , 0x00004420 
+ 00028621  0x000074cd jam  0x00000060 , 0x00008a0d 
+ 00028622  0x000074ce jam  0x00000000 , 0x000080cd 
+ 00028623  0x000074cf jam  0x00000000 , 0x000080cc 
+ 00028624  0x000074d0 rtn 
+ 00028625  0x000074d4 fetch  0x00000001 , 0x0000441d 
+ 00028626  0x000074d5 beq  0x00000001 , 0x00006fd5 
+ 00028627  0x000074d6 beq  0x00000002 , 0x00006fdb 
+ 00028628  0x000074d7 rtn 
+ 00028629  0x000074da setarg  0x000007d0 
+ 00028630  0x000074db store  0x00000002 , 0x0000441b 
+ 00028631  0x000074dc fetcht  0x00000002 , 0x00004408 
+ 00028632  0x000074dd fetch  0x00000002 , 0x0000440c 
+ 00028633  0x000074de arg  0x00000a28 , 0x00000013 
+ 00028634  0x000074df branch  0x0000702a 
+ 00028635  0x000074e2 setarg  0x000003e8 
+ 00028636  0x000074e3 store  0x00000002 , 0x0000441b 
+ 00028637  0x000074e4 fetcht  0x00000002 , 0x00004406 
+ 00028638  0x000074e5 fetch  0x00000002 , 0x0000440a 
+ 00028639  0x000074e6 arg  0x000007d0 , 0x00000013 
+ 00028640  0x000074ea isub  0x00000002 , 0x00000011 
+ 00028641  0x000074eb fetch  0x00000002 , 0x00004420 
+ 00028642  0x000074ec isub  0x00000002 , 0x0000003f 
+ 00028643  0x000074ed nbranch  0x00006fe8 , 0x00000002 
+ 00028644  0x000074ee call  0x00007039 
+ 00028645  0x000074ef isub  0x00000012 , 0x0000003f 
+ 00028646  0x000074f0 nbranch  0x00007dcc , 0x00000002 
+ 00028647  0x000074f1 branch  0x00007030 
+ 00028648  0x000074f4 copy  0x00000002 , 0x0000003f 
+ 00028649  0x000074f5 fetcht  0x00000002 , 0x00004420 
+ 00028650  0x000074f6 isub  0x00000002 , 0x0000003f 
+ 00028651  0x000074f7 call  0x00007039 
+ 00028652  0x000074f8 iadd  0x00000012 , 0x0000003f 
+ 00028653  0x000074f9 branch  0x00007030 
+ 00028654  0x000074fd fetch  0x00000001 , 0x0000441d 
+ 00028655  0x000074fe beq  0x00000001 , 0x00006ff8 
+ 00028656  0x00007500 call  0x00006f6b 
+ 00028657  0x00007501 fetch  0x00000001 , 0x00008a09 
+ 00028658  0x00007502 set0  0x00000007 , 0x0000003f 
+ 00028659  0x00007503 store  0x00000001 , 0x00008a09 
+ 00028660  0x00007504 jam  0x00000077 , 0x00008a07 
+ 00028661  0x00007505 jam  0x00000041 , 0x00008a08 
+ 00028662  0x00007506 jam  0x00000014 , 0x00008ac6 
+ 00028663  0x00007507 branch  0x00006fff 
+ 00028664  0x0000750a call  0x00006f6b 
+ 00028665  0x0000750b fetch  0x00000001 , 0x00008a09 
+ 00028666  0x0000750c set0  0x00000007 , 0x0000003f 
+ 00028667  0x0000750d store  0x00000001 , 0x00008a09 
+ 00028668  0x0000750e jam  0x00000077 , 0x00008a07 
+ 00028669  0x0000750f jam  0x00000041 , 0x00008a08 
+ 00028670  0x00007510 jam  0x00000010 , 0x00008ac6 
+ 00028671  0x00007512 jam  0x00000000 , 0x00008a0b 
+ 00028672  0x00007513 call  0x00007007 
+ 00028673  0x00007514 fetch  0x00000001 , 0x0000441f 
+ 00028674  0x00007515 store  0x00000001 , 0x000080cd 
+ 00028675  0x00007516 call  0x00007011 
+ 00028676  0x00007518 jam  0x00000000 , 0x000080cd 
+ 00028677  0x00007519 jam  0x00000000 , 0x00008ac6 
+ 00028678  0x0000751a rtn 
+ 00028679  0x0000751d fetch  0x00000001 , 0x0000441e 
+ 00028680  0x0000751e lshift4  0x0000003f , 0x0000003f 
+ 00028681  0x0000751f fetcht  0x00000001 , 0x00008a0b 
+ 00028682  0x00007520 and_into  0x0000000f , 0x00000002 
+ 00028683  0x00007521 ior  0x00000002 , 0x00000002 
+ 00028684  0x00007522 storet  0x00000001 , 0x00008a0b 
+ 00028685  0x00007523 rtn 
+ 00028686  0x00007526 fetch  0x00000001 , 0x00008129 
+ 00028687  0x00007527 bbit0  0x00000005 , 0x0000700e 
+ 00028688  0x00007528 rtn 
+ 00028689  0x0000752c bpatchx  0x00000003 , 0x00004020 
+ 00028690  0x0000752d jam  0x00000003 , 0x000080cc 
+ 00028691  0x0000752e call  0x0000700e 
+ 00028692  0x0000752f fetcht  0x00000002 , 0x00008164 
+ 00028693  0x00007530 storet  0x00000002 , 0x00004420 
+ 00028694  0x00007531 jam  0x00000006 , 0x000080cc 
+ 00028695  0x00007533 fetch  0x00000001 , 0x00008129 
+ 00028696  0x00007534 bbit1  0x00000005 , 0x00007017 
+ 00028697  0x00007535 jam  0x00000000 , 0x000080cc 
+ 00028698  0x00007536 rtn 
+ 00028699  0x00007539 fetch  0x00000001 , 0x00004427 
+ 00028700  0x0000753a rtn  0x00000034 
+ 00028701  0x0000753b fetch  0x00000001 , 0x00008a09 
+ 00028702  0x0000753c set1  0x00000007 , 0x0000003f 
+ 00028703  0x0000753d store  0x00000001 , 0x00008a09 
+ 00028704  0x0000753e fetch  0x00000001 , 0x0000441f 
+ 00028705  0x0000753f store  0x00000001 , 0x000080cd 
+ 00028706  0x00007540 fetch  0x00000002 , 0x00004423 
+ 00028707  0x00007541 store  0x00000002 , 0x000080ce 
+ 00028708  0x00007542 fetch  0x00000002 , 0x00004425 
+ 00028709  0x00007543 store  0x00000002 , 0x000080d0 
+ 00028710  0x00007544 jam  0x0000000b , 0x000080cc 
+ 00028711  0x00007545 nop  0x000003e8 
+ 00028712  0x00007546 jam  0x00000003 , 0x000080cc 
+ 00028713  0x00007547 rtn 
+ 00028714  0x0000754b isub  0x00000002 , 0x00000011 
+ 00028715  0x0000754c fetch  0x00000002 , 0x00004420 
+ 00028716  0x0000754d isub  0x00000002 , 0x0000003f 
+ 00028717  0x0000754e nbranch  0x00007032 , 0x00000002 
+ 00028718  0x0000754f call  0x00007039 
+ 00028719  0x00007550 iadd  0x00000012 , 0x0000003f 
+ 00028720  0x00007552 idiv  0x00000011 
+ 00028721  0x00007553 branch  0x00007d61 
+ 00028722  0x00007556 copy  0x00000002 , 0x0000003f 
+ 00028723  0x00007557 fetcht  0x00000002 , 0x00004420 
+ 00028724  0x00007558 isub  0x00000002 , 0x0000003f 
+ 00028725  0x00007559 call  0x00007039 
+ 00028726  0x0000755a isub  0x00000012 , 0x0000003f 
+ 00028727  0x0000755b nbranch  0x00007dcc , 0x00000002 
+ 00028728  0x0000755c branch  0x00007030 
+ 00028729  0x00007560 fetcht  0x00000002 , 0x0000441b 
+ 00028730  0x00007561 imul32  0x00000002 , 0x00000012 
+ 00028731  0x00007562 copy  0x00000013 , 0x0000003f 
+ 00028732  0x00007563 imul32  0x00000011 , 0x0000003f 
+ 00028733  0x00007564 rtn 
+ 00028734  0x0000756a ifetch  0x00000008 , 0x00000011 
+ 00028735  0x0000756b store  0x00000008 , 0x0000064e 
+ 00028736  0x0000756c fetch  0x00000002 , 0x0000064e 
+ 00028737  0x0000756d fetcht  0x00000002 , 0x00000650 
+ 00028738  0x0000756e isub  0x00000002 , 0x00000011 
+ 00028739  0x0000756f fetch  0x00000002 , 0x00000654 
+ 00028740  0x00007570 isub  0x00000002 , 0x00000012 
+ 00028741  0x00007571 fetcht  0x00000002 , 0x00000652 
+ 00028742  0x00007572 isub  0x00000002 , 0x0000003e 
+ 00028743  0x00007573 ncall  0x0000704e , 0x00000002 
+ 00028744  0x00007574 mul32  0x00000012 , 0x00000064 , 0x0000003f 
+ 00028745  0x00007575 idiv  0x00000011 
+ 00028746  0x00007576 call  0x00007d64 
+ 00028747  0x00007577 quotient  0x0000003f 
+ 00028748  0x00007578 call  0x00007054 , 0x00000034 
+ 00028749  0x00007579 rtn 
+ 00028750  0x0000757c fetch  0x00000001 , 0x00004422 
+ 00028751  0x0000757d set1  0x00000000 , 0x0000003f 
+ 00028752  0x0000757e branch  0x00007059 
+ 00028753  0x00007581 fetch  0x00000001 , 0x00004422 
+ 00028754  0x00007582 set0  0x00000000 , 0x0000003f 
+ 00028755  0x00007583 branch  0x00007059 
+ 00028756  0x00007586 fetcht  0x00000001 , 0x00004422 
+ 00028757  0x00007587 set1  0x00000001 , 0x00000002 
+ 00028758  0x00007588 branch  0x00007059 
+ 00028759  0x0000758b fetcht  0x00000001 , 0x00004422 
+ 00028760  0x0000758c set0  0x00000001 , 0x00000002 
+ 00028761  0x0000758e storet  0x00000001 , 0x00004422 
+ 00028762  0x0000758f rtn 
+ 00028763  0x00007595 fetch  0x00000002 , 0x00004443 
+ 00028764  0x00007596 ifetch  0x00000001 , 0x0000003f 
+ 00028765  0x00007598 rtn  0x00000034 
+ 00028766  0x00007599 copy  0x0000003f , 0x00000039 
+ 00028767  0x0000759b fetch  0x00000002 , 0x00004443 
+ 00028768  0x0000759c increase  0x00000003 , 0x0000003f 
+ 00028769  0x0000759d copy  0x0000003f , 0x00000011 
+ 00028770  0x0000759f ifetcht  0x00000001 , 0x00000011 
+ 00028771  0x000075a0 call  0x00006ed7 
+ 00028772  0x000075a1 increase  0x00000001 , 0x00000011 
+ 00028773  0x000075a2 loop  0x00007062 
+ 00028774  0x000075a4 rtn 
+ 00028775  0x000075a7 fetch  0x00000002 , 0x00004443 
+ 00028776  0x000075a8 increase  0x00000003 , 0x0000003f 
+ 00028777  0x000075a9 copy  0x0000003f , 0x00000011 
+ 00028778  0x000075ab force  0x00000000 , 0x00000012 
+ 00028779  0x000075ac setarg  0x00000000 
+ 00028780  0x000075ad store  0x00000002 , 0x000006cf 
+ 00028781  0x000075af ifetcht  0x00000001 , 0x00000011 
+ 00028782  0x000075b0 call  0x00006ee0 
+ 00028783  0x000075b1 bpatchx  0x00000004 , 0x00004020 
+ 00028784  0x000075b2 fetch  0x00000002 , 0x000006cf 
+ 00028785  0x000075b3 copy  0x00000012 , 0x00000007 
+ 00028786  0x000075b4 qsetflag  0x00000001 , 0x0000003f 
+ 00028787  0x000075b5 store  0x00000002 , 0x000006cf 
+ 00028788  0x000075b6 increase  0x00000001 , 0x00000011 
+ 00028789  0x000075b7 increase  0x00000001 , 0x00000012 
+ 00028790  0x000075b8 fetch  0x00000002 , 0x00004443 
+ 00028791  0x000075b9 ifetch  0x00000001 , 0x0000003f 
+ 00028792  0x000075bb ixor  0x00000012 , 0x0000003e 
+ 00028793  0x000075bc nbranch  0x0000706d , 0x00000005 
+ 00028794  0x000075bd fetch  0x00000002 , 0x000006cf 
+ 00028795  0x000075be fetcht  0x00000002 , 0x00004445 
+ 00028796  0x000075bf ixor  0x00000002 , 0x0000003e 
+ 00028797  0x000075c0 rtn  0x00000005 
+ 00028798  0x000075c1 branch  0x00007dbc 
+ 00028799  0x000075c4 fetch  0x00000002 , 0x00004443 
+ 00028800  0x000075c5 ifetch  0x00000001 , 0x0000003f 
+ 00028801  0x000075c7 rtn  0x00000034 
+ 00028802  0x000075c8 copy  0x0000003f , 0x00000039 
+ 00028803  0x000075c9 fetch  0x00000002 , 0x00004443 
+ 00028804  0x000075ca increase  0x00000003 , 0x0000003f 
+ 00028805  0x000075cb copy  0x0000003f , 0x00000011 
+ 00028806  0x000075cd ifetcht  0x00000001 , 0x00000011 
+ 00028807  0x000075ce call  0x00006ea5 
+ 00028808  0x000075cf increase  0x00000001 , 0x00000011 
+ 00028809  0x000075d0 loop  0x00007086 
+ 00028810  0x000075d2 rtn 
+ 00028811  0x000075d5 arg  0x00000009 , 0x00000007 
+ 00028812  0x000075d6 call  0x00007cf1 
+ 00028813  0x000075d7 nrtn  0x00000034 
+ 00028814  0x000075d8 setarg  0x00000020 
+ 00028815  0x000075d9 arg  0x00000009 , 0x00000007 
+ 00028816  0x000075da call  0x00007ce3 
+ 00028817  0x000075db disable  0x00000028 
+ 00028818  0x000075dc call  0x0000707f 
+ 00028819  0x000075dd bpatchx  0x00000005 , 0x00004020 
+ 00028820  0x000075de fetch  0x00000002 , 0x00004443 
+ 00028821  0x000075df ifetch  0x00000001 , 0x0000003f 
+ 00028822  0x000075e1 rtn  0x00000034 
+ 00028823  0x000075e2 call  0x00007067 
+ 00028824  0x000075e3 nbranch  0x00007793 , 0x00000028 
+ 00028825  0x000075e4 call  0x00007791 
+ 00028826  0x000075e5 disable  0x00000028 
+ 00028827  0x000075e6 fetch  0x00000002 , 0x000006cf 
+ 00028828  0x000075e7 store  0x00000002 , 0x000006d6 
+ 00028829  0x000075e8 jam  0x00000000 , 0x000006d8 
+ 00028830  0x000075e9 force  0x00000000 , 0x00000007 
+ 00028831  0x000075eb fetch  0x00000002 , 0x00004445 
+ 00028832  0x000075ec rshift  0x0000003f , 0x00000002 
+ 00028833  0x000075ed storet  0x00000002 , 0x00004445 
+ 00028834  0x000075ee and  0x0000003f , 0x00000001 , 0x0000003f 
+ 00028835  0x000075ef fetcht  0x00000002 , 0x000006d6 
+ 00028836  0x000075f0 and  0x00000002 , 0x00000001 , 0x00000011 
+ 00028837  0x000075f1 rshift  0x00000002 , 0x00000002 
+ 00028838  0x000075f2 storet  0x00000002 , 0x000006d6 
+ 00028839  0x000075f3 ixor  0x00000011 , 0x0000003e 
+ 00028840  0x000075f4 ncall  0x000070b4 , 0x00000005 
+ 00028841  0x000075f5 fetch  0x00000002 , 0x00004443 
+ 00028842  0x000075f6 ifetch  0x00000001 , 0x0000003f 
+ 00028843  0x000075f8 fetcht  0x00000001 , 0x000006d8 
+ 00028844  0x000075f9 increase  0x00000001 , 0x00000002 
+ 00028845  0x000075fa storet  0x00000001 , 0x000006d8 
+ 00028846  0x000075fb copy  0x00000002 , 0x00000007 
+ 00028847  0x000075fc ixor  0x00000007 , 0x0000003e 
+ 00028848  0x000075fd nbranch  0x0000709f , 0x00000005 
+ 00028849  0x000075fe fetch  0x00000002 , 0x000006cf 
+ 00028850  0x000075ff store  0x00000002 , 0x00004445 
+ 00028851  0x00007600 rtn 
+ 00028852  0x00007602 bpatchx  0x00000006 , 0x00004020 
+ 00028853  0x00007603 fetch  0x00000002 , 0x00004443 
+ 00028854  0x00007604 increase  0x00000001 , 0x0000003f 
+ 00028855  0x00007605 ifetch  0x00000002 , 0x0000003f 
+ 00028856  0x00007606 branch  0x00007d7b 
+ 00028857  0x0000760d fetch  0x00000001 , 0x00008042 
+ 00028858  0x0000760e ior  0x00000011 , 0x0000003f 
+ 00028859  0x0000760f store  0x00000001 , 0x00008042 
+ 00028860  0x00007610 fetch  0x00000002 , 0x00008050 
+ 00028861  0x00007611 set0  0x0000000d , 0x0000003f 
+ 00028862  0x00007612 store  0x00000002 , 0x00008050 
+ 00028863  0x00007614 nop  0x00000064 
+ 00028864  0x00007615 rtn 
+ 00028865  0x00007618 fetch  0x00000001 , 0x00008042 
+ 00028866  0x00007619 bbit1  0x00000006 , 0x000070c6 
+ 00028867  0x0000761a bbit1  0x00000007 , 0x000070c8 
+ 00028868  0x0000761c setarg  0x00b71b00 
+ 00028869  0x0000761d rtn 
+ 00028870  0x0000761f setarg  0x016e3600 
+ 00028871  0x00007620 rtn 
+ 00028872  0x00007622 setarg  0x000080e8 
+ 00028873  0x00007623 rtn 
+ 00028874  0x00007627 fetcht  0x00000003 , 0x00000650 
+ 00028875  0x00007628 call  0x000070c1 
+ 00028876  0x00007629 idiv  0x00000002 
+ 00028877  0x0000762a call  0x00007d64 
+ 00028878  0x0000762b quotient  0x00000002 
+ 00028879  0x0000762c fetch  0x00000001 , 0x00000653 
+ 00028880  0x0000762d imul32  0x00000002 , 0x0000003f 
+ 00028881  0x0000762e div  0x0000003f , 0x00000064 
+ 00028882  0x0000762f call  0x00007d64 
+ 00028883  0x00007630 quotient  0x00000011 
+ 00028884  0x00007631 copy  0x00000002 , 0x0000003f 
+ 00028885  0x00007632 isub  0x00000011 , 0x00000012 
+ 00028886  0x00007634 fetch  0x00000001 , 0x0000064f 
+ 00028887  0x00007635 call  0x000070de 
+ 00028888  0x00007636 fetch  0x00000001 , 0x0000064e 
+ 00028889  0x00007637 fetcht  0x00000001 , 0x0000064f 
+ 00028890  0x00007638 and_into  0x0000000f , 0x00000002 
+ 00028891  0x00007639 lshift8  0x00000002 , 0x00000002 
+ 00028892  0x0000763a ior  0x00000002 , 0x0000003f 
+ 00028893  0x0000763b branch  0x00007100 
+ 00028894  0x0000763e iforce  0x00000007 
+ 00028895  0x0000763f call  0x000070ec 
+ 00028896  0x00007640 branch  0x000070e1 
+ 00028897  0x00007643 fetch  0x00000001 , 0x000080be 
+ 00028898  0x00007644 qset1  0x0000003f 
+ 00028899  0x00007645 store  0x00000001 , 0x000080be 
+ 00028900  0x00007646 fetcht  0x00000001 , 0x00008042 
+ 00028901  0x00007647 isolate1  0x00000007 , 0x00000002 
+ 00028902  0x00007648 call  0x000070ea , 0x00000001 
+ 00028903  0x00007649 qset0  0x0000003f 
+ 00028904  0x0000764a store  0x00000001 , 0x000080be 
+ 00028905  0x0000764b rtn 
+ 00028906  0x0000764f nop  0x000001e0 
+ 00028907  0x00007650 rtn 
+ 00028908  0x00007653 and_into  0x0000000f , 0x0000003f 
+ 00028909  0x00007654 arg  0x0000809c , 0x00000005 
+ 00028910  0x00007655 mul32  0x0000003f , 0x00000004 , 0x0000003f 
+ 00028911  0x00007656 iadd  0x00000005 , 0x00000005 
+ 00028912  0x00007657 copy  0x00000011 , 0x0000003f 
+ 00028913  0x00007658 istore  0x00000002 , 0x00000005 
+ 00028914  0x00007659 copy  0x00000012 , 0x0000003f 
+ 00028915  0x0000765a istore  0x00000002 , 0x00000005 
+ 00028916  0x0000765b rtn 
+ 00028917  0x00007664 isolate1  0x00000006 , 0x00000007 
+ 00028918  0x00007666 and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028919  0x00007667 fetch  0x00000001 , 0x0000809b 
+ 00028920  0x00007668 qsetflag  0x00000001 , 0x0000003f 
+ 00028921  0x00007669 store  0x00000001 , 0x0000809b 
+ 00028922  0x0000766a rtn 
+ 00028923  0x0000766c call  0x0000710b 
+ 00028924  0x0000766e lshift8  0x0000003f , 0x0000003f 
+ 00028925  0x0000766f add  0x00000007 , 0x00000010 , 0x00000002 
+ 00028926  0x00007670 ior  0x00000002 , 0x0000003f 
+ 00028927  0x00007671 branch  0x00006f19 
+ 00028928  0x00007674 enable  0x00000028 
+ 00028929  0x00007675 call  0x000070fb 
+ 00028930  0x00007676 branch  0x00007106 
+ 00028931  0x00007679 disable  0x00000028 
+ 00028932  0x0000767a call  0x0000710b 
+ 00028933  0x0000767b branch  0x00007106 
+ 00028934  0x0000767e and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028935  0x0000767f fetch  0x00000001 , 0x0000809a 
+ 00028936  0x00007680 qsetflag  0x00000028 , 0x0000003f 
+ 00028937  0x00007681 store  0x00000001 , 0x0000809a 
+ 00028938  0x00007682 rtn 
+ 00028939  0x00007684 rshift8  0x0000003f , 0x00000007 
+ 00028940  0x00007685 and  0x00000007 , 0x0000000f , 0x00000007 
+ 00028941  0x00007686 rtn 
+ 00028942  0x0000768b copy  0x0000003f , 0x00000002 
+ 00028943  0x0000768c bpatchx  0x00000007 , 0x00004020 
+ 00028944  0x0000768d call  0x0000711b 
+ 00028945  0x0000768e setarg  0x00000800 
+ 00028946  0x0000768f isub  0x00000002 , 0x0000003f 
+ 00028947  0x00007690 copy  0x0000003f , 0x00000002 
+ 00028948  0x00007691 rshift4  0x00000002 , 0x00000002 
+ 00028949  0x00007692 storet  0x00000001 , 0x00008004 
+ 00028950  0x00007693 nop  0x00000578 
+ 00028951  0x00007694 copy  0x0000003f , 0x00000002 
+ 00028952  0x00007695 and_into  0x0000000f , 0x00000002 
+ 00028953  0x00007696 storet  0x00000001 , 0x0000800b 
+ 00028954  0x00007697 rtn 
+ 00028955  0x0000769b enable  0x0000002c 
+ 00028956  0x0000769c branch  0x0000711f 
+ 00028957  0x000076a0 bpatchx  0x00000008 , 0x00004021 
+ 00028958  0x000076a1 disable  0x0000002c 
+ 00028959  0x000076a3 fetch  0x00000001 , 0x00008043 
+ 00028960  0x000076a4 setflag  0x0000002c , 0x00000003 , 0x0000003f 
+ 00028961  0x000076a5 store  0x00000001 , 0x00008043 
+ 00028962  0x000076a6 rtn 
+ 00028963  0x000076ac store  0x00000004 , 0x00008062 
+ 00028964  0x000076ad store  0x00000002 , 0x00008066 
+ 00028965  0x000076ae storet  0x00000001 , 0x00008061 
+ 00028966  0x000076af rtn 
+ 00028967  0x000076b4 jam  0x00000004 , 0x00008042 
+ 00028968  0x000076b6 jam  0x0000000c , 0x00004148 
+ 00028969  0x000076b7 setarg  0x00000ea5 
+ 00028970  0x000076b8 store  0x00000002 , 0x00008040 
+ 00028971  0x000076b9 rtn 
+ 00028972  0x000076bc jam  0x00000005 , 0x00008042 
+ 00028973  0x000076bd branch  0x00007128 
+ 00028974  0x000076c6 bpatchx  0x00000009 , 0x00004021 
+ 00028975  0x000076c7 jam  0x00000050 , 0x0000020e 
+ 00028976  0x000076c8 arg  0x0000020f , 0x00000005 
+ 00028977  0x000076c9 arg  0x000042ad , 0x00000006 
+ 00028978  0x000076ca call  0x00007c91 
+ 00028979  0x000076cb arg  0x000044a6 , 0x00000006 
+ 00028980  0x000076cc call  0x00007c8f 
+ 00028981  0x000076cd arg  0x000005dc , 0x00000006 
+ 00028982  0x000076ce call  0x00007c8f 
+ 00028983  0x000076cf call  0x000071e9 
+ 00028984  0x000076d0 arg  0x00000158 , 0x00000006 
+ 00028985  0x000076d1 call  0x000071e4 
+ 00028986  0x000076d2 call  0x000071af 
+ 00028987  0x000076d4 arg  0x000006af , 0x00000005 
+ 00028988  0x000076d5 call  0x000071e0 
+ 00028989  0x000076d6 setarg  0x000f4240 
+ 00028990  0x000076d7 copy  0x0000003f , 0x00000011 
+ 00028991  0x000076d8 fetch  0x00000004 , 0x000006af 
+ 00028992  0x000076d9 idiv  0x00000011 
+ 00028993  0x000076da call  0x00007d64 
+ 00028994  0x000076db remainder  0x0000003f 
+ 00028995  0x000076dc store  0x00000004 , 0x000005d8 
+ 00028996  0x000076de rtn 
+ 00028997  0x000076e1 jam  0x00000041 , 0x0000020e 
+ 00028998  0x000076e2 arg  0x0000020f , 0x00000005 
+ 00028999  0x000076e3 call  0x00007194 
+ 00029000  0x000076e4 call  0x0000718f 
+ 00029001  0x000076e5 fetch  0x00000003 , 0x000042c7 
+ 00029002  0x000076e6 istore  0x00000003 , 0x00000005 
+ 00029003  0x000076e9 call  0x00007155 
+ 00029004  0x000076eb arg  0x00000158 , 0x00000006 
+ 00029005  0x000076ec call  0x00007c91 
+ 00029006  0x000076ed arg  0x000042ad , 0x00000006 
+ 00029007  0x000076ee call  0x00007c91 
+ 00029008  0x000076ef call  0x000071e9 
+ 00029009  0x000076f0 arg  0x000006cf , 0x00000006 
+ 00029010  0x000076f1 arg  0x0000067f , 0x00000005 
+ 00029011  0x000076f2 call  0x00007c91 
+ 00029012  0x000076f4 branch  0x000071af 
+ 00029013  0x000076f9 fetch  0x00000004 , 0x00004301 
+ 00029014  0x000076fa istore  0x00000004 , 0x00000005 
+ 00029015  0x000076fb call  0x00007c9d 
+ 00029016  0x000076fc branch  0x00007c9c 
+ 00029017  0x000076ff bpatchx  0x0000000a , 0x00004021 
+ 00029018  0x00007700 jam  0x00000041 , 0x0000020e 
+ 00029019  0x00007701 arg  0x0000020f , 0x00000005 
+ 00029020  0x00007702 call  0x0000718f 
+ 00029021  0x00007703 call  0x00007194 
+ 00029022  0x00007704 fetch  0x00000003 , 0x000042c0 
+ 00029023  0x00007705 istore  0x00000003 , 0x00000005 
+ 00029024  0x00007708 call  0x00007155 
+ 00029025  0x00007709 arg  0x000042ad , 0x00000006 
+ 00029026  0x0000770a call  0x00007c91 
+ 00029027  0x0000770b arg  0x00000158 , 0x00000006 
+ 00029028  0x0000770c call  0x00007c91 
+ 00029029  0x0000770d call  0x000071e9 
+ 00029030  0x0000770e arg  0x000006cf , 0x00000006 
+ 00029031  0x0000770f arg  0x0000067f , 0x00000005 
+ 00029032  0x00007710 call  0x00007c91 
+ 00029033  0x00007712 call  0x000071af 
+ 00029034  0x00007713 arg  0x000006af , 0x00000005 
+ 00029035  0x00007714 branch  0x000071e0 
+ 00029036  0x00007717 jam  0x00000020 , 0x0000020e 
+ 00029037  0x00007718 arg  0x0000061c , 0x00000006 
+ 00029038  0x00007719 arg  0x0000020f , 0x00000005 
+ 00029039  0x0000771a call  0x00007c8f 
+ 00029040  0x0000771b call  0x000071e9 
+ 00029041  0x0000771c arg  0x000005c7 , 0x00000006 
+ 00029042  0x0000771d call  0x000071e4 
+ 00029043  0x0000771e call  0x000071af 
+ 00029044  0x0000771f arg  0x0000067f , 0x00000005 
+ 00029045  0x00007720 call  0x00007363 
+ 00029046  0x00007721 arg  0x00000001 , 0x00000002 
+ 00029047  0x00007722 call  0x0000717e 
+ 00029048  0x00007723 arg  0x0000428c , 0x00000005 
+ 00029049  0x00007724 call  0x000071e0 
+ 00029050  0x00007725 arg  0x00000000 , 0x00000002 
+ 00029051  0x00007726 call  0x0000717e 
+ 00029052  0x00007727 arg  0x000006cf , 0x00000005 
+ 00029053  0x00007729 branch  0x00007363 
+ 00029054  0x0000772d bpatchx  0x0000000b , 0x00004021 
+ 00029055  0x0000772e jam  0x00000035 , 0x0000020e 
+ 00029056  0x0000772f setarg  0x00000100 
+ 00029057  0x00007730 store  0x00000002 , 0x0000020f 
+ 00029058  0x00007731 call  0x0000718f 
+ 00029059  0x00007732 call  0x00007194 
+ 00029060  0x00007733 arg  0x000042ad , 0x00000006 
+ 00029061  0x00007734 call  0x00007c91 
+ 00029062  0x00007735 arg  0x00000158 , 0x00000006 
+ 00029063  0x00007736 call  0x00007c91 
+ 00029064  0x00007738 setarg  0x00006c65 
+ 00029065  0x00007739 istore  0x00000002 , 0x00000005 
+ 00029066  0x0000773a setarg  0x00006274 
+ 00029067  0x0000773b istore  0x00000002 , 0x00000005 
+ 00029068  0x0000773c istoret  0x00000001 , 0x00000005 
+ 00029069  0x0000773d call  0x000071e9 
+ 00029070  0x0000773e branch  0x000071af 
+ 00029071  0x00007741 fetch  0x00000006 , 0x000042dd 
+ 00029072  0x00007742 istore  0x00000006 , 0x00000005 
+ 00029073  0x00007743 fetch  0x00000001 , 0x000042d4 
+ 00029074  0x00007744 istore  0x00000001 , 0x00000005 
+ 00029075  0x00007745 rtn 
+ 00029076  0x00007748 fetch  0x00000006 , 0x00000178 
+ 00029077  0x00007749 istore  0x00000006 , 0x00000005 
+ 00029078  0x0000774e fetch  0x00000001 , 0x000042cd 
+ 00029079  0x0000774f istore  0x00000001 , 0x00000005 
+ 00029080  0x00007750 rtn 
+ 00029081  0x00007753 jam  0x00000041 , 0x0000020e 
+ 00029082  0x00007754 fetch  0x00000001 , 0x000044e7 
+ 00029083  0x00007755 store  0x00000001 , 0x0000020f 
+ 00029084  0x00007756 arg  0x000044a6 , 0x00000006 
+ 00029085  0x00007757 call  0x00007c8f 
+ 00029086  0x00007758 arg  0x000005dc , 0x00000006 
+ 00029087  0x00007759 call  0x00007c8f 
+ 00029088  0x0000775a call  0x000071e9 
+ 00029089  0x0000775b arg  0x00000158 , 0x00000006 
+ 00029090  0x0000775c call  0x000071e4 
+ 00029091  0x0000775d branch  0x000071af 
+ 00029092  0x00007761 jam  0x00000041 , 0x0000020e 
+ 00029093  0x00007762 fetch  0x00000001 , 0x000044e7 
+ 00029094  0x00007763 store  0x00000001 , 0x0000020f 
+ 00029095  0x00007764 arg  0x000005dc , 0x00000006 
+ 00029096  0x00007765 call  0x00007c8f 
+ 00029097  0x00007766 arg  0x000044a6 , 0x00000006 
+ 00029098  0x00007767 call  0x00007c8f 
+ 00029099  0x00007768 call  0x000071e9 
+ 00029100  0x00007769 arg  0x000042ad , 0x00000006 
+ 00029101  0x0000776a call  0x000071e4 
+ 00029102  0x0000776b branch  0x000071af 
+ 00029103  0x0000776e bpatchx  0x0000000c , 0x00004021 
+ 00029104  0x0000776f call  0x000071fe 
+ 00029105  0x00007773 fetch  0x00000001 , 0x0000020e 
+ 00029106  0x00007774 copy  0x0000003f , 0x00000002 
+ 00029107  0x00007776 increase  0x0000000f , 0x0000003f 
+ 00029108  0x00007777 rshift4  0x0000003f , 0x0000003f 
+ 00029109  0x00007778 copy  0x0000003f , 0x00000012 
+ 00029110  0x00007779 branch  0x000071c1 , 0x00000034 
+ 00029111  0x0000777a and  0x00000002 , 0x0000000f , 0x0000003f 
+ 00029112  0x0000777b nbranch  0x000071c4 , 0x00000034 
+ 00029113  0x0000777d arg  0x0000068f , 0x00000013 
+ 00029114  0x0000777e arg  0x0000020f , 0x0000003f 
+ 00029115  0x0000777f increase  0xfffffff0 , 0x0000003f 
+ 00029116  0x00007782 iadd  0x00000002 , 0x00000011 
+ 00029117  0x00007783 arg  0x000006bf , 0x00000005 
+ 00029118  0x00007784 arg  0x00000004 , 0x00000039 
+ 00029119  0x00007785 call  0x00007cab 
+ 00029120  0x00007789 branch  0x000071cf 
+ 00029121  0x0000778c arg  0x00000001 , 0x00000012 
+ 00029122  0x0000778d arg  0x00000000 , 0x00000011 
+ 00029123  0x0000778f branch  0x000071c5 
+ 00029124  0x00007794 and  0x00000002 , 0x0000000f , 0x00000011 
+ 00029125  0x00007796 arg  0x0000020f , 0x0000003f 
+ 00029126  0x00007797 iadd  0x00000002 , 0x0000003f 
+ 00029127  0x00007798 isub  0x00000011 , 0x00000006 
+ 00029128  0x0000779a arg  0x000006af , 0x00000005 
+ 00029129  0x0000779b call  0x00007224 
+ 00029130  0x0000779d arg  0x0000069f , 0x00000013 
+ 00029131  0x0000779e arg  0x000006af , 0x00000011 
+ 00029132  0x0000779f arg  0x000006bf , 0x00000005 
+ 00029133  0x000077a0 arg  0x00000004 , 0x00000039 
+ 00029134  0x000077a1 call  0x00007cab 
+ 00029135  0x000077ad call  0x0000735d 
+ 00029136  0x000077ae call  0x000072c8 
+ 00029137  0x000077b1 arg  0x0000020f , 0x00000006 
+ 00029138  0x000077b4 increase  0xffffffff , 0x00000012 
+ 00029139  0x000077b5 deposit  0x00000012 
+ 00029140  0x000077b6 branch  0x000071d8 , 0x00000034 
+ 00029141  0x000077b7 call  0x0000734f 
+ 00029142  0x000077b8 call  0x000072c2 
+ 00029143  0x000077b9 branch  0x000071d2 
+ 00029144  0x000077bc arg  0x000006af , 0x00000005 
+ 00029145  0x000077bd call  0x00007363 
+ 00029146  0x000077be arg  0x000006bf , 0x00000006 
+ 00029147  0x000077bf call  0x0000734f 
+ 00029148  0x000077c0 call  0x000072c8 
+ 00029149  0x000077c1 arg  0x000006af , 0x00000006 
+ 00029150  0x000077c2 call  0x0000734f 
+ 00029151  0x000077c3 branch  0x000072c2 
+ 00029152  0x000077c9 copy  0x00000005 , 0x00000011 
+ 00029153  0x000077ca call  0x00007363 
+ 00029154  0x000077cc arg  0x00000010 , 0x00000039 
+ 00029155  0x000077cd branch  0x00007cb3 
+ 00029156  0x000077d0 arg  0x0000067f , 0x00000005 
+ 00029157  0x000077d1 call  0x00007c91 
+ 00029158  0x000077d3 arg  0x00000010 , 0x00000039 
+ 00029159  0x000077d4 arg  0x0000067f , 0x00000011 
+ 00029160  0x000077d5 branch  0x00007cb3 
+ 00029161  0x000077d8 fetch  0x00000001 , 0x0000020e 
+ 00029162  0x000077d9 copy  0x0000003f , 0x00000039 
+ 00029163  0x000077da arg  0x0000020f , 0x00000011 
+ 00029164  0x000077db branch  0x00007cb3 
+ 00029165  0x000077de ifetch  0x00000001 , 0x00000011 
+ 00029166  0x000077df lshift  0x0000003f , 0x0000003f 
+ 00029167  0x000077e0 isolate1  0x00000000 , 0x00000013 
+ 00029168  0x000077e1 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00029169  0x000077e2 isolate1  0x00000008 , 0x0000003f 
+ 00029170  0x000077e3 setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029171  0x000077e4 istore  0x00000001 , 0x00000011 
+ 00029172  0x000077e5 increase  0xffffffff , 0x00000011 
+ 00029173  0x000077e6 loop  0x000071ed 
+ 00029174  0x000077e7 rtn 
+ 00029175  0x000077ea arg  0x0000068f , 0x00000011 
+ 00029176  0x000077ec increase  0x0000000f , 0x00000011 
+ 00029177  0x000077ed force  0x00000010 , 0x00000039 
+ 00029178  0x000077ee force  0x00000000 , 0x00000013 
+ 00029179  0x000077ef branch  0x000071ed 
+ 00029180  0x000077f2 arg  0x0000069f , 0x00000011 
+ 00029181  0x000077f3 branch  0x000071f8 
+ 00029182  0x000077f7 arg  0x0000067f , 0x00000006 
+ 00029183  0x000077f8 call  0x0000734d 
+ 00029184  0x000077fb force  0x00000008 , 0x00000038 
+ 00029185  0x000077fc call  0x0000735e 
+ 00029186  0x000077fd call  0x0000735d 
+ 00029187  0x000077fe call  0x000072bf 
+ 00029188  0x00007803 arg  0x0000068f , 0x00000005 
+ 00029189  0x00007804 call  0x00007363 
+ 00029190  0x00007806 bpatchx  0x0000000d , 0x00004021 
+ 00029191  0x00007807 fetch  0x00000001 , 0x0000068f 
+ 00029192  0x00007808 isolate1  0x00000007 , 0x0000003f 
+ 00029193  0x00007809 nbranch  0x0000720f , 0x00000001 
+ 00029194  0x0000780a call  0x000071f7 
+ 00029195  0x0000780d arg  0x0000068f , 0x00000013 
+ 00029196  0x0000780f arg  0x0000068f , 0x00000005 
+ 00029197  0x00007812 call  0x00007219 
+ 00029198  0x00007813 branch  0x00007210 
+ 00029199  0x00007815 call  0x000071f7 
+ 00029200  0x00007818 arg  0x0000068f , 0x00000006 
+ 00029201  0x00007819 arg  0x0000069f , 0x00000005 
+ 00029202  0x0000781a call  0x00007c91 
+ 00029203  0x0000781b fetch  0x00000001 , 0x0000069f 
+ 00029204  0x0000781c isolate1  0x00000007 , 0x0000003f 
+ 00029205  0x0000781d nbranch  0x000071fc , 0x00000001 
+ 00029206  0x0000781e call  0x000071fc 
+ 00029207  0x00007820 arg  0x0000069f , 0x00000013 
+ 00029208  0x00007822 arg  0x0000069f , 0x00000005 
+ 00029209  0x00007829 arg  0x00000003 , 0x00000039 
+ 00029210  0x0000782b arg  0x00000000 , 0x00000002 
+ 00029211  0x0000782c call  0x00007220 
+ 00029212  0x0000782d increase  0x00000004 , 0x00000013 
+ 00029213  0x0000782e loop  0x0000721a 
+ 00029214  0x0000782f arg  0x00008700 , 0x00000002 
+ 00029215  0x00007830 lshift16  0x00000002 , 0x00000002 
+ 00029216  0x00007832 ifetch  0x00000004 , 0x00000013 
+ 00029217  0x00007833 ixor  0x00000002 , 0x0000003f 
+ 00029218  0x00007834 istore  0x00000004 , 0x00000005 
+ 00029219  0x00007835 rtn 
+ 00029220  0x0000783c bpatchx  0x0000000e , 0x00004021 
+ 00029221  0x0000783d arg  0x00000010 , 0x00000039 
+ 00029222  0x0000783e arg  0x00000000 , 0x0000003f 
+ 00029223  0x00007840 isub  0x00000011 , 0x0000003e 
+ 00029224  0x00007841 branch  0x0000722f , 0x00000005 
+ 00029225  0x00007842 branch  0x00007232 , 0x00000002 
+ 00029226  0x00007843 ifetcht  0x00000001 , 0x00000006 
+ 00029227  0x00007844 istoret  0x00000001 , 0x00000005 
+ 00029228  0x00007846 increase  0x00000001 , 0x0000003f 
+ 00029229  0x00007847 loop  0x00007227 
+ 00029230  0x00007848 rtn 
+ 00029231  0x0000784a arg  0x00000080 , 0x00000002 
+ 00029232  0x0000784c istoret  0x00000001 , 0x00000005 
+ 00029233  0x0000784d branch  0x0000722c 
+ 00029234  0x00007850 arg  0x00000000 , 0x00000002 
+ 00029235  0x00007851 branch  0x00007230 
+ 00029236  0x00007857 lshift8  0x00000002 , 0x00000002 
+ 00029237  0x00007859 lshift16  0x00000002 , 0x00000002 
+ 00029238  0x0000785a ior  0x00000002 , 0x00000002 
+ 00029239  0x0000785b rtn 
+ 00029240  0x00007861 bpatchx  0x0000000f , 0x00004021 
+ 00029241  0x00007862 call  0x000072f4 
+ 00029242  0x00007863 arg  0x0000428c , 0x00000005 
+ 00029243  0x00007864 branch  0x00007363 
+ 00029244  0x00007868 arg  0x000042ad , 0x00000005 
+ 00029245  0x00007869 branch  0x0000723f , 0x00000029 
+ 00029246  0x0000786a arg  0x00000158 , 0x00000005 
+ 00029247  0x0000786c copy  0x00000006 , 0x00000011 
+ 00029248  0x0000786d call  0x00007c91 
+ 00029249  0x0000786e call  0x00007309 
+ 00029250  0x0000786f arg  0x0000429d , 0x00000006 
+ 00029251  0x00007870 branch  0x0000737c 
+ 00029252  0x00007873 arg  0x00000158 , 0x00000011 
+ 00029253  0x00007874 branch  0x00007247 , 0x00000029 
+ 00029254  0x00007875 arg  0x000042ad , 0x00000011 
+ 00029255  0x00007877 copy  0x00000011 , 0x00000005 
+ 00029256  0x00007878 call  0x00007ded 
+ 00029257  0x00007879 branch  0x00007309 
+ 00029258  0x0000787c arg  0x000042e7 , 0x00000006 
+ 00029259  0x0000787d call  0x0000734f 
+ 00029260  0x0000787e arg  0x0000428c , 0x00000006 
+ 00029261  0x0000787f call  0x00007350 
+ 00029262  0x00007880 force  0x00000038 , 0x00000036 
+ 00029263  0x00007881 force  0x00000000 , 0x00000036 
+ 00029264  0x00007882 call  0x000072bd 
+ 00029265  0x00007883 arg  0x000001a8 , 0x00000005 
+ 00029266  0x00007884 branch  0x00007363 
+ 00029267  0x00007889 force  0x00000008 , 0x00000038 
+ 00029268  0x0000788a force  0x00000049 , 0x0000003f 
+ 00029269  0x0000788b branch  0x0000725a 
+ 00029270  0x0000788f force  0x00000049 , 0x0000003f 
+ 00029271  0x00007890 branch  0x00007259 
+ 00029272  0x00007892 force  0x00000001 , 0x0000003f 
+ 00029273  0x00007894 force  0x00000000 , 0x00000038 
+ 00029274  0x00007896 lshift8  0x00000002 , 0x0000002f 
+ 00029275  0x00007897 ior  0x0000002f , 0x0000002f 
+ 00029276  0x00007898 increase  0x00000001 , 0x00000038 
+ 00029277  0x00007899 rshift8  0x00000002 , 0x0000002f 
+ 00029278  0x0000789a rshift16  0x0000002f , 0x0000002f 
+ 00029279  0x0000789b fetch  0x00000002 , 0x00004475 
+ 00029280  0x0000789c lshift16  0x0000003f , 0x0000003f 
+ 00029281  0x0000789d ior  0x0000002f , 0x0000002f 
+ 00029282  0x0000789e increase  0x00000001 , 0x00000038 
+ 00029283  0x0000789f ifetchr  0x0000002f , 0x00000004 , 0x00000006 
+ 00029284  0x000078a0 increase  0x00000001 , 0x00000038 
+ 00029285  0x000078a1 ifetch  0x00000002 , 0x00000006 
+ 00029286  0x000078a2 byteswap  0x00000011 , 0x0000002f 
+ 00029287  0x000078a3 lshift16  0x0000002f , 0x0000002f 
+ 00029288  0x000078a4 ior  0x0000002f , 0x0000002f 
+ 00029289  0x000078a5 increase  0x00000001 , 0x00000038 
+ 00029290  0x000078a6 rtn 
+ 00029291  0x000078ab add  0x00000013 , 0x00000001 , 0x00000006 
+ 00029292  0x000078ac ifetch  0x00000001 , 0x00000006 
+ 00029293  0x000078ad iforce  0x00000011 
+ 00029294  0x000078ae call  0x00007256 
+ 00029295  0x000078af call  0x000072bf 
+ 00029296  0x000078b1 force  0x00000000 , 0x00000038 
+ 00029297  0x000078b2 ifetch  0x00000001 , 0x00000013 
+ 00029298  0x000078b3 and_into  0x00000003 , 0x0000003f 
+ 00029299  0x000078b4 lshift16  0x0000003f , 0x0000002f 
+ 00029300  0x000078b5 set1  0x00000008 , 0x0000002f 
+ 00029301  0x000078b6 call  0x00007358 
+ 00029302  0x000078b7 call  0x000072c2 
+ 00029303  0x000078b9 copy  0x00000011 , 0x00000039 
+ 00029304  0x000078ba add  0x00000013 , 0x00000002 , 0x00000006 
+ 00029305  0x000078bb call  0x00007337 
+ 00029306  0x000078bd call  0x00007341 
+ 00029307  0x000078be call  0x000072c2 
+ 00029308  0x000078bf deposit  0x00000039 
+ 00029309  0x000078c0 branch  0x0000727f , 0x00000034 
+ 00029310  0x000078c1 branch  0x0000727a 
+ 00029311  0x000078c3 force  0x0000000c , 0x00000038 
+ 00029312  0x000078c4 deposit  0x0000002f 
+ 00029313  0x000078c5 store  0x00000004 , 0x00000150 
+ 00029314  0x000078c6 rtn 
+ 00029315  0x000078c9 increase  0x00000001 , 0x00000011 
+ 00029316  0x000078ca call  0x00007258 
+ 00029317  0x000078cb copy  0x00000013 , 0x00000006 
+ 00029318  0x000078cc call  0x0000734b 
+ 00029319  0x000078cd call  0x000072c5 
+ 00029320  0x000078ce call  0x0000736a 
+ 00029321  0x000078cf increase  0x00000010 , 0x00000013 
+ 00029322  0x000078d0 increase  0xfffffff0 , 0x00000012 
+ 00029323  0x000078d1 branch  0x00007283 , 0x00000002 
+ 00029324  0x000078d2 rtn 
+ 00029325  0x000078d8 call  0x000072b2 
+ 00029326  0x000078d9 bpatchx  0x00000010 , 0x00004022 
+ 00029327  0x000078da jam  0x00000000 , 0x0000806c 
+ 00029328  0x000078db jam  0x00000001 , 0x0000806d 
+ 00029329  0x000078dc fetch  0x00000001 , 0x0000416b 
+ 00029330  0x000078dd and_into  0x00000003 , 0x0000003f 
+ 00029331  0x000078de store  0x00000001 , 0x0000806e 
+ 00029332  0x000078df fetch  0x00000002 , 0x0000066d 
+ 00029333  0x000078e0 store  0x00000002 , 0x00008068 
+ 00029334  0x000078e1 setarg  0x0000416d 
+ 00029335  0x000078e2 store  0x00000002 , 0x0000806a 
+ 00029336  0x000078e4 fetchr  0x00000011 , 0x00000001 , 0x0000416c 
+ 00029337  0x000078e5 fetcht  0x00000005 , 0x00004467 
+ 00029338  0x000078e6 call  0x00007253 
+ 00029339  0x000078e7 jam  0x00000002 , 0x0000800a 
+ 00029340  0x000078e8 jam  0x00000003 , 0x0000800a 
+ 00029341  0x000078ea fetch  0x00000001 , 0x0000416c 
+ 00029342  0x000078eb store  0x00000002 , 0x000080c0 
+ 00029343  0x000078ec increase  0x00000004 , 0x0000003f 
+ 00029344  0x000078ed store  0x00000001 , 0x0000416c 
+ 00029345  0x000078ee fetch  0x00000005 , 0x00004467 
+ 00029346  0x000078ef increase  0x00000001 , 0x0000003f 
+ 00029347  0x000078f0 set0  0x00000027 , 0x0000003f 
+ 00029348  0x000078f1 store  0x00000005 , 0x00004467 
+ 00029349  0x000078f2 rtn 
+ 00029350  0x000078f6 fetch  0x00000002 , 0x0000811a 
+ 00029351  0x000078f7 isub  0x00000002 , 0x0000003e 
+ 00029352  0x000078f8 rtn  0x00000005 
+ 00029353  0x000078f9 nrtn  0x00000034 
+ 00029354  0x000078fb branch  0x000072a6 
+ 00029355  0x000078fe fetch  0x00000001 , 0x00008108 
+ 00029356  0x000078ff bbit0  0x00000006 , 0x0000233e 
+ 00029357  0x00007901 setarg  0x0000416d 
+ 00029358  0x00007902 iadd  0x00000002 , 0x00000005 
+ 00029359  0x00007903 arg  0x0000000c , 0x00000038 
+ 00029360  0x00007904 istorer  0x0000002f , 0x00000004 , 0x00000005 
+ 00029361  0x00007905 branch  0x000072bb 
+ 00029362  0x00007908 bpatchx  0x00000011 , 0x00004022 
+ 00029363  0x00007909 force  0x0000000c , 0x00000038 
+ 00029364  0x0000790a call  0x0000735e 
+ 00029365  0x0000790b call  0x0000735d 
+ 00029366  0x0000790c setarg  0x00000000 
+ 00029367  0x0000790d store  0x00000002 , 0x000080c0 
+ 00029368  0x0000790e rtn 
+ 00029369  0x00007911 fetch  0x00000001 , 0x00008108 
+ 00029370  0x00007912 bbit0  0x00000006 , 0x000072b9 
+ 00029371  0x00007914 jam  0x00000000 , 0x0000800a 
+ 00029372  0x00007915 rtn 
+ 00029373  0x00007919 nbranch  0x000072bd , 0x00000037 
+ 00029374  0x0000791a rtn 
+ 00029375  0x0000791d force  0x00000030 , 0x00000036 
+ 00029376  0x0000791e force  0x00000000 , 0x00000036 
+ 00029377  0x0000791f branch  0x000072bd 
+ 00029378  0x00007922 force  0x00000032 , 0x00000036 
+ 00029379  0x00007923 force  0x00000002 , 0x00000036 
+ 00029380  0x00007924 branch  0x000072bd 
+ 00029381  0x00007927 force  0x00000034 , 0x00000036 
+ 00029382  0x00007928 force  0x00000004 , 0x00000036 
+ 00029383  0x00007929 branch  0x000072bd 
+ 00029384  0x0000792d force  0x00000001 , 0x00000036 
+ 00029385  0x0000792e force  0x00000000 , 0x00000036 
+ 00029386  0x0000792f rtn 
+ 00029387  0x00007933 fetch  0x00000001 , 0x00008155 
+ 00029388  0x00007934 bbit0  0x00000002 , 0x000072cb 
+ 00029389  0x00007935 rtn 
+ 00029390  0x00007939 store  0x00000002 , 0x000080d2 
+ 00029391  0x0000793a force  0x000000c0 , 0x00000036 
+ 00029392  0x0000793b force  0x00000080 , 0x00000036 
+ 00029393  0x0000793c branch  0x000072cb 
+ 00029394  0x0000793f force  0x00000000 , 0x00000038 
+ 00029395  0x00007940 copy  0x00000012 , 0x00000006 
+ 00029396  0x00007941 force  0x00000004 , 0x00000039 
+ 00029397  0x00007942 call  0x000072e1 
+ 00029398  0x00007944 force  0x00000180 , 0x00000036 
+ 00029399  0x00007945 force  0x00000080 , 0x00000036 
+ 00029400  0x00007946 call  0x000072bd 
+ 00029401  0x00007948 force  0x0000000c , 0x00000038 
+ 00029402  0x00007949 copy  0x00000013 , 0x00000005 
+ 00029403  0x0000794a force  0x00000004 , 0x00000039 
+ 00029404  0x0000794c copy  0x0000002f , 0x0000003f 
+ 00029405  0x0000794d istore  0x00000004 , 0x00000005 
+ 00029406  0x0000794e increase  0x00000001 , 0x00000038 
+ 00029407  0x0000794f loop  0x000072dc 
+ 00029408  0x00007950 rtn 
+ 00029409  0x00007953 ifetch  0x00000002 , 0x00000006 
+ 00029410  0x00007954 ifetcht  0x00000002 , 0x00000006 
+ 00029411  0x00007955 lshift16  0x00000002 , 0x00000002 
+ 00029412  0x00007956 ior  0x00000002 , 0x0000002f 
+ 00029413  0x00007957 increase  0x00000001 , 0x00000038 
+ 00029414  0x00007958 loop  0x000072e1 
+ 00029415  0x00007959 rtn 
+ 00029416  0x0000795d force  0x00000008 , 0x00000038 
+ 00029417  0x0000795e copy  0x00000011 , 0x00000006 
+ 00029418  0x0000795f force  0x00000004 , 0x00000039 
+ 00029419  0x00007960 call  0x000072e1 
+ 00029420  0x00007962 force  0x00000000 , 0x00000038 
+ 00029421  0x00007963 copy  0x00000012 , 0x00000006 
+ 00029422  0x00007964 force  0x00000004 , 0x00000039 
+ 00029423  0x00007965 call  0x000072e1 
+ 00029424  0x00007966 force  0x00000182 , 0x00000036 
+ 00029425  0x00007967 force  0x00000082 , 0x00000036 
+ 00029426  0x00007968 call  0x000072bd 
+ 00029427  0x00007969 branch  0x000072d9 
+ 00029428  0x0000796d force  0x00000000 , 0x00000038 
+ 00029429  0x0000796e fetch  0x00000004 , 0x00000158 
+ 00029430  0x0000796f iforce  0x0000002f 
+ 00029431  0x00007970 increase  0x00000001 , 0x00000038 
+ 00029432  0x00007971 ifetch  0x00000004 , 0x00000006 
+ 00029433  0x00007972 iforce  0x0000002f 
+ 00029434  0x00007973 increase  0x00000001 , 0x00000038 
+ 00029435  0x00007974 fetch  0x00000004 , 0x000042ad 
+ 00029436  0x00007975 iforce  0x0000002f 
+ 00029437  0x00007976 increase  0x00000001 , 0x00000038 
+ 00029438  0x00007977 ifetch  0x00000004 , 0x00000006 
+ 00029439  0x00007978 iforce  0x0000002f 
+ 00029440  0x00007979 increase  0x00000001 , 0x00000038 
+ 00029441  0x0000797a call  0x0000735e 
+ 00029442  0x0000797b increase  0xfffffffc , 0x00000038 
+ 00029443  0x0000797c fetch  0x00000004 , 0x00004301 
+ 00029444  0x0000797d copy  0x0000003f , 0x0000002f 
+ 00029445  0x0000797e increase  0x00000004 , 0x00000038 
+ 00029446  0x0000797f force  0x00000038 , 0x00000036 
+ 00029447  0x00007980 force  0x00000008 , 0x00000036 
+ 00029448  0x00007981 branch  0x000072bd 
+ 00029449  0x00007985 bpatchx  0x00000012 , 0x00004022 
+ 00029450  0x00007986 fetch  0x00000006 , 0x000042dd 
+ 00029451  0x00007987 fetcht  0x00000006 , 0x00000178 
+ 00029452  0x00007988 branch  0x0000730f , 0x00000029 
+ 00029453  0x00007989 fetch  0x00000006 , 0x00000178 
+ 00029454  0x0000798a fetcht  0x00000006 , 0x000042dd 
+ 00029455  0x0000798c force  0x00000008 , 0x00000038 
+ 00029456  0x0000798d copy  0x00000002 , 0x0000002f 
+ 00029457  0x0000798e increase  0x00000001 , 0x00000038 
+ 00029458  0x0000798f rshift32  0x00000002 , 0x0000002f 
+ 00029459  0x00007990 lshift16  0x0000003f , 0x0000003f 
+ 00029460  0x00007991 ior  0x0000002f , 0x0000002f 
+ 00029461  0x00007992 increase  0x00000001 , 0x00000038 
+ 00029462  0x00007993 rshift32  0x0000003f , 0x0000002f 
+ 00029463  0x00007994 increase  0x00000001 , 0x00000038 
+ 00029464  0x00007995 force  0x00000000 , 0x0000002f 
+ 00029465  0x00007996 force  0x00000000 , 0x0000003f 
+ 00029466  0x00007997 fetch  0x00000001 , 0x000042cd 
+ 00029467  0x00007998 fetcht  0x00000001 , 0x00004390 
+ 00029468  0x00007999 nbranch  0x0000731f , 0x00000029 
+ 00029469  0x0000799b fetch  0x00000001 , 0x000042d4 
+ 00029470  0x0000799c fetcht  0x00000001 , 0x000042cd 
+ 00029471  0x0000799e store  0x00000001 , 0x000042bd 
+ 00029472  0x0000799f storet  0x00000001 , 0x000042be 
+ 00029473  0x000079a0 force  0x00000000 , 0x00000038 
+ 00029474  0x000079a1 arg  0x000042bd , 0x00000012 
+ 00029475  0x000079a2 force  0x00000004 , 0x00000039 
+ 00029476  0x000079a4 ifetch  0x00000004 , 0x00000011 
+ 00029477  0x000079a5 ifetcht  0x00000004 , 0x00000012 
+ 00029478  0x000079a6 ixor  0x00000002 , 0x0000002f 
+ 00029479  0x000079a7 increase  0x00000001 , 0x00000038 
+ 00029480  0x000079a8 increase  0x00000004 , 0x00000011 
+ 00029481  0x000079a9 increase  0x00000004 , 0x00000012 
+ 00029482  0x000079aa loop  0x00007324 
+ 00029483  0x000079ab call  0x0000735e 
+ 00029484  0x000079ac increase  0xfffffffc , 0x00000038 
+ 00029485  0x000079ad fetch  0x00000004 , 0x00004301 
+ 00029486  0x000079ae copy  0x0000003f , 0x0000002f 
+ 00029487  0x000079af increase  0x00000004 , 0x00000038 
+ 00029488  0x000079b0 force  0x00000038 , 0x00000036 
+ 00029489  0x000079b1 force  0x0000000c , 0x00000036 
+ 00029490  0x000079b2 call  0x000072bd 
+ 00029491  0x000079b4 call  0x0000735d 
+ 00029492  0x000079b5 force  0x0000003a , 0x00000036 
+ 00029493  0x000079b6 force  0x00000008 , 0x00000036 
+ 00029494  0x000079b7 branch  0x000072bd 
+ 00029495  0x000079ba compare  0x00000000 , 0x00000039 , 0x00000003 
+ 00029496  0x000079bb rtn  0x00000001 
+ 00029497  0x000079bc deposit  0x00000006 
+ 00029498  0x000079bd iadd  0x00000039 , 0x00000005 
+ 00029499  0x000079be force  0x00000000 , 0x0000003f 
+ 00029500  0x000079c0 istore  0x00000001 , 0x00000005 
+ 00029501  0x000079c1 increase  0x00000001 , 0x00000039 
+ 00029502  0x000079c2 compare  0x00000000 , 0x00000039 , 0x00000003 
+ 00029503  0x000079c3 rtn  0x00000001 
+ 00029504  0x000079c4 branch  0x0000733c 
+ 00029505  0x000079c7 force  0x00000000 , 0x00000038 
+ 00029506  0x000079c9 deposit  0x00000039 
+ 00029507  0x000079ca branch  0x00007346 , 0x00000034 
+ 00029508  0x000079cb ifetch  0x00000004 , 0x00000006 
+ 00029509  0x000079cc increase  0xfffffffc , 0x00000039 
+ 00029510  0x000079ce iforce  0x0000002f 
+ 00029511  0x000079cf increase  0x00000001 , 0x00000038 
+ 00029512  0x000079d0 compare  0x00000004 , 0x00000038 , 0x0000000f 
+ 00029513  0x000079d1 rtn  0x00000001 
+ 00029514  0x000079d2 branch  0x00007342 
+ 00029515  0x000079d5 force  0x00000008 , 0x00000038 
+ 00029516  0x000079d6 branch  0x00007350 
+ 00029517  0x000079d8 force  0x00000004 , 0x00000038 
+ 00029518  0x000079d9 branch  0x00007350 
+ 00029519  0x000079db force  0x00000000 , 0x00000038 
+ 00029520  0x000079dd force  0x00000004 , 0x00000039 
+ 00029521  0x000079df ifetch  0x00000004 , 0x00000006 
+ 00029522  0x000079e0 iforce  0x0000002f 
+ 00029523  0x000079e1 increase  0x00000001 , 0x00000038 
+ 00029524  0x000079e2 loop  0x00007351 
+ 00029525  0x000079e3 rtn 
+ 00029526  0x000079e6 arg  0x000001a8 , 0x00000006 
+ 00029527  0x000079e7 branch  0x0000734d 
+ 00029528  0x000079ea force  0x00000004 , 0x00000039 
+ 00029529  0x000079eb branch  0x00007360 
+ 00029530  0x000079ee force  0x00000000 , 0x00000038 
+ 00029531  0x000079ef force  0x00000010 , 0x00000039 
+ 00029532  0x000079f0 branch  0x0000735f 
+ 00029533  0x000079f3 force  0x00000000 , 0x00000038 
+ 00029534  0x000079f5 force  0x00000004 , 0x00000039 
+ 00029535  0x000079f7 force  0x00000000 , 0x0000002f 
+ 00029536  0x000079f9 increase  0x00000001 , 0x00000038 
+ 00029537  0x000079fa loop  0x0000735f 
+ 00029538  0x000079fb rtn 
+ 00029539  0x000079fe force  0x0000000c , 0x00000038 
+ 00029540  0x000079ff force  0x00000004 , 0x00000039 
+ 00029541  0x00007a01 deposit  0x0000002f 
+ 00029542  0x00007a02 istore  0x00000004 , 0x00000005 
+ 00029543  0x00007a03 increase  0x00000001 , 0x00000038 
+ 00029544  0x00007a04 loop  0x00007365 
+ 00029545  0x00007a05 rtn 
+ 00029546  0x00007a08 force  0x0000000c , 0x00000038 
+ 00029547  0x00007a09 copy  0x00000013 , 0x00000005 
+ 00029548  0x00007a0a add  0x00000012 , 0x00000001 , 0x00000039 
+ 00029549  0x00007a0b sub  0x00000039 , 0x0000000f , 0x0000003e 
+ 00029550  0x00007a0c branch  0x00007370 , 0x00000002 
+ 00029551  0x00007a0d force  0x00000010 , 0x00000039 
+ 00029552  0x00007a0f deposit  0x0000002f 
+ 00029553  0x00007a10 sub  0x00000039 , 0x00000003 , 0x0000003e 
+ 00029554  0x00007a11 branch  0x00007378 , 0x00000002 
+ 00029555  0x00007a12 istore  0x00000004 , 0x00000005 
+ 00029556  0x00007a13 increase  0xfffffffc , 0x00000039 
+ 00029557  0x00007a14 rtn  0x00000005 
+ 00029558  0x00007a15 increase  0x00000001 , 0x00000038 
+ 00029559  0x00007a16 branch  0x00007370 
+ 00029560  0x00007a18 istore  0x00000001 , 0x00000005 
+ 00029561  0x00007a19 rshift8  0x0000003f , 0x0000003f 
+ 00029562  0x00007a1a loop  0x00007378 
+ 00029563  0x00007a1b rtn 
+ 00029564  0x00007a1f force  0x0000000c , 0x00000038 
+ 00029565  0x00007a20 force  0x00000004 , 0x00000039 
+ 00029566  0x00007a22 ifetch  0x00000004 , 0x00000006 
+ 00029567  0x00007a23 isub  0x0000002f , 0x0000003e 
+ 00029568  0x00007a24 nrtn  0x00000005 
+ 00029569  0x00007a25 increase  0x00000001 , 0x00000038 
+ 00029570  0x00007a26 loop  0x0000737e 
+ 00029571  0x00007a27 branch  0x00007dba 
+ 00029572  0x00007a2a fetch  0x00000001 , 0x00008050 
+ 00029573  0x00007a2b set0  0x00000000 , 0x0000003f 
+ 00029574  0x00007a2c store  0x00000001 , 0x00008050 
+ 00029575  0x00007a2d rtn 
+ 00029576  0x00007a30 fetch  0x00000001 , 0x00008050 
+ 00029577  0x00007a31 set1  0x00000000 , 0x0000003f 
+ 00029578  0x00007a32 store  0x00000001 , 0x00008050 
+ 00029579  0x00007a33 rtn 
+ 00029580  0x00007a3c arg  0x000004af , 0x00000005 
+ 00029581  0x00007a3d setsect  0x00000000 , 0x0003ffff 
+ 00029582  0x00007a3e setsect  0x00000001 , 0x0003ffff 
+ 00029583  0x00007a3f setsect  0x00000002 , 0x0003ffff 
+ 00029584  0x00007a40 setsect  0x00000003 , 0x0003fbff 
+ 00029585  0x00007a41 istore  0x00000009 , 0x00000005 
+ 00029586  0x00007a42 setsect  0x00000000 , 0x0003ffff 
+ 00029587  0x00007a43 setsect  0x00000001 , 0x0003ffff 
+ 00029588  0x00007a44 setsect  0x00000002 , 0x0003ffff 
+ 00029589  0x00007a45 setsect  0x00000003 , 0x0003ffff 
+ 00029590  0x00007a46 istore  0x00000009 , 0x00000005 
+ 00029591  0x00007a47 setsect  0x00000000 , 0x0003ffff 
+ 00029592  0x00007a48 setsect  0x00000001 , 0x0003ffff 
+ 00029593  0x00007a49 setsect  0x00000002 , 0x0003cfff 
+ 00029594  0x00007a4a setsect  0x00000003 , 0x0003ffff 
+ 00029595  0x00007a4b istore  0x00000009 , 0x00000005 
+ 00029596  0x00007a4c setsect  0x00000000 , 0x0003ffff 
+ 00029597  0x00007a4d setsect  0x00000001 , 0x0003ffff 
+ 00029598  0x00007a4e setsect  0x00000002 , 0x0003ffef 
+ 00029599  0x00007a4f setsect  0x00000003 , 0x0003ffff 
+ 00029600  0x00007a50 istore  0x00000009 , 0x00000005 
+ 00029601  0x00007a51 setsect  0x00000000 , 0x0003ffff 
+ 00029602  0x00007a52 setsect  0x00000001 , 0x0003ffff 
+ 00029603  0x00007a53 setsect  0x00000002 , 0x0003ffff 
+ 00029604  0x00007a54 setsect  0x00000003 , 0x0003ffff 
+ 00029605  0x00007a55 istore  0x00000009 , 0x00000005 
+ 00029606  0x00007a56 setsect  0x00000000 , 0x0003ffff 
+ 00029607  0x00007a57 setsect  0x00000001 , 0x00026c7f 
+ 00029608  0x00007a58 setsect  0x00000002 , 0x0000146b 
+ 00029609  0x00007a59 setsect  0x00000003 , 0x00037bb3 
+ 00029610  0x00007a5a istore  0x00000009 , 0x00000005 
+ 00029611  0x00007a5b setsect  0x00000000 , 0x0001feb8 
+ 00029612  0x00007a5c setsect  0x00000001 , 0x00010c12 
+ 00029613  0x00007a5d setsect  0x00000002 , 0x0002b722 
+ 00029614  0x00007a5e setsect  0x00000003 , 0x00029fa6 
+ 00029615  0x00007a5f istore  0x00000009 , 0x00000005 
+ 00029616  0x00007a60 setsect  0x00000000 , 0x0000e70f 
+ 00029617  0x00007a61 setsect  0x00000001 , 0x00016720 
+ 00029618  0x00007a62 setsect  0x00000002 , 0x0000519e 
+ 00029619  0x00007a63 setsect  0x00000003 , 0x00019084 
+ 00029620  0x00007a64 istore  0x00000009 , 0x00000005 
+ 00029621  0x00007a65 setsect  0x00000000 , 0x00031012 
+ 00029622  0x00007a66 setsect  0x00000001 , 0x000360bf 
+ 00029623  0x00007a67 setsect  0x00000002 , 0x0003f0af 
+ 00029624  0x00007a68 setsect  0x00000003 , 0x000003d3 
+ 00029625  0x00007a69 istore  0x00000009 , 0x00000005 
+ 00029626  0x00007a6a setsect  0x00000000 , 0x0003a188 
+ 00029627  0x00007a6b setsect  0x00000001 , 0x00003ad0 
+ 00029628  0x00007a6c setsect  0x00000002 , 0x0003cbf2 
+ 00029629  0x00007a6d setsect  0x00000003 , 0x000243d9 
+ 00029630  0x00007a6e istore  0x00000009 , 0x00000005 
+ 00029631  0x00007a6f setsect  0x00000000 , 0x0002b030 
+ 00029632  0x00007a70 setsect  0x00000001 , 0x00036a03 
+ 00029633  0x00007a71 setsect  0x00000002 , 0x00011188 
+ 00029634  0x00007a72 setsect  0x00000003 , 0x0001e520 
+ 00029635  0x00007a73 istore  0x00000009 , 0x00000005 
+ 00029636  0x00007a74 setsect  0x00000000 , 0x0003a11e 
+ 00029637  0x00007a75 setsect  0x00000001 , 0x0000fe5d 
+ 00029638  0x00007a76 setsect  0x00000002 , 0x0000dd57 
+ 00029639  0x00007a77 setsect  0x00000003 , 0x0001ac93 
+ 00029640  0x00007a78 istore  0x00000009 , 0x00000005 
+ 00029641  0x00007a79 setsect  0x00000000 , 0x000011ed 
+ 00029642  0x00007a7a setsect  0x00000001 , 0x000218c4 
+ 00029643  0x00007a7b setsect  0x00000002 , 0x00008da7 
+ 00029644  0x00007a7c setsect  0x00000003 , 0x000257ff 
+ 00029645  0x00007a7d istore  0x00000009 , 0x00000005 
+ 00029646  0x00007a7e setsect  0x00000000 , 0x0003192b 
+ 00029647  0x00007a7f setsect  0x00000001 , 0x00034641 
+ 00029648  0x00007a80 setsect  0x00000002 , 0x0001be0c 
+ 00029649  0x00007a81 setsect  0x00000003 , 0x000366ad 
+ 00029650  0x00007a82 istore  0x00000009 , 0x00000005 
+ 00029651  0x00007a83 setsect  0x00000000 , 0x00001f83 
+ 00029652  0x00007a84 setsect  0x00000001 , 0x00015a23 
+ 00029653  0x00007a85 setsect  0x00000002 , 0x0003f9b0 
+ 00029654  0x00007a86 setsect  0x00000003 , 0x00003949 
+ 00029655  0x00007a87 istore  0x00000009 , 0x00000005 
+ 00029656  0x00007a88 setsect  0x00000000 , 0x00013a51 
+ 00029657  0x00007a89 setsect  0x00000001 , 0x000153fd 
+ 00029658  0x00007a8a setsect  0x00000002 , 0x0003372a 
+ 00029659  0x00007a8b setsect  0x00000003 , 0x0000f1bb 
+ 00029660  0x00007a8c istore  0x00000009 , 0x00000005 
+ 00029661  0x00007a8d setsect  0x00000000 , 0x0003ae85 
+ 00029662  0x00007a8e setsect  0x00000001 , 0x0001eed9 
+ 00029663  0x00007a8f setsect  0x00000002 , 0x00009e66 
+ 00029664  0x00007a90 setsect  0x00000003 , 0x000001a8 
+ 00029665  0x00007a91 istore  0x00000008 , 0x00000005 
+ 00029666  0x00007a92 rtn 
+ 00029667  0x00007a9b arg  0x00000547 , 0x00000005 
+ 00029668  0x00007a9c setsect  0x00000000 , 0x0003ffff 
+ 00029669  0x00007a9d setsect  0x00000001 , 0x0003ffff 
+ 00029670  0x00007a9e setsect  0x00000002 , 0x0003ffff 
+ 00029671  0x00007a9f setsect  0x00000003 , 0x0003ffff 
+ 00029672  0x00007aa0 istore  0x00000009 , 0x00000005 
+ 00029673  0x00007aa1 setsect  0x00000000 , 0x0003ffff 
+ 00029674  0x00007aa2 setsect  0x00000001 , 0x0000003f 
+ 00029675  0x00007aa3 setsect  0x00000002 , 0x00000000 
+ 00029676  0x00007aa4 setsect  0x00000003 , 0x00000000 
+ 00029677  0x00007aa5 istore  0x00000009 , 0x00000005 
+ 00029678  0x00007aa6 setsect  0x00000000 , 0x00000000 
+ 00029679  0x00007aa7 setsect  0x00000001 , 0x00000000 
+ 00029680  0x00007aa8 setsect  0x00000002 , 0x00001000 
+ 00029681  0x00007aa9 setsect  0x00000003 , 0x00000000 
+ 00029682  0x00007aaa istore  0x00000009 , 0x00000005 
+ 00029683  0x00007aab setsect  0x00000000 , 0x0003ff00 
+ 00029684  0x00007aac setsect  0x00000001 , 0x0003ffff 
+ 00029685  0x00007aad setsect  0x00000002 , 0x0003ffcf 
+ 00029686  0x00007aae setsect  0x00000003 , 0x0003ffff 
+ 00029687  0x00007aaf istore  0x00000009 , 0x00000005 
+ 00029688  0x00007ab0 setsect  0x00000000 , 0x0003ffff 
+ 00029689  0x00007ab1 setsect  0x00000001 , 0x0003ffff 
+ 00029690  0x00007ab2 setsect  0x00000002 , 0x0003ffff 
+ 00029691  0x00007ab3 setsect  0x00000003 , 0x000003ff 
+ 00029692  0x00007ab4 istore  0x00000009 , 0x00000005 
+ 00029693  0x00007ab5 setsect  0x00000000 , 0x00000000 
+ 00029694  0x00007ab6 setsect  0x00000001 , 0x00000000 
+ 00029695  0x00007ab7 setsect  0x00000002 , 0x00000000 
+ 00029696  0x00007ab8 setsect  0x00000003 , 0x00000000 
+ 00029697  0x00007ab9 istore  0x00000009 , 0x00000005 
+ 00029698  0x00007aba setsect  0x00000000 , 0x00010000 
+ 00029699  0x00007abb setsect  0x00000001 , 0x00000000 
+ 00029700  0x00007abc setsect  0x00000002 , 0x0003f000 
+ 00029701  0x00007abd setsect  0x00000003 , 0x0003ffff 
+ 00029702  0x00007abe istore  0x00000009 , 0x00000005 
+ 00029703  0x00007abf setsect  0x00000000 , 0x000296ff 
+ 00029704  0x00007ac0 setsect  0x00000001 , 0x00022630 
+ 00029705  0x00007ac1 setsect  0x00000002 , 0x0003945d 
+ 00029706  0x00007ac2 setsect  0x00000003 , 0x0003d284 
+ 00029707  0x00007ac3 istore  0x00000009 , 0x00000005 
+ 00029708  0x00007ac4 setsect  0x00000000 , 0x000333a0 
+ 00029709  0x00007ac5 setsect  0x00000001 , 0x00004b7a 
+ 00029710  0x00007ac6 setsect  0x00000002 , 0x000037d8 
+ 00029711  0x00007ac7 setsect  0x00000003 , 0x0003c9dc 
+ 00029712  0x00007ac8 istore  0x00000009 , 0x00000005 
+ 00029713  0x00007ac9 setsect  0x00000000 , 0x0003a440 
+ 00029714  0x00007aca setsect  0x00000001 , 0x0001b958 
+ 00029715  0x00007acb setsect  0x00000002 , 0x00038bce 
+ 00029716  0x00007acc setsect  0x00000003 , 0x0001091f 
+ 00029717  0x00007acd istore  0x00000009 , 0x00000005 
+ 00029718  0x00007ace setsect  0x00000000 , 0x0002e12c 
+ 00029719  0x00007acf setsect  0x00000001 , 0x0001f47c 
+ 00029720  0x00007ad0 setsect  0x00000002 , 0x000356b1 
+ 00029721  0x00007ad1 setsect  0x00000003 , 0x0002fd47 
+ 00029722  0x00007ad2 istore  0x00000009 , 0x00000005 
+ 00029723  0x00007ad3 setsect  0x00000000 , 0x00006837 
+ 00029724  0x00007ad4 setsect  0x00000001 , 0x0002ed90 
+ 00029725  0x00007ad5 setsect  0x00000002 , 0x0001ecec 
+ 00029726  0x00007ad6 setsect  0x00000003 , 0x0001acc5 
+ 00029727  0x00007ad7 istore  0x00000009 , 0x00000005 
+ 00029728  0x00007ad8 setsect  0x00000000 , 0x00023357 
+ 00029729  0x00007ad9 setsect  0x00000001 , 0x00018af3 
+ 00029730  0x00007ada setsect  0x00000002 , 0x0000f9e1 
+ 00029731  0x00007adb setsect  0x00000003 , 0x000129f0 
+ 00029732  0x00007adc istore  0x00000009 , 0x00000005 
+ 00029733  0x00007add setsect  0x00000000 , 0x0002e7eb 
+ 00029734  0x00007ade setsect  0x00000001 , 0x0003e6e3 
+ 00029735  0x00007adf setsect  0x00000002 , 0x0003e1a7 
+ 00029736  0x00007ae0 setsect  0x00000003 , 0x00010b8b 
+ 00029737  0x00007ae1 istore  0x00000009 , 0x00000005 
+ 00029738  0x00007ae2 setsect  0x00000000 , 0x00024fe3 
+ 00029739  0x00007ae3 setsect  0x00000001 , 0x000020ef 
+ 00029740  0x00007ae4 setsect  0x00000002 , 0x0001b5a6 
+ 00029741  0x00007ae5 setsect  0x00000003 , 0x0000dc2f 
+ 00029742  0x00007ae6 istore  0x00000009 , 0x00000005 
+ 00029743  0x00007ae7 setsect  0x00000000 , 0x00013860 
+ 00029744  0x00007ae8 setsect  0x00000001 , 0x0002bd69 
+ 00029745  0x00007ae9 setsect  0x00000002 , 0x0000391a 
+ 00029746  0x00007aea setsect  0x00000003 , 0x0001b222 
+ 00029747  0x00007aeb istore  0x00000009 , 0x00000005 
+ 00029748  0x00007aec rtn 
+ 00029749  0x00007af5 branch  0x000074ea 
+ 00029750  0x00007af8 bpatchx  0x00000013 , 0x00004022 
+ 00029751  0x00007afd fetch  0x00000001 , 0x00004483 
+ 00029752  0x00007afe rtn  0x00000034 
+ 00029753  0x00007aff fetch  0x00000001 , 0x00004485 
+ 00029754  0x00007b00 rtneq  0x00000003 
+ 00029755  0x00007b03 fetch  0x00000001 , 0x00004484 
+ 00029756  0x00007b04 beq  0x00000000 , 0x000074ea 
+ 00029757  0x00007b05 rtn 
+ 00029758  0x00007b07 jam  0x00000000 , 0x00004484 
+ 00029759  0x00007b08 rtn 
+ 00029760  0x00007b0e bpatchx  0x00000014 , 0x00004022 
+ 00029761  0x00007b0f setarg  0x000005dc 
+ 00029762  0x00007b10 arg  0x000005d7 , 0x00000005 
+ 00029763  0x00007b11 isub  0x00000005 , 0x00000039 
+ 00029764  0x00007b12 call  0x00007ca3 
+ 00029765  0x00007b13 setarg  0x000044e8 
+ 00029766  0x00007b14 arg  0x000044e6 , 0x00000005 
+ 00029767  0x00007b15 isub  0x00000005 , 0x00000039 
+ 00029768  0x00007b16 branch  0x00007ca3 
+ 00029769  0x00007b1b call  0x00007464 
+ 00029770  0x00007b1c arg  0x000005fc , 0x00000011 
+ 00029771  0x00007b1d arg  0x0000048f , 0x00000005 
+ 00029772  0x00007b1e call  0x0000770a 
+ 00029773  0x00007b1f arg  0x000005dc , 0x00000011 
+ 00029774  0x00007b20 arg  0x0000044f , 0x00000005 
+ 00029775  0x00007b21 call  0x0000770a 
+ 00029776  0x00007b22 arg  0x0000044f , 0x00000011 
+ 00029777  0x00007b23 arg  0x000005dc , 0x00000012 
+ 00029778  0x00007b24 arg  0x0000044f , 0x00000005 
+ 00029779  0x00007b25 call  0x00007672 
+ 00029780  0x00007b26 arg  0x00000567 , 0x00000011 
+ 00029781  0x00007b27 arg  0x000005dc , 0x00000012 
+ 00029782  0x00007b28 arg  0x0000046f , 0x00000005 
+ 00029783  0x00007b29 call  0x00007672 
+ 00029784  0x00007b2a arg  0x0000046f , 0x00000011 
+ 00029785  0x00007b2b arg  0x0000044f , 0x00000012 
+ 00029786  0x00007b2c arg  0x0000044f , 0x00000005 
+ 00029787  0x00007b2d call  0x0000770e 
+ 00029788  0x00007b2e arg  0x0000042f , 0x00000011 
+ 00029789  0x00007b2f arg  0x0000044f , 0x00000012 
+ 00029790  0x00007b30 arg  0x0000042f , 0x00000005 
+ 00029791  0x00007b31 call  0x0000770e 
+ 00029792  0x00007b32 arg  0x00000020 , 0x00000039 
+ 00029793  0x00007b33 arg  0x0000048f , 0x00000011 
+ 00029794  0x00007b34 arg  0x0000042f , 0x00000012 
+ 00029795  0x00007b35 branch  0x00007d66 
+ 00029796  0x00007b38 arg  0x000005a7 , 0x00000011 
+ 00029797  0x00007b39 arg  0x0000042f , 0x00000005 
+ 00029798  0x00007b3a call  0x0000770a 
+ 00029799  0x00007b3b arg  0x00000587 , 0x00000011 
+ 00029800  0x00007b3c arg  0x0000044f , 0x00000005 
+ 00029801  0x00007b3d call  0x0000770a 
+ 00029802  0x00007b3e arg  0x0000044f , 0x00000011 
+ 00029803  0x00007b3f arg  0x00000587 , 0x00000012 
+ 00029804  0x00007b40 arg  0x0000044f , 0x00000005 
+ 00029805  0x00007b41 call  0x00007672 
+ 00029806  0x00007b42 arg  0x00000567 , 0x00000011 
+ 00029807  0x00007b43 arg  0x00000587 , 0x00000012 
+ 00029808  0x00007b44 arg  0x0000046f , 0x00000005 
+ 00029809  0x00007b45 call  0x00007672 
+ 00029810  0x00007b46 arg  0x0000046f , 0x00000011 
+ 00029811  0x00007b47 arg  0x0000044f , 0x00000012 
+ 00029812  0x00007b48 arg  0x0000044f , 0x00000005 
+ 00029813  0x00007b49 call  0x0000770e 
+ 00029814  0x00007b4a arg  0x0000042f , 0x00000011 
+ 00029815  0x00007b4b arg  0x0000044f , 0x00000012 
+ 00029816  0x00007b4c arg  0x0000042f , 0x00000005 
+ 00029817  0x00007b4d branch  0x00007727 
+ 00029818  0x00007b53 increase  0xffffffff , 0x00000007 
+ 00029819  0x00007b54 nrtn  0x00000002 
+ 00029820  0x00007b55 random  0x0000003f 
+ 00029821  0x00007b56 istore  0x00000002 , 0x00000005 
+ 00029822  0x00007b57 branch  0x0000747a 
+ 00029823  0x00007b59 increase  0xffffffff , 0x00000007 
+ 00029824  0x00007b5a nbranch  0x0000748a , 0x00000002 
+ 00029825  0x00007b5b ifetch  0x00000004 , 0x00000011 
+ 00029826  0x00007b5c copy  0x0000003f , 0x00000002 
+ 00029827  0x00007b5d ifetch  0x00000004 , 0x00000012 
+ 00029828  0x00007b5e iflip  0x00000002 , 0x0000003f 
+ 00029829  0x00007b5f nbranch  0x00007489 , 0x00000005 
+ 00029830  0x00007b60 increase  0x00000004 , 0x00000011 
+ 00029831  0x00007b61 increase  0x00000004 , 0x00000012 
+ 00029832  0x00007b62 branch  0x0000747f 
+ 00029833  0x00007b64 branch  0x00007dc6 
+ 00029834  0x00007b67 branch  0x00007dc8 
+ 00029835  0x00007b6d and  0x0000003f , 0x00000007 , 0x00000007 
+ 00029836  0x00007b6e rshift3  0x0000003f , 0x0000003f 
+ 00029837  0x00007b6f iadd  0x00000006 , 0x00000006 
+ 00029838  0x00007b70 ifetch  0x00000001 , 0x00000006 
+ 00029839  0x00007b71 qisolate0  0x0000003f 
+ 00029840  0x00007b72 rtn 
+ 00029841  0x00007b76 ifetch  0x00000008 , 0x00000006 
+ 00029842  0x00007b77 nrtn  0x00000034 
+ 00029843  0x00007b78 ifetch  0x00000008 , 0x00000006 
+ 00029844  0x00007b79 nrtn  0x00000034 
+ 00029845  0x00007b7a ifetch  0x00000008 , 0x00000006 
+ 00029846  0x00007b7b rtn 
+ 00029847  0x00007b81 ifetch  0x00000004 , 0x00000011 
+ 00029848  0x00007b82 iforce  0x00000002 
+ 00029849  0x00007b83 ifetch  0x00000004 , 0x00000012 
+ 00029850  0x00007b84 isub  0x00000002 , 0x0000003e 
+ 00029851  0x00007b85 nrtn  0x00000005 
+ 00029852  0x00007b86 increase  0x00000004 , 0x00000011 
+ 00029853  0x00007b87 increase  0x00000004 , 0x00000012 
+ 00029854  0x00007b88 loop  0x00007497 
+ 00029855  0x00007b89 rtn 
+ 00029856  0x00007b8c force  0x00000006 , 0x00000039 
+ 00029857  0x00007b8d increase  0x00000014 , 0x00000011 
+ 00029858  0x00007b8e increase  0x00000014 , 0x00000012 
+ 00029859  0x00007b90 ifetch  0x00000004 , 0x00000012 
+ 00029860  0x00007b91 iforce  0x00000002 
+ 00029861  0x00007b92 ifetch  0x00000004 , 0x00000011 
+ 00029862  0x00007b93 isub  0x00000002 , 0x0000003f 
+ 00029863  0x00007b94 nrtn  0x00000002 
+ 00029864  0x00007b95 nrtn  0x00000034 
+ 00029865  0x00007b96 increase  0xfffffffc , 0x00000011 
+ 00029866  0x00007b97 increase  0xfffffffc , 0x00000012 
+ 00029867  0x00007b98 loop  0x000074a3 
+ 00029868  0x00007b99 rtn 
+ 00029869  0x00007b9b force  0x00000006 , 0x00000039 
+ 00029870  0x00007b9c force  0x00000000 , 0x00000013 
+ 00029871  0x00007b9e ifetch  0x00000004 , 0x00000011 
+ 00029872  0x00007b9f iforce  0x00000002 
+ 00029873  0x00007ba0 ifetch  0x00000004 , 0x00000012 
+ 00029874  0x00007ba1 iadd  0x00000002 , 0x0000003f 
+ 00029875  0x00007ba2 iadd  0x00000013 , 0x0000003f 
+ 00029876  0x00007ba3 istore  0x00000004 , 0x00000005 
+ 00029877  0x00007ba4 isolate1  0x00000020 , 0x0000003f 
+ 00029878  0x00007ba5 setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029879  0x00007ba6 increase  0x00000004 , 0x00000011 
+ 00029880  0x00007ba7 increase  0x00000004 , 0x00000012 
+ 00029881  0x00007ba8 loop  0x000074af 
+ 00029882  0x00007ba9 rtn 
+ 00029883  0x00007bac force  0x00000006 , 0x00000039 
+ 00029884  0x00007bad force  0x00000000 , 0x00000013 
+ 00029885  0x00007baf ifetch  0x00000004 , 0x00000012 
+ 00029886  0x00007bb0 iforce  0x00000002 
+ 00029887  0x00007bb1 ifetch  0x00000004 , 0x00000011 
+ 00029888  0x00007bb2 isub  0x00000002 , 0x0000003f 
+ 00029889  0x00007bb3 isub  0x00000013 , 0x0000003f 
+ 00029890  0x00007bb4 istore  0x00000004 , 0x00000005 
+ 00029891  0x00007bb5 isolate1  0x00000020 , 0x0000003f 
+ 00029892  0x00007bb6 setflag  0x00000001 , 0x00000000 , 0x00000013 
+ 00029893  0x00007bb7 increase  0x00000004 , 0x00000011 
+ 00029894  0x00007bb8 increase  0x00000004 , 0x00000012 
+ 00029895  0x00007bb9 loop  0x000074bd 
+ 00029896  0x00007bba rtn 
+ 00029897  0x00007bbd force  0x00000006 , 0x00000039 
+ 00029898  0x00007bbe increase  0x00000014 , 0x00000011 
+ 00029899  0x00007bc0 force  0x00000000 , 0x00000013 
+ 00029900  0x00007bc2 ifetch  0x00000004 , 0x00000011 
+ 00029901  0x00007bc3 isolate1  0x00000000 , 0x0000003f 
+ 00029902  0x00007bc4 setflag  0x00000001 , 0x00000001 , 0x00000013 
+ 00029903  0x00007bc5 rshift  0x0000003f , 0x0000003f 
+ 00029904  0x00007bc6 isolate1  0x00000000 , 0x00000013 
+ 00029905  0x00007bc7 setflag  0x00000001 , 0x0000001f , 0x0000003f 
+ 00029906  0x00007bc8 istore  0x00000004 , 0x00000011 
+ 00029907  0x00007bc9 increase  0xfffffffc , 0x00000011 
+ 00029908  0x00007bca rshift  0x00000013 , 0x00000013 
+ 00029909  0x00007bcb loop  0x000074cc 
+ 00029910  0x00007bcc rtn 
+ 00029911  0x00007bce force  0x00000006 , 0x00000039 
+ 00029912  0x00007bcf force  0x00000000 , 0x00000013 
+ 00029913  0x00007bd1 ifetch  0x00000004 , 0x00000011 
+ 00029914  0x00007bd2 isolate1  0x0000001f , 0x0000003f 
+ 00029915  0x00007bd3 setflag  0x00000001 , 0x00000001 , 0x00000013 
+ 00029916  0x00007bd4 lshift  0x0000003f , 0x0000003f 
+ 00029917  0x00007bd5 isolate1  0x00000000 , 0x00000013 
+ 00029918  0x00007bd6 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00029919  0x00007bd7 istore  0x00000004 , 0x00000011 
+ 00029920  0x00007bd8 increase  0x00000004 , 0x00000011 
+ 00029921  0x00007bd9 rshift  0x00000013 , 0x00000013 
+ 00029922  0x00007bda loop  0x000074d9 
+ 00029923  0x00007bdb rtn 
+ 00029924  0x00007bdf force  0x00000006 , 0x00000039 
+ 00029925  0x00007be1 ifetch  0x00000004 , 0x00000006 
+ 00029926  0x00007be2 iforce  0x0000002f 
+ 00029927  0x00007be3 increase  0x00000001 , 0x00000038 
+ 00029928  0x00007be4 loop  0x000074e5 
+ 00029929  0x00007be5 rtn 
+ 00029930  0x00007bea bpatchx  0x00000015 , 0x00004022 
+ 00029931  0x00007beb fetch  0x00000001 , 0x00004483 
+ 00029932  0x00007bec nbranch  0x0000750b , 0x00000034 
+ 00029933  0x00007bef jam  0x00000000 , 0x00004484 
+ 00029934  0x00007bf0 jam  0x00000000 , 0x00004485 
+ 00029935  0x00007bf1 rtn 
+ 00029936  0x00007bf6 fetch  0x00000001 , 0x00004483 
+ 00029937  0x00007bf7 rtn  0x00000034 
+ 00029938  0x00007bf8 fetch  0x00000001 , 0x00004485 
+ 00029939  0x00007bf9 rtneq  0x00000003 
+ 00029940  0x00007bfa call  0x00007540 
+ 00029941  0x00007bfb branch  0x000074f0 
+ 00029942  0x00007c00 arg  0x00004486 , 0x00000005 
+ 00029943  0x00007c01 setsect  0x00000000 , 0x00001abd 
+ 00029944  0x00007c02 setsect  0x00000001 , 0x0001b34f 
+ 00029945  0x00007c03 setsect  0x00000002 , 0x00019b8a 
+ 00029946  0x00007c04 setsect  0x00000003 , 0x00026562 
+ 00029947  0x00007c05 istore  0x00000009 , 0x00000005 
+ 00029948  0x00007c06 setsect  0x00000000 , 0x000340b7 
+ 00029949  0x00007c07 setsect  0x00000001 , 0x00001efa 
+ 00029950  0x00007c08 setsect  0x00000002 , 0x0000aff6 
+ 00029951  0x00007c09 setsect  0x00000003 , 0x0000fd41 
+ 00029952  0x00007c0a istore  0x00000009 , 0x00000005 
+ 00029953  0x00007c0b setsect  0x00000000 , 0x0003d210 
+ 00029954  0x00007c0c setsect  0x00000001 , 0x00026cf8 
+ 00029955  0x00007c0d setsect  0x00000002 , 0x0003874c 
+ 00029956  0x00007c0e setsect  0x00000003 , 0x0003157c 
+ 00029957  0x00007c0f istore  0x00000009 , 0x00000005 
+ 00029958  0x00007c10 setsect  0x00000000 , 0x0002d4a3 
+ 00029959  0x00007c11 setsect  0x00000001 , 0x0003d27d 
+ 00029960  0x00007c12 setsect  0x00000002 , 0x00000003 
+ 00029961  0x00007c13 istore  0x00000005 , 0x00000005 
+ 00029962  0x00007c14 rtn 
+ 00029963  0x00007c18 fetch  0x00000001 , 0x00004485 
+ 00029964  0x00007c19 rtnne  0x00000000 
+ 00029965  0x00007c1a fetch  0x00000001 , 0x00004484 
+ 00029966  0x00007c1b rtnne  0x00000000 
+ 00029967  0x00007c1c call  0x000073e3 
+ 00029968  0x00007c1d arg  0x00004486 , 0x00000005 
+ 00029969  0x00007c1e force  0x0000000f , 0x00000007 
+ 00029970  0x00007c1f call  0x0000747a 
+ 00029971  0x00007c20 random  0x0000003f 
+ 00029972  0x00007c21 rshift  0x0000003f , 0x0000003f 
+ 00029973  0x00007c22 istore  0x00000002 , 0x00000005 
+ 00029974  0x00007c24 fetch  0x00000001 , 0x00004482 
+ 00029975  0x00007c25 ncall  0x000074f6 , 0x00000034 
+ 00029976  0x00007c27 arg  0x0000038f , 0x00000005 
+ 00029977  0x00007c28 arg  0x00004486 , 0x00000006 
+ 00029978  0x00007c29 call  0x00007c8f 
+ 00029979  0x00007c2b arg  0x0000026f , 0x00000005 
+ 00029980  0x00007c2c arg  0x00000587 , 0x00000006 
+ 00029981  0x00007c2d call  0x00007c83 
+ 00029982  0x00007c2f arg  0x000002af , 0x00000005 
+ 00029983  0x00007c30 call  0x00007c9f 
+ 00029984  0x00007c31 jam  0x00000001 , 0x000002af 
+ 00029985  0x00007c33 call  0x00007558 
+ 00029986  0x00007c34 jam  0x00000003 , 0x00004484 
+ 00029987  0x00007c35 rtn 
+ 00029988  0x00007c38 arg  0x000044a6 , 0x00000005 
+ 00029989  0x00007c39 arg  0x000002cf , 0x00000006 
+ 00029990  0x00007c3a call  0x00007c83 
+ 00029991  0x00007c3b jam  0x00000003 , 0x00004485 
+ 00029992  0x00007c3c jam  0x00000000 , 0x00004484 
+ 00029993  0x00007c3d rtn 
+ 00029994  0x00007c42 fetch  0x00000001 , 0x000005d7 
+ 00029995  0x00007c43 rtnne  0x00000000 
+ 00029996  0x00007c44 fetch  0x00000001 , 0x00004484 
+ 00029997  0x00007c45 rtnne  0x00000000 
+ 00029998  0x00007c47 arg  0x0000038f , 0x00000005 
+ 00029999  0x00007c48 arg  0x00004486 , 0x00000006 
+ 00030000  0x00007c49 call  0x00007c8f 
+ 00030001  0x00007c4b arg  0x0000026f , 0x00000005 
+ 00030002  0x00007c4c arg  0x000005dc , 0x00000006 
+ 00030003  0x00007c4d call  0x00007c83 
+ 00030004  0x00007c4f arg  0x000002af , 0x00000005 
+ 00030005  0x00007c50 call  0x00007c9f 
+ 00030006  0x00007c51 jam  0x00000001 , 0x000002af 
+ 00030007  0x00007c53 call  0x00007558 
+ 00030008  0x00007c54 jam  0x00000004 , 0x00004484 
+ 00030009  0x00007c55 rtn 
+ 00030010  0x00007c5a arg  0x0000061c , 0x00000005 
+ 00030011  0x00007c5b arg  0x000002cf , 0x00000006 
+ 00030012  0x00007c5c call  0x00007c8f 
+ 00030013  0x00007c5d jam  0x00000003 , 0x000005d7 
+ 00030014  0x00007c5e jam  0x00000000 , 0x00004484 
+ 00030015  0x00007c5f rtn 
+ 00030016  0x00007c64 fetch  0x00000001 , 0x00004483 
+ 00030017  0x00007c65 rtn  0x00000034 
+ 00030018  0x00007c66 fetch  0x00000001 , 0x00004484 
+ 00030019  0x00007c67 rtn  0x00000034 
+ 00030020  0x00007c68 increase  0x00000080 , 0x0000003f 
+ 00030021  0x00007c69 store  0x00000001 , 0x00004484 
+ 00030022  0x00007c6a rtnbit1  0x00000007 
+ 00030023  0x00007c6b fetch  0x00000002 , 0x0000020c 
+ 00030024  0x00007c6c branch  0x0000754a , 0x00000034 
+ 00030025  0x00007c6d branch  0x00007550 
+ 00030026  0x00007c70 bpatchx  0x00000016 , 0x00004022 
+ 00030027  0x00007c71 call  0x00007565 
+ 00030028  0x00007c72 fetch  0x00000001 , 0x00004484 
+ 00030029  0x00007c73 beq  0x00000003 , 0x00007524 
+ 00030030  0x00007c74 beq  0x00000004 , 0x0000753a 
+ 00030031  0x00007c75 rtn 
+ 00030032  0x00007c79 call  0x00007577 
+ 00030033  0x00007c7a fetch  0x00000002 , 0x0000020c 
+ 00030034  0x00007c7b increase  0xffffffff , 0x0000003f 
+ 00030035  0x00007c7c store  0x00000002 , 0x0000020c 
+ 00030036  0x00007c7d arg  0x0000038f , 0x00000006 
+ 00030037  0x00007c7e call  0x0000748b 
+ 00030038  0x00007c7f rtn  0x00000001 
+ 00030039  0x00007c80 branch  0x000075c8 
+ 00030040  0x00007c83 bpatchx  0x00000017 , 0x00004022 
+ 00030041  0x00007c84 setarg  0x00000100 
+ 00030042  0x00007c85 store  0x00000002 , 0x0000020c 
+ 00030043  0x00007c87 fetch  0x00000002 , 0x0000020c 
+ 00030044  0x00007c88 rtn  0x00000034 
+ 00030045  0x00007c89 increase  0xffffffff , 0x0000003f 
+ 00030046  0x00007c8a store  0x00000002 , 0x0000020c 
+ 00030047  0x00007c8b arg  0x0000038f , 0x00000006 
+ 00030048  0x00007c8c call  0x0000748b 
+ 00030049  0x00007c8d branch  0x0000755b , 0x00000001 
+ 00030050  0x00007c8e arg  0x0000026f , 0x00000006 
+ 00030051  0x00007c8f arg  0x0000032f , 0x00000005 
+ 00030052  0x00007c90 branch  0x00007c82 
+ 00030053  0x00007c94 arg  0x0000036f , 0x00000011 
+ 00030054  0x00007c95 arg  0x0000046f , 0x00000005 
+ 00030055  0x00007c96 call  0x00007634 
+ 00030056  0x00007c97 arg  0x0000046f , 0x00000011 
+ 00030057  0x00007c98 arg  0x0000040f , 0x00000005 
+ 00030058  0x00007c99 call  0x0000770a 
+ 00030059  0x00007c9a arg  0x0000032f , 0x00000011 
+ 00030060  0x00007c9b arg  0x0000040f , 0x00000012 
+ 00030061  0x00007c9c arg  0x000002cf , 0x00000005 
+ 00030062  0x00007c9d call  0x00007672 
+ 00030063  0x00007c9e arg  0x0000046f , 0x00000011 
+ 00030064  0x00007c9f arg  0x0000040f , 0x00000012 
+ 00030065  0x00007ca0 arg  0x0000044f , 0x00000005 
+ 00030066  0x00007ca1 call  0x00007672 
+ 00030067  0x00007ca2 arg  0x0000034f , 0x00000011 
+ 00030068  0x00007ca3 arg  0x0000044f , 0x00000012 
+ 00030069  0x00007ca4 arg  0x000002ef , 0x00000005 
+ 00030070  0x00007ca5 branch  0x00007672 
+ 00030071  0x00007ca8 arg  0x0000036f , 0x00000011 
+ 00030072  0x00007ca9 arg  0x0000044f , 0x00000005 
+ 00030073  0x00007caa call  0x0000770a 
+ 00030074  0x00007cab arg  0x0000044f , 0x00000011 
+ 00030075  0x00007cac arg  0x0000046f , 0x00000005 
+ 00030076  0x00007cad call  0x0000770a 
+ 00030077  0x00007caf arg  0x00000567 , 0x00000011 
+ 00030078  0x00007cb0 arg  0x0000046f , 0x00000012 
+ 00030079  0x00007cb1 arg  0x0000046f , 0x00000005 
+ 00030080  0x00007cb2 call  0x00007672 
+ 00030081  0x00007cb3 arg  0x0000032f , 0x00000011 
+ 00030082  0x00007cb4 arg  0x0000044f , 0x00000005 
+ 00030083  0x00007cb5 call  0x0000770a 
+ 00030084  0x00007cb7 arg  0x0000044f , 0x00000006 
+ 00030085  0x00007cb8 arg  0x0000040f , 0x00000005 
+ 00030086  0x00007cb9 call  0x00007c8f 
+ 00030087  0x00007cba arg  0x0000040f , 0x00000011 
+ 00030088  0x00007cbb call  0x00007711 
+ 00030089  0x00007cbc arg  0x0000044f , 0x00000011 
+ 00030090  0x00007cbd arg  0x0000040f , 0x00000012 
+ 00030091  0x00007cbe arg  0x0000044f , 0x00000005 
+ 00030092  0x00007cbf call  0x0000770e 
+ 00030093  0x00007cc1 arg  0x0000044f , 0x00000011 
+ 00030094  0x00007cc2 arg  0x0000046f , 0x00000012 
+ 00030095  0x00007cc3 arg  0x0000044f , 0x00000005 
+ 00030096  0x00007cc4 call  0x0000770e 
+ 00030097  0x00007cc6 arg  0x0000032f , 0x00000006 
+ 00030098  0x00007cc7 arg  0x0000040f , 0x00000005 
+ 00030099  0x00007cc8 call  0x00007c8f 
+ 00030100  0x00007cc9 arg  0x0000034f , 0x00000011 
+ 00030101  0x00007cca arg  0x0000046f , 0x00000005 
+ 00030102  0x00007ccb call  0x0000770a 
+ 00030103  0x00007ccc arg  0x0000040f , 0x00000011 
+ 00030104  0x00007ccd call  0x00007711 
+ 00030105  0x00007cce arg  0x0000040f , 0x00000011 
+ 00030106  0x00007ccf call  0x00007711 
+ 00030107  0x00007cd0 arg  0x0000040f , 0x00000011 
+ 00030108  0x00007cd1 arg  0x0000046f , 0x00000012 
+ 00030109  0x00007cd2 arg  0x0000040f , 0x00000005 
+ 00030110  0x00007cd3 call  0x00007672 
+ 00030111  0x00007cd4 arg  0x0000046f , 0x00000011 
+ 00030112  0x00007cd5 arg  0x0000042f , 0x00000005 
+ 00030113  0x00007cd6 call  0x0000770a 
+ 00030114  0x00007cd7 arg  0x0000042f , 0x00000011 
+ 00030115  0x00007cd8 call  0x00007711 
+ 00030116  0x00007cd9 arg  0x0000042f , 0x00000011 
+ 00030117  0x00007cda call  0x00007711 
+ 00030118  0x00007cdb arg  0x0000042f , 0x00000011 
+ 00030119  0x00007cdc call  0x00007711 
+ 00030120  0x00007cdd arg  0x0000034f , 0x00000006 
+ 00030121  0x00007cde arg  0x0000046f , 0x00000005 
+ 00030122  0x00007cdf call  0x00007c8f 
+ 00030123  0x00007ce0 arg  0x0000046f , 0x00000011 
+ 00030124  0x00007ce1 call  0x00007711 
+ 00030125  0x00007ce2 arg  0x0000046f , 0x00000011 
+ 00030126  0x00007ce3 arg  0x0000036f , 0x00000012 
+ 00030127  0x00007ce4 arg  0x0000036f , 0x00000005 
+ 00030128  0x00007ce5 call  0x00007672 
+ 00030129  0x00007ce8 arg  0x0000044f , 0x00000011 
+ 00030130  0x00007ce9 arg  0x0000046f , 0x00000005 
+ 00030131  0x00007cea call  0x0000770a 
+ 00030132  0x00007cec arg  0x0000046f , 0x00000011 
+ 00030133  0x00007ced arg  0x0000040f , 0x00000012 
+ 00030134  0x00007cee arg  0x0000046f , 0x00000005 
+ 00030135  0x00007cef call  0x00007727 
+ 00030136  0x00007cf0 arg  0x0000046f , 0x00000011 
+ 00030137  0x00007cf1 arg  0x0000040f , 0x00000012 
+ 00030138  0x00007cf2 arg  0x0000032f , 0x00000005 
+ 00030139  0x00007cf3 call  0x00007727 
+ 00030140  0x00007cf4 arg  0x0000040f , 0x00000011 
+ 00030141  0x00007cf5 arg  0x0000032f , 0x00000012 
+ 00030142  0x00007cf6 arg  0x0000046f , 0x00000005 
+ 00030143  0x00007cf7 call  0x00007727 
+ 00030144  0x00007cf8 arg  0x0000046f , 0x00000011 
+ 00030145  0x00007cf9 arg  0x0000044f , 0x00000012 
+ 00030146  0x00007cfa arg  0x0000046f , 0x00000005 
+ 00030147  0x00007cfb call  0x00007672 
+ 00030148  0x00007cfc arg  0x0000046f , 0x00000011 
+ 00030149  0x00007cfd arg  0x0000042f , 0x00000012 
+ 00030150  0x00007cfe arg  0x0000034f , 0x00000005 
+ 00030151  0x00007cff branch  0x00007727 
+ 00030152  0x00007d03 arg  0x000002af , 0x00000011 
+ 00030153  0x00007d04 arg  0x0000048f , 0x00000005 
+ 00030154  0x00007d05 call  0x0000770a 
+ 00030155  0x00007d06 arg  0x0000032f , 0x00000011 
+ 00030156  0x00007d07 arg  0x0000048f , 0x00000012 
+ 00030157  0x00007d08 arg  0x0000042f , 0x00000005 
+ 00030158  0x00007d09 call  0x00007672 
+ 00030159  0x00007d0c arg  0x000002af , 0x00000011 
+ 00030160  0x00007d0d arg  0x0000048f , 0x00000012 
+ 00030161  0x00007d0e arg  0x0000048f , 0x00000005 
+ 00030162  0x00007d0f call  0x00007672 
+ 00030163  0x00007d10 arg  0x0000034f , 0x00000011 
+ 00030164  0x00007d11 arg  0x0000048f , 0x00000012 
+ 00030165  0x00007d12 arg  0x0000040f , 0x00000005 
+ 00030166  0x00007d13 call  0x00007672 
+ 00030167  0x00007d16 arg  0x0000036f , 0x00000011 
+ 00030168  0x00007d17 arg  0x0000048f , 0x00000005 
+ 00030169  0x00007d18 call  0x0000770a 
+ 00030170  0x00007d19 arg  0x0000026f , 0x00000011 
+ 00030171  0x00007d1a arg  0x0000048f , 0x00000012 
+ 00030172  0x00007d1b arg  0x0000044f , 0x00000005 
+ 00030173  0x00007d1c call  0x00007672 
+ 00030174  0x00007d1e arg  0x0000036f , 0x00000011 
+ 00030175  0x00007d1f arg  0x0000048f , 0x00000012 
+ 00030176  0x00007d20 arg  0x0000048f , 0x00000005 
+ 00030177  0x00007d21 call  0x00007672 
+ 00030178  0x00007d22 arg  0x0000028f , 0x00000011 
+ 00030179  0x00007d23 arg  0x0000048f , 0x00000012 
+ 00030180  0x00007d24 arg  0x0000046f , 0x00000005 
+ 00030181  0x00007d25 call  0x00007672 
+ 00030182  0x00007d2a arg  0x0000042f , 0x00000012 
+ 00030183  0x00007d2b arg  0x0000044f , 0x00000011 
+ 00030184  0x00007d2c arg  0x0000048f , 0x00000005 
+ 00030185  0x00007d2d call  0x00007727 
+ 00030186  0x00007d2e arg  0x0000042f , 0x00000011 
+ 00030187  0x00007d2f arg  0x0000044f , 0x00000012 
+ 00030188  0x00007d30 arg  0x0000042f , 0x00000005 
+ 00030189  0x00007d31 call  0x0000770e 
+ 00030190  0x00007d34 arg  0x0000040f , 0x00000012 
+ 00030191  0x00007d35 arg  0x0000046f , 0x00000011 
+ 00030192  0x00007d36 arg  0x0000044f , 0x00000005 
+ 00030193  0x00007d37 call  0x00007727 
+ 00030194  0x00007d38 arg  0x0000040f , 0x00000011 
+ 00030195  0x00007d39 arg  0x0000046f , 0x00000012 
+ 00030196  0x00007d3a arg  0x0000040f , 0x00000005 
+ 00030197  0x00007d3b call  0x0000770e 
+ 00030198  0x00007d3c arg  0x0000040f , 0x00000011 
+ 00030199  0x00007d3d arg  0x0000048f , 0x00000012 
+ 00030200  0x00007d3e arg  0x0000040f , 0x00000005 
+ 00030201  0x00007d3f call  0x00007672 
+ 00030202  0x00007d40 arg  0x0000036f , 0x00000011 
+ 00030203  0x00007d41 arg  0x000002af , 0x00000012 
+ 00030204  0x00007d42 arg  0x0000046f , 0x00000005 
+ 00030205  0x00007d43 call  0x00007672 
+ 00030206  0x00007d44 arg  0x0000046f , 0x00000011 
+ 00030207  0x00007d45 arg  0x0000048f , 0x00000012 
+ 00030208  0x00007d46 arg  0x0000036f , 0x00000005 
+ 00030209  0x00007d47 call  0x00007672 
+ 00030210  0x00007d49 arg  0x0000048f , 0x00000011 
+ 00030211  0x00007d4a arg  0x0000048f , 0x00000005 
+ 00030212  0x00007d4b call  0x0000770a 
+ 00030213  0x00007d4c arg  0x0000048f , 0x00000011 
+ 00030214  0x00007d4d arg  0x0000042f , 0x00000012 
+ 00030215  0x00007d4e arg  0x0000046f , 0x00000005 
+ 00030216  0x00007d4f call  0x00007672 
+ 00030217  0x00007d50 arg  0x0000048f , 0x00000011 
+ 00030218  0x00007d51 arg  0x0000040f , 0x00000012 
+ 00030219  0x00007d52 arg  0x0000040f , 0x00000005 
+ 00030220  0x00007d53 call  0x00007672 
+ 00030221  0x00007d54 arg  0x0000044f , 0x00000011 
+ 00030222  0x00007d55 arg  0x0000032f , 0x00000005 
+ 00030223  0x00007d56 call  0x0000770a 
+ 00030224  0x00007d57 arg  0x0000032f , 0x00000011 
+ 00030225  0x00007d58 arg  0x0000046f , 0x00000012 
+ 00030226  0x00007d59 arg  0x0000032f , 0x00000005 
+ 00030227  0x00007d5a call  0x00007727 
+ 00030228  0x00007d5b arg  0x0000032f , 0x00000006 
+ 00030229  0x00007d5c arg  0x0000048f , 0x00000005 
+ 00030230  0x00007d5d call  0x00007c8f 
+ 00030231  0x00007d5e arg  0x0000048f , 0x00000011 
+ 00030232  0x00007d5f call  0x00007711 
+ 00030233  0x00007d60 arg  0x0000046f , 0x00000011 
+ 00030234  0x00007d61 arg  0x0000048f , 0x00000012 
+ 00030235  0x00007d62 arg  0x0000046f , 0x00000005 
+ 00030236  0x00007d63 call  0x00007727 
+ 00030237  0x00007d64 arg  0x0000046f , 0x00000011 
+ 00030238  0x00007d65 arg  0x0000044f , 0x00000012 
+ 00030239  0x00007d66 arg  0x0000044f , 0x00000005 
+ 00030240  0x00007d67 call  0x00007672 
+ 00030241  0x00007d68 arg  0x0000044f , 0x00000011 
+ 00030242  0x00007d69 arg  0x0000040f , 0x00000012 
+ 00030243  0x00007d6a arg  0x0000034f , 0x00000005 
+ 00030244  0x00007d6b call  0x00007727 
+ 00030245  0x00007d6c arg  0x0000034f , 0x00000011 
+ 00030246  0x00007d6d arg  0x00000547 , 0x00000012 
+ 00030247  0x00007d6e arg  0x0000034f , 0x00000005 
+ 00030248  0x00007d6f force  0x00000000 , 0x00000013 
+ 00030249  0x00007d70 fetch  0x00000001 , 0x0000034f 
+ 00030250  0x00007d71 isolate1  0x00000000 , 0x0000003f 
+ 00030251  0x00007d72 call  0x0000770c , 0x00000001 
+ 00030252  0x00007d73 copy  0x00000013 , 0x00000030 
+ 00030253  0x00007d74 arg  0x0000034f , 0x00000011 
+ 00030254  0x00007d75 call  0x0000773c 
+ 00030255  0x00007d76 fetch  0x00000001 , 0x0000036e 
+ 00030256  0x00007d77 isolate1  0x00000000 , 0x00000030 
+ 00030257  0x00007d78 setflag  0x00000001 , 0x00000007 , 0x0000003f 
+ 00030258  0x00007d79 store  0x00000001 , 0x0000036e 
+ 00030259  0x00007d7a rtn 
+ 00030260  0x00007d7d copy  0x00000005 , 0x0000000b 
+ 00030261  0x00007d7e arg  0x0000042f , 0x00000005 
+ 00030262  0x00007d7f call  0x00007c9f 
+ 00030263  0x00007d80 force  0x00000000 , 0x0000003f 
+ 00030264  0x00007d82 store  0x00000004 , 0x0000044f 
+ 00030265  0x00007d83 jam  0x00000001 , 0x0000042f 
+ 00030266  0x00007d84 arg  0x000003af , 0x00000005 
+ 00030267  0x00007d85 call  0x00007ca1 
+ 00030268  0x00007d86 arg  0x00000547 , 0x00000006 
+ 00030269  0x00007d87 arg  0x000003ef , 0x00000005 
+ 00030270  0x00007d88 call  0x00007c8f 
+ 00030271  0x00007d89 copy  0x00000011 , 0x00000006 
+ 00030272  0x00007d8a arg  0x0000040f , 0x00000005 
+ 00030273  0x00007d8b call  0x00007c8f 
+ 00030274  0x00007d92 arg  0x0000040f , 0x00000006 
+ 00030275  0x00007d93 call  0x00007746 
+ 00030276  0x00007d94 branch  0x0000766b , 0x00000034 
+ 00030277  0x00007d99 arg  0x0000040f , 0x00000011 
+ 00030278  0x00007d9a arg  0x0000042f , 0x00000012 
+ 00030279  0x00007d9b call  0x00007749 
+ 00030280  0x00007d9c arg  0x000003ef , 0x00000011 
+ 00030281  0x00007d9d arg  0x000003af , 0x00000012 
+ 00030282  0x00007d9e call  0x00007749 
+ 00030283  0x00007da0 arg  0x0000040f , 0x00000011 
+ 00030284  0x00007da1 arg  0x000003ef , 0x00000012 
+ 00030285  0x00007da2 call  0x00007742 
+ 00030286  0x00007da3 branch  0x0000765d , 0x00000002 
+ 00030287  0x00007da4 arg  0x000003ef , 0x00000011 
+ 00030288  0x00007da5 arg  0x0000040f , 0x00000012 
+ 00030289  0x00007da6 copy  0x00000011 , 0x00000005 
+ 00030290  0x00007da7 call  0x0000773a 
+ 00030291  0x00007da8 arg  0x0000042f , 0x00000011 
+ 00030292  0x00007da9 arg  0x000003af , 0x00000012 
+ 00030293  0x00007daa copy  0x00000012 , 0x00000005 
+ 00030294  0x00007dab call  0x0000770c 
+ 00030295  0x00007dac ifetch  0x00000001 , 0x00000011 
+ 00030296  0x00007dad iadd  0x00000013 , 0x00000013 
+ 00030297  0x00007dae ifetch  0x00000001 , 0x00000012 
+ 00030298  0x00007daf iadd  0x00000013 , 0x0000003f 
+ 00030299  0x00007db0 istore  0x00000001 , 0x00000012 
+ 00030300  0x00007db1 branch  0x00007642 
+ 00030301  0x00007db3 arg  0x0000040f , 0x00000011 
+ 00030302  0x00007db4 arg  0x000003ef , 0x00000012 
+ 00030303  0x00007db5 copy  0x00000011 , 0x00000005 
+ 00030304  0x00007db6 call  0x0000773a 
+ 00030305  0x00007db7 arg  0x000003af , 0x00000011 
+ 00030306  0x00007db8 arg  0x0000042f , 0x00000012 
+ 00030307  0x00007db9 copy  0x00000012 , 0x00000005 
+ 00030308  0x00007dba call  0x0000770c 
+ 00030309  0x00007dbb ifetch  0x00000001 , 0x00000011 
+ 00030310  0x00007dbc iadd  0x00000013 , 0x00000013 
+ 00030311  0x00007dbd ifetch  0x00000001 , 0x00000012 
+ 00030312  0x00007dbe iadd  0x00000013 , 0x0000003f 
+ 00030313  0x00007dbf istore  0x00000001 , 0x00000012 
+ 00030314  0x00007dc0 branch  0x00007642 
+ 00030315  0x00007dc3 arg  0x000003af , 0x00000011 
+ 00030316  0x00007dc4 copy  0x0000000b , 0x00000005 
+ 00030317  0x00007dc5 call  0x0000769b 
+ 00030318  0x00007dc7 arg  0x00000547 , 0x00000011 
+ 00030319  0x00007dc8 copy  0x0000000b , 0x00000012 
+ 00030320  0x00007dc9 copy  0x0000000b , 0x00000005 
+ 00030321  0x00007dca branch  0x00007727 
+ 00030322  0x00007dce copy  0x00000005 , 0x0000000b 
+ 00030323  0x00007dd0 force  0x00000000 , 0x00000038 
+ 00030324  0x00007dd2 arg  0x000003af , 0x00000005 
+ 00030325  0x00007dd3 call  0x00007ca1 
+ 00030326  0x00007dd4 arg  0x0000068f , 0x00000005 
+ 00030327  0x00007dd5 call  0x00007ca1 
+ 00030328  0x00007dd9 copy  0x00000011 , 0x00000006 
+ 00030329  0x00007ddb jam  0x00000000 , 0x0000068f 
+ 00030330  0x00007ddc setarg  0x00000000 
+ 00030331  0x00007ddd call  0x00007704 
+ 00030332  0x00007dde copy  0x00000012 , 0x00000006 
+ 00030333  0x00007ddf call  0x00007708 
+ 00030334  0x00007de2 force  0x00000000 , 0x00000007 
+ 00030335  0x00007de3 arg  0x000003af , 0x00000005 
+ 00030336  0x00007de7 arg  0x0000068f , 0x00000002 
+ 00030337  0x00007de8 copy  0x00000007 , 0x00000012 
+ 00030338  0x00007de9 lshift2  0x00000012 , 0x0000003f 
+ 00030339  0x00007deb iadd  0x00000002 , 0x00000012 
+ 00030340  0x00007dec force  0x00000000 , 0x00000002 
+ 00030341  0x00007ded force  0x00000000 , 0x00000013 
+ 00030342  0x00007df3 ifetch  0x00000004 , 0x00000005 
+ 00030343  0x00007df4 iforce  0x00000011 
+ 00030344  0x00007df7 ifetch  0x00000004 , 0x00000012 
+ 00030345  0x00007df8 copy  0x00000013 , 0x00000038 
+ 00030346  0x00007df9 imul32  0x0000002f , 0x0000003f 
+ 00030347  0x00007dfa iadd  0x00000011 , 0x0000003f 
+ 00030348  0x00007dfb iadd  0x00000002 , 0x0000003f 
+ 00030349  0x00007dfc istore  0x00000004 , 0x00000005 
+ 00030350  0x00007dfd rshift32  0x0000003f , 0x00000002 
+ 00030351  0x00007dfe increase  0x00000001 , 0x00000013 
+ 00030352  0x00007dff compare  0x00000008 , 0x00000013 , 0x000000ff 
+ 00030353  0x00007e00 nbranch  0x00007686 , 0x00000001 
+ 00030354  0x00007e02 deposit  0x00000002 
+ 00030355  0x00007e03 istore  0x00000004 , 0x00000005 
+ 00030356  0x00007e04 increase  0xffffffe0 , 0x00000005 
+ 00030357  0x00007e07 increase  0x00000001 , 0x00000007 
+ 00030358  0x00007e08 compare  0x00000008 , 0x00000007 , 0x000000ff 
+ 00030359  0x00007e09 nbranch  0x00007680 , 0x00000001 
+ 00030360  0x00007e0a arg  0x000003af , 0x00000011 
+ 00030361  0x00007e0b copy  0x0000000b , 0x00000005 
+ 00030362  0x00007e0c branch  0x0000769b 
+ 00030363  0x00007e0f bpatchx  0x00000018 , 0x00004023 
+ 00030364  0x00007e10 copy  0x00000005 , 0x0000000b 
+ 00030365  0x00007e11 copy  0x00000011 , 0x00000030 
+ 00030366  0x00007e12 arg  0x000003ef , 0x00000012 
+ 00030367  0x00007e13 copy  0x00000012 , 0x00000005 
+ 00030368  0x00007e14 call  0x00007c9d 
+ 00030369  0x00007e15 istore  0x00000008 , 0x00000005 
+ 00030370  0x00007e16 add  0x00000011 , 0x0000002c , 0x00000006 
+ 00030371  0x00007e17 call  0x00007c8b 
+ 00030372  0x00007e18 call  0x00007c85 
+ 00030373  0x00007e19 copy  0x00000012 , 0x00000011 
+ 00030374  0x00007e1a call  0x00007711 
+ 00030375  0x00007e1b arg  0x000003ef , 0x00000012 
+ 00030376  0x00007e1c copy  0x00000030 , 0x00000011 
+ 00030377  0x00007e1d copy  0x0000000b , 0x00000005 
+ 00030378  0x00007e1e call  0x0000770e 
+ 00030379  0x00007e20 arg  0x000003ef , 0x00000012 
+ 00030380  0x00007e21 copy  0x00000012 , 0x00000005 
+ 00030381  0x00007e22 call  0x00007c9d 
+ 00030382  0x00007e23 istore  0x00000008 , 0x00000005 
+ 00030383  0x00007e24 add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030384  0x00007e25 call  0x00007c91 
+ 00030385  0x00007e26 call  0x00007c9d 
+ 00030386  0x00007e27 copy  0x00000012 , 0x00000011 
+ 00030387  0x00007e28 call  0x00007711 
+ 00030388  0x00007e2c arg  0x000003ef , 0x00000012 
+ 00030389  0x00007e2d copy  0x0000000b , 0x00000011 
+ 00030390  0x00007e2e copy  0x00000011 , 0x00000005 
+ 00030391  0x00007e2f call  0x0000770e 
+ 00030392  0x00007e33 arg  0x000003ef , 0x00000012 
+ 00030393  0x00007e34 copy  0x00000012 , 0x00000005 
+ 00030394  0x00007e35 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030395  0x00007e36 call  0x00007c85 
+ 00030396  0x00007e37 call  0x00007c9d 
+ 00030397  0x00007e38 istore  0x00000008 , 0x00000005 
+ 00030398  0x00007e39 add  0x00000030 , 0x00000038 , 0x00000006 
+ 00030399  0x00007e3a call  0x00007c8b 
+ 00030400  0x00007e3b copy  0x0000000b , 0x00000011 
+ 00030401  0x00007e3c copy  0x00000011 , 0x00000005 
+ 00030402  0x00007e3d call  0x0000770e 
+ 00030403  0x00007e41 arg  0x000003ef , 0x00000012 
+ 00030404  0x00007e42 copy  0x00000012 , 0x00000005 
+ 00030405  0x00007e43 add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030406  0x00007e44 call  0x00007c85 
+ 00030407  0x00007e45 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030408  0x00007e46 call  0x00007c85 
+ 00030409  0x00007e47 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030410  0x00007e48 call  0x00007c86 
+ 00030411  0x00007e49 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030412  0x00007e4a call  0x00007c86 
+ 00030413  0x00007e4b copy  0x0000000b , 0x00000011 
+ 00030414  0x00007e4c copy  0x00000011 , 0x00000005 
+ 00030415  0x00007e4d call  0x0000770e 
+ 00030416  0x00007e50 arg  0x000003ef , 0x00000012 
+ 00030417  0x00007e51 copy  0x00000012 , 0x00000005 
+ 00030418  0x00007e52 add  0x00000030 , 0x0000002c , 0x00000006 
+ 00030419  0x00007e53 call  0x00007c85 
+ 00030420  0x00007e54 call  0x00007c9d 
+ 00030421  0x00007e55 istore  0x00000008 , 0x00000005 
+ 00030422  0x00007e56 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030423  0x00007e57 call  0x00007c86 
+ 00030424  0x00007e58 add  0x00000030 , 0x00000028 , 0x00000006 
+ 00030425  0x00007e59 call  0x00007c86 
+ 00030426  0x00007e5a copy  0x0000000b , 0x00000011 
+ 00030427  0x00007e5b copy  0x00000011 , 0x00000005 
+ 00030428  0x00007e5c call  0x00007727 
+ 00030429  0x00007e5f arg  0x000003ef , 0x00000012 
+ 00030430  0x00007e60 copy  0x00000012 , 0x00000005 
+ 00030431  0x00007e61 add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030432  0x00007e62 call  0x00007c8b 
+ 00030433  0x00007e63 call  0x00007c8b 
+ 00030434  0x00007e64 force  0x00000000 , 0x0000003f 
+ 00030435  0x00007e65 istore  0x00000008 , 0x00000005 
+ 00030436  0x00007e66 add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030437  0x00007e67 call  0x00007c86 
+ 00030438  0x00007e68 add  0x00000030 , 0x0000002c , 0x00000006 
+ 00030439  0x00007e69 call  0x00007c86 
+ 00030440  0x00007e6a copy  0x0000000b , 0x00000011 
+ 00030441  0x00007e6b copy  0x00000011 , 0x00000005 
+ 00030442  0x00007e6c call  0x00007727 
+ 00030443  0x00007e6f arg  0x000003ef , 0x00000012 
+ 00030444  0x00007e70 copy  0x00000012 , 0x00000005 
+ 00030445  0x00007e71 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030446  0x00007e72 call  0x00007c85 
+ 00030447  0x00007e73 add  0x00000030 , 0x00000020 , 0x00000006 
+ 00030448  0x00007e74 call  0x00007c85 
+ 00030449  0x00007e75 call  0x00007c9d 
+ 00030450  0x00007e76 add  0x00000030 , 0x00000030 , 0x00000006 
+ 00030451  0x00007e77 call  0x00007c86 
+ 00030452  0x00007e78 copy  0x0000000b , 0x00000011 
+ 00030453  0x00007e79 copy  0x00000011 , 0x00000005 
+ 00030454  0x00007e7a call  0x00007727 
+ 00030455  0x00007e7d arg  0x000003ef , 0x00000012 
+ 00030456  0x00007e7e copy  0x00000012 , 0x00000005 
+ 00030457  0x00007e7f add  0x00000030 , 0x00000038 , 0x00000006 
+ 00030458  0x00007e80 call  0x00007c8b 
+ 00030459  0x00007e81 call  0x00007c9d 
+ 00030460  0x00007e82 add  0x00000030 , 0x00000024 , 0x00000006 
+ 00030461  0x00007e83 call  0x00007c85 
+ 00030462  0x00007e84 call  0x00007c9d 
+ 00030463  0x00007e85 add  0x00000030 , 0x00000034 , 0x00000006 
+ 00030464  0x00007e86 call  0x00007c86 
+ 00030465  0x00007e87 copy  0x0000000b , 0x00000011 
+ 00030466  0x00007e88 copy  0x00000011 , 0x00000005 
+ 00030467  0x00007e89 branch  0x00007727 
+ 00030468  0x00007e8d force  0x00000020 , 0x00000039 
+ 00030469  0x00007e8e arg  0x0000068f , 0x00000005 
+ 00030470  0x00007e8f iadd  0x00000005 , 0x00000005 
+ 00030471  0x00007e90 branch  0x00007cdc 
+ 00030472  0x00007e93 force  0x00000008 , 0x00000039 
+ 00030473  0x00007e94 branch  0x000074e5 
+ 00030474  0x00007e97 copy  0x00000011 , 0x00000012 
+ 00030475  0x00007e98 branch  0x00007672 
+ 00030476  0x00007e9b force  0x00000008 , 0x00000039 
+ 00030477  0x00007e9c branch  0x000074ae 
+ 00030478  0x00007e9f call  0x0000770c 
+ 00030479  0x00007ea0 copy  0x00000005 , 0x00000011 
+ 00030480  0x00007ea1 branch  0x00007712 
+ 00030481  0x00007ea4 call  0x0000773f 
+ 00030482  0x00007ea6 isolate1  0x00000000 , 0x00000013 
+ 00030483  0x00007ea7 branch  0x0000771b , 0x00000001 
+ 00030484  0x00007ea8 arg  0x00000547 , 0x00000012 
+ 00030485  0x00007ea9 copy  0x00000011 , 0x00000013 
+ 00030486  0x00007eaa increase  0xffffffe0 , 0x00000011 
+ 00030487  0x00007eab call  0x00007742 
+ 00030488  0x00007eac nrtn  0x00000002 
+ 00030489  0x00007ead copy  0x00000013 , 0x00000011 
+ 00030490  0x00007eae branch  0x00007723 
+ 00030491  0x00007eb1 call  0x00007723 
+ 00030492  0x00007eb3 copy  0x00000011 , 0x00000013 
+ 00030493  0x00007eb4 increase  0xffffffe0 , 0x00000011 
+ 00030494  0x00007eb5 arg  0x00000547 , 0x00000012 
+ 00030495  0x00007eb6 call  0x00007742 
+ 00030496  0x00007eb7 nrtn  0x00000002 
+ 00030497  0x00007eb8 copy  0x00000013 , 0x00000011 
+ 00030498  0x00007eb9 branch  0x00007723 
+ 00030499  0x00007ebd increase  0xffffffe0 , 0x00000011 
+ 00030500  0x00007ebe arg  0x00000547 , 0x00000012 
+ 00030501  0x00007ebf copy  0x00000011 , 0x00000005 
+ 00030502  0x00007ec0 branch  0x0000773a 
+ 00030503  0x00007ec6 call  0x0000773a 
+ 00030504  0x00007ec8 branch  0x00007731 , 0x00000001 
+ 00030505  0x00007ecb add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030506  0x00007ecc arg  0x00000547 , 0x00000012 
+ 00030507  0x00007ecd call  0x00007742 
+ 00030508  0x00007ece nrtn  0x00000002 
+ 00030509  0x00007ecf arg  0x00000547 , 0x00000012 
+ 00030510  0x00007ed0 add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030511  0x00007ed2 copy  0x00000011 , 0x00000005 
+ 00030512  0x00007ed3 branch  0x0000773a 
+ 00030513  0x00007ed5 add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030514  0x00007ed6 arg  0x00000547 , 0x00000012 
+ 00030515  0x00007ed7 copy  0x00000011 , 0x00000005 
+ 00030516  0x00007ed8 call  0x0000770c 
+ 00030517  0x00007eda rtn  0x00000001 
+ 00030518  0x00007edb add  0x00000005 , 0xffffffe0 , 0x00000011 
+ 00030519  0x00007edc arg  0x00000547 , 0x00000012 
+ 00030520  0x00007edd copy  0x00000011 , 0x00000005 
+ 00030521  0x00007ede branch  0x0000770c 
+ 00030522  0x00007ee3 force  0x00000008 , 0x00000039 
+ 00030523  0x00007ee4 branch  0x000074bc 
+ 00030524  0x00007ee7 force  0x00000008 , 0x00000039 
+ 00030525  0x00007ee8 increase  0x0000001c , 0x00000011 
+ 00030526  0x00007ee9 branch  0x000074cb 
+ 00030527  0x00007eec force  0x00000008 , 0x00000039 
+ 00030528  0x00007eed force  0x00000000 , 0x00000013 
+ 00030529  0x00007eee branch  0x000074d9 
+ 00030530  0x00007ef1 force  0x00000008 , 0x00000039 
+ 00030531  0x00007ef2 increase  0x0000001c , 0x00000011 
+ 00030532  0x00007ef3 increase  0x0000001c , 0x00000012 
+ 00030533  0x00007ef4 branch  0x000074a3 
+ 00030534  0x00007ef8 ifetch  0x00000008 , 0x00000006 
+ 00030535  0x00007ef9 nrtn  0x00000034 
+ 00030536  0x00007efa branch  0x00007491 
+ 00030537  0x00007f00 copy  0x00000011 , 0x00000030 
+ 00030538  0x00007f02 copy  0x00000030 , 0x00000011 
+ 00030539  0x00007f03 ifetch  0x00000001 , 0x00000011 
+ 00030540  0x00007f04 isolate1  0x00000000 , 0x0000003f 
+ 00030541  0x00007f05 rtn  0x00000001 
+ 00030542  0x00007f06 call  0x0000773c 
+ 00030543  0x00007f07 ifetch  0x00000001 , 0x00000012 
+ 00030544  0x00007f08 isolate0  0x00000000 , 0x0000003f 
+ 00030545  0x00007f09 branch  0x00007759 , 0x00000001 
+ 00030546  0x00007f0a arg  0x00000547 , 0x00000011 
+ 00030547  0x00007f0b copy  0x00000012 , 0x00000005 
+ 00030548  0x00007f0c call  0x0000770c 
+ 00030549  0x00007f0d ifetch  0x00000001 , 0x00000012 
+ 00030550  0x00007f0e iadd  0x00000013 , 0x0000003f 
+ 00030551  0x00007f0f istore  0x00000001 , 0x00000012 
+ 00030552  0x00007f10 increase  0xffffffe0 , 0x00000012 
+ 00030553  0x00007f12 add  0x00000012 , 0x00000020 , 0x00000011 
+ 00030554  0x00007f13 force  0x00000009 , 0x00000039 
+ 00030555  0x00007f14 call  0x000074cb 
+ 00030556  0x00007f15 branch  0x0000774a 
+ 00030557  0x00007f19 rtn  0x0000002b 
+ 00030558  0x00007f1a call  0x000023ba 
+ 00030559  0x00007f1b call  0x00007764 
+ 00030560  0x00007f1c call  0x00007809 
+ 00030561  0x00007f1d branch  0x0000779a 
+ 00030562  0x00007f20 call  0x000077bd 
+ 00030563  0x00007f21 branch  0x000077f8 
+ 00030564  0x00007f24 fetch  0x00000001 , 0x00004503 
+ 00030565  0x00007f25 rtneq  0x000000ff 
+ 00030566  0x00007f26 iforce  0x00000002 
+ 00030567  0x00007f27 call  0x00006ef1 
+ 00030568  0x00007f28 fetcht  0x00000001 , 0x00004503 
+ 00030569  0x00007f29 call  0x00006eed 
+ 00030570  0x00007f2a nop  0x00000064 
+ 00030571  0x00007f2b fetcht  0x00000001 , 0x00004503 
+ 00030572  0x00007f2c call  0x00006ed7 
+ 00030573  0x00007f2d branch  0x0000776e 
+ 00030574  0x00007f32 bpatchx  0x00000019 , 0x00004023 
+ 00030575  0x00007f33 fetch  0x00000001 , 0x00004503 
+ 00030576  0x00007f34 rtneq  0x000000ff 
+ 00030577  0x00007f35 copy  0x0000003f , 0x00000002 
+ 00030578  0x00007f36 call  0x00006ee0 
+ 00030579  0x00007f37 nbranch  0x00007780 , 0x00000001 
+ 00030580  0x00007f3a call  0x0000778a 
+ 00030581  0x00007f3b fetch  0x00000002 , 0x00004500 
+ 00030582  0x00007f3c set1  0x0000000c , 0x0000003f 
+ 00030583  0x00007f3d store  0x00000002 , 0x00004500 
+ 00030584  0x00007f3e fetch  0x00000001 , 0x000044fb 
+ 00030585  0x00007f3f rtneq  0x00000000 
+ 00030586  0x00007f40 jam  0x00000000 , 0x000044fb 
+ 00030587  0x00007f42 fetch  0x00000001 , 0x00004502 
+ 00030588  0x00007f43 store  0x00000001 , 0x000044fa 
+ 00030589  0x00007f44 call  0x00007791 
+ 00030590  0x00007f45 jam  0x0000002c , 0x0000064d 
+ 00030591  0x00007f46 branch  0x00007819 
+ 00030592  0x00007f48 fetch  0x00000002 , 0x00004500 
+ 00030593  0x00007f49 set0  0x0000000c , 0x0000003f 
+ 00030594  0x00007f4a store  0x00000002 , 0x00004500 
+ 00030595  0x00007f4b fetch  0x00000001 , 0x000044fb 
+ 00030596  0x00007f4c rtneq  0x00000001 
+ 00030597  0x00007f4d jam  0x00000001 , 0x000044fb 
+ 00030598  0x00007f4f jam  0x00000000 , 0x000044fa 
+ 00030599  0x00007f50 call  0x00007793 
+ 00030600  0x00007f51 jam  0x0000002d , 0x0000064d 
+ 00030601  0x00007f52 branch  0x00007819 
+ 00030602  0x00007f55 fetch  0x00000001 , 0x000044fa 
+ 00030603  0x00007f56 rtn  0x00000034 
+ 00030604  0x00007f57 increase  0xffffffff , 0x0000003f 
+ 00030605  0x00007f58 store  0x00000001 , 0x000044fa 
+ 00030606  0x00007f59 nrtn  0x00000034 
+ 00030607  0x00007f5b jam  0x00000010 , 0x0000064d 
+ 00030608  0x00007f5c branch  0x00007819 
+ 00030609  0x00007f5f arg  0x00000007 , 0x00000007 
+ 00030610  0x00007f60 branch  0x000024be 
+ 00030611  0x00007f63 arg  0x00000007 , 0x00000007 
+ 00030612  0x00007f64 branch  0x000024c2 
+ 00030613  0x00007f6c bpatchx  0x0000001a , 0x00004023 
+ 00030614  0x00007f6d fetch  0x00000002 , 0x00004506 
+ 00030615  0x00007f6e mul32  0x00000011 , 0x0000000b , 0x00000012 
+ 00030616  0x00007f6f iadd  0x00000012 , 0x00000012 
+ 00030617  0x00007f70 rtn 
+ 00030618  0x00007f74 fetch  0x00000001 , 0x00004505 
+ 00030619  0x00007f75 rtn  0x00000034 
+ 00030620  0x00007f76 copy  0x0000003f , 0x00000039 
+ 00030621  0x00007f77 fetch  0x00000002 , 0x00004506 
+ 00030622  0x00007f78 copy  0x0000003f , 0x00000012 
+ 00030623  0x00007f7a add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030624  0x00007f7b ifetcht  0x00000001 , 0x00000013 
+ 00030625  0x00007f7c call  0x000077a5 
+ 00030626  0x00007f7d increase  0x0000000b , 0x00000012 
+ 00030627  0x00007f7e loop  0x0000779f 
+ 00030628  0x00007f7f rtn 
+ 00030629  0x00007f83 fetch  0x00000001 , 0x00004504 
+ 00030630  0x00007f84 branch  0x00006eed , 0x00000034 
+ 00030631  0x00007f85 branch  0x00006ef1 
+ 00030632  0x00007f89 call  0x00007795 
+ 00030633  0x00007f8a setarg  0x00000002 
+ 00030634  0x00007f8b istore  0x00000001 , 0x00000012 
+ 00030635  0x00007f8c call  0x000077f2 
+ 00030636  0x00007f8d branch  0x000077c9 
+ 00030637  0x00007f94 call  0x00007795 
+ 00030638  0x00007f95 setarg  0x00000003 
+ 00030639  0x00007f96 istore  0x00000001 , 0x00000012 
+ 00030640  0x00007f98 call  0x000077f2 
+ 00030641  0x00007f99 branch  0x000077c6 
+ 00030642  0x00007f9e call  0x00007795 
+ 00030643  0x00007f9f setarg  0x00000001 
+ 00030644  0x00007fa0 istore  0x00000001 , 0x00000012 
+ 00030645  0x00007fa1 setarg  0x000000ff 
+ 00030646  0x00007fa2 istore  0x00000001 , 0x00000005 
+ 00030647  0x00007fa3 branch  0x000077c6 
+ 00030648  0x00007fa9 call  0x00007795 
+ 00030649  0x00007faa arg  0x0000000b , 0x00000039 
+ 00030650  0x00007fab copy  0x00000013 , 0x00000006 
+ 00030651  0x00007fac copy  0x00000012 , 0x00000005 
+ 00030652  0x00007fad branch  0x00007cce 
+ 00030653  0x00007fb2 fetch  0x00000001 , 0x00004505 
+ 00030654  0x00007fb3 rtn  0x00000034 
+ 00030655  0x00007fb4 arg  0x00000000 , 0x00000011 
+ 00030656  0x00007fb6 call  0x000077cc 
+ 00030657  0x00007fb7 increase  0x00000001 , 0x00000011 
+ 00030658  0x00007fb8 fetch  0x00000001 , 0x00004505 
+ 00030659  0x00007fb9 isub  0x00000011 , 0x0000003e 
+ 00030660  0x00007fba rtn  0x00000005 
+ 00030661  0x00007fbb branch  0x000077c0 
+ 00030662  0x00007fbf add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030663  0x00007fc0 ifetcht  0x00000001 , 0x00000013 
+ 00030664  0x00007fc1 branch  0x00006eed 
+ 00030665  0x00007fc5 add  0x00000012 , 0x00000002 , 0x00000013 
+ 00030666  0x00007fc6 ifetcht  0x00000001 , 0x00000013 
+ 00030667  0x00007fc7 branch  0x00006ef1 
+ 00030668  0x00007fcc add  0x00000011 , 0x0000000b , 0x00000007 
+ 00030669  0x00007fcd call  0x00007cf1 
+ 00030670  0x00007fce nrtn  0x00000034 
+ 00030671  0x00007fd0 call  0x00007795 
+ 00030672  0x00007fd2 ifetch  0x00000001 , 0x00000012 
+ 00030673  0x00007fd4 beq  0x00000002 , 0x000077c9 
+ 00030674  0x00007fd5 beq  0x00000003 , 0x000077c6 
+ 00030675  0x00007fd6 beq  0x00000000 , 0x000077c6 
+ 00030676  0x00007fd7 beq  0x00000005 , 0x000077e0 
+ 00030677  0x00007fd9 call  0x000077c9 
+ 00030678  0x00007fda add  0x00000012 , 0x00000007 , 0x00000013 
+ 00030679  0x00007fdb call  0x00007c4b 
+ 00030680  0x00007fdc ifetch  0x00000002 , 0x00000013 
+ 00030681  0x00007fdd call  0x00007d7b 
+ 00030682  0x00007fde call  0x00007c57 
+ 00030683  0x00007fdf setarg  0x00000005 
+ 00030684  0x00007fe0 istore  0x00000001 , 0x00000012 
+ 00030685  0x00007fe1 add  0x00000012 , 0x00000003 , 0x00000013 
+ 00030686  0x00007fe2 ifetch  0x00000002 , 0x00000013 
+ 00030687  0x00007fe3 branch  0x000077f0 
+ 00030688  0x00007fe7 call  0x000077c6 
+ 00030689  0x00007fe8 add  0x00000012 , 0x00000009 , 0x00000013 
+ 00030690  0x00007fe9 call  0x00007c4b 
+ 00030691  0x00007fea ifetch  0x00000002 , 0x00000013 
+ 00030692  0x00007feb call  0x00007d7b 
+ 00030693  0x00007fec call  0x00007c57 
+ 00030694  0x00007fee add  0x00000012 , 0x00000001 , 0x00000013 
+ 00030695  0x00007fef ifetch  0x00000001 , 0x00000013 
+ 00030696  0x00007ff0 beq  0x000000ff , 0x000077ec 
+ 00030697  0x00007ff1 increase  0xffffffff , 0x0000003f 
+ 00030698  0x00007ff2 istore  0x00000001 , 0x00000013 
+ 00030699  0x00007ff3 branch  0x000077ad , 0x00000034 
+ 00030700  0x00007ff5 setarg  0x00000004 
+ 00030701  0x00007ff6 istore  0x00000001 , 0x00000012 
+ 00030702  0x00007ff7 add  0x00000012 , 0x00000005 , 0x00000013 
+ 00030703  0x00007ff8 ifetch  0x00000002 , 0x00000013 
+ 00030704  0x00007ffa add  0x00000011 , 0x0000000b , 0x00000007 
+ 00030705  0x00007ffb branch  0x00007ce3 
+ 00030706  0x00007ffe setarg  0x00000000 
+ 00030707  0x00007fff branch  0x000077f0 
+ 00030708  0x00008006 setarg  0x00001000 
+ 00030709  0x00008007 lshift16  0x0000003f , 0x0000003f 
+ 00030710  0x00008008 iadd  0x00000012 , 0x00000012 
+ 00030711  0x00008009 rtn 
+ 00030712  0x0000800c bpatchx  0x0000001b , 0x00004023 
+ 00030713  0x0000800d arg  0x00000000 , 0x00000011 
+ 00030714  0x0000800e fetcht  0x00000004 , 0x000044fc 
+ 00030715  0x0000800f copy  0x00000022 , 0x00000012 
+ 00030716  0x00008010 copy  0x00000012 , 0x0000003f 
+ 00030717  0x00008011 isub  0x00000002 , 0x0000003e 
+ 00030718  0x00008012 ncall  0x000077f4 , 0x00000002 
+ 00030719  0x00008014 copy  0x00000012 , 0x0000003f 
+ 00030720  0x00008015 increase  0x000000a0 , 0x00000002 
+ 00030721  0x00008016 increase  0x000000a0 , 0x00000002 
+ 00030722  0x00008017 isub  0x00000002 , 0x0000003e 
+ 00030723  0x00008018 nbranch  0x0000780c , 0x00000002 
+ 00030724  0x00008019 increase  0x00000001 , 0x00000011 
+ 00030725  0x0000801a and  0x00000011 , 0x0000000f , 0x0000003f 
+ 00030726  0x0000801b nbranch  0x000077ff , 0x00000034 
+ 00030727  0x0000801c arg  0x00000000 , 0x00000011 
+ 00030728  0x0000801d call  0x00007812 
+ 00030729  0x0000801f copy  0x00000022 , 0x0000003f 
+ 00030730  0x00008020 store  0x00000004 , 0x000044fc 
+ 00030731  0x00008021 rtn 
+ 00030732  0x00008023 copy  0x00000011 , 0x0000003f 
+ 00030733  0x00008024 rtn  0x00000034 
+ 00030734  0x00008025 increase  0xffffff60 , 0x00000002 
+ 00030735  0x00008026 increase  0xffffff60 , 0x00000002 
+ 00030736  0x00008027 set0  0x0000001c , 0x00000002 
+ 00030737  0x00008028 storet  0x00000004 , 0x000044fc 
+ 00030738  0x0000802a branch  0x00003749 
+ 00030739  0x00008032 jam  0x00000001 , 0x000044e8 
+ 00030740  0x00008034 fetch  0x00000001 , 0x000044e9 
+ 00030741  0x00008035 nbranch  0x00007814 , 0x00000034 
+ 00030742  0x00008036 rtn 
+ 00030743  0x00008039 jam  0x00000000 , 0x000044e8 
+ 00030744  0x0000803a rtn 
+ 00030745  0x0000803f bpatchx  0x0000001c , 0x00004023 
+ 00030746  0x00008040 fetch  0x00000001 , 0x000043cf 
+ 00030747  0x00008041 beq  0x0000000f , 0x00004a1d 
+ 00030748  0x00008042 call  0x00007813 
+ 00030749  0x00008043 copy  0x00000011 , 0x0000003f 
+ 00030750  0x00008044 store  0x00000004 , 0x00000662 
+ 00030751  0x00008045 arg  0x000044ea , 0x00000011 
+ 00030752  0x00008046 call  0x00007d8d 
+ 00030753  0x00008047 fetch  0x00000004 , 0x00000662 
+ 00030754  0x00008048 copy  0x0000003f , 0x00000011 
+ 00030755  0x00008049 branch  0x00007817 
+ 00030756  0x0000804c bpatchx  0x0000001d , 0x00004023 
+ 00030757  0x0000804d call  0x00007813 
+ 00030758  0x0000804e copy  0x00000011 , 0x0000003f 
+ 00030759  0x0000804f store  0x00000004 , 0x00000662 
+ 00030760  0x00008050 arg  0x000044f2 , 0x00000011 
+ 00030761  0x00008051 call  0x00007d8d 
+ 00030762  0x00008052 fetch  0x00000004 , 0x00000662 
+ 00030763  0x00008053 copy  0x0000003f , 0x00000011 
+ 00030764  0x00008054 branch  0x00007817 
+ 00030765  0x00008057 setarg  0x00000000 
+ 00030766  0x00008058 store  0x00000008 , 0x000044f2 
+ 00030767  0x00008059 store  0x00000008 , 0x000044ea 
+ 00030768  0x0000805a rtn 
+ 00030769  0x0000805d bpatchx  0x0000001e , 0x00004023 
+ 00030770  0x0000805e fetch  0x00000001 , 0x00004114 
+ 00030771  0x0000805f nrtn  0x00000034 
+ 00030772  0x00008060 arg  0x000044f2 , 0x00000011 
+ 00030773  0x00008061 call  0x00007da5 
+ 00030774  0x00008062 rtn  0x00000034 
+ 00030775  0x00008063 jam  0x00000000 , 0x0000064c 
+ 00030776  0x00008064 call  0x0000783c 
+ 00030777  0x00008065 fetch  0x00000001 , 0x0000064c 
+ 00030778  0x00008066 branch  0x00007831 , 0x00000034 
+ 00030779  0x00008067 rtn 
+ 00030780  0x0000806a call  0x00007813 
+ 00030781  0x0000806b arg  0x000044f2 , 0x00000011 
+ 00030782  0x0000806c call  0x00007d99 
+ 00030783  0x0000806d copy  0x0000003f , 0x00000002 
+ 00030784  0x0000806e call  0x00007817 
+ 00030785  0x0000806f bpatchx  0x0000001f , 0x00004023 
+ 00030786  0x00008070 copy  0x00000002 , 0x0000003f 
+ 00030787  0x00008071 rtn  0x00000034 
+ 00030788  0x00008072 beq  0x0000000d , 0x00007860 
+ 00030789  0x00008073 beq  0x0000000e , 0x00007866 
+ 00030790  0x00008074 beq  0x0000000f , 0x0000786b 
+ 00030791  0x00008075 beq  0x00000010 , 0x00007871 
+ 00030792  0x00008076 beq  0x00000013 , 0x0000787b 
+ 00030793  0x00008077 beq  0x00000014 , 0x0000787d 
+ 00030794  0x00008078 beq  0x00000015 , 0x0000787f 
+ 00030795  0x00008079 beq  0x00000016 , 0x00007889 
+ 00030796  0x0000807a beq  0x00000017 , 0x0000788c 
+ 00030797  0x0000807b beq  0x00000018 , 0x0000788e 
+ 00030798  0x0000807c beq  0x00000019 , 0x00007891 
+ 00030799  0x0000807e store  0x00000001 , 0x0000064d 
+ 00030800  0x00008082 fetch  0x00000001 , 0x0000064d 
+ 00030801  0x00008083 bmark0  0x00000009 , 0x00007859 
+ 00030802  0x00008084 bpatchx  0x00000020 , 0x00004024 
+ 00030803  0x00008085 fetch  0x00000001 , 0x0000064d 
+ 00030804  0x00008086 beq  0x00000011 , 0x00007876 
+ 00030805  0x00008087 beq  0x0000001b , 0x00007899 
+ 00030806  0x00008088 beq  0x00000012 , 0x0000787a 
+ 00030807  0x00008089 beq  0x0000001f , 0x00006e95 
+ 00030808  0x0000808a rtn 
+ 00030809  0x0000808d store  0x00000001 , 0x0000064d 
+ 00030810  0x0000808e call  0x0000205d 
+ 00030811  0x0000808f branch  0x0000785e , 0x00000005 
+ 00030812  0x00008090 call  0x00002062 
+ 00030813  0x00008091 nrtn  0x00000005 
+ 00030814  0x00008093 jam  0x00000001 , 0x0000064c 
+ 00030815  0x00008094 branch  0x00007824 
+ 00030816  0x0000809c jam  0x00000001 , 0x0000438c 
+ 00030817  0x0000809d jam  0x00000000 , 0x0000438f 
+ 00030818  0x0000809e fetch  0x00000002 , 0x00004500 
+ 00030819  0x0000809f set1  0x0000000b , 0x0000003f 
+ 00030820  0x000080a0 store  0x00000002 , 0x00004500 
+ 00030821  0x000080a1 rtn 
+ 00030822  0x000080a6 fetch  0x00000002 , 0x00004500 
+ 00030823  0x000080a7 set0  0x0000000b , 0x0000003f 
+ 00030824  0x000080a8 store  0x00000002 , 0x00004500 
+ 00030825  0x000080a9 jam  0x00000000 , 0x0000438c 
+ 00030826  0x000080aa rtn 
+ 00030827  0x000080af jam  0x00000001 , 0x0000438c 
+ 00030828  0x000080b0 jam  0x00000001 , 0x0000438f 
+ 00030829  0x000080b1 fetch  0x00000002 , 0x00004500 
+ 00030830  0x000080b2 set1  0x0000000b , 0x0000003f 
+ 00030831  0x000080b3 store  0x00000002 , 0x00004500 
+ 00030832  0x000080b4 rtn 
+ 00030833  0x000080b9 fetch  0x00000002 , 0x00004500 
+ 00030834  0x000080ba set0  0x0000000b , 0x0000003f 
+ 00030835  0x000080bb store  0x00000002 , 0x00004500 
+ 00030836  0x000080bc jam  0x00000000 , 0x0000438c 
+ 00030837  0x000080bd rtn 
+ 00030838  0x000080c2 setarg  0x00000014 
+ 00030839  0x000080c3 store  0x00000002 , 0x00000196 
+ 00030840  0x000080c4 store  0x00000002 , 0x000042f7 
+ 00030841  0x000080c5 branch  0x000030a3 
+ 00030842  0x000080ca branch  0x00002e71 
+ 00030843  0x000080cf arg  0x00000000 , 0x00000011 
+ 00030844  0x000080d0 branch  0x000077ad 
+ 00030845  0x000080d5 arg  0x00000000 , 0x00000011 
+ 00030846  0x000080d6 branch  0x000077a8 
+ 00030847  0x000080db arg  0x00000000 , 0x00000011 
+ 00030848  0x000080dc call  0x00007795 
+ 00030849  0x000080dd ifetch  0x00000001 , 0x00000012 
+ 00030850  0x000080de beq  0x00000001 , 0x00007886 
+ 00030851  0x000080df beq  0x00000004 , 0x00007886 
+ 00030852  0x000080e0 beq  0x00000005 , 0x00007886 
+ 00030853  0x000080e1 branch  0x000077b2 
+ 00030854  0x000080e4 ifetch  0x00000001 , 0x00000006 
+ 00030855  0x000080e5 rtneq  0x000000ff 
+ 00030856  0x000080e6 branch  0x000077b2 
+ 00030857  0x000080eb jam  0x00000001 , 0x00004347 
+ 00030858  0x000080ec jam  0x0000001b , 0x00004114 
+ 00030859  0x000080ef rtn 
+ 00030860  0x000080f4 jam  0x00000001 , 0x00004347 
+ 00030861  0x000080f5 rtn 
+ 00030862  0x000080fa jam  0x00000000 , 0x00004347 
+ 00030863  0x000080fb jam  0x00000000 , 0x00004114 
+ 00030864  0x000080fc rtn 
+ 00030865  0x00008101 fetch  0x00000002 , 0x000043de 
+ 00030866  0x00008102 call  0x00007d7b 
+ 00030867  0x00008103 fetch  0x00000001 , 0x00004503 
+ 00030868  0x00008104 beq  0x000000ff , 0x00007897 
+ 00030869  0x00008105 copy  0x0000003f , 0x00000002 
+ 00030870  0x00008106 call  0x00006ed7 
+ 00030871  0x00008108 call  0x0000782d 
+ 00030872  0x00008109 branch  0x000023ff 
+ 00030873  0x0000810e branch  0x00002eb3 
+ 00030874  0x00008114 fetch  0x00000001 , 0x00004500 
+ 00030875  0x00008115 rtnbit0  0x0000000c 
+ 00030876  0x00008116 rtn 
+ 00030877  0x0000811c fetch  0x00000002 , 0x00004404 
+ 00030878  0x0000811d add  0x0000003f , 0x00000002 , 0x00000005 
+ 00030879  0x0000811e setarg  0x00000000 
+ 00030880  0x0000811f istore  0x00000003 , 0x00000005 
+ 00030881  0x00008120 rtn 
+ 00030882  0x00008125 bpatchx  0x00000021 , 0x00004024 
+ 00030883  0x00008126 call  0x00007dbe 
+ 00030884  0x00008127 call  0x000078ee 
+ 00030885  0x00008128 rtn  0x00000034 
+ 00030886  0x00008129 fetch  0x00000002 , 0x00004404 
+ 00030887  0x0000812a add  0x0000003f , 0x00000002 , 0x00000012 
+ 00030888  0x0000812b ifetcht  0x00000001 , 0x00000012 
+ 00030889  0x0000812c increase  0x00000001 , 0x00000002 
+ 00030890  0x0000812d istoret  0x00000001 , 0x00000012 
+ 00030891  0x0000812f ifetcht  0x00000001 , 0x0000003f 
+ 00030892  0x00008130 copy  0x00000002 , 0x00000039 
+ 00030893  0x00008131 add  0x0000003f , 0x00000004 , 0x00000012 
+ 00030894  0x00008132 ifetch  0x00000001 , 0x00000012 
+ 00030895  0x00008133 imul32  0x00000002 , 0x0000003f 
+ 00030896  0x00008134 iadd  0x00000006 , 0x00000005 
+ 00030897  0x00008135 copy  0x00000011 , 0x00000006 
+ 00030898  0x00008137 call  0x00007cdc 
+ 00030899  0x00008138 call  0x000078f2 
+ 00030900  0x00008139 pincrease  0xffffffff 
+ 00030901  0x0000813a ifetcht  0x00000001 , 0x00000012 
+ 00030902  0x0000813b increase  0x00000001 , 0x00000002 
+ 00030903  0x0000813c iand  0x00000002 , 0x00000002 
+ 00030904  0x0000813d istoret  0x00000001 , 0x00000012 
+ 00030905  0x0000813e branch  0x00007dbc 
+ 00030906  0x00008144 bpatchx  0x00000022 , 0x00004024 
+ 00030907  0x00008145 call  0x00007dbe 
+ 00030908  0x00008146 call  0x000078ea 
+ 00030909  0x00008147 rtn  0x00000034 
+ 00030910  0x00008148 fetch  0x00000002 , 0x00004404 
+ 00030911  0x00008149 add  0x0000003f , 0x00000002 , 0x00000012 
+ 00030912  0x0000814a ifetcht  0x00000001 , 0x00000012 
+ 00030913  0x0000814b increase  0xffffffff , 0x00000002 
+ 00030914  0x0000814c istoret  0x00000001 , 0x00000012 
+ 00030915  0x0000814d ifetcht  0x00000001 , 0x0000003f 
+ 00030916  0x0000814e copy  0x00000002 , 0x00000039 
+ 00030917  0x0000814f add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030918  0x00008150 ifetch  0x00000001 , 0x00000012 
+ 00030919  0x00008151 imul32  0x00000002 , 0x0000003f 
+ 00030920  0x00008152 iadd  0x00000006 , 0x00000006 
+ 00030921  0x00008153 increase  0x00000001 , 0x00000006 
+ 00030922  0x00008154 copy  0x00000011 , 0x00000005 
+ 00030923  0x00008155 branch  0x000078b2 
+ 00030924  0x0000815d call  0x00007dbe 
+ 00030925  0x0000815e call  0x000078ea 
+ 00030926  0x0000815f rtn  0x00000034 
+ 00030927  0x00008160 fetch  0x00000002 , 0x00004404 
+ 00030928  0x00008161 ifetcht  0x00000001 , 0x0000003f 
+ 00030929  0x00008162 copy  0x00000002 , 0x00000039 
+ 00030930  0x00008163 add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030931  0x00008164 ifetch  0x00000001 , 0x00000012 
+ 00030932  0x00008165 imul32  0x00000002 , 0x0000003f 
+ 00030933  0x00008166 iadd  0x00000006 , 0x00000006 
+ 00030934  0x00008167 increase  0x00000001 , 0x00000006 
+ 00030935  0x00008168 copy  0x00000006 , 0x00000012 
+ 00030936  0x00008169 copy  0x00000011 , 0x00000005 
+ 00030937  0x0000816a call  0x00007cdc 
+ 00030938  0x0000816b branch  0x00007dbc 
+ 00030939  0x0000816e call  0x00007dbe 
+ 00030940  0x0000816f call  0x000078ea 
+ 00030941  0x00008170 rtn  0x00000034 
+ 00030942  0x00008171 fetch  0x00000002 , 0x00004404 
+ 00030943  0x00008172 ifetcht  0x00000001 , 0x0000003f 
+ 00030944  0x00008173 copy  0x00000002 , 0x00000039 
+ 00030945  0x00008174 add  0x0000003f , 0x00000003 , 0x00000012 
+ 00030946  0x00008175 ifetch  0x00000001 , 0x00000012 
+ 00030947  0x00008176 imul32  0x00000002 , 0x0000003f 
+ 00030948  0x00008177 iadd  0x00000006 , 0x00000006 
+ 00030949  0x00008178 add  0x00000006 , 0x00000002 , 0x00000005 
+ 00030950  0x00008179 copy  0x00000011 , 0x00000006 
+ 00030951  0x0000817a increase  0xffffffff , 0x00000039 
+ 00030952  0x0000817b call  0x00007cdc 
+ 00030953  0x0000817c branch  0x00007dbc 
+ 00030954  0x00008180 fetch  0x00000002 , 0x00004404 
+ 00030955  0x00008181 add  0x0000003f , 0x00000002 , 0x00000006 
+ 00030956  0x00008182 ifetch  0x00000001 , 0x00000006 
+ 00030957  0x00008183 rtn 
+ 00030958  0x00008187 call  0x000078f2 
+ 00030959  0x00008188 ifetcht  0x00000001 , 0x00000006 
+ 00030960  0x00008189 isub  0x00000002 , 0x0000003f 
+ 00030961  0x0000818a rtn 
+ 00030962  0x0000818e fetch  0x00000002 , 0x00004404 
+ 00030963  0x0000818f add  0x0000003f , 0x00000001 , 0x00000006 
+ 00030964  0x00008190 ifetch  0x00000001 , 0x00000006 
+ 00030965  0x00008191 rtn 
+ 00030966  0x0000819a bpatchx  0x00000023 , 0x00004024 
+ 00030967  0x0000819b fetch  0x00000001 , 0x00008c22 
+ 00030968  0x0000819c isolate1  0x00000003 , 0x0000003f 
+ 00030969  0x0000819d call  0x00007905 , 0x00000001 
+ 00030970  0x0000819e fetch  0x00000002 , 0x00008c22 
+ 00030971  0x0000819f store  0x00000002 , 0x00008c22 
+ 00030972  0x000081a0 store  0x00000002 , 0x000006e7 
+ 00030973  0x000081a1 call  0x00007963 
+ 00030974  0x000081a2 call  0x00007994 
+ 00030975  0x000081a3 call  0x00007b8a 
+ 00030976  0x000081a4 call  0x00007bd3 
+ 00030977  0x000081a5 branch  0x0000795b 
+ 00030978  0x000081a8 bpatchx  0x00000024 , 0x00004024 
+ 00030979  0x000081a9 call  0x00007384 
+ 00030980  0x000081aa call  0x00007922 
+ 00030981  0x000081ac jam  0x00000000 , 0x00008c00 
+ 00030982  0x000081ad nop  0x00002710 
+ 00030983  0x000081ae jam  0x00000000 , 0x00008c12 
+ 00030984  0x000081af fetch  0x00000002 , 0x00008050 
+ 00030985  0x000081b0 set0  0x0000000a , 0x0000003f 
+ 00030986  0x000081b1 store  0x00000002 , 0x00008050 
+ 00030987  0x000081b2 jam  0x00000021 , 0x00008c10 
+ 00030988  0x000081b3 jam  0x0000009d , 0x00008c11 
+ 00030989  0x000081b4 jam  0x0000003c , 0x00008c00 
+ 00030990  0x000081b5 setarg  0x00000741 
+ 00030991  0x000081b6 store  0x00000002 , 0x00008c02 
+ 00030992  0x000081b7 store  0x00000002 , 0x00008c06 
+ 00030993  0x000081b8 setarg  0x00000781 
+ 00030994  0x000081b9 store  0x00000002 , 0x00008c04 
+ 00030995  0x000081ba jam  0x00000080 , 0x00008c12 
+ 00030996  0x000081bb jam  0x00000000 , 0x00008c01 
+ 00030997  0x000081bc jam  0x000000ff , 0x00008c22 
+ 00030998  0x000081bd setarg  0x0000093d 
+ 00030999  0x000081be arg  0x0000084b , 0x00000005 
+ 00031000  0x000081bf isub  0x00000005 , 0x00000039 
+ 00031001  0x000081c0 branch  0x00007ca3 
+ 00031002  0x000081c3 fetcht  0x00000001 , 0x0000084a 
+ 00031003  0x000081c4 branch  0x00006ed7 
+ 00031004  0x000081c6 fetch  0x00000001 , 0x000008ec 
+ 00031005  0x000081c7 rtn  0x00000034 
+ 00031006  0x000081c8 fetcht  0x00000001 , 0x0000084a 
+ 00031007  0x000081c9 call  0x00006ee0 
+ 00031008  0x000081ca branch  0x00007905 , 0x00000001 
+ 00031009  0x000081cb rtn 
+ 00031010  0x000081ce jam  0x00000002 , 0x00000849 
+ 00031011  0x000081cf setarg  0x00000000 
+ 00031012  0x000081d0 store  0x00000001 , 0x00000784 
+ 00031013  0x000081d1 store  0x00000002 , 0x00000843 
+ 00031014  0x000081d2 pincrease  0x00000001 
+ 00031015  0x000081d3 store  0x00000002 , 0x00000845 
+ 00031016  0x000081d4 pincrease  0x00000001 
+ 00031017  0x000081d5 store  0x00000002 , 0x00000847 
+ 00031018  0x000081d6 arg  0x000007d8 , 0x00000005 
+ 00031019  0x000081d7 setarg  0x00030404 
+ 00031020  0x000081d8 istore  0x00000003 , 0x00000005 
+ 00031021  0x000081d9 setarg  0x00000409 
+ 00031022  0x000081da istore  0x00000002 , 0x00000005 
+ 00031023  0x000081db arg  0x000007dd , 0x00000005 
+ 00031024  0x000081dc setsect  0x00000000 , 0x00015906 
+ 00031025  0x000081dd setsect  0x00000001 , 0x000210d2 
+ 00031026  0x000081de setsect  0x00000002 , 0x00010494 
+ 00031027  0x000081df setsect  0x00000003 , 0x00000001 
+ 00031028  0x000081e0 istore  0x00000009 , 0x00000005 
+ 00031029  0x000081e1 arg  0x000007fb , 0x00000005 
+ 00031030  0x000081e2 setsect  0x00000000 , 0x0001570f 
+ 00031031  0x000081e3 setsect  0x00000001 , 0x00015c9a 
+ 00031032  0x000081e4 setsect  0x00000002 , 0x000256c6 
+ 00031033  0x000081e5 setsect  0x00000003 , 0x0001cdcd 
+ 00031034  0x000081e6 istore  0x00000009 , 0x00000005 
+ 00031035  0x000081e7 setsect  0x00000000 , 0x00014420 
+ 00031036  0x000081e8 setsect  0x00000001 , 0x00025d99 
+ 00031037  0x000081e9 setsect  0x00000002 , 0x00025636 
+ 00031038  0x000081ea setsect  0x00000003 , 0x00000001 
+ 00031039  0x000081eb istore  0x00000007 , 0x00000005 
+ 00031040  0x000081ec arg  0x00000819 , 0x00000005 
+ 00031041  0x000081ed setsect  0x00000000 , 0x0001620a 
+ 00031042  0x000081ee setsect  0x00000001 , 0x00000c8c 
+ 00031043  0x000081ef setsect  0x00000002 , 0x00030333 
+ 00031044  0x000081f0 setsect  0x00000003 , 0x0000c0c0 
+ 00031045  0x000081f1 istore  0x00000009 , 0x00000005 
+ 00031046  0x000081f2 setsect  0x00000000 , 0x00003130 
+ 00031047  0x000081f3 istore  0x00000002 , 0x00000005 
+ 00031048  0x000081f4 setarg  0x000092aa 
+ 00031049  0x000081f5 store  0x00000002 , 0x00000785 
+ 00031050  0x000081f6 setarg  0x00009307 
+ 00031051  0x000081f7 store  0x00000002 , 0x00000787 
+ 00031052  0x000081f8 arg  0x000093fb , 0x00000006 
+ 00031053  0x000081f9 arg  0x00000789 , 0x00000005 
+ 00031054  0x000081fa arg  0x00000013 , 0x00000039 
+ 00031055  0x000081fb call  0x00007cdc 
+ 00031056  0x000081fc arg  0x0000940e , 0x00000006 
+ 00031057  0x000081fd arg  0x0000079c , 0x00000005 
+ 00031058  0x000081fe arg  0x0000003c , 0x00000039 
+ 00031059  0x000081ff call  0x00007cdc 
+ 00031060  0x00008201 fetch  0x00000002 , 0x00000837 
+ 00031061  0x00008202 branch  0x00007d7b 
+ 00031062  0x00008205 fetch  0x00000001 , 0x00000839 
+ 00031063  0x00008206 rtn  0x00000034 
+ 00031064  0x00008207 store  0x00000001 , 0x000007be 
+ 00031065  0x00008208 store  0x00000001 , 0x000007d7 
+ 00031066  0x00008209 rtn 
+ 00031067  0x0000820c arg  0x00000001 , 0x00000007 
+ 00031068  0x0000820d call  0x00007cf1 
+ 00031069  0x0000820e nrtn  0x00000034 
+ 00031070  0x0000820f fetch  0x00000001 , 0x000008ed 
+ 00031071  0x00008210 nrtn  0x00000034 
+ 00031072  0x00008211 fetch  0x00000001 , 0x000008ec 
+ 00031073  0x00008212 ncall  0x00007c3a , 0x00000034 
+ 00031074  0x00008213 rtn 
+ 00031075  0x00008216 fetch  0x00000001 , 0x000006e7 
+ 00031076  0x00008217 bbit1  0x00000002 , 0x00007966 
+ 00031077  0x00008218 rtn 
+ 00031078  0x0000821b call  0x0000796b 
+ 00031079  0x0000821c call  0x00007cf0 
+ 00031080  0x0000821d setarg  0x00000280 
+ 00031081  0x0000821e arg  0x00000001 , 0x00000007 
+ 00031082  0x0000821f branch  0x00007ce3 
+ 00031083  0x00008222 fetch  0x00000001 , 0x000008de 
+ 00031084  0x00008223 bne  0x00000002 , 0x00007970 
+ 00031085  0x00008224 jam  0x00000000 , 0x000008ed 
+ 00031086  0x00008225 jam  0x00000000 , 0x000008ee 
+ 00031087  0x00008226 rtn 
+ 00031088  0x00008229 fetch  0x00000001 , 0x000008f0 
+ 00031089  0x0000822a rtn  0x00000034 
+ 00031090  0x0000822b jam  0x00000000 , 0x000008f0 
+ 00031091  0x0000822c jam  0x00000002 , 0x000008de 
+ 00031092  0x0000822d jam  0x00000001 , 0x000008ec 
+ 00031093  0x0000822e rtn 
+ 00031094  0x00008231 fetch  0x00000001 , 0x000006e7 
+ 00031095  0x00008232 bbit1  0x00000000 , 0x000079a1 
+ 00031096  0x00008233 rtn 
+ 00031097  0x00008236 fetchr  0x0000000a , 0x00000002 , 0x00008c02 
+ 00031098  0x00008237 fetchr  0x00000010 , 0x00000002 , 0x00008c04 
+ 00031099  0x00008238 fetchr  0x00000003 , 0x00000002 , 0x00008c06 
+ 00031100  0x00008239 ifetch  0x00000002 , 0x00000003 
+ 00031101  0x0000823a rshift8  0x0000003f , 0x00000002 
+ 00031102  0x0000823b rshift4  0x00000002 , 0x00000002 
+ 00031103  0x0000823c arg  0x00000fff , 0x00000006 
+ 00031104  0x0000823d iand  0x00000006 , 0x00000039 
+ 00031105  0x0000823e storer  0x00000039 , 0x00000002 , 0x000006ea 
+ 00031106  0x0000823f rtn 
+ 00031107  0x00008243 fetch  0x00000001 , 0x00008c25 
+ 00031108  0x00008244 rtnbit1  0x00000006 
+ 00031109  0x00008245 call  0x00007979 
+ 00031110  0x00008247 ifetch  0x00000001 , 0x00000003 
+ 00031111  0x00008248 istore  0x00000001 , 0x00000005 
+ 00031112  0x00008249 loop  0x00007986 
+ 00031113  0x0000824a storer  0x00000003 , 0x00000002 , 0x00008c06 
+ 00031114  0x0000824b rtn 
+ 00031115  0x0000824e arg  0x0000093d , 0x00000005 
+ 00031116  0x0000824f call  0x00007986 
+ 00031117  0x00008250 arg  0x00000941 , 0x00000002 
+ 00031118  0x00008251 storet  0x00000002 , 0x00008c0e 
+ 00031119  0x00008252 fetch  0x00000001 , 0x0000093e 
+ 00031120  0x00008253 pincrease  0x00000006 
+ 00031121  0x00008254 istore  0x00000001 , 0x00000002 
+ 00031122  0x00008255 jam  0x00000008 , 0x00008c18 
+ 00031123  0x00008256 rtn 
+ 00031124  0x0000825a bpatchx  0x00000025 , 0x00004024 
+ 00031125  0x0000825b fetch  0x00000001 , 0x000006e7 
+ 00031126  0x0000825c rtnbit0  0x00000005 
+ 00031127  0x0000825d call  0x00007979 
+ 00031128  0x0000825e compare  0x0000000d , 0x00000002 , 0x000000ff 
+ 00031129  0x0000825f branch  0x0000798b , 0x00000001 
+ 00031130  0x00008260 arg  0x0000084b , 0x00000005 
+ 00031131  0x00008261 call  0x00007986 
+ 00031132  0x00008262 fetch  0x00000001 , 0x000006ea 
+ 00031133  0x00008263 beq  0x00000000 , 0x00007976 
+ 00031134  0x00008264 beq  0x00000001 , 0x000079a8 
+ 00031135  0x00008265 sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00031136  0x00008266 rtn  0x00000002 
+ 00031137  0x00008268 bpatchx  0x00000026 , 0x00004024 
+ 00031138  0x00008269 set0  0x00000023 , 0x00000000 
+ 00031139  0x0000826a fetch  0x00000001 , 0x0000084b 
+ 00031140  0x0000826b and_into  0x00000080 , 0x0000003f 
+ 00031141  0x0000826c beq  0x00000080 , 0x000079ac 
+ 00031142  0x0000826d beq  0x00000000 , 0x000079b4 
+ 00031143  0x0000826e branch  0x0000233e 
+ 00031144  0x00008271 fetch  0x00000001 , 0x0000084b 
+ 00031145  0x00008272 rtnbit1  0x00000007 
+ 00031146  0x00008273 call  0x00007b5e 
+ 00031147  0x00008274 branch  0x000079db 
+ 00031148  0x00008278 fetch  0x00000001 , 0x0000084b 
+ 00031149  0x00008279 rshift4  0x0000003f , 0x0000003f 
+ 00031150  0x0000827a rshift  0x0000003f , 0x0000003f 
+ 00031151  0x0000827b and_into  0x00000003 , 0x0000003f 
+ 00031152  0x0000827c beq  0x00000000 , 0x000079bc 
+ 00031153  0x0000827d beq  0x00000001 , 0x000079c2 
+ 00031154  0x0000827e beq  0x00000002 , 0x000079c7 
+ 00031155  0x0000827f branch  0x0000233e 
+ 00031156  0x00008282 fetch  0x00000001 , 0x0000084b 
+ 00031157  0x00008283 rshift4  0x0000003f , 0x0000003f 
+ 00031158  0x00008284 rshift  0x0000003f , 0x0000003f 
+ 00031159  0x00008285 and_into  0x00000003 , 0x0000003f 
+ 00031160  0x00008286 beq  0x00000000 , 0x000079c8 
+ 00031161  0x00008287 beq  0x00000001 , 0x000079d0 
+ 00031162  0x00008288 beq  0x00000002 , 0x000079d5 
+ 00031163  0x00008289 branch  0x0000233e 
+ 00031164  0x0000828c fetch  0x00000001 , 0x0000084c 
+ 00031165  0x0000828d beq  0x00000008 , 0x000079dd 
+ 00031166  0x0000828e beq  0x00000006 , 0x000079f3 
+ 00031167  0x0000828f beq  0x0000000a , 0x00007a38 
+ 00031168  0x00008290 beq  0x00000000 , 0x00007a4a 
+ 00031169  0x00008291 branch  0x000079d6 
+ 00031170  0x00008294 fetch  0x00000001 , 0x0000084c 
+ 00031171  0x00008295 beq  0x00000002 , 0x00007a7f 
+ 00031172  0x00008296 beq  0x00000001 , 0x00007a83 
+ 00031173  0x00008297 beq  0x00000003 , 0x00007a95 
+ 00031174  0x00008298 branch  0x000079d6 
+ 00031175  0x0000829b branch  0x000079d6 
+ 00031176  0x0000829e fetch  0x00000001 , 0x0000084c 
+ 00031177  0x0000829f beq  0x00000001 , 0x00007a9f 
+ 00031178  0x000082a0 beq  0x00000003 , 0x00007acf 
+ 00031179  0x000082a1 beq  0x00000005 , 0x00007afb 
+ 00031180  0x000082a2 beq  0x00000009 , 0x00007b14 
+ 00031181  0x000082a3 beq  0x0000000b , 0x00007b2f 
+ 00031182  0x000082a4 beq  0x00000007 , 0x000079d6 
+ 00031183  0x000082a5 branch  0x000079d6 
+ 00031184  0x000082a8 fetch  0x00000001 , 0x0000084c 
+ 00031185  0x000082a9 beq  0x0000000a , 0x00007b40 
+ 00031186  0x000082aa beq  0x00000009 , 0x00007b52 
+ 00031187  0x000082ab beq  0x0000000b , 0x00007b70 
+ 00031188  0x000082ac branch  0x000079d6 
+ 00031189  0x000082af branch  0x000079d6 
+ 00031190  0x000082b2 bpatchx  0x00000027 , 0x00004024 
+ 00031191  0x000082b3 fetch  0x00000001 , 0x00008c19 
+ 00031192  0x000082b4 set1  0x00000000 , 0x0000003f 
+ 00031193  0x000082b5 store  0x00000001 , 0x00008c19 
+ 00031194  0x000082b6 branch  0x000079db 
+ 00031195  0x000082b9 jam  0x00000001 , 0x00008c1b 
+ 00031196  0x000082ba rtn 
+ 00031197  0x000082bd fetch  0x00000001 , 0x0000084b 
+ 00031198  0x000082be bne  0x00000080 , 0x000079d6 
+ 00031199  0x000082bf fetch  0x00000001 , 0x0000084f 
+ 00031200  0x000082c0 bne  0x00000000 , 0x000079d6 
+ 00031201  0x000082c1 fetch  0x00000001 , 0x00000850 
+ 00031202  0x000082c2 bne  0x00000000 , 0x000079d6 
+ 00031203  0x000082c3 fetch  0x00000001 , 0x00000851 
+ 00031204  0x000082c4 bne  0x00000001 , 0x000079d6 
+ 00031205  0x000082c5 fetch  0x00000001 , 0x00000852 
+ 00031206  0x000082c6 bne  0x00000000 , 0x000079d6 
+ 00031207  0x000082c7 fetch  0x00000001 , 0x0000084d 
+ 00031208  0x000082c8 bne  0x00000000 , 0x000079d6 
+ 00031209  0x000082c9 fetch  0x00000001 , 0x0000084e 
+ 00031210  0x000082ca bne  0x00000000 , 0x000079d6 
+ 00031211  0x000082cb fetch  0x00000001 , 0x00000849 
+ 00031212  0x000082cc beq  0x00000004 , 0x000079ef 
+ 00031213  0x000082cd beq  0x00000003 , 0x000079f1 
+ 00031214  0x000082ce branch  0x000079d6 
+ 00031215  0x000082d1 arg  0x00000001 , 0x00000012 
+ 00031216  0x000082d2 branch  0x00007a64 
+ 00031217  0x000082d5 arg  0x00000001 , 0x00000012 
+ 00031218  0x000082d6 branch  0x00007a62 
+ 00031219  0x000082d9 bpatchx  0x00000028 , 0x00004025 
+ 00031220  0x000082db fetch  0x00000001 , 0x0000084e 
+ 00031221  0x000082dc beq  0x00000001 , 0x00007a06 
+ 00031222  0x000082dd beq  0x00000002 , 0x00007a1f 
+ 00031223  0x000082de beq  0x00000003 , 0x00007a22 
+ 00031224  0x000082df beq  0x00000021 , 0x000079fb 
+ 00031225  0x000082e0 beq  0x00000022 , 0x00007a30 
+ 00031226  0x000082e1 branch  0x000079d6 
+ 00031227  0x000082e4 jam  0x00000000 , 0x000008db 
+ 00031228  0x000082e5 fetch  0x00000001 , 0x0000084f 
+ 00031229  0x000082e6 beq  0x00000000 , 0x00007a00 
+ 00031230  0x000082e7 beq  0x00000001 , 0x00007a03 
+ 00031231  0x000082e8 branch  0x000079d6 
+ 00031232  0x000082eb fetchr  0x00000012 , 0x00000001 , 0x000007af 
+ 00031233  0x000082ec arg  0x000007af , 0x00000011 
+ 00031234  0x000082ed branch  0x00007b7f 
+ 00031235  0x000082f0 fetchr  0x00000012 , 0x00000001 , 0x000007c8 
+ 00031236  0x000082f1 arg  0x000007c8 , 0x00000011 
+ 00031237  0x000082f2 branch  0x00007b7f 
+ 00031238  0x000082f8 fetch  0x00000001 , 0x000008ef 
+ 00031239  0x000082f9 ncall  0x00007a17 , 0x00000034 
+ 00031240  0x000082fa setarg  0x00000789 
+ 00031241  0x000082fb fetcht  0x00000001 , 0x00000789 
+ 00031242  0x000082fd store  0x00000002 , 0x000008e6 
+ 00031243  0x000082fe storet  0x00000001 , 0x000008e8 
+ 00031244  0x000082ff fetch  0x00000001 , 0x00000851 
+ 00031245  0x00008300 isub  0x00000002 , 0x0000003e 
+ 00031246  0x00008301 nbranch  0x00007a15 , 0x00000002 
+ 00031247  0x00008303 fetch  0x00000001 , 0x000008e8 
+ 00031248  0x00008305 iforce  0x00000012 
+ 00031249  0x00008306 fetch  0x00000002 , 0x000008e6 
+ 00031250  0x00008307 add  0x0000003f , 0x00000001 , 0x0000003f 
+ 00031251  0x00008308 iforce  0x00000011 
+ 00031252  0x00008309 branch  0x00007b7f 
+ 00031253  0x0000830b fetch  0x00000001 , 0x00000851 
+ 00031254  0x0000830c branch  0x00007a10 
+ 00031255  0x0000830f fetch  0x00000001 , 0x00008c01 
+ 00031256  0x00008310 ncall  0x00007a1b , 0x00000034 
+ 00031257  0x00008311 jam  0x00000000 , 0x000008ef 
+ 00031258  0x00008312 rtn 
+ 00031259  0x00008314 fetch  0x00000001 , 0x00008c01 
+ 00031260  0x00008315 set1  0x00000007 , 0x0000003f 
+ 00031261  0x00008316 store  0x00000001 , 0x00008c01 
+ 00031262  0x00008317 rtn 
+ 00031263  0x0000831a setarg  0x0000079c 
+ 00031264  0x0000831b fetcht  0x00000001 , 0x0000079c 
+ 00031265  0x0000831c branch  0x00007a0a 
+ 00031266  0x0000831f fetch  0x00000001 , 0x0000084d 
+ 00031267  0x00008320 sub  0x0000003f , 0x00000003 , 0x0000003e 
+ 00031268  0x00008321 nbranch  0x000079d6 , 0x00000002 
+ 00031269  0x00008322 fetch  0x00000001 , 0x0000084d 
+ 00031270  0x00008323 arg  0x000007d8 , 0x00000011 
+ 00031271  0x00008324 beq  0x00000000 , 0x00007b7d 
+ 00031272  0x00008325 set1  0x00000023 , 0x00000000 
+ 00031273  0x00008326 arg  0x000007dd , 0x00000011 
+ 00031274  0x00008327 beq  0x00000001 , 0x00007b7d 
+ 00031275  0x00008328 arg  0x000007fb , 0x00000011 
+ 00031276  0x00008329 beq  0x00000002 , 0x00007b7d 
+ 00031277  0x0000832a arg  0x00000819 , 0x00000011 
+ 00031278  0x0000832b beq  0x00000003 , 0x00007b7d 
+ 00031279  0x0000832c rtn 
+ 00031280  0x0000832f fetch  0x00000002 , 0x0000084f 
+ 00031281  0x00008330 beq  0x00000001 , 0x00007a34 
+ 00031282  0x00008331 fetchr  0x00000011 , 0x00000002 , 0x00000785 
+ 00031283  0x00008332 branch  0x00007b7d 
+ 00031284  0x00008334 jam  0x00000001 , 0x000008ec 
+ 00031285  0x00008335 jam  0x00000001 , 0x000008de 
+ 00031286  0x00008336 fetchr  0x00000011 , 0x00000002 , 0x00000787 
+ 00031287  0x00008337 branch  0x00007b7d 
+ 00031288  0x0000833b fetch  0x00000001 , 0x00000849 
+ 00031289  0x0000833c bne  0x00000004 , 0x000079d6 
+ 00031290  0x0000833d fetch  0x00000001 , 0x0000084b 
+ 00031291  0x0000833e bne  0x00000081 , 0x000079d6 
+ 00031292  0x0000833f fetch  0x00000001 , 0x0000084d 
+ 00031293  0x00008340 bne  0x00000000 , 0x000079d6 
+ 00031294  0x00008341 fetch  0x00000001 , 0x0000084e 
+ 00031295  0x00008342 bne  0x00000000 , 0x000079d6 
+ 00031296  0x00008343 fetch  0x00000001 , 0x00000851 
+ 00031297  0x00008344 bne  0x00000001 , 0x000079d6 
+ 00031298  0x00008345 fetch  0x00000001 , 0x00000852 
+ 00031299  0x00008346 bne  0x00000000 , 0x000079d6 
+ 00031300  0x00008347 fetch  0x00000001 , 0x0000084f 
+ 00031301  0x00008348 bne  0x00000000 , 0x000079d6 
+ 00031302  0x00008349 fetch  0x00000001 , 0x00000850 
+ 00031303  0x0000834a bne  0x00000000 , 0x000079d6 
+ 00031304  0x0000834b arg  0x00000001 , 0x00000012 
+ 00031305  0x0000834c branch  0x00007a62 
+ 00031306  0x00008350 fetch  0x00000001 , 0x00000849 
+ 00031307  0x00008351 beq  0x00000002 , 0x000079d6 
+ 00031308  0x00008352 fetch  0x00000001 , 0x0000084d 
+ 00031309  0x00008353 bne  0x00000000 , 0x000079d6 
+ 00031310  0x00008354 fetch  0x00000001 , 0x0000084e 
+ 00031311  0x00008355 bne  0x00000000 , 0x000079d6 
+ 00031312  0x00008356 fetch  0x00000001 , 0x00000851 
+ 00031313  0x00008357 bne  0x00000002 , 0x000079d6 
+ 00031314  0x00008358 fetch  0x00000001 , 0x00000852 
+ 00031315  0x00008359 bne  0x00000000 , 0x000079d6 
+ 00031316  0x0000835a fetch  0x00000001 , 0x00000850 
+ 00031317  0x0000835b bne  0x00000000 , 0x000079d6 
+ 00031318  0x0000835c fetch  0x00000001 , 0x0000084b 
+ 00031319  0x0000835d beq  0x00000080 , 0x00007a5d 
+ 00031320  0x0000835e beq  0x00000081 , 0x00007a68 
+ 00031321  0x0000835f beq  0x00000082 , 0x00007a6c 
+ 00031322  0x00008360 branch  0x000079d6 
+ 00031323  0x00008364 jam  0x00000001 , 0x000008e1 
+ 00031324  0x00008365 branch  0x00007a66 
+ 00031325  0x00008368 fetch  0x00000001 , 0x0000084f 
+ 00031326  0x00008369 bne  0x00000000 , 0x000079d6 
+ 00031327  0x0000836a arg  0x00000002 , 0x00000012 
+ 00031328  0x0000836b fetch  0x00000001 , 0x000008df 
+ 00031329  0x0000836c beq  0x00000001 , 0x00007a5b 
+ 00031330  0x0000836f arg  0x00000843 , 0x00000011 
+ 00031331  0x00008370 branch  0x00007b7f 
+ 00031332  0x00008372 arg  0x00000845 , 0x00000011 
+ 00031333  0x00008373 branch  0x00007b7f 
+ 00031334  0x00008375 arg  0x00000847 , 0x00000011 
+ 00031335  0x00008376 branch  0x00007b7f 
+ 00031336  0x00008379 fetch  0x00000001 , 0x00000849 
+ 00031337  0x0000837a bne  0x00000004 , 0x000079d6 
+ 00031338  0x0000837b arg  0x00000002 , 0x00000012 
+ 00031339  0x0000837c branch  0x00007a62 
+ 00031340  0x0000837f fetch  0x00000001 , 0x00000849 
+ 00031341  0x00008380 bne  0x00000004 , 0x000079d6 
+ 00031342  0x00008381 fetch  0x00000001 , 0x0000084f 
+ 00031343  0x00008382 beq  0x00000081 , 0x00007a79 
+ 00031344  0x00008383 beq  0x00000082 , 0x00007a7b 
+ 00031345  0x00008384 beq  0x00000083 , 0x00007a7d 
+ 00031346  0x00008385 and_into  0x0000007f , 0x0000003f 
+ 00031347  0x00008386 beq  0x00000000 , 0x00007a75 
+ 00031348  0x00008387 branch  0x000079d6 
+ 00031349  0x0000838a fetch  0x00000001 , 0x000008e2 
+ 00031350  0x0000838c arg  0x00000002 , 0x00000012 
+ 00031351  0x0000838d beq  0x00000001 , 0x00007a64 
+ 00031352  0x0000838e branch  0x00007a62 
+ 00031353  0x00008390 fetch  0x00000001 , 0x000008e3 
+ 00031354  0x00008391 branch  0x00007a76 
+ 00031355  0x00008393 fetch  0x00000001 , 0x000008e4 
+ 00031356  0x00008394 branch  0x00007a76 
+ 00031357  0x00008396 fetch  0x00000001 , 0x000008e5 
+ 00031358  0x00008397 branch  0x00007a76 
+ 00031359  0x0000839a jam  0x00000001 , 0x000008d9 
+ 00031360  0x0000839b arg  0x000008da , 0x00000011 
+ 00031361  0x0000839c arg  0x00000001 , 0x00000012 
+ 00031362  0x0000839d branch  0x00007b7f 
+ 00031363  0x000083a0 bpatchx  0x00000029 , 0x00004025 
+ 00031364  0x000083a1 fetch  0x00000002 , 0x0000084d 
+ 00031365  0x000083a2 arg  0x000001ba , 0x00000002 
+ 00031366  0x000083a3 isub  0x00000002 , 0x0000003e 
+ 00031367  0x000083a4 nbranch  0x000079d6 , 0x00000005 
+ 00031368  0x000083a7 fetch  0x00000001 , 0x000008d6 
+ 00031369  0x000083a8 nbranch  0x00007a92 , 0x00000034 
+ 00031370  0x000083a9 jam  0x00000000 , 0x00000893 
+ 00031371  0x000083ab fetch  0x00000001 , 0x00000851 
+ 00031372  0x000083ac iforce  0x00000012 
+ 00031373  0x000083ad arg  0x00000893 , 0x00000011 
+ 00031374  0x000083ae call  0x00007b7f 
+ 00031375  0x000083b0 arg  0x00000893 , 0x00000005 
+ 00031376  0x000083b1 arg  0x00000040 , 0x00000039 
+ 00031377  0x000083b2 branch  0x00007ca5 
+ 00031378  0x000083b4 jam  0x00000000 , 0x000008d6 
+ 00031379  0x000083b5 jam  0x00000001 , 0x00000893 
+ 00031380  0x000083b6 branch  0x00007a8b 
+ 00031381  0x000083b9 fetch  0x00000001 , 0x00000851 
+ 00031382  0x000083ba bne  0x00000001 , 0x000079d6 
+ 00031383  0x000083bb jam  0x00000001 , 0x000008db 
+ 00031384  0x000083bc arg  0x00000001 , 0x00000012 
+ 00031385  0x000083bd fetch  0x00000001 , 0x000008dd 
+ 00031386  0x000083be beq  0x00000000 , 0x00007a9d 
+ 00031387  0x000083bf beq  0x00000001 , 0x00007a9e 
+ 00031388  0x000083c0 branch  0x00007a62 
+ 00031389  0x000083c2 branch  0x00007a64 
+ 00031390  0x000083c4 branch  0x00007a62 
+ 00031391  0x000083ca fetch  0x00000001 , 0x00000849 
+ 00031392  0x000083cb bne  0x00000004 , 0x000079d6 
+ 00031393  0x000083cc fetch  0x00000001 , 0x00000851 
+ 00031394  0x000083cd bne  0x00000000 , 0x000079d6 
+ 00031395  0x000083ce fetch  0x00000001 , 0x00000852 
+ 00031396  0x000083cf bne  0x00000000 , 0x000079d6 
+ 00031397  0x000083d0 fetch  0x00000001 , 0x0000084e 
+ 00031398  0x000083d1 bne  0x00000000 , 0x000079d6 
+ 00031399  0x000083d2 fetch  0x00000001 , 0x00000850 
+ 00031400  0x000083d3 bne  0x00000000 , 0x000079d6 
+ 00031401  0x000083d4 fetch  0x00000001 , 0x0000084b 
+ 00031402  0x000083d5 beq  0x00000000 , 0x00007aae 
+ 00031403  0x000083d6 beq  0x00000001 , 0x00007abc 
+ 00031404  0x000083d7 beq  0x00000002 , 0x00007abd 
+ 00031405  0x000083d8 branch  0x000079d6 
+ 00031406  0x000083db bpatchx  0x0000002a , 0x00004025 
+ 00031407  0x000083dc fetch  0x00000001 , 0x0000084d 
+ 00031408  0x000083dd bne  0x00000001 , 0x000079d6 
+ 00031409  0x000083de fetch  0x00000001 , 0x00008c00 
+ 00031410  0x000083df set0  0x00000007 , 0x0000003f 
+ 00031411  0x000083e0 store  0x00000001 , 0x00008c00 
+ 00031412  0x000083e1 jam  0x00000000 , 0x000008df 
+ 00031413  0x000083e2 jam  0x00000001 , 0x000008e0 
+ 00031414  0x000083e3 fetch  0x00000001 , 0x000008e1 
+ 00031415  0x000083e4 branch  0x000079db , 0x00000034 
+ 00031416  0x000083e5 jam  0x00000000 , 0x000008e1 
+ 00031417  0x000083e6 jam  0x00000000 , 0x000008e0 
+ 00031418  0x000083e7 jam  0x00000002 , 0x000008de 
+ 00031419  0x000083e8 branch  0x000079db 
+ 00031420  0x000083eb branch  0x000079d6 
+ 00031421  0x000083ee fetch  0x00000001 , 0x0000084d 
+ 00031422  0x000083ef bne  0x00000000 , 0x000079d6 
+ 00031423  0x000083f0 fetch  0x00000001 , 0x0000084f 
+ 00031424  0x000083f1 beq  0x00000081 , 0x00007ac8 
+ 00031425  0x000083f2 beq  0x00000082 , 0x00007acb 
+ 00031426  0x000083f3 beq  0x00000083 , 0x00007acd 
+ 00031427  0x000083f4 and_into  0x0000007f , 0x0000003f 
+ 00031428  0x000083f5 beq  0x00000000 , 0x00007ac6 
+ 00031429  0x000083f6 branch  0x000079d6 
+ 00031430  0x000083f9 jam  0x00000000 , 0x000008e2 
+ 00031431  0x000083fa branch  0x000079db 
+ 00031432  0x000083fc jam  0x00000000 , 0x000008e3 
+ 00031433  0x000083fe jam  0x00000001 , 0x000008f0 
+ 00031434  0x000083ff branch  0x000079db 
+ 00031435  0x00008401 jam  0x00000000 , 0x000008e4 
+ 00031436  0x00008402 branch  0x00007ac9 
+ 00031437  0x00008404 jam  0x00000000 , 0x000008e5 
+ 00031438  0x00008405 branch  0x00007ac9 
+ 00031439  0x00008409 fetch  0x00000001 , 0x00000851 
+ 00031440  0x0000840a bne  0x00000000 , 0x000079d6 
+ 00031441  0x0000840b fetch  0x00000001 , 0x00000852 
+ 00031442  0x0000840c bne  0x00000000 , 0x000079d6 
+ 00031443  0x0000840d fetch  0x00000001 , 0x0000084b 
+ 00031444  0x0000840e beq  0x00000000 , 0x00007ad8 
+ 00031445  0x0000840f beq  0x00000001 , 0x00007ae7 
+ 00031446  0x00008410 beq  0x00000002 , 0x00007ae8 
+ 00031447  0x00008411 branch  0x000079d6 
+ 00031448  0x00008414 bpatchx  0x0000002b , 0x00004025 
+ 00031449  0x00008415 fetch  0x00000001 , 0x0000084d 
+ 00031450  0x00008416 bne  0x00000001 , 0x000079d6 
+ 00031451  0x00008417 call  0x00003dd6 
+ 00031452  0x00008418 fetch  0x00000001 , 0x00008c00 
+ 00031453  0x00008419 set1  0x00000007 , 0x0000003f 
+ 00031454  0x0000841a store  0x00000001 , 0x00008c00 
+ 00031455  0x0000841b jam  0x00000001 , 0x000008df 
+ 00031456  0x0000841c jam  0x00000003 , 0x000008de 
+ 00031457  0x0000841d jam  0x00000000 , 0x000008d7 
+ 00031458  0x0000841e call  0x000079db 
+ 00031459  0x00008420 call  0x00007cf0 
+ 00031460  0x00008421 setarg  0x00001388 
+ 00031461  0x00008422 arg  0x0000000f , 0x00000007 
+ 00031462  0x00008423 branch  0x00007ce3 
+ 00031463  0x00008426 branch  0x000079d6 
+ 00031464  0x00008429 fetch  0x00000001 , 0x0000084d 
+ 00031465  0x0000842a bne  0x00000000 , 0x000079d6 
+ 00031466  0x0000842b fetch  0x00000001 , 0x0000084e 
+ 00031467  0x0000842c bne  0x00000000 , 0x000079d6 
+ 00031468  0x0000842d fetch  0x00000001 , 0x0000084f 
+ 00031469  0x0000842e beq  0x00000081 , 0x00007af5 
+ 00031470  0x0000842f beq  0x00000082 , 0x00007af7 
+ 00031471  0x00008430 beq  0x00000083 , 0x00007af9 
+ 00031472  0x00008431 and_into  0x0000007f , 0x0000003f 
+ 00031473  0x00008432 beq  0x00000000 , 0x00007af3 
+ 00031474  0x00008433 branch  0x000079d6 
+ 00031475  0x00008436 jam  0x00000001 , 0x000008e2 
+ 00031476  0x00008437 branch  0x000079db 
+ 00031477  0x00008439 jam  0x00000001 , 0x000008e3 
+ 00031478  0x0000843a branch  0x000079db 
+ 00031479  0x0000843c jam  0x00000001 , 0x000008e4 
+ 00031480  0x0000843d branch  0x000079db 
+ 00031481  0x0000843f jam  0x00000001 , 0x000008e5 
+ 00031482  0x00008440 branch  0x000079db 
+ 00031483  0x00008444 fetch  0x00000001 , 0x0000084b 
+ 00031484  0x00008445 bne  0x00000000 , 0x000079d6 
+ 00031485  0x00008446 fetch  0x00000001 , 0x0000084f 
+ 00031486  0x00008447 bne  0x00000000 , 0x000079d6 
+ 00031487  0x00008448 fetch  0x00000001 , 0x00000850 
+ 00031488  0x00008449 bne  0x00000000 , 0x000079d6 
+ 00031489  0x0000844a fetch  0x00000001 , 0x00000851 
+ 00031490  0x0000844b bne  0x00000000 , 0x000079d6 
+ 00031491  0x0000844c fetch  0x00000001 , 0x00000852 
+ 00031492  0x0000844d bne  0x00000000 , 0x000079d6 
+ 00031493  0x0000844e fetch  0x00000001 , 0x0000084e 
+ 00031494  0x0000844f bne  0x00000000 , 0x000079d6 
+ 00031495  0x00008450 fetch  0x00000001 , 0x0000084d 
+ 00031496  0x00008451 and_into  0x00000080 , 0x0000003f 
+ 00031497  0x00008452 bne  0x00000000 , 0x000079d6 
+ 00031498  0x00008453 fetch  0x00000001 , 0x0000084d 
+ 00031499  0x00008454 bne  0x00000000 , 0x00007b12 
+ 00031500  0x00008456 jam  0x00000002 , 0x00000849 
+ 00031501  0x00008458 fetch  0x00000001 , 0x0000084d 
+ 00031502  0x00008459 store  0x00000001 , 0x00008c01 
+ 00031503  0x0000845a call  0x000079db 
+ 00031504  0x0000845b jam  0x00000001 , 0x000008ef 
+ 00031505  0x0000845c rtn 
+ 00031506  0x0000845e jam  0x00000003 , 0x00000849 
+ 00031507  0x0000845f branch  0x00007b0d 
+ 00031508  0x00008463 fetch  0x00000001 , 0x00000849 
+ 00031509  0x00008464 beq  0x00000002 , 0x000079d6 
+ 00031510  0x00008465 fetch  0x00000001 , 0x0000084b 
+ 00031511  0x00008466 bne  0x00000000 , 0x000079d6 
+ 00031512  0x00008467 fetch  0x00000001 , 0x0000084f 
+ 00031513  0x00008468 bne  0x00000000 , 0x000079d6 
+ 00031514  0x00008469 fetch  0x00000001 , 0x00000850 
+ 00031515  0x0000846a bne  0x00000000 , 0x000079d6 
+ 00031516  0x0000846b fetch  0x00000001 , 0x00000851 
+ 00031517  0x0000846c bne  0x00000000 , 0x000079d6 
+ 00031518  0x0000846d fetch  0x00000001 , 0x00000852 
+ 00031519  0x0000846e bne  0x00000000 , 0x000079d6 
+ 00031520  0x0000846f fetch  0x00000001 , 0x0000084e 
+ 00031521  0x00008470 bne  0x00000000 , 0x000079d6 
+ 00031522  0x00008471 fetch  0x00000001 , 0x0000084d 
+ 00031523  0x00008472 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031524  0x00008473 nbranch  0x000079d6 , 0x00000002 
+ 00031525  0x00008474 fetch  0x00000001 , 0x00000849 
+ 00031526  0x00008475 beq  0x00000003 , 0x00007b29 
+ 00031527  0x00008476 beq  0x00000004 , 0x00007b29 
+ 00031528  0x00008477 branch  0x000079d6 
+ 00031529  0x0000847b fetch  0x00000001 , 0x0000084d 
+ 00031530  0x0000847c beq  0x00000000 , 0x00007b2d 
+ 00031531  0x0000847d jam  0x00000004 , 0x00000849 
+ 00031532  0x0000847e branch  0x000079db 
+ 00031533  0x00008480 jam  0x00000003 , 0x00000849 
+ 00031534  0x00008481 branch  0x000079db 
+ 00031535  0x00008485 fetch  0x00000001 , 0x00000849 
+ 00031536  0x00008486 bne  0x00000004 , 0x000079d6 
+ 00031537  0x00008487 fetch  0x00000001 , 0x0000084b 
+ 00031538  0x00008488 bne  0x00000001 , 0x000079d6 
+ 00031539  0x00008489 fetch  0x00000001 , 0x0000084d 
+ 00031540  0x0000848a bne  0x00000000 , 0x000079d6 
+ 00031541  0x0000848b fetch  0x00000001 , 0x0000084e 
+ 00031542  0x0000848c bne  0x00000000 , 0x000079d6 
+ 00031543  0x0000848d fetch  0x00000001 , 0x00000851 
+ 00031544  0x0000848e bne  0x00000000 , 0x000079d6 
+ 00031545  0x0000848f fetch  0x00000001 , 0x00000852 
+ 00031546  0x00008490 bne  0x00000000 , 0x000079d6 
+ 00031547  0x00008491 fetch  0x00000001 , 0x0000084f 
+ 00031548  0x00008492 bne  0x00000000 , 0x000079d6 
+ 00031549  0x00008493 fetch  0x00000001 , 0x00000850 
+ 00031550  0x00008494 bne  0x00000000 , 0x000079d6 
+ 00031551  0x00008495 branch  0x000079db 
+ 00031552  0x00008499 bpatchx  0x0000002c , 0x00004025 
+ 00031553  0x0000849a jam  0x00000001 , 0x000008d9 
+ 00031554  0x0000849b fetch  0x00000001 , 0x0000084e 
+ 00031555  0x0000849c store  0x00000001 , 0x000008da 
+ 00031556  0x0000849d fetch  0x00000001 , 0x0000084f 
+ 00031557  0x0000849e sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031558  0x0000849f call  0x00007b4e , 0x00000005 
+ 00031559  0x000084a0 fetch  0x00000001 , 0x000008de 
+ 00031560  0x000084a1 bne  0x00000004 , 0x000079db 
+ 00031561  0x000084a2 jam  0x00000002 , 0x000008de 
+ 00031562  0x000084a3 call  0x000079db 
+ 00031563  0x000084a4 nop  0x00007530 
+ 00031564  0x000084a5 nop  0x00007530 
+ 00031565  0x000084a6 rtn 
+ 00031566  0x000084a8 jam  0x00000001 , 0x000008ec 
+ 00031567  0x000084a9 jam  0x00000000 , 0x000008e0 
+ 00031568  0x000084aa jam  0x00000004 , 0x000008de 
+ 00031569  0x000084ab rtn 
+ 00031570  0x000084af bpatchx  0x0000002d , 0x00004025 
+ 00031571  0x000084b0 nop  0x00003a98 
+ 00031572  0x000084b1 arg  0x00000853 , 0x00000005 
+ 00031573  0x000084b2 call  0x00007983 
+ 00031574  0x000084b3 jam  0x00000001 , 0x000008d5 
+ 00031575  0x000084b4 call  0x00007b62 
+ 00031576  0x000084b5 fetch  0x00000002 , 0x0000084d 
+ 00031577  0x000084b6 store  0x00000002 , 0x000008d3 
+ 00031578  0x000084b7 jam  0x00000002 , 0x00008c1b 
+ 00031579  0x000084b9 fetch  0x00000001 , 0x000008d7 
+ 00031580  0x000084ba rtn  0x00000034 
+ 00031581  0x000084bb fetch  0x00000001 , 0x00000853 
+ 00031582  0x000084bd store  0x00000001 , 0x00004638 
+ 00031583  0x000084be jam  0x00000000 , 0x000008d7 
+ 00031584  0x000084bf jam  0x00000003 , 0x00004628 
+ 00031585  0x000084c0 rtn 
+ 00031586  0x000084c4 fetch  0x00000002 , 0x0000084d 
+ 00031587  0x000084c5 arg  0x00000200 , 0x00000002 
+ 00031588  0x000084c6 isub  0x00000002 , 0x0000003e 
+ 00031589  0x000084c7 nrtn  0x00000005 
+ 00031590  0x000084c8 fetch  0x00000002 , 0x0000084f 
+ 00031591  0x000084c9 arg  0x00000000 , 0x00000002 
+ 00031592  0x000084ca isub  0x00000002 , 0x0000003e 
+ 00031593  0x000084cb nrtn  0x00000005 
+ 00031594  0x000084cc fetch  0x00000002 , 0x00000851 
+ 00031595  0x000084cd arg  0x00000001 , 0x00000002 
+ 00031596  0x000084ce isub  0x00000002 , 0x0000003e 
+ 00031597  0x000084cf nrtn  0x00000005 
+ 00031598  0x000084d0 jam  0x00000001 , 0x000008d7 
+ 00031599  0x000084d1 rtn 
+ 00031600  0x000084d5 fetch  0x00000001 , 0x00000851 
+ 00031601  0x000084d6 bne  0x00000000 , 0x000079d6 
+ 00031602  0x000084d7 fetch  0x00000001 , 0x0000084d 
+ 00031603  0x000084d8 beq  0x00000000 , 0x00007b76 
+ 00031604  0x000084d9 beq  0x00000001 , 0x00007b79 
+ 00031605  0x000084da branch  0x000079d6 
+ 00031606  0x000084dc jam  0x00000000 , 0x000008dc 
+ 00031607  0x000084dd jam  0x00000001 , 0x000008dd 
+ 00031608  0x000084de branch  0x000079db 
+ 00031609  0x000084e0 jam  0x00000001 , 0x000008d8 
+ 00031610  0x000084e1 jam  0x00000001 , 0x000008dc 
+ 00031611  0x000084e2 jam  0x00000000 , 0x000008dd 
+ 00031612  0x000084e3 branch  0x000079db 
+ 00031613  0x000084e7 ifetchr  0x00000012 , 0x00000001 , 0x00000011 
+ 00031614  0x000084e8 increase  0x00000001 , 0x00000011 
+ 00031615  0x000084eb bpatchx  0x0000002e , 0x00004025 
+ 00031616  0x000084ec set1  0x0000000e , 0x00000000 
+ 00031617  0x000084ed bmark0  0x00000023 , 0x00007b84 
+ 00031618  0x000084ee increase  0x00000001 , 0x00000012 
+ 00031619  0x000084ef lshift  0x00000012 , 0x00000012 
+ 00031620  0x000084f1 storer  0x00000011 , 0x00000002 , 0x00000782 
+ 00031621  0x000084f2 storer  0x00000012 , 0x00000001 , 0x00000784 
+ 00031622  0x000084f3 branch  0x00007b8a 
+ 00031623  0x000084f4 rtn 
+ 00031624  0x000084f7 arg  0x00000000 , 0x00000007 
+ 00031625  0x000084f8 branch  0x00007bcb 
+ 00031626  0x000084fe bpatchx  0x0000002f , 0x00004025 
+ 00031627  0x000084ff fetch  0x00000001 , 0x00008c25 
+ 00031628  0x00008500 rtnbit1  0x00000000 
+ 00031629  0x00008501 fetch  0x00000001 , 0x00000784 
+ 00031630  0x00008502 rtn  0x00000034 
+ 00031631  0x00008503 copy  0x0000003f , 0x00000039 
+ 00031632  0x00008504 iforce  0x00000002 
+ 00031633  0x00008505 fetch  0x00000002 , 0x00000851 
+ 00031634  0x00008506 sub  0x0000003f , 0x00000040 , 0x0000003e 
+ 00031635  0x00008507 branch  0x00007b98 , 0x00000002 
+ 00031636  0x00008508 sub  0x00000039 , 0x00000040 , 0x0000003e 
+ 00031637  0x00008509 branch  0x00007b9c , 0x00000002 
+ 00031638  0x0000850a force  0x00000040 , 0x00000039 
+ 00031639  0x0000850b branch  0x00007b9c 
+ 00031640  0x0000850d isub  0x00000039 , 0x0000003e 
+ 00031641  0x0000850e branch  0x00007b9c , 0x00000002 
+ 00031642  0x0000850f iforce  0x00000039 
+ 00031643  0x00008510 store  0x00000001 , 0x00000784 
+ 00031644  0x00008512 fetch  0x00000001 , 0x00000784 
+ 00031645  0x00008513 isub  0x00000039 , 0x0000003f 
+ 00031646  0x00008514 store  0x00000001 , 0x00000784 
+ 00031647  0x00008515 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031648  0x00008516 store  0x00000001 , 0x000006ec 
+ 00031649  0x00008517 bmark0  0x00000023 , 0x00007bae 
+ 00031650  0x00008518 rshift  0x0000003f , 0x0000003f 
+ 00031651  0x00008519 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031652  0x0000851a store  0x00000001 , 0x000006ec 
+ 00031653  0x0000851b bmark0  0x0000000e , 0x00007bae 
+ 00031654  0x0000851c set0  0x0000000e , 0x00000000 
+ 00031655  0x0000851d istoret  0x00000001 , 0x00000005 
+ 00031656  0x0000851e setarg  0x00000003 
+ 00031657  0x0000851f istore  0x00000001 , 0x00000005 
+ 00031658  0x00008520 increase  0xffffffff , 0x00000039 
+ 00031659  0x00008521 copy  0x00000039 , 0x0000003f 
+ 00031660  0x00008522 nbranch  0x00007bae , 0x00000005 
+ 00031661  0x00008523 increase  0x00000001 , 0x00000039 
+ 00031662  0x00008525 fetch  0x00000002 , 0x00000782 
+ 00031663  0x00008526 copy  0x0000003f , 0x00000006 
+ 00031664  0x00008528 ifetch  0x00000001 , 0x00000006 
+ 00031665  0x00008529 istore  0x00000001 , 0x00000005 
+ 00031666  0x0000852a bmark0  0x00000023 , 0x00007bb5 
+ 00031667  0x0000852b setarg  0x00000000 
+ 00031668  0x0000852c istore  0x00000001 , 0x00000005 
+ 00031669  0x0000852e loop  0x00007bb0 
+ 00031670  0x0000852f copy  0x00000006 , 0x0000003f 
+ 00031671  0x00008530 store  0x00000002 , 0x00000782 
+ 00031672  0x00008531 setarg  0x000006ec 
+ 00031673  0x00008532 store  0x00000002 , 0x00008c08 
+ 00031674  0x00008533 arg  0x00000000 , 0x00000007 
+ 00031675  0x00008534 call  0x00007bcb 
+ 00031676  0x00008535 fetch  0x00000001 , 0x00000784 
+ 00031677  0x00008536 nrtn  0x00000034 
+ 00031678  0x00008537 jam  0x00000002 , 0x00008c1b 
+ 00031679  0x00008538 fetch  0x00000001 , 0x000008de 
+ 00031680  0x00008539 rtnne  0x00000001 
+ 00031681  0x0000853a jam  0x00000002 , 0x000008de 
+ 00031682  0x0000853b rtn 
+ 00031683  0x00008540 arg  0x0000072d , 0x00000011 
+ 00031684  0x00008541 arg  0x00000001 , 0x00000007 
+ 00031685  0x00008542 storer  0x00000011 , 0x00000002 , 0x00008c0a 
+ 00031686  0x00008544 add  0x00000039 , 0xffffffff , 0x0000003f 
+ 00031687  0x00008545 istore  0x00000001 , 0x00000011 
+ 00031688  0x00008547 ifetch  0x00000001 , 0x00000006 
+ 00031689  0x00008548 istore  0x00000001 , 0x00000005 
+ 00031690  0x00008549 loop  0x00007bc8 
+ 00031691  0x0000854b setarg  0x00000000 
+ 00031692  0x0000854c qset1  0x0000003f 
+ 00031693  0x0000854d store  0x00000001 , 0x00008c18 
+ 00031694  0x0000854e rtn 
+ 00031695  0x00008551 arg  0x00000002 , 0x00000007 
+ 00031696  0x00008552 arg  0x00000737 , 0x00000011 
+ 00031697  0x00008553 storer  0x00000011 , 0x00000002 , 0x00008c0c 
+ 00031698  0x00008554 branch  0x00007bc6 
+ 00031699  0x00008557 bpatchx  0x00000030 , 0x00004026 
+ 00031700  0x00008558 fetch  0x00000001 , 0x000008eb 
+ 00031701  0x00008559 rtn  0x00000034 
+ 00031702  0x0000855a fetch  0x00000001 , 0x00008c25 
+ 00031703  0x0000855b and_into  0x0000000f , 0x0000003f 
+ 00031704  0x0000855c nbranch  0x00007c32 , 0x00000034 
+ 00031705  0x0000855d fetch  0x00000001 , 0x000008ec 
+ 00031706  0x0000855e branch  0x00007bfe , 0x00000034 
+ 00031707  0x0000855f fetch  0x00000001 , 0x000008de 
+ 00031708  0x00008560 beq  0x00000003 , 0x00007c42 
+ 00031709  0x00008561 bne  0x00000002 , 0x00007bfe 
+ 00031710  0x00008562 fetch  0x00000001 , 0x000008e0 
+ 00031711  0x00008563 nbranch  0x00007bfe , 0x00000034 
+ 00031712  0x00008564 call  0x00007be2 
+ 00031713  0x00008565 branch  0x00007bee 
+ 00031714  0x00008568 fetch  0x00000001 , 0x00008c25 
+ 00031715  0x00008569 rtnbit1  0x00000001 
+ 00031716  0x0000856a fetch  0x00000001 , 0x000008eb 
+ 00031717  0x0000856b rtnbit0  0x00000001 
+ 00031718  0x0000856c fetch  0x00000001 , 0x000008eb 
+ 00031719  0x0000856d set0  0x00000001 , 0x0000003f 
+ 00031720  0x0000856e store  0x00000001 , 0x000008eb 
+ 00031721  0x0000856f bpatchx  0x00000031 , 0x00004026 
+ 00031722  0x00008570 fetch  0x00000001 , 0x000008e9 
+ 00031723  0x00008571 rtn  0x00000034 
+ 00031724  0x00008572 beq  0x00000010 , 0x00007c20 
+ 00031725  0x00008573 branch  0x0000233e 
+ 00031726  0x00008576 fetch  0x00000001 , 0x00008c25 
+ 00031727  0x00008577 rtnbit1  0x00000002 
+ 00031728  0x00008578 fetch  0x00000001 , 0x000008eb 
+ 00031729  0x00008579 rtnbit0  0x00000002 
+ 00031730  0x0000857a fetch  0x00000001 , 0x000008eb 
+ 00031731  0x0000857b set0  0x00000002 , 0x0000003f 
+ 00031732  0x0000857c store  0x00000001 , 0x000008eb 
+ 00031733  0x0000857d bpatchx  0x00000032 , 0x00004026 
+ 00031734  0x0000857e fetch  0x00000001 , 0x000008ea 
+ 00031735  0x0000857f rtn  0x00000034 
+ 00031736  0x00008580 beq  0x00000020 , 0x00007c01 
+ 00031737  0x00008581 beq  0x00000021 , 0x00007c1c 
+ 00031738  0x00008582 beq  0x00000022 , 0x00007c26 
+ 00031739  0x00008583 beq  0x00000023 , 0x00007c2a 
+ 00031740  0x00008584 beq  0x00000024 , 0x00007c2e 
+ 00031741  0x00008585 branch  0x0000233e 
+ 00031742  0x00008589 arg  0x000008f1 , 0x00000005 
+ 00031743  0x0000858a arg  0x00000040 , 0x00000039 
+ 00031744  0x0000858b branch  0x00007ca5 
+ 00031745  0x0000858e fetch  0x00000001 , 0x000008d9 
+ 00031746  0x0000858f fetcht  0x00000001 , 0x000008db 
+ 00031747  0x00008590 iand  0x00000002 , 0x0000003f 
+ 00031748  0x00008591 branch  0x00007c18 , 0x00000034 
+ 00031749  0x00008592 fetcht  0x00000001 , 0x000008dc 
+ 00031750  0x00008593 iadd  0x00000002 , 0x0000003f 
+ 00031751  0x00008594 beq  0x00000001 , 0x00007c09 
+ 00031752  0x00008595 branch  0x00007c18 
+ 00031753  0x00008598 jam  0x00000000 , 0x000008ea 
+ 00031754  0x0000859a fetch  0x00000001 , 0x000008f2 
+ 00031755  0x0000859b beq  0x00000002 , 0x00007c19 
+ 00031756  0x0000859c beq  0x00000003 , 0x00007c19 
+ 00031757  0x0000859d fetch  0x00000001 , 0x000008f2 
+ 00031758  0x0000859e store  0x00000001 , 0x000008f1 
+ 00031759  0x0000859f fetch  0x00000001 , 0x000008f3 
+ 00031760  0x000085a0 istore  0x00000001 , 0x00000005 
+ 00031761  0x000085a1 fetch  0x00000001 , 0x000008f5 
+ 00031762  0x000085a2 istore  0x00000001 , 0x00000005 
+ 00031763  0x000085a3 fetch  0x00000001 , 0x000008f7 
+ 00031764  0x000085a4 istore  0x00000001 , 0x00000005 
+ 00031765  0x000085a5 arg  0x00000004 , 0x00000039 
+ 00031766  0x000085a6 arg  0x000008f1 , 0x00000006 
+ 00031767  0x000085a7 branch  0x00007bcf 
+ 00031768  0x000085aa jam  0x00000000 , 0x000008ea 
+ 00031769  0x000085ac arg  0x00000008 , 0x00000039 
+ 00031770  0x000085ad arg  0x000008f1 , 0x00000006 
+ 00031771  0x000085ae branch  0x00007bcf 
+ 00031772  0x000085b1 jam  0x00000000 , 0x000008ea 
+ 00031773  0x000085b2 arg  0x00000003 , 0x00000039 
+ 00031774  0x000085b3 arg  0x00000921 , 0x00000006 
+ 00031775  0x000085b4 branch  0x00007bcf 
+ 00031776  0x000085b7 fetch  0x00000001 , 0x000043cf 
+ 00031777  0x000085b8 beq  0x0000000f , 0x00004a10 
+ 00031778  0x000085b9 jam  0x00000000 , 0x000008e9 
+ 00031779  0x000085ba arg  0x00000008 , 0x00000039 
+ 00031780  0x000085bb arg  0x00000901 , 0x00000006 
+ 00031781  0x000085bc branch  0x00007bc3 
+ 00031782  0x000085bf jam  0x00000000 , 0x000008ea 
+ 00031783  0x000085c0 arg  0x00000002 , 0x00000039 
+ 00031784  0x000085c1 arg  0x00000929 , 0x00000006 
+ 00031785  0x000085c2 branch  0x00007bcf 
+ 00031786  0x000085c5 jam  0x00000000 , 0x000008ea 
+ 00031787  0x000085c6 arg  0x00000004 , 0x00000039 
+ 00031788  0x000085c7 arg  0x00000921 , 0x00000006 
+ 00031789  0x000085c8 branch  0x00007bcf 
+ 00031790  0x000085cb jam  0x00000000 , 0x000008ea 
+ 00031791  0x000085cc arg  0x0000000f , 0x00000039 
+ 00031792  0x000085cd arg  0x00000911 , 0x00000006 
+ 00031793  0x000085ce branch  0x00007bcf 
+ 00031794  0x000085d2 fetch  0x00000001 , 0x000008de 
+ 00031795  0x000085d3 beq  0x00000002 , 0x00007c35 
+ 00031796  0x000085d4 rtn 
+ 00031797  0x000085d6 fetch  0x00000001 , 0x00008c00 
+ 00031798  0x000085d7 set1  0x00000007 , 0x0000003f 
+ 00031799  0x000085d8 store  0x00000001 , 0x00008c00 
+ 00031800  0x000085d9 jam  0x00000001 , 0x000008ee 
+ 00031801  0x000085da rtn 
+ 00031802  0x000085dd fetch  0x00000001 , 0x000008de 
+ 00031803  0x000085de rtneq  0x00000003 
+ 00031804  0x000085df beq  0x00000002 , 0x00007c3e 
+ 00031805  0x000085e0 rtn 
+ 00031806  0x000085e2 fetch  0x00000001 , 0x000008ee 
+ 00031807  0x000085e3 rtn  0x00000034 
+ 00031808  0x000085e4 jam  0x00000001 , 0x000008ed 
+ 00031809  0x000085e5 branch  0x00007c45 
+ 00031810  0x000085e8 arg  0x0000000f , 0x00000007 
+ 00031811  0x000085e9 call  0x00007cf1 
+ 00031812  0x000085ea nrtn  0x00000034 
+ 00031813  0x000085ec fetch  0x00000001 , 0x00008c00 
+ 00031814  0x000085ed rtnbit0  0x00000007 
+ 00031815  0x000085ee jam  0x000000fc , 0x00008c00 
+ 00031816  0x000085ef nop  0x00007530 
+ 00031817  0x000085f0 jam  0x0000003c , 0x00008c00 
+ 00031818  0x000085f1 rtn 
+ 00031819  0x000085f9 storer  0x00000005 , 0x00000002 , 0x0000066f 
+ 00031820  0x000085fa storet  0x00000008 , 0x00000656 
+ 00031821  0x000085fb storer  0x0000000b , 0x00000004 , 0x0000065e 
+ 00031822  0x000085fc call  0x00007c53 
+ 00031823  0x000085fd storer  0x00000006 , 0x00000002 , 0x0000066d 
+ 00031824  0x000085fe storer  0x00000039 , 0x00000002 , 0x00000679 
+ 00031825  0x000085ff storer  0x00000007 , 0x00000002 , 0x00000677 
+ 00031826  0x00008600 rtn 
+ 00031827  0x00008603 storer  0x00000011 , 0x00000004 , 0x00000662 
+ 00031828  0x00008604 storer  0x00000012 , 0x00000004 , 0x00000666 
+ 00031829  0x00008605 storer  0x00000013 , 0x00000003 , 0x0000066a 
+ 00031830  0x00008606 rtn 
+ 00031831  0x00008609 bpatchx  0x00000033 , 0x00004026 
+ 00031832  0x0000860a fetch  0x00000002 , 0x0000066f 
+ 00031833  0x0000860b iforce  0x00000005 
+ 00031834  0x0000860c fetcht  0x00000008 , 0x00000656 
+ 00031835  0x0000860d fetchr  0x0000000b , 0x00000004 , 0x0000065e 
+ 00031836  0x0000860e call  0x00007c62 
+ 00031837  0x0000860f fetchr  0x00000039 , 0x00000002 , 0x00000679 
+ 00031838  0x00008610 fetchr  0x00000007 , 0x00000002 , 0x00000677 
+ 00031839  0x00008611 fetch  0x00000002 , 0x0000066d 
+ 00031840  0x00008612 iforce  0x00000006 
+ 00031841  0x00008613 rtn 
+ 00031842  0x00008616 fetchr  0x00000011 , 0x00000004 , 0x00000662 
+ 00031843  0x00008617 fetchr  0x00000012 , 0x00000004 , 0x00000666 
+ 00031844  0x00008618 fetchr  0x00000013 , 0x00000003 , 0x0000066a 
+ 00031845  0x00008619 rtn 
+ 00031846  0x0000861c fetch  0x00000002 , 0x0000066f 
+ 00031847  0x0000861e copy  0x0000003f , 0x00000005 
+ 00031848  0x0000861f rtn 
+ 00031849  0x00008621 fetch  0x00000002 , 0x0000066d 
+ 00031850  0x00008623 copy  0x0000003f , 0x00000006 
+ 00031851  0x00008624 rtn 
+ 00031852  0x00008627 copy  0x00000005 , 0x0000003f 
+ 00031853  0x00008628 store  0x00000002 , 0x0000066f 
+ 00031854  0x00008629 rtn 
+ 00031855  0x0000862b copy  0x00000006 , 0x0000003f 
+ 00031856  0x0000862c store  0x00000002 , 0x0000066d 
+ 00031857  0x0000862d rtn 
+ 00031858  0x00008632 copy  0x00000005 , 0x0000003f 
+ 00031859  0x00008633 store  0x00000002 , 0x0000066f 
+ 00031860  0x00008634 copy  0x00000006 , 0x0000003f 
+ 00031861  0x00008635 store  0x00000002 , 0x0000066d 
+ 00031862  0x00008636 rtn 
+ 00031863  0x00008639 fetch  0x00000002 , 0x0000066f 
+ 00031864  0x0000863a copy  0x0000003f , 0x00000005 
+ 00031865  0x0000863b fetch  0x00000002 , 0x0000066d 
+ 00031866  0x0000863c copy  0x0000003f , 0x00000006 
+ 00031867  0x0000863d rtn 
+ 00031868  0x00008643 isub  0x00000002 , 0x00000011 
+ 00031869  0x00008644 rtn  0x00000002 
+ 00031870  0x00008645 arg  0x00000100 , 0x00000011 
+ 00031871  0x00008646 iadd  0x00000011 , 0x0000003f 
+ 00031872  0x00008647 isub  0x00000002 , 0x00000011 
+ 00031873  0x00008648 rtn 
+ 00031874  0x0000864b call  0x00007c8f 
+ 00031875  0x0000864d call  0x00007c8f 
+ 00031876  0x0000864e branch  0x00007c8f 
+ 00031877  0x00008652 call  0x00007c8b 
+ 00031878  0x00008654 ifetch  0x00000001 , 0x00000006 
+ 00031879  0x00008655 istore  0x00000001 , 0x00000005 
+ 00031880  0x00008657 ifetch  0x00000003 , 0x00000006 
+ 00031881  0x00008658 istore  0x00000003 , 0x00000005 
+ 00031882  0x00008659 rtn 
+ 00031883  0x0000865b ifetch  0x00000008 , 0x00000006 
+ 00031884  0x0000865c istore  0x00000008 , 0x00000005 
+ 00031885  0x0000865d rtn 
+ 00031886  0x00008660 call  0x00007c91 
+ 00031887  0x00008662 call  0x00007c8b 
+ 00031888  0x00008664 call  0x00007c8b 
+ 00031889  0x00008666 call  0x00007c8b 
+ 00031890  0x00008667 branch  0x00007c8b 
+ 00031891  0x0000866a increase  0xffffffff , 0x0000003f 
+ 00031892  0x0000866b nop  0x00000026 
+ 00031893  0x0000866c nbranch  0x00007c93 , 0x00000034 
+ 00031894  0x0000866d rtn 
+ 00031895  0x00008671 arg  0x0000000a , 0x00000039 
+ 00031896  0x00008673 nop  0x00002ee0 
+ 00031897  0x00008674 loop  0x00007c98 
+ 00031898  0x00008675 rtn 
+ 00031899  0x00008679 call  0x00007c9c 
+ 00031900  0x0000867b call  0x00007c9d 
+ 00031901  0x0000867d force  0x00000004 , 0x00000039 
+ 00031902  0x0000867e branch  0x00007ca5 
+ 00031903  0x00008681 force  0x00000020 , 0x00000039 
+ 00031904  0x00008682 branch  0x00007ca5 
+ 00031905  0x00008684 force  0x00000040 , 0x00000039 
+ 00031906  0x00008685 branch  0x00007ca5 
+ 00031907  0x00008688 deposit  0x00000039 
+ 00031908  0x00008689 rtn  0x00000034 
+ 00031909  0x0000868b force  0x00000000 , 0x0000003f 
+ 00031910  0x0000868c lstore  0x00000005 
+ 00031911  0x0000868d rtn 
+ 00031912  0x00008690 arg  0x00000020 , 0x00000039 
+ 00031913  0x00008691 arg  0x0000067f , 0x00000005 
+ 00031914  0x00008692 branch  0x00007ca3 
+ 00031915  0x00008695 ifetch  0x00000004 , 0x00000013 
+ 00031916  0x00008696 ifetcht  0x00000004 , 0x00000011 
+ 00031917  0x00008697 ixor  0x00000002 , 0x0000003f 
+ 00031918  0x00008698 istore  0x00000004 , 0x00000005 
+ 00031919  0x00008699 increase  0x00000004 , 0x00000011 
+ 00031920  0x0000869a increase  0x00000004 , 0x00000013 
+ 00031921  0x0000869b loop  0x00007cab 
+ 00031922  0x0000869c rtn 
+ 00031923  0x000086a1 bpatchx  0x00000034 , 0x00004026 
+ 00031924  0x000086a2 copy  0x00000039 , 0x0000003f 
+ 00031925  0x000086a3 sub  0x0000003f , 0x00000001 , 0x0000003e 
+ 00031926  0x000086a4 rtn  0x00000002 
+ 00031927  0x000086a5 iadd  0x00000011 , 0x00000012 
+ 00031928  0x000086a6 increase  0xffffffff , 0x00000012 
+ 00031929  0x000086a7 rshift  0x00000039 , 0x00000039 
+ 00031930  0x000086a9 ifetcht  0x00000001 , 0x00000011 
+ 00031931  0x000086aa ifetch  0x00000001 , 0x00000012 
+ 00031932  0x000086ab istore  0x00000001 , 0x00000011 
+ 00031933  0x000086ac istoret  0x00000001 , 0x00000012 
+ 00031934  0x000086ad increase  0xffffffff , 0x00000012 
+ 00031935  0x000086ae increase  0x00000001 , 0x00000011 
+ 00031936  0x000086af loop  0x00007cba 
+ 00031937  0x000086b0 rtn 
+ 00031938  0x000086b4 rshift32  0x0000003f , 0x00000002 
+ 00031939  0x000086b5 call  0x00007cc8 
+ 00031940  0x000086b6 byteswap  0x00000002 , 0x00000002 
+ 00031941  0x000086b7 lshift16  0x0000003f , 0x0000003f 
+ 00031942  0x000086b8 ior  0x00000002 , 0x0000003f 
+ 00031943  0x000086b9 rtn 
+ 00031944  0x000086be rshift16  0x0000003f , 0x00000006 
+ 00031945  0x000086bf byteswap  0x00000006 , 0x00000006 
+ 00031946  0x000086c0 byteswap  0x0000003f , 0x0000003f 
+ 00031947  0x000086c1 lshift16  0x0000003f , 0x0000003f 
+ 00031948  0x000086c2 ior  0x00000006 , 0x0000003f 
+ 00031949  0x000086c3 rtn 
+ 00031950  0x000086c7 bpatchx  0x00000035 , 0x00004026 
+ 00031951  0x000086c8 deposit  0x00000039 
+ 00031952  0x000086c9 rtn  0x00000034 
+ 00031953  0x000086cb increase  0xfffffff8 , 0x00000039 
+ 00031954  0x000086cc call  0x00007c8b , 0x00000002 
+ 00031955  0x000086cd rtn  0x00000005 
+ 00031956  0x000086ce branch  0x00007cd1 , 0x00000002 
+ 00031957  0x000086cf increase  0x00000008 , 0x00000039 
+ 00031958  0x000086d1 increase  0xfffffffc , 0x00000039 
+ 00031959  0x000086d2 call  0x00007c86 , 0x00000002 
+ 00031960  0x000086d3 rtn  0x00000005 
+ 00031961  0x000086d4 branch  0x00007cd6 , 0x00000002 
+ 00031962  0x000086d5 increase  0x00000004 , 0x00000039 
+ 00031963  0x000086d6 branch  0x00007cdc 
+ 00031964  0x000086d9 deposit  0x00000039 
+ 00031965  0x000086da rtn  0x00000034 
+ 00031966  0x000086dc ifetch  0x00000001 , 0x00000006 
+ 00031967  0x000086dd istore  0x00000001 , 0x00000005 
+ 00031968  0x000086de loop  0x00007cde 
+ 00031969  0x000086df rtn 
+ 00031970  0x000086e2 setarg  0x00000000 
+ 00031971  0x000086e6 store  0x00000002 , 0x0000064e 
+ 00031972  0x000086e7 bpatchx  0x00000036 , 0x00004026 
+ 00031973  0x000086e8 call  0x00007cf1 
+ 00031974  0x000086e9 fetcht  0x00000002 , 0x0000064e 
+ 00031975  0x000086ea arg  0x000040f4 , 0x00000005 
+ 00031976  0x000086ec lshift  0x00000007 , 0x0000003f 
+ 00031977  0x000086ed iadd  0x00000005 , 0x00000005 
+ 00031978  0x000086ee istoret  0x00000002 , 0x00000005 
+ 00031979  0x000086ef rtn 
+ 00031980  0x000086f2 arg  0x00000800 , 0x0000000b 
+ 00031981  0x000086f3 lshift16  0x0000000b , 0x0000000b 
+ 00031982  0x000086f4 iadd  0x0000000b , 0x0000003f 
+ 00031983  0x000086f5 rtn 
+ 00031984  0x000086f9 arg  0x00000000 , 0x00000007 
+ 00031985  0x000086fb bpatchx  0x00000037 , 0x00004026 
+ 00031986  0x000086fc fetcht  0x00000004 , 0x00004095 
+ 00031987  0x000086fd rshift  0x00000022 , 0x0000003f 
+ 00031988  0x000086fe store  0x00000004 , 0x00004095 
+ 00031989  0x000086ff isub  0x00000002 , 0x0000003e 
+ 00031990  0x00008700 ncall  0x00007cec , 0x00000002 
+ 00031991  0x00008701 isub  0x00000002 , 0x0000000b 
+ 00031992  0x00008702 copy  0x0000000b , 0x00000002 
+ 00031993  0x00008703 arg  0x000040f4 , 0x00000006 
+ 00031994  0x00008704 copy  0x00000006 , 0x00000005 
+ 00031995  0x00008705 arg  0x00000010 , 0x00000039 
+ 00031996  0x00008707 ifetch  0x00000002 , 0x00000006 
+ 00031997  0x00008708 isub  0x00000002 , 0x0000003f 
+ 00031998  0x00008709 branch  0x00007d00 , 0x00000002 
+ 00031999  0x0000870a force  0x00000000 , 0x0000003f 
+ 00032000  0x0000870c istore  0x00000002 , 0x00000005 
+ 00032001  0x0000870d loop  0x00007cfc 
+ 00032002  0x0000870e arg  0x000040f4 , 0x00000006 
+ 00032003  0x0000870f lshift  0x00000007 , 0x0000003f 
+ 00032004  0x00008710 iadd  0x00000006 , 0x00000006 
+ 00032005  0x00008711 ifetch  0x00000002 , 0x00000006 
+ 00032006  0x00008712 rtn 
+ 00032007  0x00008718 iadd  0x00000002 , 0x00000002 
+ 00032008  0x00008719 copy  0x00000002 , 0x00000039 
+ 00032009  0x0000871a fetch  0x00000002 , 0x00000044 
+ 00032010  0x0000871b isub  0x00000039 , 0x0000003f 
+ 00032011  0x0000871c rtn  0x00000002 
+ 00032012  0x0000871d sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00032013  0x0000871e rshift16  0x00000002 , 0x00000002 
+ 00032014  0x0000871f increase  0x00000001 , 0x00000002 
+ 00032015  0x00008720 lshift16  0x00000002 , 0x00000002 
+ 00032016  0x00008721 ior  0x00000002 , 0x00000002 
+ 00032017  0x00008722 rtn 
+ 00032018  0x00008725 call  0x00007d14 
+ 00032019  0x00008726 branch  0x00007d21 
+ 00032020  0x0000872a disable  0x00000028 
+ 00032021  0x0000872b isub  0x00000002 , 0x0000003f 
+ 00032022  0x0000872c branch  0x00007d19 , 0x00000002 
+ 00032023  0x0000872d enable  0x00000028 
+ 00032024  0x0000872e sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00032025  0x00008730 rtnbit0  0x0000000f 
+ 00032026  0x00008731 copy  0x0000003f , 0x00000014 
+ 00032027  0x00008732 arg  0x00010000 , 0x00000002 
+ 00032028  0x00008733 fetch  0x00000002 , 0x00000044 
+ 00032029  0x00008734 isub  0x00000002 , 0x0000003f 
+ 00032030  0x00008735 iadd  0x00000014 , 0x0000003f 
+ 00032031  0x00008736 set0  0x00000040 , 0x0000003f 
+ 00032032  0x00008737 rtn 
+ 00032033  0x0000873c fetcht  0x00000002 , 0x00000044 
+ 00032034  0x0000873d iforce  0x00000006 
+ 00032035  0x0000873e rshift16  0x0000003f , 0x0000003f 
+ 00032036  0x0000873f imul32  0x00000002 , 0x0000003f 
+ 00032037  0x00008740 iadd  0x00000006 , 0x0000003f 
+ 00032038  0x00008741 rtn 
+ 00032039  0x00008745 lshift8  0x0000003f , 0x0000003f 
+ 00032040  0x00008746 lshift4  0x0000003f , 0x0000003f 
+ 00032041  0x00008747 fetcht  0x00000003 , 0x000040bd 
+ 00032042  0x00008748 idiv  0x00000002 
+ 00032043  0x00008749 call  0x00007d64 
+ 00032044  0x0000874a quotient  0x00000002 
+ 00032045  0x0000874b rtn 
+ 00032046  0x0000874f fetcht  0x00000002 , 0x00000044 
+ 00032047  0x00008750 idiv  0x00000002 
+ 00032048  0x00008751 call  0x00007d61 
+ 00032049  0x00008752 lshift16  0x0000003f , 0x0000003f 
+ 00032050  0x00008753 remainder  0x00000002 
+ 00032051  0x00008754 ior  0x00000002 , 0x00000002 
+ 00032052  0x00008755 rtn 
+ 00032053  0x0000875d arg  0x00000000 , 0x00000002 
+ 00032054  0x0000875f copy  0x00000002 , 0x00000014 
+ 00032055  0x00008760 ifetch  0x00000001 , 0x00000003 
+ 00032056  0x00008761 call  0x00007d41 
+ 00032057  0x00008762 copy  0x00000014 , 0x00000002 
+ 00032058  0x00008763 call  0x00007d72 
+ 00032059  0x00008764 arg  0x0000000a , 0x00000012 
+ 00032060  0x00008765 imul32  0x00000012 , 0x0000003f 
+ 00032061  0x00008766 iadd  0x00000002 , 0x0000003f 
+ 00032062  0x00008767 copy  0x0000003f , 0x00000002 
+ 00032063  0x00008768 loop  0x00007d36 
+ 00032064  0x00008769 rtn 
+ 00032065  0x0000876e arg  0x0000003a , 0x00000002 
+ 00032066  0x0000876f isub  0x00000002 , 0x0000003e 
+ 00032067  0x00008770 nbranch  0x00007d4a , 0x00000002 
+ 00032068  0x00008771 arg  0x00000061 , 0x00000002 
+ 00032069  0x00008772 isub  0x00000002 , 0x0000003e 
+ 00032070  0x00008773 branch  0x00007d4d , 0x00000002 
+ 00032071  0x00008774 arg  0x00000037 , 0x00000002 
+ 00032072  0x00008775 isub  0x00000002 , 0x0000003f 
+ 00032073  0x00008776 rtn 
+ 00032074  0x00008778 arg  0x00000030 , 0x00000002 
+ 00032075  0x00008779 isub  0x00000002 , 0x0000003f 
+ 00032076  0x0000877a rtn 
+ 00032077  0x0000877c arg  0x00000057 , 0x00000002 
+ 00032078  0x0000877d isub  0x00000002 , 0x0000003f 
+ 00032079  0x0000877e rtn 
+ 00032080  0x00008782 sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032081  0x00008783 rtn  0x00000005 
+ 00032082  0x00008785 rshift  0x0000003f , 0x0000003f 
+ 00032083  0x00008786 loop  0x00007d52 
+ 00032084  0x00008787 rtn 
+ 00032085  0x0000878b force  0x00000001 , 0x0000003f 
+ 00032086  0x0000878c sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032087  0x0000878d rtn  0x00000005 
+ 00032088  0x0000878f lshift  0x0000003f , 0x0000003f 
+ 00032089  0x00008790 loop  0x00007d58 
+ 00032090  0x00008791 rtn 
+ 00032091  0x00008796 setarg  0x00000000 
+ 00032092  0x00008797 copy  0x00000039 , 0x00000011 
+ 00032093  0x00008799 ifetcht  0x00000002 , 0x00000006 
+ 00032094  0x0000879a iadd  0x00000002 , 0x0000003f 
+ 00032095  0x0000879b loop  0x00007d5d 
+ 00032096  0x0000879c idiv  0x00000011 
+ 00032097  0x0000879e call  0x00007d64 
+ 00032098  0x0000879f quotient  0x0000003f 
+ 00032099  0x000087a0 rtn 
+ 00032100  0x000087a3 rtn  0x00000035 
+ 00032101  0x000087a4 branch  0x00007d64 
+ 00032102  0x000087b0 ifetch  0x00000001 , 0x00000011 
+ 00032103  0x000087b1 ifetcht  0x00000001 , 0x00000012 
+ 00032104  0x000087b2 isub  0x00000002 , 0x0000003e 
+ 00032105  0x000087b3 nrtn  0x00000005 
+ 00032106  0x000087b4 increase  0x00000001 , 0x00000011 
+ 00032107  0x000087b5 increase  0x00000001 , 0x00000012 
+ 00032108  0x000087b6 loop  0x00007d66 
+ 00032109  0x000087b7 branch  0x00007dba 
+ 00032110  0x000087bc isub  0x00000002 , 0x0000003e 
+ 00032111  0x000087bd nrtn  0x00000002 
+ 00032112  0x000087be deposit  0x00000002 
+ 00032113  0x000087bf rtn 
+ 00032114  0x000087c2 iadd  0x00000002 , 0x0000003f 
+ 00032115  0x000087c3 isub  0x00000002 , 0x00000002 
+ 00032116  0x000087c4 isub  0x00000002 , 0x0000003f 
+ 00032117  0x000087c5 rtn 
+ 00032118  0x000087c8 arg  0x00000000 , 0x00000005 
+ 00032119  0x000087c9 branch  0x00007d79 
+ 00032120  0x000087cc arg  0x00004000 , 0x00000005 
+ 00032121  0x000087ce arg  0x00001000 , 0x00000039 
+ 00032122  0x000087cf branch  0x00007ca5 
+ 00032123  0x000087d3 rtn  0x00000034 
+ 00032124  0x000087d4 copy  0x0000003f , 0x0000003d 
+ 00032125  0x000087d8 call  0x0000711d 
+ 00032126  0x000087db jam  0x00000001 , 0x00008203 
+ 00032127  0x000087dc rtn 
+ 00032128  0x000087df store  0x00000002 , 0x00008205 
+ 00032129  0x000087e0 fetch  0x00000001 , 0x00008203 
+ 00032130  0x000087e1 set1  0x00000004 , 0x0000003f 
+ 00032131  0x000087e2 store  0x00000001 , 0x00008203 
+ 00032132  0x000087e3 rtn 
+ 00032133  0x000087e5 store  0x00000002 , 0x00008207 
+ 00032134  0x000087e6 fetch  0x00000001 , 0x00008203 
+ 00032135  0x000087e7 set1  0x00000006 , 0x0000003f 
+ 00032136  0x000087e8 store  0x00000001 , 0x00008203 
+ 00032137  0x000087e9 rtn 
+ 00032138  0x000087ec store  0x00000002 , 0x00008205 
+ 00032139  0x000087ed jam  0x00000030 , 0x00008203 
+ 00032140  0x000087ee rtn 
+ 00032141  0x000087f7 bpatchx  0x00000038 , 0x00004027 
+ 00032142  0x000087f8 ifetcht  0x00000008 , 0x00000011 
+ 00032143  0x000087f9 and  0x00000002 , 0x000000ff , 0x0000003f 
+ 00032144  0x000087fa nbranch  0x00007d93 , 0x00000034 
+ 00032145  0x000087fb rshift8  0x00000002 , 0x0000003f 
+ 00032146  0x000087fc istore  0x00000008 , 0x00000011 
+ 00032147  0x000087fe increase  0x00000007 , 0x00000011 
+ 00032148  0x000087ff ifetch  0x00000001 , 0x00000011 
+ 00032149  0x00008800 nbranch  0x0000233e , 0x00000034 
+ 00032150  0x00008801 fetch  0x00000001 , 0x0000064d 
+ 00032151  0x00008802 istore  0x00000001 , 0x00000011 
+ 00032152  0x00008803 rtn 
+ 00032153  0x00008809 bpatchx  0x00000039 , 0x00004027 
+ 00032154  0x0000880a arg  0x00000008 , 0x00000039 
+ 00032155  0x0000880b ifetch  0x00000008 , 0x00000011 
+ 00032156  0x0000880c rtn  0x00000034 
+ 00032157  0x0000880e ifetch  0x00000001 , 0x00000011 
+ 00032158  0x0000880f nbranch  0x00007da2 , 0x00000034 
+ 00032159  0x00008810 increase  0x00000001 , 0x00000011 
+ 00032160  0x00008811 loop  0x00007d9d 
+ 00032161  0x00008812 branch  0x0000233e 
+ 00032162  0x00008814 arg  0x00000000 , 0x00000002 
+ 00032163  0x00008815 istoret  0x00000001 , 0x00000011 
+ 00032164  0x00008816 rtn 
+ 00032165  0x0000881c ifetch  0x00000008 , 0x00000011 
+ 00032166  0x0000881d rtn 
+ 00032167  0x00008823 ifetch  0x00000001 , 0x00000011 
+ 00032168  0x00008824 rtn 
+ 00032169  0x00008828 ifetch  0x00000002 , 0x00000011 
+ 00032170  0x00008829 rtn 
+ 00032171  0x0000882e arg  0x00000000 , 0x00000002 
+ 00032172  0x00008830 fetch  0x00000001 , 0x00000006 
+ 00032173  0x00008831 loop  0x00007dac , 0x00000034 
+ 00032174  0x00008832 increase  0x00000001 , 0x00000002 
+ 00032175  0x00008833 loop  0x00007dac 
+ 00032176  0x00008834 copy  0x00000002 , 0x0000003f 
+ 00032177  0x00008835 rtn 
+ 00032178  0x00008839 isub  0x00000002 , 0x0000003e 
+ 00032179  0x0000883a nrtn  0x00000002 
+ 00032180  0x0000883c copy  0x00000002 , 0x0000003f 
+ 00032181  0x0000883d rtn 
+ 00032182  0x00008841 force  0xffffffff , 0x0000003e 
+ 00032183  0x00008842 rtn 
+ 00032184  0x00008845 force  0x00000001 , 0x0000003e 
+ 00032185  0x00008846 rtn 
+ 00032186  0x00008848 force  0x00000000 , 0x0000003e 
+ 00032187  0x00008849 rtn 
+ 00032188  0x0000884c enable  0x00000028 
+ 00032189  0x0000884d rtn 
+ 00032190  0x00008850 disable  0x00000028 
+ 00032191  0x00008851 rtn 
+ 00032192  0x00008854 enable  0x0000002c 
+ 00032193  0x00008855 rtn 
+ 00032194  0x00008858 disable  0x0000002c 
+ 00032195  0x00008859 rtn 
+ 00032196  0x0000885c enable  0x00000031 
+ 00032197  0x0000885d rtn 
+ 00032198  0x00008860 disable  0x00000001 
+ 00032199  0x00008861 rtn 
+ 00032200  0x00008864 enable  0x00000001 
+ 00032201  0x00008865 rtn 
+ 00032202  0x00008868 setarg  0x00000001 
+ 00032203  0x00008869 rtn 
+ 00032204  0x0000886d setarg  0x00000000 
+ 00032205  0x0000886e rtn 
+ 00032206  0x00008871 istore  0x00000001 , 0x00000005 
+ 00032207  0x00008872 rtn 
+ 00032208  0x00008877 sub  0x00000039 , 0x00000000 , 0x0000003e 
+ 00032209  0x00008878 rtn  0x00000005 
+ 00032210  0x0000887a ifetcht  0x00000001 , 0x00000006 
+ 00032211  0x0000887b iadd  0x00000002 , 0x0000003f 
+ 00032212  0x0000887c loop  0x00007dd2 
+ 00032213  0x0000887d rtn 
+ 00032214  0x00008881 copy  0x00000039 , 0x0000003f 
+ 00032215  0x00008882 rtn  0x00000034 
+ 00032216  0x00008883 copy  0x00000006 , 0x0000003f 
+ 00032217  0x00008884 iadd  0x00000039 , 0x0000003f 
+ 00032218  0x00008885 increase  0xffffffff , 0x0000003f 
+ 00032219  0x00008886 copy  0x0000003f , 0x00000006 
+ 00032220  0x00008888 ifetch  0x00000001 , 0x00000006 
+ 00032221  0x00008889 increase  0xfffffffe , 0x00000006 
+ 00032222  0x0000888a istore  0x00000001 , 0x00000005 
+ 00032223  0x0000888b loop  0x00007ddc 
+ 00032224  0x0000888c rtn 
+ 00032225  0x00008890 lshift16  0x0000003f , 0x0000003f 
+ 00032226  0x00008892 rshift2  0x0000003f , 0x0000003f 
+ 00032227  0x00008893 rtn 
+ 00032228  0x00008896 lshift8  0x0000003f , 0x0000003f 
+ 00032229  0x00008897 branch  0x00007de2 
+ 00032230  0x0000889b bpatchx  0x0000003a , 0x00004027 
+ 00032231  0x0000889c setarg  0x00000000 
+ 00032232  0x0000889d set1  0x00000015 , 0x0000003f 
+ 00032233  0x0000889e store  0x00000008 , 0x00000016 
+ 00032234  0x0000889f setarg  0x00000000 
+ 00032235  0x000088a0 istore  0x00000004 , 0x00000005 
+ 00032236  0x000088a1 rtn 
+ 00032237  0x000088a5 arg  0x00000010 , 0x00000039 
+ 00032238  0x000088a7 random  0x0000003f 
+ 00032239  0x000088a8 istore  0x00000001 , 0x00000005 
+ 00032240  0x000088a9 loop  0x00007dee 
+ 00032241  0x000088aa rtn 
Index: GK308_keyboard_only_24g/output/bt_program23.list
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.list	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.list	(working copy)
@@ -0,0 +1,29055 @@
+              include "bt_format "
+              org 0x0000
+0x0 000028 bbit1 8 ,pf_patch_ext 
+0x1 000030 beq patch03_2 ,p_initialize_radio_cont 
+0x2 000031 beq patch05_0 ,p_lpm_dispatch 
+0x3 000032 beq patch07_6 ,p_keyboard_setting_config_next 
+0x4 000033 beq patch08_0 ,p_keyboard_store_device_info 
+0x5 000034 beq patch08_3 ,p_keyboard_bb_event_timer 
+0x6 000035 beq patch08_4 ,p_keyboard_adc_vol_init 
+0x7 000036 beq patch09_1 ,p_keyboard_idle 
+0x8 000037 beq patch09_4 ,p_kscan_dispatch 
+0x9 000038 beq patch0a_4 ,p_keyboard_commbination_key_press_check 
+0xa 000039 beq patch0a_6 ,p_keyboard_long_button_bt_discovery 
+0xb 000040 beq patch0b_1 ,p_keyboard_motion_data_check 
+0xc 000041 beq patch0b_4 ,p_keyboard_value_tpye_consumer_set 
+0xd 000042 beq patch0d_2 ,p_keyboard_le_parse_att 
+0xe 000043 beq patch0f_4 ,p_keyboard_app_enter_hibernate 
+0xf 000044 beq patch10_2 ,p_mouse_adc_bat_percent_lowpower_out 
+0x10 000045 beq patch14_3 ,keyboard_24g_hibernate_set 
+0x11 000046 beq patch1d_1 ,p_otp_write 
+0x12 000047 beq patch1d_2 ,p_otp_read_data 
+0x13 000048 beq patch19_7 ,p_keyboard_init 
+0x14 000049 beq patch1f_2 ,p_gpio_set_wake_by_current_state 
+0x15 000050 branch assert 
+:      000051 pf_patch_ext:
+0x16 000052 beq patch35_5 ,p_g24_pair_sm_common 
+0x17 000053 beq patch37_5 ,p_g24_reconn_dispatch_next 
+0x18 000054 beq patch38_2 ,p_g24_transmit_no_interrupt 
+0x19 000055 beq patch3e_3 ,p_initialize_radio2 
+0x1a 000056 rtneq patch3f_7 
+0x1b 000057 branch assert 
+:      000059 p_initialize_radio2:
+0x1c 000061 until null ,lpo_edge 
+0x1d 000062 jam 0x60 ,0x8a86 
+0x1e 000063 jam 0x3b ,0x8a8b 
+0x1f 000065 call dpll_on 
+0x20 000066 jam 0 ,core_config 
+0x21 000067 jam clksel_dpll ,core_clksel 
+0x22 000068 setarg 0x557474 
+0x23 000069 store 3 ,0x8968 
+0x24 000070 jam 0x6e ,0x8960 
+0x25 000071 call rx_dcoc 
+0x26 000072 call rfpll_aac_ghpc 
+0x27 000073 call set_xtal_cap 
+0x28 000074 jam system_clk_12m ,mem_system_clk 
+0x29 000079 call sadc_calibration 
+0x2a 000080 call dpll_ring_ibias_calc 
+0x2b 000081 branch set_bistfix_save_patchram 
+:      000083 p_soft_reset:
+0x2c 000084 nbranch p_soft_reset_next ,wake 
+0x2d 000085 until null ,lpo_edge 
+0x2e 000086 until null ,lpo_edge 
+:      000087 p_soft_reset_next:
+0x2f 000088 call keyboard_wakeup_from_power_check 
+0x30 000089 nbranch soft_reset + 1 ,user 
+0x31 000090 fetch 1 ,mem_power_on_flag 
+0x32 000091 branch soft_reset + 1 ,blank 
+0x33 000092 fetch 1 ,mem_keyboard_pb_button_gpio 
+0x34 000093 rtneq ui_button_gpio_disable 
+0x35 000094 copy pdata ,queue 
+0x36 000095 fetch 4 ,mem_saved_gpio_in 
+0x37 000096 qisolate0 pdata 
+0x38 000097 call keyboard_pb_set ,true 
+0x39 000098 branch soft_reset + 1 
+:      000100 p_g24_pair_sm_common:
+0x3a 000101 fetch 4 ,mem_24g_rxpayload + 2 
+0x3b 000102 rtn blank 
+0x3c 000103 branch g24_pair_sm_common + 12 
+:      000105 p_g24_reconn_dispatch_next:
+0x3d 000106 fetch 2 ,mem_24g_reconn_count 
+0x3e 000107 and_into 0xe0 ,pdata 
+0x3f 000108 branch p_keyboard_g24_reconn_dispatch_next ,blank 
+0x40 000109 fetch 2 ,mem_24g_reconn_count 
+0x41 000110 increase 1 ,pdata 
+0x42 000111 store 2 ,mem_24g_reconn_count 
+0x43 000112 rtn 
+:      000114 p_keyboard_g24_reconn_dispatch_next:
+0x44 000115 call g24_reconn_data_prep 
+0x45 000116 call g24_transmit_receive_ack 
+0x46 000117 nbranch g24_reconn_device_fail ,sync 
+0x47 000118 nbranch g24_reconn_device_fail ,user3 
+0x48 000119 call p_keyboard_g24_ackpayload_parse 
+0x49 000120 branch g24_reconn_dispatch_next + 5 
+:      000121 p_keyboard_g24_ackpayload_parse:
+0x4a 000122 call g24_ackpayload_parse 
+0x4b 000123 fetch 1 ,mem_24g_rxbuf + 1 
+0x4c 000124 compare 0x08 ,pdata ,0xf8 
+0x4d 000125 nrtn true 
+0x4e 000126 fetch 1 ,mem_24g_rxbuf + 2 
+0x4f 000127 beq 0xff ,keyboard_24g_hibernate_set 
+0x50 000128 store 1 ,mem_keyboard_led_status 
+0x51 000129 rtn 
+:      000131 p_initialize_radio_cont:
+0x52 000132 until null ,lpo_edge 
+0x53 000133 jam 0x0d ,0x8946 
+0x54 000134 jam 0x10 ,0x896f 
+0x55 000135 jam 0xcd ,0x8a13 
+0x56 000137 fetch 1 ,0x8a06 
+0x57 000138 and pdata ,0xfc ,pdata 
+0x58 000139 store 1 ,0x8a06 
+0x59 000140 branch initialize_radio_cont + 6 
+:      000142 p_otp_read_data:
+0x5a 000143 call enable_otp_read 
+0x5b 000144 call otp_read_data1 
+0x5c 000145 branch otp_disable_chgpump 
+:      000148 p_otp_write:
+0x5d 000150 call otp_enable_chgpump65 
+0x5e 000151 call otp_set_addr 
+0x5f 000152 call otp_reset 
+:      000153 p_otp_program:
+0x60 000154 ifetcht 1 ,rega 
+0x61 000155 increase 1 ,rega 
+0x62 000156 force 0 ,queue 
+:      000157 p_otp_program_bit:
+0x63 000158 set0 mark_otp_write ,mark 
+:      000159 p_otp_program_bit2:
+0x64 000160 qisolate0 temp 
+0x65 000161 branch p_otp_skip_0 ,true 
+0x66 000162 fetch 1 ,core_otp_din 
+0x67 000163 set1 6 ,pdata 
+0x68 000164 set1 7 ,pdata 
+0x69 000165 store 1 ,core_otp_din 
+0x6a 000166 jam 0x02 ,core_otp_ctrl 
+0x6b 000167 jam 0x82 ,core_otp_ctrl 
+0x6c 000168 set0 7 ,pdata 
+0x6d 000169 store 1 ,core_otp_din 
+0x6e 000170 jam 0x8a ,core_otp_ctrl 
+0x6f 000171 nop 11 
+0x70 000172 jam 0xca ,core_otp_ctrl 
+0x71 000173 nop 33 
+0x72 000174 jam 0x4a ,core_otp_ctrl 
+0x73 000175 nop 44 
+0x74 000176 jam 0xca ,core_otp_ctrl 
+0x75 000177 nop 22 
+0x76 000178 jam 0x8a ,core_otp_ctrl 
+0x77 000179 nop 33 
+0x78 000180 jam 0x82 ,core_otp_ctrl 
+0x79 000181 nop 1 
+0x7a 000182 jam 0x92 ,core_otp_ctrl 
+0x7b 000183 nop 10 
+0x7c 000184 jam 0xb2 ,core_otp_ctrl 
+0x7d 000185 fetch 1 ,core_otp_rdata 
+0x7e 000186 jam 0x92 ,core_otp_ctrl 
+0x7f 000187 nop 1 
+0x80 000188 jam 0x82 ,core_otp_ctrl 
+0x81 000189 nop 1 
+0x82 000190 qisolate0 pdata 
+0x83 000191 branch p_otp_program_bit ,true 
+0x84 000192 bmark1 mark_otp_write ,p_otp_skip_0 
+0x85 000193 set1 mark_otp_write ,mark 
+0x86 000194 branch p_otp_program_bit2 
+:      000196 p_otp_skip_0:
+0x87 000197 fetch 2 ,core_otp_addr 
+0x88 000198 increase 1 ,pdata 
+0x89 000199 store 2 ,core_otp_addr 
+0x8a 000200 increase 1 ,queue 
+0x8b 000201 compare 8 ,queue ,0xf 
+0x8c 000202 nbranch p_otp_program_bit ,true 
+0x8d 000203 loop p_otp_program 
+0x8e 000204 branch otp_disable_chgpump 
+:      000206 p_gpio_set_wake_by_current_state:
+0x8f 000207 set1 gpio_active_bit ,temp 
+0x90 000208 call gpio_get_bit 
+0x91 000209 nsetflag true ,gpio_active_bit ,temp 
+0x92 000210 branch gpio_set_wake 
+:      000213 p_lpm_dispatch:
+0x93 000214 call lpo_calibration 
+0x94 000215 fetch 3 ,mem_clks_per_lpo 
+0x95 000216 rtn blank 
+0x96 000217 fetch 1 ,mem_keyboard_fn_flag 
+0x97 000218 nrtn blank 
+0x98 000219 fetch 1 ,mem_keyboard_control_key_flag 
+0x99 000220 nrtn blank 
+0x9a 000221 fetch 1 ,mem_device_direct_timer 
+0x9b 000222 nrtn blank 
+0x9c 000223 fetch 2 ,mem_device_discovery_timer 
+0x9d 000224 nrtn blank 
+0x9e 000225 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x9f 000226 nrtn blank 
+0xa0 000227 branch lpm_dispatch + 4 
+:      000229 p_keyboard_init:
+0xa1 000233 call app_param_init 
+0xa2 000234 call enable_authrom 
+0xa3 000235 call p_keyboard_setting_config 
+0xa4 000236 call p_keyboard_led_reuse_judge 
+0xa5 000237 branch keyboard_init + 2 
+:      000239 p_keyboard_setting_config:
+0xa6 000240 rtn wake 
+0xa7 000241 call g24_transmit_init 
+0xa8 000242 call g24_chmap_param_init 
+0xa9 000243 call p_keyboard_param_init 
+0xaa 000244 jam 0x0a ,mem_lpm_overhead 
+0xab 000245 branch keyboard_setting_config + 4 
+:      000247 p_keyboard_param_init:
+0xac 000248 call keyboard_compare_addr_init 
+0xad 000249 call p_keyboard_param_common_init 
+0xae 000250 branch keyboard_param_init + 2 
+:      000252 p_keyboard_param_common_init:
+0xaf 000253 setarg mouse_ble_att_list_addr 
+0xb0 000254 store 2 ,mem_ui_le_uuid_table 
+0xb1 000255 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xb2 000256 bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+0xb3 000257 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+0xb4 000258 store 2 ,mem_keyboard_le_hid_map 
+0xb5 000259 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xb6 000260 bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+0xb7 000261 bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+0xb8 000262 setarg keyboard_ble_hid_map_magic_keyboard_addr 
+0xb9 000263 store 2 ,mem_keyboard_le_hid_map 
+0xba 000264 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xbb 000265 bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+0xbc 000266 setarg mem_keyboard_le_table 
+0xbd 000267 store 2 ,mem_keyboard_le_hid_map 
+0xbe 000268 branch hid_device_param_common_init 
+:      000270 p_keyboard_led_reuse_judge:
+0xbf 000271 fetch 1 ,mem_keyboard_low_voltage_alarm_gpio 
+0xc0 000272 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0xc1 000273 isub temp ,null 
+0xc2 000274 call p_keyboard_caps_led_reuse ,zero 
+0xc3 000275 fetch 1 ,mem_keyboard_low_voltage_alarm_gpio 
+0xc4 000276 fetcht 1 ,mem_keyboard_num_led_gpio 
+0xc5 000277 isub temp ,null 
+0xc6 000278 call p_keyboard_num_led_reuse ,zero 
+0xc7 000279 fetch 1 ,mem_keyboard_low_voltage_alarm_gpio 
+0xc8 000280 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+0xc9 000281 isub temp ,null 
+0xca 000282 branch p_keyboard_scroll_led_reuse ,zero 
+0xcb 000283 rtn 
+:      000285 p_keyboard_caps_led_reuse:
+0xcc 000286 fetch 1 ,mem_keyboard_reuse_led_bit 
+0xcd 000287 set1 kb_pc_keysel_capslock ,pdata 
+0xce 000288 store 1 ,mem_keyboard_reuse_led_bit 
+0xcf 000289 rtn 
+:      000290 p_keyboard_num_led_reuse:
+0xd0 000291 fetch 1 ,mem_keyboard_reuse_led_bit 
+0xd1 000292 set1 kb_pc_keysel_numlock ,pdata 
+0xd2 000293 store 1 ,mem_keyboard_reuse_led_bit 
+0xd3 000294 rtn 
+:      000295 p_keyboard_scroll_led_reuse:
+0xd4 000296 fetch 1 ,mem_keyboard_reuse_led_bit 
+0xd5 000297 set1 kb_pc_keysel_scrolllock ,pdata 
+0xd6 000298 store 1 ,mem_keyboard_reuse_led_bit 
+0xd7 000299 rtn 
+:      000300 p_keyboard_store_device_info:
+0xd8 000301 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xd9 000302 bbit1 keyboard_enable_otp ,p_keyboard_store_otp_device_info 
+0xda 000303 branch keyboard_store_device_info + 1 
+:      000305 p_keyboard_store_otp_device_info:
+0xdb 000306 fetch 2 ,mem_otp_read_retention_offset 
+0xdc 000308 fetcht 2 ,mem_otp_read_retention_max_size 
+0xdd 000309 isub temp ,null 
+0xde 000310 rtn positive 
+0xdf 000311 fetch 1 ,mem_device_flag 
+0xe0 000312 beq mode_24g_device ,p_keyboard_store_otp_device_info_g24 
+0xe1 000313 beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+0xe2 000314 rtn 
+:      000316 p_keyboard_store_otp_device_info_g24:
+0xe3 000317 fetcht 2 ,mem_otp_read_retention_offset 
+0xe4 000318 setarg 0x1fb0 
+0xe5 000321 isub temp ,regb 
+0xe6 000322 arg mem_device_24g_addr ,rega 
+0xe7 000323 arg 4 ,loopcnt 
+0xe8 000324 call otp_write 
+0xe9 000325 fetcht 2 ,mem_otp_read_retention_offset 
+0xea 000326 increase 4 ,temp 
+0xeb 000327 storet 2 ,mem_otp_read_retention_offset 
+0xec 000328 rtn 
+:      000330 p_keyboard_device_led_all_off:
+0xed 000331 call keyboard_power_led_off 
+0xee 000332 call keyboard_device_led_off 
+0xef 000333 call keyboard_numlock_led_off 
+0xf0 000334 call keyboard_capslock_led_off 
+0xf1 000335 branch keyboard_scrolllock_led_off 
+:      000337 p_kscan_dispatch:
+0xf2 000338 call p_keyboard_keyscan 
+0xf3 000339 call p_keyboard_key_process 
+0xf4 000340 branch kscan_dispatch + 3 
+:      000342 p_keyboard_keyscan:
+0xf5 000343 call keyboard_gpio_init 
+0xf6 000344 setarg 0 
+0xf7 000345 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0xf8 000346 arg mem_keyscan_value_current ,contr 
+0xf9 000347 arg mem_keyscan_value_check ,contw 
+0xfa 000348 arg 20 ,loopcnt 
+0xfb 000349 call memcpy 
+0xfc 000350 call keyboard_stb_state_low 
+0xfd 000351 setarg mem_keyscan_value_current 
+0xfe 000352 store 2 ,mem_keyscan_value_ptr 
+0xff 000353 setarg mem_keyscan_exmcu_value_new 
+0x100 000354 store 2 ,mem_keyscan_exmcu_value_ptr 
+0x101 000355 call keyboard_stb_state_high 
+0x102 000356 call keyboard_clk_input 
+:      000357 p_keyboard_keyscan_exmcu_start_check:
+0x103 000358 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x104 000359 increase 1 ,pdata 
+0x105 000360 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x106 000361 bbit1 9 ,p_keyboard_keyscan 
+0x107 000362 fetcht 1 ,mem_mcu_clk_gpio 
+0x108 000363 call gpio_get_bit 
+0x109 000364 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+0x10a 000365 call keyboard_stb_state_low 
+0x10b 000366 branch keyboard_keyscan_wait_wake_next 
+:      000368 p_keyboard_bb_event_timer:
+0x10c 000369 call keyboard_low_voltage_param_set 
+0x10d 000370 call keyboard_adc_read 
+0x10e 000371 call keyboard_adc_gpio_set_before_hibernate 
+0x10f 000375 call p_keyboard_key_press_timer 
+0x110 000376 call keyboard_commbination_key_process 
+0x111 000377 call keyboard_same_key_long_press_timer 
+0x112 000380 call g24_pair_timeout_timer 
+0x113 000381 call g24_reconn_timeout_timer 
+0x114 000382 call mouse_24g_long_sleep_param_update_timer 
+0x115 000383 call keyboard_24g_repeat_send_data 
+0x116 000384 call keyboard_24g_led_status_get_timer 
+0x117 000387 call keyboard_check_discovery_timeout_timer 
+0x118 000388 call keyboard_check_direct_timeout_timer 
+0x119 000389 call mouse_le_enable_att_list_timer 
+0x11a 000390 call keyboard_le_battery_updata_timer 
+0x11b 000391 call mouse_le_send_smp_security_request_timer 
+0x11c 000392 call keyboard_le_send_conn_param_update_timer 
+0x11d 000393 call keyboard_le_auto_recognize_timer 
+0x11e 000395 call mouse_current_mult_update_timer 
+0x11f 000396 call keyboard_store_information_delay_timer 
+0x120 000397 call keyboard_commbination_delay_release_timer 
+0x121 000398 call keyboard_usb_updata_timer 
+0x122 000402 call p_keyboard_led_dispatch_timer 
+0x123 000404 branch keyboard_check_no_data_timeout_timer 
+:      000406 p_keyboard_key_press_timer:
+0x124 000407 fetch 1 ,mem_keyboard_switch_device_flag 
+0x125 000408 bbit1 keyboard_flag_g24_device_button ,p_keyboard_device_select_g24_press_timer 
+0x126 000409 call p_keyboard_device_select_g24_nopress_timer 
+0x127 000410 fetch 1 ,mem_keyboard_switch_device_flag 
+0x128 000411 bbit1 keyboard_flag_bt_device_button ,p_keyboard_device_select_bt_press_timer 
+0x129 000412 branch p_keyboard_device_select_bt_nopress_timer 
+:      000414 p_keyboard_device_select_g24_press_timer:
+0x12a 000415 fetch 1 ,mem_keyboard_switch_g24_press_timer 
+0x12b 000416 sub pdata ,100 ,null 
+0x12c 000417 nrtn positive 
+0x12d 000418 increase 1 ,pdata 
+0x12e 000419 store 1 ,mem_keyboard_switch_g24_press_timer 
+0x12f 000420 rtnne 25 
+0x130 000421 jam 0 ,mem_keyboard_switch_g24_enable 
+0x131 000422 fetch 1 ,mem_device_flag 
+0x132 000423 rtneq mode_usb_device 
+0x133 000424 call p_keyboard_store_device_number 
+0x134 000425 call keyboard_stop_bluetooth_mode 
+0x135 000426 branch keyboard_24g_start_pair_mode 
+:      000428 p_keyboard_device_select_bt_press_timer:
+0x136 000429 fetch 1 ,mem_keyboard_switch_bt_press_timer 
+0x137 000430 sub pdata ,100 ,null 
+0x138 000431 nrtn positive 
+0x139 000432 increase 1 ,pdata 
+0x13a 000433 store 1 ,mem_keyboard_switch_bt_press_timer 
+0x13b 000434 rtnne 25 
+0x13c 000435 jam 0 ,mem_keyboard_switch_bt_enable 
+0x13d 000436 fetch 1 ,mem_device_flag 
+0x13e 000437 rtneq mode_usb_device 
+0x13f 000438 call p_keyboard_store_device_number 
+0x140 000439 call hid_device_le_send_empty_packet 
+0x141 000440 branch keyboard_long_button_bt_discovery 
+:      000443 p_keyboard_device_select_g24_nopress_timer:
+0x142 000444 jam 0 ,mem_keyboard_switch_g24_press_timer 
+0x143 000445 fetch 1 ,mem_keyboard_switch_g24_enable 
+0x144 000446 rtn blank 
+0x145 000447 jam 0 ,mem_keyboard_switch_g24_enable 
+0x146 000448 call p_keyboard_store_device_number 
+0x147 000449 branch soft_reset_chip 
+:      000451 p_keyboard_device_select_bt_nopress_timer:
+0x148 000452 jam 0 ,mem_keyboard_switch_bt_press_timer 
+0x149 000453 fetch 1 ,mem_keyboard_switch_bt_enable 
+0x14a 000454 rtn blank 
+0x14b 000455 jam 0 ,mem_keyboard_switch_bt_enable 
+0x14c 000456 call keyboard_store_device_number 
+0x14d 000457 branch soft_reset_chip 
+:      000459 p_keyboard_store_device_number:
+0x14e 000460 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x14f 000461 bbit1 keyboard_enable_otp ,mouse_write_otp_device_flag 
+0x150 000462 bbit1 keyboard_enable_eeprom ,keyboard_store_device_number 
+0x151 000463 rtn 
+:      000465 p_keyboard_long_button_bt_discovery:
+0x152 000466 branch keyboard_long_button_bt_discovery + 2 
+:      000469 p_keyboard_setting_config_next:
+0x153 000470 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x154 000472 bbit1 keyboard_enable_otp ,p_keyboard_load_otp_info 
+0x155 000473 branch keyboard_setting_config + 11 
+:      000475 p_keyboard_load_2k_eeprom_info:
+0x156 000476 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x157 000477 bbit0 keyboard_enable_sda_multi_r_line ,p_keyboard_load_2k_eeprom_device_info_next 
+0x158 000478 fetcht 1 ,mem_eeprom_sda_gpio 
+0x159 000479 call device_gpio_config_input_pu 
+0x15a 000480 fetcht 1 ,mem_eeprom_sda_gpio 
+0x15b 000481 call gpio_get_bit 
+0x15c 000482 branch p_keyboard_load_2k_eeprom_info ,true 
+:      000483 p_keyboard_load_2k_eeprom_device_info_next:
+0x15d 000484 call keyboard_eeprom_init 
+0x15e 000485 arg 128 ,temp 
+0x15f 000486 arg mem_device_flag ,rega 
+0x160 000487 arg keyboard_device_number_eeprom_offect ,regb 
+0x161 000488 call iicd_read_eep_data 
+0x162 000489 branch keyboard_load_info_check 
+:      000490 p_keyboard_load_otp_info:
+0x163 000491 fetch 1 ,mem_device_flag 
+0x164 000492 beq mode_24g_device ,p_keyboard_load_otp_device_info_g24_init 
+0x165 000493 branch keyboard_load_otp_info + 2 
+:      000495 p_keyboard_load_otp_device_info_g24_init:
+0x166 000496 arg 8 ,regd 
+0x167 000497 fetch 2 ,mem_otp_read_retention_max_size 
+0x168 000498 idiv regd 
+0x169 000499 call wait_div_end 
+0x16a 000500 quotient pdata 
+0x16b 000501 store 2 ,mem_pdatatemp 
+0x16c 000502 arg 0x1fac ,pdata 
+0x16d 000504 arg 4 ,temp 
+0x16e 000505 arg 4 ,rege 
+0x16f 000506 branch p_keyboard_load_otp_device_info 
+:      000508 p_keyboard_load_otp_device_info:
+0x170 000509 store 2 ,mem_pdatatemp + 2 
+0x171 000510 storet 1 ,mem_temp 
+0x172 000511 arg mem_otp_read_retention_memory ,rega 
+0x173 000512 arg 0 ,regc 
+:      000513 p_keyboard_load_otp_info_check_page_loop:
+0x174 000515 fetch 2 ,mem_pdatatemp + 2 
+0x175 000516 copy pdata ,regb 
+0x176 000517 fetchr loopcnt ,1 ,mem_temp 
+0x177 000518 arg mem_otp_read_retention_memory ,rega 
+0x178 000519 call otp_read_data 
+0x179 000520 fetch 8 ,mem_otp_read_retention_memory 
+0x17a 000521 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x17b 000522 ior temp ,pdata 
+0x17c 000523 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x17d 000524 ior temp ,pdata 
+0x17e 000526 branch p_keyboard_load_otp_info_check_first_time ,blank 
+0x17f 000527 increase 1 ,regc 
+0x180 000528 fetch 2 ,mem_pdatatemp 
+0x181 000529 isub regc ,null 
+0x182 000530 fetch 2 ,mem_pdatatemp + 2 
+0x183 000531 isub regd ,pdata 
+0x184 000532 store 2 ,mem_pdatatemp + 2 
+0x185 000533 branch p_keyboard_load_otp_info_check_page_loop 
+:      000535 p_keyboard_load_otp_info_check_first_time:
+0x186 000536 sub regc ,0 ,null 
+0x187 000537 branch p_keyboard_load_otp_info_check_first_time_process ,zero 
+:      000538 p_keyboard_load_otp_info_check_first_time_loop_init:
+0x188 000539 fetch 2 ,mem_pdatatemp + 2 
+0x189 000540 iadd regd ,pdata 
+:      000541 p_keyboard_load_otp_info_check_first_time_loop:
+0x18a 000542 isub rege ,pdata 
+0x18b 000543 store 2 ,mem_pdatatemp + 2 
+0x18c 000544 fetch 2 ,mem_pdatatemp + 2 
+0x18d 000545 copy pdata ,regb 
+0x18e 000546 fetchr loopcnt ,1 ,mem_temp 
+0x18f 000547 arg mem_otp_read_retention_memory ,rega 
+0x190 000548 call otp_read_data 
+0x191 000549 fetch 8 ,mem_otp_read_retention_memory 
+0x192 000550 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x193 000551 ior temp ,pdata 
+0x194 000552 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x195 000553 ior temp ,pdata 
+0x196 000554 branch p_keyboard_load_otp_info_check_offset_process ,blank 
+0x197 000555 fetch 2 ,mem_pdatatemp + 2 
+0x198 000556 branch p_keyboard_load_otp_info_check_first_time_loop 
+:      000558 p_keyboard_load_otp_info_check_first_time_process:
+0x199 000559 storer rege ,1 ,mem_otp_read_retention_offset 
+0x19a 000560 rtn 
+:      000561 p_keyboard_load_otp_info_check_offset_process:
+0x19b 000562 setarg 0x1fb0 
+0x19c 000564 fetcht 2 ,mem_pdatatemp + 2 
+0x19d 000565 isub temp ,pdata 
+0x19e 000566 store 2 ,mem_otp_read_retention_offset 
+0x19f 000567 copy temp ,pdata 
+0x1a0 000568 iadd rege ,regb 
+0x1a1 000569 fetchr loopcnt ,1 ,mem_temp 
+0x1a2 000570 arg mem_otp_read_retention_memory ,rega 
+0x1a3 000571 call otp_read_data 
+0x1a4 000572 fetch 1 ,mem_device_flag 
+0x1a5 000573 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+0x1a6 000574 beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
+0x1a7 000575 rtn 
+:      000577 p_keyboard_le_parse_att:
+0x1a8 000578 copy rega ,contr 
+0x1a9 000579 ifetch 3 ,contr 
+0x1aa 000580 store 3 ,mem_le_att_opcode 
+0x1ab 000581 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+0x1ac 000582 beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+0x1ad 000583 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+0x1ae 000584 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+0x1af 000585 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+0x1b0 000586 beq attop_read_blob_request ,p_keyboard_le_parse_att_read_blob_request 
+0x1b1 000587 beq attop_read_request ,keyboard_le_parse_att_read_request 
+0x1b2 000588 beq attop_write_request ,keyboard_le_parse_att_write_request 
+0x1b3 000589 beq attop_write_command ,keyboard_le_parse_att_write_command 
+0x1b4 000590 branch le_parse_att2 
+:      000592 p_keyboard_le_parse_att_read_blob_request:
+0x1b5 000593 ifetch 2 ,contr 
+0x1b6 000594 store 2 ,mem_le_att_offset 
+0x1b7 000595 iforce rega 
+0x1b8 000596 fetcht 2 ,mem_le_att_handle 
+0x1b9 000597 fetch 2 ,mem_le_pairing_handle 
+0x1ba 000598 isub temp ,null 
+0x1bb 000599 nbranch le_send_att_read_blob_response ,zero 
+0x1bc 000603 branch keyboard_le_send_att_read_blob_response 
+:      000605 p_keyboard_motion_data_check:
+0x1bd 000606 fetch 1 ,mem_keyboard_consumer_key_status 
+0x1be 000607 beq keyboard_consumer_key_release ,p_keyboard_value_consumer_release 
+0x1bf 000608 branch keyboard_motion_data_check + 3 
+:      000611 p_keyboard_value_tpye_consumer_set:
+0x1c0 000612 copy temp ,pdata 
+0x1c1 000613 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+0x1c2 000614 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x1c3 000615 sub temp ,hid_key_null ,null 
+0x1c4 000616 branch keyboard_value_consumer_all_key_release ,zero 
+0x1c5 000617 beq hid_key_multikey_media ,p_keyboard_value_media 
+0x1c6 000618 beq hid_key_multikey_vol_down ,p_keyboard_value_vol_down 
+0x1c7 000619 beq hid_key_multikey_vol_up ,p_keyboard_value_vol_up 
+0x1c8 000620 beq hid_key_multikey_mute ,p_keyboard_value_mute 
+0x1c9 000621 beq hid_key_multikey_pre_track ,p_keyboard_value_pre_track 
+0x1ca 000622 beq hid_key_multikey_next_track ,p_keyboard_value_next_track 
+0x1cb 000623 beq hid_key_multikey_paly ,p_keyboard_value_play 
+0x1cc 000624 beq hid_key_multikey_stop ,p_keyboard_value_stop 
+0x1cd 000626 beq hid_key_ac_home ,p_keyboard_value_ac_home 
+0x1ce 000627 beq hid_key_mail ,p_keyboard_value_mail 
+0x1cf 000628 beq hid_key_my_computer ,p_keyboard_value_my_computer 
+0x1d0 000629 beq hid_key_ac_favorites ,p_keyboard_value_ac_favorites 
+0x1d1 000630 beq hid_key_calculator ,p_keyboard_value_calculator 
+0x1d2 000631 beq hid_key_ac_search ,p_keyboard_value_ac_search 
+0x1d3 000632 beq hid_key_ac_back ,p_keyboard_value_ac_back 
+0x1d4 000633 beq hid_key_os_soft_kb ,p_keyboard_value_os_soft_kb 
+0x1d5 000635 beq hid_key_light_down ,p_keyboard_value_light_down 
+0x1d6 000636 beq hid_key_light_up ,p_keyboard_value_light_up 
+0x1d7 000637 beq hid_key_ios_android_os_lock ,p_keyboard_value_os_lock 
+0x1d8 000639 beq hid_key_mac_eject ,p_keyboard_value_mac_eject 
+0x1d9 000640 beq hid_key_ac_forward ,p_keyboard_value_ac_forward 
+0x1da 000641 beq hid_key_ac_stop ,p_keyboard_value_ac_stop 
+0x1db 000642 beq hid_key_ac_refresh ,p_keyboard_value_ac_refresh 
+0x1dc 000644 beq hid_key_system_sleep ,p_keyboard_value_system_sleep 
+0x1dd 000645 branch keyboard_motion_data_check_next 
+:      000647 p_keyboard_value_consumer_all_key_release:
+:      000648 p_keyboard_value_consumer_release:
+0x1de 000649 jam 2 ,mem_keyboard_data_change_flag 
+0x1df 000650 fetch 1 ,mem_keyboard_all_press_key_count 
+0x1e0 000651 call keyboard_value_release_all_key ,blank 
+0x1e1 000652 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0x1e2 000653 fetch 1 ,mem_device_flag 
+0x1e3 000654 beq mode_24g_device ,p_keyboard_24g_consumer_release 
+0x1e4 000655 setarg hid_reportid_bit_consumer_key 
+0x1e5 000656 store 3 ,mem_keyboard_tx_data 
+0x1e6 000657 branch keyboard_motion_data_check_next 
+:      000659 p_keyboard_24g_consumer_release:
+0x1e7 000660 setarg hid_reportid_consumer_key 
+0x1e8 000661 store 3 ,mem_keyboard_tx_data 
+0x1e9 000662 branch keyboard_motion_data_check_next 
+:      000664 p_keyboard_value_media:
+0x1ea 000665 fetch 1 ,mem_device_flag 
+0x1eb 000666 bne mode_24g_device ,keyboard_value_media 
+0x1ec 000667 setarg 0x0183 
+:      000669 p_keyboard_24g_standard_data_send:
+0x1ed 000670 store 2 ,mem_keyboard_tx_data + 1 
+0x1ee 000671 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+0x1ef 000672 branch keyboard_motion_data_check_next 
+:      000674 p_keyboard_value_vol_down:
+0x1f0 000675 fetch 1 ,mem_device_flag 
+0x1f1 000676 bne mode_24g_device ,keyboard_value_vol_down 
+0x1f2 000677 setarg 0x00ea 
+0x1f3 000678 branch p_keyboard_24g_standard_data_send 
+:      000680 p_keyboard_value_vol_up:
+0x1f4 000681 fetch 1 ,mem_device_flag 
+0x1f5 000682 bne mode_24g_device ,keyboard_value_vol_up 
+0x1f6 000683 setarg 0x00e9 
+0x1f7 000684 branch p_keyboard_24g_standard_data_send 
+:      000686 p_keyboard_value_mute:
+0x1f8 000687 fetch 1 ,mem_device_flag 
+0x1f9 000688 bne mode_24g_device ,keyboard_value_mute 
+0x1fa 000689 setarg 0x00e2 
+0x1fb 000690 branch p_keyboard_24g_standard_data_send 
+:      000692 p_keyboard_value_pre_track:
+0x1fc 000693 fetch 1 ,mem_device_flag 
+0x1fd 000694 bne mode_24g_device ,keyboard_value_pre_track 
+0x1fe 000695 setarg 0x00b6 
+0x1ff 000696 branch p_keyboard_24g_standard_data_send 
+:      000698 p_keyboard_value_next_track:
+0x200 000699 fetch 1 ,mem_device_flag 
+0x201 000700 bne mode_24g_device ,keyboard_value_next_track 
+0x202 000701 setarg 0x00b5 
+0x203 000702 branch p_keyboard_24g_standard_data_send 
+:      000704 p_keyboard_value_play:
+0x204 000705 fetch 1 ,mem_device_flag 
+0x205 000706 bne mode_24g_device ,keyboard_value_play 
+0x206 000707 setarg 0x00cd 
+0x207 000708 branch p_keyboard_24g_standard_data_send 
+:      000710 p_keyboard_value_stop:
+0x208 000711 fetch 1 ,mem_device_flag 
+0x209 000712 bne mode_24g_device ,keyboard_value_stop 
+0x20a 000713 setarg 0x00b7 
+0x20b 000714 branch p_keyboard_24g_standard_data_send 
+:      000716 p_keyboard_value_ac_home:
+0x20c 000717 fetch 1 ,mem_device_flag 
+0x20d 000718 bne mode_24g_device ,keyboard_value_ac_home 
+0x20e 000719 setarg 0x0223 
+0x20f 000720 branch p_keyboard_24g_standard_data_send 
+:      000722 p_keyboard_value_mail:
+0x210 000723 fetch 1 ,mem_device_flag 
+0x211 000724 bne mode_24g_device ,keyboard_value_mail 
+0x212 000725 setarg 0x018a 
+0x213 000726 branch p_keyboard_24g_standard_data_send 
+:      000728 p_keyboard_value_my_computer:
+0x214 000729 fetch 1 ,mem_device_flag 
+0x215 000730 bne mode_24g_device ,keyboard_value_my_computer 
+0x216 000731 setarg 0x0194 
+0x217 000732 branch p_keyboard_24g_standard_data_send 
+:      000734 p_keyboard_value_ac_favorites:
+0x218 000735 fetch 1 ,mem_device_flag 
+0x219 000736 bne mode_24g_device ,keyboard_value_ac_favorites 
+0x21a 000737 setarg 0x022a 
+0x21b 000738 branch p_keyboard_24g_standard_data_send 
+:      000740 p_keyboard_value_calculator:
+0x21c 000741 fetch 1 ,mem_device_flag 
+0x21d 000742 bne mode_24g_device ,keyboard_value_calculator 
+0x21e 000743 setarg 0x0192 
+0x21f 000744 branch p_keyboard_24g_standard_data_send 
+:      000746 p_keyboard_value_ac_search:
+0x220 000747 fetch 1 ,mem_device_flag 
+0x221 000748 bne mode_24g_device ,keyboard_value_ac_search 
+0x222 000749 fetch 1 ,mem_kb_computer_system 
+0x223 000750 beq system_os_ios ,p_keyboard_value_ac_home 
+0x224 000751 beq system_os_mac ,p_keyboard_value_ac_home 
+0x225 000752 setarg 0x0221 
+0x226 000753 branch p_keyboard_24g_standard_data_send 
+:      000755 p_keyboard_value_ac_back:
+0x227 000756 fetch 1 ,mem_device_flag 
+0x228 000757 bne mode_24g_device ,keyboard_value_ac_back 
+0x229 000758 setarg 0x0224 
+0x22a 000759 branch p_keyboard_24g_standard_data_send 
+:      000761 p_keyboard_value_os_soft_kb:
+0x22b 000762 fetch 1 ,mem_device_flag 
+0x22c 000763 bne mode_24g_device ,keyboard_value_os_soft_kb 
+0x22d 000764 fetch 1 ,mem_kb_computer_system 
+0x22e 000765 beq system_os_android ,p_keyboard_value_os_soft_kb_android 
+0x22f 000766 setarg 0x01ae 
+0x230 000767 branch p_keyboard_24g_standard_data_send 
+:      000769 p_keyboard_value_os_soft_kb_android:
+0x231 000770 setarg 0x0307 
+0x232 000771 branch p_keyboard_24g_standard_data_send 
+:      000773 p_keyboard_value_light_down:
+0x233 000774 fetch 1 ,mem_device_flag 
+0x234 000775 bne mode_24g_device ,keyboard_value_light_down 
+0x235 000776 setarg 0x0070 
+0x236 000777 branch p_keyboard_24g_standard_data_send 
+:      000779 p_keyboard_value_light_up:
+0x237 000780 fetch 1 ,mem_device_flag 
+0x238 000781 bne mode_24g_device ,keyboard_value_light_up 
+0x239 000782 setarg 0x006f 
+0x23a 000783 branch p_keyboard_24g_standard_data_send 
+:      000785 p_keyboard_value_os_lock:
+0x23b 000786 fetch 1 ,mem_device_flag 
+0x23c 000787 bne mode_24g_device ,keyboard_value_os_lock 
+0x23d 000788 setarg 0x0030 
+0x23e 000789 branch p_keyboard_24g_standard_data_send 
+:      000791 p_keyboard_value_mac_eject:
+0x23f 000792 fetch 1 ,mem_device_flag 
+0x240 000793 bne mode_24g_device ,keyboard_value_mac_eject 
+0x241 000794 setarg 0x00b8 
+0x242 000795 branch p_keyboard_24g_standard_data_send 
+:      000797 p_keyboard_value_ac_forward:
+0x243 000798 fetch 1 ,mem_device_flag 
+0x244 000799 bne mode_24g_device ,keyboard_value_ac_forward 
+0x245 000800 setarg 0x0225 
+0x246 000801 branch p_keyboard_24g_standard_data_send 
+:      000803 p_keyboard_value_ac_stop:
+0x247 000804 fetch 1 ,mem_device_flag 
+0x248 000805 bne mode_24g_device ,keyboard_value_ac_stop 
+0x249 000806 setarg 0x0226 
+0x24a 000807 branch p_keyboard_24g_standard_data_send 
+:      000809 p_keyboard_value_ac_refresh:
+0x24b 000810 fetch 1 ,mem_device_flag 
+0x24c 000811 bne mode_24g_device ,keyboard_value_ac_refresh 
+0x24d 000812 setarg 0x0227 
+0x24e 000813 branch p_keyboard_24g_standard_data_send 
+:      000815 p_keyboard_value_system_sleep:
+0x24f 000816 fetch 1 ,mem_device_flag 
+0x250 000817 bne mode_24g_device ,keyboard_value_system_sleep 
+0x251 000818 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0x252 000819 setarg 0x02 
+0x253 000820 store 1 ,mem_keyboard_tx_data + 1 
+0x254 000821 branch keyboard_motion_data_check_next 
+0x255 000822 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+:      000825 p_keyboard_app_enter_hibernate:
+0x256 000826 branch app_enter_hibernate 
+:      000829 p_mouse_adc_bat_percent_lowpower_out:
+0x257 000830 ifetch 8 ,rega 
+0x258 000831 store 8 ,mem_pdatatemp 
+:      000832 p_mouse_adc_bat_percent_lowpower_out_battery:
+0x259 000833 call adc_clear_no_power_flag 
+0x25a 000834 call p_adc_clear_low_power_flag 
+0x25b 000835 fetch 2 ,mem_pdatatemp + 6 
+0x25c 000836 fetcht 2 ,mem_pdatatemp + 2 
+0x25d 000837 isub temp ,null 
+0x25e 000838 ncall adc_set_no_power_flag ,positive 
+0x25f 000839 fetcht 2 ,mem_pdatatemp + 4 
+0x260 000840 isub temp ,null 
+0x261 000841 ncall p_adc_set_low_power_flag ,positive 
+0x262 000842 branch mouse_adc_bat_level_set 
+:      000844 p_adc_clear_low_power_flag:
+0x263 000845 fetcht 1 ,mem_adc_power_flag 
+0x264 000846 set0 0 ,temp 
+0x265 000847 branch adc_set_power_flag 
+:      000849 p_adc_set_low_power_flag:
+0x266 000850 fetcht 1 ,mem_adc_power_flag 
+0x267 000851 set1 0 ,temp 
+0x268 000852 branch adc_set_power_flag 
+:      000854 p_keyboard_adc_vol_init:
+0x269 000855 fetch 2 ,mem_keyboard_vdd_full_vol 
+0x26a 000856 store 2 ,mem_device_vdd_full_vol 
+0x26b 000857 fetch 2 ,mem_keyboard_vdd_empty_vol 
+0x26c 000858 store 2 ,mem_device_vdd_empty_vol 
+0x26d 000859 fetch 2 ,mem_keyboard_vdd_low_vol 
+0x26e 000860 store 2 ,mem_device_vdd_low_vol 
+0x26f 000861 rtn 
+:      000864 p_keyboard_adc_vol_4v2_init:
+0x270 000865 setarg 0x2c1270 
+0x271 000866 store 3 ,mem_keyboard_vdd_full_vol 
+0x272 000867 setarg 0x014001 
+0x273 000868 istore 3 ,contw 
+0x274 000869 rtn 
+:      000872 p_keyboard_key_process:
+0x275 000873 arg mem_keyscan_value_current ,rega 
+0x276 000874 arg mem_keyscan_value_check ,regb 
+0x277 000875 arg 20 ,loopcnt 
+0x278 000876 call string_compare 
+0x279 000877 nbranch p_keyboard_press_change_or_no_key ,zero 
+0x27a 000878 branch keyboard_key_process + 5 
+:      000880 p_keyboard_idle:
+0x27b 000881 call p_keyboard_evt_ui_timer_check 
+0x27c 000882 branch keyboard_idle + 1 
+:      000884 p_keyboard_evt_ui_timer_check:
+0x27d 000885 arg 0 ,rega 
+0x27e 000886 fetcht 4 ,mem_keyboard_evt_btclk 
+0x27f 000887 copy clkn_bt ,regb 
+0x280 000888 copy regb ,pdata 
+0x281 000889 isub temp ,null 
+0x282 000890 ncall ui_timer_timeout ,positive 
+:      000891 p_keyboard_evt_ui_timer_check_loop:
+0x283 000892 copy regb ,pdata 
+0x284 000893 increase 40 ,temp 
+0x285 000894 isub temp ,null 
+0x286 000895 nbranch p_keyboard_evt_ui_timer_check_end ,positive 
+0x287 000896 increase 1 ,rega 
+0x288 000897 and rega ,0x0f ,pdata 
+0x289 000898 nbranch p_keyboard_evt_ui_timer_check_loop ,blank 
+0x28a 000899 arg 0 ,rega 
+0x28b 000900 call p_keyboard_evt_ui_timer_check_send_evt 
+:      000901 p_keyboard_evt_ui_timer_init:
+0x28c 000902 copy clkn_bt ,pdata 
+0x28d 000903 store 4 ,mem_keyboard_evt_btclk 
+0x28e 000904 rtn 
+:      000907 p_keyboard_evt_ui_timer_check_end:
+0x28f 000908 copy rega ,pdata 
+0x290 000909 rtn blank 
+0x291 000910 increase -40 ,temp 
+0x292 000911 set0 28 ,temp 
+0x293 000912 storet 4 ,mem_keyboard_evt_btclk 
+:      000913 p_keyboard_evt_ui_timer_check_send_evt:
+0x294 000914 store 1 ,mem_keyboard_evt_timer_count 
+:      000915 p_keyboard_evt_50ms_loop:
+0x295 000916 fetch 1 ,mem_keyboard_evt_timer_count 
+0x296 000917 rtn blank 
+0x297 000918 increase -1 ,pdata 
+0x298 000919 store 1 ,mem_keyboard_evt_timer_count 
+0x299 000920 call p_keyboard_delay_lpm_timer 
+0x29a 000921 branch p_keyboard_evt_50ms_loop 
+:      000923 p_keyboard_delay_lpm_timer:
+0x29b 000924 fetch 1 ,mem_keyboard_delay_lpm_flag 
+0x29c 000925 rtn blank 
+0x29d 000926 jam 1 ,mem_lpm_mode 
+0x29e 000927 jam 0 ,mem_keyboard_delay_lpm_flag 
+0x29f 000928 rtn 
+:      000930 p_keyboard_press_change_or_no_key:
+0x2a0 000931 jam 0 ,mem_lpm_mode 
+0x2a1 000932 jam 1 ,mem_keyboard_delay_lpm_flag 
+0x2a2 000933 branch keyboard_press_change_or_no_key 
+:      000936 p_keyboard_led_dispatch_timer:
+0x2a3 000937 call keyboard_rgb_on_timer 
+0x2a4 000938 call p_keyboard_device_poweron_timer 
+0x2a5 000939 call keyboard_mode_led_timer 
+0x2a6 000940 call p_keyboard_check_system_is_mac_timer 
+0x2a7 000942 call keyboard_num_capslock_led_on_timer 
+0x2a8 000943 call p_keyboard_device_pair_led_timer 
+0x2a9 000945 call p_keyboard_low_voltage_led_timer 
+0x2aa 000947 rtn 
+:      000948 p_keyboard_device_poweron_timer:
+0x2ab 000949 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x2ac 000950 rtn blank 
+0x2ad 000951 increase -1 ,pdata 
+0x2ae 000952 store 1 ,mem_keyboard_device_poweron_timer 
+0x2af 000953 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x2b0 000954 bbit1 keyboard_enable_030_power_led ,p_keyboard_device_poweron_030_led 
+0x2b1 000955 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x2b2 000956 branch keyboard_device_led_off ,blank 
+0x2b3 000957 branch keyboard_device_led_on 
+:      000958 p_keyboard_device_poweron_030_led:
+0x2b4 000959 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x2b5 000960 branch keyboard_power_led_off ,blank 
+0x2b6 000961 branch keyboard_power_led_on 
+:      000963 p_keyboard_low_voltage_led_timer:
+0x2b7 000964 jam 0 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+0x2b8 000965 fetch 2 ,mem_device_discovery_timer 
+0x2b9 000966 nrtn blank 
+0x2ba 000968 fetch 2 ,mem_24g_pair_timeout 
+0x2bb 000969 nrtn blank 
+0x2bc 000970 fetch 2 ,mem_24g_reconn_timeout 
+0x2bd 000971 nrtn blank 
+0x2be 000972 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x2bf 000973 nrtn blank 
+0x2c0 000974 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x2c1 000975 rtnbit0 keyboard_enable_adc 
+0x2c2 000976 rtnbit0 keyboard_enable_low_led 
+0x2c3 000977 rtnbit0 keyboard_low_voltage_flag 
+0x2c4 000978 bbit1 keyboard_enable_low_voltage_led_blink_n_second ,keyboard_low_voltage_led_blink_new_data 
+0x2c5 000979 bpatch patch08_5 ,mem_patch08 
+0x2c6 000980 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x2c7 000981 increase 1 ,pdata 
+0x2c8 000982 store 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x2c9 000985 sub pdata ,6 ,null 
+0x2ca 000986 ncall keyboard_adc_low_volatage_led_timer_count_clean ,positive 
+0x2cb 000987 sub pdata ,3 ,null 
+0x2cc 000988 ncall keyboard_low_voltage_led_off ,positive 
+0x2cd 000989 call keyboard_low_voltage_led_on 
+0x2ce 000991 rtn 
+:      000993 p_keyboard_device_pair_led_timer:
+0x2cf 000996 fetch 1 ,mem_24g_conn_sm 
+0x2d0 000997 rtneq 4 
+0x2d1 000998 fetch 1 ,mem_device_flag 
+0x2d2 001000 beq mode_24g_device ,p_keyboard_device_24g_pair_led 
+0x2d3 001001 branch keyboard_device_pair_led_timer + 2 
+:      001003 p_keyboard_device_24g_pair_led:
+0x2d4 001004 fetch 2 ,mem_24g_pair_timeout 
+0x2d5 001005 branch p_keyboard_pair_success_led_remove ,blank 
+0x2d6 001006 branch keyboard_device_pair_led 
+:      001008 p_keyboard_pair_success_led_remove:
+0x2d7 001009 fetch 1 ,mem_adc_power_flag 
+0x2d8 001010 bbit1 0 ,p_keyboard_pair_sucess_led_move_next 
+0x2d9 001011 fetch 1 ,mem_keyboard_led_status 
+0x2da 001012 bbit1 kb_pc_keysel_numlock ,p_keyboard_pair_sucess_led_move_next 
+0x2db 001013 fetch 2 ,mem_24g_reconn_timeout 
+0x2dc 001014 nbranch keyboard_device_24g_pair_led ,blank 
+0x2dd 001015 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x2de 001016 nrtn blank 
+0x2df 001017 branch keyboard_device_24g_led_off 
+:      001018 p_keyboard_pair_sucess_led_move_next:
+0x2e0 001019 rtn 
+:      001020 p_keyboard_check_system_is_mac_timer:
+0x2e1 001021 jam system_os_mac ,mem_kb_computer_system 
+0x2e2 001022 fetch 1 ,mem_keyboard_led_status 
+0x2e3 001023 rtnbit1 7 
+0x2e4 001024 jam system_os_windows ,mem_kb_computer_system 
+0x2e5 001025 rtn 
+:      001028 p_g24_transmit_no_interrupt:
+0x2e6 001029 branch keyboard_g24_transmit_no_interrupt 
+:      001031 p_keyboard_commbination_key_press_check:
+0x2e7 001032 jam 0 ,mem_keyboard_commbination_press_type 
+0x2e8 001033 fetch 1 ,mem_device_flag 
+0x2e9 001034 bne mode_24g_device ,keyboard_commbination_key_press_check_bt 
+0x2ea 001035 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x2eb 001036 rtnbit0 keyboard_enable_commbination_key_by_24g_pairing 
+0x2ec 001037 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x2ed 001038 fetcht 2 ,mem_keyboard_commbination_key_24g 
+0x2ee 001039 isub temp ,null 
+0x2ef 001040 branch p_keyboard_commbination_key_down_24g ,zero 
+0x2f0 001041 byteswap temp ,temp 
+0x2f1 001042 isub temp ,null 
+0x2f2 001043 branch p_keyboard_commbination_key_down_24g ,zero 
+0x2f3 001044 branch mouse_commbination_key_up 
+:      001045 p_keyboard_commbination_key_down_24g:
+0x2f4 001046 branch keyboard_24g_start_pair_mode 
+              org 0x2000
+:      001053 start:
+0x2000 001054 call lpmstate 
+:      001056 soft_reset:
+0x2001 001057 bpatch patch00_0 ,mem_patch00 
+0x2002 001058 clear_stack 
+0x2003 001060 call load_otp_set_init 
+0x2004 001061 call app_param_init 
+0x2005 001062 call initialize_radio 
+0x2006 001063 call iic_init_360khz 
+0x2007 001064 call init_param 
+0x2008 001065 call l2cap_init 
+0x2009 001066 bpatch patch00_1 ,mem_patch00 
+0x200a 001067 call ui_init 
+0x200b 001068 call app_init 
+0x200c 001069 call publickey_init 
+0x200d 001071 call lpm_recover_clk ,wake 
+:      001072 main_loop:
+0x200e 001073 bpatch patch00_2 ,mem_patch00 
+0x200f 001074 call sp_calc_sequence_256 
+0x2010 001075 call sp_calc_sequence_256_check 
+0x2011 001076 call le_advertising_dispatch 
+0x2012 001077 call idle_dispatch 
+0x2013 001078 call app_process_idle 
+0x2014 001079 call connection_dispatch 
+0x2015 001080 call g24_dispatch 
+0x2016 001081 call lpm_dispatch 
+0x2017 001082 branch main_loop 
+:      001084 connection_dispatch:
+0x2018 001085 call connection_incontext 
+0x2019 001086 rtnmark0 mark_context 
+0x201a 001087 set0 mark_context ,mark 
+0x201b 001088 call context_save 
+0x201c 001089 branch le_disable 
+:      001091 connection_incontext:
+0x201d 001092 bpatch patch00_3 ,mem_patch00 
+0x201e 001093 call context_search_insniff 
+0x201f 001094 nbranch connection_nosniff ,zero 
+0x2020 001095 call context_load 
+0x2021 001096 add rega ,coffset_mode ,contr 
+0x2022 001097 ifetch 1 ,contr 
+0x2023 001098 bbit1 mode_le ,le_conn_dispatch 
+0x2024 001101 rtn 
+:      001103 connection_nosniff:
+0x2025 001104 jam 0 ,mem_current_context 
+0x2026 001105 call context_get_next 
+0x2027 001106 copy loopcnt ,null 
+0x2028 001107 rtn zero 
+0x2029 001108 branch assert 
+:      001115 idle_dispatch:
+0x202a 001116 fetch 1 ,mem_hci_cmd 
+0x202b 001117 rtn blank 
+0x202c 001118 beq hci_cmd_le_create_conn ,idle_le_create_conn 
+0x202d 001119 call context_search_conn_handle 
+0x202e 001120 rtn zero 
+0x202f 001121 call context_search_plap 
+0x2030 001122 rtn zero 
+:      001123 idle_exit:
+0x2031 001124 jam 0 ,mem_hci_cmd 
+0x2032 001125 rtn 
+:      001127 idle_le_create_conn:
+0x2033 001128 jam hci_cmd_le_create_conn ,mem_cmd_le_create_conn 
+0x2034 001129 jam 0 ,mem_hci_cmd 
+0x2035 001130 rtn 
+:      001134 context_load:
+0x2036 001135 bpatch patch00_4 ,mem_patch00 
+0x2037 001136 set1 mark_context ,mark 
+0x2038 001137 deposit rega 
+0x2039 001138 store 2 ,mem_context_ptr 
+0x203a 001139 force context_size ,loopcnt 
+0x203b 001140 arg mem_le_state ,contw 
+0x203c 001141 add rega ,coffset_mode ,contr 
+0x203d 001142 ifetch 1 ,contr 
+0x203e 001143 copy rega ,contr 
+0x203f 001144 bbit1 mode_le ,memcpy 
+0x2040 001145 rtn 
+:      001147 context_save:
+0x2041 001148 bpatch patch00_5 ,mem_patch00 
+0x2042 001149 fetch 2 ,mem_context_ptr 
+0x2043 001150 iforce contw 
+0x2044 001151 force context_size ,loopcnt 
+0x2045 001152 arg mem_le_state ,contr 
+0x2046 001153 branch memcpy 
+:      001157 context_get_next:
+0x2047 001158 arg context_num ,loopcnt 
+0x2048 001159 fetcht 1 ,mem_current_context 
+:      001160 context_get_next_loop:
+0x2049 001161 increase 1 ,temp 
+0x204a 001162 compare context_num ,temp ,0xff 
+0x204b 001163 nbranch context_get_next_cont ,true 
+0x204c 001164 arg 0 ,temp 
+:      001165 context_get_next_cont:
+0x204d 001166 storet 1 ,mem_current_context 
+0x204e 001167 mul32 temp ,context_size ,pdata 
+0x204f 001168 arg mem_context ,rega 
+0x2050 001169 iadd rega ,rega 
+0x2051 001170 ifetch 1 ,rega 
+0x2052 001171 bbit1 state_insniff ,context_get_next_sniff 
+0x2053 001172 rtnbit1 state_inconn 
+:      001173 context_get_next_sniff:
+0x2054 001174 loop context_get_next_loop 
+0x2055 001175 rtn 
+:      001177 context_new:
+0x2056 001178 bpatch patch00_6 ,mem_patch00 
+0x2057 001179 arg context_search_empty ,regc 
+0x2058 001180 call context_search 
+0x2059 001181 nrtn zero 
+0x205a 001182 deposit rega 
+0x205b 001183 store 2 ,mem_context_ptr 
+0x205c 001184 branch enable_zero 
+:      001189 context_check_idle:
+0x205d 001190 arg context_check_inconn ,regc 
+0x205e 001191 branch context_search 
+:      001196 context_search_conn_handle:
+0x205f 001197 fetcht 1 ,mem_hci_conn_handle 
+:      001198 context_search_conn_handle2:
+0x2060 001199 arg context_search_handle ,regc 
+0x2061 001200 branch context_search 
+:      001203 context_search_plap:
+0x2062 001204 bpatch patch00_7 ,mem_patch00 
+0x2063 001205 fetcht 6 ,mem_hci_plap 
+:      001206 context_search_plap2:
+0x2064 001207 arg context_search_lap ,regc 
+0x2065 001208 branch context_search 
+:      001210 context_search_insniff:
+0x2066 001211 arg context_search_sniff ,regc 
+0x2067 001212 branch context_search 
+:      001214 context_search_sniff_window:
+0x2068 001215 arg context_search_window ,regc 
+:      001216 context_search:
+0x2069 001217 bpatch patch01_0 ,mem_patch01 
+0x206a 001218 arg mem_context ,rega 
+0x206b 001219 arg context_num ,loopcnt 
+:      001220 context_search_loop:
+0x206c 001221 ifetch 1 ,rega 
+0x206d 001222 copy regc ,pc 
+:      001223 context_search_next:
+0x206e 001224 bpatch patch01_1 ,mem_patch01 
+0x206f 001225 increase context_size ,rega 
+0x2070 001226 loop context_search_loop 
+0x2071 001227 force 1 ,null 
+0x2072 001228 rtn 
+:      001230 context_search_empty:
+0x2073 001231 bbit1 state_inconn ,context_search_next 
+0x2074 001232 branch enable_zero 
+:      001234 context_search_lap:
+0x2075 001235 bbit0 state_inconn ,context_search_next 
+:      001236 context_search_lap_cont:
+0x2076 001237 add rega ,coffset_plap ,contr 
+0x2077 001238 ifetch 6 ,contr 
+0x2078 001239 isub temp ,null 
+0x2079 001240 rtn zero 
+0x207a 001241 branch context_search_next 
+:      001243 context_search_handle:
+0x207b 001244 bbit0 state_inconn ,context_search_next 
+0x207c 001245 add rega ,coffset_conn_handle ,contr 
+0x207d 001246 ifetch 1 ,contr 
+0x207e 001247 isub temp ,null 
+0x207f 001248 rtn zero 
+0x2080 001249 branch context_search_next 
+:      001251 context_search_sniff:
+0x2081 001252 bbit0 state_insniff ,context_search_next 
+:      001253 context_search_sniff_loop:
+0x2082 001254 call context_get_anchor 
+0x2083 001255 call sign_pdata_temp 
+0x2084 001256 isub temp ,pdata 
+0x2085 001257 increase 1 ,pdata 
+0x2086 001258 branch context_search_sniff_miss ,positive 
+0x2087 001259 copy contr ,regb 
+0x2088 001260 store 9 ,mem_temp 
+0x2089 001261 bpatch patch01_2 ,mem_patch01 
+0x208a 001262 fetch 1 ,mem_sc_calc 
+0x208b 001263 nbranch context_search_sniff_sc ,blank 
+0x208c 001264 fetch 9 ,mem_temp 
+0x208d 001265 copy regb ,contr 
+0x208e 001266 increase 5 ,pdata 
+0x208f 001267 branch context_search_meet1 
+:      001269 context_search_sniff_sc:
+0x2090 001270 fetch 9 ,mem_temp 
+0x2091 001271 copy regb ,contr 
+0x2092 001272 increase 20 ,pdata 
+:      001273 context_search_meet1:
+0x2093 001274 nbranch context_search_next ,positive 
+:      001275 context_search_meet:
+0x2094 001276 copy temp ,bt_clk 
+0x2095 001277 call context_next_anchor 
+0x2096 001278 branch enable_zero 
+:      001281 context_search_sniff_miss:
+0x2097 001282 iforce regb 
+0x2098 001283 add rega ,coffset_tsniff ,contr 
+0x2099 001284 ifetch 2 ,contr 
+0x209a 001285 branch context_search_meet ,blank 
+0x209b 001286 call context_next_anchor 
+0x209c 001287 branch context_search_sniff_loop 
+:      001289 sign_pdata_temp:
+0x209d 001290 rshift16 pdata ,timeup 
+0x209e 001291 rshift8 timeup ,timeup 
+0x209f 001292 branch sign_pdata_temp_p0 ,zero 
+0x20a0 001293 compare 0xf ,timeup ,0xf 
+0x20a1 001294 nrtn true 
+0x20a2 001295 rshift16 temp ,timeup 
+0x20a3 001296 rshift8 timeup ,timeup 
+0x20a4 001297 nrtn zero 
+0x20a5 001298 set1 28 ,temp 
+0x20a6 001299 rtn 
+:      001300 sign_pdata_temp_p0:
+0x20a7 001301 rshift16 temp ,timeup 
+0x20a8 001302 rshift8 timeup ,timeup 
+0x20a9 001303 compare 0xf ,timeup ,0xf 
+0x20aa 001304 nrtn true 
+0x20ab 001305 set1 28 ,pdata 
+0x20ac 001306 rtn 
+:      001308 context_check_inconn:
+0x20ad 001309 bbit0 state_inconn ,context_search_next 
+0x20ae 001310 branch enable_zero 
+:      001313 context_check_a_wack:
+0x20af 001314 bbit0 state_inconn ,context_search_next 
+0x20b0 001315 add rega ,coffset_mode ,contr 
+0x20b1 001316 ifetch 1 ,contr 
+0x20b2 001317 bbit1 mode_le ,context_search_next 
+0x20b3 001318 rtn 
+:      001320 context_get_anchor:
+0x20b4 001321 add rega ,coffset_mode ,contr 
+0x20b5 001322 ifetcht 1 ,contr 
+0x20b6 001323 deposit clkn_bt 
+0x20b7 001324 isolate1 mode_master ,temp 
+0x20b8 001325 add rega ,coffset_sniff_anchor ,contr 
+0x20b9 001326 ifetcht 4 ,contr 
+0x20ba 001327 rtn true 
+0x20bb 001328 add rega ,coffset_clk_offset ,contr 
+0x20bc 001329 ifetch 6 ,contr 
+0x20bd 001330 call calc_clke2 
+0x20be 001331 deposit clke_bt 
+0x20bf 001332 rtn 
+:      001334 context_next_anchor:
+0x20c0 001335 add rega ,coffset_tsniff ,contr 
+0x20c1 001336 add rega ,coffset_sniff_anchor ,contw 
+0x20c2 001337 ifetch 2 ,contr 
+0x20c3 001338 iadd temp ,timeup 
+0x20c4 001339 deposit timeup 
+0x20c5 001340 istore 4 ,contw 
+0x20c6 001341 branch le_context_nextevent 
+:      001344 context_search_window:
+0x20c7 001345 bbit0 state_insniff ,context_search_next 
+0x20c8 001346 call context_get_anchor 
+0x20c9 001347 iadd stop_watch ,pdata 
+0x20ca 001348 iadd stop_watch ,pdata 
+0x20cb 001349 iadd queue ,pdata 
+0x20cc 001350 isub temp ,null 
+0x20cd 001351 nbranch context_search_next ,positive 
+0x20ce 001352 branch enable_zero 
+:      001356 end_of_packet:
+0x20cf 001357 bpatch patch01_3 ,mem_patch01 
+0x20d0 001358 disable lr_s2en 
+0x20d1 001359 disable encode_fec0 
+0x20d2 001360 disable encode_fec2 
+0x20d3 001361 disable decode_fec0 
+0x20d4 001362 disable decode_fec2 
+0x20d5 001363 disable enable_crc 
+0x20d6 001364 disable encrypt 
+0x20d7 001365 disable enable_white 
+0x20d8 001366 branch shutdown_radio ,is_rx 
+0x20d9 001367 until null ,tx_clear 
+0x20da 001368 nop 100 
+0x20db 001369 branch shutdown_radio 
+:      001374 sniff_check_window:
+0x20dc 001375 bpatch patch01_4 ,mem_patch01 
+0x20dd 001376 disable swfine 
+0x20de 001377 copy temp ,stop_watch 
+0x20df 001378 call context_search_sniff_window 
+0x20e0 001379 disable user 
+0x20e1 001380 nrtn zero 
+0x20e2 001381 force 0 ,stop_watch 
+0x20e3 001382 branch enable_user 
+:      001385 calc_slot_offset:
+0x20e4 001386 bpatch patch01_5 ,mem_patch01 
+0x20e5 001387 until null ,halfslot 
+0x20e6 001388 deposit clke 
+0x20e7 001389 iforce contr 
+0x20e8 001390 rshift16 ,pdata ,pdata 
+0x20e9 001391 isub clkn_bt ,loopcnt 
+0x20ea 001392 and_into 3 ,loopcnt 
+0x20eb 001393 nbranch calc_bt_portion ,zero 
+0x20ec 001394 force 0 ,pdata 
+0x20ed 001395 branch calc_skip_bt 
+:      001396 calc_bt_portion:
+0x20ee 001397 fetcht 2 ,mem_param_rt_rthalfslot 
+0x20ef 001398 force 0 ,pdata 
+:      001399 calc_slot_offset_loop:
+0x20f0 001400 iadd temp ,pdata 
+0x20f1 001401 loop calc_slot_offset_loop 
+:      001402 calc_skip_bt:
+0x20f2 001403 iadd contr ,pdata 
+0x20f3 001404 div pdata ,12 
+0x20f4 001405 call get_div_result 
+0x20f5 001406 store 2 ,mem_slot_offset 
+0x20f6 001407 rtn 
+:      001409 calc_clke_offset:
+0x20f7 001410 bpatch patch01_6 ,mem_patch01 
+0x20f8 001411 deposit clke 
+0x20f9 001412 copy clkn ,temp 
+0x20fa 001413 isub temp ,null 
+0x20fb 001414 nsetflag positive ,44 ,pdata 
+0x20fc 001415 isub temp ,temp 
+0x20fd 001416 fetch 2 ,mem_param_rt_rthalfslot 
+0x20fe 001417 isolate0 15 ,temp 
+0x20ff 001418 branch calc_clke_pos ,true 
+0x2100 001419 copy temp ,alarm 
+0x2101 001420 arg 0x10000 ,temp 
+0x2102 001421 fetch 2 ,mem_param_rt_rthalfslot 
+0x2103 001422 isub temp ,pdata 
+0x2104 001423 iadd alarm ,temp 
+:      001425 calc_clke_pos:
+0x2105 001426 storet 6 ,mem_le_clk_offset 
+0x2106 001427 rtn 
+:      001429 calc_clke:
+0x2107 001430 disable clknt 
+0x2108 001431 fetch 6 ,mem_le_clk_offset 
+:      001432 calc_clke2:
+0x2109 001433 iadd clkn ,alarm 
+0x210a 001434 increase 10 ,alarm 
+0x210b 001435 fetch 2 ,mem_param_rt_rthalfslot 
+0x210c 001436 isub alarm ,pdata 
+0x210d 001437 isolate0 15 ,pdata 
+0x210e 001438 branch calc_clke_pos_adj ,true 
+0x210f 001439 setarg 0x10000 
+0x2110 001440 fetchr regd ,2 ,mem_param_rt_rthalfslot 
+0x2111 001441 isub regd ,pdata 
+0x2112 001442 iadd alarm ,alarm 
+:      001443 calc_clke_pos2:
+0x2113 001444 copy alarm ,clke 
+0x2114 001445 rtn 
+:      001446 calc_clke_pos_adj:
+0x2115 001447 force 0 ,null 
+0x2116 001448 branch calc_clke_pos2 
+:      001455 qsetxor:
+0x2117 001456 rshift3 pdata ,pdata 
+0x2118 001457 ifetchr rega ,1 ,contw 
+0x2119 001458 ixor rega ,pdata 
+0x211a 001459 isolate0 6 ,pdata 
+0x211b 001460 branch qset_p 
+:      001462 qset1_p:
+0x211c 001463 isolate0 0 ,null 
+:      001464 qset_start:
+0x211d 001465 arg 0x8ac2 ,contw 
+:      001466 qset_p:
+0x211e 001467 ifetch 1 ,contw 
+0x211f 001468 qsetflag true ,pdata 
+0x2120 001469 istore 1 ,contw 
+0x2121 001470 rtn 
+:      001472 rx_dcoc_avg:
+0x2122 001473 nop 60 
+:      001474 btdma:
+0x2123 001476 setarg mem_dcoc_buf 
+0x2124 001477 store 2 ,0x8982 
+0x2125 001478 setarg mem_dcoc_buf_end 
+0x2126 001479 store 2 ,0x8984 
+0x2127 001480 jam 0x9 ,0x8981 
+0x2128 001481 jam 0x3 ,0x8981 
+0x2129 001482 jam 0x6 ,0x8980 
+0x212a 001483 nop 60 
+0x212b 001484 arg 0 ,rega 
+0x212c 001485 arg 0 ,regb 
+0x212d 001486 arg 16 ,loopcnt 
+0x212e 001487 arg mem_dcoc_buf ,contr 
+:      001488 rx_dcoc_loop:
+0x212f 001489 ifetch 2 ,contr 
+0x2130 001490 iadd rega ,rega 
+0x2131 001491 ifetch 2 ,contr 
+0x2132 001492 iadd regb ,regb 
+0x2133 001493 loop rx_dcoc_loop 
+0x2134 001494 rtn 
+:      001496 rx_dcoc:
+0x2135 001497 bpatch patch01_7 ,mem_patch01 
+0x2136 001498 rtn wake 
+0x2137 001499 call set_sync_on 
+0x2138 001500 arg 39 ,temp 
+0x2139 001501 call set_freq_rx 
+0x213a 001502 call rf_rx_enable 
+0x213b 001503 jam 0x7f ,0x8a25 
+0x213c 001504 jam 0x1a ,0x8a30 
+0x213d 001505 jam 0x78 ,0x8a31 
+0x213e 001506 jam 0xb2 ,0x8a8f 
+0x213f 001507 jam 0 ,0x8ac2 
+0x2140 001508 jam 0 ,0x8ac3 
+0x2141 001509 arg 6 ,queue 
+0x2142 001510 call rx_dcoc_avg 
+0x2143 001511 isolate1 13 ,rega 
+0x2144 001512 call qset_start 
+0x2145 001513 isolate1 13 ,regb 
+0x2146 001514 call qset_p 
+0x2147 001515 arg 5 ,queue 
+:      001516 rx_dcoc_loop2:
+0x2148 001517 call qset1_p 
+0x2149 001518 call qset_p 
+0x214a 001519 call rx_dcoc_avg 
+0x214b 001520 arg 0x8ac2 ,contw 
+0x214c 001521 rshift4 rega ,pdata 
+0x214d 001522 call qsetxor 
+0x214e 001523 rshift4 regb ,pdata 
+0x214f 001524 call qsetxor 
+0x2150 001525 increase -1 ,queue 
+0x2151 001526 branch rx_dcoc_loop2 ,positive 
+0x2152 001527 jam 0x52 ,0x8a8f 
+0x2153 001528 jam 2 ,0x8a30 
+0x2154 001529 jam 0 ,0x8981 
+:      001531 shutdown_radio:
+0x2155 001532 bpatch patch02_0 ,mem_patch02 
+0x2156 001533 call rf_debug_shutdown_radio_line 
+0x2157 001534 disable is_tx 
+0x2158 001535 disable is_rx 
+0x2159 001536 setarg 0x0200 
+0x215a 001537 store 4 ,0x8a23 
+0x215b 001538 jam 0xfa ,0x8a01 
+0x215c 001539 nop 12 
+0x215d 001540 jam 0 ,0x8a0f 
+0x215e 001541 jam 0x1a ,0x8a12 
+0x215f 001542 jam 0x2b ,0x8a14 
+0x2160 001543 force 8 ,radio_ctrl 
+0x2161 001544 force 0 ,radio_ctrl 
+0x2162 001545 jam 0 ,0x8900 
+0x2163 001546 branch gain_control 
+:      001548 set_sync_on:
+0x2164 001549 bpatch patch02_1 ,mem_patch02 
+0x2165 001550 jam 0x60 ,0x8a0f 
+0x2166 001551 jam 0xaa ,0x8a10 
+0x2167 001552 jam 0x7a ,0x8a12 
+0x2168 001553 jam 0x00 ,0x8a25 
+0x2169 001554 jam 0x00 ,0x8a26 
+0x216a 001555 nop 60 
+0x216b 001556 jam 0x20 ,0x8a20 
+0x216c 001557 jam 0xf5 ,0x8a23 
+0x216d 001558 jam 0x12 ,0x8a24 
+0x216e 001559 jam 0x10 ,0x8a24 
+0x216f 001560 nop 60 
+0x2170 001561 jam 0x60 ,0x8a12 
+0x2171 001562 jam 0xdd ,0x8a23 
+0x2172 001563 rtn 
+:      001565 set_freq_rx:
+0x2173 001566 bpatch patch02_2 ,mem_patch02 
+0x2174 001567 jam 0x01 ,0x8900 
+0x2175 001568 jam 0x9d ,0x8a23 
+0x2176 001569 jam 0x02 ,0x8a24 
+0x2177 001570 nop 20 
+0x2178 001571 jam 0x65 ,0x8a70 
+0x2179 001572 jam 0x9f ,0x8a23 
+0x217a 001573 call set_lemode 
+0x217b 001574 storet 1 ,mem_last_freq 
+0x217c 001575 increase 1 ,temp 
+:      001579 aac_res_lookup:
+0x217d 001580 bpatch patch02_3 ,mem_patch02 
+0x217e 001581 rshift4 temp ,pdata 
+0x217f 001582 arg mem_aac_res_table ,contr 
+0x2180 001583 iadd contr ,contr 
+0x2181 001584 ifetch 1 ,contr 
+0x2182 001585 fetchr rega ,1 ,0x8a71 
+0x2183 001586 and_into 0xf ,rega 
+0x2184 001587 ior rega ,pdata 
+0x2185 001588 store 1 ,0x8a71 
+0x2186 001589 call calc_freq 
+0x2187 001590 nop 144 
+0x2188 001591 fetch 1 ,mem_fcomp_div 
+0x2189 001592 beq xtal_24m ,aac_res_lookup_end 
+0x218a 001593 nop 36 
+:      001594 aac_res_lookup_end:
+0x218b 001595 jam 0x80 ,0x8a20 
+0x218c 001596 rtn 
+:      001599 set_lemode_2m_16m:
+0x218d 001600 setarg 0x8312 
+0x218e 001601 store 2 ,0x8907 
+0x218f 001602 branch set_lemode_2m 
+:      001604 set_lemode_1m_16m:
+0x2190 001605 setarg 0x4189 
+0x2191 001606 store 2 ,0x8907 
+0x2192 001607 branch set_lemode_1m 
+:      001610 set_lemode:
+0x2193 001611 bpatch patch02_4 ,mem_patch02 
+0x2194 001612 jam 0x11 ,0x8a82 
+0x2195 001613 jam 0x12 ,0x8a8d 
+0x2196 001614 jam 0x0a ,0x8a8e 
+0x2197 001615 fetch 1 ,mem_fcomp_div 
+0x2198 001616 beq xtal_16m ,set_lemode_2m_16m 
+0x2199 001617 setarg 0x5762 
+0x219a 001618 store 2 ,0x8907 
+:      001619 set_lemode_2m:
+0x219b 001620 jam 3 ,0x8901 
+0x219c 001621 jam 3 ,0x8930 
+0x219d 001622 rtnmark1 mark_ble_2m 
+0x219e 001623 jam 1 ,0x8901 
+0x219f 001624 jam 0x07 ,0x8a82 
+0x21a0 001625 jam 0x44 ,0x8a8d 
+0x21a1 001626 jam 0x0a ,0x8a8e 
+0x21a2 001627 fetch 1 ,mem_fcomp_div 
+0x21a3 001628 beq xtal_16m ,set_lemode_1m_16m 
+0x21a4 001629 setarg 0x2bb1 
+0x21a5 001630 store 2 ,0x8907 
+:      001631 set_lemode_1m:
+0x21a6 001632 rtnmark0 mark_ble_lr 
+0x21a7 001633 jam 0x24 ,0x8930 
+0x21a8 001634 jam 5 ,0x8901 
+0x21a9 001635 rtn 
+:      001637 rf_rx_enable:
+0x21aa 001638 bpatch patch02_5 ,mem_patch02 
+0x21ab 001639 call rf_debug_rx_gpio_high 
+0x21ac 001640 call rf_rx_agc_set 
+0x21ad 001641 force 8 ,radio_ctrl 
+0x21ae 001642 force 0 ,radio_ctrl 
+0x21af 001644 setarg 0x0aaada 
+0x21b0 001645 store 3 ,0x8a0f 
+0x21b1 001646 jam 0x40 ,0x8a25 
+0x21b2 001647 jam 0x10 ,0x8a26 
+0x21b3 001648 nop 60 
+0x21b4 001649 jam 0xfb ,0x8a01 
+0x21b5 001650 jam 0xff ,0x8a25 
+0x21b6 001651 jam 0x30 ,0x8a26 
+0x21b7 001652 jam 0xfe ,0x8a16 
+0x21b8 001653 nop 20 
+0x21b9 001654 jam 0x00 ,0x8a10 
+0x21ba 001655 jam 0x08 ,0x8a11 
+0x21bb 001656 nop 120 
+0x21bc 001657 jam 0xd ,0x8900 
+0x21bd 001658 rtn 
+:      001661 rf_rx_agc_set:
+0x21be 001662 fetch 1 ,mem_gain_fix 
+0x21bf 001663 beq 0xff ,rf_rx_enable_no_soft_agc 
+0x21c0 001664 arg mem_gain_table ,contr 
+0x21c1 001665 iadd contr ,contr 
+0x21c2 001666 ifetch 1 ,contr 
+0x21c3 001667 store 1 ,core_rf_rx_gain_fix 
+0x21c4 001668 jam 0x27 ,core_rf_rx_agc_ctrl 
+:      001670 rf_rx_enable_no_soft_agc:
+0x21c5 001671 fetcht 1 ,mem_gain_second_agc_en 
+0x21c6 001672 fetch 1 ,core_rf_rx_agc_ctrl 
+0x21c7 001673 ior temp ,pdata 
+0x21c8 001674 store 1 ,core_rf_rx_agc_ctrl 
+0x21c9 001675 rtn 
+:      001678 set_freq_tx_int:
+0x21ca 001679 jam 0x03 ,0x8900 
+0x21cb 001680 jam 0x02 ,0x8a24 
+0x21cc 001681 nop 20 
+0x21cd 001682 jam 0x65 ,0x8a70 
+0x21ce 001683 jam 0xdf ,0x8a23 
+0x21cf 001684 call set_lemode 
+0x21d0 001685 call ghp_lookup 
+0x21d1 001686 storet 1 ,mem_last_freq 
+0x21d2 001687 increase 2 ,temp 
+0x21d3 001688 branch aac_res_lookup 
+:      001692 calc_freq:
+0x21d4 001693 bpatch patch02_6 ,mem_patch02 
+0x21d5 001694 setarg 2400 
+0x21d6 001695 iadd temp ,pdata 
+0x21d7 001696 copy pdata ,rega 
+0x21d8 001697 fetcht 1 ,mem_fcomp_div 
+0x21d9 001698 rshift temp ,temp 
+0x21da 001699 idiv temp 
+0x21db 001701 call wait_div_end 
+0x21dc 001702 quotient pdata 
+0x21dd 001703 rshift8 pdata ,queue 
+0x21de 001704 storer queue ,1 ,0x890a 
+0x21df 001705 store 1 ,0x8909 
+0x21e0 001706 remainder pdata 
+0x21e1 001707 lshift16 pdata ,pdata 
+0x21e2 001708 lshift8 pdata ,pdata 
+0x21e3 001709 idiv temp 
+0x21e4 001710 call wait_div_end 
+0x21e5 001711 quotient pdata 
+0x21e6 001712 store 3 ,0x890b 
+0x21e7 001717 storer rega ,1 ,0x8a22 
+0x21e8 001718 rshift8 rega ,rega 
+0x21e9 001719 storer rega ,1 ,0x8a21 
+0x21ea 001720 jam 0xa0 ,0x8a20 
+0x21eb 001721 jam 0xe0 ,0x8a20 
+0x21ec 001722 jam 0xa0 ,0x8a20 
+0x21ed 001723 rtn 
+:      001725 ghp_lookup:
+0x21ee 001726 add temp ,2 ,pdata 
+0x21ef 001727 rshift3 pdata ,pdata 
+0x21f0 001728 and_into -2 ,pdata 
+0x21f1 001729 arg mem_ghpc_table ,contr 
+0x21f2 001730 bmark0 mark_ble_2m ,ghp_1m 
+0x21f3 001731 increase 12 ,contr 
+:      001732 ghp_1m:
+0x21f4 001733 iadd contr ,contr 
+0x21f5 001734 ifetchr rega ,2 ,contr 
+0x21f6 001735 ifetch 2 ,contr 
+0x21f7 001736 isub rega ,pdata 
+0x21f8 001737 add temp ,2 ,contr 
+0x21f9 001738 and_into 0xf ,contr 
+0x21fa 001739 imul32 contr ,pdata 
+0x21fb 001740 rshift4 pdata ,pdata 
+0x21fc 001741 iadd rega ,pdata 
+0x21fd 001742 store 2 ,0x8905 
+0x21fe 001743 rtn 
+:      001747 set_freq_tx:
+0x21ff 001748 bpatch patch02_7 ,mem_patch02 
+0x2200 001749 call set_freq_tx_int 
+0x2201 001750 nop 600 
+:      001752 txon:
+0x2202 001753 bpatch patch03_0 ,mem_patch03 
+0x2203 001754 setarg 0x0aaa7e 
+0x2204 001755 store 3 ,0x8a0f 
+0x2205 001756 nop 60 
+0x2206 001757 jam 0x00 ,0x8a25 
+0x2207 001758 jam 0x0d ,0x8a26 
+0x2208 001759 jam 0xf6 ,0x8a16 
+0x2209 001760 nop 30 
+0x220a 001761 jam 0x1b ,0x8a15 
+0x220b 001762 call set_tx_power 
+0x220c 001763 nop 20 
+0x220d 001764 jam 0x0f ,0x8a26 
+0x220e 001765 nop 20 
+0x220f 001766 jam 0xa8 ,0x8a10 
+0x2210 001767 jam 0x00 ,0x8a11 
+0x2211 001768 rtn 
+:      001770 set_tx_power:
+0x2212 001771 bpatch patch03_1 ,mem_patch03 
+0x2213 001772 fetch 1 ,mem_tx_power 
+0x2214 001773 beq tx_power_0db ,set_tx_power_0db 
+0x2215 001774 beq tx_power_3db ,set_tx_power_3db 
+0x2216 001775 beq tx_power_5db ,set_tx_power_5db 
+0x2217 001776 beq tx_power_7db ,set_tx_power_7db 
+0x2218 001777 beq tx_power_10db ,set_tx_power_10db 
+0x2219 001778 beq tx_power_f3db ,set_tx_power_f3db 
+0x221a 001779 beq tx_power_f5db ,set_tx_power_f5db 
+0x221b 001780 beq tx_power_f10db ,set_tx_power_f10db 
+0x221c 001781 beq tx_power_f20db ,set_tx_power_f20db 
+:      001782 set_tx_power_0db:
+0x221d 001783 jam 0x17 ,0x8a14 
+0x221e 001784 setarg 0x251a3f 
+0x221f 001785 store 3 ,0x8a60 
+:      001786 set_tx_power_8a63_28:
+0x2220 001787 jam 0x28 ,0x8a63 
+0x2221 001788 rtn 
+:      001790 set_tx_power_3db:
+0x2222 001791 jam 0x25 ,0x8a14 
+0x2223 001792 setarg 0xa91c2d 
+0x2224 001793 store 3 ,0x8a60 
+:      001794 set_tx_power_8a63_2f:
+0x2225 001795 jam 0x2f ,0x8a63 
+0x2226 001796 rtn 
+:      001798 set_tx_power_5db:
+0x2227 001799 jam 0x25 ,0x8a14 
+0x2228 001800 setarg 0xa91c3f 
+0x2229 001801 store 3 ,0x8a60 
+0x222a 001802 branch set_tx_power_8a63_2f 
+:      001804 set_tx_power_7db:
+0x222b 001805 jam 0x25 ,0x8a14 
+0x222c 001806 setarg 0xa9383f 
+0x222d 001807 store 3 ,0x8a60 
+0x222e 001808 branch set_tx_power_8a63_2f 
+:      001810 set_tx_power_10db:
+0x222f 001811 jam 0x25 ,0x8a14 
+0x2230 001812 setarg 0xa93f3f 
+0x2231 001813 store 3 ,0x8a60 
+0x2232 001814 jam 0x1f ,0x8a63 
+0x2233 001815 rtn 
+:      001818 set_tx_power_f3db:
+0x2234 001819 jam 0x17 ,0x8a14 
+0x2235 001820 setarg 0x251827 
+0x2236 001821 store 3 ,0x8a60 
+0x2237 001822 branch set_tx_power_8a63_28 
+:      001824 set_tx_power_f5db:
+0x2238 001825 jam 0x17 ,0x8a14 
+0x2239 001826 setarg 0x25181c 
+0x223a 001827 store 3 ,0x8a60 
+0x223b 001828 branch set_tx_power_8a63_28 
+:      001830 set_tx_power_f10db:
+0x223c 001831 jam 0x17 ,0x8a14 
+0x223d 001832 setarg 0x25180b 
+0x223e 001833 store 3 ,0x8a60 
+0x223f 001834 branch set_tx_power_8a63_28 
+:      001836 set_tx_power_f20db:
+0x2240 001837 jam 0x17 ,0x8a14 
+0x2241 001838 setarg 0x251000 
+0x2242 001839 store 3 ,0x8a60 
+0x2243 001840 branch set_tx_power_8a63_28 
+:      001844 initialize_radio:
+0x2244 001845 jam clksel_rc ,core_clksel 
+:      001846 initialize_radio_wait:
+0x2245 001847 fetch 2 ,mem_rf_init_ptr 
+0x2246 001848 bbit0 14 ,initialize_radio_wait 
+0x2247 001849 iforce contr 
+0x2248 001850 arg 0x8a00 ,temp 
+:      001851 initialize_radio_loop:
+0x2249 001852 ifetch 1 ,contr 
+0x224a 001853 beq 0xff ,initialize_radio_cont 
+0x224b 001854 ior temp ,contw 
+0x224c 001855 ifetch 1 ,contr 
+0x224d 001856 istore 1 ,contw 
+0x224e 001857 branch initialize_radio_loop 
+:      001859 initialize_radio_cont:
+0x224f 001860 bpatch patch03_2 ,mem_patch03 
+0x2250 001861 until null ,lpo_edge 
+0x2251 001862 jam 0x0d ,0x8946 
+0x2252 001863 jam 0x10 ,0x896f 
+0x2253 001865 jam 0xcd ,0x8a13 
+0x2254 001866 jam 0x10 ,0x8a06 
+0x2255 001867 jam 0x4a ,0x8a84 
+0x2256 001868 jam 0x40 ,0x8a85 
+0x2257 001869 jam 0xfe ,0x8a16 
+0x2258 001871 fetch 1 ,mem_wdt_always_work 
+0x2259 001872 call wdt_set_disable ,blank 
+0x225a 001874 until null ,lpo_edge 
+0x225b 001875 jam 0x5f ,0x813b 
+0x225c 001876 fetch 1 ,mem_fcomp_div 
+0x225d 001877 beq xtal_16m ,initialize_radio_16m 
+0x225e 001878 fetch 1 ,mem_ring_ibias_trim 
+0x225f 001879 or_into 0x04 ,pdata 
+0x2260 001880 store 1 ,0x8a02 
+0x2261 001881 jam 0x01 ,0x890f 
+0x2262 001882 jam 0x24 ,0x8a80 
+0x2263 001883 jam 0x62 ,0x8a81 
+0x2264 001884 setarg 0xe61212 
+0x2265 001885 store 3 ,0x8a73 
+:      001886 initialize_radio2:
+0x2266 001888 bpatchx patch3e_3 ,mem_patch3e 
+0x2267 001889 jam 0x60 ,0x8a86 
+0x2268 001890 jam 0x3b ,0x8a8b 
+0x2269 001892 call dpll_on 
+0x226a 001893 jam 0 ,core_config 
+0x226b 001894 jam clksel_dpll ,core_clksel 
+0x226c 001895 setarg 0x557474 
+0x226d 001896 store 3 ,0x8968 
+0x226e 001897 jam 0x6e ,0x8960 
+0x226f 001898 call rx_dcoc 
+0x2270 001899 call rfpll_aac_ghpc 
+0x2271 001900 call set_xtal_cap 
+0x2272 001901 jam system_clk_12m ,mem_system_clk 
+0x2273 001902 call sadc_calibration 
+0x2274 001903 call dpll_ring_ibias_calc 
+0x2275 001904 branch set_bistfix_save_patchram 
+:      001906 initialize_radio_16m:
+0x2276 001907 fetch 1 ,mem_ring_ibias_trim 
+0x2277 001908 or_into 0x06 ,pdata 
+0x2278 001909 store 1 ,0x8a02 
+0x2279 001910 jam 0x00 ,0x890f 
+0x227a 001911 jam 0x23 ,0x8a80 
+0x227b 001912 jam 0xb0 ,0x8a81 
+0x227c 001913 setarg 0xe40909 
+0x227d 001914 store 3 ,0x8a73 
+0x227e 001915 jam 0x2a ,0x8a76 
+0x227f 001916 jam 0x04 ,0x8902 
+0x2280 001917 branch initialize_radio2 
+:      001919 set_xtal_cap:
+0x2281 001920 rtn wake 
+0x2282 001921 until null ,lpo_edge 
+0x2283 001922 fetch 1 ,mem_xtal_c_sel 
+0x2284 001923 store 1 ,core_xtal_cap 
+0x2285 001924 until null ,lpo_edge 
+0x2286 001925 rtn 
+:      001928 rfpll_aac_ghpc:
+0x2287 001929 bpatch patch03_3 ,mem_patch03 
+0x2288 001930 rtn wake 
+0x2289 001931 call set_sync_on 
+0x228a 001932 jam 3 ,0x8900 
+0x228b 001933 jam 0x1 ,0x8a70 
+0x228c 001934 arg mem_ghpc_table ,regb 
+0x228d 001935 arg mem_aac_res_table ,regd 
+0x228e 001936 call rfpll_aac_ghpc_once 
+0x228f 001937 set1 mark_ble_2m ,mark 
+0x2290 001938 call rfpll_aac_ghpc_once 
+0x2291 001939 jam 0x61 ,0x8a70 
+0x2292 001940 branch shutdown_radio 
+:      001942 rfpll_aac_ghpc_once:
+0x2293 001943 call set_lemode 
+0x2294 001944 arg 6 ,loopcnt 
+0x2295 001945 arg 0 ,regc 
+:      001946 rfpll_cal_loop:
+0x2296 001947 copy regc ,temp 
+0x2297 001948 call aac_ghpc 
+0x2298 001949 increase 2 ,regb 
+0x2299 001950 increase 1 ,regd 
+0x229a 001951 increase 16 ,regc 
+0x229b 001952 loop rfpll_cal_loop 
+0x229c 001953 rtn 
+:      001955 dpll_on:
+0x229d 001956 fetch 1 ,mem_fcomp_div 
+0x229e 001957 beq xtal_24m ,dpll_on_24m 
+0x229f 001958 fetch 1 ,mem_ring_ibias_trim 
+0x22a0 001959 or_into 0x06 ,pdata 
+0x22a1 001960 store 1 ,0x8a02 
+0x22a2 001961 jam 0xe0 ,0x8a05 
+:      001962 dpll_on_24m:
+0x22a3 001963 jam 0xd8 ,0x8a00 
+0x22a4 001964 nop 60 
+0x22a5 001965 jam 0xa0 ,0x8a01 
+0x22a6 001966 jam 0xdf ,0x8a00 
+0x22a7 001967 jam 0xfa ,0x8a01 
+0x22a8 001968 nop 20 
+0x22a9 001969 jam 0x9f ,0x8a00 
+0x22aa 001970 rtn 
+:      001972 aac_ghpc:
+0x22ab 001973 bpatch patch03_4 ,mem_patch03 
+0x22ac 001974 jam 0x30 ,0x8a20 
+0x22ad 001975 jam 0xdd ,0x8a23 
+0x22ae 001976 call calc_freq 
+:      001977 wait_cal_done:
+0x22af 001978 fetch 1 ,0x8a7c 
+0x22b0 001979 bbit0 0 ,wait_cal_done 
+0x22b1 001980 jam 0x30 ,0x8a7b 
+0x22b2 001981 call read_cal_result 
+0x22b3 001982 iforce rega 
+0x22b4 001983 jam 0x40 ,0x8a7b 
+0x22b5 001984 call read_cal_result 
+0x22b6 001985 isub rega ,pdata 
+0x22b7 001986 mul32 pdata ,125 ,temp 
+0x22b8 001987 setarg 0xb00000 
+0x22b9 001988 idiv temp 
+0x22ba 001989 call wait_div_end 
+0x22bb 001990 quotient pdata 
+0x22bc 001991 bmark0 mark_ble_2m ,aac_ghpc_1m 
+0x22bd 001992 lshift pdata ,pdata 
+:      001993 aac_ghpc_1m:
+0x22be 001994 istore 2 ,regb 
+0x22bf 001995 jam 0x20 ,0x8a7b 
+0x22c0 001996 fetch 1 ,0x8a7e 
+0x22c1 001997 lshift4 pdata ,pdata 
+0x22c2 001998 istore 1 ,regd 
+0x22c3 001999 jam 0 ,0x8a7b 
+0x22c4 002000 rtn 
+:      002002 read_cal_result:
+0x22c5 002003 fetch 2 ,0x8a7d 
+0x22c6 002004 byteswap pdata ,pdata 
+0x22c7 002005 fetcht 1 ,0x8a7c 
+0x22c8 002006 lshift16 temp ,temp 
+0x22c9 002007 ior temp ,pdata 
+0x22ca 002008 rtn 
+:      002011 dpll_ring_ibias_calc:
+0x22cb 002012 bpatch patch03_5 ,mem_patch03 
+0x22cc 002013 rtn 
+:      002015 save_rssi:
+0x22cd 002016 bpatch patch03_6 ,mem_patch03 
+0x22ce 002018 fetch 1 ,modem_nb_pow 
+0x22cf 002019 isolate1 6 ,pdata 
+0x22d0 002020 setflag true ,7 ,pdata 
+0x22d1 002021 store 1 ,mem_modem_rssi 
+0x22d2 002023 fetch 1 ,modem_gain 
+0x22d3 002024 and pdata ,0x0f ,temp 
+0x22d4 002025 lshift temp ,temp 
+0x22d5 002026 rshift4 pdata ,pdata 
+0x22d6 002027 iadd temp ,temp 
+0x22d7 002028 mul32 temp ,3 ,rega 
+0x22d8 002030 fetch 1 ,mem_modem_rssi 
+0x22d9 002031 call byte_sign_extern 
+0x22da 002032 sub pdata ,0 ,pdata 
+0x22db 002033 iadd rega ,pdata 
+0x22dc 002034 increase -9 ,pdata 
+0x22dd 002035 and pdata ,0x1ff ,pdata 
+0x22de 002036 isolate1 8 ,pdata 
+0x22df 002037 nbranch save_rssi_store ,true 
+0x22e0 002038 setarg 0 
+:      002039 save_rssi_store:
+0x22e1 002040 store 1 ,mem_rssi_hex 
+0x22e2 002041 branch rssi_hex2dec 
+:      002043 byte_sign_extern:
+0x22e3 002044 isolate1 7 ,pdata 
+0x22e4 002045 nrtn true 
+0x22e5 002046 arg 0xff00 ,temp 
+0x22e6 002047 ior temp ,pdata 
+0x22e7 002048 rtn 
+:      002050 rssi_hex2dec:
+0x22e8 002051 fetch 1 ,mem_rssi_hex 
+0x22e9 002052 call bcd 
+0x22ea 002053 store 1 ,mem_rssi 
+0x22eb 002054 rtn 
+:      002056 bcd:
+0x22ec 002057 and_into 0xff ,pdata 
+0x22ed 002058 div pdata ,10 
+0x22ee 002059 call get_div_result 
+0x22ef 002060 lshift4 pdata ,pdata 
+0x22f0 002061 remainder temp 
+0x22f1 002062 ior temp ,pdata 
+0x22f2 002063 rtn 
+:      002065 gain_control:
+0x22f3 002066 bpatch patch03_7 ,mem_patch03 
+0x22f4 002067 fetch 1 ,mem_gain_fix 
+0x22f5 002068 rtneq 0xff 
+0x22f6 002069 nbranch gain_increase ,sync 
+0x22f7 002070 fetch 1 ,mem_modem_rssi 
+0x22f8 002071 sub pdata ,0xf0 ,null 
+0x22f9 002072 nbranch gain_descend ,positive 
+0x22fa 002073 sub pdata ,0x7f ,null 
+0x22fb 002074 branch gain_descend ,positive 
+0x22fc 002076 fetchr rega ,1 ,core_rf_rx_gain_fix 
+0x22fd 002077 fetch 1 ,mem_gain_fix 
+0x22fe 002078 rtneq 0 
+0x22ff 002079 arg mem_gain_table ,contr 
+0x2300 002080 iadd contr ,contr 
+0x2301 002081 ifetch 1 ,contr 
+0x2302 002082 isub rega ,null 
+0x2303 002083 nrtn zero 
+0x2304 002084 increase -2 ,contr 
+0x2305 002085 ifetcht 1 ,contr 
+0x2306 002086 rshift4 temp ,pdata 
+0x2307 002087 rshift4 rega ,regb 
+0x2308 002088 isub regb ,regb 
+0x2309 002089 and temp ,0xf ,pdata 
+0x230a 002090 and rega ,0xf ,rega 
+0x230b 002091 isub rega ,rega 
+0x230c 002092 lshift rega ,pdata 
+0x230d 002093 iadd regb ,regb 
+0x230e 002094 mul32 regb ,3 ,regb 
+0x230f 002095 fetcht 1 ,mem_modem_rssi 
+0x2310 002096 and temp ,0x80 ,pdata 
+0x2311 002097 rtn blank 
+:      002098 add_negative:
+0x2312 002099 setarg 0x100 
+0x2313 002100 isub temp ,temp 
+0x2314 002101 copy regb ,pdata 
+0x2315 002102 isub temp ,pdata 
+0x2316 002103 rtn positive 
+0x2317 002104 and pdata ,0xff ,pdata 
+0x2318 002105 rtneq 0xff 
+0x2319 002106 rtneq 0xfe 
+:      002108 gain_increase:
+0x231a 002109 fetch 1 ,mem_gain_fix 
+0x231b 002110 beq 1 ,set_rx_gain0 
+0x231c 002111 beq 2 ,set_rx_gain1 
+0x231d 002113 branch set_rx_gain0 
+:      002115 gain_descend:
+0x231e 002116 fetch 1 ,mem_gain_fix 
+0x231f 002117 beq 0 ,set_rx_gain1 
+0x2320 002118 beq 1 ,set_rx_gain2 
+:      002120 set_rx_gain2:
+0x2321 002121 jam 2 ,mem_gain_fix 
+0x2322 002122 rtn 
+:      002124 set_rx_gain0:
+0x2323 002125 jam 0 ,mem_gain_fix 
+0x2324 002126 rtn 
+:      002128 set_rx_gain1:
+0x2325 002129 jam 1 ,mem_gain_fix 
+0x2326 002130 rtn 
+:      002137 ahead_window:
+0x2327 002138 copy pdata ,temp 
+0x2328 002139 bpatch patch04_0 ,mem_patch04 
+0x2329 002140 copy temp ,pdata 
+0x232a 002141 call clk2bt 
+0x232b 002142 lshift16 bt_clk ,pdata 
+0x232c 002143 set1 44 ,pdata 
+0x232d 002144 call clk_diff 
+0x232e 002145 set0 44 ,pdata 
+0x232f 002146 call get_clk 
+0x2330 002147 call clk_diff 
+0x2331 002148 rtn user 
+0x2332 002149 call clk2rt 
+0x2333 002150 iforce stop_watch 
+0x2334 002151 until null ,timeout 
+0x2335 002152 rtn 
+:      002155 get_clk:
+0x2336 002156 copy clkn ,temp 
+0x2337 002157 rtn master 
+0x2338 002158 copy clke ,temp 
+0x2339 002159 rtn 
+:      002161 get_clkbt:
+0x233a 002162 deposit clkn_bt 
+0x233b 002163 rtn master 
+0x233c 002164 deposit clke_bt 
+0x233d 002165 rtn 
+:      002168 assert:
+0x233e 002169 bpatch patch04_1 ,mem_patch04 
+0x233f 002170 branch assert 
+:      002173 sleep:
+0x2340 002174 rtn blank 
+0x2341 002176 rshift pdata ,pdata 
+0x2342 002177 increase -3 ,pdata 
+:      002178 sleep_loop:
+0x2343 002179 increase -1 ,pdata 
+0x2344 002180 nbranch sleep_loop ,zero 
+0x2345 002181 force 0 ,pdata 
+0x2346 002182 rtn 
+:      002186 init_param:
+0x2347 002188 setarg param_tx_setup 
+0x2348 002189 store 2 ,mem_param_tx_setup 
+0x2349 002190 setarg param_rf_setup 
+0x234a 002191 store 2 ,mem_param_rf_setup 
+0x234b 002192 setarg param_conn_access 
+0x234c 002193 store 2 ,mem_param_conn_access 
+0x234d 002194 setarg param_rx_setup 
+0x234e 002195 store 2 ,mem_param_rx_setup 
+0x234f 002196 setarg param_clke_cal 
+0x2350 002197 store 2 ,mem_param_clke_cal 
+0x2351 002198 setarg param_pll_setup 
+0x2352 002199 store 2 ,mem_param_pll_setup 
+0x2353 002200 setarg param_dpll_start_delay 
+0x2354 002201 store 2 ,mem_param_dpll_start_delay 
+0x2355 002202 setarg param_rt_rthalfslot 
+0x2356 002203 store 2 ,mem_param_rt_rthalfslot 
+0x2357 002204 setarg param_clke_cal_le_1m 
+0x2358 002205 store 2 ,mem_param_clke_cal_le_1m 
+0x2359 002206 setarg param_clke_cal_le_2m 
+0x235a 002207 store 2 ,mem_param_clke_cal_le_2m 
+0x235b 002208 setarg param_clke_cal_le_coded 
+0x235c 002209 store 2 ,mem_param_clke_cal_le_coded 
+0x235d 002211 bpatch patch04_2 ,mem_patch04 
+0x235e 002212 rtn wake 
+0x235f 002213 setarg att_default_mtu 
+0x2360 002214 store 2 ,mem_le_remote_mtu 
+0x2361 002215 jam param_t_ifs_150us + param_sync_time_difference ,mem_le_tx_ifs_defference 
+0x2362 002216 setarg mem_ble_tx_buff0 
+0x2363 002217 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x2364 002218 setarg mem_ble_l2cap_tx_buff_size 
+0x2365 002219 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x2366 002220 rshift clkn_bt ,pdata 
+0x2367 002221 store 4 ,mem_last_clkn 
+0x2368 002222 rtn 
+:      002229 lpmstate:
+0x2369 002230 setarg 0xee21 
+0x236a 002231 store 2 ,core_clkoff 
+0x236b 002232 fetchr alarm ,4 ,core_gpio_in 
+0x236c 002233 fetch 1 ,core_lpm_isogate 
+0x236d 002234 bbit0 gpio_latch ,power_up 
+0x236e 002235 enable wake 
+0x236f 002236 bbit1 cold_wake ,lpmwake 
+0x2370 002237 disable wake 
+0x2371 002238 deposit auxcnt 
+0x2372 002239 nbranch lpmwake ,blank 
+0x2373 002240 fetch 1 ,core_lpm_sysctl 
+0x2374 002241 bbit1 reload_code ,lpmwake 
+0x2375 002242 arg param_hibernate_clks ,temp 
+0x2376 002243 branch lpm_enter_sleep 
+:      002244 lpmwake:
+0x2377 002245 call lpm_poweron_retmem 
+0x2378 002246 call lpm_load_context ,wake 
+0x2379 002247 until null ,lpo_edge 
+0x237a 002248 fetch 1 ,core_lpm_isogate 
+0x237b 002249 set0 gpio_latch ,pdata 
+0x237c 002250 store 1 ,core_lpm_isogate 
+0x237d 002251 until null ,lpo_edge 
+0x237e 002252 nbranch boot_load ,wake 
+0x237f 002253 call set_bistfix_wake 
+0x2380 002254 storer alarm ,4 ,mem_saved_gpio_in 
+0x2381 002255 jam otp_key_lock ,core_misc_ctrl 
+0x2382 002256 rtn 
+:      002258 power_up:
+0x2383 002259 call lpm_poweron_retmem 
+:      002260 boot_load:
+0x2384 002261 call loadcode 
+0x2385 002262 storer alarm ,4 ,mem_saved_gpio_in 
+0x2386 002263 rtn 
+:      002265 lpm_poweron_retmem:
+0x2387 002266 until null ,lpo_edge 
+0x2388 002267 fetch 1 ,core_lpm_ldosel 
+0x2389 002268 and_into 0x88 ,pdata 
+0x238a 002269 store 1 ,core_lpm_ldosel 
+0x238b 002270 until null ,lpo_edge 
+0x238c 002271 fetch 1 ,core_lpm_isogate 
+0x238d 002272 or_into 0xf ,pdata 
+0x238e 002273 store 1 ,core_lpm_isogate 
+0x238f 002274 until null ,lpo_edge 
+0x2390 002275 set1 isogate ,pdata 
+0x2391 002276 store 1 ,core_lpm_isogate 
+0x2392 002277 until null ,lpo_edge 
+0x2393 002278 set1 retmem_cs ,pdata 
+0x2394 002279 store 1 ,core_lpm_isogate 
+0x2395 002280 until null ,lpo_edge 
+0x2396 002281 rtn 
+:      002284 xtal_fast_wake:
+0x2397 002285 until null ,lpo_edge 
+0x2398 002286 jam 0x76 ,core_xtal_ib 
+0x2399 002287 until null ,lpo_edge 
+0x239a 002288 jam 0x37 ,core_xtal_cap 
+0x239b 002289 rtn 
+:      002291 lpm_write_lock:
+0x239c 002294 fetch 1 ,mem_device_option 
+0x239d 002295 lshift4 pdata ,pdata 
+0x239e 002297 store 1 ,core_ucode_flag 
+0x239f 002298 until null ,lpo_edge 
+0x23a0 002299 fetch 1 ,mem_peripheral_lock_flag 
+0x23a1 002300 set1 rom_lock_bit ,pdata 
+0x23a2 002301 set1 option_lock ,pdata 
+0x23a3 002302 store 1 ,core_peripheral_lock 
+0x23a4 002303 branch lpm_write_wait 
+:      002305 lpm_write_ice_disable:
+0x23a5 002306 fetch 1 ,core_lpm_sysctl 
+0x23a6 002307 set0 ice_mode ,pdata 
+0x23a7 002308 store 1 ,core_lpm_sysctl 
+0x23a8 002309 rtn 
+:      002311 lpm_write_ice_enable:
+0x23a9 002312 fetch 1 ,core_lpm_sysctl 
+0x23aa 002313 set1 ice_mode ,pdata 
+0x23ab 002314 store 1 ,core_lpm_sysctl 
+0x23ac 002315 rtn 
+:      002317 lpm_preon_counter:
+0x23ad 002318 fetch 3 ,mem_lpm_xtalcnt 
+0x23ae 002319 arg core_lpm_xtalcnt ,contw 
+:      002320 lpm_write_3bytes:
+0x23af 002321 arg 3 ,loopcnt 
+0x23b0 002322 branch lpm_write_loop 
+:      002324 lpm_write_mpu_s0:
+0x23b1 002325 arg core_mpu_s0_saddr ,contw 
+:      002326 lpm_write_dword:
+0x23b2 002327 arg 4 ,loopcnt 
+:      002328 lpm_write_loop:
+0x23b3 002329 until null ,lpo_edge 
+0x23b4 002330 istore 1 ,contw 
+0x23b5 002331 rshift8 pdata ,pdata 
+0x23b6 002332 loop lpm_write_loop 
+0x23b7 002333 branch lpm_write_wait 
+:      002335 lpm_write_mpu_s1:
+0x23b8 002336 arg core_mpu_s1_saddr ,contw 
+0x23b9 002337 branch lpm_write_dword 
+:      002340 lpm_disable_exen_output:
+0x23ba 002341 fetch 1 ,core_lpm_ldosel 
+0x23bb 002342 set0 3 ,pdata 
+0x23bc 002343 store 1 ,core_lpm_ldosel 
+0x23bd 002344 rtn 
+:      002346 lpm_disable_io_dozed:
+0x23be 002347 fetch 1 ,mem_lpm_hv_sel 
+0x23bf 002348 rtn blank 
+0x23c0 002349 set0 lpm_doze_en_bit ,pdata 
+0x23c1 002350 branch lpm_write_sel_hv 
+:      002352 lpm_save_sel_hv:
+0x23c2 002353 store 1 ,mem_lpm_hv_sel 
+:      002354 lpm_write_sel_hv:
+0x23c3 002355 store 1 ,core_io_doze_en 
+:      002356 lpm_write_wait:
+0x23c4 002357 until null ,lpo_edge 
+0x23c5 002358 until null ,lpo_edge 
+0x23c6 002359 rtn 
+:      002362 lpm_write_io_vsel:
+0x23c7 002363 store 1 ,core_io_vsel 
+0x23c8 002364 branch lpm_write_wait 
+:      002367 lpm_load_context:
+0x23c9 002368 call lpm_disable_io_dozed 
+0x23ca 002369 fetch 1 ,mem_saved_spidctrl 
+0x23cb 002370 store 1 ,core_spid_ctrl 
+0x23cc 002371 arg mem_saved_gpio ,contr 
+0x23cd 002372 arg core_gpio_conf ,contw 
+0x23ce 002373 call memcpy16 
+0x23cf 002374 arg core_gpio_conf_hi ,contw 
+0x23d0 002375 call memcpy8 
+0x23d1 002376 fetchr mark ,8 ,mem_saved_mark 
+0x23d2 002377 arg core_gpio_wakeup_cfg ,contr 
+0x23d3 002378 arg mem_gpio_wakeup_cfg ,contw 
+0x23d4 002379 arg 12 ,loopcnt 
+0x23d5 002380 call memcpy 
+0x23d6 002381 branch load_ucode 
+:      002383 lpm_save_context:
+0x23d7 002384 storer mark ,8 ,mem_saved_mark 
+0x23d8 002385 arg core_gpio_conf ,contr 
+0x23d9 002386 arg mem_saved_gpio ,contw 
+0x23da 002387 call memcpy16 
+0x23db 002388 arg core_gpio_conf_hi ,contr 
+0x23dc 002389 call memcpy8 
+0x23dd 002390 fetch 1 ,core_spid_ctrl 
+0x23de 002391 store 1 ,mem_saved_spidctrl 
+0x23df 002392 copy temp ,regb 
+0x23e0 002393 branch lpm_write_gpio_wakeup 
+:      002395 lpm_write_gpio_wakeup:
+0x23e1 002396 arg 12 ,loopcnt 
+0x23e2 002397 arg mem_gpio_wakeup_cfg ,rega 
+0x23e3 002398 arg core_gpio_wakeup_cfg ,regc 
+0x23e4 002399 until null ,lpo_edge 
+:      002400 lpm_write_gpio_loop:
+0x23e5 002401 ifetch 1 ,rega 
+0x23e6 002402 ifetcht 1 ,regc 
+0x23e7 002403 isub temp ,null 
+0x23e8 002404 branch lpm_write_gpio_loop_next ,zero 
+0x23e9 002405 istore 1 ,regc 
+0x23ea 002406 until null ,lpo_edge 
+:      002407 lpm_write_gpio_loop_next:
+0x23eb 002408 increase 1 ,rega 
+0x23ec 002409 increase 1 ,regc 
+0x23ed 002410 loop lpm_write_gpio_loop 
+0x23ee 002411 copy regb ,temp 
+0x23ef 002412 rtn 
+:      002414 lpo_calibration:
+0x23f0 002415 bpatch patch04_3 ,mem_patch04 
+0x23f1 002416 fetch 1 ,core_ccnt_bit 
+0x23f2 002417 nbranch lpo_cal_inited ,blank 
+0x23f3 002418 fetch 3 ,mem_clks_per_lpo 
+0x23f4 002419 nrtn blank 
+0x23f5 002420 jam 0xc ,core_ccnt_bit 
+0x23f6 002421 jam ccnt_start ,core_misc_ctrl 
+:      002422 lpo_cal_inited:
+0x23f7 002423 fetch 1 ,core_perf_status 
+0x23f8 002424 rtnbit0 1 
+0x23f9 002425 fetch 3 ,core_clk_counter 
+0x23fa 002426 store 3 ,mem_clks_per_lpo 
+0x23fb 002427 rtn 
+:      002431 lpm_doze:
+0x23fc 002432 fetch 1 ,mem_lpm_sysctl 
+0x23fd 002433 set1 reload_code ,pdata 
+0x23fe 002434 store 1 ,mem_lpm_sysctl 
+:      002437 lpm_hibernate:
+0x23ff 002438 bpatch patch04_4 ,mem_patch04 
+0x2400 002439 arg param_hibernate_clks ,temp 
+0x2401 002440 fetch 1 ,mem_lpm_hibernate_switch 
+0x2402 002441 store 1 ,mem_lpm_isogate_final 
+0x2403 002442 fetch 1 ,mem_lpm_sysctl 
+0x2404 002443 store 1 ,core_lpm_sysctl 
+0x2405 002444 until null ,lpo_edge 
+:      002446 lpm_sleep:
+0x2406 002447 bpatch patch04_5 ,mem_patch04 
+0x2407 002449 fetch 2 ,mem_cb_before_lpm_sleep 
+0x2408 002450 call callback_func 
+:      002451 lpm_sleep_skip_cb_function:
+0x2409 002452 fetch 4 ,mem_sleep_counter_all 
+0x240a 002453 iadd temp ,pdata 
+0x240b 002454 store 4 ,mem_sleep_counter_all 
+0x240c 002455 call lpm_save_context 
+0x240d 002456 fetch 1 ,mem_lpm_hv_sel 
+0x240e 002457 set1 lpm_doze_en_bit ,pdata 
+0x240f 002458 call lpm_write_sel_hv 
+0x2410 002459 ncall lpm_preon_counter ,wake 
+0x2411 002460 until null ,lpo_edge 
+0x2412 002461 storer clkn ,6 ,mem_sleep_clkn 
+0x2413 002462 call set_bistfix_save_xram 
+0x2414 002463 fetch 3 ,mem_lpm_isogate 
+0x2415 002464 fetchr rega ,1 ,mem_lpm_ldo_sel 
+0x2416 002465 arg 3 ,loopcnt 
+:      002466 lpm_sleep_loop:
+0x2417 002467 until null ,lpo_edge 
+0x2418 002468 store 1 ,core_lpm_isogate 
+0x2419 002469 rshift8 pdata ,pdata 
+0x241a 002470 loop lpm_sleep_loop 
+0x241b 002471 until null ,lpo_edge 
+0x241c 002472 storer rega ,1 ,core_lpm_ldosel 
+:      002473 lpm_enter_sleep:
+0x241d 002474 until null ,lpo_edge 
+0x241e 002475 storet 4 ,core_lpm_reg 
+0x241f 002476 jam lpmreg_sel_counter ,core_lpm_wr 
+0x2420 002477 until null ,never 
+:      002480 lpm_recover_clk:
+0x2421 002481 bpatch patch04_6 ,mem_patch04 
+0x2422 002482 setarg 0 
+0x2423 002483 copy auxcnt ,null 
+0x2424 002484 branch lpm_recover_timeout ,zero 
+0x2425 002485 fetch 1 ,core_lpm_xtalcnt 
+0x2426 002486 fetcht 1 ,core_lpm_buckcnt 
+0x2427 002487 isub temp ,null 
+0x2428 002488 branch lpm_recover_xtal ,positive 
+0x2429 002489 deposit temp 
+:      002490 lpm_recover_xtal:
+0x242a 002491 isub auxcnt ,pdata 
+0x242b 002492 increase 1 ,pdata 
+:      002493 lpm_recover_timeout:
+0x242c 002494 increase 8 ,pdata 
+0x242d 002495 until null ,lpo_edge 
+0x242e 002496 iadd lpo_time ,pdata 
+0x242f 002497 fetcht 4 ,mem_sleep_counter 
+0x2430 002498 iadd temp ,pdata 
+0x2431 002499 fetcht 3 ,mem_clks_per_lpo 
+0x2432 002500 imul32 temp ,pdata 
+0x2433 002501 rshift8 pdata ,pdata 
+0x2434 002502 rshift4 pdata ,pdata 
+0x2435 002503 increase param_lpm_fix ,pdata 
+0x2436 002504 fetcht 2 ,mem_param_rt_rthalfslot 
+0x2437 002505 idiv temp 
+0x2438 002506 call get_div_result 
+0x2439 002507 lshift16 pdata ,pdata 
+0x243a 002508 remainder temp 
+0x243b 002509 ior temp ,pdata 
+0x243c 002510 fetcht 6 ,mem_sleep_clkn 
+0x243d 002511 call clk_add 
+0x243e 002512 copy temp ,clkn 
+0x243f 002513 fetch 6 ,mem_context + coffset_clk_offset 
+0x2440 002514 call calc_clke2 
+0x2441 002515 deposit clke 
+0x2442 002516 store 6 ,mem_pdatatemp 
+0x2443 002517 deposit auxcnt 
+0x2444 002518 istore 1 ,contw 
+0x2445 002519 fetch 1 ,core_gpio_in1 
+0x2446 002520 or_into 0xf0 ,pdata 
+0x2447 002521 istore 1 ,contw 
+0x2448 002522 rtn 
+:      002525 lpm_adjust_clk:
+0x2449 002526 bpatch patch04_7 ,mem_patch04 
+0x244a 002527 bmark0 mark_context ,lpm_clear_counter 
+0x244b 002528 fetcht 4 ,mem_sleep_counter_all 
+0x244c 002529 arg 0x600 ,pdata 
+0x244d 002530 isub temp ,null 
+0x244e 002531 rtn positive 
+0x244f 002532 copy temp ,rega 
+0x2450 002533 fetcht 6 ,mem_sync_clke 
+0x2451 002534 deposit rege 
+0x2452 002535 call clk_diff_rt 
+0x2453 002536 copy rega ,temp 
+0x2454 002537 lshift8 pdata ,pdata 
+0x2455 002538 lshift4 pdata ,pdata 
+0x2456 002539 idiv temp 
+0x2457 002540 call get_div_result 
+0x2458 002541 arg param_lpm_adjmax ,temp 
+0x2459 002542 call ceiling 
+0x245a 002543 store 1 ,mem_lpm_adjust 
+0x245b 002544 nbranch lpm_adjust_positive ,user 
+0x245c 002545 sub pdata ,0 ,pdata 
+:      002546 lpm_adjust_positive:
+0x245d 002547 fetcht 3 ,mem_clks_per_lpo 
+0x245e 002548 iadd temp ,pdata 
+0x245f 002549 store 3 ,mem_clks_per_lpo 
+:      002550 lpm_clear_counter:
+0x2460 002551 setarg 0 
+0x2461 002552 store 4 ,mem_sleep_counter_all 
+0x2462 002553 rtn 
+:      002556 lpm_dispatch:
+0x2463 002557 bpatch patch05_0 ,mem_patch05 
+0x2464 002558 call lpo_calibration 
+0x2465 002559 fetch 3 ,mem_clks_per_lpo 
+0x2466 002560 rtn blank 
+0x2467 002561 fetch 1 ,mem_lpm_mode 
+0x2468 002562 rtn blank 
+0x2469 002563 fetch 1 ,mem_secure_connections_enable 
+0x246a 002564 branch lpm_dispatch_next ,blank 
+0x246b 002565 fetch 1 ,mem_sc_local_key_invalid 
+0x246c 002566 rtn blank 
+:      002567 lpm_dispatch_next:
+0x246d 002568 fetch 1 ,mem_sc_calc 
+0x246e 002569 nrtn blank 
+0x246f 002570 arg context_check_a_wack ,regc 
+0x2470 002571 call context_search 
+0x2471 002572 rtn zero 
+0x2472 002573 call lpm_check_wake_lock 
+0x2473 002574 nrtn blank 
+0x2474 002575 call context_check_idle 
+0x2475 002576 nbranch lpm_dispatch_unconn ,zero 
+0x2476 002577 rtn wake 
+0x2477 002578 bpatch patch05_1 ,mem_patch05 
+0x2478 002579 fetcht 1 ,mem_lpm_current_mult 
+0x2479 002580 fetch 2 ,mem_context + coffset_tsniff 
+0x247a 002581 imul32 temp ,pdata 
+0x247b 002582 rshift4 temp ,temp 
+0x247c 002583 rshift2 temp ,temp 
+0x247d 002584 isub temp ,pdata 
+0x247e 002585 fetcht 4 ,mem_context + coffset_sniff_anchor 
+0x247f 002586 iadd temp ,pdata 
+0x2480 002587 fetcht 1 ,mem_lpm_overhead 
+0x2481 002588 isub temp ,pdata 
+0x2482 002589 lshift16 pdata ,alarm 
+0x2483 002590 fetch 2 ,mem_context + coffset_rx_window 
+0x2484 002591 rshift pdata ,pdata 
+0x2485 002592 call clk2bt 
+0x2486 002593 deposit alarm 
+0x2487 002594 call clk_diff 
+0x2488 002595 copy clke ,temp 
+0x2489 002596 call clk_diff_rt 
+0x248a 002597 rtn user 
+:      002598 lpm_dispatch_sleep:
+0x248b 002599 call clk2lpo 
+:      002600 lpm_dispatch_lpo:
+0x248c 002601 bpatch patch05_2 ,mem_patch05 
+0x248d 002602 fetch 1 ,mem_lpm_xtalcnt 
+0x248e 002603 isub temp ,null 
+0x248f 002604 branch lpm_clear_counter ,positive 
+0x2490 002605 storet 4 ,mem_sleep_counter 
+0x2491 002606 call app_will_enter_lpm 
+0x2492 002608 fetcht 4 ,mem_sleep_counter 
+0x2493 002609 branch lpm_sleep 
+:      002611 lpm_dispatch_unconn:
+0x2494 002612 bpatch patch05_3 ,mem_patch05 
+0x2495 002613 fetch 1 ,mem_le_adv_enable 
+0x2496 002614 nbranch lpm_unconn_cont ,blank 
+0x2497 002615 rtn 
+:      002617 lpm_unconn_cont:
+0x2498 002618 fetch 2 ,mem_lpm_interval 
+0x2499 002619 rtn blank 
+:      002620 lpm_sleep_btclk:
+0x249a 002621 fetcht 1 ,mem_lpm_overhead 
+0x249b 002622 isub temp ,pdata 
+0x249c 002623 arg 7500 ,temp 
+0x249d 002624 imul32 temp ,pdata 
+0x249e 002625 branch lpm_dispatch_sleep 
+:      002628 lpm_mult_wait_timeout:
+0x249f 002629 fetch 2 ,mem_cb_bt_set_mult 
+0x24a0 002630 call callback_func 
+0x24a1 002631 nbranch lpm_mult_short ,blank 
+0x24a2 002632 jam 0 ,mem_lpm_current_mult 
+0x24a3 002633 bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+0x24a4 002634 fetch 1 ,mem_lpm_mult_cnt 
+0x24a5 002635 branch lpm_mult_long ,blank 
+0x24a6 002636 increase -1 ,pdata 
+0x24a7 002637 store 1 ,mem_lpm_mult_cnt 
+0x24a8 002638 rtn 
+:      002643 lpm_match:
+0x24a9 002644 jam 0 ,mem_sniff_unint_lost 
+0x24aa 002645 fetch 3 ,mem_sniff_rcv 
+0x24ab 002646 increase 1 ,pdata 
+0x24ac 002647 store 3 ,mem_sniff_rcv 
+0x24ad 002648 rtn 
+:      002651 lpm_lost:
+0x24ae 002652 bpatch patch05_4 ,mem_patch05 
+0x24af 002653 jam 0 ,mem_lpm_current_mult 
+0x24b0 002654 fetch 3 ,mem_sniff_lost 
+0x24b1 002655 increase 1 ,pdata 
+0x24b2 002656 store 3 ,mem_sniff_lost 
+0x24b3 002657 fetch 1 ,mem_sniff_unint_lost 
+0x24b4 002658 increase 1 ,pdata 
+0x24b5 002659 store 1 ,mem_sniff_unint_lost 
+0x24b6 002660 rtn 
+:      002662 lpm_mult_short:
+0x24b7 002663 jam 0 ,mem_lpm_current_mult 
+0x24b8 002664 fetch 1 ,mem_lpm_mult_timeout 
+0x24b9 002665 store 1 ,mem_lpm_mult_cnt 
+0x24ba 002666 rtn 
+:      002668 lpm_mult_long:
+0x24bb 002669 fetcht 1 ,mem_lpm_mult 
+0x24bc 002670 storet 1 ,mem_lpm_current_mult 
+0x24bd 002671 rtn 
+:      002675 lpm_get_wake_lock:
+0x24be 002676 fetch 2 ,mem_lpm_wake_lock 
+0x24bf 002677 qset1 pdata 
+0x24c0 002678 store 2 ,mem_lpm_wake_lock 
+0x24c1 002679 rtn 
+:      002681 lpm_put_wake_lock:
+0x24c2 002682 fetch 2 ,mem_lpm_wake_lock 
+0x24c3 002683 qset0 pdata 
+0x24c4 002684 store 2 ,mem_lpm_wake_lock 
+0x24c5 002685 rtn 
+:      002689 lpm_check_wake_lock:
+0x24c6 002690 bpatch patch05_5 ,mem_patch05 
+0x24c7 002691 call app_check_wake_lock 
+0x24c8 002692 fetch 2 ,mem_lpm_wake_lock 
+0x24c9 002693 copy pdata ,rega 
+0x24ca 002694 fetch 3 ,mem_tx_fifo3 
+0x24cb 002695 nsetflag blank ,wake_lock_ble_tx ,rega 
+0x24cc 002696 fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
+0x24cd 002697 nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
+0x24ce 002698 fetch util_fifo_len ,mem_ipc_fifo_c512bt 
+0x24cf 002699 nsetflag blank ,wake_lock_ipc_c512bt ,rega 
+0x24d0 002700 fetch 1 ,mem_hci_cmd 
+0x24d1 002701 nsetflag blank ,wake_lock_cmd ,rega 
+0x24d2 002702 fetch 1 ,mem_device_option 
+0x24d3 002703 compare dvc_op_module ,pdata ,0xff 
+0x24d4 002704 call lpm_uart_wake_lock ,true 
+0x24d5 002705 copy rega ,pdata 
+0x24d6 002706 store 2 ,mem_lpm_wake_lock 
+0x24d7 002707 rtn 
+:      002709 lpm_uart_wake_lock:
+0x24d8 002710 fetch 2 ,core_uart_rxitems 
+0x24d9 002711 nsetflag blank ,wake_lock_uart_rx ,rega 
+0x24da 002712 fetch 2 ,core_uart_txitems 
+0x24db 002713 nsetflag blank ,wake_lock_uart_tx ,rega 
+0x24dc 002714 rtn 
+:      002723 le_init_conn:
+0x24dd 002724 bpatchx patch27_3 ,mem_patch27 
+0x24de 002725 disable wake 
+0x24df 002726 jam 1 ,mem_le_conn_handle 
+0x24e0 002727 jam 3 ,mem_le_state 
+0x24e1 002728 jam 1 ,mem_le_arq 
+0x24e2 002729 setarg -1 
+0x24e3 002730 store 2 ,mem_le_event_count 
+0x24e4 002731 force 0 ,pdata 
+0x24e5 002732 store 1 ,mem_le_ch 
+0x24e6 002733 store 1 ,mem_le_op 
+0x24e7 002734 store 3 ,mem_sniff_rcv 
+0x24e8 002735 store 3 ,mem_sniff_lost 
+0x24e9 002736 call le_clear_enc 
+0x24ea 002737 jam 1 ,mem_le_txheader 
+0x24eb 002738 jam 0 ,mem_le_txlen 
+0x24ec 002739 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+0x24ed 002740 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+0x24ee 002741 jam 0 ,mem_le_l2cap_att_states 
+0x24ef 002742 branch le_supervision_flush 
+:      002744 le_init_master:
+0x24f0 002745 bpatchx patch27_4 ,mem_patch27 
+0x24f1 002746 enable master 
+0x24f2 002747 jam lemode_master ,mem_le_mode 
+0x24f3 002748 jam 1 ,mem_le_att_handle 
+0x24f4 002749 jam 1 ,mem_le_search_handle_start 
+0x24f5 002750 setarg 0xffff 
+0x24f6 002751 store 2 ,mem_le_search_handle_end 
+0x24f7 002752 force 0 ,pdata 
+0x24f8 002753 store 5 ,mem_ccm_pcnt_rx 
+0x24f9 002754 set1 le_ccm_directionbit ,pdata 
+0x24fa 002755 store 5 ,mem_ccm_pcnt_tx 
+0x24fb 002756 branch le_init_conn 
+:      002759 le_init_slave:
+0x24fc 002760 bpatchx patch27_5 ,mem_patch27 
+0x24fd 002761 disable master 
+0x24fe 002762 setarg 0x17 
+0x24ff 002763 store 2 ,mem_le_remote_mtu 
+0x2500 002764 increase 4 ,pdata 
+0x2501 002765 store 2 ,mem_remote_rx_max_octets 
+0x2502 002766 jam lemode_slave ,mem_le_mode 
+0x2503 002767 jam 0 ,mem_le_adv_enable 
+0x2504 002768 jam 0 ,mem_lpm_current_mult 
+0x2505 002769 call le_clear_pairing_state 
+0x2506 002770 fetch 2 ,mem_le_superto 
+0x2507 002771 store 2 ,mem_le_init_superto 
+0x2508 002772 fetch 2 ,mem_le_tsniff 
+0x2509 002773 mul32 pdata ,5 ,pdata 
+0x250a 002774 rshift4 pdata ,pdata 
+0x250b 002775 store 2 ,mem_le_superto 
+0x250c 002776 branch le_init_conn 
+:      002783 le_conn_dispatch:
+0x250d 002784 bpatchx patch27_6 ,mem_patch27 
+0x250e 002785 call le_enable 
+0x250f 002786 fetch 1 ,mem_le_state 
+0x2510 002787 isolate1 lestate_encryption ,pdata 
+0x2511 002788 setflag true ,mark_ble_encryption ,mark 
+0x2512 002789 call app_process_ble 
+0x2513 002790 fetch 1 ,mem_le_mode 
+0x2514 002791 bbit1 mode_master ,le_master_dispatch 
+0x2515 002792 branch le_slave_dispatch 
+:      002798 le_master_dispatch:
+0x2516 002799 bpatchx patch27_7 ,mem_patch27 
+0x2517 002800 enable master 
+0x2518 002801 call le_supervision_update 
+0x2519 002802 branch le_master_disconn ,positive 
+0x251a 002803 call le_setup 
+0x251b 002804 call le_prepare_tx 
+0x251c 002805 disable match 
+0x251d 002806 call le_transmit_receive_sifs 
+0x251e 002807 nrtn match 
+0x251f 002808 fetch 1 ,mem_le_conn_rcv 
+0x2520 002809 increase 1 ,pdata 
+0x2521 002810 store 1 ,mem_le_conn_rcv 
+0x2522 002811 call le_acknowledge 
+0x2523 002812 branch le_disable_master 
+:      002814 le_master_disconn:
+0x2524 002815 call le_disconnect 
+:      002816 le_disable_master:
+0x2525 002817 disable master 
+0x2526 002818 rtn 
+:      002823 le_slave_dispatch:
+0x2527 002824 bpatchx patch28_0 ,mem_patch28 
+0x2528 002825 jam 0 ,mem_le_md_count 
+0x2529 002826 set0 mark_ble_crc_fail ,mark 
+0x252a 002827 call sp_calc_sequence_256 
+0x252b 002828 call le_secure_connect_sm 
+0x252c 002829 disable attempt 
+0x252d 002830 call le_supervision_update 
+0x252e 002831 branch le_slave_disconn ,positive 
+0x252f 002832 fetch 1 ,mem_le_rx_phy 
+0x2530 002833 call le_enable_phy_by_pdata 
+0x2531 002834 call le_setup 
+0x2532 002835 call le_receive_slave 
+0x2533 002836 nbranch le_slave_unsync ,sync 
+0x2534 002837 call le_got_first_packet 
+0x2535 002838 branch le_slave_match ,match 
+0x2536 002839 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+0x2537 002840 branch le_slave_cont 
+:      002843 le_slave_crc_fail:
+:      002844 le_slave_match:
+0x2538 002845 bpatchx patch28_1 ,mem_patch28 
+0x2539 002846 fetch 1 ,mem_le_md_count 
+0x253a 002847 pincrease 1 
+0x253b 002848 store 1 ,mem_le_md_count 
+0x253c 002849 beq le_md_max_count ,le_slave_cont 
+0x253d 002850 call le_acknowledge 
+0x253e 002851 call le_prepare_tx 
+0x253f 002852 fetch 1 ,mem_le_tx_phy 
+0x2540 002853 call le_enable_phy_by_pdata 
+0x2541 002854 call le_transmit 
+0x2542 002855 call le_parse 
+0x2543 002856 fetch 2 ,mem_cb_ble_transmit 
+0x2544 002857 call callback_func 
+0x2545 002858 call le_check_md 
+0x2546 002859 branch le_slave_more_data ,user 
+:      002860 le_slave_cont:
+0x2547 002861 bpatchx patch28_2 ,mem_patch28 
+0x2548 002862 call le_pairing_sm 
+0x2549 002863 call le_check_paring_time 
+0x254a 002864 call check_51cmd 
+0x254b 002865 fetch 1 ,mem_le_op 
+0x254c 002866 bbit1 op_disconn ,le_slave_disconn 
+:      002867 le_slave_unsync:
+0x254d 002868 bpatchx patch28_3 ,mem_patch28 
+0x254e 002869 call end_of_packet 
+0x254f 002870 call le_lpm_set_mult 
+0x2550 002871 branch calc_clke_offset 
+:      002874 le_check_md:
+0x2551 002875 bmark1 mark_ble_rx_md ,enable_user 
+0x2552 002876 bmark1 mark_ble_tx_md ,enable_user 
+0x2553 002877 bmark1 mark_ble_crc_fail ,enable_user 
+0x2554 002878 branch disable_user 
+:      002881 le_slave_more_data:
+0x2555 002882 bpatchx patch28_4 ,mem_patch28 
+0x2556 002883 enable attempt 
+0x2557 002884 call le_transmit_receive_sifs_notx 
+0x2558 002885 branch le_slave_match ,match 
+0x2559 002886 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+0x255a 002887 branch le_slave_cont 
+:      002889 le_slave_disconn:
+:      002891 le_disconnect:
+0x255b 002892 bpatchx patch28_5 ,mem_patch28 
+0x255c 002893 call le_clear_connection_info 
+0x255d 002894 call app_disconn_reason_collect_ble 
+0x255e 002895 call le_clear_pairing_state 
+0x255f 002896 call le_sc_state_clear 
+0x2560 002897 jam bt_evt_le_disconnected ,mem_fifo_temp 
+0x2561 002898 branch ui_ipc_send_event 
+:      002900 le_clear_connection_info:
+0x2562 002901 arg mem_used_map ,contw 
+0x2563 002902 call memset0_16 
+0x2564 002903 jam 0 ,mem_le_conn_handle 
+0x2565 002904 jam lemode_idle ,mem_le_mode 
+0x2566 002905 jam 0 ,mem_le_state 
+:      002906 le_clear_pairing_state:
+0x2567 002907 bpatchx patch28_6 ,mem_patch28 
+0x2568 002908 jam flag_le_enc_null ,mem_le_enc_state 
+0x2569 002909 jam flag_le_pairing_null ,mem_le_pairing_state 
+0x256a 002910 call sp_clear_flags 
+0x256b 002911 rtn 
+:      002913 le_got_first_packet:
+0x256c 002914 bpatchx patch28_7 ,mem_patch28 
+0x256d 002915 fetch 1 ,mem_le_conn_rcv 
+0x256e 002916 increase 1 ,pdata 
+0x256f 002917 store 1 ,mem_le_conn_rcv 
+0x2570 002918 fetch 1 ,mem_le_state 
+0x2571 002919 rtnbit1 lestate_got_first_packet 
+0x2572 002920 set1 lestate_got_first_packet ,pdata 
+0x2573 002921 store 1 ,mem_le_state 
+0x2574 002922 fetch 2 ,mem_le_init_superto 
+0x2575 002923 store 2 ,mem_le_superto 
+0x2576 002924 setarg 0 
+0x2577 002925 store 4 ,mem_le_transmit_window 
+0x2578 002926 rtn 
+:      002934 le_enable_phy_by_pdata:
+0x2579 002935 copy pdata ,temp 
+0x257a 002936 bpatchx patch29_0 ,mem_patch29 
+:      002937 le_enable_phy_by_pdata1:
+0x257b 002938 copy temp ,pdata 
+0x257c 002939 bbit1 bit_le_1m_phy ,le_enable 
+0x257d 002940 bbit1 bit_le_2m_phy ,le_enable_2m 
+0x257e 002941 bbit0 bit_le_coded_phy ,le_enable 
+0x257f 002942 bbit1 bit_le_coded_phy_s8 ,le_enable_coded_s8 
+0x2580 002943 bbit1 bit_le_coded_phy_s2 ,le_enable_coded_s2 
+0x2581 002944 branch le_enable 
+:      002946 le_enable_2m:
+0x2582 002947 set0 mark_ble_lr ,mark 
+0x2583 002948 set1 mark_ble_2m ,mark 
+0x2584 002949 rtn 
+:      002951 le_enable_coded_s2:
+:      002952 le_enable_coded:
+0x2585 002953 set0 mark_ble_2m ,mark 
+0x2586 002954 set1 mark_ble_lr ,mark 
+0x2587 002955 set0 mark_ble_lr_s8 ,mark 
+0x2588 002956 rtn 
+:      002959 le_enable_coded_s8:
+0x2589 002960 set0 mark_ble_2m ,mark 
+0x258a 002961 set1 mark_ble_lr ,mark 
+0x258b 002962 set1 mark_ble_lr_s8 ,mark 
+0x258c 002963 rtn 
+:      002965 le_enable:
+0x258d 002966 bpatchx patch29_1 ,mem_patch29 
+0x258e 002967 set0 mark_ble_2m ,mark 
+0x258f 002968 set0 mark_ble_lr ,mark 
+0x2590 002969 rtn 
+:      002972 le_disable:
+0x2591 002973 bpatchx patch29_2 ,mem_patch29 
+0x2592 002974 set0 mark_ble_encryption ,mark 
+0x2593 002975 jam 0x01 ,0x8901 
+0x2594 002976 jam 0x80 ,0x8920 
+0x2595 002977 jam 0x03 ,0x8930 
+0x2596 002978 rtn 
+:      002980 le_prep:
+0x2597 002981 bpatchx patch29_3 ,mem_patch29 
+0x2598 002982 disable enable_crc 
+0x2599 002983 disable enable_white 
+0x259a 002984 fetch 3 ,mem_le_crcinit 
+0x259b 002985 iforce crc24_init 
+0x259c 002986 fetch 1 ,mem_le_ch_mapped 
+:      002987 le_prep_next:
+0x259d 002988 reverse pdata ,temp 
+0x259e 002989 set1 1 ,temp 
+0x259f 002990 rshift temp ,white_init 
+0x25a0 002991 rtn 
+:      002994 le_rx_setfreq:
+0x25a1 002995 call le_setfreq 
+:      002996 le_rf_rx_enable:
+0x25a2 002997 call set_freq_rx 
+0x25a3 002998 fetch 2 ,mem_param_pll_setup 
+0x25a4 002999 call sleep 
+0x25a5 003000 branch rf_rx_enable 
+:      003002 le_tx_setfreq:
+0x25a6 003003 branch txon ,match 
+0x25a7 003004 bmark1 mark_ble_crc_fail ,txon 
+:      003005 le_tx_setfreq0:
+0x25a8 003006 call le_setfreq 
+0x25a9 003007 branch set_freq_tx 
+:      003009 le_setfreq:
+0x25aa 003010 bpatchx patch29_4 ,mem_patch29 
+0x25ab 003011 call set_sync_on 
+0x25ac 003012 fetch 1 ,mem_le_testtype 
+0x25ad 003013 nbranch le_ctf_test ,blank 
+0x25ae 003014 fetch 1 ,mem_le_ch_mapped 
+0x25af 003015 sub pdata ,36 ,null 
+0x25b0 003016 branch le_ctf_normal ,positive 
+0x25b1 003017 force 0 ,temp 
+0x25b2 003018 rtneq 37 
+0x25b3 003019 force 24 ,temp 
+0x25b4 003020 rtneq 38 
+0x25b5 003021 force 78 ,temp 
+0x25b6 003022 rtn 
+:      003024 le_ctf_normal:
+0x25b7 003025 sub pdata ,10 ,null 
+0x25b8 003026 branch le_ctf_low ,positive 
+0x25b9 003027 increase 1 ,pdata 
+:      003029 le_ctf_low:
+0x25ba 003030 lshift pdata ,pdata 
+0x25bb 003031 add pdata ,2 ,temp 
+0x25bc 003032 rtn 
+:      003034 le_ctf_test:
+0x25bd 003035 fetch 1 ,mem_le_ch_mapped 
+0x25be 003036 lshift pdata ,temp 
+0x25bf 003037 rtn 
+:      003039 le_sca_map:
+0x25c0 003040 arg 500 ,temp 
+0x25c1 003041 rtn blank 
+0x25c2 003042 arg 250 ,temp 
+0x25c3 003043 rtneq 1 
+0x25c4 003044 arg 150 ,temp 
+0x25c5 003045 rtneq 2 
+0x25c6 003046 arg 100 ,temp 
+0x25c7 003047 rtneq 3 
+0x25c8 003048 arg 75 ,temp 
+0x25c9 003049 rtneq 4 
+0x25ca 003050 arg 50 ,temp 
+0x25cb 003051 rtneq 5 
+0x25cc 003052 arg 40 ,temp 
+0x25cd 003053 rtneq 6 
+0x25ce 003054 arg 20 ,temp 
+0x25cf 003055 rtn 
+:      003059 le_setup:
+0x25d0 003060 bpatchx patch29_5 ,mem_patch29 
+0x25d1 003061 enable swfine 
+0x25d2 003062 fetch 4 ,mem_le_access 
+0x25d3 003063 iforce access 
+0x25d4 003064 call le_map_channel 
+0x25d5 003065 setarg 0x200 
+0x25d6 003066 branch le_setup_master ,master 
+0x25d7 003067 fetch 2 ,mem_le_receive_window 
+0x25d8 003068 rshift pdata ,pdata 
+:      003069 le_setup_master:
+0x25d9 003070 fetcht 2 ,mem_param_pll_setup 
+0x25da 003071 iadd temp ,pdata 
+0x25db 003072 call ahead_window 
+0x25dc 003073 deposit clke 
+0x25dd 003074 rtn 
+:      003077 le_context_nextevent:
+0x25de 003078 bpatchx patch29_6 ,mem_patch29 
+0x25df 003079 call push_stack_rega_b_c 
+0x25e0 003080 storer loopcnt ,2 ,mem_loopcnt 
+0x25e1 003081 add rega ,coffset_mode ,contr 
+0x25e2 003082 ifetch 1 ,contr 
+0x25e3 003083 rtnbit0 mode_le 
+0x25e4 003084 add rega ,coffset_le_event_cnt ,contw 
+0x25e5 003085 ifetch 2 ,contw 
+0x25e6 003086 increase 1 ,pdata 
+0x25e7 003087 istore 2 ,contw 
+0x25e8 003088 call le_update_param 
+0x25e9 003089 call le_update_channel_map 
+0x25ea 003090 call le_update_phy 
+0x25eb 003091 call le_context_nexthop 
+0x25ec 003092 call pop_stack_rega_b_c 
+0x25ed 003093 fetchr loopcnt ,2 ,mem_loopcnt 
+0x25ee 003094 rtn 
+:      003096 le_context_nexthop:
+0x25ef 003097 add rega ,coffset_le_hop ,contr 
+0x25f0 003098 ifetch 1 ,contr 
+0x25f1 003099 add rega ,coffset_le_ch ,contw 
+0x25f2 003100 ifetcht 1 ,contw 
+0x25f3 003101 iadd temp ,pdata 
+0x25f4 003102 sub pdata ,36 ,null 
+0x25f5 003103 branch le_nexthop_nowrap ,positive 
+0x25f6 003104 increase -37 ,pdata 
+:      003105 le_nexthop_nowrap:
+0x25f7 003106 istore 1 ,contw 
+0x25f8 003107 rtn 
+:      003110 le_calc_channel_map:
+0x25f9 003111 add rega ,coffset_le_channel_map ,contr 
+0x25fa 003112 ifetch 5 ,contr 
+0x25fb 003113 force 0 ,temp 
+0x25fc 003114 force 37 ,loopcnt 
+:      003115 le_count_channels_loop:
+0x25fd 003116 bbit0 0 ,le_count_channels_notused 
+0x25fe 003117 increase 1 ,temp 
+:      003118 le_count_channels_notused:
+0x25ff 003119 rshift pdata ,pdata 
+0x2600 003120 loop le_count_channels_loop 
+0x2601 003121 add temp ,-1 ,pdata 
+0x2602 003122 add rega ,coffset_le_channels ,contw 
+0x2603 003123 istore 1 ,contw 
+0x2604 003124 rtn 
+:      003126 le_map_channel:
+0x2605 003127 bpatchx patch29_7 ,mem_patch29 
+0x2606 003128 fetch 1 ,mem_le_ch 
+0x2607 003129 iforce queue 
+0x2608 003130 fetcht 5 ,mem_le_channel_map 
+0x2609 003131 qisolate1 temp 
+0x260a 003132 branch le_map_channel_end ,true 
+:      003133 le_map_channel_next:
+0x260b 003134 fetch 1 ,mem_le_channels 
+0x260c 003135 isub queue ,pdata 
+0x260d 003136 branch le_map_channel_cont ,positive 
+0x260e 003137 sub pdata ,-1 ,queue 
+0x260f 003138 branch le_map_channel_next 
+:      003139 le_map_channel_cont:
+0x2610 003140 copy queue ,loopcnt 
+0x2611 003141 force 0 ,queue 
+:      003142 le_map_channel_loop:
+0x2612 003143 qisolate1 temp 
+0x2613 003144 branch le_map_channel_skip ,true 
+0x2614 003145 increase 1 ,loopcnt 
+:      003146 le_map_channel_skip:
+0x2615 003147 deposit loopcnt 
+0x2616 003148 branch le_map_channel_end ,blank 
+0x2617 003149 increase 1 ,queue 
+0x2618 003150 increase -1 ,loopcnt 
+0x2619 003151 branch le_map_channel_loop 
+:      003152 le_map_channel_end:
+0x261a 003153 deposit queue 
+0x261b 003154 store 1 ,mem_le_ch_mapped 
+0x261c 003155 rtn 
+:      003158 le_wait_tx:
+0x261d 003159 branch le_wait_master ,master 
+0x261e 003160 until null ,timeout 
+0x261f 003161 rtn 
+:      003163 le_wait_master:
+0x2620 003164 arg 0xea0 ,timeup 
+0x2621 003165 until clkn_rt ,meet 
+0x2622 003166 rtn 
+:      003168 le_receive_adv:
+0x2623 003169 disable swfine 
+0x2624 003170 fetch 2 ,mem_le_scan_window 
+0x2625 003171 copy pdata ,timeup 
+0x2626 003172 branch le_receive_packet 
+:      003175 le_receive_slave:
+0x2627 003176 bpatchx patch2a_0 ,mem_patch2a 
+0x2628 003177 call le_dec_init 
+0x2629 003178 enable swfine 
+0x262a 003179 fetch 2 ,mem_le_receive_window 
+0x262b 003180 fetcht 4 ,mem_le_transmit_window 
+0x262c 003181 iadd temp ,timeup 
+:      003182 le_receive_packet:
+0x262d 003183 call le_rx_setfreq 
+:      003184 le_receive_rxon:
+0x262e 003185 bpatchx patch2a_1 ,mem_patch2a 
+0x262f 003186 call le_prep 
+0x2630 003187 bmark0 mark_ble_lr ,le_receive_nolr 
+0x2631 003188 pulse dewhiten_code_calc 
+0x2632 003189 nop 30 
+0x2633 003190 call le_prep 
+0x2634 003191 lshift3 timeup ,timeup 
+:      003192 le_receive_nolr:
+0x2635 003193 disable match 
+0x2636 003194 enable decode_fec0 
+0x2637 003195 enable is_rx 
+0x2638 003196 disable is_tx 
+0x2639 003197 copy timeup ,stop_watch 
+0x263a 003198 correlate null ,timeout 
+0x263b 003199 branch le_receive_on_attempt ,attempt 
+0x263c 003200 copy clke ,temp 
+0x263d 003201 storet 6 ,mem_sync_clke 
+:      003202 le_receive_on_attempt:
+0x263e 003203 nbranch le_unsync_end ,sync 
+0x263f 003204 enable swfine 
+0x2640 003205 fetch 1 ,mem_le_tx_ifs_defference 
+0x2641 003206 arg param_20ms_init ,temp 
+0x2642 003207 iadd temp ,temp 
+0x2643 003208 fetch 1 ,mem_system_clk 
+0x2644 003209 imul32 temp ,stop_watch 
+0x2645 003210 call rf_debug_rx_sync_line 
+0x2646 003211 branch le_receive_skip ,attempt 
+0x2647 003212 call calc_clke_all_modem 
+0x2648 003213 fetch 1 ,mem_le_state 
+0x2649 003214 bbit0 lestate_got_first_packet ,le_receive_skip 
+0x264a 003215 call lpm_adjust_clk ,wake 
+:      003216 le_receive_skip:
+0x264b 003217 call save_rssi 
+0x264c 003218 enable enable_white 
+0x264d 003219 enable enable_crc 
+0x264e 003220 parse demod ,bucket ,8 
+0x264f 003221 rshift3 pwindow ,pdata 
+0x2650 003222 store 1 ,mem_le_rxbuf_data_header 
+0x2651 003223 parse demod ,bucket ,8 
+0x2652 003224 rshift3 pwindow ,pdata 
+0x2653 003225 store 1 ,mem_le_rxbuf_data_length 
+0x2654 003226 copy pdata ,loopcnt 
+0x2655 003227 branch le_rx_nopayload ,zero 
+0x2656 003229 bmark1 mark_ble_encryption ,le_rx_dec 
+:      003231 le_rx_loop:
+0x2657 003232 parse demod ,bucket ,8 
+0x2658 003233 rshift3 pwindow ,pdata 
+0x2659 003234 istore 1 ,contw 
+0x265a 003235 loop le_rx_loop 
+0x265b 003236 branch le_rx_nopayload 
+:      003238 le_rx_dec:
+0x265c 003239 copy contw ,regb 
+0x265d 003240 bpatchx patch2a_2 ,mem_patch2a 
+0x265e 003241 call le_check_retransmit 
+0x265f 003243 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0x2660 003244 increase -4 ,rega 
+0x2661 003245 nbranch le_crc_fail_consecutive ,positive 
+0x2662 003247 call le_dec_start 
+0x2663 003248 copy regb ,contw 
+0x2664 003249 arg 0 ,temp 
+0x2665 003250 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x2666 003251 increase -4 ,loopcnt 
+0x2667 003252 branch le_rx_dec_loop_end ,zero 
+:      003253 le_rx_dec_loop:
+0x2668 003255 parse demod ,bucket ,8 
+0x2669 003256 rshift3 pwindow ,pdata 
+0x266a 003257 istore 1 ,contw 
+0x266b 003258 increase 1 ,temp 
+0x266c 003259 and temp ,0xf ,null 
+0x266d 003260 call le_dec ,zero 
+0x266e 003261 loop le_rx_dec_loop 
+:      003262 le_rx_dec_loop_end:
+0x266f 003263 call le_dec_end 
+0x2670 003264 copy regb ,contw 
+:      003267 le_rx_nopayload:
+0x2671 003268 bpatchx patch2a_3 ,mem_patch2a 
+0x2672 003269 parse demod ,bucket ,24 
+0x2673 003270 rshift32 pdata ,pdata 
+0x2674 003271 rshift16 pdata ,pdata 
+0x2675 003272 istore 3 ,contw 
+0x2676 003273 enable swfine 
+0x2677 003274 call le_set_until_tx_timer 
+0x2678 003275 branch le_crc_fail ,crc_failed 
+0x2679 003276 bmark0 mark_ble_encryption ,le_rx_match 
+0x267a 003277 fetch 1 ,mem_le_rxbuf_data_length 
+0x267b 003278 branch le_rx_match ,blank 
+0x267c 003279 increase -4 ,pdata 
+0x267d 003280 store 1 ,mem_le_rxbuf_data_length 
+0x267e 003281 call wait_ccm_done 
+0x267f 003282 fetch 1 ,core_misc_status 
+0x2680 003283 bbit0 7 ,le_crc_fail_consecutive 
+0x2681 003284 force regidx_result ,regext_index 
+0x2682 003285 storer regext ,4 ,mem_le_peer_mic 
+:      003286 le_rx_match:
+0x2683 003287 call rf_debug_rx_crc_line 
+0x2684 003288 enable match 
+0x2685 003289 set0 mark_ble_crc_fail ,mark 
+:      003290 le_crc_fail_tx:
+0x2686 003291 bpatchx patch2a_4 ,mem_patch2a 
+0x2687 003292 call ccm_ctrl_clr 
+0x2688 003293 fetch 1 ,mem_le_rx_phy 
+0x2689 003294 nsetflag ble_coded_info ,bit_le_coded_phy_s8 ,pdata 
+0x268a 003295 store 1 ,mem_le_rx_phy 
+0x268b 003296 call le_match_set_sync_on 
+0x268c 003297 branch le_match_set_txfreq 
+:      003299 le_match_set_sync_on:
+0x268d 003300 disable decode_fec0 
+0x268e 003301 branch set_sync_on 
+:      003303 le_match_set_txfreq:
+0x268f 003304 bpatchx patch2a_5 ,mem_patch2a 
+0x2690 003305 fetcht 1 ,mem_last_freq 
+0x2691 003306 branch set_freq_tx_int 
+:      003309 le_dec_init:
+0x2692 003310 rtnmark0 mark_ble_encryption 
+0x2693 003311 call load_sk 
+0x2694 003312 force regidx_result ,regext_index 
+0x2695 003313 call aes_clear 
+0x2696 003314 branch aes_clear_data 
+:      003317 le_dec_start:
+0x2697 003318 bpatchx patch2a_6 ,mem_patch2a 
+0x2698 003319 jam 0 ,core_ccm_aad0 
+0x2699 003320 jam 1 ,core_ccm_aad1 
+0x269a 003321 fetch 1 ,mem_le_rxbuf_data_header 
+0x269b 003322 and_into 0x3 ,pdata 
+0x269c 003323 store 1 ,core_ccm_aad2 
+0x269d 003325 setarg mem_le_rxbuf_data_payload 
+0x269e 003326 store 2 ,core_ccm_input_playload_addr 
+0x269f 003327 store 2 ,core_ccm_output_playload_addr 
+0x26a0 003329 fetchr rega ,1 ,mem_le_rxbuf_data_length 
+0x26a1 003330 increase -4 ,rega 
+0x26a2 003332 fetcht 5 ,mem_ccm_pcnt_rx 
+0x26a3 003333 isolate1 mark_old_packet ,mark 
+0x26a4 003334 call le_pcnt_rx_sub1 ,true 
+0x26a5 003335 call ccm_b0 
+0x26a6 003336 setarg 0 
+0x26a7 003337 store 2 ,core_ccm_inptr 
+0x26a8 003338 jam 6 ,core_ccm_ctrl 
+0x26a9 003339 jam 7 ,core_ccm_ctrl 
+0x26aa 003340 rtn 
+:      003342 le_pcnt_rx_sub1:
+0x26ab 003343 sub temp ,0 ,null 
+0x26ac 003344 branch le_pcnt_rx_sub1_0 ,zero 
+0x26ad 003345 increase -1 ,temp 
+0x26ae 003346 set1 le_ccm_directionbit ,temp 
+0x26af 003347 rtn 
+:      003349 le_pcnt_rx_sub1_0:
+0x26b0 003350 setarg 0xffffff 
+0x26b1 003351 lshift16 pdata ,pdata 
+0x26b2 003352 arg 0xffff ,temp 
+0x26b3 003353 ior temp ,temp 
+0x26b4 003354 rtn 
+:      003356 le_dec:
+0x26b5 003357 copy contw ,regb 
+0x26b6 003358 fetch 1 ,mem_le_rxbuf_data_length 
+0x26b7 003359 increase -4 ,pdata 
+0x26b8 003360 isub temp ,null 
+0x26b9 003361 rtn zero 
+0x26ba 003362 storet 2 ,core_ccm_inptr 
+0x26bb 003363 copy regb ,contw 
+0x26bc 003364 rtn 
+:      003366 le_dec_end:
+0x26bd 003367 parse demod ,bucket ,32 
+0x26be 003368 rshift32 pdata ,pdata 
+0x26bf 003369 rshift8 pdata ,pdata 
+0x26c0 003370 istore 4 ,contw 
+0x26c1 003371 copy contw ,regb 
+0x26c2 003373 force regidx_data ,regext_index 
+0x26c3 003374 copy pdata ,regext 
+0x26c4 003375 storet 2 ,core_ccm_inptr 
+0x26c5 003376 rtn 
+:      003381 le_retransmit_end_of_packet:
+0x26c6 003382 call le_set_until_tx_timer 
+0x26c7 003383 call end_of_packet 
+0x26c8 003384 branch le_rx_match 
+:      003386 le_crc_fail:
+0x26c9 003387 call rf_debug_rx_crc_fail_line 
+0x26ca 003388 bmark1 mark_adv ,le_crc_fail_consecutive 
+0x26cb 003389 bmark1 mark_ble_crc_fail ,le_crc_fail_consecutive 
+0x26cc 003390 set1 mark_ble_crc_fail ,mark 
+0x26cd 003391 branch le_crc_fail_tx 
+:      003393 le_unsync_end:
+:      003394 le_crc_fail_consecutive:
+0x26ce 003395 set0 mark_ble_crc_fail ,mark 
+0x26cf 003396 branch le_end_of_packet 
+:      003398 le_end_of_packet:
+0x26d0 003399 bpatchx patch2a_7 ,mem_patch2a 
+0x26d1 003400 call ccm_ctrl_clr 
+0x26d2 003401 branch end_of_packet 
+:      003403 calc_clke_all_modem:
+0x26d3 003404 fetcht 6 ,mem_sync_clke 
+0x26d4 003405 copy clke ,pdata 
+0x26d5 003406 call clk_diff 
+0x26d6 003407 copy pdata ,temp 
+0x26d7 003408 call calc_clke_all_modem_1 
+0x26d8 003409 copy clke ,rege 
+0x26d9 003410 copy clke_rt ,pdata 
+0x26da 003411 iadd temp ,pdata 
+0x26db 003413 copy pdata ,clke_rt 
+0x26dc 003414 rtn 
+:      003416 calc_clke_all_modem_1:
+0x26dd 003417 bmark1 mark_ble_lr ,calc_clke_modem_coded 
+0x26de 003418 bmark1 mark_ble_2m ,calc_clke_modem_2m 
+0x26df 003419 fetch 2 ,mem_param_clke_cal_le_1m 
+0x26e0 003420 copy pdata ,clke_rt 
+0x26e1 003421 copy bt_clk ,clke_bt 
+0x26e2 003422 rtn 
+:      003425 calc_clke_modem_coded:
+0x26e3 003426 fetch 2 ,mem_param_clke_cal_le_coded 
+0x26e4 003427 copy pdata ,clke_rt 
+0x26e5 003428 add bt_clk ,1 ,clke_bt 
+0x26e6 003429 rtn 
+:      003431 calc_clke_modem_2m:
+0x26e7 003432 fetch 2 ,mem_param_clke_cal_le_2m 
+0x26e8 003433 copy pdata ,clke_rt 
+0x26e9 003434 copy bt_clk ,clke_bt 
+0x26ea 003435 rtn 
+:      003438 le_set_until_tx_timer:
+0x26eb 003439 fetch 1 ,mem_le_rxbuf_data_length 
+0x26ec 003440 add pdata ,5 ,temp 
+0x26ed 003441 lshift3 temp ,temp 
+0x26ee 003442 fetch 1 ,mem_le_rx_phy 
+0x26ef 003443 bmark1 mark_ble_lr ,le_set_until_tx_timer_rx_lr 
+0x26f0 003444 bbit1 bit_le_1m_phy ,le_set_until_tx_timer_rx_1m 
+0x26f1 003445 bbit1 bit_le_2m_phy ,le_set_until_tx_timer_rx_2m 
+:      003446 le_set_until_tx_timer_rx_lr:
+0x26f2 003447 branch le_set_until_tx_timer_rx_coded_s2 ,ble_coded_info 
+0x26f3 003448 branch le_set_until_tx_timer_rx_coded_s8 
+:      003450 le_set_until_tx_timer_rx_1m:
+0x26f4 003451 branch le_calc_stop_watch 
+:      003453 le_set_until_tx_timer_rx_2m:
+0x26f5 003454 rshift temp ,temp 
+0x26f6 003455 branch le_calc_stop_watch 
+:      003457 le_set_until_tx_timer_rx_coded_s2:
+0x26f7 003458 add temp ,3 ,temp 
+0x26f8 003459 lshift temp ,temp 
+0x26f9 003460 branch le_set_until_tx_timer_rx_coded 
+:      003462 le_set_until_tx_timer_rx_coded_s8:
+0x26fa 003463 add temp ,3 ,temp 
+0x26fb 003464 lshift3 temp ,temp 
+:      003465 le_set_until_tx_timer_rx_coded:
+0x26fc 003466 setarg param_coded_c1_term1_time_40us 
+0x26fd 003467 iadd temp ,temp 
+0x26fe 003468 branch le_calc_stop_watch 
+:      003470 le_calc_stop_watch:
+0x26ff 003471 fetch 1 ,mem_system_clk 
+0x2700 003472 imul32 temp ,temp 
+0x2701 003473 arg param_20ms_init ,rega 
+0x2702 003474 imul32 rega ,pdata 
+0x2703 003475 isub temp ,temp 
+0x2704 003476 copy stop_watch ,pdata 
+0x2705 003477 isub temp ,stop_watch 
+0x2706 003478 rtn 
+:      003480 le_transmit_receive_sifs_without_change_mode:
+0x2707 003481 call le_transmit 
+0x2708 003482 fetcht 1 ,mem_last_freq 
+0x2709 003483 call set_freq_rx 
+0x270a 003484 call rf_rx_enable 
+0x270b 003485 enable swfine 
+0x270c 003486 arg 5500 ,timeup 
+0x270d 003487 branch le_receive_rxon 
+:      003490 le_transmit_receive_sifs:
+0x270e 003491 bpatchx patch2b_0 ,mem_patch2b 
+0x270f 003492 fetch 1 ,mem_le_tx_phy 
+0x2710 003493 call le_enable_phy_by_pdata 
+0x2711 003494 call le_transmit 
+:      003495 le_transmit_receive_sifs_notx:
+0x2712 003496 fetch 1 ,mem_le_rx_phy 
+0x2713 003497 call le_enable_phy_by_pdata 
+0x2714 003499 fetcht 1 ,mem_last_freq 
+0x2715 003500 call set_freq_rx 
+0x2716 003501 call rf_rx_enable 
+0x2717 003502 enable swfine 
+0x2718 003503 arg 5500 ,timeup 
+0x2719 003504 bmark0 mark_ble_lr ,le_receive_rxon 
+0x271a 003505 arg 8500 ,timeup 
+0x271b 003506 branch le_receive_rxon 
+:      003508 le_transmit_norx:
+0x271c 003509 bpatchx patch2b_1 ,mem_patch2b 
+0x271d 003510 call le_transmit 
+0x271e 003511 branch end_of_packet 
+:      003513 le_transmit:
+0x271f 003514 bpatchx patch2b_2 ,mem_patch2b 
+0x2720 003515 call le_prep 
+0x2721 003516 call le_tx_setfreq 
+0x2722 003517 call rf_debug_tx_on_line 
+0x2723 003518 set1 txgfsk ,radio_ctrl 
+0x2724 003519 enable encode_fec0 
+0x2725 003520 enable is_tx 
+0x2726 003521 disable is_rx 
+0x2727 003522 call le_wait_tx 
+0x2728 003523 disable lr_s2en 
+0x2729 003524 bmark1 mark_ble_lr ,le_transmit_lr 
+0x272a 003525 bmark1 mark_ble_2m ,le_transmit_2m 
+0x272b 003526 rshift16 access ,pdata 
+0x272c 003527 rshift8 pdata ,pdata 
+0x272d 003528 rshift4 pdata ,pdata 
+0x272e 003529 inject mod ,40 
+:      003530 le_transmit_packet:
+0x272f 003531 enable enable_white 
+0x2730 003532 enable enable_crc 
+0x2731 003533 bpatchx patch2b_3 ,mem_patch2b 
+0x2732 003534 fetch 1 ,mem_le_txheader 
+0x2733 003535 inject mod ,8 
+0x2734 003536 ifetch 1 ,contr 
+0x2735 003537 copy pdata ,loopcnt 
+0x2736 003538 inject mod ,8 
+0x2737 003539 sub loopcnt ,0 ,null 
+0x2738 003540 branch le_tr_nopayload ,zero 
+0x2739 003542 fetch 1 ,core_ccm_ctrl 
+0x273a 003543 branch le_transmit_packet_not_enc ,blank 
+0x273b 003544 bmark1 mark_ble_encryption ,le_transmit_packet_enc 
+:      003545 le_transmit_packet_not_enc:
+0x273c 003546 arg mem_le_txpayload ,contr 
+:      003547 le_tr_loop:
+0x273d 003548 ifetch 1 ,contr 
+0x273e 003549 inject mod ,8 
+0x273f 003550 loop le_tr_loop 
+:      003552 le_tr_nopayload:
+0x2740 003553 enable enable_parity 
+0x2741 003554 inject mod ,24 
+0x2742 003555 disable enable_parity 
+0x2743 003556 bmark0 mark_ble_lr ,le_transmit_skip 
+0x2744 003557 disable enable_white 
+0x2745 003558 setarg 0 
+0x2746 003559 inject mod ,3 
+:      003560 le_transmit_skip:
+0x2747 003561 until null ,tx_clear 
+0x2748 003562 nop 100 
+0x2749 003563 bpatchx patch2b_4 ,mem_patch2b 
+0x274a 003564 disable encode_fec0 
+0x274b 003565 disable encode_fec3 
+0x274c 003566 call set_sync_on 
+0x274d 003567 call rf_debug_tx_off_line 
+:      003568 le_check_start_pause_enc:
+0x274e 003569 fetch 1 ,mem_le_txheader 
+0x274f 003570 and pdata ,llid_le_ll ,pdata 
+0x2750 003571 rtnne llid_le_ll 
+0x2751 003572 fetch 1 ,mem_le_enc_state 
+0x2752 003573 beq flag_le_enc_pause ,le_clear_enc 
+0x2753 003574 rtnne flag_le_send_start_enc_req 
+0x2754 003575 fetch 1 ,mem_le_txpayload 
+0x2755 003576 beq ll_start_enc_req ,le_set_enc 
+0x2756 003577 rtn 
+:      003580 le_transmit_packet_enc:
+0x2757 003581 increase -4 ,loopcnt 
+0x2758 003582 copy loopcnt ,temp 
+0x2759 003583 call ccm_wait_enc 
+0x275a 003584 arg mem_le_txpayload ,contr 
+:      003585 le_transmit_packet_enc_loop:
+0x275b 003586 ifetch 1 ,contr 
+0x275c 003587 inject mod ,8 
+0x275d 003588 loop le_transmit_packet_enc_loop 
+0x275e 003589 call ccm_check_enc_done 
+0x275f 003590 copy regext ,pdata 
+0x2760 003591 inject mod ,32 
+0x2761 003592 branch le_tr_nopayload 
+:      003594 le_transmit_lr:
+0x2762 003595 arg 10 ,loopcnt 
+:      003596 le_transmit_lr_preamble_loop:
+0x2763 003597 setarg 0x3c 
+0x2764 003598 inject mod ,8 
+0x2765 003599 loop le_transmit_lr_preamble_loop 
+0x2766 003600 disable encode_fec0 
+0x2767 003601 enable encode_fec3 
+0x2768 003602 rshift16 access ,pdata 
+0x2769 003603 rshift16 pdata ,pdata 
+0x276a 003604 rshift4 pdata ,pdata 
+0x276b 003605 inject mod ,32 
+0x276c 003606 bmark1 mark_ble_lr_s8 ,le_transmit_lr_s8 
+:      003607 le_transmit_lr_s2:
+0x276d 003608 setarg 1 
+0x276e 003609 inject mod ,5 
+0x276f 003610 enable lr_s2en 
+0x2770 003611 branch le_transmit_packet 
+:      003613 le_transmit_lr_s8:
+0x2771 003614 setarg 0 
+0x2772 003615 inject mod ,5 
+0x2773 003616 branch le_transmit_packet 
+:      003618 le_transmit_2m:
+0x2774 003619 fetch 1 ,mem_system_clk 
+0x2775 003620 fetcht 1 ,mem_le_tx2m_delay 
+0x2776 003621 iadd temp ,pdata 
+0x2777 003622 call sleep 
+0x2778 003623 rshift16 access ,pdata 
+0x2779 003624 rshift8 pdata ,pdata 
+0x277a 003625 rshift4 pdata ,temp 
+0x277b 003626 copy temp ,pdata 
+0x277c 003627 inject mod ,8 
+0x277d 003628 copy temp ,pdata 
+0x277e 003629 inject mod ,40 
+0x277f 003630 branch le_transmit_packet 
+:      003633 le_update_param:
+0x2780 003634 arg le_update_param_ahead1_cb ,regc 
+0x2781 003635 arg le_update_param_cb ,regb 
+0x2782 003636 arg lestate_update_param ,queue 
+0x2783 003637 branch le_check_update_flag 
+:      003639 le_update_param_ahead1_cb:
+0x2784 003640 add rega ,coffset_sniff_anchor ,contr 
+0x2785 003641 ifetcht 4 ,contr 
+0x2786 003642 add rega ,coffest_le_new_transmitwindowsize ,contr 
+0x2787 003643 ifetch 1 ,contr 
+0x2788 003644 add rega ,coffset_le_window_size ,contw 
+0x2789 003645 istore 1 ,contw 
+0x278a 003646 ifetch 2 ,contr 
+0x278b 003647 lshift2 pdata ,pdata 
+0x278c 003648 iadd temp ,timeup 
+0x278d 003649 add rega ,coffset_sniff_anchor ,contw 
+0x278e 003650 deposit timeup 
+0x278f 003651 istore 4 ,contw 
+0x2790 003652 ifetch 2 ,contr 
+0x2791 003653 lshift2 pdata ,pdata 
+0x2792 003654 add rega ,coffset_tsniff ,contw 
+0x2793 003655 istore 2 ,contw 
+0x2794 003656 ifetch 2 ,contr 
+0x2795 003657 add rega ,coffset_le_slave_latency ,contw 
+0x2796 003658 istore 2 ,contw 
+0x2797 003659 ifetch 2 ,contr 
+0x2798 003660 store 2 ,mem_le_init_superto 
+0x2799 003661 branch le_receive_window_size 
+:      003663 le_update_param_cb:
+0x279a 003664 ifetch 1 ,rega 
+0x279b 003665 set0 lestate_got_first_packet ,pdata 
+0x279c 003666 istore 1 ,rega 
+0x279d 003667 storer rega ,2 ,mem_rega 
+0x279e 003668 jam bt_evt_le_parse_conn_param_accepted ,mem_fifo_temp 
+0x279f 003669 call ui_ipc_send_event 
+0x27a0 003670 fetchr rega ,2 ,mem_rega 
+0x27a1 003671 rtn 
+:      003673 le_update_channel_map:
+0x27a2 003674 arg 0 ,regc 
+0x27a3 003675 arg le_update_channel_map_cb ,regb 
+0x27a4 003676 arg lestate_update_map ,queue 
+0x27a5 003677 branch le_check_update_flag 
+:      003679 le_update_channel_map_cb:
+0x27a6 003680 add rega ,coffset_le_new_map ,contr 
+0x27a7 003681 ifetch 5 ,contr 
+0x27a8 003682 add rega ,coffset_le_channel_map ,contw 
+0x27a9 003683 istore 5 ,contw 
+0x27aa 003684 branch le_calc_channel_map 
+:      003687 le_update_phy:
+0x27ab 003688 arg 0 ,regc 
+0x27ac 003689 arg le_update_phy_cb ,regb 
+0x27ad 003690 arg lestate_update_phy ,queue 
+0x27ae 003691 branch le_check_update_flag 
+:      003693 le_update_phy_cb:
+0x27af 003694 add rega ,coffset_le_new_m2s_phy ,contr 
+0x27b0 003695 ifetch 1 ,contr 
+0x27b1 003696 call le_update_phy_cb_m2s 
+0x27b2 003697 istore 1 ,contw 
+0x27b3 003698 add rega ,coffset_le_new_s2m_phy ,contr 
+0x27b4 003699 ifetch 1 ,contr 
+0x27b5 003700 call le_update_phy_cb_s2m 
+0x27b6 003701 istore 1 ,contw 
+0x27b7 003702 storer rega ,2 ,mem_rega 
+0x27b8 003703 jam bt_evt_le_update_phy ,mem_fifo_temp 
+0x27b9 003704 call ui_ipc_send_event 
+0x27ba 003705 fetchr rega ,2 ,mem_rega 
+0x27bb 003706 rtn 
+:      003708 le_update_phy_cb_m2s:
+0x27bc 003709 call le_update_phy_cb_m2s_no_change ,blank 
+0x27bd 003710 add rega ,coffset_le_rx_phy ,contw 
+0x27be 003711 nrtn master 
+0x27bf 003712 fetcht 1 ,mem_le_tx_phys 
+0x27c0 003713 isolate1 bit_le_coded_phy_s8 ,temp 
+0x27c1 003714 setflag true ,bit_le_coded_phy_s8 ,pdata 
+0x27c2 003715 add rega ,coffset_le_tx_phy ,contw 
+0x27c3 003716 rtn 
+:      003718 le_update_phy_cb_m2s_no_change:
+0x27c4 003719 add rega ,coffset_le_rx_phy ,contr 
+0x27c5 003720 ifetch 1 ,contr 
+0x27c6 003721 nrtn master 
+0x27c7 003722 add rega ,coffset_le_tx_phy ,contr 
+0x27c8 003723 ifetch 1 ,contr 
+0x27c9 003724 rtn 
+:      003726 le_update_phy_cb_s2m:
+0x27ca 003727 call le_update_phy_cb_s2m_no_change ,blank 
+0x27cb 003728 fetcht 1 ,mem_le_tx_phys 
+0x27cc 003729 isolate1 bit_le_coded_phy_s8 ,temp 
+0x27cd 003730 setflag true ,bit_le_coded_phy_s8 ,pdata 
+0x27ce 003731 add rega ,coffset_le_tx_phy ,contw 
+0x27cf 003732 nrtn master 
+0x27d0 003733 set0 bit_le_coded_phy_s8 ,pdata 
+0x27d1 003734 add rega ,coffset_le_rx_phy ,contw 
+0x27d2 003735 rtn 
+:      003737 le_update_phy_cb_s2m_no_change:
+0x27d3 003738 add rega ,coffset_le_tx_phy ,contr 
+0x27d4 003739 ifetch 1 ,contr 
+0x27d5 003740 nrtn master 
+0x27d6 003741 add rega ,coffset_le_rx_phy ,contr 
+0x27d7 003742 ifetch 1 ,contr 
+0x27d8 003743 rtn 
+:      003748 le_check_update_flag:
+0x27d9 003749 bpatchx patch2b_5 ,mem_patch2b 
+0x27da 003750 ifetch 1 ,rega 
+0x27db 003751 qisolate0 pdata 
+0x27dc 003752 rtn true 
+0x27dd 003753 add rega ,coffset_le_event_cnt ,contr 
+0x27de 003754 ifetcht 2 ,contr 
+0x27df 003755 add rega ,coffset_le_instant ,contr 
+0x27e0 003756 ifetch 2 ,contr 
+0x27e1 003758 isub temp ,pdata 
+0x27e2 003759 branch le_update ,zero 
+0x27e3 003760 nbranch le_check_update_small ,positive 
+0x27e4 003761 sub pdata ,1 ,null 
+0x27e5 003762 branch le_update_ahead1 ,zero 
+0x27e6 003763 rtn 
+:      003765 le_update_ahead1:
+0x27e7 003766 copy regc ,pdata 
+0x27e8 003767 branch callback_func 
+:      003769 le_update:
+0x27e9 003770 ifetch 1 ,rega 
+0x27ea 003771 qset0 pdata 
+0x27eb 003772 istore 1 ,rega 
+0x27ec 003773 copy regb ,pdata 
+0x27ed 003774 branch callback_func 
+:      003776 le_check_update_small:
+0x27ee 003777 add rega ,coffset_le_event_cnt ,contr 
+0x27ef 003778 ifetch 2 ,contr 
+0x27f0 003779 add rega ,coffset_le_instant ,contr 
+0x27f1 003780 ifetch 2 ,contr 
+0x27f2 003781 isub temp ,pdata 
+0x27f3 003782 arg 0xffff ,temp 
+0x27f4 003783 isub temp ,null 
+0x27f5 003784 branch le_update ,zero 
+0x27f6 003785 arg 0xf000 ,temp 
+0x27f7 003786 isub temp ,null 
+0x27f8 003787 nbranch le_update ,positive 
+0x27f9 003788 rtn 
+:      003791 le_check_retransmit:
+0x27fa 003792 fetcht 1 ,mem_le_arq 
+0x27fb 003793 fetch 1 ,mem_le_rxbuf_data_header 
+0x27fc 003796 rshift pdata ,pdata 
+0x27fd 003797 ixor temp ,pdata 
+0x27fe 003798 isolate1 nesn ,pdata 
+0x27ff 003799 setflag true ,mark_old_packet ,mark 
+0x2800 003800 rtn 
+:      003803 le_acknowledge:
+0x2801 003804 bpatchx patch2b_6 ,mem_patch2b 
+0x2802 003805 call le_supervision_flush 
+0x2803 003806 rtnmark1 mark_ble_crc_fail 
+0x2804 003807 call le_check_wak 
+0x2805 003808 fetch 1 ,mem_le_rxbuf_data_header 
+0x2806 003809 isolate1 md ,pdata 
+0x2807 003810 setflag true ,mark_ble_rx_md ,mark 
+0x2808 003811 rshift pdata ,pdata 
+0x2809 003812 ixor temp ,pdata 
+0x280a 003813 isolate1 nesn ,pdata 
+0x280b 003814 setflag true ,mark_old_packet ,mark 
+0x280c 003815 rtnmark1 mark_old_packet 
+0x280d 003816 fetch 1 ,mem_le_rxbuf_data_length 
+0x280e 003817 branch le_ack_unenc ,blank 
+0x280f 003818 fetch 1 ,mem_le_state 
+0x2810 003819 bbit0 lestate_encryption ,le_ack_unenc 
+0x2811 003820 fetcht 4 ,mem_le_peer_mic 
+0x2812 003821 fetch 4 ,mem_ccm_last_mic 
+0x2813 003822 isub temp ,null 
+0x2814 003823 branch assert ,zero 
+0x2815 003824 storet 4 ,mem_ccm_last_mic 
+0x2816 003825 fetch 5 ,mem_ccm_pcnt_rx 
+0x2817 003826 increase 1 ,pdata 
+0x2818 003827 set1 le_ccm_directionbit ,pdata 
+0x2819 003828 store 5 ,mem_ccm_pcnt_rx 
+:      003830 le_ack_unenc:
+0x281a 003831 fetcht 1 ,mem_le_arq 
+0x281b 003832 setflip nesn ,temp 
+0x281c 003833 storet 1 ,mem_le_arq 
+0x281d 003834 fetch 1 ,mem_le_configuration 
+0x281e 003835 rtnbit0 bit_ble_deal_bb_packet 
+0x281f 003836 bpatchx patch2b_7 ,mem_patch2b 
+0x2820 003837 fetch 1 ,mem_le_rxbuf_data_length 
+0x2821 003838 rtn blank 
+0x2822 003839 fetch 1 ,mem_le_rxbuf_data_header 
+0x2823 003840 compare llid_continue ,pdata ,3 
+0x2824 003841 branch le_parse_writing_attribute_continue ,true 
+0x2825 003842 compare llid_start ,pdata ,3 
+0x2826 003843 branch le_parse_writing_attribute_start ,true 
+0x2827 003844 rtn 
+:      003847 le_check_wak:
+0x2828 003848 bpatchx patch2c_0 ,mem_patch2c 
+0x2829 003849 fetcht 1 ,mem_le_arq 
+0x282a 003850 isolate0 wak ,temp 
+0x282b 003851 rtn true 
+0x282c 003852 fetch 1 ,mem_le_rxbuf_data_header 
+0x282d 003853 lshift pdata ,pdata 
+0x282e 003854 ixor temp ,pdata 
+0x282f 003855 rtnbit0 sn 
+0x2830 003856 set0 wak ,temp 
+0x2831 003857 setflip sn ,temp 
+0x2832 003858 storet 1 ,mem_le_arq 
+0x2833 003859 compare 3 ,temp ,3 
+0x2834 003861 rtn 
+:      003864 le_set_enc:
+0x2835 003865 fetch 1 ,mem_le_state 
+0x2836 003866 set1 lestate_encryption ,pdata 
+0x2837 003867 store 1 ,mem_le_state 
+0x2838 003868 set1 mark_ble_encryption ,mark 
+0x2839 003869 rtn 
+:      003871 le_clear_enc:
+0x283a 003872 bpatchx patch2c_1 ,mem_patch2c 
+0x283b 003873 jam flag_le_enc_null ,mem_le_enc_state 
+0x283c 003874 arg 0 ,pdata 
+0x283d 003875 store 4 ,mem_ccm_last_mic 
+0x283e 003876 store 5 ,mem_ccm_pcnt_tx 
+0x283f 003877 set1 le_ccm_directionbit ,pdata 
+0x2840 003878 store 5 ,mem_ccm_pcnt_rx 
+0x2841 003879 fetch 1 ,mem_le_state 
+0x2842 003880 set0 lestate_encryption ,pdata 
+0x2843 003881 store 1 ,mem_le_state 
+0x2844 003882 set0 mark_ble_encryption ,mark 
+0x2845 003883 rtn 
+:      003888 le_scan_check_sender_addr_type:
+0x2846 003889 arg 1 ,rega 
+0x2847 003890 fetch 1 ,mem_le_rxbuf_adv_connect_ind_header 
+0x2848 003891 rtnbit1 le_sender_addr_bit 
+0x2849 003892 arg 0 ,rega 
+0x284a 003893 rtn 
+:      003896 le_get_master_rx_max:
+0x284b 003897 copy contr ,contw 
+0x284c 003898 fetcht 2 ,mem_remote_rx_max_octets 
+0x284d 003899 copy contw ,contr 
+0x284e 003900 rtn 
+:      003903 le_prepare_tx:
+0x284f 003904 bpatchx patch2c_2 ,mem_patch2c 
+0x2850 003905 fetch 1 ,mem_le_arq 
+0x2851 003906 rtnbit1 wak 
+0x2852 003907 call le_check_tx_md 
+0x2853 003908 call le_fifo_get_first_tx_ptr 
+0x2854 003909 branch le_send_empty ,blank 
+0x2855 003910 ifetch 2 ,contr 
+0x2856 003911 ifetcht 2 ,contr 
+0x2857 003912 copy temp ,rega 
+0x2858 003913 isub rega ,pdata 
+0x2859 003914 call le_get_master_rx_max 
+0x285a 003915 call not_greater_than 
+0x285b 003916 copy pdata ,temp 
+0x285c 003917 ifetchr type ,1 ,contr 
+0x285d 003918 copy rega ,pdata 
+0x285e 003919 iadd contr ,pdata 
+0x285f 003920 store 2 ,mem_contr 
+0x2860 003921 call le_update_tx_type 
+0x2861 003922 call le_send_packet 
+0x2862 003924 call le_fifo_get_first_tx_ptr 
+0x2863 003925 ifetch 2 ,contr 
+0x2864 003926 copy pdata ,rega 
+0x2865 003927 copy contr ,regc 
+0x2866 003928 ifetcht 2 ,contr 
+0x2867 003929 copy temp ,regb 
+0x2868 003930 isub regb ,pdata 
+0x2869 003931 call le_get_master_rx_max 
+0x286a 003932 call not_greater_than 
+0x286b 003933 iadd regb ,pdata 
+0x286c 003934 istore 2 ,regc 
+0x286d 003935 isub rega ,null 
+0x286e 003936 nrtn zero 
+0x286f 003937 branch le_fifo_release_first_node 
+:      003940 le_check_tx_md:
+0x2870 003941 call le_check_continue 
+0x2871 003942 rtnmark1 mark_ble_tx_md 
+0x2872 003943 fetch 1 ,mem_le_configuration 
+0x2873 003944 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
+0x2874 003945 call le_fifo_get_second_tx_ptr 
+0x2875 003946 branch le_clear_md ,blank 
+0x2876 003947 branch le_set_md 
+:      003950 le_check_continue:
+0x2877 003951 call le_fifo_get_first_tx_ptr 
+0x2878 003952 branch le_clear_md ,blank 
+0x2879 003953 ifetch 2 ,contr 
+0x287a 003954 ifetcht 2 ,contr 
+0x287b 003955 isub temp ,rega 
+0x287c 003956 call le_get_master_rx_max 
+0x287d 003957 copy temp ,pdata 
+0x287e 003958 isub rega ,null 
+0x287f 003959 branch le_clear_md ,positive 
+:      003960 le_set_md:
+0x2880 003961 set1 mark_ble_tx_md ,mark 
+0x2881 003962 rtn 
+:      003964 le_clear_md:
+0x2882 003965 set0 mark_ble_tx_md ,mark 
+0x2883 003966 rtn 
+:      003968 le_update_tx_type:
+0x2884 003969 copy rega ,pdata 
+0x2885 003970 rtn blank 
+0x2886 003971 arg llid_continue ,type 
+0x2887 003972 rtn 
+:      003975 le_att_check_notification_enable:
+0x2888 003976 bpatchx patch2c_3 ,mem_patch2c 
+0x2889 003977 increase 1 ,temp 
+0x288a 003978 call le_att_get_handle_ptr 
+0x288b 003979 increase -2 ,contr 
+0x288c 003980 ifetch 2 ,contr 
+0x288d 003981 arg client_charactertic_configuration ,temp 
+0x288e 003982 isub temp ,null 
+0x288f 003983 nrtn zero 
+0x2890 003984 increase 1 ,contr 
+0x2891 003985 copy contr ,rega 
+0x2892 003986 ifetch 1 ,contr 
+0x2893 003987 rtn 
+:      003990 le_send_empty:
+0x2894 003991 force 0 ,temp 
+0x2895 003992 force 1 ,type 
+:      003994 le_send_packet:
+0x2896 003995 bpatchx patch2c_4 ,mem_patch2c 
+0x2897 003996 storet 1 ,mem_le_txlen 
+0x2898 003997 fetcht 1 ,mem_le_arq 
+0x2899 003998 set1 wak ,temp 
+0x289a 003999 and temp ,0xfc ,pdata 
+0x289b 004000 ior type ,pdata 
+0x289c 004001 store 1 ,mem_le_arq 
+0x289d 004002 and_into 0x1f ,pdata 
+0x289e 004003 isolate1 mark_ble_tx_md ,mark 
+0x289f 004004 setflag true ,md ,pdata 
+0x28a0 004005 store 1 ,mem_le_txheader 
+0x28a1 004007 fetch 1 ,mem_le_txheader 
+0x28a2 004008 compare 1 ,type ,3 
+0x28a3 004009 nbranch le_send_no_txlen ,true 
+0x28a4 004010 fetch 1 ,mem_le_txlen 
+0x28a5 004011 rtn blank 
+:      004013 le_send_no_txlen:
+0x28a6 004014 bmark1 mark_ble_encryption ,le_send_packet_enc 
+0x28a7 004015 fetchr loopcnt ,1 ,mem_le_txlen 
+0x28a8 004016 fetch 2 ,mem_contr 
+0x28a9 004017 copy pdata ,contr 
+0x28aa 004018 arg mem_le_txpayload ,contw 
+0x28ab 004019 branch memcpy_fast 
+:      004021 le_send_packet_enc:
+0x28ac 004022 call load_sk 
+0x28ad 004023 branch le_encrypt_new_start 
+:      004025 get_lpm_wake_ble_rx_lock:
+0x28ae 004026 arg wake_lock_ble_rx ,queue 
+0x28af 004027 branch lpm_get_wake_lock 
+:      004029 put_lpm_wake_ble_rx_lock:
+0x28b0 004030 arg wake_lock_ble_rx ,queue 
+0x28b1 004031 branch lpm_put_wake_lock 
+:      004034 le_parse:
+0x28b2 004035 bpatchx patch2c_5 ,mem_patch2c 
+0x28b3 004036 rtnmark1 mark_old_packet 
+0x28b4 004037 rtnmark1 mark_ble_crc_fail 
+0x28b5 004038 fetch 1 ,mem_le_rxbuf_data_header 
+0x28b6 004039 and pdata ,0x3 ,pdata 
+0x28b7 004040 store 1 ,mem_le_packet_llid 
+0x28b8 004041 fetch 1 ,mem_le_rxbuf_data_length 
+0x28b9 004042 rtn blank 
+0x28ba 004043 setarg mem_le_rxbuf_data_payload 
+0x28bb 004044 store 2 ,mem_le_payload_ptr 
+0x28bc 004045 bpatchx patch2c_6 ,mem_patch2c 
+0x28bd 004046 fetch 1 ,mem_le_packet_llid 
+0x28be 004047 rtneq llid_reserved 
+0x28bf 004048 beq llid_le_ll ,le_parse_ll 
+:      004049 le_parse_l2cap:
+0x28c0 004050 call le_check_l2cap_complete 
+0x28c1 004051 nbranch get_lpm_wake_ble_rx_lock ,user 
+0x28c2 004052 call put_lpm_wake_ble_rx_lock 
+0x28c3 004053 setarg 0 
+0x28c4 004054 store 2 ,mem_le_packet_len_recved 
+0x28c5 004055 fetch 2 ,mem_le_payload_ptr 
+0x28c6 004056 add pdata ,2 ,contr 
+0x28c7 004057 bpatchx patch2c_7 ,mem_patch2c 
+0x28c8 004058 ifetch 2 ,contr 
+0x28c9 004059 beq le_l2cap_cid_att ,le_parse_att 
+0x28ca 004060 beq le_l2cap_cid_smp ,le_parse_smp 
+0x28cb 004061 beq le_l2cap_cid_signal ,le_parse_signaling 
+0x28cc 004062 rtn 
+:      004065 le_check_l2cap_complete:
+0x28cd 004066 fetch 1 ,mem_le_packet_llid 
+0x28ce 004067 beq llid_start ,le_check_l2cap_llid_start 
+0x28cf 004068 beq llid_continue ,le_check_l2cap_llid_continue 
+0x28d0 004069 rtn 
+:      004074 le_check_l2cap_cid_legal:
+0x28d1 004075 call enable_user 
+0x28d2 004076 arg le_l2cap_cid_att ,temp 
+0x28d3 004077 isub pdata ,null 
+0x28d4 004078 rtn zero 
+0x28d5 004079 arg le_l2cap_cid_signal ,temp 
+0x28d6 004080 isub pdata ,null 
+0x28d7 004081 rtn zero 
+0x28d8 004082 arg le_l2cap_cid_smp ,temp 
+0x28d9 004083 isub pdata ,null 
+0x28da 004084 rtn zero 
+0x28db 004085 branch disable_user 
+:      004088 le_check_l2cap_llid_start:
+0x28dc 004089 fetch 2 ,mem_le_payload_ptr 
+0x28dd 004090 copy pdata ,contr 
+0x28de 004091 ifetch 2 ,contr 
+0x28df 004092 store 2 ,mem_le_l2cap_size 
+0x28e0 004093 ifetch 2 ,contr 
+0x28e1 004094 call le_check_l2cap_cid_legal 
+0x28e2 004095 nrtn user 
+0x28e3 004096 fetcht 1 ,mem_le_rxbuf_data_length 
+0x28e4 004097 storet 2 ,mem_le_packet_len_recved 
+0x28e5 004098 fetch 2 ,mem_le_l2cap_size 
+0x28e6 004099 increase 4 ,pdata 
+0x28e7 004100 isub temp ,null 
+0x28e8 004101 branch enable_user ,zero 
+0x28e9 004102 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x28ea 004103 arg mem_le_l2cap_buf ,contw 
+0x28eb 004104 fetch 2 ,mem_le_payload_ptr 
+0x28ec 004105 copy pdata ,contr 
+0x28ed 004106 call memcpy_fast 
+0x28ee 004107 branch disable_user 
+:      004112 le_check_l2cap_continue_legal:
+0x28ef 004113 call enable_user 
+0x28f0 004114 fetch 2 ,mem_le_packet_len_recved 
+0x28f1 004115 nrtn blank 
+0x28f2 004116 branch disable_user 
+:      004118 le_check_l2cap_llid_continue:
+0x28f3 004119 call le_check_l2cap_continue_legal 
+0x28f4 004120 nrtn user 
+0x28f5 004121 fetch 2 ,mem_le_packet_len_recved 
+0x28f6 004122 arg mem_le_l2cap_buf ,contw 
+0x28f7 004123 iadd contw ,rega 
+0x28f8 004124 fetcht 1 ,mem_le_rxbuf_data_length 
+0x28f9 004125 iadd temp ,pdata 
+0x28fa 004126 store 2 ,mem_le_packet_len_recved 
+0x28fb 004127 fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+0x28fc 004128 copy rega ,contw 
+0x28fd 004129 fetch 2 ,mem_le_payload_ptr 
+0x28fe 004130 copy pdata ,contr 
+0x28ff 004131 call memcpy_fast 
+0x2900 004132 setarg mem_le_l2cap_buf 
+0x2901 004133 store 2 ,mem_le_payload_ptr 
+0x2902 004134 fetch 2 ,mem_le_l2cap_size 
+0x2903 004135 increase 4 ,pdata 
+0x2904 004136 fetcht 2 ,mem_le_packet_len_recved 
+0x2905 004137 isub temp ,null 
+0x2906 004138 branch enable_user ,zero 
+0x2907 004139 branch disable_user 
+:      004144 le_writeatt_cb:
+0x2908 004145 fetch 2 ,mem_cb_att_write 
+0x2909 004146 branch callback_func 
+:      004148 le_supervision_update:
+0x290a 004149 bpatchx patch2d_0 ,mem_patch2d 
+0x290b 004150 fetcht 4 ,mem_le_supervision_timer 
+0x290c 004151 call get_clkbt 
+0x290d 004152 isub temp ,timeup 
+0x290e 004153 deposit timeup 
+0x290f 004154 fetcht 2 ,mem_le_superto 
+0x2910 004155 lshift4 temp ,temp 
+0x2911 004156 lshift temp ,temp 
+0x2912 004157 isub temp ,pdata 
+0x2913 004158 rtn 
+:      004160 le_supervision_flush:
+0x2914 004161 call get_clkbt 
+0x2915 004162 store 4 ,mem_le_supervision_timer 
+0x2916 004163 rtn 
+:      004167 le_receive_window_size:
+0x2917 004168 bpatchx patch2d_1 ,mem_patch2d 
+0x2918 004169 add rega ,coffset_le_peer_sca ,contr 
+0x2919 004170 ifetch 1 ,contr 
+0x291a 004171 call le_sca_map 
+0x291b 004172 add rega ,coffset_tsniff ,contr 
+0x291c 004173 ifetch 2 ,contr 
+0x291d 004174 imul32 temp ,pdata 
+0x291e 004175 fetcht 2 ,mem_param_rt_rthalfslot 
+0x291f 004176 imul32 temp ,pdata 
+0x2920 004177 arg 1000000 ,temp 
+0x2921 004178 idiv temp 
+0x2922 004179 arg param_windown_size ,temp 
+0x2923 004180 fetch 1 ,mem_system_clk 
+0x2924 004181 imul32 temp ,temp 
+0x2925 004182 add rega ,coffset_le_window_size ,contr 
+0x2926 004183 ifetch 1 ,contr 
+0x2927 004184 imul32 temp ,pdata 
+0x2928 004185 iadd temp ,pdata 
+0x2929 004186 store 4 ,mem_le_transmit_window 
+0x292a 004187 fetch 2 ,mem_rx_window_sniff 
+0x292b 004188 call wait_div_end 
+0x292c 004189 quotient temp 
+0x292d 004190 iadd temp ,pdata 
+0x292e 004191 add rega ,coffset_rx_window ,contw 
+0x292f 004192 istore 2 ,contw 
+0x2930 004193 rtn 
+:      004198 le_modified_name:
+0x2931 004199 bpatchx patch2d_2 ,mem_patch2d 
+0x2932 004200 call le_modified_name_att_list 
+0x2933 004201 branch le_modified_name_adv 
+:      004203 le_modified_name_att_list:
+0x2934 004204 jam 2 ,mem_le_search_att_type_length 
+0x2935 004205 arg uuid_chrctr_device_name ,temp 
+0x2936 004206 storet 2 ,mem_le_search_att_type 
+0x2937 004207 call le_att_get_uuid_ptr 
+0x2938 004208 rtn blank 
+0x2939 004209 ifetch 1 ,contr 
+0x293a 004210 copy contr ,contw 
+0x293b 004211 fetcht 1 ,mem_le_name_len 
+0x293c 004212 copy temp ,loopcnt 
+0x293d 004213 isub temp ,null 
+0x293e 004214 nbranch le_name_length_longer_than_att ,positive 
+0x293f 004215 isub temp ,temp 
+0x2940 004216 arg mem_le_name ,contr 
+0x2941 004217 call memcpy_fast 
+0x2942 004218 copy temp ,loopcnt 
+0x2943 004219 ncall memcpy_empty ,zero 
+0x2944 004220 rtn 
+:      004221 le_name_length_longer_than_att:
+0x2945 004222 copy pdata ,loopcnt 
+0x2946 004223 arg mem_le_name ,contr 
+0x2947 004224 branch memcpy_fast 
+:      004227 le_modified_name_adv:
+0x2948 004228 arg mem_le_adv_data_len + 32 ,regc 
+0x2949 004229 arg mem_le_adv_data ,rega 
+0x294a 004230 call le_modified_name_adv_and_scan 
+0x294b 004231 setarg 0 
+0x294c 004232 setflag user ,0 ,pdata 
+0x294d 004233 store 1 ,mem_pdatatemp 
+0x294e 004234 arg mem_le_scan_data_len + 32 ,regc 
+0x294f 004235 arg mem_le_scan_data ,rega 
+0x2950 004236 call le_modified_name_adv_and_scan 
+0x2951 004237 rtn user 
+0x2952 004238 fetch 1 ,mem_pdatatemp 
+0x2953 004239 branch assert ,blank 
+0x2954 004240 rtn 
+:      004243 le_modified_name_adv_and_scan:
+0x2955 004244 bpatchx patch2d_3 ,mem_patch2d 
+0x2956 004245 call enable_user 
+0x2957 004246 call clear_temp_block 
+0x2958 004247 arg 0 ,regb 
+0x2959 004248 arg mem_le_data_temp ,contw 
+0x295a 004249 call le_modified_name_adv_loop 
+0x295b 004250 fetch 1 ,mem_le_name_len 
+0x295c 004251 add pdata ,1 ,temp 
+0x295d 004252 iadd regb ,rega 
+0x295e 004253 increase 2 ,rega 
+0x295f 004254 sub rega ,0x1f ,null 
+0x2960 004255 nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
+0x2961 004256 istoret 1 ,contw 
+0x2962 004257 arg gap_adtype_local_name_complete ,temp 
+0x2963 004258 istoret 1 ,contw 
+0x2964 004259 iforce loopcnt 
+0x2965 004260 call memcpy_fast 
+0x2966 004261 copy rega ,regb 
+:      004262 le_modified_name_adv_and_scan_store_data:
+0x2967 004263 deposit regb 
+0x2968 004264 store 1 ,mem_le_data_len_temp 
+0x2969 004265 arg mem_le_data_len_temp ,contr 
+0x296a 004266 setarg -32 
+0x296b 004267 iadd regc ,contw 
+0x296c 004268 branch memcpy32 
+:      004270 le_modified_name_adv_and_scan_name_overflow:
+0x296d 004271 call disable_user 
+0x296e 004272 branch le_modified_name_adv_and_scan_store_data 
+:      004274 le_modified_name_adv_loop:
+0x296f 004275 ifetch 1 ,rega 
+0x2970 004276 rtn blank 
+0x2971 004277 pincrease 1 
+0x2972 004278 ifetcht 1 ,contr 
+0x2973 004279 sub temp ,gap_adtype_local_name_complete ,null 
+0x2974 004280 branch le_modified_name_adv_found_name ,zero 
+0x2975 004281 iadd regb ,regb 
+0x2976 004282 copy rega ,contr 
+0x2977 004283 iforce loopcnt 
+0x2978 004284 call memcpy_fast 
+0x2979 004285 copy contr ,rega 
+:      004286 le_modified_name_adv_loop2:
+0x297a 004287 deposit rega 
+0x297b 004288 isub regc ,null 
+0x297c 004289 rtn positive 
+0x297d 004290 branch le_modified_name_adv_loop 
+:      004292 le_modified_name_adv_found_name:
+0x297e 004293 iadd rega ,rega 
+0x297f 004294 branch le_modified_name_adv_loop2 
+:      004297 memcpy_empty:
+0x2980 004298 setarg space 
+0x2981 004299 istore 1 ,contw 
+0x2982 004300 loop memcpy_empty 
+0x2983 004301 rtn 
+:      004304 le_lpm_set_mult:
+0x2984 004305 bpatchx patch2d_4 ,mem_patch2d 
+0x2985 004306 disable wake 
+0x2986 004307 branch le_lpm_set_mult_attempt ,attempt 
+0x2987 004308 nbranch le_lpm_lost ,match 
+:      004309 le_lpm_set_mult_attempt:
+0x2988 004310 call lpm_match 
+0x2989 004311 fetch 2 ,mem_rx_window_sniff 
+0x298a 004312 store 2 ,mem_le_receive_window 
+0x298b 004313 fetch 1 ,mem_le_configuration 
+0x298c 004314 bbit1 bit_ble_short_mult ,lpm_mult_short 
+0x298d 004315 bmark1 mark_old_packet ,lpm_mult_short 
+0x298e 004316 fetch 1 ,mem_le_rxbuf_data_length 
+0x298f 004317 nbranch lpm_mult_short ,blank 
+0x2990 004318 fetch 1 ,mem_le_txlen 
+0x2991 004319 nbranch lpm_mult_short ,blank 
+0x2992 004321 fetch 1 ,mem_le_state 
+0x2993 004322 bbit1 lestate_update_param ,lpm_mult_short 
+0x2994 004323 bbit1 lestate_update_phy ,lpm_mult_short 
+0x2995 004324 bbit1 lestate_update_map ,lpm_mult_short 
+0x2996 004325 branch lpm_mult_wait_timeout 
+:      004327 le_lpm_lost:
+0x2997 004328 fetch 1 ,mem_sniff_unint_lost 
+0x2998 004329 sub pdata ,30 ,null 
+0x2999 004330 nbranch lpm_lost ,positive 
+0x299a 004331 fetcht 2 ,mem_rx_window_sniff 
+0x299b 004332 rshift temp ,temp 
+0x299c 004333 fetch 2 ,mem_le_receive_window 
+0x299d 004334 iadd temp ,pdata 
+0x299e 004335 store 2 ,mem_le_receive_window 
+0x299f 004336 branch lpm_lost 
+:      004339 le_set_config_fixed_tk:
+0x29a0 004340 arg bit_ble_passkey_fixed_key ,queue 
+0x29a1 004341 branch le_set_config 
+:      004343 le_clr_config_fixed_tk:
+0x29a2 004344 arg bit_ble_passkey_fixed_key ,queue 
+0x29a3 004345 branch le_clr_config 
+:      004347 le_set_config_fixed_ltk:
+0x29a4 004348 arg bit_ble_pairing_fixed_ltk ,queue 
+0x29a5 004349 branch le_set_config 
+:      004351 le_clr_config_fixed_ltk:
+0x29a6 004352 arg bit_ble_pairing_fixed_ltk ,queue 
+0x29a7 004353 branch le_clr_config 
+:      004355 le_set_config_more_data:
+0x29a8 004356 arg bit_ble_transmit_packet_by_md ,queue 
+0x29a9 004357 branch le_set_config 
+:      004359 le_clr_config_more_data:
+0x29aa 004360 arg bit_ble_transmit_packet_by_md ,queue 
+0x29ab 004361 branch le_clr_config 
+:      004363 le_set_config_read_authentication:
+0x29ac 004364 arg bit_ble_read_auth ,queue 
+0x29ad 004365 branch le_set_config 
+:      004367 le_clr_config_read_authentication:
+0x29ae 004368 arg bit_ble_read_auth ,queue 
+0x29af 004369 branch le_clr_config 
+:      004371 le_set_config_write_authentication:
+0x29b0 004372 arg bit_ble_write_auth ,queue 
+0x29b1 004373 branch le_set_config 
+:      004375 le_clr_config_write_authentication:
+0x29b2 004376 arg bit_ble_write_auth ,queue 
+0x29b3 004377 branch le_clr_config 
+:      004379 le_set_config_short_mult:
+0x29b4 004380 arg bit_ble_short_mult ,queue 
+:      004382 le_set_config:
+0x29b5 004383 fetch 1 ,mem_le_configuration 
+0x29b6 004384 qset1 pdata 
+0x29b7 004385 store 1 ,mem_le_configuration 
+0x29b8 004386 rtn 
+:      004389 le_clr_config_short_mult:
+0x29b9 004390 arg bit_ble_short_mult ,queue 
+:      004392 le_clr_config:
+0x29ba 004393 fetch 1 ,mem_le_configuration 
+0x29bb 004394 qset0 pdata 
+0x29bc 004395 store 1 ,mem_le_configuration 
+0x29bd 004396 rtn 
+:      004400 le_set_fixed_ltk:
+0x29be 004401 setarg 0x112233 
+0x29bf 004402 store 3 ,mem_le_fixed_ltk 
+0x29c0 004403 setarg 0x445566 
+0x29c1 004404 istore 3 ,contw 
+0x29c2 004405 setarg 0x778899 
+0x29c3 004406 istore 3 ,contw 
+0x29c4 004407 setarg 0x001122 
+0x29c5 004408 istore 3 ,contw 
+0x29c6 004409 setarg 0x334455 
+0x29c7 004410 istore 3 ,contw 
+0x29c8 004411 setarg 0x66 
+0x29c9 004412 branch istore_1_contw_rtn 
+:      004416 le_set_justwork:
+0x29ca 004417 setarg 0x01000302 
+0x29cb 004418 store 4 ,mem_le_pres 
+0x29cc 004419 setarg 0x010010 
+0x29cd 004420 store 3 ,mem_le_pres_max_keysize 
+0x29ce 004421 jam 1 ,mem_le_pairing_mode 
+0x29cf 004422 rtn 
+:      004426 le_fifo_malloc_tx_empty:
+0x29d0 004427 arg 0 ,rega 
+0x29d1 004428 arg llid_empty ,type 
+0x29d2 004429 branch le_fifo_malloc_tx 
+:      004433 le_fifo_malloc_tx_ll:
+0x29d3 004434 bpatchx patch2d_5 ,mem_patch2d 
+0x29d4 004435 arg llid_le_ll ,type 
+0x29d5 004436 call le_fifo_malloc_tx 
+0x29d6 004437 copy regb ,pdata 
+0x29d7 004438 istore 1 ,contw 
+0x29d8 004439 rtn 
+:      004443 le_fifo_malloc_tx_l2cap:
+0x29d9 004444 bpatchx patch2d_6 ,mem_patch2d 
+0x29da 004445 force llid_start ,type 
+0x29db 004446 increase 4 ,rega 
+0x29dc 004447 call le_fifo_malloc_tx 
+0x29dd 004448 increase -4 ,rega 
+0x29de 004449 copy rega ,pdata 
+0x29df 004450 istore 2 ,contw 
+0x29e0 004451 copy regb ,pdata 
+0x29e1 004452 istore 2 ,contw 
+0x29e2 004453 rtn 
+:      004457 le_fifo_malloc_tx:
+0x29e3 004458 bpatchx patch2d_7 ,mem_patch2d 
+0x29e4 004459 increase 5 ,rega 
+0x29e5 004460 call ble_l2cap_malloc 
+0x29e6 004461 increase -5 ,rega 
+0x29e7 004462 copy rega ,pdata 
+0x29e8 004463 istore 2 ,contw 
+0x29e9 004464 setarg 0 
+0x29ea 004465 istore 2 ,contw 
+0x29eb 004466 copy type ,pdata 
+0x29ec 004467 istore 1 ,contw 
+0x29ed 004468 rtn 
+:      004471 le_fifo_get_first_tx_ptr:
+0x29ee 004472 bpatchx patch2e_0 ,mem_patch2e 
+0x29ef 004473 call l2cap_malloc_fifo_out 
+0x29f0 004474 copy pdata ,contr 
+0x29f1 004475 rtn 
+:      004477 le_fifo_get_second_tx_ptr:
+0x29f2 004478 fetch 2 ,mem_tx_fifo2_ptr 
+0x29f3 004479 rtn 
+:      004481 le_fifo_get_last_tx_ptr:
+0x29f4 004482 call le_fifo_get_last_tx_ptr0 
+0x29f5 004483 copy pdata ,contr 
+0x29f6 004484 rtn 
+:      004487 le_fifo_get_last_tx_ptr0:
+0x29f7 004488 fetch 2 ,mem_tx_fifo3_ptr 
+0x29f8 004489 rtn 
+:      004492 le_fifo_get_first_l2cap_ptr:
+0x29f9 004493 call le_fifo_get_first_tx_ptr 
+0x29fa 004494 increase 5 ,contr 
+0x29fb 004495 rtn 
+:      004497 le_fifo_get_first_att_ptr:
+0x29fc 004498 call le_fifo_get_first_tx_ptr 
+0x29fd 004499 increase 9 ,contr 
+0x29fe 004500 rtn 
+:      004502 le_fifo_get_last_att_ptr:
+0x29ff 004503 call le_fifo_get_last_tx_ptr 
+0x2a00 004504 increase 9 ,contr 
+0x2a01 004505 rtn 
+:      004507 le_fifo_get_last_l2cap_ptr:
+0x2a02 004508 call le_fifo_get_last_tx_ptr 
+0x2a03 004509 increase 5 ,contr 
+0x2a04 004510 rtn 
+:      004513 le_fifo_check_full:
+0x2a05 004514 branch l2cap_malloc_is_fifo_full 
+:      004517 le_fifo_check_nearly_full:
+0x2a06 004518 branch l2cap_malloc_is_fifo_nearly_full 
+:      004521 le_fifo_check_empty:
+0x2a07 004522 branch l2cap_malloc_is_fifo_empty 
+:      004525 le_fifo_release_first_node:
+0x2a08 004526 branch l2cap_malloc_free 
+:      004529 le_set_dle:
+0x2a09 004530 store 8 ,mem_local_rx_max_octets 
+0x2a0a 004531 branch le_set_feature_data_packet_length_extension 
+:      004534 le_set_phys:
+0x2a0b 004535 and temp ,0xff ,rega 
+0x2a0c 004536 call le_set_tx_phy 
+0x2a0d 004537 rshift8 temp ,rega 
+:      004539 le_set_rx_phy:
+0x2a0e 004540 storer rega ,1 ,mem_le_rx_phys 
+0x2a0f 004541 branch le_set_phy_common 
+:      004543 le_set_tx_phy:
+0x2a10 004544 storer rega ,1 ,mem_le_tx_phys 
+:      004545 le_set_phy_common:
+0x2a11 004546 isolate1 bit_le_2m_phy ,rega 
+0x2a12 004547 call le_set_feature_2m_phy ,true 
+0x2a13 004548 isolate1 bit_le_coded_phy ,rega 
+0x2a14 004549 call le_set_feature_coded_phy ,true 
+0x2a15 004550 rtn 
+:      004554 le_set_feature_2m_phy:
+0x2a16 004555 arg bit_ll_feature_le_2m_phy ,queue 
+0x2a17 004556 branch le_set_feature 
+:      004559 le_set_feature_coded_phy:
+0x2a18 004560 arg bit_ll_feature_le_coded_phy ,queue 
+0x2a19 004561 branch le_set_feature 
+:      004563 le_set_feature_data_packet_length_extension:
+0x2a1a 004564 arg bit_ll_feature_le_data_packet_length_extension ,queue 
+:      004566 le_set_feature:
+0x2a1b 004567 fetch 8 ,mem_le_local_feature 
+0x2a1c 004568 qset1 pdata 
+0x2a1d 004569 store 8 ,mem_le_local_feature 
+0x2a1e 004570 rtn 
+:      004572 le_set_fixed_ltk_justwork:
+0x2a1f 004573 call le_set_config_fixed_ltk 
+0x2a20 004574 call le_set_justwork 
+0x2a21 004575 call le_set_fixed_ltk 
+0x2a22 004576 branch le_set_config_read_authentication 
+:      004581 le_advertising_dispatch:
+0x2a23 004582 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+0x2a24 004583 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+0x2a25 004584 set0 mark_ble_crc_fail ,mark 
+0x2a26 004585 set1 mark_adv ,mark 
+0x2a27 004586 set0 mark_ble_encryption ,mark 
+0x2a28 004587 call le_enable 
+0x2a29 004588 call le_scan 
+0x2a2a 004589 call le_adv 
+0x2a2b 004590 set0 mark_adv ,mark 
+0x2a2c 004591 branch le_disable 
+:      004593 le_scan:
+0x2a2d 004594 bpatchx patch2e_1 ,mem_patch2e 
+0x2a2e 004595 fetch 1 ,mem_le_scan_enable 
+0x2a2f 004596 rtnne le_scan_enable 
+0x2a30 004597 arg le_scan_interval_timer ,queue 
+0x2a31 004598 call timer_check 
+0x2a32 004599 nrtn blank 
+0x2a33 004600 fetch 2 ,mem_le_scan_interval 
+0x2a34 004601 fetcht 2 ,mem_le_scan_window 
+0x2a35 004602 isub temp ,pdata 
+0x2a36 004603 arg le_scan_interval_timer ,queue 
+0x2a37 004604 call timer_init 
+0x2a38 004605 disable master 
+0x2a39 004606 call le_init_adv 
+0x2a3a 004607 call le_wait_adv 
+0x2a3b 004608 nrtn match 
+0x2a3c 004609 bpatchx patch2e_2 ,mem_patch2e 
+0x2a3d 004610 fetch 6 ,mem_le_rxbuf + 2 
+0x2a3e 004611 store 6 ,mem_le_plap 
+0x2a3f 004614 fetch 1 ,mem_le_adv_rcv 
+0x2a40 004615 increase 1 ,pdata 
+0x2a41 004616 store 1 ,mem_le_adv_rcv 
+0x2a42 004617 call le_create_conn 
+0x2a43 004618 rtn master 
+0x2a44 004619 call le_send_scan_request 
+0x2a45 004620 nrtn match 
+0x2a46 004621 fetch 1 ,mem_le_scanrsp_rcv 
+0x2a47 004622 increase 1 ,pdata 
+0x2a48 004623 store 1 ,mem_le_scanrsp_rcv 
+0x2a49 004624 fetch 9 ,mem_le_rxbuf + 8 
+0x2a4a 004625 store 9 ,mem_temp_block0 
+0x2a4b 004626 rtn 
+:      004629 le_wait_adv:
+0x2a4c 004630 bpatchx patch2e_3 ,mem_patch2e 
+0x2a4d 004631 call le_next_adv_channel 
+0x2a4e 004632 call le_receive_adv 
+0x2a4f 004633 fetch 1 ,mem_le_adv_waitcnt 
+0x2a50 004634 increase 1 ,pdata 
+0x2a51 004635 store 1 ,mem_le_adv_waitcnt 
+0x2a52 004636 rtn 
+:      004639 le_create_conn:
+0x2a53 004640 bpatchx patch2e_4 ,mem_patch2e 
+0x2a54 004641 fetch 1 ,mem_cmd_le_create_conn 
+0x2a55 004642 rtnne hci_cmd_le_create_conn 
+0x2a56 004643 fetch 6 ,mem_le_plap 
+0x2a57 004644 fetcht 6 ,mem_le_conn_peer_addr 
+0x2a58 004645 isub temp ,null 
+0x2a59 004646 nrtn zero 
+0x2a5a 004647 call context_new 
+0x2a5b 004648 nrtn zero 
+0x2a5c 004649 call le_connect_request 
+0x2a5d 004650 call le_init_master 
+0x2a5e 004651 call le_send_version_ind 
+0x2a5f 004652 jam bt_evt_le_connected ,mem_fifo_temp 
+0x2a60 004653 call ui_ipc_send_event 
+0x2a61 004654 jam 0 ,mem_hci_cmd 
+0x2a62 004655 jam 0 ,mem_le_peer_sca 
+0x2a63 004656 jam 0 ,mem_le_scan_enable 
+0x2a64 004657 jam 0 ,mem_cmd_le_create_conn 
+0x2a65 004658 branch context_save 
+:      004660 le_connect_request:
+0x2a66 004661 bpatchx patch2e_5 ,mem_patch2e 
+0x2a67 004662 force -1 ,pdata 
+0x2a68 004663 setsect 2 ,1 
+0x2a69 004664 store 5 ,mem_le_channel_map 
+0x2a6a 004665 arg mem_le_state ,rega 
+0x2a6b 004666 call le_calc_channel_map 
+0x2a6c 004667 force 4 ,loopcnt 
+0x2a6d 004668 arg mem_le_access ,contw 
+0x2a6e 004669 call generate_random_loop 
+0x2a6f 004670 fetch 2 ,mem_le_timeout 
+0x2a70 004671 store 2 ,mem_le_superto 
+:      004672 le_con_req_hop_retry:
+0x2a71 004673 random pdata 
+0x2a72 004674 and_into 0xf ,pdata 
+0x2a73 004675 sub pdata ,4 ,null 
+0x2a74 004676 branch le_con_req_hop_retry ,positive 
+0x2a75 004677 store 1 ,mem_le_hop 
+0x2a76 004679 bpatchx patch2e_6 ,mem_patch2e 
+0x2a77 004680 fetcht 2 ,mem_le_conn_interval 
+0x2a78 004681 storet 2 ,mem_le_tsniff 
+0x2a79 004682 copy temp ,regc 
+0x2a7a 004683 add clkn_bt ,7 ,pdata 
+0x2a7b 004684 idiv regc 
+0x2a7c 004685 call wait_div_end 
+0x2a7d 004686 remainder rega 
+0x2a7e 004687 isub rega ,pdata 
+0x2a7f 004688 iadd regc ,pdata 
+0x2a80 004689 fetcht 2 ,mem_le_dsniff 
+0x2a81 004690 iadd temp ,pdata 
+0x2a82 004691 store 4 ,mem_le_anchor 
+0x2a83 004692 isub clkn_bt ,rega 
+0x2a84 004693 increase -6 ,rega 
+0x2a85 004694 arg 0x2205 ,regb 
+0x2a86 004695 fetch 1 ,mem_le_conn_own_addr_type 
+0x2a87 004696 nsetflag blank ,le_sender_addr_bit ,regb 
+0x2a88 004697 fetch 1 ,mem_le_conn_peer_addr_type 
+0x2a89 004698 nsetflag blank ,le_receiver_addr_bit ,regb 
+0x2a8a 004699 copy regb ,pdata 
+0x2a8b 004700 store 2 ,mem_le_txheader 
+0x2a8c 004701 fetch 6 ,mem_le_lap 
+0x2a8d 004702 istore 6 ,contw 
+0x2a8e 004703 fetch 6 ,mem_le_plap 
+0x2a8f 004704 istore 6 ,contw 
+0x2a90 004705 fetch 4 ,mem_le_access 
+0x2a91 004706 istore 4 ,contw 
+0x2a92 004707 random pdata 
+0x2a93 004708 istore 2 ,contw 
+0x2a94 004709 random pdata 
+0x2a95 004710 istore 1 ,contw 
+0x2a96 004711 force 2 ,pdata 
+0x2a97 004712 istore 1 ,contw 
+0x2a98 004713 rshift2 rega ,pdata 
+0x2a99 004714 istore 2 ,contw 
+0x2a9a 004715 rshift2 regc ,pdata 
+0x2a9b 004716 istore 2 ,contw 
+0x2a9c 004717 bpatchx patch2e_7 ,mem_patch2e 
+0x2a9d 004718 setarg 0 
+0x2a9e 004719 istore 2 ,contw 
+0x2a9f 004720 fetch 2 ,mem_le_timeout 
+0x2aa0 004721 istore 2 ,contw 
+0x2aa1 004722 fetch 5 ,mem_le_channel_map 
+0x2aa2 004723 istore 5 ,contw 
+0x2aa3 004724 fetch 1 ,mem_le_hop 
+0x2aa4 004725 arg param_le_sca ,temp 
+0x2aa5 004726 ior temp ,pdata 
+0x2aa6 004727 istore 1 ,contw 
+0x2aa7 004728 call le_transmit_norx 
+0x2aa8 004729 setarg mem_le_txheader 
+0x2aa9 004730 add pdata ,18 ,contr 
+0x2aaa 004731 ifetch 3 ,contr 
+0x2aab 004732 store 3 ,mem_le_crcinit 
+0x2aac 004733 rtn 
+:      004736 le_adv:
+0x2aad 004737 jam 36 ,mem_le_ch_mapped 
+0x2aae 004738 jam 0 ,mem_le_adv_channel_map_temp 
+0x2aaf 004739 call le_send_adv_protect_txbuf 
+0x2ab0 004740 call le_adv_loop 
+0x2ab1 004741 branch le_send_adv_recover_txbuf 
+:      004743 le_adv_loop:
+0x2ab2 004744 bpatchx patch2f_0 ,mem_patch2f 
+0x2ab3 004745 fetch 1 ,mem_le_adv_enable 
+0x2ab4 004746 rtn blank 
+0x2ab5 004747 arg le_adv_interval_timer ,queue 
+0x2ab6 004748 call timer_check 
+0x2ab7 004749 nrtn blank 
+0x2ab8 004750 enable swfine 
+0x2ab9 004751 call le_init_adv 
+0x2aba 004752 call le_next_adv_channel 
+0x2abb 004753 call le_send_adv_ind 
+0x2abc 004754 nbranch le_adv_not_match ,match 
+0x2abd 004755 fetch 1 ,mem_le_req_rcv 
+0x2abe 004756 increase 1 ,pdata 
+0x2abf 004757 store 1 ,mem_le_req_rcv 
+0x2ac0 004758 fetch 1 ,mem_le_rxbuf_adv_header 
+0x2ac1 004759 and pdata ,0x0f ,pdata 
+0x2ac2 004760 beq scan_req ,le_send_scan_response 
+0x2ac3 004761 beq connect_req ,le_parse_connect_req 
+:      004762 le_adv_not_match:
+0x2ac4 004763 bpatchx patch2f_1 ,mem_patch2f 
+0x2ac5 004764 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2ac6 004765 fetcht 1 ,mem_le_adv_channel_map 
+0x2ac7 004766 isub temp ,null 
+0x2ac8 004767 nbranch le_adv_loop ,zero 
+0x2ac9 004768 fetch 1 ,mem_device_option 
+0x2aca 004769 sub pdata ,dvc_op_car ,null 
+0x2acb 004770 branch car_le_stop_random_delay_check ,zero 
+0x2acc 004771 random pdata 
+0x2acd 004772 arg 0x1ff ,temp 
+0x2ace 004773 iand temp ,pdata 
+0x2acf 004774 add pdata ,250 ,pdata 
+0x2ad0 004775 call delay 
+0x2ad1 004776 arg le_adv_interval_timer ,queue 
+0x2ad2 004777 fetch 2 ,mem_le_adv_interval 
+0x2ad3 004778 branch timer_init 
+:      004780 le_send_adv_protect_txbuf:
+0x2ad4 004781 arg mem_le_tx_buf_temp ,contw 
+0x2ad5 004782 arg mem_le_txheader ,contr 
+0x2ad6 004783 branch memcpy48 
+:      004785 le_send_adv_recover_txbuf:
+0x2ad7 004786 arg mem_le_tx_buf_temp ,contr 
+0x2ad8 004787 arg mem_le_txheader ,contw 
+0x2ad9 004788 branch memcpy48 
+:      004790 le_init_adv:
+0x2ada 004791 bpatchx patch2f_2 ,mem_patch2f 
+0x2adb 004792 disable master 
+:      004793 le_adv_access:
+0x2adc 004794 setarg 0x8e89be 
+0x2add 004795 lshift8 pdata ,pdata 
+0x2ade 004796 or_into 0xd6 ,pdata 
+0x2adf 004797 iforce access 
+0x2ae0 004798 setarg 0x555555 
+0x2ae1 004799 store 3 ,mem_le_crcinit 
+0x2ae2 004800 rtn 
+:      004804 le_send_adv_ind:
+0x2ae3 004805 bpatchx patch2f_3 ,mem_patch2f 
+0x2ae4 004806 fetch 1 ,mem_le_adv_type 
+0x2ae5 004807 fetcht 1 ,mem_le_adv_own_addr_type 
+0x2ae6 004808 lshift4 temp ,temp 
+0x2ae7 004809 lshift2 temp ,temp 
+0x2ae8 004810 iadd temp ,temp 
+0x2ae9 004811 storet 1 ,mem_le_txheader 
+0x2aea 004812 beq adv_direct_ind ,le_send_adv_direct_ind 
+0x2aeb 004813 fetcht 1 ,mem_le_adv_data_len 
+0x2aec 004814 add temp ,6 ,pdata 
+0x2aed 004815 store 1 ,mem_le_txlen 
+0x2aee 004816 fetch 6 ,mem_le_lap 
+0x2aef 004817 store 6 ,mem_le_txpayload 
+0x2af0 004818 copy temp ,loopcnt 
+0x2af1 004819 arg mem_le_adv_data ,contr 
+0x2af2 004820 call memcpy_fast 
+0x2af3 004821 branch le_send_adv_transmit 
+:      004823 le_send_adv_direct_ind:
+0x2af4 004824 setarg 12 
+0x2af5 004825 store 1 ,mem_le_txlen 
+0x2af6 004826 fetch 6 ,mem_le_lap 
+0x2af7 004827 store 6 ,mem_le_txpayload 
+0x2af8 004828 fetch 6 ,mem_hci_plap 
+0x2af9 004829 istore 6 ,contw 
+:      004830 le_send_adv_transmit:
+0x2afa 004831 bpatchx patch2f_4 ,mem_patch2f 
+0x2afb 004832 fetch 1 ,mem_le_adv_transmit 
+0x2afc 004833 increase 1 ,pdata 
+0x2afd 004834 store 1 ,mem_le_adv_transmit 
+0x2afe 004835 arg 1800 ,stop_watch 
+0x2aff 004836 disable match 
+0x2b00 004837 branch le_transmit_receive_sifs_without_change_mode 
+:      004840 le_send_scan_request:
+0x2b01 004841 bpatchx patch2f_5 ,mem_patch2f 
+0x2b02 004842 fetch 1 ,mem_le_scan_type 
+0x2b03 004843 rtnne le_scan_type_active 
+0x2b04 004844 fetch 1 ,mem_le_adv_transmit 
+0x2b05 004845 increase 1 ,pdata 
+0x2b06 004846 store 1 ,mem_le_adv_transmit 
+0x2b07 004847 arg 0x0c03 ,temp 
+0x2b08 004848 fetch 1 ,mem_le_scan_own_addr_type 
+0x2b09 004849 nsetflag blank ,le_sender_addr_bit ,temp 
+0x2b0a 004850 copy rega ,pdata 
+0x2b0b 004851 nsetflag blank ,le_receiver_addr_bit ,temp 
+0x2b0c 004852 storet 2 ,mem_le_txheader 
+0x2b0d 004853 fetch 6 ,mem_le_lap 
+0x2b0e 004854 istore 6 ,contw 
+0x2b0f 004855 fetch 6 ,mem_le_plap 
+0x2b10 004856 istore 6 ,contw 
+0x2b11 004857 branch le_transmit_receive_sifs_without_change_mode 
+:      004859 le_send_scan_response:
+0x2b12 004860 bpatchx patch2f_6 ,mem_patch2f 
+0x2b13 004861 fetch 6 ,mem_le_rxbuf_adv_scan_req_adv_address 
+0x2b14 004862 fetcht 6 ,mem_le_lap 
+0x2b15 004863 isub temp ,null 
+0x2b16 004864 nrtn zero 
+0x2b17 004865 arg scan_rsp ,temp 
+0x2b18 004866 fetch 1 ,mem_le_adv_own_addr_type 
+0x2b19 004867 nsetflag blank ,le_sender_addr_bit ,temp 
+0x2b1a 004868 storet 1 ,mem_le_txheader 
+0x2b1b 004869 fetcht 1 ,mem_le_scan_data_len 
+0x2b1c 004870 add temp ,6 ,pdata 
+0x2b1d 004871 store 1 ,mem_le_txlen 
+0x2b1e 004872 fetch 6 ,mem_le_lap 
+0x2b1f 004873 store 6 ,mem_le_txpayload 
+0x2b20 004874 arg mem_le_scan_data ,contr 
+0x2b21 004875 copy temp ,loopcnt 
+0x2b22 004876 call memcpy_fast 
+0x2b23 004877 call le_transmit_norx 
+0x2b24 004878 branch le_adv_not_match 
+:      004880 le_parse_connect_req:
+0x2b25 004881 fetch 6 ,mem_le_rxbuf_adv_connect_ind_adv_address 
+0x2b26 004882 fetcht 6 ,mem_le_lap 
+0x2b27 004883 isub temp ,null 
+0x2b28 004884 nrtn zero 
+0x2b29 004885 call le_scan_check_sender_addr_type 
+0x2b2a 004886 storer rega ,1 ,mem_le_conn_peer_addr_type 
+0x2b2b 004887 fetch 6 ,mem_le_rxbuf_adv_connect_ind_init_address 
+0x2b2c 004888 store 6 ,mem_le_plap 
+0x2b2d 004889 fetch 8 ,mem_le_rxbuf_adv_connect_ind_access_address 
+0x2b2e 004890 store 8 ,mem_le_access 
+0x2b2f 004891 fetcht 2 ,mem_le_rxbuf_adv_connect_ind_win_offset 
+0x2b30 004892 bpatchx patch2f_7 ,mem_patch2f 
+0x2b31 004893 lshift2 temp ,temp 
+0x2b32 004894 fetch 2 ,mem_le_rxbuf_adv_connect_ind_interval 
+0x2b33 004895 lshift2 pdata ,pdata 
+0x2b34 004896 store 2 ,mem_le_tsniff 
+0x2b35 004897 store 4 ,mem_le_anchor 
+0x2b36 004898 isub temp ,pdata 
+0x2b37 004899 add pdata ,-2 ,clke_bt 
+0x2b38 004900 fetch 9 ,mem_le_rxbuf_adv_connect_ind_latency 
+0x2b39 004901 store 9 ,mem_le_slave_latency 
+0x2b3a 004902 fetch 1 ,mem_le_rxbuf_adv_connect_ind_hop_and_sca 
+0x2b3b 004903 and pdata ,0x1f ,temp 
+0x2b3c 004904 storet 1 ,mem_le_hop 
+0x2b3d 004905 rshift4 pdata ,temp 
+0x2b3e 004906 rshift temp ,temp 
+0x2b3f 004907 storet 1 ,mem_le_peer_sca 
+0x2b40 004908 arg mem_le_state ,rega 
+0x2b41 004909 call le_receive_window_size 
+0x2b42 004910 arg mem_le_state ,rega 
+0x2b43 004911 call le_calc_channel_map 
+0x2b44 004912 call le_init_slave 
+0x2b45 004913 call context_new 
+0x2b46 004914 nrtn zero 
+0x2b47 004915 bpatchx patch30_0 ,mem_patch30 
+0x2b48 004916 call calc_clke_offset 
+0x2b49 004917 call le_l2cap_reset_signaling_identifier 
+0x2b4a 004918 jam bt_evt_le_connected ,mem_fifo_temp 
+0x2b4b 004919 call ui_ipc_send_event 
+0x2b4c 004920 branch context_save 
+:      004923 le_next_adv_channel:
+0x2b4d 004924 bpatchx patch30_1 ,mem_patch30 
+0x2b4e 004925 fetch 1 ,mem_le_ch_mapped 
+0x2b4f 004926 beq 37 ,le_next_adv_channel_curr_channel_37 
+0x2b50 004927 beq 38 ,le_next_adv_channel_curr_channel_38 
+0x2b51 004928 beq 39 ,le_next_adv_channel_curr_channel_39 
+:      004930 le_next_adv_channel_curr_channel_39:
+0x2b52 004931 fetcht 1 ,mem_le_adv_channel_map 
+0x2b53 004932 isolate1 bit_adv_channel_map_37 ,temp 
+0x2b54 004933 branch set_le_next_adv_channel_37 ,true 
+0x2b55 004934 isolate1 bit_adv_channel_map_38 ,temp 
+0x2b56 004935 branch set_le_next_adv_channel_38 ,true 
+:      004937 set_le_next_adv_channel_39:
+0x2b57 004938 jam 39 ,mem_le_ch_mapped 
+0x2b58 004939 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b59 004940 set1 bit_adv_channel_map_39 ,pdata 
+:      004941 set_le_adv_channel_map_temp:
+0x2b5a 004942 store 1 ,mem_le_adv_channel_map_temp 
+0x2b5b 004943 rtn 
+:      004946 le_next_adv_channel_curr_channel_37:
+0x2b5c 004947 fetcht 1 ,mem_le_adv_channel_map 
+0x2b5d 004948 isolate1 bit_adv_channel_map_38 ,temp 
+0x2b5e 004949 branch set_le_next_adv_channel_38 ,true 
+0x2b5f 004950 isolate1 bit_adv_channel_map_39 ,temp 
+0x2b60 004951 branch set_le_next_adv_channel_39 ,true 
+:      004953 set_le_next_adv_channel_37:
+0x2b61 004954 jam 37 ,mem_le_ch_mapped 
+0x2b62 004955 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b63 004956 set1 bit_adv_channel_map_37 ,pdata 
+0x2b64 004957 branch set_le_adv_channel_map_temp 
+:      004959 le_next_adv_channel_curr_channel_38:
+0x2b65 004960 fetcht 1 ,mem_le_adv_channel_map 
+0x2b66 004961 isolate1 bit_adv_channel_map_39 ,temp 
+0x2b67 004962 branch set_le_next_adv_channel_39 ,true 
+0x2b68 004963 isolate1 bit_adv_channel_map_37 ,temp 
+0x2b69 004964 branch set_le_next_adv_channel_37 ,true 
+:      004966 set_le_next_adv_channel_38:
+0x2b6a 004967 jam 38 ,mem_le_ch_mapped 
+0x2b6b 004968 fetch 1 ,mem_le_adv_channel_map_temp 
+0x2b6c 004969 set1 bit_adv_channel_map_38 ,pdata 
+0x2b6d 004970 branch set_le_adv_channel_map_temp 
+:      004974 le_parse_att:
+0x2b6e 004975 copy contr ,rega 
+0x2b6f 004976 fetch 1 ,mem_device_option 
+0x2b70 004977 beq dvc_op_shutter_dy ,shutter_dy_le_parse_att 
+0x2b71 004978 beq dvc_op_keyboard ,keyboard_le_parse_att 
+0x2b72 004979 beq dvc_op_mouse ,mouse_le_parse_att 
+0x2b73 004980 copy rega ,contr 
+0x2b74 004981 ifetch 3 ,contr 
+0x2b75 004982 store 3 ,mem_le_att_opcode 
+:      004983 le_parse_att2:
+0x2b76 004984 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+0x2b77 004985 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
+0x2b78 004986 beq attop_find_information_request ,le_parse_att_find_information_request 
+0x2b79 004987 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
+0x2b7a 004988 beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
+0x2b7b 004989 beq attop_read_request ,le_parse_att_read_request 
+0x2b7c 004990 beq attop_read_blob_request ,le_parse_att_read_blob_request 
+0x2b7d 004991 beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
+0x2b7e 004992 beq attop_write_request ,le_parse_att_write_request 
+0x2b7f 004993 beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
+0x2b80 004994 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+0x2b81 004995 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+0x2b82 004996 beq attop_write_command ,le_parse_att_write_command 
+0x2b83 004997 rtn 
+:      005000 le_send_att_exchange_mtu_requset:
+0x2b84 005001 force 3 ,rega 
+0x2b85 005002 call le_fifo_malloc_tx_l2cap_gatt 
+0x2b86 005003 setarg attop_exchange_mtu_request 
+:      005004 le_send_att_exchange_mtu_common:
+0x2b87 005005 istore 1 ,contw 
+0x2b88 005006 fetch 2 ,mem_le_local_mtu 
+0x2b89 005007 istore 2 ,contw 
+0x2b8a 005008 rtn 
+:      005011 le_parse_att_exchange_mtu_request:
+0x2b8b 005012 call le_parse_att_exchange_mtu_response 
+:      005013 le_send_att_exchange_mtu_response:
+0x2b8c 005014 force 3 ,rega 
+0x2b8d 005015 call le_fifo_malloc_tx_l2cap_gatt 
+0x2b8e 005016 setarg attop_exchange_mtu_response 
+0x2b8f 005017 branch le_send_att_exchange_mtu_common 
+:      005019 le_parse_att_exchange_mtu_response:
+0x2b90 005020 rshift8 pdata ,pdata 
+0x2b91 005021 store 2 ,mem_le_remote_mtu 
+0x2b92 005022 rtn 
+:      005024 le_parse_att_find_information_request:
+0x2b93 005025 call le_get_search_handle_start_end_common 
+0x2b94 005026 call enable_user 
+0x2b95 005027 branch le_send_att_find_information_response 
+:      005030 le_att_handle_inrange:
+0x2b96 005031 ifetch 2 ,contr 
+0x2b97 005032 and_into 0xff ,pdata 
+0x2b98 005033 rtn blank 
+0x2b99 005034 isub regb ,null 
+0x2b9a 005035 rtn zero 
+0x2b9b 005036 nrtn positive 
+0x2b9c 005037 isub regc ,null 
+0x2b9d 005038 rtn zero 
+0x2b9e 005039 branch enable_blank ,positive 
+0x2b9f 005040 force 1 ,null 
+0x2ba0 005041 rtn 
+:      005044 le_send_att_find_information_response:
+0x2ba1 005045 arg 3 ,timeup 
+0x2ba2 005046 call le_init_attlist_search 
+:      005047 le_send_att_find_information_res_loop:
+0x2ba3 005048 call le_att_handle_inrange 
+0x2ba4 005049 branch le_send_att_find_information_res_end ,blank 
+0x2ba5 005050 nbranch le_send_att_find_information_res_next ,positive 
+0x2ba6 005051 increase -2 ,contr 
+0x2ba7 005052 call store_contr 
+0x2ba8 005053 call get_contw 
+0x2ba9 005054 nbranch le_send_att_find_information_res_store_info2 ,user 
+0x2baa 005055 call push_stack_rega_b_c 
+0x2bab 005056 storer timeup ,4 ,mem_timeup 
+0x2bac 005057 force 30 ,rega 
+0x2bad 005058 call le_fifo_malloc_tx_l2cap_gatt 
+0x2bae 005059 fetchr timeup ,4 ,mem_timeup 
+0x2baf 005060 call pop_stack_rega_b_c 
+0x2bb0 005061 call disable_user 
+0x2bb1 005062 setarg attop_find_information_response 
+0x2bb2 005063 istore 1 ,contw 
+0x2bb3 005064 call get_contr 
+0x2bb4 005065 ifetch 2 ,contr 
+0x2bb5 005066 ifetchr rega ,1 ,contr 
+0x2bb6 005067 sub rega ,16 ,null 
+0x2bb7 005068 branch le_send_att_find_information_res_uuid128 ,zero 
+0x2bb8 005069 sub rega ,2 ,null 
+0x2bb9 005070 nbranch le_send_att_error_response_notfound ,zero 
+:      005071 le_send_att_find_information_res_uuid16:
+0x2bba 005072 setarg uuid_size_16bit 
+0x2bbb 005073 istore 1 ,contw 
+0x2bbc 005074 branch le_send_att_find_information_res_store_info 
+:      005076 le_send_att_find_information_res_uuid128:
+0x2bbd 005077 setarg uuid_size_128bit 
+0x2bbe 005078 istore 1 ,contw 
+0x2bbf 005079 arg 1 ,timeup 
+0x2bc0 005080 branch le_send_att_find_information_res_store_info 
+:      005082 le_send_att_find_information_res_store_info2:
+0x2bc1 005083 call get_contr 
+0x2bc2 005084 ifetch 2 ,contr 
+0x2bc3 005085 ifetch 1 ,contr 
+0x2bc4 005086 isub rega ,null 
+0x2bc5 005087 nbranch le_send_att_find_information_res_end ,zero 
+:      005089 le_send_att_find_information_res_store_info:
+0x2bc6 005090 call get_contr 
+0x2bc7 005091 ifetch 2 ,contr 
+0x2bc8 005092 and_into 0xff ,pdata 
+0x2bc9 005093 istore 2 ,contw 
+0x2bca 005094 ifetchr loopcnt ,1 ,contr 
+0x2bcb 005095 call memcpy 
+0x2bcc 005096 call store_contw 
+0x2bcd 005097 increase -1 ,timeup 
+0x2bce 005098 branch le_send_att_find_information_res_end ,zero 
+:      005099 le_send_att_find_information_res_cont:
+0x2bcf 005100 call le_att_contr_add_len 
+0x2bd0 005101 branch le_send_att_find_information_res_loop 
+:      005103 le_send_att_find_information_res_next:
+0x2bd1 005104 call le_att_contr_add_len 
+0x2bd2 005105 branch le_send_att_find_information_res_cont 
+:      005107 le_send_att_find_information_res_end:
+0x2bd3 005108 branch le_send_att_error_response_notfound ,user 
+0x2bd4 005109 branch le_send_auto_len_by_mem 
+:      005112 le_parse_att_find_by_type_value_request:
+0x2bd5 005113 call le_get_search_handle_start_end_common 
+0x2bd6 005114 ifetch 2 ,contr 
+0x2bd7 005115 store 2 ,mem_le_search_uuid 
+0x2bd8 005116 call store_contr 
+0x2bd9 005117 arg mem_le_search_att_type_length ,contw 
+0x2bda 005118 fetch 2 ,mem_le_l2cap_size 
+0x2bdb 005119 increase -7 ,pdata 
+0x2bdc 005120 call le_get_search_common2 
+0x2bdd 005121 branch le_send_att_find_by_type_value_response 
+:      005124 le_start_end_handle_check_1:
+0x2bde 005125 disable user 
+0x2bdf 005126 fetcht 2 ,mem_le_search_handle_start 
+0x2be0 005127 fetch 2 ,mem_le_search_handle_end 
+0x2be1 005128 isub temp ,null 
+0x2be2 005129 nbranch le_start_end_handle_check_1_fail ,positive 
+0x2be3 005130 deposit temp 
+0x2be4 005131 rtnne 0 
+:      005132 le_start_end_handle_check_1_fail:
+0x2be5 005133 enable user 
+0x2be6 005134 jam att_err_invalid_handle ,mem_le_err_code 
+0x2be7 005135 branch le_send_att_error_response 
+:      005138 le_send_att_find_by_type_value_response:
+0x2be8 005139 call le_start_end_handle_check_1 
+0x2be9 005140 rtn user 
+0x2bea 005141 fetcht 2 ,mem_le_search_uuid 
+0x2beb 005142 setarg uuid_gatt_primary_service 
+0x2bec 005143 isub temp ,null 
+0x2bed 005144 branch le_send_att_find_by_type_value_res_primary ,zero 
+0x2bee 005145 branch le_send_att_error_response_notfound 
+:      005148 le_send_att_find_by_type_value_res_primary:
+0x2bef 005149 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
+0x2bf0 005150 fetcht 2 ,mem_le_search_handle_start 
+0x2bf1 005151 storet 2 ,mem_temp 
+0x2bf2 005152 call le_att_get_handle_info 
+0x2bf3 005153 nbranch le_send_att_error_response_notfound ,blank 
+:      005154 le_send_att_find_primary_search_loop:
+0x2bf4 005155 fetcht 2 ,mem_temp 
+0x2bf5 005156 call le_att_get_handle_info 
+0x2bf6 005157 nbranch le_send_att_error_response_notfound2 ,blank 
+0x2bf7 005158 copy contr ,rega 
+0x2bf8 005159 fetch 1 ,mem_le_curr_att_len 
+0x2bf9 005160 copy pdata ,loopcnt 
+0x2bfa 005161 fetcht 1 ,mem_le_search_att_type_length 
+0x2bfb 005162 isub temp ,null 
+0x2bfc 005163 nbranch le_send_att_find_primary_search_loop1 ,zero 
+0x2bfd 005164 arg mem_le_search_att_type ,regb 
+0x2bfe 005165 call string_compare 
+0x2bff 005167 branch le_send_att_find_primary_search_end_start_handle_found ,zero 
+0x2c00 005169 fetch 2 ,mem_le_cur_uuid 
+0x2c01 005170 fetcht 2 ,mem_le_search_uuid 
+0x2c02 005171 isub temp ,null 
+0x2c03 005172 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
+:      005173 le_send_att_find_primary_search_loop1:
+0x2c04 005174 fetch 2 ,mem_temp 
+0x2c05 005175 increase 1 ,pdata 
+0x2c06 005176 store 2 ,mem_temp 
+0x2c07 005177 branch le_send_att_find_primary_search_loop 
+:      005179 le_send_att_error_response_notfound2:
+0x2c08 005180 fetch 1 ,mem_le_search_res 
+0x2c09 005181 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
+0x2c0a 005182 branch le_send_att_error_response_notfound 
+:      005185 le_send_att_find_primary_search_end_start_handle_found:
+0x2c0b 005186 fetch 2 ,mem_le_cur_uuid 
+0x2c0c 005187 fetcht 2 ,mem_le_search_uuid 
+0x2c0d 005188 isub temp ,null 
+0x2c0e 005189 nbranch le_send_att_find_primary_search_loop1 ,zero 
+0x2c0f 005190 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
+0x2c10 005192 fetcht 2 ,mem_temp 
+0x2c11 005193 storet 2 ,mem_le_cur_handle_start 
+0x2c12 005194 branch le_send_att_find_primary_search_loop1 
+:      005196 le_send_att_find_primary_search_end_ending_handle_found:
+0x2c13 005197 fetch 1 ,mem_le_search_res 
+0x2c14 005198 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
+0x2c15 005199 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
+0x2c16 005200 fetcht 2 ,mem_temp 
+0x2c17 005201 increase -1 ,temp 
+0x2c18 005202 storet 2 ,mem_le_cur_handle_end 
+:      005204 le_send_att_find_primary_search_end:
+0x2c19 005205 arg 5 ,rega 
+0x2c1a 005206 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c1b 005207 setarg attop_find_by_type_value_response 
+0x2c1c 005208 istore 1 ,contw 
+0x2c1d 005209 fetch 2 ,mem_le_cur_handle_start 
+0x2c1e 005210 istore 2 ,contw 
+0x2c1f 005211 fetch 2 ,mem_le_cur_handle_end 
+0x2c20 005212 istore 2 ,contw 
+0x2c21 005213 rtn 
+:      005217 le_parse_att_read_by_type_request:
+0x2c22 005218 call le_get_search_handle_start_end_common 
+0x2c23 005219 call le_get_search_att_type 
+0x2c24 005220 branch le_send_att_read_by_type_response 
+:      005222 le_send_att_read_by_type_response:
+0x2c25 005223 fetcht 2 ,mem_le_search_handle_start 
+0x2c26 005224 storet 2 ,mem_temp 
+0x2c27 005225 call le_init_attlist_search 
+0x2c28 005226 call le_att_get_handle_ptr2 
+0x2c29 005227 increase -2 ,contr 
+0x2c2a 005228 copy contr ,pdata 
+0x2c2b 005229 store 2 ,mem_le_cur_attlist_start_ptr 
+0x2c2c 005231 fetcht 2 ,mem_le_search_att_type 
+0x2c2d 005232 setarg uuid_chrctr_device_name 
+0x2c2e 005233 isub temp ,null 
+0x2c2f 005234 branch le_send_att_read_by_type_res_device_name ,zero 
+0x2c30 005235 setarg uuid_gatt_characteristic 
+0x2c31 005236 isub temp ,null 
+0x2c32 005237 nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
+0x2c33 005238 arg 2 ,timeup 
+:      005239 le_send_att_read_by_type_response_loop:
+0x2c34 005240 call le_att_check_handle_end 
+0x2c35 005241 nbranch le_send_att_read_by_type_response_end ,positive 
+0x2c36 005242 fetcht 2 ,mem_temp 
+0x2c37 005243 call le_att_get_handle_info_from_ptr 
+0x2c38 005244 nbranch le_send_att_read_by_type_response_end ,blank 
+0x2c39 005245 call le_att_same_type 
+0x2c3a 005246 nbranch le_send_att_read_by_type_response_next_handle ,zero 
+0x2c3b 005247 nbranch le_send_att_read_by_type_res_found_next ,user 
+0x2c3c 005248 disable user 
+0x2c3d 005249 call le_get_search_max_mtu_data 
+0x2c3e 005250 copy pdata ,rega 
+0x2c3f 005251 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c40 005252 setarg attop_read_by_type_response 
+0x2c41 005253 istore 1 ,contw 
+0x2c42 005254 copy contw ,alarm 
+0x2c43 005255 increase 1 ,contw 
+0x2c44 005257 call le_send_att_read_by_type_write_properties 
+0x2c45 005258 call le_att_next_handle 
+0x2c46 005259 call le_att_get_handle_info_from_ptr 
+0x2c47 005260 call le_send_att_read_by_type_write_uuid 
+0x2c48 005261 fetch 1 ,mem_le_cur_uuid_length 
+0x2c49 005262 add pdata ,5 ,rega 
+0x2c4a 005263 istorer rega ,1 ,alarm 
+0x2c4b 005265 sub rega ,7 ,null 
+0x2c4c 005266 ncall enable_user2 ,zero 
+0x2c4d 005267 call disable_user2 ,zero 
+0x2c4e 005268 call le_get_search_max_mtu_data 
+0x2c4f 005269 increase -2 ,pdata 
+0x2c50 005270 idiv rega 
+0x2c51 005271 call wait_div_end 
+0x2c52 005272 quotient timeup 
+0x2c53 005273 increase -1 ,timeup 
+0x2c54 005274 branch le_send_att_read_by_type_response_end ,zero 
+:      005275 le_send_att_read_by_type_response_next_handle:
+0x2c55 005276 call le_att_next_handle 
+0x2c56 005277 branch le_send_att_read_by_type_response_loop 
+:      005278 le_send_att_read_by_type_response_end:
+0x2c57 005279 branch le_send_att_error_response_notfound ,user 
+0x2c58 005280 branch le_send_auto_len_by_mem 
+:      005282 le_send_att_read_by_type_res_found_next:
+0x2c59 005283 call le_store_att_record 
+0x2c5a 005284 call le_att_next_handle 
+0x2c5b 005285 call le_att_get_handle_info_from_ptr 
+0x2c5c 005286 call le_send_att_read_by_type_res_check_pair_length_type 
+0x2c5d 005287 nbranch le_send_att_read_by_type_response_end ,blank 
+0x2c5e 005289 call get_contw 
+0x2c5f 005290 fetch 2 ,mem_temp 
+0x2c60 005291 increase -1 ,pdata 
+0x2c61 005292 istore 2 ,contw 
+0x2c62 005293 call le_write_att_record_common 
+0x2c63 005294 call le_send_att_read_by_type_write_uuid 
+0x2c64 005295 increase -1 ,timeup 
+0x2c65 005296 branch le_send_att_read_by_type_response_end ,zero 
+0x2c66 005297 branch le_send_att_read_by_type_response_next_handle 
+:      005300 le_send_att_read_by_type_write_properties:
+0x2c67 005301 fetch 2 ,mem_temp 
+0x2c68 005302 istore 2 ,contw 
+0x2c69 005304 fetch 1 ,mem_le_curr_att_len 
+0x2c6a 005305 copy pdata ,loopcnt 
+0x2c6b 005306 call get_contr 
+0x2c6c 005307 call memcpy_fast 
+0x2c6d 005308 branch store_contw 
+:      005309 le_send_att_read_by_type_write_uuid:
+0x2c6e 005310 call get_contw 
+0x2c6f 005311 fetch 2 ,mem_temp 
+0x2c70 005312 istore 2 ,contw 
+0x2c71 005313 call store_contw 
+0x2c72 005314 fetch 1 ,mem_le_cur_uuid_length 
+0x2c73 005315 copy pdata ,loopcnt 
+0x2c74 005316 call get_contw 
+0x2c75 005317 call get_contr 
+0x2c76 005318 isub loopcnt ,contr 
+0x2c77 005319 increase -1 ,contr 
+0x2c78 005320 call memcpy_fast 
+0x2c79 005321 branch store_contw 
+:      005323 le_send_att_read_by_type_res_not_characteristic:
+0x2c7a 005324 bpatchx patch30_2 ,mem_patch30 
+0x2c7b 005325 call le_att_get_uuid_ptr 
+0x2c7c 005326 branch le_send_att_error_response_notfound ,blank 
+0x2c7d 005327 copy contr ,regc 
+0x2c7e 005329 call le_get_search_max_mtu_data 
+0x2c7f 005330 copy regc ,contr 
+0x2c80 005331 ifetcht 1 ,contr 
+0x2c81 005332 increase 4 ,temp 
+0x2c82 005333 call not_greater_than 
+0x2c83 005334 copy pdata ,regc 
+0x2c84 005335 copy pdata ,rega 
+0x2c85 005336 call store_contr 
+0x2c86 005337 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c87 005339 setarg attop_read_by_type_response 
+0x2c88 005340 istore 1 ,contw 
+0x2c89 005341 add regc ,-2 ,pdata 
+0x2c8a 005342 add pdata ,-2 ,loopcnt 
+0x2c8b 005343 istore 1 ,contw 
+0x2c8c 005344 fetch 2 ,mem_le_cur_handle 
+0x2c8d 005345 istore 2 ,contw 
+0x2c8e 005346 call get_contr 
+0x2c8f 005347 branch memcpy_fast 
+:      005350 le_send_att_read_by_type_res_device_name:
+0x2c90 005351 call le_att_get_uuid_ptr 
+0x2c91 005352 branch le_send_att_error_response_notfound ,blank 
+0x2c92 005353 increase -5 ,contr 
+0x2c93 005354 ifetch 2 ,contr 
+0x2c94 005355 store 2 ,mem_temp 
+0x2c95 005356 call le_get_search_max_mtu_data 
+0x2c96 005357 fetcht 1 ,mem_le_name_len 
+0x2c97 005358 increase 4 ,temp 
+0x2c98 005359 call not_greater_than 
+0x2c99 005360 copy pdata ,regc 
+0x2c9a 005361 copy pdata ,rega 
+0x2c9b 005362 call le_fifo_malloc_tx_l2cap_gatt 
+0x2c9c 005363 setarg attop_read_by_type_response 
+0x2c9d 005364 istore 1 ,contw 
+0x2c9e 005365 add regc ,-2 ,pdata 
+0x2c9f 005366 add pdata ,-2 ,loopcnt 
+0x2ca0 005367 istore 1 ,contw 
+0x2ca1 005368 fetch 2 ,mem_temp 
+0x2ca2 005369 istore 2 ,contw 
+0x2ca3 005370 arg mem_le_name ,contr 
+0x2ca4 005371 branch memcpy_fast 
+:      005374 le_init_attlist_search:
+0x2ca5 005375 bpatchx patch30_3 ,mem_patch30 
+0x2ca6 005376 fetch 2 ,mem_le_search_handle_start 
+0x2ca7 005377 iforce regb 
+0x2ca8 005378 fetch 2 ,mem_le_search_handle_end 
+0x2ca9 005379 iforce regc 
+0x2caa 005380 fetch 2 ,mem_ui_le_uuid_table 
+0x2cab 005381 iforce contr 
+0x2cac 005382 branch enable_user 
+:      005386 le_att_get_handle_ptr:
+0x2cad 005387 call le_att_get_handle_ptr2 
+0x2cae 005388 branch le_att_get_handle_ptr_found ,zero 
+0x2caf 005389 rtn 
+:      005391 le_att_get_handle_ptr2:
+0x2cb0 005392 bpatchx patch30_4 ,mem_patch30 
+0x2cb1 005393 fetch 2 ,mem_ui_le_uuid_table 
+0x2cb2 005394 iforce contr 
+:      005395 le_att_get_handle_loop1:
+0x2cb3 005396 ifetch 2 ,contr 
+0x2cb4 005397 and_into 0xff ,pdata 
+0x2cb5 005398 rtn blank 
+0x2cb6 005399 isub temp ,null 
+0x2cb7 005400 rtn zero 
+0x2cb8 005401 call le_att_contr_add_len 
+0x2cb9 005402 call le_att_contr_add_len 
+0x2cba 005403 branch le_att_get_handle_loop1 
+:      005405 le_att_get_handle_ptr_found:
+:      005406 le_att_contr_add_len:
+0x2cbb 005407 ifetch 1 ,contr 
+0x2cbc 005408 iadd contr ,contr 
+0x2cbd 005409 rtn 
+:      005412 le_att_get_uuid_ptr:
+0x2cbe 005413 bpatchx patch30_5 ,mem_patch30 
+0x2cbf 005414 fetch 2 ,mem_ui_le_uuid_table 
+0x2cc0 005415 iforce contr 
+:      005416 le_att_get_uuid_loop:
+0x2cc1 005417 ifetch 2 ,contr 
+0x2cc2 005418 and_into 0xff ,pdata 
+0x2cc3 005419 rtn blank 
+0x2cc4 005420 store 2 ,mem_le_cur_handle 
+0x2cc5 005421 ifetch 1 ,contr 
+0x2cc6 005422 copy contr ,contw 
+0x2cc7 005423 iadd contr ,contr 
+0x2cc8 005424 fetcht 1 ,mem_le_search_att_type_length 
+0x2cc9 005425 isub temp ,null 
+0x2cca 005426 nbranch le_att_get_uuid_ptr_next ,zero 
+0x2ccb 005427 copy pdata ,loopcnt 
+0x2ccc 005428 copy contw ,regb 
+0x2ccd 005429 arg mem_le_search_att_type ,rega 
+0x2cce 005430 call string_compare 
+0x2ccf 005431 rtn zero 
+0x2cd0 005432 fetch 1 ,mem_le_search_att_type_length 
+:      005433 le_att_get_uuid_ptr_next:
+0x2cd1 005434 iadd contw ,contr 
+0x2cd2 005435 call le_att_contr_add_len 
+0x2cd3 005436 branch le_att_get_uuid_loop 
+:      005443 le_att_get_last_handle:
+0x2cd4 005444 arg 0x01 ,temp 
+0x2cd5 005445 fetch 2 ,mem_ui_le_uuid_table 
+0x2cd6 005446 iforce contr 
+0x2cd7 005447 copy contr ,contw 
+:      005448 le_att_get_last_handle_loop:
+0x2cd8 005449 ifetch 2 ,contr 
+0x2cd9 005450 and_into 0xff ,pdata 
+0x2cda 005451 rtn blank 
+0x2cdb 005452 add pdata ,1 ,temp 
+0x2cdc 005453 call le_att_contr_add_len 
+0x2cdd 005454 call le_att_contr_add_len 
+0x2cde 005455 copy contr ,contw 
+0x2cdf 005456 branch le_att_get_last_handle_loop 
+:      005459 le_att_get_handle_info_from_ptr:
+0x2ce0 005460 fetch 2 ,mem_le_cur_attlist_start_ptr 
+0x2ce1 005461 branch le_att_get_handle_info_fast 
+:      005463 le_att_get_handle_info:
+0x2ce2 005464 bpatchx patch30_6 ,mem_patch30 
+0x2ce3 005465 fetch 2 ,mem_ui_le_uuid_table 
+:      005466 le_att_get_handle_info_fast:
+0x2ce4 005467 iforce contr 
+:      005468 le_att_get_handle_loop:
+0x2ce5 005469 ifetch 2 ,contr 
+0x2ce6 005470 and_into 0xff ,pdata 
+0x2ce7 005471 branch le_att_unfind_handle ,blank 
+0x2ce8 005472 isub temp ,null 
+0x2ce9 005473 branch le_att_finded_handle ,zero 
+0x2cea 005474 call le_att_contr_add_len 
+0x2ceb 005475 call le_att_contr_add_len 
+0x2cec 005476 branch le_att_get_handle_loop 
+:      005478 le_att_unfind_handle:
+0x2ced 005479 branch disable_blank 
+:      005481 le_att_finded_handle:
+0x2cee 005482 ifetch 1 ,contr 
+0x2cef 005483 store 1 ,mem_le_cur_uuid_length 
+0x2cf0 005484 copy pdata ,loopcnt 
+0x2cf1 005485 arg mem_le_cur_uuid ,contw 
+0x2cf2 005486 call memcpy_fast 
+0x2cf3 005487 ifetch 1 ,contr 
+0x2cf4 005488 store 1 ,mem_le_curr_att_len 
+0x2cf5 005489 call store_contr 
+0x2cf6 005490 branch enable_blank 
+:      005494 le_parse_att_read_request:
+0x2cf7 005495 call le_check_encrypt_state 
+0x2cf8 005496 fetcht 2 ,mem_le_att_handle 
+0x2cf9 005497 fetch 1 ,mem_le_configuration 
+0x2cfa 005498 bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
+:      005501 le_send_att_read_response:
+0x2cfb 005502 call le_att_get_handle_ptr2 
+0x2cfc 005503 nbranch le_send_att_error_response_notfound ,zero 
+0x2cfd 005504 call le_send_att_read_response_check_handle ,user 
+0x2cfe 005505 rtn user 
+0x2cff 005506 call le_att_get_handle_ptr_found 
+0x2d00 005507 increase -2 ,contr 
+0x2d01 005508 ifetch 2 ,contr 
+0x2d02 005509 arg uuid_chrctr_device_name ,temp 
+0x2d03 005510 isub temp ,null 
+0x2d04 005511 branch le_send_device_name ,zero 
+0x2d05 005512 copy contr ,regc 
+0x2d06 005513 call le_get_search_max_mtu_data 
+0x2d07 005514 copy regc ,contr 
+0x2d08 005515 ifetcht 1 ,contr 
+0x2d09 005516 increase 1 ,temp 
+0x2d0a 005517 call not_greater_than 
+:      005518 le_send_att_read_response_less:
+0x2d0b 005519 copy pdata ,regc 
+0x2d0c 005520 copy pdata ,rega 
+0x2d0d 005521 call store_contr 
+0x2d0e 005522 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d0f 005523 setarg attop_read_response 
+0x2d10 005524 istore 1 ,contw 
+0x2d11 005525 add regc ,-1 ,loopcnt 
+0x2d12 005526 call get_contr 
+0x2d13 005527 branch memcpy 
+:      005529 le_send_device_name:
+0x2d14 005530 call le_get_search_max_mtu_data 
+0x2d15 005531 fetcht 1 ,mem_le_name_len 
+0x2d16 005532 increase 1 ,temp 
+0x2d17 005533 call not_greater_than 
+0x2d18 005534 copy pdata ,regc 
+0x2d19 005535 copy pdata ,rega 
+0x2d1a 005537 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d1b 005538 setarg attop_read_response 
+0x2d1c 005539 istore 1 ,contw 
+0x2d1d 005540 add regc ,-1 ,loopcnt 
+0x2d1e 005541 arg mem_le_name ,contr 
+0x2d1f 005542 branch memcpy 
+:      005545 le_send_att_read_response_check_auth:
+0x2d20 005546 fetch 2 ,mem_le_pairing_handle 
+0x2d21 005547 isub temp ,null 
+0x2d22 005548 nbranch le_send_att_read_response ,zero 
+0x2d23 005549 nbranch le_send_att_read_response ,user 
+:      005550 le_send_att_read_response_error_insufficient_auth:
+0x2d24 005551 jam att_err_insufficient_authentication ,mem_le_err_code 
+0x2d25 005552 branch le_send_att_error_response 
+:      005554 le_send_att_read_response_check_handle:
+0x2d26 005555 increase -2 ,contr 
+0x2d27 005556 ifetch 2 ,contr 
+0x2d28 005557 bbit1 bit_of_att_handle_read_authenticated ,le_send_att_read_response_error_insufficient_auth 
+0x2d29 005558 branch disable_user 
+:      005560 le_parse_att_read_blob_request:
+0x2d2a 005561 ifetch 2 ,contr 
+0x2d2b 005562 store 2 ,mem_le_att_offset 
+0x2d2c 005563 iforce rega 
+0x2d2d 005564 fetcht 2 ,mem_le_att_handle 
+:      005565 le_send_att_read_blob_response:
+0x2d2e 005566 call le_att_get_handle_ptr 
+0x2d2f 005567 branch le_send_att_error_response_notfound ,blank 
+0x2d30 005568 ifetch 1 ,contr 
+0x2d31 005569 isub rega ,loopcnt 
+0x2d32 005570 nbranch le_send_att_error_response_notfound ,positive 
+0x2d33 005571 call store_contr 
+0x2d34 005572 call le_get_search_max_mtu_data 
+0x2d35 005573 add loopcnt ,1 ,temp 
+0x2d36 005574 call not_greater_than 
+:      005575 le_send_att_read_blob_response_less:
+0x2d37 005576 copy pdata ,rega 
+0x2d38 005577 copy pdata ,regc 
+0x2d39 005578 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d3a 005579 setarg attop_read_blob_response 
+0x2d3b 005580 istore 1 ,contw 
+0x2d3c 005581 add regc ,-1 ,loopcnt 
+0x2d3d 005582 fetcht 2 ,mem_le_att_offset 
+0x2d3e 005583 call get_contr 
+0x2d3f 005584 iadd temp ,contr 
+0x2d40 005585 branch memcpy_fast 
+:      005589 le_parse_att_read_by_group_type_request:
+0x2d41 005590 call le_get_search_handle_start_end_common 
+0x2d42 005591 call le_get_search_att_type 
+0x2d43 005592 branch le_send_att_read_by_group_type_response 
+:      005598 le_send_att_read_by_group_type_response:
+0x2d44 005599 arg 2 ,timeup 
+0x2d45 005600 fetcht 2 ,mem_le_search_handle_start 
+0x2d46 005601 storet 2 ,mem_temp 
+0x2d47 005602 call le_att_get_handle_ptr2 
+0x2d48 005603 increase -2 ,contr 
+0x2d49 005604 copy contr ,pdata 
+0x2d4a 005605 store 2 ,mem_le_cur_attlist_start_ptr 
+:      005606 le_send_att_read_by_group_type_response_loop:
+0x2d4b 005607 call le_att_check_handle_end 
+0x2d4c 005608 nbranch le_send_att_read_by_group_type_end0 ,positive 
+0x2d4d 005609 fetcht 2 ,mem_temp 
+0x2d4e 005610 call le_att_get_handle_info_from_ptr 
+0x2d4f 005611 nbranch le_send_att_read_by_group_type_end1 ,blank 
+0x2d50 005613 call le_att_same_type 
+0x2d51 005614 nbranch le_send_att_read_by_group_type_next_handle ,zero 
+0x2d52 005615 copy timeup ,pdata 
+0x2d53 005616 beq 0 ,le_send_att_read_by_group_type_end1 
+0x2d54 005617 nbranch le_send_att_read_by_group_type_store_write_record ,user 
+0x2d55 005618 disable user 
+0x2d56 005620 call le_get_search_max_mtu_data 
+0x2d57 005621 copy pdata ,rega 
+0x2d58 005622 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d59 005623 setarg attop_read_by_group_type_response 
+0x2d5a 005624 istore 1 ,contw 
+0x2d5b 005625 fetch 1 ,mem_le_curr_att_len 
+0x2d5c 005626 add pdata ,4 ,rega 
+0x2d5d 005627 istorer rega ,1 ,contw 
+0x2d5e 005628 call store_contw 
+0x2d5f 005629 sub rega ,6 ,null 
+0x2d60 005630 ncall enable_user2 ,zero 
+0x2d61 005631 call disable_user2 ,zero 
+0x2d62 005632 call le_get_search_max_mtu_data 
+0x2d63 005633 increase -2 ,pdata 
+0x2d64 005634 idiv rega 
+0x2d65 005635 call wait_div_end 
+0x2d66 005636 quotient timeup 
+0x2d67 005637 branch le_send_att_read_by_group_type_store_record 
+:      005638 le_send_att_read_by_group_type_store_write_record:
+0x2d68 005639 call le_send_att_read_by_group_type_check_pair_length_type 
+0x2d69 005640 nbranch le_send_att_read_by_group_type_end1 ,blank 
+0x2d6a 005641 fetch 2 ,mem_temp 
+0x2d6b 005642 increase -1 ,pdata 
+0x2d6c 005643 store 2 ,mem_le_cur_handle_end 
+0x2d6d 005644 call le_write_att_record 
+:      005645 le_send_att_read_by_group_type_store_record:
+0x2d6e 005646 fetch 2 ,mem_temp 
+0x2d6f 005647 store 2 ,mem_le_cur_handle_start 
+0x2d70 005648 call le_store_att_record 
+0x2d71 005649 increase -1 ,timeup 
+:      005651 le_send_att_read_by_group_type_next_handle:
+0x2d72 005652 call le_att_next_handle 
+0x2d73 005653 branch le_send_att_read_by_group_type_response_loop 
+:      005655 le_send_att_read_by_type_res_check_pair_length_type:
+0x2d74 005656 fetch 1 ,mem_le_cur_uuid_length 
+0x2d75 005657 branch le_send_att_read_by_group_type_check_pair_length_type + 1 
+:      005660 le_send_att_read_by_group_type_check_pair_length_type:
+0x2d76 005661 fetch 1 ,mem_le_curr_att_len 
+0x2d77 005662 branch le_send_att_read_by_group_type_check_pair_length_type_16byte ,user2 
+0x2d78 005663 increase -2 ,pdata 
+0x2d79 005664 rtn 
+:      005666 le_send_att_read_by_group_type_check_pair_length_type_16byte:
+0x2d7a 005667 increase -16 ,pdata 
+0x2d7b 005668 rtn 
+:      005670 le_send_att_read_by_group_type_end0:
+0x2d7c 005671 fetch 2 ,mem_temp 
+0x2d7d 005672 store 2 ,mem_le_cur_handle_end 
+0x2d7e 005673 branch le_send_att_read_by_group_type_end_common 
+:      005674 le_send_att_read_by_group_type_end1:
+0x2d7f 005675 fetch 2 ,mem_temp 
+0x2d80 005676 increase -1 ,pdata 
+0x2d81 005677 store 2 ,mem_le_cur_handle_end 
+0x2d82 005678 branch le_send_att_read_by_group_type_end_common 
+:      005679 le_send_att_read_by_group_type_end_common:
+0x2d83 005680 branch le_send_att_error_response_notfound ,user 
+0x2d84 005681 call le_write_att_record 
+0x2d85 005682 branch le_send_auto_len_by_mem 
+:      005687 le_parse_att_write_request:
+0x2d86 005688 copy contr ,rega 
+0x2d87 005689 fetch 2 ,mem_le_l2cap_size 
+0x2d88 005690 add pdata ,-3 ,regb 
+0x2d89 005691 call le_writeatt_cb 
+:      005692 le_send_att_write_response_check_auth:
+0x2d8a 005693 bpatchx patch30_7 ,mem_patch30 
+0x2d8b 005694 call le_check_encrypt_state 
+0x2d8c 005695 fetcht 2 ,mem_le_att_handle 
+0x2d8d 005696 call le_att_get_handle_ptr2 
+0x2d8e 005697 nbranch le_send_att_write_response_error_invalid_handle ,zero 
+0x2d8f 005698 call le_send_att_write_response_check_handle ,user 
+0x2d90 005699 rtn user 
+0x2d91 005701 fetch 1 ,mem_le_configuration 
+0x2d92 005702 bbit0 bit_ble_write_auth ,le_send_att_write_response 
+0x2d93 005704 fetcht 2 ,mem_le_att_handle 
+0x2d94 005705 fetch 2 ,mem_le_pairing_handle 
+0x2d95 005706 isub temp ,null 
+0x2d96 005707 nbranch le_send_att_write_response ,zero 
+0x2d97 005708 call le_check_encrypt_state 
+0x2d98 005709 nbranch le_send_att_write_response ,user 
+0x2d99 005710 branch le_send_att_read_response_error_insufficient_auth 
+:      005713 le_send_att_write_response:
+0x2d9a 005714 force 1 ,rega 
+0x2d9b 005715 call le_fifo_malloc_tx_l2cap_gatt 
+0x2d9c 005716 setarg attop_write_response 
+0x2d9d 005717 istore 1 ,contw 
+0x2d9e 005718 rtn 
+:      005720 le_send_att_write_response_check_handle:
+0x2d9f 005721 increase -2 ,contr 
+0x2da0 005722 ifetch 2 ,contr 
+0x2da1 005723 bbit1 bit_of_att_handle_write_authenticated ,le_send_att_read_response_error_insufficient_auth 
+0x2da2 005724 branch disable_user 
+:      005726 le_send_att_write_response_error_invalid_handle:
+0x2da3 005727 jam att_err_invalid_handle ,mem_le_err_code 
+0x2da4 005728 branch le_send_att_error_response 
+:      005731 le_check_encrypt_state:
+0x2da5 005732 bpatchx patch31_0 ,mem_patch31 
+0x2da6 005733 call disable_user 
+0x2da7 005734 fetch 1 ,mem_le_pairing_mode 
+0x2da8 005735 rtneq le_pairing_mode_none 
+0x2da9 005736 fetch 1 ,mem_context 
+0x2daa 005737 rtnbit1 lestate_encryption 
+0x2dab 005738 branch enable_user 
+:      005741 le_parse_att_prepare_write_request:
+0x2dac 005742 add contr ,2 ,rega 
+0x2dad 005743 fetch 2 ,mem_le_l2cap_size 
+0x2dae 005744 add pdata ,-5 ,regb 
+0x2daf 005745 call le_writeatt_cb 
+0x2db0 005746 branch le_send_att_prepare_write_response 
+:      005749 le_send_att_prepare_write_response:
+0x2db1 005750 fetch 2 ,mem_le_l2cap_size 
+0x2db2 005751 copy pdata ,rega 
+0x2db3 005752 call le_fifo_malloc_tx_l2cap_gatt 
+0x2db4 005753 setarg attop_prepare_write_response 
+0x2db5 005754 istore 1 ,contw 
+0x2db6 005755 fetch 2 ,mem_le_att_handle 
+0x2db7 005756 istore 2 ,contw 
+0x2db8 005757 fetch 2 ,mem_le_l2cap_size 
+0x2db9 005758 add pdata ,-5 ,loopcnt 
+0x2dba 005759 fetch 2 ,mem_le_payload_ptr 
+0x2dbb 005760 add pdata ,7 ,contr 
+0x2dbc 005761 ifetch 2 ,contr 
+0x2dbd 005762 istore 2 ,contw 
+0x2dbe 005763 branch memcpy_fast 
+:      005767 le_parse_att_execute_write_request:
+:      005769 le_send_att_execute_write_response:
+0x2dbf 005770 force 1 ,rega 
+0x2dc0 005771 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dc1 005772 setarg attop_execute_write_response 
+0x2dc2 005773 istore 1 ,contw 
+0x2dc3 005774 rtn 
+:      005776 le_parse_handle_value_confirmation:
+0x2dc4 005777 fetch 1 ,mem_le_l2cap_att_states 
+0x2dc5 005778 set0 ble_l2cap_recv_confirmation_packet ,pdata 
+0x2dc6 005779 store 1 ,mem_le_l2cap_att_states 
+0x2dc7 005780 rtn 
+:      005782 le_parse_att_write_command:
+0x2dc8 005783 copy contr ,rega 
+0x2dc9 005784 fetch 2 ,mem_le_l2cap_size 
+0x2dca 005785 add pdata ,-3 ,regb 
+0x2dcb 005786 branch le_writeatt_cb 
+:      005791 le_att_malloc_tx_notify:
+0x2dcc 005792 copy temp ,regc 
+0x2dcd 005793 increase 3 ,rega 
+0x2dce 005794 call le_fifo_malloc_tx_l2cap_gatt 
+0x2dcf 005795 increase -3 ,rega 
+0x2dd0 005796 setarg attop_handle_value_notification 
+0x2dd1 005797 istore 1 ,contw 
+0x2dd2 005798 copy regc ,temp 
+0x2dd3 005799 istoret 2 ,contw 
+0x2dd4 005800 rtn 
+:      005803 le_att_malloc_tx_indication:
+0x2dd5 005804 fetch 1 ,mem_le_l2cap_att_states 
+0x2dd6 005805 set1 ble_l2cap_send_indication_packet ,pdata 
+0x2dd7 005806 store 1 ,mem_le_l2cap_att_states 
+0x2dd8 005807 copy temp ,regc 
+0x2dd9 005808 increase 3 ,rega 
+0x2dda 005809 call le_fifo_malloc_tx_l2cap_gatt 
+0x2ddb 005810 increase -3 ,rega 
+0x2ddc 005811 setarg attop_handle_value_indication 
+0x2ddd 005812 istore 1 ,contw 
+0x2dde 005813 copy regc ,temp 
+0x2ddf 005814 istoret 2 ,contw 
+0x2de0 005815 rtn 
+:      005820 le_send_att_error_response_notfound:
+0x2de1 005821 bpatchx patch31_1 ,mem_patch31 
+0x2de2 005822 jam att_err_attribute_not_found ,mem_le_err_code 
+:      005823 le_send_att_error_response:
+0x2de3 005824 force 5 ,rega 
+0x2de4 005825 call le_fifo_malloc_tx_l2cap_gatt 
+0x2de5 005826 setarg attop_error_response 
+0x2de6 005827 istore 1 ,contw 
+0x2de7 005828 fetch 1 ,mem_le_att_opcode 
+0x2de8 005829 istore 1 ,contw 
+0x2de9 005830 fetch 2 ,mem_le_att_handle 
+0x2dea 005831 istore 2 ,contw 
+0x2deb 005832 fetch 1 ,mem_le_err_code 
+0x2dec 005833 istore 1 ,contw 
+0x2ded 005834 rtn 
+:      005837 le_fifo_malloc_tx_l2cap_gatt:
+0x2dee 005838 bpatchx patch31_2 ,mem_patch31 
+0x2def 005839 force le_l2cap_cid_att ,regb 
+0x2df0 005840 branch le_fifo_malloc_tx_l2cap 
+:      005843 le_att_next_handle:
+0x2df1 005844 fetcht 2 ,mem_temp 
+0x2df2 005845 increase 1 ,temp 
+0x2df3 005846 storet 2 ,mem_temp 
+0x2df4 005847 rtn 
+:      005849 le_att_check_handle_end:
+0x2df5 005850 fetcht 2 ,mem_temp 
+0x2df6 005851 fetch 2 ,mem_le_search_handle_end 
+0x2df7 005852 isub temp ,null 
+0x2df8 005853 rtn 
+:      005856 le_att_same_type:
+0x2df9 005857 bpatchx patch31_3 ,mem_patch31 
+0x2dfa 005858 fetcht 1 ,mem_le_search_att_type_length 
+0x2dfb 005859 arg mem_le_search_att_type ,rega 
+:      005860 le_att_check_same_common:
+0x2dfc 005861 fetch 1 ,mem_le_cur_uuid_length 
+0x2dfd 005862 copy pdata ,loopcnt 
+0x2dfe 005863 isub temp ,null 
+0x2dff 005864 nrtn zero 
+0x2e00 005865 arg mem_le_cur_uuid ,regb 
+0x2e01 005866 branch string_compare 
+:      005869 le_store_att_record:
+0x2e02 005870 bpatchx patch31_4 ,mem_patch31 
+0x2e03 005871 fetch 1 ,mem_le_curr_att_len 
+0x2e04 005872 store 1 ,mem_temp_block0 
+0x2e05 005873 copy pdata ,loopcnt 
+0x2e06 005874 call get_contr 
+0x2e07 005875 branch memcpy_fast 
+:      005878 le_write_att_record:
+0x2e08 005879 bpatchx patch31_5 ,mem_patch31 
+0x2e09 005880 call get_contw 
+0x2e0a 005881 fetch 2 ,mem_le_cur_handle_start 
+0x2e0b 005882 istore 2 ,contw 
+0x2e0c 005883 fetch 2 ,mem_le_cur_handle_end 
+0x2e0d 005884 istore 2 ,contw 
+:      005885 le_write_att_record_common:
+0x2e0e 005886 fetch 1 ,mem_temp_block0 
+0x2e0f 005887 copy pdata ,loopcnt 
+0x2e10 005888 call memcpy_fast 
+0x2e11 005889 branch store_contw 
+:      005893 le_send_auto_len_by_mem:
+0x2e12 005894 bpatchx patch31_6 ,mem_patch31 
+0x2e13 005895 call get_contw 
+0x2e14 005896 call le_fifo_get_last_att_ptr 
+0x2e15 005897 copy contw ,pdata 
+0x2e16 005898 isub contr ,rega 
+0x2e17 005899 call le_fifo_get_last_l2cap_ptr 
+0x2e18 005900 copy rega ,pdata 
+0x2e19 005901 istore 2 ,contr 
+0x2e1a 005902 increase 4 ,rega 
+0x2e1b 005903 call le_fifo_get_last_tx_ptr 
+0x2e1c 005904 copy rega ,pdata 
+0x2e1d 005905 istore 1 ,contr 
+0x2e1e 005906 rtn 
+:      005909 le_get_search_handle_start_end_common:
+0x2e1f 005910 rshift8 pdata ,pdata 
+0x2e20 005911 store 2 ,mem_le_search_handle_start 
+0x2e21 005912 ifetch 2 ,contr 
+0x2e22 005913 store 2 ,mem_le_search_handle_end 
+0x2e23 005914 rtn 
+:      005917 le_get_search_max_mtu_data:
+0x2e24 005918 bpatchx patch31_7 ,mem_patch31 
+0x2e25 005919 fetch 2 ,mem_le_remote_mtu 
+0x2e26 005921 fetcht 2 ,mem_le_local_mtu 
+0x2e27 005925 branch not_greater_than 
+:      005929 le_get_search_att_type:
+0x2e28 005930 bpatchx patch32_0 ,mem_patch32 
+0x2e29 005931 call store_contr 
+0x2e2a 005932 arg mem_le_search_att_type_length ,contw 
+:      005933 le_get_search_common:
+0x2e2b 005934 fetch 2 ,mem_le_l2cap_size 
+0x2e2c 005935 increase -5 ,pdata 
+:      005936 le_get_search_common2:
+0x2e2d 005937 istore 1 ,contw 
+0x2e2e 005938 copy pdata ,loopcnt 
+0x2e2f 005939 call get_contr 
+0x2e30 005940 branch memcpy_fast 
+:      005944 le_parse_writing_attribute_start:
+0x2e31 005945 fetch 2 ,mem_le_rxbuf_data_att_cid 
+0x2e32 005946 rtnne le_l2cap_cid_att 
+0x2e33 005947 fetch 1 ,mem_le_l2cap_att_states 
+0x2e34 005948 set1 ble_l2cap_deal_with_continue_packet ,pdata 
+0x2e35 005949 store 1 ,mem_le_l2cap_att_states 
+0x2e36 005950 fetch 3 ,mem_le_rxbuf_data_att_opcode 
+0x2e37 005951 store 3 ,mem_le_att_opcode 
+0x2e38 005952 set1 mark_old_packet ,mark 
+0x2e39 005953 beq attop_write_request ,le_parse_attribute_write_request 
+0x2e3a 005954 beq attop_write_command ,le_parse_attribute_write_command 
+0x2e3b 005955 beq attop_execute_write_request ,le_parse_att_execute_write_request 
+0x2e3c 005956 beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+0x2e3d 005957 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+0x2e3e 005958 set0 mark_old_packet ,mark 
+:      005959 le_clear_l2cap_att_states_deal_with_contiune_packet:
+0x2e3f 005960 fetch 1 ,mem_le_l2cap_att_states 
+0x2e40 005961 set0 ble_l2cap_deal_with_continue_packet ,pdata 
+0x2e41 005962 store 1 ,mem_le_l2cap_att_states 
+0x2e42 005963 rtn 
+:      005965 le_parse_writing_attribute_continue:
+0x2e43 005966 fetch 1 ,mem_le_l2cap_att_states 
+0x2e44 005967 rtnbit0 ble_l2cap_deal_with_continue_packet 
+0x2e45 005968 set1 mark_old_packet ,mark 
+0x2e46 005969 call le_parse_l2cap_continue_common 
+0x2e47 005970 call le_parse_attribute_check_complete_packet 
+0x2e48 005971 call le_clear_l2cap_att_states_deal_with_contiune_packet ,user 
+0x2e49 005972 fetch 1 ,mem_le_att_opcode 
+0x2e4a 005973 beq attop_write_request ,le_send_att_write_response_check_auth 
+0x2e4b 005974 rtn 
+:      005977 le_parse_attribute_write_request:
+0x2e4c 005978 call le_parse_attribute_write_command 
+0x2e4d 005979 branch le_send_attribute_write_response_check_auth 
+:      005981 le_send_attribute_write_response_check_auth:
+0x2e4e 005982 call le_parse_attribute_check_complete_packet 
+0x2e4f 005983 nrtn user 
+0x2e50 005984 branch le_send_att_write_response_check_auth 
+:      005987 le_parse_attribute_write_command:
+0x2e51 005988 bpatchx patch32_1 ,mem_patch32 
+0x2e52 005989 call le_parse_attribute_check_complete_packet_init 
+0x2e53 005990 arg mem_le_rxbuf_data_att_write_payload ,rega 
+0x2e54 005991 branch le_writeatt_cb 
+:      005994 le_parse_attribute_check_complete_packet_init:
+0x2e55 005995 fetch 1 ,mem_le_rxbuf_data_att_write_length 
+0x2e56 005996 add pdata ,-7 ,regb 
+0x2e57 005997 increase -4 ,pdata 
+0x2e58 005998 store 2 ,mem_le_packet_len_recved 
+0x2e59 005999 fetcht 2 ,mem_le_rxbuf_data_att_write_l2cap_length 
+0x2e5a 006000 storet 2 ,mem_le_l2cap_size 
+0x2e5b 006001 rtn 
+:      006004 le_parse_l2cap_continue_common:
+0x2e5c 006005 fetchr regb ,1 ,mem_le_rxbuf_data_continue_length 
+0x2e5d 006006 fetch 2 ,mem_le_packet_len_recved 
+0x2e5e 006007 iadd regb ,temp 
+0x2e5f 006008 storet 2 ,mem_le_packet_len_recved 
+0x2e60 006009 arg mem_le_rxbuf_data_continue_payload ,rega 
+0x2e61 006010 branch le_writeatt_cb 
+:      006014 le_parse_attribute_check_complete_packet:
+0x2e62 006015 call disable_user 
+0x2e63 006016 fetch 2 ,mem_le_packet_len_recved 
+0x2e64 006017 fetcht 2 ,mem_le_l2cap_size 
+0x2e65 006018 isub temp ,null 
+0x2e66 006019 nrtn zero 
+0x2e67 006020 branch enable_user 
+:      006026 le_parse_signaling:
+0x2e68 006027 ifetch 1 ,contr 
+0x2e69 006028 ifetcht 1 ,contr 
+0x2e6a 006029 ifetcht 2 ,contr 
+0x2e6b 006030 beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
+0x2e6c 006031 rtn 
+:      006032 le_l2cap_parse_conn_parameter_update_rsp:
+0x2e6d 006033 ifetch 2 ,contr 
+0x2e6e 006034 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x2e6f 006035 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
+0x2e70 006036 branch ui_ipc_send_event 
+:      006042 le_l2cap_tx_update_req:
+0x2e71 006043 arg 0x0c ,rega 
+0x2e72 006044 arg l2cap_connection_parameter_update_request ,regc 
+0x2e73 006045 call le_fifo_malloc_tx_l2cap_signaling 
+0x2e74 006046 setarg 0x08 
+0x2e75 006047 istore 2 ,contw 
+0x2e76 006048 fetch 8 ,mem_le_interval_min 
+0x2e77 006049 istore 8 ,contw 
+0x2e78 006050 rtn 
+:      006054 le_fifo_malloc_tx_l2cap_signaling:
+0x2e79 006055 call le_l2cap_update_signaling_identifier 
+0x2e7a 006056 arg le_l2cap_cid_signal ,regb 
+0x2e7b 006057 call le_fifo_malloc_tx_l2cap 
+0x2e7c 006058 copy regc ,pdata 
+0x2e7d 006059 istore 1 ,contw 
+0x2e7e 006060 fetch 1 ,mem_le_signaling_identifier 
+0x2e7f 006061 istore 1 ,contw 
+0x2e80 006062 rtn 
+:      006065 le_l2cap_update_signaling_identifier:
+0x2e81 006066 fetch 1 ,mem_le_signaling_identifier 
+0x2e82 006068 pincrease 1 
+0x2e83 006069 store 1 ,mem_le_signaling_identifier 
+0x2e84 006070 rtnne 0 
+:      006072 le_l2cap_reset_signaling_identifier:
+0x2e85 006073 jam 1 ,mem_le_signaling_identifier 
+0x2e86 006074 rtn 
+:      006079 le_pairing_mode_init:
+0x2e87 006080 fetch 1 ,mem_le_pairing_mode 
+0x2e88 006081 beq le_pairing_mode_none ,le_set_no_pairing 
+0x2e89 006082 beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
+0x2e8a 006083 beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
+0x2e8b 006084 beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
+0x2e8c 006085 beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
+0x2e8d 006086 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
+0x2e8e 006087 rtn 
+:      006089 le_set_pairing_mode_secure_justwork:
+0x2e8f 006090 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2e90 006091 branch le_set_noinputnooutput 
+:      006092 le_set_pairing_mode_secure_numeric:
+0x2e91 006093 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2e92 006094 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+0x2e93 006095 rtn 
+:      006096 le_set_pairing_mode_secure_passkey:
+0x2e94 006097 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x2e95 006098 branch le_set_displayonly 
+:      006100 le_set_no_pairing:
+0x2e96 006101 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+:      006102 le_set_noinputnooutput:
+0x2e97 006103 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+0x2e98 006104 rtn 
+:      006105 le_set_pairing_mode_lagacy_just_work:
+0x2e99 006106 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x2e9a 006107 branch le_set_noinputnooutput 
+:      006108 le_set_pairing_mode_lagacy_passkey:
+0x2e9b 006109 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+:      006110 le_set_displayonly:
+0x2e9c 006111 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+0x2e9d 006112 rtn 
+:      006114 le_secure_connection_enable:
+0x2e9e 006115 fetch 1 ,mem_secure_connections_enable 
+0x2e9f 006116 set1 secure_connections_le_bit ,pdata 
+0x2ea0 006117 store 1 ,mem_secure_connections_enable 
+0x2ea1 006118 rtn 
+:      006120 le_secure_connection_disable:
+0x2ea2 006121 fetch 1 ,mem_secure_connections_enable 
+0x2ea3 006122 set0 secure_connections_le_bit ,pdata 
+0x2ea4 006123 store 1 ,mem_secure_connections_enable 
+0x2ea5 006124 rtn 
+:      006126 le_parse_smp:
+0x2ea6 006127 ifetch 1 ,contr 
+0x2ea7 006128 beq smp_pairing_request ,le_parse_smp_pairing_request 
+0x2ea8 006130 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
+0x2ea9 006131 beq smp_pairing_random ,le_parse_smp_pairing_random 
+0x2eaa 006132 beq smp_pairing_failed ,le_parse_smp_pairing_failed 
+0x2eab 006134 beq smp_master_identification ,le_parse_smp_master_identification 
+0x2eac 006135 beq smp_identity_information ,le_parse_smp_identity_information 
+0x2ead 006136 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
+0x2eae 006137 beq smp_signing_information ,le_parse_smp_signing_information 
+0x2eaf 006138 beq smp_security_request ,le_parse_smp_security_request 
+0x2eb0 006139 beq smp_pairing_public_key ,le_parse_smp_public_key 
+0x2eb1 006140 beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
+0x2eb2 006141 rtn 
+:      006145 le_send_smp_security_request:
+0x2eb3 006146 force 2 ,rega 
+0x2eb4 006147 call le_fifo_malloc_tx_l2cap_smp 
+0x2eb5 006148 setarg smp_security_request 
+0x2eb6 006149 istore 1 ,contw 
+0x2eb7 006150 fetch 1 ,mem_le_pres_auth 
+0x2eb8 006151 istore 1 ,contw 
+0x2eb9 006152 rtn 
+:      006154 le_parse_smp_pairing_request:
+0x2eba 006155 store 1 ,mem_le_preq 
+0x2ebb 006156 ifetch 6 ,contr 
+0x2ebc 006157 istore 6 ,contw 
+0x2ebd 006158 fetch 1 ,mem_le_pairing_mode 
+0x2ebe 006159 beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
+0x2ebf 006160 call le_send_smp_pairing_response 
+0x2ec0 006161 fetch 1 ,mem_sc_only_mode 
+0x2ec1 006162 branch le_parse_smp_pairing_request2 ,blank 
+0x2ec2 006163 fetch 1 ,mem_le_preq_auth 
+0x2ec3 006164 bbit0 le_auth_secure_connection_pairing_bit ,app_ble_disconnect 
+0x2ec4 006165 fetch 1 ,mem_le_pairing_mode 
+0x2ec5 006166 bbit0 le_pairing_mode_secure_connect_bit ,app_ble_disconnect 
+:      006167 le_parse_smp_pairing_request2:
+0x2ec6 006168 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
+0x2ec7 006169 fetch 1 ,mem_le_preq_iocap 
+0x2ec8 006170 beq flag_iocap_displayonly ,le_set_tk_0 
+0x2ec9 006171 beq flag_iocap_displayyesno ,le_set_tk_0 
+0x2eca 006172 beq flag_iocap_noinputnooutput ,le_set_tk_0 
+0x2ecb 006173 fetch 1 ,mem_le_pairing_mode 
+0x2ecc 006174 beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
+0x2ecd 006175 rtneq le_pairing_mode_secure_connect_passkey 
+:      006176 le_set_tk_0:
+0x2ece 006177 arg 0 ,pdata 
+0x2ecf 006178 store 4 ,mem_le_tk 
+0x2ed0 006179 rtn 
+:      006181 le_parse_smp_pairing_req_passkey:
+0x2ed1 006182 fetch 1 ,mem_le_configuration 
+0x2ed2 006183 bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
+:      006184 le_genernate_tk:
+0x2ed3 006185 arg mem_le_tk ,rega 
+0x2ed4 006186 copy rega ,contw 
+0x2ed5 006187 arg 3 ,loopcnt 
+0x2ed6 006188 call generate_random_loop 
+0x2ed7 006189 fetch 2 ,mem_le_tk + 2 
+0x2ed8 006190 and_into 0x7 ,pdata 
+0x2ed9 006191 store 2 ,mem_le_tk + 2 
+:      006192 le_parse_smp_pairing_req_fixed_passkey:
+0x2eda 006193 jam bt_evt_le_tk_generate ,mem_fifo_temp 
+0x2edb 006194 branch ui_ipc_send_event 
+:      006198 le_send_smp_pairing_response:
+0x2edc 006199 force 7 ,rega 
+0x2edd 006200 call le_fifo_malloc_tx_l2cap_smp 
+0x2ede 006201 fetch 7 ,mem_le_pres 
+0x2edf 006202 istore 7 ,contw 
+0x2ee0 006203 rtn 
+:      006206 le_parse_smp_pairing_confirm:
+0x2ee1 006207 jam flag_le_pairing_receive_pairing_confirm ,mem_le_pairing_state 
+0x2ee2 006208 arg mem_le_rconfirm ,contw 
+0x2ee3 006209 call memcpy16 
+0x2ee4 006210 fetch 1 ,mem_le_pairing_mode 
+0x2ee5 006211 beq le_pairing_mode_lagacy_passkey_res_input ,le_parse_smp_pairing_confirm_passkey_res_input 
+0x2ee6 006212 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
+0x2ee7 006213 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_confirm_sc_passkey_res_input 
+0x2ee8 006214 branch le_send_smp_pairing_confirm 
+:      006217 le_parse_smp_pairing_confirm_passkey_res_input:
+0x2ee9 006218 jam bt_evt_le_get_passkey ,mem_fifo_temp 
+0x2eea 006219 branch ui_ipc_send_event 
+:      006221 le_parse_smp_pairing_confirm_secure_passkey:
+0x2eeb 006222 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2eec 006223 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+0x2eed 006224 rtn 
+:      006226 le_parse_smp_pairing_confirm_sc_passkey_res_input:
+0x2eee 006227 fetch 4 ,mem_le_tk 
+0x2eef 006228 branch le_parse_smp_pairing_confirm_passkey_res_input ,blank 
+0x2ef0 006229 branch le_parse_smp_pairing_confirm_secure_passkey 
+:      006231 le_send_smp_pairing_confirm:
+0x2ef1 006232 jam flag_le_pairing_send_pairing_confirm ,mem_le_pairing_state 
+0x2ef2 006233 fetch 1 ,mem_le_pairing_mode 
+0x2ef3 006234 bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
+0x2ef4 006235 call generate_confirm 
+0x2ef5 006236 force 17 ,rega 
+0x2ef6 006237 call le_fifo_malloc_tx_l2cap_smp 
+0x2ef7 006238 setarg smp_pairing_confirm 
+0x2ef8 006239 istore 1 ,contw 
+0x2ef9 006240 branch store_aes_result 
+:      006242 le_send_smp_pairing_confirm_sc:
+0x2efa 006243 arg mem_le_srand ,contw 
+0x2efb 006244 call generate_random 
+0x2efc 006245 call function_f4_cb 
+0x2efd 006246 force 17 ,rega 
+0x2efe 006247 call le_fifo_malloc_tx_l2cap_smp 
+0x2eff 006248 setarg smp_pairing_confirm 
+0x2f00 006249 istore 1 ,contw 
+0x2f01 006250 branch load_inverse_result 
+:      006252 le_parse_smp_pairing_random:
+0x2f02 006253 copy contr ,rega 
+0x2f03 006254 fetch 1 ,mem_le_pairing_mode 
+0x2f04 006255 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
+0x2f05 006256 copy rega ,contr 
+0x2f06 006257 call authenticate_rconfirm 
+0x2f07 006258 branch le_parse_smp_pairing_random_success ,zero 
+:      006259 le_send_pairing_confirm_value_failed:
+0x2f08 006260 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
+:      006261 le_send_pairing_failed:
+0x2f09 006262 force 2 ,rega 
+0x2f0a 006263 call le_fifo_malloc_tx_l2cap_smp 
+0x2f0b 006264 setarg smp_pairing_failed 
+0x2f0c 006265 istore 1 ,contw 
+0x2f0d 006266 fetch 1 ,mem_le_ll_pairing_fail_reason 
+0x2f0e 006267 istore 1 ,contw 
+:      006268 le_parse_smp_pairing_failed:
+0x2f0f 006269 bpatchx patch32_2 ,mem_patch32 
+0x2f10 006270 force smp_pairing_timer ,queue 
+0x2f11 006271 call timer_stop 
+0x2f12 006272 jam flag_le_pairing_null ,mem_le_pairing_state 
+0x2f13 006273 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
+0x2f14 006274 branch ui_ipc_send_event 
+:      006276 le_smp_pairing_fail_reason_not_support_pairing:
+0x2f15 006277 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
+0x2f16 006278 branch le_send_pairing_failed 
+:      006280 le_parse_smp_pairing_random_sc:
+0x2f17 006281 arg mem_le_mrand ,contw 
+0x2f18 006282 copy rega ,contr 
+0x2f19 006283 call memcpy16 
+0x2f1a 006284 fetch 1 ,mem_le_pairing_mode 
+0x2f1b 006285 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
+0x2f1c 006286 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_random_sc_passkey 
+0x2f1d 006287 call function_g2 
+0x2f1e 006288 call le_send_smp_pairing_random 
+0x2f1f 006289 fetch 1 ,mem_le_pairing_mode 
+0x2f20 006290 rtnne le_pairing_mode_secure_connect_numeric 
+0x2f21 006291 jam bt_evt_le_gkey_generate ,mem_fifo_temp 
+0x2f22 006292 branch ui_ipc_send_event 
+:      006294 le_parse_smp_pairing_random_sc_passkey:
+0x2f23 006295 call function_f4_ca 
+0x2f24 006296 arg mem_aes_cmac_temp ,contw 
+0x2f25 006297 call load_inverse_result 
+0x2f26 006298 arg mem_aes_cmac_temp ,rega 
+0x2f27 006299 arg mem_le_rconfirm ,regb 
+0x2f28 006300 arg 16 ,loopcnt 
+0x2f29 006301 call string_compare 
+0x2f2a 006302 nbranch le_send_pairing_confirm_value_failed ,zero 
+0x2f2b 006303 branch le_send_smp_pairing_random 
+:      006305 le_parse_smp_pairing_random_success:
+0x2f2c 006306 call generate_stk 
+0x2f2d 006307 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+0x2f2e 006308 call ui_ipc_send_event 
+0x2f2f 006309 jam 1 ,mem_ltk_exists 
+0x2f30 006310 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+:      006312 le_send_smp_pairing_random:
+0x2f31 006313 force 17 ,rega 
+0x2f32 006314 call le_fifo_malloc_tx_l2cap_smp 
+0x2f33 006315 setarg smp_pairing_random 
+0x2f34 006316 istore 1 ,contw 
+0x2f35 006317 arg mem_le_srand ,contr 
+0x2f36 006318 branch memcpy16 
+:      006320 le_send_smp_encryption_information:
+0x2f37 006321 force 17 ,rega 
+0x2f38 006322 call le_fifo_malloc_tx_l2cap_smp 
+0x2f39 006323 setarg smp_encryption_information 
+0x2f3a 006324 istore 1 ,contw 
+0x2f3b 006325 fetch 1 ,mem_le_configuration 
+0x2f3c 006326 bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
+0x2f3d 006327 arg mem_le_ltk ,contr 
+0x2f3e 006328 branch memcpy16 
+:      006330 le_send_fixed_ltk:
+0x2f3f 006331 arg mem_le_fixed_ltk ,contr 
+0x2f40 006332 branch memcpy16 
+:      006335 le_send_smp_master_identification:
+0x2f41 006336 arg mem_le_ediv ,contw 
+0x2f42 006337 force 10 ,loopcnt 
+0x2f43 006338 call generate_random_loop 
+0x2f44 006339 force 11 ,rega 
+0x2f45 006340 call le_fifo_malloc_tx_l2cap_smp 
+0x2f46 006341 setarg smp_master_identification 
+0x2f47 006342 istore 1 ,contw 
+0x2f48 006343 fetch 2 ,mem_le_ediv 
+0x2f49 006344 istore 2 ,contw 
+0x2f4a 006345 fetch 8 ,mem_le_rand 
+0x2f4b 006346 istore 8 ,contw 
+0x2f4c 006347 rtn 
+:      006349 le_send_smp_identity_information:
+0x2f4d 006350 force 17 ,rega 
+0x2f4e 006351 call le_fifo_malloc_tx_l2cap_smp 
+0x2f4f 006352 setarg smp_identity_information 
+0x2f50 006353 istore 1 ,contw 
+0x2f51 006354 setarg 0 
+0x2f52 006355 istore 8 ,contw 
+0x2f53 006356 istore 8 ,contw 
+0x2f54 006357 rtn 
+:      006360 le_send_smp_identity_address_information:
+0x2f55 006361 force 8 ,rega 
+0x2f56 006362 call le_fifo_malloc_tx_l2cap_smp 
+0x2f57 006363 setarg smp_identity_address_information 
+0x2f58 006364 istore 1 ,contw 
+0x2f59 006365 fetch 1 ,mem_le_conn_own_addr_type 
+0x2f5a 006366 istore 1 ,contw 
+0x2f5b 006367 fetch 6 ,mem_le_lap 
+0x2f5c 006368 istore 6 ,contw 
+0x2f5d 006369 rtn 
+:      006372 le_send_pairing_fail_unspecified_reason:
+0x2f5e 006373 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
+0x2f5f 006374 branch le_send_pairing_failed 
+:      006376 le_check_init_key_distribution:
+0x2f60 006377 fetch 1 ,mem_le_pres_init_key_distribution 
+0x2f61 006378 fetcht 1 ,mem_le_pres_init_key_distribution 
+0x2f62 006379 iand temp ,pdata 
+0x2f63 006380 rtn 
+:      006382 le_parse_smp_identity_information:
+0x2f64 006383 arg mem_le_irk ,contw 
+0x2f65 006384 call memcpy16 
+0x2f66 006385 call le_check_init_key_distribution 
+0x2f67 006386 isolate0 le_initator_irk_bit ,pdata 
+0x2f68 006387 branch le_send_pairing_fail_unspecified_reason ,true 
+0x2f69 006388 fetch 1 ,mem_device_option 
+0x2f6a 006389 rtnne dvc_op_module 
+0x2f6b 006390 call le_check_master_addr_type 
+0x2f6c 006391 nrtn user 
+0x2f6d 006392 branch app_ble_store_reconn_info 
+:      006395 le_check_master_addr_type:
+0x2f6e 006396 call disable_user 
+0x2f6f 006397 fetch 1 ,mem_le_conn_peer_addr_type 
+0x2f70 006398 rtneq master_public_addr 
+0x2f71 006399 fetch 1 ,mem_le_preq_init_key_distribution 
+0x2f72 006400 rtnbit0 le_initator_irk_bit 
+0x2f73 006401 branch enable_user 
+:      006403 le_parse_smp_identity_address_information:
+0x2f74 006404 call le_check_init_key_distribution 
+0x2f75 006405 isolate0 le_initator_irk_bit ,pdata 
+0x2f76 006406 branch le_send_pairing_fail_unspecified_reason ,true 
+0x2f77 006407 rtn 
+:      006409 le_parse_smp_master_identification:
+:      006410 le_parse_smp_signing_information:
+:      006411 le_parse_smp_security_request:
+0x2f78 006412 rtn 
+:      006414 le_parse_smp_public_key:
+0x2f79 006415 arg mem_le_pubkey_remote_x_256 ,contw 
+0x2f7a 006416 call memcpy64 
+0x2f7b 006417 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2f7c 006418 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
+0x2f7d 006419 rtn 
+:      006421 le_parse_smp_dhkey_check:
+0x2f7e 006422 arg mem_sp_confirm_remote ,contw 
+0x2f7f 006423 call memcpy16 
+0x2f80 006424 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
+0x2f81 006425 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2f82 006426 rtn 
+:      006428 le_send_smp_pairing_public_key:
+0x2f83 006429 force 65 ,rega 
+0x2f84 006430 call le_fifo_malloc_tx_l2cap_smp 
+0x2f85 006431 setarg smp_pairing_public_key 
+0x2f86 006432 istore 1 ,contw 
+0x2f87 006433 arg mem_sc_pubkey_local_x_256 ,contr 
+0x2f88 006434 branch memcpy64 
+:      006436 le_send_smp_pairing_dhkey_check:
+0x2f89 006437 call function_f6_eb 
+0x2f8a 006438 force 17 ,rega 
+0x2f8b 006439 call le_fifo_malloc_tx_l2cap_smp 
+0x2f8c 006440 setarg smp_pairing_dhkey_check 
+0x2f8d 006441 istore 1 ,contw 
+0x2f8e 006442 branch load_inverse_result 
+:      006444 le_check_paring_time:
+0x2f8f 006445 fetch 1 ,mem_le_pairing_state 
+0x2f90 006446 rtneq flag_le_pairing_end 
+0x2f91 006447 arg flag_le_pairing_rcv_pairing_req ,temp 
+0x2f92 006448 isub temp ,null 
+0x2f93 006449 nrtn positive 
+0x2f94 006450 arg smp_pairing_timer ,queue 
+0x2f95 006451 call timer_check 
+0x2f96 006452 nrtn blank 
+0x2f97 006453 branch le_send_pairing_fail_unspecified_reason 
+:      006455 le_pairing_sm:
+0x2f98 006456 bpatchx patch32_3 ,mem_patch32 
+0x2f99 006457 call le_fifo_check_nearly_full 
+0x2f9a 006458 nrtn blank 
+0x2f9b 006459 fetch 1 ,mem_le_pairing_state 
+0x2f9c 006460 beq flag_le_pairing_null ,le_pairing_sm_null 
+0x2f9d 006461 beq flag_le_pairing_start ,le_pairing_sm_start 
+0x2f9e 006462 beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
+0x2f9f 006463 beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
+0x2fa0 006464 beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
+0x2fa1 006465 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
+0x2fa2 006466 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
+0x2fa3 006467 beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
+0x2fa4 006468 rtn 
+:      006470 le_pairing_sm_null:
+:      006471 le_pairing_sm_send_sec_req:
+0x2fa5 006472 fetch 1 ,mem_le_enc_state 
+0x2fa6 006473 rtnne flag_le_send_start_enc_rsp 
+0x2fa7 006474 jam flag_le_enc_end ,mem_le_enc_state 
+0x2fa8 006475 jam flag_le_pairing_end ,mem_le_pairing_state 
+0x2fa9 006476 jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
+0x2faa 006477 branch ui_ipc_send_event 
+:      006480 le_pairing_sm_start:
+0x2fab 006481 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
+0x2fac 006482 branch le_send_smp_security_request 
+:      006484 le_pairing_sm_rcv_pairing_req:
+0x2fad 006485 jam flag_le_pairing_wait_stk_generation ,mem_le_pairing_state 
+0x2fae 006486 setarg timer_smp_pairing_timeout 
+0x2faf 006487 arg smp_pairing_timer ,queue 
+0x2fb0 006488 branch timer_init 
+:      006490 le_pairing_sm_after_auth:
+0x2fb1 006491 fetch 1 ,mem_le_enc_state 
+0x2fb2 006492 beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
+0x2fb3 006493 rtn 
+:      006495 le_pairing_sm_after_auth_start_enc:
+0x2fb4 006496 fetch 1 ,mem_le_pairing_mode 
+0x2fb5 006497 bbit1 le_pairing_mode_secure_connect_bit ,le_pairing_sm_after_auth_start_enc_sc 
+0x2fb6 006499 jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
+0x2fb7 006500 call le_send_smp_encryption_information 
+:      006501 le_pairing_sm_after_auth_start_enc_common:
+0x2fb8 006502 jam bt_evt_le_enc_info ,mem_fifo_temp 
+0x2fb9 006503 call ui_ipc_send_event 
+0x2fba 006504 fetch 1 ,mem_device_option 
+0x2fbb 006505 rtnne dvc_op_module 
+0x2fbc 006506 call le_check_master_addr_type 
+0x2fbd 006507 rtn user 
+0x2fbe 006508 branch app_ble_store_reconn_info 
+:      006510 le_pairing_sm_after_auth_start_enc_sc:
+0x2fbf 006511 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+0x2fc0 006512 branch le_pairing_sm_after_auth_start_enc_common 
+:      006514 le_pairng_sm_send_enc_information:
+0x2fc1 006515 jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+0x2fc2 006516 branch le_send_smp_master_identification 
+:      006518 le_pairng_sm_send_master_indentification:
+0x2fc3 006519 fetch 1 ,mem_le_preq_resp_key_distribution 
+0x2fc4 006520 fetcht 1 ,mem_le_pres_resp_key_distribution 
+0x2fc5 006521 iand temp ,pdata 
+0x2fc6 006522 isolate0 le_initator_irk_bit ,pdata 
+0x2fc7 006523 branch le_parse_start_enc_rsp_after_auth_end ,true 
+0x2fc8 006524 jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
+0x2fc9 006525 branch le_send_smp_identity_information 
+:      006527 le_pairng_sm_send_indentity_information:
+0x2fca 006528 call le_send_smp_identity_address_information 
+0x2fcb 006529 branch le_parse_start_enc_rsp_after_auth_end 
+:      006532 le_parse_start_enc_rsp_after_auth_end:
+0x2fcc 006533 bpatchx patch32_4 ,mem_patch32 
+0x2fcd 006534 force smp_pairing_timer ,queue 
+0x2fce 006535 call timer_stop 
+0x2fcf 006536 jam flag_le_enc_end ,mem_le_enc_state 
+0x2fd0 006537 jam flag_le_pairing_end ,mem_le_pairing_state 
+0x2fd1 006538 jam bt_evt_le_pairing_complete ,mem_fifo_temp 
+0x2fd2 006539 branch ui_ipc_send_event 
+:      006543 le_secure_connect_sm:
+0x2fd3 006544 bpatchx patch32_5 ,mem_patch32 
+0x2fd4 006545 fetch 1 ,mem_le_pairing_mode 
+0x2fd5 006546 rtnbit0 le_pairing_mode_secure_connect_bit 
+0x2fd6 006547 fetch 1 ,mem_le_secure_connect_flag 
+0x2fd7 006548 rtnne le_sp_flag_commit_256 
+0x2fd8 006549 jam sp_flag_standby ,mem_le_secure_connect_flag 
+0x2fd9 006550 fetch 1 ,mem_le_secure_connect_state 
+0x2fda 006551 beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
+0x2fdb 006552 beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
+0x2fdc 006553 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
+0x2fdd 006554 beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
+0x2fde 006555 beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
+0x2fdf 006556 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
+0x2fe0 006557 rtn 
+:      006559 le_sc_state_clear:
+0x2fe1 006560 jam sp_flag_standby ,mem_le_secure_connect_flag 
+0x2fe2 006561 jam le_sc_stat_null ,mem_le_secure_connect_state 
+0x2fe3 006562 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+0x2fe4 006563 rtn 
+:      006565 le_sc_sm_passkey_wait_confirm:
+0x2fe5 006566 fetch 1 ,mem_authentication_passkey_times 
+0x2fe6 006567 copy pdata ,queue 
+0x2fe7 006568 increase 1 ,pdata 
+0x2fe8 006569 store 1 ,mem_authentication_passkey_times 
+0x2fe9 006570 fetch 4 ,mem_le_tk 
+0x2fea 006571 qisolate1 pdata 
+0x2feb 006572 setarg 0x80 
+0x2fec 006573 setflag true ,0 ,pdata 
+0x2fed 006574 store 1 ,mem_passkey_1bit 
+0x2fee 006575 branch le_sc_sm_ready_send_pairing_confirm 
+:      006577 le_sc_sm_wait_confirm_gkey:
+0x2fef 006578 fetch 1 ,mem_le_sc_confirm_gkey_flag 
+0x2ff0 006579 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+0x2ff1 006580 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
+0x2ff2 006581 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2ff3 006582 rtn 
+:      006584 le_sc_confirm_gkey_ok:
+0x2ff4 006585 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+0x2ff5 006586 call ui_ipc_send_event 
+0x2ff6 006587 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+0x2ff7 006588 branch le_send_smp_pairing_dhkey_check 
+:      006590 le_sc_sm_receive_dhkey:
+0x2ff8 006591 fetch 1 ,mem_sp_dhkey_invalid 
+0x2ff9 006592 beq sp_key_valid_256 ,le_dhkey_ready 
+0x2ffa 006593 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x2ffb 006594 rtn 
+:      006596 le_dhkey_ready:
+0x2ffc 006597 call function_f5 
+0x2ffd 006598 fetch 1 ,mem_le_pairing_mode 
+0x2ffe 006599 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
+0x2fff 006600 beq le_pairing_mode_secure_connect_passkey_res_input ,le_dhkey_ready_common 
+0x3000 006601 call le_set_tk_0 
+:      006602 le_dhkey_ready_common:
+0x3001 006603 call function_f6_ea 
+0x3002 006604 arg mem_aes_cmac_temp ,rega 
+0x3003 006605 arg mem_sp_confirm_remote ,regb 
+0x3004 006606 arg 16 ,loopcnt 
+0x3005 006607 call string_compare 
+0x3006 006608 branch le_dhkey_check_ok ,zero 
+:      006609 le_dhkey_check_fail:
+0x3007 006610 jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
+0x3008 006611 branch le_send_pairing_failed 
+:      006614 le_dhkey_check_ok:
+0x3009 006615 call sp_calc_check_publickey_256 
+0x300a 006616 nbranch le_dhkey_check_fail ,zero 
+0x300b 006617 jam 1 ,mem_ltk_exists 
+0x300c 006618 fetch 1 ,mem_le_pairing_mode 
+0x300d 006619 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
+0x300e 006620 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
+0x300f 006621 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_confirm_gkey_ok 
+0x3010 006622 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3011 006623 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
+0x3012 006624 rtn 
+:      006626 le_sc_sm_send_public_key:
+0x3013 006627 fetch 1 ,mem_le_pairing_mode 
+0x3014 006628 beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
+0x3015 006629 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_sm_send_public_key_passkey 
+0x3016 006630 jam 0 ,mem_passkey_1bit 
+:      006631 le_sc_sm_ready_send_pairing_confirm:
+0x3017 006632 branch le_send_smp_pairing_confirm 
+:      006634 le_sc_sm_send_public_key_passkey:
+0x3018 006635 jam 0 ,mem_authentication_passkey_times 
+0x3019 006636 rtneq le_pairing_mode_secure_connect_passkey_res_input 
+0x301a 006637 branch le_parse_smp_pairing_req_passkey 
+:      006640 le_sc_sm_receive_public_key:
+0x301b 006641 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x301c 006642 fetch 1 ,mem_sc_local_key_invalid 
+0x301d 006643 beq sp_key_valid_256 ,le_public_key_ready 
+0x301e 006644 rtn 
+:      006646 le_public_key_ready:
+0x301f 006647 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
+0x3020 006648 jam sp_key_invalid ,mem_sp_dhkey_invalid 
+0x3021 006649 branch sp_dhkey_calc_256 
+:      006651 le_sc_sm_wait_send_public_key:
+0x3022 006652 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x3023 006653 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
+0x3024 006654 branch le_send_smp_pairing_public_key 
+:      006658 le_fifo_malloc_tx_l2cap_smp:
+0x3025 006659 bpatchx patch32_6 ,mem_patch32 
+0x3026 006660 force le_l2cap_cid_smp ,regb 
+0x3027 006661 branch le_fifo_malloc_tx_l2cap 
+:      006665 le_parse_ll:
+0x3028 006666 fetch 1 ,mem_le_rxbuf_data_ll_opcode 
+0x3029 006667 beq ll_connection_update_ind ,le_parse_connection_update_ind 
+0x302a 006668 beq ll_channel_map_ind ,le_parse_channel_map_ind 
+0x302b 006669 beq ll_terminate_ind ,le_parse_terminate_ind 
+0x302c 006670 beq ll_enc_req ,le_parse_enc_req 
+0x302d 006671 beq ll_enc_rsp ,le_parse_enc_rsp 
+0x302e 006672 beq ll_start_enc_req ,le_parse_start_enc_req 
+0x302f 006673 beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
+0x3030 006674 beq ll_unknown_rsp ,le_parse_unknown_rsp 
+0x3031 006675 beq ll_feature_req ,le_parse_feature_req 
+0x3032 006676 beq ll_feature_rsp ,le_parse_feature_rsp 
+0x3033 006677 beq ll_pause_enc_req ,le_parse_pause_enc_req 
+0x3034 006678 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
+0x3035 006679 beq ll_version_ind ,le_parse_version_ind 
+0x3036 006680 beq ll_reject_ind ,le_parse_reject_ind 
+0x3037 006681 beq ll_ping_req ,le_parse_ping_req 
+0x3038 006682 beq ll_ping_rsp ,le_parse_ping_rsp 
+0x3039 006683 beq ll_length_req ,le_parse_length_req 
+0x303a 006684 beq ll_length_rsp ,le_parse_length_rsp 
+0x303b 006685 beq ll_phy_req ,le_parse_phy_req 
+0x303c 006686 beq ll_phy_update_ind ,le_parse_phy_update_ind 
+0x303d 006687 fetchr regc ,1 ,mem_le_rxbuf_data_ll_opcode 
+0x303e 006688 branch le_send_unknown_rsp 
+:      006692 le_parse_connection_update_ind:
+0x303f 006693 ifetch 9 ,contr 
+0x3040 006694 store 9 ,mem_le_new_param 
+0x3041 006695 ifetch 2 ,contr 
+0x3042 006696 store 2 ,mem_le_instant 
+0x3043 006697 fetch 1 ,mem_le_state 
+0x3044 006698 set1 lestate_update_param ,pdata 
+0x3045 006699 store 1 ,mem_le_state 
+0x3046 006700 rtn 
+:      006704 le_parse_channel_map_ind:
+0x3047 006705 ifetch 5 ,contr 
+0x3048 006706 store 5 ,mem_le_new_map 
+0x3049 006707 ifetch 2 ,contr 
+0x304a 006708 store 2 ,mem_le_instant 
+:      006709 le_update_map_enable:
+0x304b 006710 fetch 1 ,mem_le_state 
+0x304c 006711 set1 lestate_update_map ,pdata 
+0x304d 006712 store 1 ,mem_le_state 
+0x304e 006713 rtn 
+:      006717 le_parse_terminate_ind:
+0x304f 006718 setarg 20 
+0x3050 006719 store 2 ,mem_le_superto 
+0x3051 006720 store 2 ,mem_le_init_superto 
+0x3052 006721 rtn 
+:      006725 le_parse_enc_req:
+0x3053 006726 ifetch 8 ,contr 
+0x3054 006727 store 8 ,mem_le_rand 
+0x3055 006728 ifetch 2 ,contr 
+0x3056 006729 store 2 ,mem_le_ediv 
+0x3057 006730 ifetch 8 ,contr 
+0x3058 006731 store 8 ,mem_le_skdm 
+0x3059 006732 ifetch 4 ,contr 
+0x305a 006733 store 4 ,mem_ccm_ivm 
+0x305b 006734 call le_send_enc_rsp 
+0x305c 006735 bpatchx patch32_7 ,mem_patch32 
+0x305d 006736 fetch 1 ,mem_le_pairing_state 
+0x305e 006737 beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
+0x305f 006738 fetch 1 ,mem_le_configuration 
+0x3060 006739 bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
+0x3061 006740 fetch 1 ,mem_nv_data_number 
+0x3062 006741 ncall load_device_list_mode_4 ,blank 
+0x3063 006742 fetch 1 ,mem_ltk_exists 
+0x3064 006743 beq 0 ,le_ltk_lost 
+:      006744 le_parse_enc_req_after_auth:
+0x3065 006745 jam flag_le_rcv_enc_start ,mem_le_enc_state 
+0x3066 006746 call le_send_start_enc_req 
+0x3067 006747 branch generate_sk 
+:      006748 le_parse_enc_req_fixed_ltk:
+0x3068 006749 jam 1 ,mem_ltk_exists 
+0x3069 006750 arg mem_le_fixed_ltk ,contr 
+0x306a 006751 arg mem_le_ltk ,contw 
+0x306b 006752 call memcpy16 
+0x306c 006753 branch le_parse_enc_req_after_auth 
+:      006755 le_ltk_lost:
+0x306d 006756 jam flag_le_enc_null ,mem_le_enc_state 
+0x306e 006757 jam flag_le_enc_null ,mem_le_pairing_state 
+0x306f 006758 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
+0x3070 006759 branch ui_ipc_send_event 
+:      006762 le_parse_enc_rsp:
+0x3071 006763 ifetch 8 ,contr 
+0x3072 006764 store 8 ,mem_le_skds 
+0x3073 006765 ifetch 4 ,contr 
+0x3074 006766 store 4 ,mem_ccm_ivs 
+0x3075 006767 branch generate_sk 
+:      006771 le_parse_start_enc_req:
+0x3076 006772 fetch 1 ,mem_le_state 
+0x3077 006773 set1 lestate_encryption ,pdata 
+0x3078 006774 store 1 ,mem_le_state 
+0x3079 006775 rtn 
+:      006778 le_parse_start_enc_rsp:
+0x307a 006779 rtn master 
+0x307b 006780 jam bt_evt_le_start_enc ,mem_fifo_temp 
+0x307c 006781 call ui_ipc_send_event 
+0x307d 006782 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
+0x307e 006783 branch le_send_start_enc_rsp 
+:      006787 le_parse_unknown_rsp:
+0x307f 006788 rtn 
+:      006792 le_parse_feature_req:
+0x3080 006793 branch le_send_feature_rsp 
+:      006797 le_parse_feature_rsp:
+0x3081 006798 rtn 
+:      006802 le_parse_pause_enc_req:
+0x3082 006803 jam flag_le_enc_pause ,mem_le_enc_state 
+0x3083 006804 call le_send_pause_enc_rsp 
+0x3084 006805 jam bt_evt_le_pause_enc ,mem_fifo_temp 
+0x3085 006806 branch ui_ipc_send_event 
+:      006810 le_parse_pause_enc_rsp:
+0x3086 006811 rtn 
+:      006815 le_parse_version_ind:
+0x3087 006816 rtn master 
+0x3088 006817 branch le_send_version_ind 
+:      006821 le_parse_reject_ind:
+0x3089 006822 rtn 
+:      006826 le_parse_ping_req:
+0x308a 006827 branch le_send_ping_rsp 
+:      006831 le_parse_ping_rsp:
+0x308b 006832 rtn 
+:      006835 le_parse_length_req:
+0x308c 006836 call le_parse_length_rsp 
+0x308d 006837 branch le_send_data_length_res 
+:      006839 le_parse_length_rsp:
+0x308e 006840 ifetch 8 ,contr 
+0x308f 006841 store 8 ,mem_remote_rx_max_octets 
+0x3090 006842 fetch 2 ,mem_remote_rx_max_octets 
+0x3091 006843 fetcht 2 ,mem_local_tx_max_octets 
+0x3092 006844 call not_greater_than 
+0x3093 006845 store 2 ,mem_remote_rx_max_octets 
+0x3094 006847 fetch 2 ,mem_remote_tx_max_octets 
+0x3095 006848 fetcht 2 ,mem_local_rx_max_octets 
+0x3096 006849 call not_greater_than 
+0x3097 006850 store 2 ,mem_remote_tx_max_octets 
+0x3098 006851 rtn 
+:      006855 le_parse_phy_req:
+0x3099 006856 branch le_send_phy_rsp 
+:      006860 le_parse_phy_update_ind:
+0x309a 006861 ifetch 2 ,contr 
+0x309b 006862 store 2 ,mem_le_new_m2s_phy 
+0x309c 006863 ifetch 2 ,contr 
+0x309d 006864 store 2 ,mem_le_instant 
+0x309e 006865 rtn blank 
+0x309f 006866 fetch 1 ,mem_le_state 
+0x30a0 006867 set1 lestate_update_phy ,pdata 
+0x30a1 006868 store 1 ,mem_le_state 
+0x30a2 006869 rtn 
+:      006874 le_send_terminate_ind_user_terminated:
+0x30a3 006875 arg error_remote_user_terminated_connection ,regc 
+:      006878 le_send_terminate_ind:
+0x30a4 006879 arg 2 ,rega 
+0x30a5 006880 arg ll_terminate_ind ,regb 
+0x30a6 006881 call le_fifo_malloc_tx_ll 
+0x30a7 006882 copy regc ,pdata 
+0x30a8 006883 istore 1 ,contw 
+0x30a9 006884 rtn 
+:      006888 le_send_enc_rsp:
+0x30aa 006889 arg mem_le_skds ,contw 
+0x30ab 006890 force 8 ,loopcnt 
+0x30ac 006891 call generate_random_loop 
+0x30ad 006892 arg mem_ccm_ivs ,contw 
+0x30ae 006893 force 4 ,loopcnt 
+0x30af 006894 call generate_random_loop 
+0x30b0 006895 arg 13 ,rega 
+0x30b1 006896 arg ll_enc_rsp ,regb 
+0x30b2 006897 call le_fifo_malloc_tx_ll 
+0x30b3 006898 fetch 8 ,mem_le_skds 
+0x30b4 006899 istore 8 ,contw 
+0x30b5 006900 fetch 4 ,mem_ccm_ivs 
+0x30b6 006901 istore 4 ,contw 
+0x30b7 006902 rtn 
+:      006906 le_send_start_enc_req:
+0x30b8 006907 jam flag_le_send_start_enc_req ,mem_le_enc_state 
+0x30b9 006908 arg ll_start_enc_req ,regb 
+0x30ba 006909 branch le_send_ll_one_lenth 
+:      006913 le_send_start_enc_rsp:
+0x30bb 006914 arg ll_start_enc_rsp ,regb 
+0x30bc 006915 branch le_send_ll_one_lenth 
+:      006920 le_send_unknown_rsp:
+0x30bd 006921 arg 2 ,rega 
+0x30be 006922 arg ll_unknown_rsp ,regb 
+0x30bf 006923 call le_fifo_malloc_tx_ll 
+0x30c0 006924 istorer regc ,1 ,contw 
+0x30c1 006925 rtn 
+:      006929 le_send_feature_rsp:
+0x30c2 006930 arg 9 ,rega 
+0x30c3 006931 arg ll_feature_rsp ,regb 
+0x30c4 006932 call le_fifo_malloc_tx_ll 
+0x30c5 006933 fetch 8 ,mem_le_local_feature 
+0x30c6 006934 or pdata ,fun_ll_feature_le_encryption ,pdata 
+0x30c7 006935 istore 8 ,contw 
+0x30c8 006936 rtn 
+:      006940 le_send_pause_enc_rsp:
+0x30c9 006941 arg ll_pause_enc_rsp ,regb 
+0x30ca 006942 branch le_send_ll_one_lenth 
+:      006946 le_send_version_ind:
+0x30cb 006947 arg 6 ,rega 
+0x30cc 006948 arg ll_version_ind ,regb 
+0x30cd 006949 call le_fifo_malloc_tx_ll 
+0x30ce 006950 fetch 5 ,mem_version 
+0x30cf 006951 istore 5 ,contw 
+0x30d0 006952 rtn 
+:      006955 le_send_reject_ind:
+0x30d1 006956 arg 2 ,rega 
+0x30d2 006957 arg ll_reject_ind ,regb 
+0x30d3 006958 call le_fifo_malloc_tx_ll 
+0x30d4 006959 setarg le_err_pin_or_key_missing 
+0x30d5 006960 istore 1 ,contw 
+0x30d6 006961 rtn 
+:      006965 le_send_ping_rsp:
+0x30d7 006966 arg ll_ping_rsp ,regb 
+0x30d8 006967 branch le_send_ll_one_lenth 
+:      006969 le_send_data_length_req:
+0x30d9 006970 arg ll_length_req ,regb 
+0x30da 006971 branch le_send_data_length 
+:      006973 le_send_data_length_res:
+0x30db 006974 arg ll_length_rsp ,regb 
+:      006975 le_send_data_length:
+0x30dc 006976 arg 9 ,rega 
+0x30dd 006977 call le_fifo_malloc_tx_ll 
+0x30de 006978 fetch 8 ,mem_local_rx_max_octets 
+0x30df 006979 istore 8 ,contw 
+0x30e0 006980 rtn 
+:      006984 le_send_phy_rsp:
+0x30e1 006985 arg 3 ,rega 
+0x30e2 006986 arg ll_phy_rsp ,regb 
+0x30e3 006987 call le_fifo_malloc_tx_ll 
+0x30e4 006988 fetch 1 ,mem_le_tx_phys 
+0x30e5 006989 and pdata ,0x07 ,pdata 
+0x30e6 006990 istore 1 ,contw 
+0x30e7 006991 fetch 1 ,mem_le_rx_phys 
+0x30e8 006992 and pdata ,0x07 ,pdata 
+0x30e9 006993 istore 1 ,contw 
+0x30ea 006994 rtn 
+:      006998 le_send_ll_one_lenth:
+0x30eb 006999 arg 1 ,rega 
+0x30ec 007000 branch le_fifo_malloc_tx_ll 
+:      007005 g24_dispatch:
+0x30ed 007006 bpatchx patch33_0 ,mem_patch33 
+0x30ee 007007 bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+0x30ef 007008 rtnmark0 mark_24g 
+0x30f0 007009 branch g24_transmit_dispatch 
+:      007014 g24_prep:
+0x30f1 007015 bpatchx patch33_1 ,mem_patch33 
+0x30f2 007016 disable enable_crc 
+0x30f3 007017 disable enable_white 
+0x30f4 007018 setarg 0x555555 
+0x30f5 007019 iforce crc24_init 
+0x30f6 007020 fetch 1 ,mem_24g_ch 
+0x30f7 007021 branch le_prep_next 
+:      007023 g24_receive_packet:
+0x30f8 007024 bpatchx patch33_2 ,mem_patch33 
+0x30f9 007025 fetch 1 ,mem_24g_rx_phy 
+0x30fa 007026 call le_enable_phy_by_pdata 
+0x30fb 007027 fetch 4 ,mem_24g_addr 
+0x30fc 007028 iforce access 
+0x30fd 007029 call set_sync_on 
+0x30fe 007030 fetcht 1 ,mem_24g_ch 
+0x30ff 007031 call le_rf_rx_enable 
+:      007032 g24_receive_rxon:
+0x3100 007033 call g24_prep 
+0x3101 007034 bmark0 mark_ble_lr ,g24_receive_nolr 
+0x3102 007035 pulse dewhiten_code_calc 
+0x3103 007036 nop 30 
+0x3104 007037 call g24_prep 
+:      007038 g24_receive_nolr:
+0x3105 007039 disable user3 
+0x3106 007040 enable decode_fec0 
+0x3107 007041 enable is_rx 
+0x3108 007042 disable is_tx 
+0x3109 007043 enable swfine 
+0x310a 007044 fetch 2 ,mem_24g_rx_window 
+0x310b 007045 iforce stop_watch 
+0x310c 007046 correlate null ,timeout 
+0x310d 007047 nbranch g24_sync_timeout ,sync 
+0x310e 007048 call rf_debug_rx_sync_line 
+0x310f 007049 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
+0x3110 007050 fetch 1 ,mem_24g_disable_fec1 
+0x3111 007051 nbranch g24_receive_skip_fec1 ,blank 
+0x3112 007052 disable decode_fec0 
+0x3113 007053 enable decode_fec1 
+:      007054 g24_receive_skip_fec1:
+0x3114 007055 enable enable_white 
+0x3115 007056 enable enable_crc 
+0x3116 007057 call g24_receive_byte 
+0x3117 007058 store 1 ,mem_24g_get_syncword_crc8 
+0x3118 007059 fetcht 1 ,mem_24g_syncword_crc8 
+0x3119 007060 isub temp ,null 
+0x311a 007061 nbranch g24_hec_error ,zero 
+0x311b 007062 bpatchx patch33_3 ,mem_patch33 
+0x311c 007063 disable user7 
+0x311d 007064 isolate1 mark_ble_lr ,mark 
+0x311e 007065 call g24_lr_receive_pdu_len ,true 
+0x311f 007066 branch g24_lr_len_error ,user7 
+0x3120 007067 call g24_receive_byte 
+0x3121 007068 store 1 ,mem_24g_rxbuf 
+0x3122 007069 bmark1 mark_24g_rxmode ,g24_receive_skip 
+0x3123 007070 fetch 1 ,mem_24g_rxbuf 
+0x3124 007071 fetcht 1 ,mem_24g_data_type 
+0x3125 007072 icompare bits_data ,temp 
+0x3126 007073 nbranch g24_type_error ,true 
+:      007074 g24_receive_skip:
+0x3127 007075 call g24_receive_byte 
+0x3128 007076 isolate1 mark_ble_lr ,mark 
+0x3129 007077 call g24_lr_receive_payload_len ,true 
+0x312a 007078 istore 1 ,contw 
+0x312b 007079 rshift3 pdata ,pdata 
+0x312c 007080 sub pdata ,0x1f ,null 
+0x312d 007081 nbranch g24_len_over_error ,positive 
+0x312e 007082 copy pdata ,loopcnt 
+0x312f 007083 branch g24rx_nopayload ,zero 
+:      007084 g24rx_loop:
+0x3130 007085 call g24_receive_byte 
+0x3131 007086 istore 1 ,contw 
+0x3132 007087 loop g24rx_loop 
+:      007088 g24rx_nopayload:
+0x3133 007089 bmark1 mark_24g_rxmode ,g24_receive_skip_rssi 
+0x3134 007090 copy contw ,rega 
+0x3135 007091 call g24_receive_byte 
+0x3136 007092 store 1 ,mem_rssi_hex_received 
+0x3137 007093 copy rega ,contw 
+:      007094 g24_receive_skip_rssi:
+0x3138 007095 parse demod ,bucket ,24 
+0x3139 007096 rshift32 pdata ,pdata 
+0x313a 007097 rshift16 pdata ,pdata 
+0x313b 007098 istore 3 ,contw 
+0x313c 007099 fetch 1 ,mem_24g_disable_fec1 
+0x313d 007100 nbranch g24_receive_skip_disable_fec1 ,blank 
+0x313e 007101 disable decode_fec1 
+:      007102 g24_receive_skip_next:
+0x313f 007103 isolate1 mark_24g_rxmode ,mark 
+0x3140 007104 call save_rssi_dec ,true 
+0x3141 007105 branch g24_crc_error ,crc_failed 
+0x3142 007106 call rf_debug_rx_crc_line 
+0x3143 007107 bpatchx patch33_4 ,mem_patch33 
+0x3144 007108 enable user3 
+0x3145 007109 call le_match_set_txfreq 
+0x3146 007110 rtnmark1 mark_24g_rxmode 
+0x3147 007111 fetch 1 ,mem_rssi_hex_received 
+0x3148 007112 fetcht 1 ,mem_rssi_hex_received_max_value 
+0x3149 007113 isub temp ,null 
+0x314a 007114 call copy_temp2pdata ,positive 
+0x314b 007115 branch rssi_signal 
+:      007117 g24_receive_skip_disable_fec1:
+0x314c 007118 disable decode_fec0 
+0x314d 007119 branch g24_receive_skip_next 
+:      007122 g24_lr_receive_pdu_len:
+0x314e 007123 call g24_receive_byte 
+0x314f 007124 sub pdata ,1 ,null 
+0x3150 007125 branch enable_user7 ,positive 
+0x3151 007126 increase -2 ,pdata 
+0x3152 007127 bmark1 mark_24g_rxmode ,g24_lr_receive_pdu_norssi 
+0x3153 007128 branch enable_user7 ,blank 
+0x3154 007129 increase -1 ,pdata 
+:      007130 g24_lr_receive_pdu_norssi:
+0x3155 007131 store 1 ,mem_temp 
+0x3156 007132 rtn 
+:      007134 g24_lr_receive_payload_len:
+0x3157 007135 and_into 0x07 ,pdata 
+0x3158 007136 fetcht 1 ,mem_temp 
+0x3159 007137 lshift3 temp ,temp 
+0x315a 007138 ior temp ,pdata 
+0x315b 007139 rtn 
+:      007141 g24_receive_byte:
+0x315c 007142 parse demod ,bucket ,8 
+0x315d 007143 rshift3 pwindow ,pdata 
+0x315e 007144 rtn 
+:      007146 g24_sync_timeout:
+0x315f 007147 jam err_sync_to ,mem_24g_off_type 
+0x3160 007148 isolate1 mark_24g_rxmode ,mark 
+0x3161 007149 call rssi_noise ,true 
+:      007150 g24_end_of_packet:
+0x3162 007151 bpatchx patch33_5 ,mem_patch33 
+0x3163 007152 call le_disable 
+0x3164 007153 disable encode_fec1 
+0x3165 007154 disable decode_fec1 
+0x3166 007155 branch end_of_packet 
+:      007157 g24_hec_error:
+0x3167 007158 jam err_hec ,mem_24g_off_type 
+0x3168 007159 branch g24_end_of_packet 
+:      007161 g24_lr_len_error:
+0x3169 007162 jam err_lr_len ,mem_24g_off_type 
+0x316a 007163 branch g24_end_of_packet 
+:      007165 g24_type_error:
+0x316b 007166 jam err_type ,mem_24g_off_type 
+0x316c 007167 branch g24_end_of_packet 
+:      007169 g24_len_over_error:
+0x316d 007170 jam err_len_over ,mem_24g_off_type 
+0x316e 007171 branch g24_end_of_packet 
+:      007173 g24_crc_error:
+0x316f 007174 jam err_crc ,mem_24g_off_type 
+0x3170 007175 branch g24_end_of_packet 
+:      007177 g24_set_freq_tx:
+0x3171 007178 call set_sync_on 
+0x3172 007179 fetcht 1 ,mem_24g_ch 
+0x3173 007180 branch set_freq_tx 
+:      007182 g24_transmit:
+0x3174 007183 bpatchx patch33_6 ,mem_patch33 
+0x3175 007184 fetch 1 ,mem_24g_tx_phy 
+0x3176 007185 call le_enable_phy_by_pdata 
+0x3177 007186 fetch 4 ,mem_24g_addr 
+0x3178 007187 iforce access 
+0x3179 007188 call g24_prep 
+0x317a 007189 call g24_set_freq_tx 
+0x317b 007190 set1 txgfsk ,radio_ctrl 
+0x317c 007191 enable encode_fec0 
+0x317d 007192 enable is_tx 
+0x317e 007193 disable is_rx 
+0x317f 007194 call rf_debug_tx_on_line 
+0x3180 007195 disable lr_s2en 
+0x3181 007196 bmark1 mark_ble_lr ,g24_transmit_lr 
+0x3182 007197 bmark1 mark_ble_2m ,g24_transmit_2m 
+0x3183 007198 rshift16 access ,pdata 
+0x3184 007199 rshift8 pdata ,pdata 
+0x3185 007200 rshift4 pdata ,pdata 
+0x3186 007201 inject mod ,40 
+:      007202 g24_transmit_packet:
+0x3187 007203 bpatchx patch33_7 ,mem_patch33 
+0x3188 007204 bmark1 mark_ble_lr ,g24_transmit_nolr 
+0x3189 007205 fetch 1 ,mem_24g_disable_fec1 
+0x318a 007206 nbranch g24_transmit_nolr ,blank 
+0x318b 007207 disable encode_fec0 
+0x318c 007208 enable encode_fec1 
+:      007209 g24_transmit_nolr:
+0x318d 007210 enable enable_white 
+0x318e 007211 enable enable_crc 
+0x318f 007212 fetch 1 ,mem_24g_txlen 
+0x3190 007213 iforce loopcnt 
+0x3191 007214 arg mem_24g_txpayload ,contr 
+:      007215 g24tr_loop:
+0x3192 007216 ifetch 1 ,contr 
+0x3193 007217 inject mod ,8 
+0x3194 007218 loop g24tr_loop 
+0x3195 007219 enable enable_parity 
+0x3196 007220 inject mod ,24 
+0x3197 007221 disable enable_parity 
+0x3198 007222 bmark0 mark_ble_lr ,g24_transmit_skip 
+0x3199 007223 disable enable_white 
+0x319a 007224 setarg 0 
+0x319b 007225 inject mod ,3 
+:      007226 g24_transmit_skip:
+0x319c 007227 until null ,tx_clear 
+0x319d 007228 nop 100 
+0x319e 007229 disable lr_s2en 
+0x319f 007230 disable encode_fec0 
+0x31a0 007231 fetch 1 ,mem_24g_disable_fec1 
+0x31a1 007232 nbranch g24_transmit_skip_disable_fec1 ,blank 
+0x31a2 007233 disable encode_fec1 
+:      007234 g24_transmit_skip_disable_fec1:
+0x31a3 007235 disable encode_fec3 
+0x31a4 007236 call set_sync_on 
+0x31a5 007237 branch rf_debug_tx_off_line 
+:      007239 g24_transmit_lr:
+0x31a6 007240 arg 10 ,loopcnt 
+:      007241 g24_transmit_lr_preamble_loop:
+0x31a7 007242 setarg 0x3c 
+0x31a8 007243 inject mod ,8 
+0x31a9 007244 loop g24_transmit_lr_preamble_loop 
+0x31aa 007245 disable encode_fec0 
+0x31ab 007246 enable encode_fec3 
+0x31ac 007247 rshift16 access ,pdata 
+0x31ad 007248 rshift16 pdata ,pdata 
+0x31ae 007249 rshift4 pdata ,pdata 
+0x31af 007250 inject mod ,32 
+0x31b0 007251 bmark1 mark_ble_lr_s8 ,g24_transmit_lr_s8 
+:      007252 g24_transmit_lr_s2:
+0x31b1 007253 setarg 1 
+0x31b2 007254 inject mod ,5 
+0x31b3 007255 enable lr_s2en 
+0x31b4 007256 branch g24_transmit_packet 
+:      007258 g24_transmit_lr_s8:
+0x31b5 007259 setarg 0 
+0x31b6 007260 inject mod ,5 
+0x31b7 007261 branch g24_transmit_packet 
+:      007263 g24_transmit_2m:
+0x31b8 007264 fetch 1 ,mem_system_clk 
+0x31b9 007265 rshift pdata ,loopcnt 
+:      007266 g24_transmit_2m_dealy:
+0x31ba 007267 nop 2 
+0x31bb 007268 loop g24_transmit_2m_dealy 
+0x31bc 007270 rshift16 access ,pdata 
+0x31bd 007271 rshift8 pdata ,pdata 
+0x31be 007272 rshift4 pdata ,temp 
+0x31bf 007273 copy temp ,pdata 
+0x31c0 007274 inject mod ,8 
+0x31c1 007275 copy temp ,pdata 
+0x31c2 007276 inject mod ,40 
+0x31c3 007277 branch g24_transmit_packet 
+:      007285 g24_transmit_prep:
+0x31c4 007286 bpatchx patch34_0 ,mem_patch34 
+0x31c5 007287 fetch 1 ,mem_24g_tx_phy 
+0x31c6 007288 bbit1 bit_le_coded_phy ,g24_lr_transmit_prep 
+0x31c7 007290 fetch 1 ,mem_24g_datalen 
+0x31c8 007291 increase 3 ,pdata 
+0x31c9 007292 store 1 ,mem_24g_txlen 
+0x31ca 007294 fetch 1 ,mem_24g_syncword_crc8 
+0x31cb 007295 store 1 ,mem_24g_txpayload 
+0x31cc 007297 fetch 1 ,mem_24g_data_type 
+0x31cd 007298 istore 1 ,contw 
+0x31ce 007300 fetch 1 ,mem_24g_datalen 
+:      007301 g24_transmit_prep_pdu:
+0x31cf 007302 lshift3 pdata ,pdata 
+0x31d0 007303 fetcht 1 ,mem_24g_pid 
+0x31d1 007304 and temp ,0x03 ,temp 
+0x31d2 007305 lshift temp ,temp 
+0x31d3 007306 ior temp ,pdata 
+0x31d4 007307 fetcht 1 ,mem_24g_no_ack 
+0x31d5 007308 iadd temp ,pdata 
+0x31d6 007309 istore 1 ,contw 
+0x31d7 007311 fetch 1 ,mem_24g_datalen 
+0x31d8 007312 iforce loopcnt 
+0x31d9 007313 arg mem_24g_txbuf ,contr 
+0x31da 007314 call memcpy 
+0x31db 007315 bpatchx patch34_1 ,mem_patch34 
+0x31dc 007317 rtnmark0 mark_24g_rxmode 
+0x31dd 007318 fetch 1 ,mem_rssi_hex 
+0x31de 007319 istore 1 ,contw 
+0x31df 007320 fetch 1 ,mem_24g_tx_phy 
+0x31e0 007321 rtnbit1 bit_le_coded_phy 
+0x31e1 007322 fetch 1 ,mem_24g_txlen 
+0x31e2 007323 increase 1 ,pdata 
+0x31e3 007324 store 1 ,mem_24g_txlen 
+0x31e4 007325 rtn 
+:      007327 g24_lr_transmit_prep:
+0x31e5 007329 fetch 1 ,mem_24g_datalen 
+0x31e6 007330 increase 4 ,pdata 
+0x31e7 007331 bmark0 mark_24g_rxmode ,g24_lr_transmit_prep_skip 
+0x31e8 007332 increase 1 ,pdata 
+:      007333 g24_lr_transmit_prep_skip:
+0x31e9 007334 store 1 ,mem_24g_txlen 
+0x31ea 007336 fetch 1 ,mem_24g_syncword_crc8 
+0x31eb 007337 store 1 ,mem_24g_txpayload 
+0x31ec 007339 fetch 1 ,mem_24g_txlen 
+0x31ed 007340 increase -2 ,pdata 
+0x31ee 007341 istore 1 ,contw 
+0x31ef 007343 fetch 1 ,mem_24g_data_type 
+0x31f0 007344 istore 1 ,contw 
+0x31f1 007345 setarg 0 
+0x31f2 007346 branch g24_transmit_prep_pdu 
+:      007348 g24_read_len_pid_crc:
+0x31f3 007349 bpatchx patch34_2 ,mem_patch34 
+0x31f4 007351 fetch 1 ,mem_24g_rxbuf + 1 
+0x31f5 007352 rshift3 pdata ,pdata 
+0x31f6 007353 store 1 ,mem_24g_rxdata_length 
+0x31f7 007355 increase 1 ,pdata 
+0x31f8 007356 arg mem_24g_rxbuf + 1 ,contr 
+0x31f9 007357 iadd contr ,contr 
+0x31fa 007358 ifetch 3 ,contr 
+0x31fb 007359 store 3 ,mem_24g_sta_crc 
+0x31fc 007361 fetch 1 ,mem_24g_rxbuf + 1 
+0x31fd 007362 rshift pdata ,pdata 
+0x31fe 007363 and pdata ,0x03 ,pdata 
+0x31ff 007364 store 1 ,mem_24g_sta_pid 
+0x3200 007365 rtn 
+:      007368 g24_ch:
+0x3201 007369 bpatchx patch34_3 ,mem_patch34 
+0x3202 007370 fetcht 1 ,mem_24g_current_ch_number 
+0x3203 007371 call g24_ch_map_size 
+0x3204 007372 storet 1 ,mem_24g_current_ch_number 
+0x3205 007373 rtn 
+:      007375 g24_ch_map_size:
+0x3206 007376 bpatchx patch34_4 ,mem_patch34 
+0x3207 007377 call g24_ch_calc 
+0x3208 007378 increase 1 ,temp 
+0x3209 007379 and_into 3 ,temp 
+0x320a 007380 rtn 
+:      007382 g24_ch_calc:
+0x320b 007383 bpatchx patch34_5 ,mem_patch34 
+0x320c 007384 fetch 1 ,mem_24g_addr 
+0x320d 007385 and_into 0x03 ,pdata 
+0x320e 007386 mul32 pdata ,4 ,rega 
+0x320f 007387 setarg mem_24g_ch_map1 
+0x3210 007388 iadd rega ,pdata 
+0x3211 007389 iadd temp ,contr 
+0x3212 007390 ifetch 1 ,contr 
+0x3213 007391 store 1 ,mem_24g_ch 
+0x3214 007392 rtn 
+:      007395 g24_update_addr_and_synccrc8:
+0x3215 007396 store 4 ,mem_24g_addr 
+0x3216 007398 bpatchx patch34_6 ,mem_patch34 
+:      007399 g24_syncword_crc8:
+0x3217 007400 arg 0 ,rega 
+0x3218 007401 arg 4 ,loopcnt 
+0x3219 007402 arg mem_24g_addr ,contr 
+:      007403 g24_syncword_crc8_loop:
+0x321a 007404 ifetch 1 ,contr 
+0x321b 007405 iadd rega ,rega 
+0x321c 007406 loop g24_syncword_crc8_loop 
+0x321d 007407 copy rega ,pdata 
+0x321e 007408 store 2 ,mem_24g_syncword 
+0x321f 007409 fetch 1 ,mem_24g_syncword 
+0x3220 007410 fetcht 1 ,mem_24g_syncword + 1 
+0x3221 007411 iadd temp ,pdata 
+0x3222 007412 store 1 ,mem_24g_syncword_crc8 
+0x3223 007413 rtn 
+:      007416 g24_timer_check:
+0x3224 007417 bpatchx patch34_7 ,mem_patch34 
+0x3225 007418 call disable_user 
+0x3226 007419 fetcht 4 ,mem_24g_tx_btclk 
+0x3227 007420 copy clkn_bt ,pdata 
+0x3228 007421 isub temp ,null 
+0x3229 007422 ncall g24_timer_timeout ,positive 
+0x322a 007423 copy pdata ,regb 
+0x322b 007424 fetch 4 ,mem_24g_tx_btclk 
+0x322c 007425 fetcht 1 ,mem_24g_interval 
+0x322d 007426 iadd temp ,temp 
+0x322e 007427 copy regb ,pdata 
+0x322f 007428 isub temp ,null 
+0x3230 007429 nrtn positive 
+0x3231 007430 set0 28 ,pdata 
+0x3232 007431 store 4 ,mem_24g_tx_btclk 
+0x3233 007432 branch enable_user 
+:      007434 g24_timer_timeout:
+0x3234 007435 rtn zero 
+0x3235 007436 set1 28 ,pdata 
+0x3236 007437 rtn 
+:      007439 g24_timer_init:
+0x3237 007440 setarg 0 
+0x3238 007441 store 4 ,mem_24g_tx_btclk 
+0x3239 007442 rtn 
+:      007450 g24_chmap_param_init:
+0x323a 007451 bpatchx patch35_0 ,mem_patch35 
+0x323b 007452 setsect 0 ,0x1300 
+0x323c 007453 setsect 1 ,0x1908b 
+0x323d 007454 setsect 2 ,0x36150 
+0x323e 007455 setsect 3 ,0x3d20 
+0x323f 007456 store 9 ,mem_24g_ch_map1 
+0x3240 007457 setsect 0 ,0x3a1a 
+0x3241 007458 setsect 1 ,0xc453 
+0x3242 007459 setsect 2 ,0xd312 
+0x3243 007460 setsect 3 ,0x1 
+0x3244 007461 istore 7 ,contw 
+0x3245 007462 fetch 1 ,mem_24g_ch_map_update 
+0x3246 007463 rtn blank 
+0x3247 007464 arg mem_24g_ch_update_map1 ,contr 
+0x3248 007465 arg mem_24g_ch_map1 ,contw 
+0x3249 007466 branch memcpy16 
+:      007474 g24_chamap_param_update:
+0x324a 007475 bpatchx patch35_1 ,mem_patch35 
+0x324b 007476 setarg 0x4e001e 
+0x324c 007477 store 3 ,mem_24g_ch_update_map1 + 1 
+0x324d 007478 setarg 0x032303 
+0x324e 007479 istore 3 ,contw 
+0x324f 007480 setarg 0x250642 
+0x3250 007481 istore 3 ,contw 
+0x3251 007482 setarg 0x094c06 
+0x3252 007483 istore 3 ,contw 
+0x3253 007484 setarg 0x3c0927 
+0x3254 007485 istore 3 ,contw 
+0x3255 007486 jam 1 ,mem_24g_ch_map_update 
+0x3256 007487 rtn 
+:      007490 g24_rx_window_init:
+0x3257 007491 bpatchx patch35_2 ,mem_patch35 
+0x3258 007492 arg 0x6978 ,temp 
+0x3259 007493 bmark1 mark_24g_rxmode ,g24_rx_window_store 
+0x325a 007494 arg 0x12c0 ,temp 
+0x325b 007495 fetch 1 ,mem_24g_rx_phy 
+0x325c 007496 bbit0 2 ,g24_rx_window_store 
+0x325d 007497 arg 0x2ee0 ,temp 
+:      007498 g24_rx_window_store:
+0x325e 007499 storet 2 ,mem_24g_rx_window 
+0x325f 007500 rtn 
+:      007502 g24_enable_1m:
+0x3260 007503 jam 0x01 ,mem_24g_rx_phy 
+0x3261 007504 jam 0x01 ,mem_24g_tx_phy 
+0x3262 007505 rtn 
+:      007507 g24_enable_2m:
+0x3263 007508 jam 0x02 ,mem_24g_rx_phy 
+0x3264 007509 jam 0x02 ,mem_24g_tx_phy 
+0x3265 007510 rtn 
+:      007534 g24_pair_param_init:
+0x3266 007535 bpatchx patch35_3 ,mem_patch35 
+0x3267 007536 jam 0x4e ,mem_24g_pair_ch 
+0x3268 007537 setarg 0x101520 
+0x3269 007538 store 3 ,mem_24g_pair_addr 
+0x326a 007539 setarg 0x05 
+0x326b 007540 branch istore_1_contw_rtn 
+:      007547 g24_pair_timeout_timer:
+0x326c 007548 arg mem_24g_pair_timeout ,regc 
+0x326d 007549 arg g24_stop_24g_mode ,regb 
+0x326e 007550 branch timer_single_step_2b 
+:      007552 g24_pair_start:
+0x326f 007553 set1 mark_24g ,mark 
+0x3270 007554 fetch 1 ,mem_24g_conn_sm 
+0x3271 007555 set0 state_24g_reconn ,pdata 
+0x3272 007556 set1 state_24g_pair ,pdata 
+0x3273 007557 store 1 ,mem_24g_conn_sm 
+0x3274 007558 setarg 0 
+0x3275 007559 store 2 ,mem_24g_reconn_timeout 
+0x3276 007560 fetch 2 ,mem_24g_pair_timeout_init 
+0x3277 007561 store 2 ,mem_24g_pair_timeout 
+0x3278 007562 jam 0 ,mem_24g_pair_no_ack 
+0x3279 007563 call g24_pair_sm_reinit 
+:      007564 g24_pair_init_param:
+0x327a 007565 jam 0 ,mem_24g_pid 
+0x327b 007566 fetch 1 ,mem_24g_pair_ch 
+0x327c 007567 store 1 ,mem_24g_ch 
+0x327d 007568 fetch 1 ,mem_24g_pair_tx_power 
+0x327e 007569 store 1 ,mem_tx_power 
+0x327f 007570 fetch 4 ,mem_24g_pair_addr 
+0x3280 007571 branch g24_update_addr_and_synccrc8 
+:      007574 g24_pair_dispatch:
+0x3281 007575 bpatchx patch35_4 ,mem_patch35 
+0x3282 007576 jam default_24g_device ,mem_24g_reconn_type 
+0x3283 007577 fetch 2 ,mem_24g_pair_count 
+0x3284 007578 increase 1 ,pdata 
+0x3285 007579 store 2 ,mem_24g_pair_count 
+0x3286 007580 fetch 1 ,mem_24g_pair_count 
+0x3287 007581 and pdata ,0xff ,pdata 
+0x3288 007582 nrtn blank 
+0x3289 007583 fetch 1 ,mem_24g_pair_sm 
+0x328a 007584 beq state_24g_pairing_success ,g24_pair_exit 
+0x328b 007585 beq state_24g_pairing_1 ,g24_pair_sm_1 
+0x328c 007586 beq state_24g_pairing_2 ,g24_pair_sm_2 
+0x328d 007587 beq state_24g_pairing_3 ,g24_pair_sm_3 
+0x328e 007588 beq state_24g_pairing_4 ,g24_pair_sm_4 
+0x328f 007589 rtn 
+:      007591 g24_pair_sm_1:
+0x3290 007592 jam datatype_attemp ,mem_24g_txbuf 
+0x3291 007593 branch g24_pair_sm_prep 
+:      007595 g24_pair_sm_2:
+0x3292 007596 fetch 1 ,mem_24g_pair_switch 
+0x3293 007597 branch g24_pair_sm_2_skip ,blank 
+0x3294 007598 fetch 4 ,mem_24g_device_addr 
+0x3295 007599 call g24_update_addr_and_synccrc8 
+:      007600 g24_pair_sm_2_skip:
+0x3296 007601 jam datatype_bind ,mem_24g_txbuf 
+0x3297 007602 branch g24_pair_sm_prep 
+:      007604 g24_pair_sm_3:
+0x3298 007605 jam datatype_config ,mem_24g_txbuf 
+0x3299 007606 fetch 1 ,mem_24g_pair_switch 
+0x329a 007607 branch g24_pair_sm_prep ,blank 
+0x329b 007608 fetch 4 ,mem_24g_receiver_addr 
+0x329c 007609 store 4 ,mem_24g_txbuf + 2 
+0x329d 007610 branch g24_pair_sm_common 
+:      007612 g24_pair_sm_4:
+0x329e 007613 jam datatype_ok ,mem_24g_txbuf 
+:      007614 g24_pair_sm_prep:
+0x329f 007615 fetch 4 ,mem_24g_device_addr 
+0x32a0 007616 store 4 ,mem_24g_txbuf + 2 
+:      007617 g24_pair_sm_common:
+0x32a1 007618 fetch 1 ,mem_24g_data_type 
+0x32a2 007619 and_into bits_data ,pdata 
+0x32a3 007620 store 1 ,mem_24g_txbuf + 1 
+0x32a4 007621 jam 0 ,mem_24g_txbuf + 6 
+0x32a5 007622 jam 7 ,mem_24g_datalen 
+0x32a6 007623 call g24_transmit_prep 
+0x32a7 007624 call g24_transmit_receive_ack 
+0x32a8 007625 nrtn sync 
+0x32a9 007626 nrtn user3 
+0x32aa 007627 call g24_txbuf_clear 
+0x32ab 007628 call g24_ackpayload_parse 
+0x32ac 007629 bpatchx patch35_5 ,mem_patch35 
+0x32ad 007630 fetch 1 ,mem_24g_pair_sm 
+0x32ae 007631 rtneq state_24g_pairing_success 
+0x32af 007632 beq state_24g_pairing_1 ,g24_pair_sm_1_waiting_ack 
+0x32b0 007633 beq state_24g_pairing_2 ,g24_pair_sm_2_waiting_ack 
+0x32b1 007634 beq state_24g_pairing_3 ,g24_pair_sm_3_waiting_ack 
+0x32b2 007635 beq state_24g_pairing_4 ,g24_pair_sm_4_waiting_ack 
+0x32b3 007636 rtn 
+:      007638 g24_pair_sm_reinit:
+0x32b4 007639 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+0x32b5 007640 fetch 1 ,mem_24g_pair_switch 
+0x32b6 007641 rtn blank 
+0x32b7 007642 jam state_24g_pairing_1 ,mem_24g_pair_sm 
+0x32b8 007643 rtn 
+:      007645 g24_pair_sm_1_waiting_ack:
+0x32b9 007646 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+0x32ba 007647 branch g24_transmit_abandon 
+:      007649 g24_pair_sm_2_waiting_ack:
+0x32bb 007650 fetch 1 ,mem_24g_pair_switch 
+0x32bc 007651 branch g24_pair_sm_2_waiting_ack_skip ,blank 
+0x32bd 007652 fetch 4 ,mem_24g_rxpayload + 2 
+0x32be 007653 store 4 ,mem_24g_receiver_addr 
+:      007654 g24_pair_sm_2_waiting_ack_skip:
+0x32bf 007655 jam state_24g_pairing_3 ,mem_24g_pair_sm 
+0x32c0 007656 branch g24_transmit_abandon 
+:      007658 g24_pair_sm_3_waiting_ack:
+0x32c1 007659 fetch 1 ,mem_24g_pair_switch 
+0x32c2 007660 branch g24_pair_sm_3_waiting_ack_skip ,blank 
+0x32c3 007661 fetch 4 ,mem_24g_rxpayload + 2 
+0x32c4 007662 fetcht 4 ,mem_24g_device_addr 
+0x32c5 007663 isub temp ,null 
+0x32c6 007664 nrtn zero 
+:      007665 g24_pair_sm_3_waiting_ack_skip:
+0x32c7 007666 jam state_24g_pairing_4 ,mem_24g_pair_sm 
+0x32c8 007667 branch g24_transmit_abandon 
+:      007669 g24_pair_sm_4_waiting_ack:
+0x32c9 007670 fetch 1 ,mem_24g_pair_switch 
+0x32ca 007671 branch g24_pair_sm_4_waiting_ack_skip ,blank 
+0x32cb 007672 fetch 4 ,mem_24g_rxpayload + 2 
+0x32cc 007673 fetcht 4 ,mem_24g_receiver_addr 
+0x32cd 007674 isub temp ,null 
+0x32ce 007675 nrtn zero 
+:      007676 g24_pair_sm_4_waiting_ack_skip:
+0x32cf 007677 jam state_24g_pairing_success ,mem_24g_pair_sm 
+0x32d0 007678 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+0x32d1 007679 call ui_ipc_send_event 
+0x32d2 007680 setarg 0 
+0x32d3 007681 store 2 ,mem_24g_pair_timeout 
+0x32d4 007682 fetch 4 ,mem_24g_rxpayload + 2 
+0x32d5 007683 call g24_update_addr_and_synccrc8 
+:      007684 g24_pair_exit:
+0x32d6 007685 fetch 1 ,mem_24g_conn_sm 
+0x32d7 007686 set0 state_24g_pair ,pdata 
+0x32d8 007687 store 1 ,mem_24g_conn_sm 
+0x32d9 007688 branch g24_transmit_abandon 
+:      007714 g24_bind_mode_enable:
+0x32da 007715 jam dongle_bind ,mem_24g_work_mode 
+0x32db 007716 jam clear_init ,mem_24g_mode_init 
+0x32dc 007717 rtn 
+:      007719 g24_bind_init:
+0x32dd 007720 fetch 1 ,mem_24g_mode_init 
+0x32de 007721 rtnbit1 dongle_bind 
+0x32df 007722 set1 dongle_bind ,pdata 
+0x32e0 007723 store 1 ,mem_24g_mode_init 
+0x32e1 007724 setarg 0 
+0x32e2 007725 store 3 ,mem_24g_device1_bind_step 
+0x32e3 007726 store 1 ,mem_24g_device1_bind_disable 
+0x32e4 007727 store 1 ,mem_24g_device2_bind_disable 
+0x32e5 007728 store 4 ,mem_24g_transmitter_addr 
+0x32e6 007729 jam 1 ,mem_24g_ackpayload_enable 
+0x32e7 007730 branch g24_pair_init_param 
+:      007733 g24_bind_ackpayload_prep:
+0x32e8 007734 jam 0x08 ,mem_24g_datalen 
+0x32e9 007735 arg mem_24g_bind_payload ,contr 
+0x32ea 007736 arg mem_24g_txbuf ,contw 
+0x32eb 007737 branch memcpy8 
+:      007740 g24_bind_data_process:
+0x32ec 007741 bpatchx patch35_6 ,mem_patch35 
+0x32ed 007742 call g24_rx_interrupt_clear 
+0x32ee 007743 call g24_receive_packet 
+0x32ef 007744 nbranch g24_rx_interrupt_clear ,user3 
+0x32f0 007745 call g24_bind_data_parse 
+0x32f1 007746 call g24_transmit_ack 
+0x32f2 007747 call g24_bind_device_status_check 
+0x32f3 007748 call dongle_kb_bind_soft_reset 
+0x32f4 007749 fetch 1 ,mem_24g_pair_switch 
+0x32f5 007750 rtn blank 
+0x32f6 007751 fetch 4 ,mem_24g_transmitter_addr 
+0x32f7 007752 rtn blank 
+0x32f8 007753 branch g24_update_addr_and_synccrc8 
+:      007755 g24_bind_data_error:
+0x32f9 007756 call g24_rx_interrupt_clear 
+0x32fa 007757 branch g24_end_of_packet 
+:      007759 g24_bind_data_parse:
+0x32fb 007760 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+0x32fc 007761 arg mem_24g_rxbuf ,contr 
+0x32fd 007762 arg mem_24g_rxdata_temp ,contw 
+0x32fe 007763 call memcpy8 
+0x32ff 007764 bpatchx patch35_7 ,mem_patch35 
+0x3300 007765 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x3301 007766 beq datatype_bind ,g24_bind_first_step 
+0x3302 007767 beq datatype_config ,g24_bind_second_step 
+0x3303 007768 beq datatype_ok ,g24_bind_third_step 
+0x3304 007769 beq datatype_attemp ,g24_data_attemp 
+0x3305 007770 rtn 
+:      007773 g24_bind_first_step:
+0x3306 007774 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3307 007775 beq datatype_device1 ,g24_bind_first_step_device1 
+0x3308 007776 beq datatype_device2 ,g24_bind_first_step_device2 
+0x3309 007777 rtn 
+:      007779 g24_bind_first_step_device1:
+0x330a 007780 fetch 1 ,mem_24g_device1_bind_disable 
+0x330b 007781 nrtn blank 
+0x330c 007782 jam 1 ,mem_24g_device1_bind_step 
+:      007783 g24_bind_dvc1_payload_cfg:
+0x330d 007784 jam datatype_device1 ,mem_24g_bind_payload 
+:      007785 g24_bind_payload_cfg:
+0x330e 007786 jam 0x80 ,mem_24g_bind_payload + 1 
+0x330f 007787 fetch 6 ,mem_24g_lap 
+0x3310 007788 store 6 ,mem_24g_bind_payload + 2 
+0x3311 007789 rtn 
+:      007791 g24_bind_first_step_device2:
+0x3312 007792 fetch 1 ,mem_24g_device2_bind_disable 
+0x3313 007793 nrtn blank 
+0x3314 007794 jam 1 ,mem_24g_device2_bind_step 
+:      007795 g24_bind_dvc2_payload_cfg:
+0x3315 007796 jam datatype_device2 ,mem_24g_bind_payload 
+0x3316 007797 branch g24_bind_payload_cfg 
+:      007800 g24_bind_second_step:
+0x3317 007801 fetch 1 ,mem_24g_pair_switch 
+0x3318 007802 branch g24_bind_second_step_skip ,blank 
+0x3319 007803 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x331a 007804 fetcht 4 ,mem_24g_lap 
+0x331b 007805 isub temp ,null 
+0x331c 007806 nrtn zero 
+:      007807 g24_bind_second_step_skip:
+0x331d 007808 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x331e 007809 beq datatype_device1 ,g24_bind_second_step_device1 
+0x331f 007810 beq datatype_device2 ,g24_bind_second_step_device2 
+0x3320 007811 rtn 
+:      007813 g24_bind_second_step_device1:
+0x3321 007814 fetch 1 ,mem_24g_device1_bind_disable 
+0x3322 007815 nrtn blank 
+0x3323 007816 fetch 1 ,mem_24g_device1_bind_step 
+0x3324 007817 beq 1 ,g24_bind_dvc1_step_set2 
+0x3325 007818 rtn 
+:      007819 g24_bind_dvc1_step_set2:
+0x3326 007820 jam 2 ,mem_24g_device1_bind_step 
+0x3327 007821 fetch 1 ,mem_24g_pair_switch 
+0x3328 007822 branch g24_bind_dvc1_payload_cfg ,blank 
+:      007823 g24_bind_dvc1_payload_cfg_transmitter_addr:
+0x3329 007824 jam datatype_device1 ,mem_24g_bind_payload 
+:      007825 g24_bind_payload_cfg_transmitter_addr:
+0x332a 007826 jam 0x80 ,mem_24g_bind_payload + 1 
+0x332b 007827 fetch 4 ,mem_24g_transmitter_addr 
+0x332c 007828 store 4 ,mem_24g_bind_payload + 2 
+0x332d 007829 branch enable_user 
+:      007831 g24_bind_second_step_device2:
+0x332e 007832 fetch 1 ,mem_24g_device2_bind_disable 
+0x332f 007833 nrtn blank 
+0x3330 007834 fetch 1 ,mem_24g_device2_bind_step 
+0x3331 007835 beq 1 ,g24_bind_dvc2_step_set2 
+0x3332 007836 rtn 
+:      007837 g24_bind_dvc2_step_set2:
+0x3333 007838 jam 2 ,mem_24g_device2_bind_step 
+0x3334 007839 fetch 1 ,mem_24g_pair_switch 
+0x3335 007840 branch g24_bind_dvc2_payload_cfg ,blank 
+0x3336 007841 jam datatype_device2 ,mem_24g_bind_payload 
+0x3337 007842 branch g24_bind_payload_cfg_transmitter_addr 
+:      007845 g24_bind_third_step:
+0x3338 007846 fetch 1 ,mem_24g_pair_switch 
+0x3339 007847 branch g24_bind_third_step_skip ,blank 
+0x333a 007848 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x333b 007849 fetcht 4 ,mem_24g_transmitter_addr 
+0x333c 007850 isub temp ,null 
+0x333d 007851 nrtn zero 
+:      007852 g24_bind_third_step_skip:
+0x333e 007853 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x333f 007854 beq datatype_device1 ,g24_bind_third_step_device1 
+0x3340 007855 beq datatype_device2 ,g24_bind_third_step_device2 
+0x3341 007856 rtn 
+:      007858 g24_bind_third_step_device1:
+0x3342 007859 fetch 1 ,mem_24g_device1_bind_disable 
+0x3343 007860 nrtn blank 
+0x3344 007861 fetch 1 ,mem_24g_device1_bind_step 
+0x3345 007862 beq 2 ,g24_bind_dvc1_step_success 
+0x3346 007863 rtn 
+:      007864 g24_bind_dvc1_step_success:
+0x3347 007865 jam 1 ,mem_24g_device1_bind_disable 
+0x3348 007867 call g24_bind_dvc1_payload_cfg 
+0x3349 007868 fetch 1 ,mem_24g_bind_device_status 
+0x334a 007869 or_into 0x01 ,pdata 
+0x334b 007870 store 1 ,mem_24g_bind_device_status 
+:      007871 g24_bind_exit:
+0x334c 007872 setarg 0 
+0x334d 007873 store 2 ,mem_24g_device1_bind_step 
+0x334e 007874 rtn 
+:      007876 g24_bind_third_step_device2:
+0x334f 007877 fetch 1 ,mem_24g_device2_bind_disable 
+0x3350 007878 nrtn blank 
+0x3351 007879 fetch 1 ,mem_24g_device2_bind_step 
+0x3352 007880 bne 0 ,g24_bind_dvc2_step_success 
+0x3353 007881 rtn 
+:      007882 g24_bind_dvc2_step_success:
+0x3354 007883 jam 1 ,mem_24g_device2_bind_disable 
+0x3355 007885 call g24_bind_dvc2_payload_cfg 
+0x3356 007886 fetch 1 ,mem_24g_bind_device_status 
+0x3357 007887 or_into 0x02 ,pdata 
+0x3358 007888 store 1 ,mem_24g_bind_device_status 
+0x3359 007889 call g24_bind_exit 
+0x335a 007890 branch dongle_g24_store_dvc2_bind_flag 
+:      007892 g24_binding_device_check:
+0x335b 007893 fetch 1 ,mem_24g_rxbuf + 3 
+0x335c 007894 beq datatype_device1 ,g24_binding_dvc1_status 
+0x335d 007895 beq datatype_device2 ,g24_binding_dvc2_status 
+0x335e 007896 rtn 
+:      007897 g24_binding_dvc1_status:
+0x335f 007898 fetch 1 ,mem_24g_bind_device_living 
+0x3360 007899 rtnbit0 0 
+:      007900 disable_user3:
+0x3361 007901 disable user3 
+0x3362 007902 rtn 
+:      007903 g24_binding_dvc2_status:
+0x3363 007904 fetch 1 ,mem_24g_bind_device_living 
+0x3364 007905 rtnbit0 1 
+0x3365 007906 branch disable_user3 
+:      007908 g24_binding_dvc1_living:
+0x3366 007909 fetch 1 ,mem_24g_pair_mode 
+0x3367 007910 nrtn blank 
+0x3368 007911 fetch 1 ,mem_24g_bind_device_living 
+0x3369 007912 or_into 0x01 ,pdata 
+0x336a 007913 store 1 ,mem_24g_bind_device_living 
+0x336b 007914 rtn 
+:      007916 g24_binding_dvc2_living:
+0x336c 007917 fetch 1 ,mem_24g_pair_mode 
+0x336d 007918 nrtn blank 
+0x336e 007919 fetch 1 ,mem_24g_bind_device_living 
+0x336f 007920 or_into 0x02 ,pdata 
+0x3370 007921 store 1 ,mem_24g_bind_device_living 
+0x3371 007922 rtn 
+:      007925 g24_bind_device_status_check:
+0x3372 007926 fetch 1 ,mem_24g_bind_device_status 
+0x3373 007927 rtn blank 
+:      007928 g24_bind_device_status:
+0x3374 007929 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3375 007930 beq datatype_device1 ,g24_binding_dvc1_living 
+0x3376 007931 beq datatype_device2 ,g24_binding_dvc2_living 
+0x3377 007932 rtn 
+:      007951 g24_receive_init:
+0x3378 007952 set1 mark_24g_rxmode ,mark 
+0x3379 007953 fetch 1 ,mem_tx_power 
+0x337a 007954 store 1 ,mem_tx_power_temp 
+0x337b 007955 branch rssi_receiver_buff_init 
+:      007957 g24_receive_dispatch:
+0x337c 007958 fetch 2 ,mem_cb_24g_receive_process 
+0x337d 007959 branch callback_func 
+:      007961 g24_ackpayload_prep:
+0x337e 007962 bpatchx patch36_0 ,mem_patch36 
+0x337f 007963 jam 0 ,mem_24g_datalen 
+0x3380 007964 fetch 1 ,mem_24g_ackpayload_enable 
+0x3381 007965 rtn blank 
+0x3382 007966 fetch 2 ,mem_cb_24g_ackpayload 
+0x3383 007967 branch callback_func 
+:      007970 g24_receive_packet_start:
+0x3384 007971 call g24_receive_transmit_ack 
+0x3385 007972 nbranch g24_rx_interrupt_clear ,user3 
+:      007973 g24_receive_packet_parse:
+0x3386 007974 call g24_receive_packet_parse_pid_crc 
+0x3387 007975 nbranch g24_rx_interrupt_clear ,user 
+0x3388 007976 fetch 1 ,mem_24g_rxdata_length 
+0x3389 007977 branch g24_rx_interrupt_clear ,blank 
+0x338a 007978 increase 2 ,pdata 
+0x338b 007979 iforce loopcnt 
+0x338c 007980 arg mem_24g_rxbuf ,contr 
+0x338d 007981 arg mem_24g_rxdata_temp ,contw 
+0x338e 007982 call memcpy 
+0x338f 007983 jam 0 ,mem_24g_mode_switch 
+0x3390 007984 fetch 1 ,mem_24g_pair_mode 
+0x3391 007985 call g24_enable_nodata_timer ,blank 
+0x3392 007986 bpatchx patch36_1 ,mem_patch36 
+0x3393 007987 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x3394 007988 beq datatype_device1 ,g24_data_device1 
+0x3395 007989 beq datatype_device2 ,g24_data_device2 
+0x3396 007990 beq datatype_attemp ,g24_data_receive_attemp 
+:      007991 g24_rx_interrupt_clear:
+0x3397 007992 bpatchx patch36_2 ,mem_patch36 
+0x3398 007993 arg mem_24g_rxbuf ,contw 
+0x3399 007994 arg 66 ,loopcnt 
+0x339a 007995 branch clear_mem 
+:      007997 g24_data_receive_attemp:
+0x339b 007998 call g24_bind_device_status 
+0x339c 007999 branch g24_data_attemp 
+:      008001 g24_data_device1:
+0x339d 008002 call g24_binding_dvc1_living 
+0x339e 008003 call g24_ch_timer_reinit 
+0x339f 008004 fetch 1 ,mem_24g_abort_packet 
+0x33a0 008005 fetcht 1 ,mem_24g_rxdata_temp 
+0x33a1 008006 isolate1 bit_abort ,temp 
+0x33a2 008007 setflag true ,0 ,pdata 
+0x33a3 008008 store 1 ,mem_24g_abort_packet 
+0x33a4 008009 beq 1 ,g24_data_attemp_device1_abort 
+0x33a5 008010 fetch 1 ,mem_24g_hop_packet 
+0x33a6 008011 fetcht 1 ,mem_24g_rxdata_temp 
+0x33a7 008012 isolate1 bit_hop ,temp 
+0x33a8 008013 setflag true ,0 ,pdata 
+0x33a9 008014 store 1 ,mem_24g_hop_packet 
+0x33aa 008015 fetch 2 ,mem_cb_24g_data_device1 
+0x33ab 008016 branch callback_func 
+:      008018 g24_data_device2:
+0x33ac 008019 call g24_binding_dvc2_living 
+0x33ad 008020 fetcht 1 ,mem_24g_rxdata_temp 
+0x33ae 008021 isolate1 bit_abort ,temp 
+0x33af 008022 branch g24_data_attemp_device2_abort ,true 
+0x33b0 008023 fetch 2 ,mem_cb_24g_data_device2 
+0x33b1 008024 branch callback_func 
+:      008026 g24_data_attemp_device1_abort:
+0x33b2 008027 fetch 1 ,mem_24g_device1_bind_disable 
+0x33b3 008028 nrtn blank 
+0x33b4 008029 jam 1 ,mem_24g_device1_bind_disable 
+0x33b5 008030 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x33b6 008031 branch g24_store_device1_addr 
+:      008032 g24_data_attemp_device2_abort:
+0x33b7 008033 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x33b8 008034 branch g24_store_device2_addr 
+:      008037 g24_receive_packet_parse_pid_crc:
+0x33b9 008038 call disable_user 
+0x33ba 008039 fetch 1 ,mem_24g_sta_pid 
+0x33bb 008040 fetcht 1 ,mem_24g_last_pid 
+0x33bc 008041 isub temp ,null 
+0x33bd 008042 ncall enable_user ,zero 
+0x33be 008043 fetch 1 ,mem_24g_sta_pid 
+0x33bf 008044 store 1 ,mem_24g_last_pid 
+0x33c0 008045 fetch 3 ,mem_24g_sta_crc 
+0x33c1 008046 fetcht 3 ,mem_24g_last_crc 
+0x33c2 008047 isub temp ,null 
+0x33c3 008048 ncall enable_user ,zero 
+0x33c4 008049 fetch 3 ,mem_24g_sta_crc 
+0x33c5 008050 store 3 ,mem_24g_last_crc 
+0x33c6 008051 rtn 
+:      008053 g24_receive_transmit_ack:
+0x33c7 008054 call g24_rx_interrupt_clear 
+0x33c8 008055 call g24_receive_packet 
+0x33c9 008056 nrtn user3 
+:      008057 g24_transmit_ack:
+0x33ca 008059 fetch 1 ,mem_24g_rxbuf 
+0x33cb 008060 store 1 ,mem_24g_data_type 
+0x33cc 008062 call g24_read_len_pid_crc 
+0x33cd 008064 fetch 1 ,mem_24g_rxbuf + 1 
+0x33ce 008065 isolate1 bit_ack_24g ,pdata 
+0x33cf 008066 branch g24tx_no_ack ,true 
+:      008067 g24tx_with_ack:
+0x33d0 008068 call g24_ackpayload_prep 
+0x33d1 008069 call g24_transmit_prep 
+0x33d2 008070 call g24_transmit 
+:      008071 g24tx_no_ack:
+0x33d3 008072 branch g24_end_of_packet 
+:      008075 g24_enable_nodata_timer:
+0x33d4 008076 jam 1 ,mem_24g_nodata_timer_enable 
+:      008077 g24_enable_nodata_timer_init:
+0x33d5 008078 setarg timer_nodata_delay 
+0x33d6 008079 arg g24_timer_nodata ,queue 
+0x33d7 008080 branch timer_init 
+:      008086 g24_mode_switch_init:
+0x33d8 008087 bpatchx patch36_3 ,mem_patch36 
+0x33d9 008088 jam 1 ,mem_24g_mode_switch 
+0x33da 008089 jam 0 ,mem_24g_time_slice 
+0x33db 008090 jam 0xff ,mem_24g_interval 
+0x33dc 008091 branch g24_timer_init 
+:      008093 g24_mode_switch_bind_work:
+0x33dd 008094 bpatchx patch36_4 ,mem_patch36 
+0x33de 008095 fetch 1 ,mem_24g_mode_switch 
+0x33df 008096 rtn blank 
+0x33e0 008097 call g24_timer_check 
+0x33e1 008098 nrtn user 
+0x33e2 008099 call g24_bind_mode_continue 
+0x33e3 008100 fetch 1 ,mem_24g_time_slice 
+0x33e4 008101 increase 1 ,pdata 
+0x33e5 008102 and_into 1 ,pdata 
+0x33e6 008103 store 1 ,mem_24g_time_slice 
+0x33e7 008104 beq 0 ,g24_work_mode_switch 
+0x33e8 008105 beq 1 ,g24_bind_mode_switch 
+0x33e9 008106 rtn 
+:      008108 g24_bind_mode_continue:
+0x33ea 008109 fetch 1 ,mem_24g_bind_mode_continue 
+0x33eb 008110 rtn blank 
+0x33ec 008111 increase -1 ,pdata 
+0x33ed 008112 store 1 ,mem_24g_bind_mode_continue 
+0x33ee 008113 rtn 
+:      008115 g24_work_mode_switch:
+0x33ef 008116 fetch 1 ,mem_24g_bind_mode_continue 
+0x33f0 008117 nrtn blank 
+0x33f1 008118 branch g24_switch_work_mode 
+:      008120 g24_bind_mode_switch:
+0x33f2 008121 fetch 1 ,mem_24g_bind_mode_continue 
+0x33f3 008122 nrtn blank 
+0x33f4 008123 branch g24_bind_mode_enable 
+:      008126 g24_mode_b_s_switch_init:
+0x33f5 008127 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0x33f6 008128 nrtn blank 
+0x33f7 008129 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+0x33f8 008130 call g24_mode_b_s_switch_start ,blank 
+0x33f9 008131 fetch 1 ,mem_24g_mode_b_s_switch_init 
+0x33fa 008132 rtnbit1 0 
+0x33fb 008133 set1 0 ,pdata 
+0x33fc 008134 store 1 ,mem_24g_mode_b_s_switch_init 
+0x33fd 008135 jam 1 ,mem_24g_mode_b_s_switch 
+0x33fe 008136 jam 0 ,mem_24g_b_s_time_slice 
+0x33ff 008137 setarg 0 
+0x3400 008138 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0x3401 008139 jam 0x60 ,mem_24g_interval 
+0x3402 008140 branch g24_timer_init 
+:      008142 g24_mode_switch_bind_search:
+0x3403 008143 bpatchx patch36_5 ,mem_patch36 
+0x3404 008144 fetch 1 ,mem_24g_work_mode 
+0x3405 008145 rtneq dongle_work 
+0x3406 008146 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+0x3407 008147 nrtn blank 
+0x3408 008148 fetch 1 ,mem_24g_mode_b_s_switch_exit 
+0x3409 008149 nrtn blank 
+0x340a 008150 fetch 1 ,mem_24g_mode_b_s_switch 
+0x340b 008151 rtn blank 
+0x340c 008152 fetch 1 ,mem_24g_bind_device_living 
+0x340d 008153 compare 3 ,pdata ,3 
+0x340e 008154 branch g24_mode_b_s_switch_exit ,true 
+0x340f 008155 call g24_timer_check 
+0x3410 008156 nrtn user 
+0x3411 008157 fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+0x3412 008158 increase 1 ,pdata 
+0x3413 008159 store 2 ,mem_24g_mode_b_s_switch_cnt 
+0x3414 008160 arg 0x7d0 ,temp 
+0x3415 008161 isub temp ,null 
+0x3416 008162 branch g24_mode_b_s_switch_exit ,positive 
+0x3417 008163 fetch 1 ,mem_24g_b_s_time_slice 
+0x3418 008164 increase 1 ,pdata 
+0x3419 008165 and_into 1 ,pdata 
+0x341a 008166 store 1 ,mem_24g_b_s_time_slice 
+0x341b 008167 beq 0 ,g24_search_mode_enable 
+0x341c 008168 beq 1 ,g24_bind_mode_enable 
+0x341d 008169 rtn 
+:      008171 g24_mode_switch_search:
+0x341e 008172 fetch 1 ,mem_24g_bind_mode_continue 
+0x341f 008173 nbranch g24_bind_mode_enable ,blank 
+0x3420 008174 branch g24_search_mode_enable 
+:      008176 g24_mode_b_s_switch_exit:
+0x3421 008177 jam 1 ,mem_24g_mode_b_s_switch_exit 
+0x3422 008178 branch g24_search_mode_enable 
+:      008180 g24_mode_b_s_switch_stop:
+0x3423 008181 jam 0 ,mem_24g_mode_b_s_switch 
+0x3424 008182 rtn 
+:      008183 g24_mode_b_s_switch_start:
+0x3425 008184 jam 1 ,mem_24g_mode_b_s_switch 
+0x3426 008185 rtn 
+:      008196 g24_work_init:
+0x3427 008197 bpatchx patch36_6 ,mem_patch36 
+0x3428 008198 fetch 1 ,mem_24g_mode_init 
+0x3429 008199 rtnbit1 dongle_work 
+0x342a 008200 set1 dongle_work ,pdata 
+0x342b 008201 store 1 ,mem_24g_mode_init 
+0x342c 008202 fetch 1 ,mem_tx_power_temp 
+0x342d 008203 store 1 ,mem_tx_power 
+0x342e 008204 jam 0 ,mem_24g_ackpayload_enable 
+0x342f 008205 jam 0 ,mem_usb_tx_enable 
+0x3430 008206 jam 1 ,mem_24g_abort_packet 
+0x3431 008207 jam 0 ,mem_24g_pid 
+0x3432 008208 fetch 4 ,mem_24g_lap 
+0x3433 008209 call g24_update_addr_and_synccrc8 
+0x3434 008210 call g24_ch 
+0x3435 008211 branch g24_rx_interrupt_clear 
+:      008214 g24_switch_work_mode:
+0x3436 008215 jam 0 ,mem_24g_ackpayload_enable 
+:      008216 g24_work_mode_enable:
+0x3437 008217 jam dongle_work ,mem_24g_work_mode 
+0x3438 008218 jam clear_init ,mem_24g_mode_init 
+0x3439 008219 rtn 
+:      008222 g24_work_mode_start:
+0x343a 008223 fetch 1 ,mem_24g_work_mode 
+0x343b 008224 rtnne dongle_work 
+0x343c 008225 call g24_work_init 
+0x343d 008226 call g24_ch_process 
+0x343e 008227 branch g24_receive_packet_start 
+:      008240 g24_bind_mode_auto:
+0x343f 008241 bpatchx patch36_7 ,mem_patch36 
+0x3440 008242 fetch 1 ,mem_24g_work_mode 
+0x3441 008243 rtnne dongle_bind 
+0x3442 008244 call g24_bind_init 
+0x3443 008245 call g24_bind_data_process 
+0x3444 008246 fetch 1 ,mem_24g_pair_mode 
+0x3445 008247 nrtn blank 
+0x3446 008248 fetch 1 ,mem_24g_bind_device_status 
+0x3447 008249 rtn blank 
+0x3448 008250 jam 0 ,mem_24g_mode_switch 
+0x3449 008251 call g24_switch_work_mode 
+0x344a 008252 call g24_enable_nodata_timer 
+0x344b 008253 branch g24_timer_init 
+:      008265 g24_search_mode_init:
+0x344c 008266 fetch 1 ,mem_24g_mode_init 
+0x344d 008267 rtnbit1 dongle_search 
+0x344e 008268 set1 dongle_search ,pdata 
+0x344f 008269 store 1 ,mem_24g_mode_init 
+0x3450 008270 fetch 1 ,mem_tx_power_temp 
+0x3451 008271 store 1 ,mem_tx_power 
+0x3452 008273 jam 0 ,mem_24g_time_slice 
+0x3453 008274 jam 1 ,mem_24g_ackpayload_enable 
+0x3454 008275 setarg 0 
+0x3455 008276 store 3 ,mem_rssi_noise_self_index 
+0x3456 008277 store 7 ,mem_24g_self_config_ch_once 
+0x3457 008278 call g24_receiver_addr_check 
+0x3458 008279 nrtn zero 
+0x3459 008280 fetch 1 ,mem_24g_current_ch_number 
+0x345a 008281 store 1 ,mem_24g_self_ch_number 
+0x345b 008282 fetch 1 ,mem_24g_ch 
+0x345c 008283 store 1 ,mem_24g_self_last_ch 
+0x345d 008284 rtn 
+:      008287 g24_search_mode_auto:
+0x345e 008288 bpatchx patch37_0 ,mem_patch37 
+0x345f 008289 fetch 1 ,mem_24g_work_mode 
+0x3460 008290 rtnne dongle_search 
+0x3461 008291 call g24_search_mode_init 
+0x3462 008292 call g24_auto_addr_ch_search 
+0x3463 008293 call g24_receive_transmit_ack 
+0x3464 008294 nbranch g24_rx_interrupt_clear ,user3 
+0x3465 008296 call g24_receiver_addr_check 
+0x3466 008297 call g24_receive_packet_parse ,zero 
+0x3467 008299 fetch 1 ,mem_24g_abort_packet 
+0x3468 008300 call g24_mode_b_s_switch_stop ,blank 
+0x3469 008303 jam dongle_work ,mem_24g_work_mode 
+0x346a 008304 fetch 1 ,mem_24g_mode_init 
+0x346b 008305 set1 dongle_work ,pdata 
+0x346c 008306 store 1 ,mem_24g_mode_init 
+0x346d 008308 fetch 1 ,mem_24g_ackpayload_enable 
+0x346e 008309 sub pdata ,2 ,null 
+0x346f 008310 ncall g24_ackpayload_disable ,zero 
+0x3470 008312 call g24_rx_interrupt_clear 
+0x3471 008313 call g24_enable_nodata_timer 
+0x3472 008314 call g24_receiver_addr_check 
+0x3473 008315 branch g24_self_ch_num_reinit ,zero 
+0x3474 008316 fetch 4 ,mem_24g_addr 
+0x3475 008317 fetcht 4 ,mem_24g_device2_addr 
+0x3476 008318 isub temp ,null 
+0x3477 008319 branch g24_device2_ch_num_reinit ,zero 
+0x3478 008320 fetch 4 ,mem_24g_addr 
+0x3479 008321 fetcht 4 ,mem_24g_device1_addr 
+0x347a 008322 isub temp ,null 
+0x347b 008323 branch g24_device1_ch_num_reinit ,zero 
+0x347c 008324 rtn 
+:      008327 g24_self_ch_num_reinit:
+0x347d 008328 fetch 1 ,mem_24g_self_ch_number 
+:      008329 g24_current_ch_num_reinit:
+0x347e 008330 store 1 ,mem_24g_current_ch_number 
+0x347f 008331 rtn 
+:      008333 g24_device2_ch_num_reinit:
+0x3480 008334 fetch 1 ,mem_24g_device2_ch_number 
+0x3481 008335 branch g24_current_ch_num_reinit 
+:      008337 g24_device1_ch_num_reinit:
+0x3482 008338 fetch 1 ,mem_24g_device1_ch_number 
+0x3483 008339 branch g24_current_ch_num_reinit 
+:      008342 g24_auto_addr_ch_search:
+0x3484 008343 bpatchx patch37_1 ,mem_patch37 
+0x3485 008344 fetch 1 ,mem_24g_time_slice 
+0x3486 008345 increase 1 ,pdata 
+0x3487 008346 and_into 3 ,pdata 
+0x3488 008347 store 1 ,mem_24g_time_slice 
+0x3489 008349 beq 0 ,g24_auto_bind_config_device2 
+0x348a 008350 beq 1 ,g24_auto_bind_config_self 
+0x348b 008351 beq 2 ,g24_auto_bind_config_device1 
+0x348c 008352 beq 3 ,g24_auto_bind_config_self 
+0x348d 008353 rtn 
+:      008355 g24_auto_bind_config_device1:
+0x348e 008356 call g24_bind_dvc1_payload_cfg 
+0x348f 008357 fetch 4 ,mem_24g_device1_addr 
+0x3490 008358 branch g24_auto_addr_ch_search ,blank 
+0x3491 008359 call g24_update_addr_and_synccrc8 
+0x3492 008360 fetch 1 ,mem_24g_device1_config_ch_once 
+0x3493 008361 call g24_device1_config_ch_once ,blank 
+0x3494 008362 fetch 1 ,mem_24g_device1_last_ch 
+0x3495 008363 store 1 ,mem_24g_ch 
+0x3496 008364 fetcht 1 ,mem_rssi_noise_device1_index 
+0x3497 008365 fetchr rega ,2 ,mem_rssi_noise_device1_buffer_ptr 
+0x3498 008366 call rssi_store 
+0x3499 008367 storet 1 ,mem_rssi_noise_device1_index 
+0x349a 008368 call rssi_average 
+0x349b 008369 storet 1 ,mem_rssi_noise_device1_avg 
+0x349c 008370 sub temp ,rssi_thresh_noise ,null 
+0x349d 008371 nrtn positive 
+0x349e 008372 fetcht 1 ,mem_24g_device1_ch_number 
+0x349f 008373 call g24_ch_map_size 
+0x34a0 008374 storet 1 ,mem_24g_device1_ch_number 
+0x34a1 008375 store 1 ,mem_24g_device1_last_ch 
+0x34a2 008376 rtn 
+:      008378 g24_device1_config_ch_once:
+0x34a3 008379 jam 1 ,mem_24g_device1_config_ch_once 
+0x34a4 008380 arg 0 ,temp 
+0x34a5 008381 call g24_ch_calc 
+0x34a6 008382 store 1 ,mem_24g_device1_last_ch 
+0x34a7 008383 rtn 
+:      008385 g24_auto_bind_config_device2:
+0x34a8 008386 call g24_bind_dvc2_payload_cfg 
+0x34a9 008387 fetch 4 ,mem_24g_device2_addr 
+0x34aa 008388 branch g24_auto_addr_ch_search ,blank 
+0x34ab 008389 call g24_update_addr_and_synccrc8 
+0x34ac 008390 fetch 1 ,mem_24g_device2_config_ch_once 
+0x34ad 008391 call g24_device2_config_ch_once ,blank 
+0x34ae 008392 fetch 1 ,mem_24g_device2_last_ch 
+0x34af 008393 store 1 ,mem_24g_ch 
+0x34b0 008394 fetcht 1 ,mem_rssi_noise_device2_index 
+0x34b1 008395 fetchr rega ,2 ,mem_rssi_noise_device2_buffer_ptr 
+0x34b2 008396 call rssi_store 
+0x34b3 008397 storet 1 ,mem_rssi_noise_device2_index 
+0x34b4 008398 call rssi_average 
+0x34b5 008399 storet 1 ,mem_rssi_noise_device2_avg 
+0x34b6 008400 sub temp ,rssi_thresh_noise ,null 
+0x34b7 008401 nrtn positive 
+0x34b8 008402 fetcht 1 ,mem_24g_device2_ch_number 
+0x34b9 008403 call g24_ch_map_size 
+0x34ba 008404 storet 1 ,mem_24g_device2_ch_number 
+0x34bb 008405 store 1 ,mem_24g_device2_last_ch 
+0x34bc 008406 rtn 
+:      008408 g24_device2_config_ch_once:
+0x34bd 008409 jam 1 ,mem_24g_device2_config_ch_once 
+0x34be 008410 arg 0 ,temp 
+0x34bf 008411 call g24_ch_calc 
+0x34c0 008412 store 1 ,mem_24g_device2_last_ch 
+0x34c1 008413 rtn 
+:      008415 g24_auto_bind_config_self:
+0x34c2 008416 call g24_bind_dvc1_payload_cfg 
+0x34c3 008417 fetch 4 ,mem_24g_lap 
+0x34c4 008418 call g24_update_addr_and_synccrc8 
+0x34c5 008419 fetch 1 ,mem_24g_self_config_ch_once 
+0x34c6 008420 call g24_self_config_ch_once ,blank 
+0x34c7 008421 fetch 1 ,mem_24g_self_last_ch 
+0x34c8 008422 store 1 ,mem_24g_ch 
+0x34c9 008423 fetcht 1 ,mem_rssi_noise_self_index 
+0x34ca 008424 fetchr rega ,2 ,mem_rssi_noise_self_buffer_ptr 
+0x34cb 008425 call rssi_store 
+0x34cc 008426 storet 1 ,mem_rssi_noise_self_index 
+0x34cd 008427 call rssi_average 
+0x34ce 008428 storet 1 ,mem_rssi_noise_self_avg 
+0x34cf 008429 sub temp ,rssi_thresh_noise ,null 
+0x34d0 008430 nrtn positive 
+0x34d1 008431 fetcht 1 ,mem_24g_self_ch_number 
+0x34d2 008432 call g24_ch_map_size 
+0x34d3 008433 storet 1 ,mem_24g_self_ch_number 
+0x34d4 008434 store 1 ,mem_24g_self_last_ch 
+0x34d5 008435 rtn 
+:      008437 g24_self_config_ch_once:
+0x34d6 008438 jam 1 ,mem_24g_self_config_ch_once 
+0x34d7 008439 fetch 1 ,mem_24g_self_last_ch 
+0x34d8 008440 store 1 ,mem_24g_ch 
+0x34d9 008441 rtn 
+:      008444 g24_ackpayload_disable:
+0x34da 008445 jam 0 ,mem_24g_ackpayload_enable 
+0x34db 008446 rtn 
+:      008449 g24_receiver_addr_check:
+0x34dc 008450 fetch 4 ,mem_24g_addr 
+0x34dd 008451 fetcht 4 ,mem_24g_lap 
+0x34de 008452 isub temp ,null 
+0x34df 008453 rtn 
+:      008465 g24_nodata_process:
+0x34e0 008466 fetch 1 ,mem_24g_ackpayload_enable 
+0x34e1 008467 rtneq 2 
+0x34e2 008468 fetch 1 ,mem_24g_nodata_timer_enable 
+0x34e3 008469 rtn blank 
+0x34e4 008470 arg g24_timer_nodata ,queue 
+0x34e5 008471 call timer_check 
+0x34e6 008472 nrtn blank 
+0x34e7 008473 jam 0 ,mem_24g_nodata_timer_enable 
+0x34e8 008474 jam 0 ,mem_24g_bind_mode_continue 
+0x34e9 008475 call g24_mode_b_s_switch_init 
+:      008477 g24_search_mode_enable:
+0x34ea 008478 bpatchx patch37_2 ,mem_patch37 
+0x34eb 008479 jam dongle_search ,mem_24g_work_mode 
+0x34ec 008480 jam clear_init ,mem_24g_mode_init 
+0x34ed 008481 branch g24_rx_interrupt_clear 
+:      008487 g24_ch_process:
+0x34ee 008488 bpatchx patch37_3 ,mem_patch37 
+0x34ef 008489 fetch 1 ,mem_24g_abort_packet 
+0x34f0 008490 beq 1 ,rssi_noise_monitor 
+0x34f1 008491 fetch 1 ,mem_24g_hop_packet 
+0x34f2 008492 beq 1 ,g24_ch_receive_hop_pac 
+0x34f3 008493 fetcht 4 ,mem_24g_hop_btclk 
+0x34f4 008494 copy clkn_bt ,pdata 
+0x34f5 008495 isub temp ,null 
+0x34f6 008496 ncall g24_timer_timeout ,positive 
+0x34f7 008497 copy pdata ,regb 
+0x34f8 008498 fetch 4 ,mem_24g_hop_btclk 
+0x34f9 008499 fetcht 1 ,mem_24g_hop_interval 
+0x34fa 008500 iadd temp ,temp 
+0x34fb 008501 copy regb ,pdata 
+0x34fc 008502 isub temp ,null 
+0x34fd 008503 nrtn positive 
+0x34fe 008504 set0 28 ,pdata 
+0x34ff 008505 store 4 ,mem_24g_hop_btclk 
+0x3500 008506 jam 1 ,mem_24g_abort_packet 
+0x3501 008507 branch g24_ch 
+:      008509 g24_ch_receive_hop_pac:
+0x3502 008510 jam 0 ,mem_24g_hop_packet 
+0x3503 008511 branch g24_ch 
+:      008513 g24_ch_timer_reinit:
+0x3504 008514 copy clkn_bt ,pdata 
+0x3505 008515 store 4 ,mem_24g_hop_btclk 
+0x3506 008516 rtn 
+:      008521 g24_reconn_timeout_timer:
+0x3507 008522 arg mem_24g_reconn_timeout ,regc 
+0x3508 008523 arg g24_stop_24g_mode ,regb 
+0x3509 008524 branch timer_single_step_2b 
+:      008527 g24_reconn_start:
+0x350a 008528 bpatchx patch37_4 ,mem_patch37 
+0x350b 008529 set1 mark_24g ,mark 
+0x350c 008530 fetch 1 ,mem_24g_conn_sm 
+0x350d 008531 set0 state_24g_pair ,pdata 
+0x350e 008532 set1 state_24g_reconn ,pdata 
+0x350f 008533 store 1 ,mem_24g_conn_sm 
+0x3510 008534 fetch 1 ,mem_24g_fast_conn_enable 
+0x3511 008535 branch g24_reconn_receiver_addr ,blank 
+0x3512 008536 fetch 1 ,mem_24g_reconn_type 
+0x3513 008537 beq fast_conn_and_receiver ,g24_reconn_fast_conn 
+0x3514 008538 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn 
+0x3515 008539 beq receiver_and_3_0_addr ,g24_reconn_device_3_0_addr 
+0x3516 008540 beq pair_and_3_0_addr ,g24_reconn_device_3_0_addr 
+:      008541 g24_reconn_fast_conn:
+0x3517 008542 fetch 1 ,mem_24g_pair_tx_power 
+0x3518 008543 store 1 ,mem_tx_power 
+0x3519 008544 fetcht 1 ,mem_24g_fast_conn_temp_ch 
+0x351a 008545 storet 1 ,mem_24g_current_ch_number 
+0x351b 008546 fetch 4 ,mem_24g_fast_conn_addr 
+0x351c 008547 call g24_ch_syncword_crc8_init 
+0x351d 008548 storet 1 ,mem_24g_fast_conn_temp_ch 
+0x351e 008549 rtn 
+:      008551 g24_reconn_receiver_addr:
+0x351f 008552 jam tx_power_3db ,mem_tx_power 
+0x3520 008553 fetcht 1 ,mem_24g_receiver_temp_ch 
+0x3521 008554 storet 1 ,mem_24g_current_ch_number 
+0x3522 008555 fetch 4 ,mem_24g_receiver_addr 
+0x3523 008556 call g24_ch_syncword_crc8_init 
+0x3524 008557 storet 1 ,mem_24g_receiver_temp_ch 
+0x3525 008558 rtn 
+:      008560 g24_reconn_device_3_0_addr:
+0x3526 008561 jam tx_power_3db ,mem_tx_power 
+0x3527 008562 fetcht 1 ,mem_24g_device_temp_ch 
+0x3528 008563 storet 1 ,mem_24g_current_ch_number 
+0x3529 008564 fetch 4 ,mem_24g_device_addr 
+0x352a 008565 call g24_ch_syncword_crc8_init 
+0x352b 008566 storet 1 ,mem_24g_device_temp_ch 
+0x352c 008567 rtn 
+:      008569 g24_store_receiver_addr:
+0x352d 008570 fetch 4 ,mem_24g_rxpayload + 2 
+0x352e 008571 rtn blank 
+0x352f 008572 store 4 ,mem_24g_receiver_addr 
+:      008573 g24_ch_syncword_crc8_init:
+0x3530 008574 call g24_update_addr_and_synccrc8 
+0x3531 008575 branch g24_ch 
+:      008578 g24_reconn_dispatch:
+0x3532 008579 bpatchx patch37_5 ,mem_patch37 
+0x3533 008580 fetch 2 ,mem_24g_reconn_count 
+0x3534 008581 arg 0x01f8 ,temp 
+0x3535 008582 iand temp ,pdata 
+0x3536 008583 branch g24_reconn_dispatch_next ,blank 
+0x3537 008584 fetch 2 ,mem_24g_reconn_count 
+0x3538 008585 increase 1 ,pdata 
+0x3539 008586 store 2 ,mem_24g_reconn_count 
+0x353a 008587 rtn 
+:      008589 g24_reconn_dispatch_next:
+0x353b 008590 call g24_reconn_data_prep 
+0x353c 008591 call g24_transmit_receive_ack 
+0x353d 008592 nbranch g24_reconn_device_fail ,sync 
+0x353e 008593 nbranch g24_reconn_device_fail ,user3 
+0x353f 008594 call g24_ackpayload_parse 
+0x3540 008595 fetch 1 ,mem_device_option 
+0x3541 008596 beq dvc_op_mouse ,mouse_g24_reconn_dispatch_set 
+0x3542 008597 fetch 4 ,mem_24g_pair_addr 
+0x3543 008598 fetcht 4 ,mem_24g_addr 
+0x3544 008599 isub temp ,null 
+0x3545 008600 branch g24_pair_start ,zero 
+:      008601 g24_reconn_dispatch_success:
+0x3546 008602 fetch 4 ,mem_24g_device_addr 
+0x3547 008603 fetcht 4 ,mem_24g_addr 
+0x3548 008604 isub temp ,null 
+0x3549 008605 call g24_store_receiver_addr ,zero 
+0x354a 008606 fetch 1 ,mem_24g_conn_sm 
+0x354b 008607 set0 state_24g_reconn ,pdata 
+0x354c 008608 store 1 ,mem_24g_conn_sm 
+0x354d 008609 setarg 0 
+0x354e 008610 store 2 ,mem_24g_pair_timeout 
+0x354f 008611 store 2 ,mem_24g_reconn_count 
+0x3550 008612 store 2 ,mem_24g_reconn_timeout 
+0x3551 008613 jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+0x3552 008614 call ui_ipc_send_event 
+:      008615 g24_txbuf_clear:
+0x3553 008616 bpatchx patch37_6 ,mem_patch37 
+0x3554 008617 arg 32 ,loopcnt 
+0x3555 008618 arg mem_24g_txbuf ,contw 
+0x3556 008619 branch memset0 
+:      008621 g24_reconn_data_prep:
+0x3557 008622 jam datatype_attemp ,mem_24g_txbuf 
+0x3558 008623 fetch 1 ,mem_24g_data_type 
+0x3559 008624 store 1 ,mem_24g_txbuf + 1 
+0x355a 008625 fetch 4 ,mem_24g_device_addr 
+0x355b 008626 store 4 ,mem_24g_txbuf + 2 
+0x355c 008627 jam 6 ,mem_24g_datalen 
+0x355d 008628 branch g24_transmit_prep 
+:      008630 g24_reconn_device_fail:
+0x355e 008631 bpatchx patch37_7 ,mem_patch37 
+0x355f 008632 fetch 1 ,mem_24g_fast_conn_enable 
+0x3560 008633 branch g24_ch ,blank 
+0x3561 008634 fetch 2 ,mem_24g_reconn_count 
+0x3562 008635 increase 1 ,pdata 
+0x3563 008636 store 2 ,mem_24g_reconn_count 
+0x3564 008637 isolate1 9 ,pdata 
+0x3565 008638 fetch 1 ,mem_24g_reconn_type 
+0x3566 008639 beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+0x3567 008640 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+0x3568 008641 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+0x3569 008642 beq pair_and_3_0_addr ,g24_reconn_pair_and_3_0 
+0x356a 008643 branch g24_reconn_receiver_addr 
+:      008646 g24_reconn_fast_conn_and_receiver:
+0x356b 008647 branch g24_reconn_receiver_addr ,true 
+0x356c 008648 branch g24_reconn_fast_conn 
+:      008650 g24_reconn_fast_conn_and_3_0:
+0x356d 008651 branch g24_reconn_device_3_0_addr ,true 
+0x356e 008652 branch g24_reconn_fast_conn 
+:      008654 g24_reconn_receiver_and_3_0:
+0x356f 008655 branch g24_reconn_device_3_0_addr ,true 
+0x3570 008656 branch g24_reconn_receiver_addr 
+:      008658 g24_reconn_pair_and_3_0:
+0x3571 008659 branch g24_reconn_device_3_0_addr ,true 
+0x3572 008660 branch g24_pair_init_param 
+:      008670 g24_data_attemp:
+0x3573 008671 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3574 008672 beq datatype_device1 ,g24_data_attemp_device1 
+0x3575 008673 beq datatype_device2 ,g24_data_attemp_device2 
+0x3576 008674 rtn 
+:      008675 g24_data_attemp_device1:
+0x3577 008676 fetch 1 ,mem_24g_device1_bind_disable 
+0x3578 008677 nrtn blank 
+0x3579 008678 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x357a 008679 store 4 ,mem_24g_transmitter_addr 
+:      008680 g24_store_device1_addr:
+0x357b 008681 store 4 ,mem_24g_device1_addr 
+0x357c 008682 rtn 
+:      008683 g24_data_attemp_device2:
+0x357d 008684 fetch 1 ,mem_24g_device2_bind_disable 
+0x357e 008685 nrtn blank 
+0x357f 008686 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x3580 008687 store 4 ,mem_24g_transmitter_addr 
+:      008688 g24_store_device2_addr:
+0x3581 008689 store 4 ,mem_24g_device2_addr 
+0x3582 008690 rtn 
+:      008700 rssi_store:
+0x3583 008701 bpatchx patch38_0 ,mem_patch38 
+0x3584 008702 copy rega ,pdata 
+0x3585 008703 iadd temp ,contw 
+0x3586 008704 fetch 1 ,mem_rssi 
+0x3587 008705 istore 1 ,contw 
+0x3588 008706 increase 1 ,temp 
+0x3589 008707 fetch 1 ,mem_rssi_buff_index 
+0x358a 008708 iand temp ,temp 
+0x358b 008709 rtn 
+:      008711 rssi_average:
+0x358c 008712 bpatchx patch38_1 ,mem_patch38 
+0x358d 008713 fetch 1 ,mem_rssi_buff_index 
+0x358e 008714 increase 1 ,pdata 
+0x358f 008715 store 2 ,mem_loopcnt 
+0x3590 008716 copy pdata ,loopcnt 
+0x3591 008717 copy rega ,contr 
+0x3592 008718 arg 0 ,pdata 
+:      008719 rssi_average_loop:
+0x3593 008720 ifetcht 1 ,contr 
+0x3594 008721 iadd temp ,pdata 
+0x3595 008722 loop rssi_average_loop 
+0x3596 008723 fetcht 2 ,mem_loopcnt 
+0x3597 008724 idiv temp 
+0x3598 008725 call wait_div_end 
+0x3599 008726 quotient temp 
+0x359a 008727 rtnmark1 mark_24g_rxmode 
+0x359b 008728 copy temp ,pdata 
+0x359c 008729 rtnmark0 mark_24g 
+0x359d 008730 call bcd 
+0x359e 008731 copy pdata ,temp 
+0x359f 008732 rtn 
+:      008734 save_rssi_dec:
+0x35a0 008735 branch save_rssi 
+:      008745 rssi_transmitter_buff_init:
+0x35a1 008746 fetch 2 ,mem_rssi_signal_buf_ptr 
+0x35a2 008747 branch rssi_buff_clear 
+:      008749 rssi_signal:
+0x35a3 008750 copy pdata ,rega 
+0x35a4 008751 fetcht 1 ,mem_rssi_signal_index 
+0x35a5 008752 fetch 2 ,mem_rssi_signal_buf_ptr 
+0x35a6 008753 iadd temp ,contw 
+0x35a7 008754 copy rega ,pdata 
+0x35a8 008755 istore 1 ,contw 
+0x35a9 008756 increase 1 ,temp 
+0x35aa 008757 fetch 1 ,mem_rssi_buff_index 
+0x35ab 008758 iand temp ,temp 
+0x35ac 008759 storet 1 ,mem_rssi_signal_index 
+0x35ad 008760 rtn 
+:      008770 rssi_receiver_buff_init:
+0x35ae 008771 fetch 2 ,mem_rssi_noise_buffer_ptr 
+0x35af 008772 call rssi_buff_clear 
+0x35b0 008773 fetch 2 ,mem_rssi_noise_self_buffer_ptr 
+0x35b1 008774 call rssi_buff_clear 
+0x35b2 008775 fetch 2 ,mem_rssi_noise_device1_buffer_ptr 
+0x35b3 008776 call rssi_buff_clear 
+0x35b4 008777 fetch 2 ,mem_rssi_noise_device2_buffer_ptr 
+:      008778 rssi_buff_clear:
+0x35b5 008779 rtn blank 
+0x35b6 008780 copy pdata ,contw 
+0x35b7 008781 fetch 1 ,mem_rssi_buff_index 
+0x35b8 008782 increase 1 ,pdata 
+0x35b9 008783 copy pdata ,loopcnt 
+0x35ba 008784 branch clear_mem 
+:      008787 rssi_noise:
+0x35bb 008788 call save_rssi_dec 
+0x35bc 008789 rtn blank 
+0x35bd 008790 fetcht 1 ,mem_rssi_noise_index 
+0x35be 008791 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+0x35bf 008792 call rssi_store 
+0x35c0 008793 storet 1 ,mem_rssi_noise_index 
+0x35c1 008794 rtn 
+:      008797 rssi_noise_monitor:
+0x35c2 008798 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+0x35c3 008799 call rssi_average 
+0x35c4 008800 storet 1 ,mem_rssi_noise_avg 
+0x35c5 008801 sub temp ,rssi_thresh_noise ,null 
+0x35c6 008802 nrtn positive 
+0x35c7 008803 branch g24_ch 
+:      008811 g24_transmit_init:
+0x35c8 008812 fetch 4 ,mem_24g_lap 
+0x35c9 008813 store 4 ,mem_24g_device_addr 
+0x35ca 008814 branch rssi_transmitter_buff_init 
+:      008816 g24_interval_param_4ms:
+0x35cb 008817 setarg g24_4ms_interval_param 
+0x35cc 008818 store 3 ,mem_24g_short_sleep_set 
+0x35cd 008819 setarg 0x100c0c 
+0x35ce 008820 store 3 ,mem_24g_interval 
+0x35cf 008821 setarg 0x00bb80 
+0x35d0 008822 store 3 ,mem_24g_long_sleep_set 
+0x35d1 008823 jam 5 ,mem_24g_fast_hop_count 
+0x35d2 008824 rtn 
+:      008826 g24_interval_param_8ms:
+0x35d3 008827 setarg g24_8ms_interval_param 
+0x35d4 008828 store 3 ,mem_24g_short_sleep_set 
+0x35d5 008829 setarg 0x1c1919 
+0x35d6 008830 store 3 ,mem_24g_interval 
+0x35d7 008831 setarg 0x017700 
+0x35d8 008832 store 3 ,mem_24g_long_sleep_set 
+0x35d9 008833 jam 11 ,mem_24g_fast_hop_count 
+0x35da 008834 rtn 
+:      008837 g24_transmit_dispatch:
+0x35db 008838 fetch 1 ,mem_24g_conn_sm 
+0x35dc 008839 bbit1 state_24g_pair ,g24_pair_dispatch 
+0x35dd 008840 bbit1 state_24g_reconn ,g24_reconn_dispatch 
+0x35de 008841 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x35df 008842 beq g24_tx_timer_int_enable ,g24_transmit_by_interrupt 
+:      008843 g24_transmit_no_interrupt:
+0x35e0 008844 bpatchx patch38_2 ,mem_patch38 
+0x35e1 008845 call g24_txdata_prep 
+0x35e2 008846 nbranch g24_nodata_transmit ,user 
+:      008847 g24_transmit_start:
+0x35e3 008848 bpatchx patch38_3 ,mem_patch38 
+0x35e4 008849 call g24_transmit_process 
+0x35e5 008850 call power_ctrl_start 
+0x35e6 008851 fetch 1 ,mem_device_option 
+0x35e7 008852 beq dvc_op_mouse ,mouse_24g_transmit_start 
+:      008853 g24_transmit_start_next:
+0x35e8 008854 fetch 8 ,mem_24g_long_sleep_set 
+0x35e9 008855 store 8 ,mem_24g_enter_hibernate 
+0x35ea 008856 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0x35eb 008857 store 2 ,mem_24g_long_sleep_param_update_timer 
+0x35ec 008858 fetch 2 ,mem_cb_24g_transmit_short_sleep 
+0x35ed 008859 branch callback_func 
+:      008861 g24_short_sleep:
+0x35ee 008862 bpatchx patch38_4 ,mem_patch38 
+0x35ef 008863 call g24_lpm_wait 
+0x35f0 008864 nrtn user 
+0x35f1 008865 call g24_setgpio_lpm_before 
+0x35f2 008866 call clear_wake 
+0x35f3 008867 fetch 3 ,mem_24g_short_sleep_set 
+0x35f4 008868 branch g24_long_seep2 
+:      008870 g24_long_sleep:
+0x35f5 008871 bpatchx patch38_5 ,mem_patch38 
+0x35f6 008872 call g24_lpm_wait 
+0x35f7 008873 nrtn user 
+0x35f8 008874 call g24_setgpio_lpm_before 
+0x35f9 008875 fetch 8 ,mem_24g_enter_hibernate 
+:      008876 g24_long_seep2:
+0x35fa 008877 call clk2lpo 
+0x35fb 008878 storet 4 ,mem_sleep_counter 
+0x35fc 008879 branch lpm_sleep 
+:      008883 g24_txdata_prep:
+0x35fd 008884 call g24_package_data 
+0x35fe 008885 nrtn user 
+0x35ff 008886 branch g24_transmit_prep 
+:      008889 g24_package_data:
+0x3600 008890 fetch 2 ,mem_cb_24g_transmit_data 
+0x3601 008891 call callback_func 
+0x3602 008892 branch g24_accumulate_data ,user 
+0x3603 008893 fetch 7 ,mem_24g_txbuf + 1 
+0x3604 008894 rtn blank 
+0x3605 008895 branch enable_user 
+:      008897 g24_accumulate_data:
+0x3606 008898 jam 0 ,mem_24g_abort_pac 
+0x3607 008899 add rega ,1 ,pdata 
+0x3608 008900 store 1 ,mem_24g_datalen 
+0x3609 008901 call g24_transmit_rf_ctrl_clear 
+0x360a 008902 store 1 ,mem_24g_txbuf 
+0x360b 008903 copy regb ,contr 
+0x360c 008904 copy rega ,loopcnt 
+0x360d 008905 branch memcpy 
+:      008907 g24_transmit_rf_ctrl_clear:
+0x360e 008908 fetch 1 ,mem_24g_data_type 
+0x360f 008909 and_into bits_data ,pdata 
+0x3610 008910 store 1 ,mem_24g_data_type 
+0x3611 008911 rtn 
+:      008920 g24_transmit_process:
+0x3612 008921 setarg 0 
+0x3613 008922 store 1 ,mem_24g_retry 
+0x3614 008923 store 2 ,mem_24g_retransmit 
+:      008924 g24_transmit_loop:
+0x3615 008925 bpatchx patch38_6 ,mem_patch38 
+0x3616 008926 call g24_transmit_receive_ack 
+0x3617 008927 fetch 1 ,mem_24g_no_ack 
+0x3618 008928 beq no_ack_24g ,g24_transmit_no_ack 
+0x3619 008929 nbranch g24_retransmit ,sync 
+0x361a 008930 nbranch g24_retransmit ,user3 
+0x361b 008931 call g24_ackpayload_parse 
+0x361c 008932 fetch 1 ,mem_device_option 
+0x361d 008933 sub pdata ,dvc_op_mouse ,null 
+0x361e 008934 call mouse_24g_transmit_callback ,zero 
+:      008935 g24_transmit_no_ack:
+0x361f 008936 call power_ctrl_pac_succ_incrs 
+:      008937 g24_transmit_next_packet:
+0x3620 008938 call g24_txbuf_clear 
+0x3621 008939 fetch 1 ,mem_24g_pid 
+0x3622 008940 increase 1 ,pdata 
+0x3623 008941 store 1 ,mem_24g_pid 
+0x3624 008942 call g24_hop_enable_packet 
+:      008943 g24_transmit_abandon:
+0x3625 008944 bpatchx patch38_7 ,mem_patch38 
+0x3626 008945 setarg 0 
+0x3627 008946 store 1 ,mem_24g_ensure 
+0x3628 008947 store 2 ,mem_24g_txfail_cnt 
+0x3629 008948 rtn 
+:      008950 g24_transmit_receive_ack:
+0x362a 008951 bpatchx patch39_0 ,mem_patch39 
+0x362b 008952 disable user3 
+0x362c 008953 call g24_transmit 
+0x362d 008954 fetch 1 ,mem_24g_no_ack 
+0x362e 008955 beq no_ack_24g ,g24_end_of_packet 
+0x362f 008956 force 0 ,radio_ctrl 
+0x3630 008957 fetch 4 ,mem_24g_addr 
+0x3631 008958 iforce access 
+0x3632 008959 fetcht 1 ,mem_last_freq 
+0x3633 008960 call set_freq_rx 
+0x3634 008961 call rf_rx_enable 
+0x3635 008962 call g24_receive_rxon 
+0x3636 008963 call g24_end_of_packet ,user3 
+0x3637 008964 rtn 
+:      008966 g24_retransmit:
+0x3638 008967 bpatchx patch39_1 ,mem_patch39 
+0x3639 008968 fetch 1 ,mem_device_option 
+0x363a 008969 beq dvc_op_mouse ,mouse_g24_retransmit 
+:      008970 g24_retransmit0:
+0x363b 008971 fetch 1 ,mem_24g_abort_pac 
+0x363c 008972 nrtn blank 
+0x363d 008973 fetch 2 ,mem_24g_txfail_cnt 
+0x363e 008974 increase 1 ,pdata 
+0x363f 008975 store 2 ,mem_24g_txfail_cnt 
+0x3640 008976 fetch 1 ,mem_24g_txfail_cnt + 1 
+0x3641 008977 bbit1 4 ,g24_tx_attempt_fail 
+0x3642 008978 call g24_transmit_hop_process 
+0x3643 008979 fetch 2 ,mem_24g_retransmit 
+0x3644 008980 increase 1 ,pdata 
+0x3645 008981 store 2 ,mem_24g_retransmit 
+0x3646 008982 branch g24_transmit_loop 
+:      008984 g24_ackpayload_parse:
+0x3647 008985 bpatchx patch39_2 ,mem_patch39 
+0x3648 008986 call g24_read_len_pid_crc 
+0x3649 008987 fetch 1 ,mem_24g_rxdata_length 
+0x364a 008988 rtn blank 
+0x364b 008989 iforce loopcnt 
+0x364c 008990 arg mem_24g_rxbuf + 2 ,contr 
+0x364d 008991 arg mem_24g_rxpayload ,contw 
+0x364e 008992 branch memcpy 
+:      008995 g24_tx_attempt_fail:
+0x364f 008996 bpatchx patch39_3 ,mem_patch39 
+0x3650 008997 setarg 0 
+0x3651 008998 store 2 ,mem_24g_txfail_cnt 
+0x3652 008999 jam 1 ,mem_24g_attempt_fail_flag 
+:      009000 g24_stop_24g_mode:
+0x3653 009001 jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
+0x3654 009002 branch ui_ipc_send_event 
+:      009012 g24_transmit_hop_process:
+0x3655 009013 bpatchx patch39_4 ,mem_patch39 
+0x3656 009014 fetch 1 ,mem_device_option 
+0x3657 009015 beq dvc_op_mouse ,mouse_g24_transmit_hop_process 
+:      009016 g24_transmit_hop_process_next:
+0x3658 009017 fetcht 1 ,mem_24g_retry 
+0x3659 009018 fetch 1 ,mem_24g_fast_hop_count 
+0x365a 009019 isub temp ,null 
+0x365b 009020 nbranch g24_tx_fast_hop ,positive 
+0x365c 009021 increase 1 ,temp 
+0x365d 009022 storet 1 ,mem_24g_retry 
+0x365e 009023 fetch 1 ,mem_24g_fast_hop_count 
+0x365f 009024 beq 5 ,g24_transmit_hop_process_4ms 
+0x3660 009025 fetch 1 ,mem_24g_retry 
+0x3661 009026 beq 6 ,g24_hop_ch_disable 
+0x3662 009027 beq 12 ,g24_hop_ch_disable 
+0x3663 009028 rtn 
+:      009031 g24_transmit_hop_process_4ms:
+0x3664 009032 fetch 1 ,mem_24g_retry 
+0x3665 009033 beq 3 ,g24_hop_ch_disable 
+0x3666 009034 beq 6 ,g24_hop_ch_disable 
+0x3667 009035 rtn 
+:      009039 g24_hop_ch_enable:
+:      009044 g24_txpayload_type_update:
+0x3668 009045 bmark1 mark_ble_lr ,g24_lr_type_update 
+0x3669 009046 store 1 ,mem_24g_txpayload + offset_data_type 
+0x366a 009047 rtn 
+:      009048 g24_lr_type_update:
+0x366b 009049 store 1 ,mem_24g_txpayload + offset_lr_data_type 
+0x366c 009050 rtn 
+:      009052 g24_hop_enable_packet:
+0x366d 009053 fetch 1 ,mem_24g_data_type 
+0x366e 009054 rtnbit0 bit_hop 
+:      009055 g24_hop_ch_disable:
+0x366f 009056 fetch 1 ,mem_24g_data_type 
+0x3670 009057 set0 bit_hop ,pdata 
+0x3671 009058 store 1 ,mem_24g_data_type 
+0x3672 009059 call g24_txpayload_type_update 
+0x3673 009060 call power_ctrl_pac_succ_decrs 
+0x3674 009061 branch g24_ch 
+:      009063 g24_tx_fast_hop:
+0x3675 009064 fetch 4 ,mem_24g_addr 
+0x3676 009065 fetcht 4 ,mem_24g_fast_conn_addr 
+0x3677 009066 isub temp ,null 
+0x3678 009067 branch g24_ch ,zero 
+0x3679 009068 call power_ctrl_txpower_incrs 
+0x367a 009069 call power_ctrl_pac_succ_decrs 
+0x367b 009070 branch g24_ch 
+:      009088 g24_search_receiver:
+0x367c 009089 fetch 2 ,mem_cb_24g_search_receiver 
+0x367d 009090 branch callback_func 
+:      009092 g24_nodata_transmit:
+0x367e 009093 fetch 1 ,mem_24g_abort_pac 
+0x367f 009094 call g24_send_abort_packet ,blank 
+0x3680 009095 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x3681 009096 rtneq g24_tx_timer_int_enable 
+0x3682 009097 call g24_search_receiver 
+0x3683 009098 fetch 2 ,mem_cb_24g_transmit_long_sleep 
+0x3684 009099 branch callback_func 
+:      009101 g24_send_abort_packet:
+0x3685 009102 bpatchx patch39_5 ,mem_patch39 
+0x3686 009103 jam 1 ,mem_24g_abort_pac 
+0x3687 009104 jam type_ms ,mem_24g_data_type 
+0x3688 009105 call g24_transmit_rf_ctrl_clear 
+0x3689 009106 store 1 ,mem_24g_txbuf 
+0x368a 009107 setarg 0 
+0x368b 009108 store 7 ,mem_24g_txbuf + 1 
+0x368c 009109 fetch 4 ,mem_24g_device_addr 
+0x368d 009110 store 4 ,mem_24g_txbuf + 8 
+0x368e 009111 jam 12 ,mem_24g_datalen 
+0x368f 009112 fetch 1 ,mem_24g_data_type 
+0x3690 009113 set1 bit_abort ,pdata 
+0x3691 009114 store 1 ,mem_24g_data_type 
+0x3692 009115 call g24_transmit_prep 
+0x3693 009116 branch g24_transmit_start 
+:      009120 g24_lpm_wait:
+0x3694 009121 bpatchx patch39_6 ,mem_patch39 
+0x3695 009122 enable user 
+0x3696 009123 call lpo_calibration 
+0x3697 009124 fetch 3 ,mem_clks_per_lpo 
+0x3698 009125 branch disable_user ,blank 
+0x3699 009126 fetch 1 ,mem_lpm_mode 
+0x369a 009127 branch disable_user ,blank 
+0x369b 009128 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x369c 009129 beq g24_tx_timer_int_enable ,disable_user 
+0x369d 009130 rtn 
+:      009132 g24_setgpio_lpm_before:
+0x369e 009133 fetch 2 ,mem_cb_24g_lpm_before 
+0x369f 009134 branch callback_func 
+:      009147 g24_transmit_by_interrupt:
+0x36a0 009148 call g24_timer_check 
+0x36a1 009149 nrtn user 
+0x36a2 009150 call g24_interval_calibrate 
+0x36a3 009151 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36a4 009152 increase 1 ,pdata 
+0x36a5 009153 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36a6 009154 fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+0x36a7 009155 isub temp ,null 
+0x36a8 009156 call g24_transmit_by_interrupt_exit ,zero 
+0x36a9 009157 branch g24_transmit_no_interrupt 
+:      009160 g24_transmit_by_interrupt_exit:
+0x36aa 009161 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+0x36ab 009162 setarg 0 
+0x36ac 009163 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36ad 009164 setarg 100 
+0x36ae 009165 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+:      009166 g24_interval_min:
+0x36af 009167 jam 0 ,mem_24g_pac_index 
+0x36b0 009168 fetch 1 ,mem_24g_interval_min 
+:      009169 g24_interval_store:
+0x36b1 009170 store 1 ,mem_24g_interval 
+0x36b2 009171 rtn 
+:      009172 g24_interval_max:
+0x36b3 009173 fetch 1 ,mem_24g_interval_max 
+0x36b4 009174 branch g24_interval_store 
+:      009176 g24_interval_calibrate:
+0x36b5 009177 fetch 1 ,mem_24g_pac_index 
+0x36b6 009178 increase 1 ,pdata 
+0x36b7 009179 store 1 ,mem_24g_pac_index 
+0x36b8 009180 beq 4 ,g24_interval_max 
+0x36b9 009181 beq 5 ,g24_interval_min 
+0x36ba 009182 rtn 
+:      009184 g24_transmit_by_interrupt_enable:
+0x36bb 009185 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+0x36bc 009186 setarg 0 
+0x36bd 009187 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0x36be 009188 rtn 
+:      009198 g24_factory_check:
+0x36bf 009199 arg 2 ,loopcnt 
+0x36c0 009200 arg mem_24g_addr ,contr 
+:      009201 pdata_0xff_check:
+0x36c1 009202 call enable_user 
+0x36c2 009203 setarg 0xffff 
+:      009204 pdata_0xff_check_loop:
+0x36c3 009205 ifetcht 2 ,contr 
+0x36c4 009206 isub temp ,null 
+0x36c5 009207 ncall disable_user ,zero 
+0x36c6 009208 loop pdata_0xff_check_loop 
+0x36c7 009209 rtn 
+:      009219 power_ctrl_start:
+0x36c8 009220 bpatchx patch39_7 ,mem_patch39 
+0x36c9 009221 fetch 1 ,mem_power_ctrl_disable 
+0x36ca 009222 nrtn blank 
+0x36cb 009223 fetch 2 ,mem_ui_state_map 
+0x36cc 009224 rtnbit1 ui_state_ble_adv 
+0x36cd 009225 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+0x36ce 009226 call rssi_average 
+0x36cf 009227 storet 1 ,mem_rssi_avg_received 
+0x36d0 009228 fetch 1 ,mem_rssi_dis_max_24g 
+0x36d1 009229 bmark1 mark_24g ,power_ctrl_start_next 
+0x36d2 009230 fetch 1 ,mem_rssi_dis_max_ble 
+:      009231 power_ctrl_start_next:
+0x36d3 009232 isub temp ,null 
+0x36d4 009233 nbranch power_ctrl_txpower_incrs_force ,positive 
+0x36d5 009234 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36d6 009235 sub pdata ,2 ,null 
+0x36d7 009236 nbranch power_ctrl_txpower_decrs_check ,positive 
+0x36d8 009237 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36d9 009238 beq 0 ,power_ctrl_txpower_incrs 
+0x36da 009239 rtn 
+:      009241 power_ctrl_txpower_decrs_check:
+0x36db 009242 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36dc 009243 fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+0x36dd 009244 isub temp ,null 
+0x36de 009245 nrtn zero 
+0x36df 009246 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+:      009247 power_ctrl_txpower_decrs:
+0x36e0 009248 fetcht 1 ,mem_rssi_avg_received 
+0x36e1 009249 fetch 1 ,mem_rssi_dis_min_24g 
+0x36e2 009250 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+0x36e3 009251 fetch 1 ,mem_rssi_dis_min_ble 
+:      009252 power_ctrl_txpower_decrs_next:
+0x36e4 009253 isub temp ,null 
+0x36e5 009254 nrtn positive 
+0x36e6 009255 fetch 1 ,mem_power_ctrl_level 
+0x36e7 009256 beq 0 ,power_ctrl_decrs_level0 
+0x36e8 009257 increase -1 ,pdata 
+0x36e9 009258 store 1 ,mem_power_ctrl_level 
+0x36ea 009259 beq 2 ,power_ctrl_decrs_level2 
+0x36eb 009260 beq 1 ,power_ctrl_decrs_level1 
+0x36ec 009261 branch power_ctrl_decrs_level0 
+:      009263 power_ctrl_txpower_incrs_force:
+0x36ed 009264 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+:      009265 power_ctrl_txpower_incrs:
+0x36ee 009266 fetch 1 ,mem_power_ctrl_level 
+0x36ef 009267 beq 3 ,power_ctrl_incrs_level3 
+0x36f0 009268 increase 1 ,pdata 
+0x36f1 009269 store 1 ,mem_power_ctrl_level 
+0x36f2 009270 beq 1 ,power_ctrl_incrs_level1 
+0x36f3 009271 beq 2 ,power_ctrl_incrs_level2 
+:      009272 power_ctrl_incrs_level3:
+0x36f4 009273 jam tx_power_5db ,mem_tx_power 
+0x36f5 009274 rtn 
+:      009276 power_ctrl_decrs_level2:
+:      009277 power_ctrl_incrs_level2:
+0x36f6 009278 jam tx_power_3db ,mem_tx_power 
+0x36f7 009279 rtn 
+:      009281 power_ctrl_decrs_level1:
+:      009282 power_ctrl_incrs_level1:
+0x36f8 009283 jam tx_power_0db ,mem_tx_power 
+0x36f9 009284 rtn 
+:      009286 power_ctrl_decrs_level0:
+0x36fa 009287 jam tx_power_f5db ,mem_tx_power 
+0x36fb 009288 rtn 
+:      009295 power_ctrl_pac_succ_incrs:
+0x36fc 009296 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36fd 009297 increase 1 ,pdata 
+0x36fe 009298 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x36ff 009299 rtn 
+:      009301 power_ctrl_pac_succ_decrs:
+0x3700 009302 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x3701 009303 sub pdata ,2 ,null 
+0x3702 009304 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+0x3703 009305 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0x3704 009306 rtneq 0 
+0x3705 009307 increase -1 ,pdata 
+0x3706 009308 store 1 ,mem_power_ctrl_pac_succ_cnt 
+0x3707 009309 rtn 
+:      009311 power_ctrl_pac_succ_cnt_reinit:
+0x3708 009312 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+0x3709 009313 rtn 
+:      009320 app_init:
+0x370a 009321 bpatch patch19_7 ,mem_patch19 
+0x370b 009322 fetch 1 ,mem_device_option 
+0x370c 009323 branch app_init ,blank 
+0x370d 009324 beq dvc_op_dongle ,dongle_init 
+0x370e 009325 beq dvc_op_shutter ,shutter_init 
+0x370f 009326 beq dvc_op_module ,module_init 
+0x3710 009327 beq dvc_op_car ,car_init 
+0x3711 009328 beq dvc_op_shutter_dy ,shutter_dy_init 
+0x3712 009329 beq dvc_op_remote_car ,remote_car_init 
+0x3713 009330 beq dvc_op_keyboard ,keyboard_init 
+0x3714 009331 beq dvc_op_hci_boot ,hci_init 
+0x3715 009333 beq dvc_op_mouse ,mouse_init 
+0x3716 009334 rtn 
+:      009337 app_param_init:
+0x3717 009338 rtn wake 
+0x3718 009339 call adc_init_data 
+0x3719 009340 fetch 1 ,mem_device_option 
+0x371a 009341 beq dvc_op_shutter ,shutter_default_init 
+0x371b 009342 beq dvc_op_shutter_dy ,shutter_default_init 
+0x371c 009343 beq dvc_op_dongle ,dongle_default_init 
+0x371d 009344 beq dvc_op_mouse ,mouse_default_init 
+0x371e 009345 beq dvc_op_keyboard ,keyboard_default_init 
+0x371f 009346 beq dvc_op_remote_car ,remote_car_default_init 
+0x3720 009347 beq dvc_op_car ,car_default_init 
+0x3721 009348 rtn 
+:      009350 app_process_idle:
+0x3722 009351 call ui_dispatch 
+0x3723 009352 call check_51cmd 
+0x3724 009353 call app_process_bb_event 
+0x3725 009354 fetch 2 ,mem_cb_idle_process 
+0x3726 009355 branch callback_func 
+:      009357 app_process_ble:
+0x3727 009358 fetch 2 ,mem_cb_le_process 
+0x3728 009359 branch callback_func 
+:      009361 app_process_bb_event:
+0x3729 009362 bpatch patch1a_0 ,mem_patch1a 
+0x372a 009364 arg mem_ipc_fifo_bt2c51 ,rega 
+0x372b 009365 call fifo_out 
+0x372c 009366 rtn blank 
+0x372d 009368 copy pdata ,regc 
+0x372e 009369 call app_event_normal_process 
+0x372f 009370 branch app_process_bb_event_priority 
+:      009372 app_discard_event:
+0x3730 009373 arg 0 ,regc 
+0x3731 009374 rtn 
+:      009379 app_event_normal_process:
+0x3732 009380 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
+0x3733 009381 beq bt_evt_le_connected ,app_le_event_bb_connected 
+0x3734 009382 beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
+0x3735 009383 rtn 
+:      009387 app_process_bb_event_priority:
+0x3736 009388 fetch 2 ,mem_cb_bb_event_process 
+0x3737 009389 branch callback_func 
+:      009391 app_check_wake_lock:
+0x3738 009392 fetch 2 ,mem_cb_check_wakelock 
+0x3739 009393 branch callback_func 
+:      009395 app_will_enter_lpm:
+0x373a 009396 fetch 2 ,mem_cb_before_lpm 
+0x373b 009397 branch callback_func 
+:      009399 app_le_event_bb_connected:
+0x373c 009400 fetch 2 ,mem_ui_state_map 
+0x373d 009401 set1 ui_state_ble_connected ,pdata 
+0x373e 009402 store 2 ,mem_ui_state_map 
+0x373f 009403 rtn 
+:      009405 app_le_event_bb_disconn:
+0x3740 009406 jam 0 ,mem_le_l2cap_att_states 
+0x3741 009407 fetch 2 ,mem_ui_state_map 
+0x3742 009408 set0 ui_state_ble_connected ,pdata 
+0x3743 009409 store 2 ,mem_ui_state_map 
+0x3744 009410 branch app_lpm_mult_disable 
+:      009413 app_evt_button_long_pressed:
+0x3745 009414 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x3746 009415 set1 app_disc_by_button ,pdata 
+0x3747 009416 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x3748 009417 rtn 
+:      009420 app_evt_timer:
+0x3749 009421 store 1 ,mem_app_evt_timer_count 
+:      009422 app_evt_100ms_loop:
+0x374a 009423 bpatch patch1a_1 ,mem_patch1a 
+0x374b 009424 fetch 1 ,mem_app_evt_timer_count 
+0x374c 009425 rtn blank 
+0x374d 009426 increase -1 ,pdata 
+0x374e 009427 store 1 ,mem_app_evt_timer_count 
+0x374f 009428 call ui_button_polling 
+0x3750 009429 call app_lpm_wake_auto_lock_timer 
+0x3751 009430 call flash_write_spi_sm_timer 
+0x3752 009431 fetch 2 ,mem_cb_event_timer 
+0x3753 009432 call callback_func 
+0x3754 009433 branch app_evt_100ms_loop 
+:      009438 timer_single_step:
+0x3755 009439 ifetch 1 ,regc 
+0x3756 009440 rtn blank 
+0x3757 009441 pincrease -1 
+0x3758 009442 istore 1 ,regc 
+0x3759 009443 nrtn blank 
+0x375a 009444 copy regb ,pdata 
+0x375b 009445 branch callback_func 
+:      009449 timer_single_step_2b:
+0x375c 009450 ifetch 2 ,regc 
+0x375d 009451 rtn blank 
+0x375e 009452 pincrease -1 
+0x375f 009453 istore 2 ,regc 
+0x3760 009454 nrtn blank 
+0x3761 009455 copy regb ,pdata 
+0x3762 009456 branch callback_func 
+:      009458 app_power_timer:
+0x3763 009459 fetcht 2 ,mem_power_param_ptr 
+0x3764 009460 add temp ,power_timer_offset ,regc 
+0x3765 009461 arg app_power_timer_timeout ,regb 
+0x3766 009462 branch timer_single_step 
+:      009464 app_power_timer_timeout:
+0x3767 009465 call app_got_power_state_common 
+0x3768 009466 beq power_starting ,app_enter_power_stanby_state 
+:      009467 app_enter_power_off_state:
+0x3769 009468 branch app_enter_hibernate 
+:      009469 app_enter_power_stanby_state:
+0x376a 009470 setarg power_standby 
+0x376b 009471 istore 1 ,regc 
+0x376c 009472 add temp ,power_standby_cb_offset ,regb 
+:      009473 app_power_cb_common:
+0x376d 009474 ifetch 2 ,regb 
+0x376e 009475 branch callback_func 
+:      009478 app_bb_hibernate:
+0x376f 009479 call app_disconn_reason_clear 
+0x3770 009480 branch app_enter_hibernate 
+:      009483 app_disconn_reason_clear:
+0x3771 009484 setarg 0 
+0x3772 009485 store app_disc_rsn_size ,mem_app_disconn_reason 
+0x3773 009486 rtn 
+:      009487 app_disconn_reason_flag_clear:
+0x3774 009488 setarg 0 
+0x3775 009489 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x3776 009490 rtn 
+:      009494 app_disconn_reason_collect_ble:
+0x3777 009495 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x3778 009496 set1 app_disc_ble ,pdata 
+0x3779 009497 store app_disc_rsn_size ,mem_app_disconn_reason 
+0x377a 009498 setarg 0 
+0x377b 009499 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x377c 009500 rtn 
+:      009508 app_get_lpm_wake_lock:
+0x377d 009509 arg wake_lock_app ,queue 
+0x377e 009510 branch lpm_get_wake_lock 
+:      009512 app_put_lpm_wake_lock:
+0x377f 009513 arg wake_lock_app ,queue 
+0x3780 009514 branch lpm_put_wake_lock 
+:      009516 app_lpm_wake_auto_lock:
+0x3781 009517 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
+0x3782 009518 branch app_get_lpm_wake_lock 
+:      009520 app_lpm_wake_auto_lock_timer:
+0x3783 009521 arg mem_wake_up_delay_timer ,regc 
+0x3784 009522 arg app_put_lpm_wake_lock ,regb 
+0x3785 009523 branch timer_single_step 
+:      009526 app_ble_start_direct_adv:
+0x3786 009527 jam bt_cmd_start_direct_adv ,mem_fifo_temp 
+0x3787 009528 branch ui_ipc_send_cmd 
+:      009530 app_ble_stop_direct_adv:
+0x3788 009531 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
+0x3789 009532 branch ui_ipc_send_cmd 
+:      009534 app_ble_stop_adv:
+0x378a 009535 jam bt_cmd_stop_adv ,mem_fifo_temp 
+0x378b 009536 branch ui_ipc_send_cmd 
+:      009538 app_ble_start_adv:
+0x378c 009539 jam bt_cmd_start_adv ,mem_fifo_temp 
+0x378d 009540 branch ui_ipc_send_cmd 
+:      009542 app_ble_start_scan:
+0x378e 009543 jam bt_cmd_le_start_scan ,mem_fifo_temp 
+0x378f 009544 branch ui_ipc_send_cmd 
+:      009546 app_ble_stop_scan:
+0x3790 009547 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
+0x3791 009548 branch ui_ipc_send_cmd 
+:      009550 app_ble_start_conn:
+0x3792 009551 jam bt_cmd_le_start_conn ,mem_fifo_temp 
+0x3793 009552 branch ui_ipc_send_cmd 
+:      009554 app_ble_disconnect:
+0x3794 009555 jam bt_cmd_le_disconnect ,mem_fifo_temp 
+0x3795 009556 branch ui_ipc_send_cmd 
+:      009558 app_led_start_blink:
+0x3796 009559 jam bt_cmd_led_blink ,mem_fifo_temp 
+0x3797 009560 branch ui_ipc_send_cmd 
+:      009562 app_led_on:
+0x3798 009563 jam bt_cmd_led_on ,mem_fifo_temp 
+0x3799 009564 branch ui_ipc_send_cmd 
+:      009566 app_led_stop_blink:
+:      009567 app_led_off:
+0x379a 009568 jam bt_cmd_led_off ,mem_fifo_temp 
+0x379b 009569 branch ui_ipc_send_cmd 
+:      009571 app_enter_hibernate:
+0x379c 009572 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
+0x379d 009573 branch ui_ipc_send_cmd 
+:      009576 app_ble_store_reconn_info:
+0x379e 009577 jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
+0x379f 009578 branch ui_ipc_send_cmd 
+:      009581 app_lpm_mult_enable:
+0x37a0 009582 set1 mark_lpm_mult_enable ,mark 
+0x37a1 009583 rtn 
+:      009585 app_lpm_mult_disable:
+0x37a2 009586 set0 mark_lpm_mult_enable ,mark 
+0x37a3 009587 rtn 
+:      009590 app_button_long_pressed:
+0x37a4 009591 call app_got_power_state_common 
+0x37a5 009592 beq power_standby ,app_power_shutting_down 
+:      009593 app_power_starting:
+0x37a6 009594 setarg power_starting 
+0x37a7 009595 istore 1 ,regc 
+0x37a8 009596 add temp ,power_starting_timeout_offset ,rega 
+0x37a9 009597 add temp ,power_starting_cb_offset ,regb 
+:      009598 app_power_common:
+0x37aa 009599 ifetcht 1 ,rega 
+0x37ab 009600 increase 1 ,regc 
+0x37ac 009601 istoret 1 ,regc 
+0x37ad 009602 branch app_power_cb_common 
+:      009604 app_power_shutting_down:
+0x37ae 009605 setarg power_off 
+0x37af 009606 istore 1 ,regc 
+0x37b0 009607 fetch 2 ,mem_ui_state_map 
+0x37b1 009608 bbit0 ui_state_ble_connected ,app_power_off_end 
+0x37b2 009609 call le_send_terminate_ind_user_terminated 
+0x37b3 009610 call app_ble_disconnect 
+:      009611 app_power_off_end:
+0x37b4 009612 fetcht 2 ,mem_power_param_ptr 
+0x37b5 009613 add temp ,power_off_timeout_offset ,rega 
+0x37b6 009614 add temp ,power_off_cb_offset ,regb 
+0x37b7 009615 branch app_power_common 
+:      009617 app_got_power_state_common:
+0x37b8 009618 fetcht 2 ,mem_power_param_ptr 
+0x37b9 009619 add temp ,power_state_offset ,regc 
+0x37ba 009620 ifetch 1 ,regc 
+0x37bb 009621 rtn 
+:      009623 app_event_button_up:
+0x37bc 009624 call app_got_power_state_common 
+0x37bd 009625 bne power_off ,app_power_release 
+0x37be 009626 branch app_enter_hibernate 
+:      009627 app_power_release:
+0x37bf 009628 add temp ,ui_butten_up_cb_offset ,regb 
+0x37c0 009629 branch app_power_cb_common 
+:      009637 car_init:
+0x37c1 009638 call enable_authrom 
+0x37c2 009639 rtn wake 
+0x37c3 009640 setarg car_idle_process 
+0x37c4 009641 store 2 ,mem_cb_idle_process 
+0x37c5 009643 setarg car_cb_event_timer 
+0x37c6 009644 store 2 ,mem_cb_event_timer 
+0x37c7 009646 setarg car_cb_24g_ackpayload 
+0x37c8 009647 store 2 ,mem_cb_24g_ackpayload 
+0x37c9 009649 setarg car_ble_receive_data 
+0x37ca 009650 store 2 ,mem_cb_att_write 
+0x37cb 009652 setarg car_process_bb_event 
+0x37cc 009653 store 2 ,mem_cb_bb_event_process 
+0x37cd 009655 bpatch patch05_6 ,mem_patch05 
+0x37ce 009656 call car_init_environment 
+0x37cf 009657 call car_add_mac_to_local_name 
+0x37d0 009658 call le_modified_name 
+0x37d1 009659 call car_le_param_init 
+0x37d2 009660 branch queue_init 
+:      009662 car_default_init:
+0x37d3 009664 jam 0x0a ,mem_tx_power 
+0x37d4 009665 jam 0x84 ,mem_24g_tx_phy 
+0x37d5 009666 jam 0x84 ,mem_24g_rx_phy 
+0x37d6 009667 setarg 0xffffff 
+0x37d7 009668 store 3 ,mem_car_full_control_remote_lap 
+0x37d8 009669 jam 0xff ,mem_car_full_control_remote_lap + 3 
+0x37d9 009670 setarg 0 
+0x37da 009671 store 3 ,mem_le_lap 
+0x37db 009672 setarg 0x220101 
+0x37dc 009673 store 3 ,mem_le_lap + 3 
+0x37dd 009674 setarg 0xffffff 
+0x37de 009675 store 3 ,mem_car_motor_gpio_map 
+0x37df 009676 jam 0xff ,mem_car_motor_gpio_map + 3 
+0x37e0 009677 jam 0x01 ,mem_factory_control_flag 
+0x37e1 009678 setarg 0x241404 
+0x37e2 009679 store 3 ,mem_24g_ch_map1 
+0x37e3 009680 jam 0x34 ,mem_24g_ch_map1 + 3 
+0x37e4 009681 jam 0x10 ,mem_car_pwm_gpio 
+0x37e5 009682 jam 0x01 ,mem_stop_4w1_flag 
+0x37e6 009683 jam 0x07 ,mem_le_adv_channel_map 
+0x37e7 009684 jam 0x01 ,mem_le_adv_enable 
+0x37e8 009685 setarg 0xf0 
+0x37e9 009686 store 2 ,mem_le_adv_interval 
+0x37ea 009687 setarg 0x801 
+0x37eb 009688 store 2 ,mem_le_local_feature 
+0x37ec 009689 jam 0x84 ,mem_le_tx_phys 
+0x37ed 009690 jam 0x84 ,mem_le_rx_phys 
+0x37ee 009693 setarg 0x504708 
+0x37ef 009694 store 3 ,mem_le_name_len 
+0x37f0 009695 setarg 0x435734 
+0x37f1 009696 store 3 ,mem_le_name_len + 3 
+0x37f2 009697 setarg 0x5f5241 
+0x37f3 009698 store 3 ,mem_le_name_len + 6 
+0x37f4 009699 jam 0x1f ,mem_le_adv_data_len 
+0x37f5 009700 setarg 0x50102 
+0x37f6 009701 store 3 ,mem_le_adv_data 
+0x37f7 009702 setarg 0x08 
+0x37f8 009703 store 2 ,mem_le_interval_min 
+0x37f9 009704 setarg 0x10 
+0x37fa 009705 store 2 ,mem_le_interval_max 
+0x37fb 009706 setarg 0 
+0x37fc 009707 store 2 ,mem_le_latency 
+0x37fd 009708 setarg 0x12c 
+0x37fe 009709 store 2 ,mem_le_timeout 
+0x37ff 009710 setarg mem_car_le_queue_each_size 
+0x3800 009711 store 2 ,mem_queue_ptr 
+0x3801 009712 setarg 0x414 
+0x3802 009713 store 5 ,mem_car_le_queue_each_size 
+0x3803 009714 setarg mem_car_ble_att_list 
+0x3804 009715 store 2 ,mem_ui_le_uuid_table 
+0x3805 009718 setsect 0 ,0x20001 
+0x3806 009719 setsect 1 ,0x20000 
+0x3807 009720 setsect 2 ,0x1022 
+0x3808 009721 setsect 3 ,0x60 
+0x3809 009722 store 9 ,mem_car_ble_att_list 
+0x380a 009723 setsect 0 ,0x20002 
+0x380b 009724 setsect 1 ,0x200c0 
+0x380c 009725 setsect 2 ,0x20012 
+0x380d 009726 setsect 3 ,0xc 
+0x380e 009727 store 9 ,mem_car_ble_att_list + 8 
+0x380f 009729 setsect 0 ,0x20502 
+0x3810 009730 setsect 1 ,0x4a 
+0x3811 009731 setsect 2 ,0x40 
+0x3812 009732 setsect 3 ,0x808 
+0x3813 009733 store 9 ,mem_car_ble_att_list + 17 
+0x3814 009735 setsect 0 ,0x10229 
+0x3815 009736 setsect 1 ,0x14000 
+0x3816 009737 setsect 2 ,0x2000 
+0x3817 009738 setsect 3 ,0xa000 
+0x3818 009739 store 9 ,mem_car_ble_att_list + 26 
+0x3819 009741 setsect 0 ,0x02 
+0x381a 009742 setsect 1 ,0x186 
+0x381b 009743 setsect 2 ,0x3020 
+0x381c 009744 setsect 3 ,0x4a0 
+0x381d 009745 store 9 ,mem_car_ble_att_list + 35 
+0x381e 009747 setsect 0 ,0x74e 
+0x381f 009748 setsect 1 ,0x80 
+0x3820 009749 setsect 2 ,0x132a0 
+0x3821 009750 setsect 3 ,0x1cd04 
+0x3822 009751 store 9 ,mem_car_ble_att_list + 44 
+0x3823 009753 setsect 0 ,0x2074 
+0x3824 009754 setsect 1 ,0x1153 
+0x3825 009755 setsect 2 ,0x2f4d2 
+0x3826 009756 setsect 3 ,0x1cdd5 
+0x3827 009757 store 9 ,mem_car_ble_att_list + 53 
+0x3828 009759 setsect 0 ,0x2065 
+0x3829 009760 setsect 1 ,0x808 
+0x382a 009761 setsect 2 ,0x20202 
+0x382b 009762 setsect 3 ,0x2080 
+0x382c 009763 store 9 ,mem_car_ble_att_list + 62 
+0x382d 009765 setsect 0 ,0x30200 
+0x382e 009766 setsect 1 ,0x4a00 
+0x382f 009767 setsect 2 ,0x94e0 
+0x3830 009768 setsect 3 ,0x800 
+0x3831 009769 store 9 ,mem_car_ble_att_list + 71 
+0x3832 009771 setsect 0 ,0x22a01 
+0x3833 009772 setsect 1 ,0x0 
+0x3834 009773 setsect 2 ,0xa0 
+0x3835 009774 setsect 3 ,0xc08 
+0x3836 009775 store 9 ,mem_car_ble_att_list + 80 
+0x3837 009777 setsect 0 ,0x20128 
+0x3838 009778 setsect 1 ,0x2c0 
+0x3839 009779 setsect 2 ,0x4020 
+0x383a 009780 setsect 3 ,0x20a8 
+0x383b 009781 store 9 ,mem_car_ble_att_list + 89 
+0x383c 009783 setsect 0 ,0x10 
+0x383d 009784 setsect 1 ,0x14008 
+0x383e 009785 setsect 2 ,0x2c000 
+0x383f 009786 setsect 3 ,0x3004 
+0x3840 009787 store 9 ,mem_car_ble_att_list + 98 
+0x3841 009789 setsect 0 ,0x200 
+0x3842 009790 setsect 1 ,0x8a00 
+0x3843 009791 setsect 2 ,0x3ff00 
+0x3844 009792 setsect 3 ,0x37 
+0x3845 009793 store 9 ,mem_car_ble_att_list + 107 
+0x3846 009795 setsect 0 ,0x302 
+0x3847 009796 setsect 1 ,0x804a 
+0x3848 009797 setsect 2 ,0xe1 
+0x3849 009798 setsect 3 ,0x3c408 
+0x384a 009799 store 9 ,mem_car_ble_att_list + 116 
+0x384b 009801 setsect 0 ,0x4ff 
+0x384c 009802 setsect 1 ,0x0 
+0x384d 009803 setsect 2 ,0xf000 
+0x384e 009804 setsect 3 ,0x800 
+0x384f 009805 store 9 ,mem_car_ble_att_list + 125 
+0x3850 009807 setsect 0 ,0x22902 
+0x3851 009808 setsect 1 ,0x0 
+0x3852 009809 setsect 2 ,0x100 
+0x3853 009810 setsect 3 ,0xc08 
+0x3854 009811 store 9 ,mem_car_ble_att_list + 134 
+0x3855 009813 setsect 0 ,0x128 
+0x3856 009814 setsect 1 ,0x442 
+0x3857 009815 setsect 2 ,0x32020 
+0x3858 009816 setsect 3 ,0x7ff 
+0x3859 009817 store 9 ,mem_car_ble_att_list + 143 
+0x385a 009818 setarg 0 
+0x385b 009819 store 3 ,mem_car_ble_att_list + 152 
+0x385c 009821 jam 0x0c ,mem_system_clk 
+0x385d 009822 setarg 0x643f35 
+0x385e 009823 store 3 ,mem_lpm_xtalcnt 
+0x385f 009824 setarg 0x3b2f8f 
+0x3860 009825 store 3 ,mem_lpm_isogate 
+0x3861 009826 jam 0x20 ,mem_lpm_hibernate_switch 
+0x3862 009827 jam 0x00 ,mem_lpm_ldo_sel 
+0x3863 009828 jam 0x08 ,mem_lpm_sysctl 
+0x3864 009829 jam 0xb4 ,mem_lpm_hv_sel 
+0x3865 009830 jam 0x18 ,mem_fcomp_div 
+0x3866 009831 jam 0x3e ,mem_xtal_c_sel 
+0x3867 009832 setarg 0x50e08 
+0x3868 009833 store 3 ,mem_version 
+0x3869 009834 setarg 0x3 
+0x386a 009835 store 2 ,mem_version + 3 
+0x386b 009836 jam 0x20 ,mem_le_tx2m_delay 
+0x386c 009837 jam 0xff ,mem_gain_fix 
+0x386d 009838 setarg 0xc00 
+0x386e 009839 store 2 ,mem_rx_window_sniff 
+0x386f 009840 setarg 0x4 
+0x3870 009841 store 3 ,mem_gain_table 
+0x3871 009842 jam 0x08 ,mem_gain_second_agc_en 
+0x3872 009843 jam 0xa0 ,mem_ring_ibias_trim 
+0x3873 009844 setarg 0x2bc 
+0x3874 009845 store 2 ,mem_ring_ibias_vtune_high 
+0x3875 009846 setarg 0x190 
+0x3876 009847 store 2 ,mem_ring_ibias_vtune_low 
+0x3877 009848 jam 0x03 ,mem_ring_ibias_calc_adc_gpio 
+0x3878 009849 jam 0x09 ,mem_ring_ibias_calc_adc_channel 
+0x3879 009850 jam 0xff ,mem_rf_init_data 
+0x387a 009851 setarg mem_rf_init_data 
+0x387b 009852 store 2 ,mem_rf_init_ptr 
+0x387c 009855 call enable_otp_read 
+0x387d 009856 arg mem_otp_sys_cfg_temp ,rega 
+0x387e 009857 arg otp_sys_param_cfg ,regb 
+0x387f 009858 arg 60 ,loopcnt 
+0x3880 009859 call otp_read_data 
+0x3881 009860 call disable_otp 
+0x3882 009861 fetch 1 ,mem_otp_sys_cfg_temp 
+0x3883 009862 ncall car_system_clk ,blank 
+0x3884 009864 fetch 3 ,mem_otp_sys_cfg_temp + 1 
+0x3885 009865 ncall car_lpm_xtalcnt ,blank 
+0x3886 009867 fetch 3 ,mem_otp_sys_cfg_temp + 4 
+0x3887 009868 ncall car_lpm_isogate ,blank 
+0x3888 009870 fetch 1 ,mem_otp_sys_cfg_temp + 7 
+0x3889 009871 ncall car_lpm_hibernate_switch ,blank 
+0x388a 009873 fetch 1 ,mem_otp_sys_cfg_temp + 8 
+0x388b 009874 ncall car_lpm_ldo_sel ,blank 
+0x388c 009876 fetch 1 ,mem_otp_sys_cfg_temp + 9 
+0x388d 009877 ncall car_lpm_sysctl ,blank 
+0x388e 009879 fetch 1 ,mem_otp_sys_cfg_temp + 10 
+0x388f 009880 ncall car_lpm_hv_sel ,blank 
+0x3890 009882 fetch 1 ,mem_otp_sys_cfg_temp + 11 
+0x3891 009883 ncall car_fcomp_div ,blank 
+0x3892 009885 fetch 1 ,mem_otp_sys_cfg_temp + 12 
+0x3893 009886 ncall car_xtal_c_sel ,blank 
+0x3894 009888 fetch 5 ,mem_otp_sys_cfg_temp + 13 
+0x3895 009889 ncall car_version ,blank 
+0x3896 009891 fetch 1 ,mem_otp_sys_cfg_temp + 18 
+0x3897 009892 ncall car_le_tx2m_delay ,blank 
+0x3898 009894 fetch 1 ,mem_otp_sys_cfg_temp + 19 
+0x3899 009895 ncall car_gain_fix ,blank 
+0x389a 009897 fetch 2 ,mem_otp_sys_cfg_temp + 20 
+0x389b 009898 ncall car_rx_window_sniff ,blank 
+0x389c 009900 fetch 3 ,mem_otp_sys_cfg_temp + 22 
+0x389d 009901 ncall car_gain_table ,blank 
+0x389e 009903 fetch 1 ,mem_otp_sys_cfg_temp + 25 
+0x389f 009904 ncall car_gain_second_agc_en ,blank 
+0x38a0 009906 fetch 1 ,mem_otp_sys_cfg_temp + 26 
+0x38a1 009907 ncall car_ring_ibias_trim ,blank 
+0x38a2 009909 fetch 2 ,mem_otp_sys_cfg_temp + 27 
+0x38a3 009910 ncall car_ring_ibias_vtune_high ,blank 
+0x38a4 009912 fetch 2 ,mem_otp_sys_cfg_temp + 29 
+0x38a5 009913 ncall car_ring_ibias_vtune_low ,blank 
+0x38a6 009915 fetch 1 ,mem_otp_sys_cfg_temp + 31 
+0x38a7 009916 ncall car_ring_ibias_calc_adc_gpio ,blank 
+0x38a8 009918 fetch 1 ,mem_otp_sys_cfg_temp + 32 
+0x38a9 009919 ncall car_ring_ibias_calc_adc_channel ,blank 
+0x38aa 009921 fetch 1 ,mem_otp_sys_cfg_temp + 37 
+0x38ab 009922 ncall car_tx_power ,blank 
+0x38ac 009924 fetch 1 ,mem_otp_sys_cfg_temp + 38 
+0x38ad 009925 ncall car_24g_tx_phy ,blank 
+0x38ae 009927 fetch 1 ,mem_otp_sys_cfg_temp + 39 
+0x38af 009928 ncall car_24g_rx_phy ,blank 
+0x38b0 009930 fetch 4 ,mem_otp_sys_cfg_temp + 40 
+0x38b1 009931 ncall car_motor_gpio_map ,blank 
+0x38b2 009933 fetch 1 ,mem_otp_sys_cfg_temp + 44 
+0x38b3 009934 ncall car_pwm_gpio ,blank 
+0x38b4 009936 fetch 4 ,mem_otp_sys_cfg_temp + 46 
+0x38b5 009937 ncall car_24g_addr ,blank 
+0x38b6 009939 fetch 4 ,mem_otp_sys_cfg_temp + 50 
+0x38b7 009940 ncall car_24g_ch_map1 ,blank 
+0x38b8 009941 rtn 
+:      009943 car_system_clk:
+0x38b9 009944 store 1 ,mem_system_clk 
+0x38ba 009945 rtn 
+:      009946 car_lpm_xtalcnt:
+0x38bb 009947 store 3 ,mem_lpm_xtalcnt 
+0x38bc 009948 rtn 
+:      009949 car_lpm_isogate:
+0x38bd 009950 store 3 ,mem_lpm_isogate 
+0x38be 009951 rtn 
+:      009952 car_lpm_hibernate_switch:
+0x38bf 009953 store 1 ,mem_lpm_hibernate_switch 
+0x38c0 009954 rtn 
+:      009955 car_lpm_ldo_sel:
+0x38c1 009956 store 1 ,mem_lpm_ldo_sel 
+0x38c2 009957 rtn 
+:      009958 car_lpm_sysctl:
+0x38c3 009959 store 1 ,mem_lpm_sysctl 
+0x38c4 009960 rtn 
+:      009961 car_lpm_hv_sel:
+0x38c5 009962 store 1 ,mem_lpm_hv_sel 
+0x38c6 009963 rtn 
+:      009964 car_fcomp_div:
+0x38c7 009965 store 1 ,mem_fcomp_div 
+0x38c8 009966 rtn 
+:      009967 car_xtal_c_sel:
+0x38c9 009968 store 1 ,mem_xtal_c_sel 
+0x38ca 009969 rtn 
+:      009970 car_version:
+0x38cb 009971 store 5 ,mem_version 
+0x38cc 009972 rtn 
+:      009973 car_le_tx2m_delay:
+0x38cd 009974 store 1 ,mem_le_tx2m_delay 
+0x38ce 009975 rtn 
+:      009976 car_gain_fix:
+0x38cf 009977 store 1 ,mem_gain_fix 
+0x38d0 009978 rtn 
+:      009979 car_rx_window_sniff:
+0x38d1 009980 store 2 ,mem_rx_window_sniff 
+0x38d2 009981 rtn 
+:      009982 car_gain_table:
+0x38d3 009983 store 3 ,mem_gain_table 
+0x38d4 009984 rtn 
+:      009985 car_gain_second_agc_en:
+0x38d5 009986 store 1 ,mem_gain_second_agc_en 
+0x38d6 009987 rtn 
+:      009988 car_ring_ibias_trim:
+0x38d7 009989 store 1 ,mem_ring_ibias_trim 
+0x38d8 009990 rtn 
+:      009991 car_ring_ibias_vtune_high:
+0x38d9 009992 store 2 ,mem_ring_ibias_vtune_high 
+0x38da 009993 rtn 
+:      009994 car_ring_ibias_vtune_low:
+0x38db 009995 store 2 ,mem_ring_ibias_vtune_low 
+0x38dc 009996 rtn 
+:      009997 car_ring_ibias_calc_adc_gpio:
+0x38dd 009998 store 1 ,mem_ring_ibias_calc_adc_gpio 
+0x38de 009999 rtn 
+:      010000 car_ring_ibias_calc_adc_channel:
+0x38df 010001 store 1 ,mem_ring_ibias_calc_adc_channel 
+0x38e0 010002 rtn 
+:      010003 car_tx_power:
+0x38e1 010004 store 1 ,mem_tx_power 
+0x38e2 010005 rtn 
+:      010006 car_24g_tx_phy:
+0x38e3 010007 store 1 ,mem_24g_tx_phy 
+0x38e4 010008 rtn 
+:      010009 car_24g_rx_phy:
+0x38e5 010010 store 1 ,mem_24g_rx_phy 
+0x38e6 010011 rtn 
+:      010012 car_motor_gpio_map:
+0x38e7 010013 store 4 ,mem_car_motor_gpio_map 
+0x38e8 010014 jam 1 ,mem_car_gpio_control_mode 
+0x38e9 010015 rtn 
+:      010016 car_pwm_gpio:
+0x38ea 010017 fetch 1 ,mem_car_gpio_control_mode 
+0x38eb 010018 nrtn blank 
+0x38ec 010019 fetch 1 ,mem_otp_sys_cfg_temp + 44 
+0x38ed 010020 store 1 ,mem_car_pwm_gpio 
+0x38ee 010021 rtn 
+:      010023 car_24g_addr:
+0x38ef 010024 store 4 ,mem_24g_addr 
+0x38f0 010025 rtn 
+:      010026 car_24g_ch_map1:
+0x38f1 010027 store 4 ,mem_24g_ch_map1 
+0x38f2 010028 rtn 
+:      010031 car_init_environment:
+0x38f3 010032 setarg 15 
+0x38f4 010033 store 2 ,mem_100ms_adv_control_timer 
+0x38f5 010034 setarg 300 
+0x38f6 010035 store 2 ,mem_100ms_factory_test_control_timer 
+0x38f7 010036 call car_whitening_24g_addr 
+0x38f8 010037 call car_get_rxid 
+0x38f9 010038 call car_rxid_check 
+0x38fa 010039 branch car_pwm_control_init 
+:      010041 car_rxid_check:
+0x38fb 010042 arg mem_le_lap ,rega 
+0x38fc 010043 arg mem_car_full_control_remote_lap ,regb 
+0x38fd 010044 arg 4 ,loopcnt 
+0x38fe 010045 call string_compare 
+0x38ff 010046 nrtn zero 
+0x3900 010047 fetch 1 ,mem_le_lap 
+0x3901 010048 pincrease -1 
+0x3902 010049 store 1 ,mem_le_lap 
+0x3903 010050 rtn 
+:      010052 car_add_mac_to_local_name:
+0x3904 010053 fetch 1 ,mem_le_name_len 
+0x3905 010054 arg mem_le_name_len + 1 ,contw 
+0x3906 010055 iadd contw ,regb 
+0x3907 010056 add pdata ,16 ,pdata 
+0x3908 010057 store 1 ,mem_le_name_len 
+0x3909 010059 arg 6 ,loopcnt 
+0x390a 010060 arg mem_le_lap + 5 ,rega 
+0x390b 010061 copy regb ,contw 
+:      010062 car_add_mac_to_local_name_loop:
+0x390c 010063 ifetcht 1 ,rega 
+0x390d 010064 and temp ,0xf0 ,pdata 
+0x390e 010065 rshift4 pdata ,pdata 
+0x390f 010066 call car_convert_hex_to_ascii 
+0x3910 010068 istore 1 ,contw 
+0x3911 010069 and temp ,0x0f ,pdata 
+0x3912 010070 call car_convert_hex_to_ascii 
+0x3913 010071 istore 1 ,contw 
+0x3914 010072 increase -1 ,rega 
+0x3915 010073 loop car_add_mac_to_local_name_loop 
+0x3916 010074 rtn 
+:      010075 car_convert_hex_to_ascii:
+0x3917 010076 sub pdata ,9 ,null 
+0x3918 010077 branch car_convert_hex_to_ascii_0_9 ,positive 
+:      010078 car_convert_hex_to_ascii_a_f:
+0x3919 010079 add pdata ,0x37 ,pdata 
+0x391a 010080 rtn 
+:      010081 car_convert_hex_to_ascii_0_9:
+0x391b 010082 add pdata ,0x30 ,pdata 
+0x391c 010083 rtn 
+:      010087 car_le_param_init:
+0x391d 010088 jam 0x17 ,mem_le_local_mtu 
+0x391e 010089 setarg 0x1b 
+0x391f 010090 store 2 ,mem_le_pairing_handle 
+0x3920 010091 call le_set_config_fixed_ltk 
+0x3921 010092 call le_set_fixed_ltk 
+0x3922 010093 call le_set_justwork 
+0x3923 010094 branch le_set_config_read_authentication 
+:      010097 car_process_bb_event:
+0x3924 010098 deposit regc 
+0x3925 010099 beq bt_evt_le_connected ,car_ble_connted 
+0x3926 010100 beq bt_evt_le_disconnected ,car_ble_disconnted 
+0x3927 010101 rtn 
+:      010103 car_ble_disconnted:
+0x3928 010104 jam 0 ,mem_car_ble_connted_flag 
+0x3929 010105 call car_gpio_control_stop 
+0x392a 010106 jam 0x0 ,mem_period_count 
+0x392b 010107 jam 1 ,mem_stop_4w1_flag 
+0x392c 010108 setarg 0 
+0x392d 010109 store 3 ,mem_car_ble_write_data 
+0x392e 010110 call queue_init 
+0x392f 010111 branch app_ble_start_adv 
+:      010113 car_ble_connted:
+0x3930 010114 jam 1 ,mem_car_ble_connted_flag 
+0x3931 010115 call car_check_close_ice 
+0x3932 010116 branch app_lpm_mult_enable 
+:      010119 car_ble_receive_data:
+0x3933 010120 fetch 2 ,mem_le_att_handle 
+0x3934 010121 beq handle_of_write ,car_ble_receive_writeatt 
+0x3935 010122 rtn 
+:      010125 car_ble_receive_writeatt:
+0x3936 010126 bpatch patch05_7 ,mem_patch05 
+0x3937 010127 copy regb ,loopcnt 
+0x3938 010128 copy rega ,contr 
+0x3939 010129 arg mem_car_ble_write_data ,contw 
+0x393a 010130 call memcpy 
+0x393b 010131 fetch 1 ,mem_car_ble_write_data 
+0x393c 010132 rtn blank 
+:      010133 car_ble_receive_writeatt_parse:
+0x393d 010134 call car_gpio_control_stop 
+0x393e 010135 jam 0x4 ,mem_period_count 
+0x393f 010136 fetch 1 ,mem_car_ble_write_data + 2 
+0x3940 010137 rtnne 0x02 
+0x3941 010138 fetch 1 ,mem_car_ble_write_data + 8 
+0x3942 010139 beq 0x01 ,car_f + 3 
+0x3943 010140 beq 0x02 ,car_b + 3 
+0x3944 010141 beq 0x03 ,car_r + 3 
+0x3945 010142 beq 0x04 ,car_l + 3 
+0x3946 010143 beq 0xa1 ,car_fr 
+0x3947 010144 beq 0xa2 ,car_fl 
+0x3948 010145 beq 0xa3 ,car_br 
+0x3949 010146 beq 0xa4 ,car_bl 
+0x394a 010147 rtn 
+:      010149 car_gpio_control_stop:
+0x394b 010150 fetch 1 ,mem_car_gpio_control_mode 
+0x394c 010151 rtn blank 
+0x394d 010152 call car_fb_motor_stop 
+0x394e 010153 branch car_lr_motor_stop 
+:      010155 car_whitening_24g_addr:
+0x394f 010156 arg 4 ,loopcnt 
+0x3950 010157 arg mem_24g_addr ,regc 
+0x3951 010158 arg 0xae ,regb 
+:      010161 car_24g_whitening_loop:
+0x3952 010162 call car_24g_whitening_byte 
+0x3953 010163 increase 1 ,regc 
+0x3954 010164 loop car_24g_whitening_loop 
+0x3955 010165 rtn 
+:      010166 car_24g_whitening_byte:
+0x3956 010167 arg 1 ,rega 
+:      010168 car_24g_whitening_byte_loop:
+0x3957 010169 lshift regb ,regb 
+0x3958 010170 isolate1 7 ,regb 
+0x3959 010171 call car_24g_whitening_byte_xor ,true 
+0x395a 010172 lshift rega ,rega 
+0x395b 010173 deposit rega 
+0x395c 010174 rtnbit1 8 
+0x395d 010175 branch car_24g_whitening_byte_loop 
+:      010176 car_24g_whitening_byte_xor:
+0x395e 010177 ifetch 1 ,regc 
+0x395f 010178 ixor rega ,pdata 
+0x3960 010179 istore 1 ,regc 
+0x3961 010180 xor regb ,0x11 ,regb 
+0x3962 010181 rtn 
+:      010185 car_get_rxid:
+0x3963 010186 call enable_otp_read 
+0x3964 010187 arg mem_otp_lot_xy_temp ,rega 
+0x3965 010188 arg otp_mac_addr ,regb 
+0x3966 010189 arg 6 ,loopcnt 
+0x3967 010190 call otp_read_data 
+0x3968 010191 call disable_otp 
+0x3969 010192 fetch 6 ,mem_otp_lot_xy_temp 
+0x396a 010193 rtn blank 
+0x396b 010194 fetch 2 ,mem_otp_lot_xy_temp 
+0x396c 010195 store 2 ,mem_le_lap 
+0x396d 010196 fetch 1 ,mem_otp_lot_xy_temp + 3 
+0x396e 010197 store 1 ,mem_le_lap + 2 
+0x396f 010198 fetch 1 ,mem_otp_lot_xy_temp + 5 
+0x3970 010199 store 1 ,mem_le_lap + 3 
+0x3971 010201 fetch 1 ,mem_otp_lot_xy_temp + 1 
+0x3972 010202 sub pdata ,26 ,null 
+0x3973 010203 nrtn positive 
+0x3974 010205 fetch 1 ,mem_otp_lot_xy_temp + 2 
+0x3975 010206 rtn blank 
+0x3976 010207 random pdata 
+0x3977 010208 and_into 0x07 ,pdata 
+0x3978 010209 lshift pdata ,pdata 
+0x3979 010210 lshift4 pdata ,pdata 
+0x397a 010211 fetcht 1 ,mem_otp_lot_xy_temp + 1 
+0x397b 010212 iadd temp ,pdata 
+0x397c 010213 store 1 ,mem_le_lap + 1 
+0x397d 010214 arg mem_le_lap + 1 ,rega 
+0x397e 010215 arg otp_mac_addr_piecenum ,regb 
+0x397f 010216 arg 1 ,loopcnt 
+0x3980 010217 branch otp_write 
+:      010221 car_pwm_control_init:
+0x3981 010222 fetch 1 ,mem_car_gpio_control_mode 
+0x3982 010223 nrtn blank 
+0x3983 010224 arg 0 ,rega 
+0x3984 010225 call pwm_init 
+0x3985 010227 arg 18000 ,rega 
+0x3986 010228 arg 6000 ,regb 
+0x3987 010229 arg 0 ,pdata 
+0x3988 010230 call pwm_duty_cycle_set 
+0x3989 010231 fetch 1 ,mem_car_pwm_gpio 
+0x398a 010232 branch pwm_enable 
+:      010235 car_idle_process:
+0x398b 010237 bpatch patch06_0 ,mem_patch06 
+0x398c 010238 arg 10 ,pdata 
+0x398d 010239 call wdt_init_config 
+0x398e 010241 call car_pwm_io_control 
+0x398f 010242 fetch 1 ,mem_car_ble_connted_flag 
+0x3990 010243 nrtn blank 
+0x3991 010244 fetch 2 ,mem_car_le_24g_ch_count 
+0x3992 010245 increase 1 ,pdata 
+0x3993 010246 store 2 ,mem_car_le_24g_ch_count 
+0x3994 010247 rshift4 pdata ,pdata 
+0x3995 010248 call car_set_24g_ch 
+0x3996 010250 call car_g24_sim_rx 
+0x3997 010251 call car_stop_run 
+0x3998 010252 setarg mem_24g_rxbuf 
+0x3999 010253 increase 2 ,pdata 
+0x399a 010254 copy pdata ,contr 
+0x399b 010255 arg len_of_24g_payload ,loopcnt 
+0x399c 010256 arg 0 ,pdata 
+0x399d 010257 call cal_sum 
+0x399e 010258 and pdata ,0xff ,pdata 
+0x399f 010259 fetcht 1 ,mem_24g_rxbuf + 14 
+0x39a0 010260 isub temp ,null 
+0x39a1 010261 nrtn zero 
+0x39a2 010263 fetch 1 ,mem_24g_rxbuf + 2 
+0x39a3 010264 bpatch patch06_1 ,mem_patch06 
+0x39a4 010265 beq g24_tx_pair_request ,car_recive_pair_request 
+0x39a5 010266 beq g24_tx_remote_control ,car_set_motor 
+0x39a6 010267 rtn 
+:      010268 car_pwm_io_control:
+0x39a7 010269 fetch 1 ,mem_car_gpio_control_mode 
+0x39a8 010270 nrtn blank 
+0x39a9 010271 call car_soft_timer_process 
+0x39aa 010272 call car_pwm_change_500hz 
+0x39ab 010273 call car_period_change_timer 
+0x39ac 010274 call car_pwm_change_1khz 
+0x39ad 010275 rtn 
+:      010277 car_g24_sim_rx:
+0x39ae 010278 arg 4 ,temp 
+0x39af 010279 arg 5 ,queue 
+0x39b0 010280 call sniff_check_window 
+0x39b1 010281 rtn user 
+0x39b2 010282 set1 mark_24g_rxmode ,mark 
+0x39b3 010283 setarg 0x8ca0 
+0x39b4 010284 store 2 ,mem_24g_rx_window 
+0x39b5 010285 jam 1 ,mem_24g_ackpayload_enable 
+0x39b6 010286 fetch 1 ,mem_24g_rx_phy 
+0x39b7 010287 call le_enable_phy_by_pdata 
+0x39b8 010288 call g24_syncword_crc8 
+0x39b9 010289 call g24_receive_transmit_ack 
+0x39ba 010290 call g24_read_len_pid_crc 
+0x39bb 010291 call g24_end_of_packet 
+0x39bc 010292 nrtn user3 
+0x39bd 010293 rtn 
+:      010295 car_cb_24g_ackpayload:
+0x39be 010296 jam len_of_ack_payload ,mem_24g_datalen 
+0x39bf 010297 fetch 7 ,mem_car_24g_tx_payload_temp 
+0x39c0 010298 store 7 ,mem_24g_txbuf 
+0x39c1 010299 fetch 4 ,mem_car_24g_tx_payload_temp + 7 
+0x39c2 010300 store 4 ,mem_24g_txbuf + 7 
+0x39c3 010301 rtn 
+:      010303 car_soft_timer_process:
+0x39c4 010304 arg 8 ,rega 
+:      010305 car_soft_timer_process_check_timer:
+0x39c5 010306 arg 12 ,queue 
+0x39c6 010307 call timer_check 
+0x39c7 010308 branch car_soft_timer_timeout ,blank 
+0x39c8 010309 isub rega ,null 
+0x39c9 010310 branch car_soft_timer_process_wait_timeout ,zero 
+0x39ca 010311 rtn positive 
+:      010312 car_soft_timer_process_wait_timeout:
+0x39cb 010313 arg 12 ,queue 
+0x39cc 010314 call timer_check 
+0x39cd 010315 branch car_soft_timer_timeout ,blank 
+0x39ce 010316 branch car_soft_timer_process_wait_timeout 
+:      010318 car_soft_timer_timeout:
+0x39cf 010319 fetch 1 ,mem_pwm_flag 
+0x39d0 010320 beq 2 ,car_timer_500hz_enable 
+0x39d1 010321 beq 3 ,car_timer_1khz_enable 
+0x39d2 010322 rtn 
+:      010323 car_timer_1khz_enable:
+0x39d3 010324 jam 1 ,mem_pwm_flag 
+0x39d4 010325 rtn 
+:      010326 car_timer_500hz_enable:
+0x39d5 010327 jam 0 ,mem_pwm_flag 
+0x39d6 010328 rtn 
+:      010330 car_pwm_change_1khz:
+0x39d7 010331 fetch 1 ,mem_period_count 
+0x39d8 010332 rtn blank 
+0x39d9 010333 fetcht 1 ,mem_pwm_flag 
+0x39da 010334 compare 1 ,temp ,0xff 
+0x39db 010335 nrtn true 
+0x39dc 010336 jam 2 ,mem_pwm_flag 
+0x39dd 010337 arg 6000 ,rega 
+0x39de 010338 arg 6000 ,regb 
+0x39df 010339 arg 0 ,pdata 
+0x39e0 010340 call pwm_duty_cycle_set 
+0x39e1 010341 fetch 1 ,mem_timer_count 
+0x39e2 010342 arg 12 ,queue 
+0x39e3 010343 call timer_init 
+0x39e4 010344 rtn 
+:      010345 car_pwm_change_500hz:
+0x39e5 010346 fetcht 1 ,mem_pwm_flag 
+0x39e6 010347 compare 0 ,temp ,0xff 
+0x39e7 010348 nrtn true 
+0x39e8 010349 jam 3 ,mem_pwm_flag 
+0x39e9 010350 arg 18000 ,rega 
+0x39ea 010351 arg 6000 ,regb 
+0x39eb 010352 arg 0 ,pdata 
+0x39ec 010353 call pwm_duty_cycle_set 
+0x39ed 010354 setarg 12 
+0x39ee 010355 arg 12 ,queue 
+0x39ef 010356 call timer_init 
+0x39f0 010357 rtn 
+:      010358 car_period_change_timer:
+0x39f1 010359 fetch 1 ,mem_period_count 
+0x39f2 010360 arg 0x3e8 ,temp 
+0x39f3 010361 imul32 temp ,pdata 
+0x39f4 010362 arg 0x271 ,temp 
+0x39f5 010363 idiv temp 
+0x39f6 010364 call wait_div_end 
+0x39f7 010365 quotient pdata 
+0x39f8 010366 pincrease 1 
+0x39f9 010367 store 1 ,mem_timer_count 
+0x39fa 010368 rtn 
+:      010372 car_set_24g_ch:
+0x39fb 010373 beq 0 ,car_set_ch0 
+0x39fc 010374 beq 1 ,car_set_ch1 
+0x39fd 010375 beq 2 ,car_set_ch2 
+0x39fe 010376 beq 3 ,car_set_ch3 
+0x39ff 010377 branch car_set_ch_reset 
+:      010378 car_set_ch0:
+0x3a00 010379 fetch 1 ,mem_24g_ch_map1 
+0x3a01 010380 store 1 ,mem_24g_ch 
+0x3a02 010381 rtn 
+:      010382 car_set_ch1:
+0x3a03 010383 fetch 1 ,mem_24g_ch_map1 + 1 
+0x3a04 010384 store 1 ,mem_24g_ch 
+0x3a05 010385 rtn 
+:      010386 car_set_ch2:
+0x3a06 010387 fetch 1 ,mem_24g_ch_map1 + 2 
+0x3a07 010388 store 1 ,mem_24g_ch 
+0x3a08 010389 rtn 
+:      010390 car_set_ch3:
+0x3a09 010391 fetch 1 ,mem_24g_ch_map1 + 3 
+0x3a0a 010392 store 1 ,mem_24g_ch 
+0x3a0b 010393 rtn 
+:      010394 car_set_ch_reset:
+0x3a0c 010395 setarg 0 
+0x3a0d 010396 store 2 ,mem_car_le_24g_ch_count 
+0x3a0e 010397 rtn 
+:      010401 car_stop_run:
+0x3a0f 010402 fetch 1 ,mem_car_le_24g_tx_pair_mode 
+0x3a10 010403 rtn blank 
+0x3a11 010404 fetch 1 ,mem_car_24g_loselink_count 
+0x3a12 010405 arg 15 ,temp 
+0x3a13 010406 isub temp ,null 
+0x3a14 010407 nrtn positive 
+0x3a15 010408 jam 0 ,mem_car_24g_loselink_count 
+0x3a16 010409 setarg 0 
+0x3a17 010410 store 2 ,mem_car_24g_rx_payload_temp + 9 
+0x3a18 010411 call car_gpio_control_stop 
+0x3a19 010413 jam 0x4 ,mem_period_count 
+0x3a1a 010414 jam 0 ,mem_le_adv_enable 
+0x3a1b 010415 jam 1 ,mem_adv_control_start_flag 
+0x3a1c 010416 fetch 1 ,mem_stop_4w1_flag 
+0x3a1d 010417 rtn blank 
+0x3a1e 010418 jam 0x0 ,mem_period_count 
+0x3a1f 010419 jam 1 ,mem_le_adv_enable 
+0x3a20 010420 rtn 
+:      010423 car_set_motor:
+0x3a21 010424 bpatch patch06_2 ,mem_patch06 
+0x3a22 010425 fetch 7 ,mem_24g_rxbuf + 2 
+0x3a23 010426 store 7 ,mem_car_24g_rx_payload_temp 
+0x3a24 010427 fetch 5 ,mem_24g_rxbuf + 9 
+0x3a25 010428 store 5 ,mem_car_24g_rx_payload_temp + 7 
+0x3a26 010429 arg mem_car_24g_rx_payload_temp + 1 ,rega 
+0x3a27 010430 fetch 4 ,mem_car_24g_addr_other 
+0x3a28 010431 branch car_reconnect ,blank 
+0x3a29 010432 arg mem_car_24g_addr_other ,regb 
+0x3a2a 010433 arg 4 ,loopcnt 
+0x3a2b 010434 call string_compare 
+0x3a2c 010435 nrtn zero 
+0x3a2d 010436 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+0x3a2e 010437 arg mem_car_full_control_remote_lap ,regb 
+0x3a2f 010438 arg 4 ,loopcnt 
+0x3a30 010439 call string_compare 
+0x3a31 010440 branch car_run_factory_mode_select ,zero 
+0x3a32 010442 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+0x3a33 010443 arg mem_le_lap ,regb 
+0x3a34 010444 arg 4 ,loopcnt 
+0x3a35 010445 call string_compare 
+0x3a36 010446 nbranch car_set_unconnect ,zero 
+0x3a37 010447 branch car_run_mode_select 
+:      010449 car_set_unconnect:
+0x3a38 010450 jam g24_unconnect ,mem_car_le_24g_tx_pair_mode 
+0x3a39 010451 setarg 0 
+0x3a3a 010452 store 4 ,mem_car_24g_addr_other 
+0x3a3b 010453 rtn 
+:      010455 car_run_factory_mode_select:
+0x3a3c 010456 fetch 1 ,mem_factory_control_flag 
+0x3a3d 010457 beq 0 ,car_set_unconnect 
+0x3a3e 010458 beq 1 ,car_run_mode_select 
+0x3a3f 010459 rtn 
+:      010461 car_run_mode_select:
+0x3a40 010462 jam 0 ,mem_car_24g_loselink_count 
+0x3a41 010463 fetch 2 ,mem_car_24g_rx_payload_temp + 9 
+0x3a42 010464 branch car_stop_run + 9 ,blank 
+0x3a43 010465 call car_pwm_mode_adv_flag_init 
+0x3a44 010466 call car_factory_mode_time 
+0x3a45 010467 call car_motor_mode_1 
+0x3a46 010468 branch car_motor_mode_2 
+:      010470 car_pwm_mode_adv_flag_init:
+0x3a47 010471 fetch 1 ,mem_car_gpio_control_mode 
+0x3a48 010472 nrtn blank 
+0x3a49 010473 jam 1 ,mem_le_adv_enable 
+0x3a4a 010474 jam 1 ,mem_le_adv_channel_map 
+0x3a4b 010475 jam 0 ,mem_stop_4w1_flag 
+0x3a4c 010476 jam 0 ,mem_adv_control_start_flag 
+0x3a4d 010477 setarg 15 
+0x3a4e 010478 store 2 ,mem_100ms_adv_control_timer 
+0x3a4f 010479 rtn 
+:      010481 car_factory_mode_time:
+0x3a50 010482 fetch 1 ,mem_factory_control_flag 
+0x3a51 010483 rtn blank 
+0x3a52 010484 setarg 300 
+0x3a53 010485 store 2 ,mem_100ms_factory_test_control_timer 
+0x3a54 010486 rtn 
+:      010488 car_motor_mode_1:
+0x3a55 010489 fetch 1 ,mem_car_24g_rx_payload_temp + 10 
+0x3a56 010490 beq 1 ,car_b 
+0x3a57 010491 beq 2 ,car_f 
+0x3a58 010492 rtn 
+:      010493 car_motor_mode_2:
+0x3a59 010494 fetch 1 ,mem_car_24g_rx_payload_temp + 9 
+0x3a5a 010495 beq 1 ,car_l 
+0x3a5b 010496 beq 2 ,car_r 
+0x3a5c 010497 rtn 
+:      010499 car_f:
+0x3a5d 010500 fetch 1 ,mem_car_24g_rx_payload_temp + 9 
+0x3a5e 010501 beq 1 ,car_fl 
+0x3a5f 010502 beq 2 ,car_fr 
+0x3a60 010503 jam 0x0a ,mem_period_count 
+0x3a61 010504 branch car_lr_motor_right 
+:      010506 car_b:
+0x3a62 010507 fetch 1 ,mem_car_24g_rx_payload_temp + 9 
+0x3a63 010508 beq 1 ,car_bl 
+0x3a64 010509 beq 2 ,car_br 
+0x3a65 010510 jam 0x28 ,mem_period_count 
+0x3a66 010511 branch car_lr_motor_left 
+:      010513 car_l:
+0x3a67 010514 fetch 1 ,mem_car_24g_rx_payload_temp + 10 
+0x3a68 010515 beq 1 ,car_bl 
+0x3a69 010516 beq 2 ,car_fl 
+0x3a6a 010517 jam 0x3a ,mem_period_count 
+0x3a6b 010518 branch car_fb_motor_back 
+:      010520 car_r:
+0x3a6c 010521 fetch 1 ,mem_car_24g_rx_payload_temp + 10 
+0x3a6d 010522 beq 1 ,car_br 
+0x3a6e 010523 beq 2 ,car_fr 
+0x3a6f 010524 jam 0x40 ,mem_period_count 
+0x3a70 010525 branch car_fb_motor_front 
+:      010527 car_fl:
+0x3a71 010528 jam 0x1c ,mem_period_count 
+0x3a72 010529 call car_lr_motor_right 
+0x3a73 010530 branch car_fb_motor_back 
+:      010531 car_fr:
+0x3a74 010532 jam 0x22 ,mem_period_count 
+0x3a75 010533 call car_lr_motor_right 
+0x3a76 010534 branch car_fb_motor_front 
+:      010535 car_bl:
+0x3a77 010536 jam 0x34 ,mem_period_count 
+0x3a78 010537 call car_lr_motor_left 
+0x3a79 010538 branch car_fb_motor_back 
+:      010539 car_br:
+0x3a7a 010540 jam 0x2e ,mem_period_count 
+0x3a7b 010541 call car_lr_motor_left 
+0x3a7c 010542 branch car_fb_motor_front 
+:      010545 car_reconnect:
+0x3a7d 010546 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+0x3a7e 010547 arg mem_car_full_control_remote_lap ,regb 
+0x3a7f 010548 arg 4 ,loopcnt 
+0x3a80 010549 call string_compare 
+0x3a81 010550 branch car_recive_pair_request ,zero 
+0x3a82 010552 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+0x3a83 010553 arg mem_le_lap ,regb 
+0x3a84 010554 arg 4 ,loopcnt 
+0x3a85 010555 call string_compare 
+0x3a86 010556 nrtn zero 
+0x3a87 010557 branch car_recive_pair_request 
+:      010558 car_recive_pair_request:
+0x3a88 010559 fetch 7 ,mem_24g_rxbuf + 2 
+0x3a89 010560 store 7 ,mem_car_24g_rx_payload_temp 
+0x3a8a 010561 fetch 1 ,mem_car_le_24g_tx_pair_mode 
+0x3a8b 010562 beq g24_unconnect ,car_send_pair_response 
+0x3a8c 010563 beq g24_connected ,car_send_pair_response_juge 
+0x3a8d 010564 rtn 
+:      010565 car_send_pair_response:
+0x3a8e 010566 call car_check_close_ice 
+0x3a8f 010568 jam g24_connected ,mem_car_le_24g_tx_pair_mode 
+0x3a90 010569 jam g24_rx_pair_respones ,mem_car_24g_tx_payload_temp 
+0x3a91 010570 fetch 4 ,mem_car_24g_rx_payload_temp + 1 
+0x3a92 010571 store 4 ,mem_car_24g_addr_other 
+0x3a93 010572 store 4 ,mem_car_24g_tx_payload_temp + 5 
+0x3a94 010573 fetch 4 ,mem_le_lap 
+0x3a95 010574 store 4 ,mem_car_24g_tx_payload_temp + 1 
+0x3a96 010575 rtn 
+:      010577 car_send_pair_response_juge:
+0x3a97 010578 arg mem_car_24g_rx_payload_temp + 1 ,rega 
+0x3a98 010579 arg mem_car_24g_addr_other ,regb 
+0x3a99 010580 arg 4 ,loopcnt 
+0x3a9a 010581 call string_compare 
+0x3a9b 010582 branch car_send_pair_response ,zero 
+:      010585 car_cb_event_timer:
+0x3a9c 010586 fetch 1 ,mem_car_24g_loselink_count 
+0x3a9d 010587 increase 1 ,pdata 
+0x3a9e 010588 store 1 ,mem_car_24g_loselink_count 
+0x3a9f 010589 call car_100ms_timer_adv_control 
+0x3aa0 010590 branch car_100ms_timer_factory_test_control 
+:      010593 car_100ms_timer_adv_control:
+0x3aa1 010594 fetch 1 ,mem_car_gpio_control_mode 
+0x3aa2 010595 nrtn blank 
+0x3aa3 010596 fetch 1 ,mem_adv_control_start_flag 
+0x3aa4 010597 rtn blank 
+0x3aa5 010598 arg mem_100ms_adv_control_timer ,regc 
+0x3aa6 010599 arg car_100ms_timer_adv_control_timeout ,regb 
+0x3aa7 010600 branch timer_single_step_2b 
+:      010601 car_100ms_timer_adv_control_timeout:
+0x3aa8 010602 setarg 15 
+0x3aa9 010603 store 2 ,mem_100ms_adv_control_timer 
+0x3aaa 010604 jam 7 ,mem_le_adv_channel_map 
+0x3aab 010605 jam 0 ,mem_adv_control_start_flag 
+0x3aac 010606 jam 1 ,mem_stop_4w1_flag 
+0x3aad 010607 rtn 
+:      010609 car_100ms_timer_factory_test_control:
+0x3aae 010610 fetch 1 ,mem_factory_control_flag 
+0x3aaf 010611 rtn blank 
+0x3ab0 010612 arg mem_100ms_factory_test_control_timer ,regc 
+0x3ab1 010613 arg car_100ms_timer_factory_test_timeout ,regb 
+0x3ab2 010614 branch timer_single_step_2b 
+:      010615 car_100ms_timer_factory_test_timeout:
+0x3ab3 010616 setarg 300 
+0x3ab4 010617 store 2 ,mem_100ms_factory_test_control_timer 
+0x3ab5 010618 jam 0 ,mem_factory_control_flag 
+0x3ab6 010619 rtn 
+:      010621 car_motor1_status_select:
+0x3ab7 010622 ifetch 1 ,contr 
+0x3ab8 010623 beq turn_front ,car_lr_motor_stop 
+0x3ab9 010624 beq turn_left ,car_lr_motor_left 
+0x3aba 010625 beq turn_right ,car_lr_motor_right 
+0x3abb 010626 rtn 
+:      010627 car_motor2_status_select:
+0x3abc 010628 ifetch 1 ,contr 
+0x3abd 010629 beq motor_stop ,car_fb_motor_stop 
+0x3abe 010630 beq go_back ,car_fb_motor_front 
+0x3abf 010631 beq go_front ,car_fb_motor_back 
+0x3ac0 010632 rtn 
+:      010634 car_lr_motor_stop:
+0x3ac1 010635 fetcht 1 ,mem_car_motor_left_gpio 
+0x3ac2 010636 call gpio_out_inactive 
+0x3ac3 010637 fetcht 1 ,mem_car_motor_right_gpio 
+0x3ac4 010638 branch gpio_out_inactive 
+:      010639 car_lr_motor_left:
+0x3ac5 010640 fetcht 1 ,mem_car_motor_left_gpio 
+0x3ac6 010641 call gpio_out_active 
+0x3ac7 010642 fetcht 1 ,mem_car_motor_right_gpio 
+0x3ac8 010643 branch gpio_out_inactive 
+:      010644 car_lr_motor_right:
+0x3ac9 010645 fetcht 1 ,mem_car_motor_left_gpio 
+0x3aca 010646 call gpio_out_inactive 
+0x3acb 010647 fetcht 1 ,mem_car_motor_right_gpio 
+0x3acc 010648 branch gpio_out_active 
+:      010649 car_fb_motor_stop:
+0x3acd 010650 fetcht 1 ,mem_car_motor_front_gpio 
+0x3ace 010651 call gpio_out_inactive 
+0x3acf 010652 fetcht 1 ,mem_car_motor_back_gpio 
+0x3ad0 010653 branch gpio_out_inactive 
+:      010654 car_fb_motor_front:
+0x3ad1 010655 fetcht 1 ,mem_car_motor_front_gpio 
+0x3ad2 010656 call gpio_out_active 
+0x3ad3 010657 fetcht 1 ,mem_car_motor_back_gpio 
+0x3ad4 010658 branch gpio_out_inactive 
+:      010659 car_fb_motor_back:
+0x3ad5 010660 fetcht 1 ,mem_car_motor_front_gpio 
+0x3ad6 010661 call gpio_out_inactive 
+0x3ad7 010662 fetcht 1 ,mem_car_motor_back_gpio 
+0x3ad8 010663 branch gpio_out_active 
+:      010665 car_le_stop_random_delay_check:
+0x3ad9 010666 fetch 1 ,mem_stop_4w1_flag 
+0x3ada 010667 branch le_adv_not_match + 13 ,blank 
+0x3adb 010668 branch le_adv_not_match + 8 
+:      010670 car_check_close_ice:
+0x3adc 010671 fetch 1 ,mem_car_gpio_control_mode 
+0x3add 010672 rtn blank 
+0x3ade 010673 branch lpm_write_ice_disable 
+:      010679 remote_car_init:
+0x3adf 010680 call enable_authrom 
+0x3ae0 010681 bpatch patch06_3 ,mem_patch06 
+0x3ae1 010683 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+0x3ae2 010684 call lpm_write_ice_enable ,blank 
+0x3ae3 010685 call remote_car_set__lpm_timer_set 
+0x3ae4 010686 rtn wake 
+0x3ae5 010687 call wdt_set_disable 
+0x3ae6 010688 setarg remote_car_idle_process 
+0x3ae7 010689 store 2 ,mem_cb_idle_process 
+0x3ae8 010691 setarg remote_car_cb_event_timer 
+0x3ae9 010692 store 2 ,mem_cb_event_timer 
+0x3aea 010693 call remote_car_get_txid 
+0x3aeb 010694 call remote_car_txid_check 
+0x3aec 010695 call remote_car_whitening_24g_addr 
+0x3aed 010696 branch remote_car_lpm_gpio_config_flag_init 
+:      010699 remote_car_default_init:
+0x3aee 010700 jam 0x0a ,mem_tx_power 
+0x3aef 010701 jam 0x84 ,mem_24g_tx_phy 
+0x3af0 010702 jam 0x84 ,mem_24g_rx_phy 
+0x3af1 010703 setarg 0xffffff 
+0x3af2 010704 store 3 ,mem_remote_full_control_remote_lap 
+0x3af3 010705 jam 0xff ,mem_remote_full_control_remote_lap + 3 
+0x3af4 010706 setarg 0 
+0x3af5 010707 store 3 ,mem_le_lap 
+0x3af6 010708 setarg 0x220101 
+0x3af7 010709 store 3 ,mem_le_lap + 3 
+0x3af8 010710 setarg 0x858c0c 
+0x3af9 010711 store 3 ,mem_remote_car_key_conf0 
+0x3afa 010712 jam 0x05 ,mem_remote_car_key_conf0 + 3 
+0x3afb 010713 jam 0x0d ,mem_24g_tx_led_map 
+0x3afc 010714 jam 0x12 ,mem_key_public_gpio 
+0x3afd 010715 setarg 0x241404 
+0x3afe 010716 store 3 ,mem_24g_ch_map1 
+0x3aff 010717 jam 0x34 ,mem_24g_ch_map1 + 3 
+0x3b00 010719 jam 0x0c ,mem_system_clk 
+0x3b01 010720 setarg 0x643f35 
+0x3b02 010721 store 3 ,mem_lpm_xtalcnt 
+0x3b03 010722 setarg 0x3b2f8f 
+0x3b04 010723 store 3 ,mem_lpm_isogate 
+0x3b05 010724 jam 0x20 ,mem_lpm_hibernate_switch 
+0x3b06 010725 jam 0x00 ,mem_lpm_ldo_sel 
+0x3b07 010726 jam 0x08 ,mem_lpm_sysctl 
+0x3b08 010727 jam 0xb4 ,mem_lpm_hv_sel 
+0x3b09 010728 jam 0x18 ,mem_fcomp_div 
+0x3b0a 010729 jam 0x3e ,mem_xtal_c_sel 
+0x3b0b 010730 setarg 0x50e08 
+0x3b0c 010731 store 3 ,mem_version 
+0x3b0d 010732 setarg 0x3 
+0x3b0e 010733 store 2 ,mem_version + 3 
+0x3b0f 010734 jam 0x20 ,mem_le_tx2m_delay 
+0x3b10 010735 jam 0xff ,mem_gain_fix 
+0x3b11 010736 setarg 0xc00 
+0x3b12 010737 store 2 ,mem_rx_window_sniff 
+0x3b13 010738 setarg 0x4 
+0x3b14 010739 store 3 ,mem_gain_table 
+0x3b15 010740 jam 0x08 ,mem_gain_second_agc_en 
+0x3b16 010741 jam 0xa0 ,mem_ring_ibias_trim 
+0x3b17 010742 setarg 0x2bc 
+0x3b18 010743 store 2 ,mem_ring_ibias_vtune_high 
+0x3b19 010744 setarg 0x190 
+0x3b1a 010745 store 2 ,mem_ring_ibias_vtune_low 
+0x3b1b 010746 jam 0x03 ,mem_ring_ibias_calc_adc_gpio 
+0x3b1c 010747 jam 0x09 ,mem_ring_ibias_calc_adc_channel 
+0x3b1d 010748 jam 0xff ,mem_rf_init_data 
+0x3b1e 010749 setarg mem_rf_init_data 
+0x3b1f 010750 store 2 ,mem_rf_init_ptr 
+0x3b20 010752 call enable_otp_read 
+0x3b21 010753 arg mem_otp_sys_cfg_temp ,rega 
+0x3b22 010754 arg otp_sys_param_cfg ,regb 
+0x3b23 010755 arg 60 ,loopcnt 
+0x3b24 010756 call otp_read_data 
+0x3b25 010757 call disable_otp 
+0x3b26 010758 fetch 1 ,mem_otp_sys_cfg_temp 
+0x3b27 010759 ncall remote_car_system_clk ,blank 
+0x3b28 010761 fetch 3 ,mem_otp_sys_cfg_temp + 1 
+0x3b29 010762 ncall remote_car_lpm_xtalcnt ,blank 
+0x3b2a 010764 fetch 3 ,mem_otp_sys_cfg_temp + 4 
+0x3b2b 010765 ncall remote_car_lpm_isogate ,blank 
+0x3b2c 010767 fetch 1 ,mem_otp_sys_cfg_temp + 7 
+0x3b2d 010768 ncall remote_car_lpm_hibernate_switch ,blank 
+0x3b2e 010770 fetch 1 ,mem_otp_sys_cfg_temp + 8 
+0x3b2f 010771 ncall remote_car_lpm_ldo_sel ,blank 
+0x3b30 010773 fetch 1 ,mem_otp_sys_cfg_temp + 9 
+0x3b31 010774 ncall remote_car_lpm_sysctl ,blank 
+0x3b32 010776 fetch 1 ,mem_otp_sys_cfg_temp + 10 
+0x3b33 010777 ncall remote_car_lpm_hv_sel ,blank 
+0x3b34 010779 fetch 1 ,mem_otp_sys_cfg_temp + 11 
+0x3b35 010780 ncall remote_car_fcomp_div ,blank 
+0x3b36 010782 fetch 1 ,mem_otp_sys_cfg_temp + 12 
+0x3b37 010783 ncall remote_car_xtal_c_sel ,blank 
+0x3b38 010785 fetch 5 ,mem_otp_sys_cfg_temp + 13 
+0x3b39 010786 ncall remote_car_version ,blank 
+0x3b3a 010788 fetch 1 ,mem_otp_sys_cfg_temp + 18 
+0x3b3b 010789 ncall remote_car_le_tx2m_delay ,blank 
+0x3b3c 010791 fetch 1 ,mem_otp_sys_cfg_temp + 19 
+0x3b3d 010792 ncall remote_car_gain_fix ,blank 
+0x3b3e 010794 fetch 2 ,mem_otp_sys_cfg_temp + 20 
+0x3b3f 010795 ncall remote_car_rx_window_sniff ,blank 
+0x3b40 010797 fetch 3 ,mem_otp_sys_cfg_temp + 22 
+0x3b41 010798 ncall remote_car_gain_table ,blank 
+0x3b42 010800 fetch 1 ,mem_otp_sys_cfg_temp + 25 
+0x3b43 010801 ncall remote_car_gain_second_agc_en ,blank 
+0x3b44 010803 fetch 1 ,mem_otp_sys_cfg_temp + 26 
+0x3b45 010804 ncall remote_car_ring_ibias_trim ,blank 
+0x3b46 010806 fetch 2 ,mem_otp_sys_cfg_temp + 27 
+0x3b47 010807 ncall remote_car_ring_ibias_vtune_high ,blank 
+0x3b48 010809 fetch 2 ,mem_otp_sys_cfg_temp + 29 
+0x3b49 010810 ncall remote_car_ring_ibias_vtune_low ,blank 
+0x3b4a 010812 fetch 1 ,mem_otp_sys_cfg_temp + 31 
+0x3b4b 010813 ncall remote_car_ring_ibias_calc_adc_gpio ,blank 
+0x3b4c 010815 fetch 1 ,mem_otp_sys_cfg_temp + 32 
+0x3b4d 010816 ncall remote_car_ring_ibias_calc_adc_channel ,blank 
+0x3b4e 010818 fetch 1 ,mem_otp_sys_cfg_temp + 37 
+0x3b4f 010819 ncall remote_car_tx_power ,blank 
+0x3b50 010821 fetch 1 ,mem_otp_sys_cfg_temp + 38 
+0x3b51 010822 ncall remote_car_24g_tx_phy ,blank 
+0x3b52 010824 fetch 1 ,mem_otp_sys_cfg_temp + 39 
+0x3b53 010825 ncall remote_car_24g_rx_phy ,blank 
+0x3b54 010827 fetch 4 ,mem_otp_sys_cfg_temp + 40 
+0x3b55 010828 ncall remote_car_key_conf0 ,blank 
+0x3b56 010830 fetch 1 ,mem_otp_sys_cfg_temp + 44 
+0x3b57 010831 ncall remote_car_key_public_gpio ,blank 
+0x3b58 010833 fetch 1 ,mem_otp_sys_cfg_temp + 45 
+0x3b59 010834 ncall remote_car_24g_tx_led_map ,blank 
+0x3b5a 010836 fetch 4 ,mem_otp_sys_cfg_temp + 46 
+0x3b5b 010837 ncall remote_car_24g_addr ,blank 
+0x3b5c 010839 fetch 4 ,mem_otp_sys_cfg_temp + 50 
+0x3b5d 010840 ncall remote_car_24g_ch_map1 ,blank 
+0x3b5e 010841 rtn 
+:      010843 remote_car_system_clk:
+0x3b5f 010844 store 1 ,mem_system_clk 
+0x3b60 010845 rtn 
+:      010846 remote_car_lpm_xtalcnt:
+0x3b61 010847 store 3 ,mem_lpm_xtalcnt 
+0x3b62 010848 rtn 
+:      010849 remote_car_lpm_isogate:
+0x3b63 010850 store 3 ,mem_lpm_isogate 
+0x3b64 010851 rtn 
+:      010852 remote_car_lpm_hibernate_switch:
+0x3b65 010853 store 1 ,mem_lpm_hibernate_switch 
+0x3b66 010854 rtn 
+:      010855 remote_car_lpm_ldo_sel:
+0x3b67 010856 store 1 ,mem_lpm_ldo_sel 
+0x3b68 010857 rtn 
+:      010858 remote_car_lpm_sysctl:
+0x3b69 010859 store 1 ,mem_lpm_sysctl 
+0x3b6a 010860 rtn 
+:      010861 remote_car_lpm_hv_sel:
+0x3b6b 010862 store 1 ,mem_lpm_hv_sel 
+0x3b6c 010863 rtn 
+:      010864 remote_car_fcomp_div:
+0x3b6d 010865 store 1 ,mem_fcomp_div 
+0x3b6e 010866 rtn 
+:      010867 remote_car_xtal_c_sel:
+0x3b6f 010868 store 1 ,mem_xtal_c_sel 
+0x3b70 010869 rtn 
+:      010870 remote_car_version:
+0x3b71 010871 store 5 ,mem_version 
+0x3b72 010872 rtn 
+:      010873 remote_car_le_tx2m_delay:
+0x3b73 010874 store 1 ,mem_le_tx2m_delay 
+0x3b74 010875 rtn 
+:      010876 remote_car_gain_fix:
+0x3b75 010877 store 1 ,mem_gain_fix 
+0x3b76 010878 rtn 
+:      010879 remote_car_rx_window_sniff:
+0x3b77 010880 store 2 ,mem_rx_window_sniff 
+0x3b78 010881 rtn 
+:      010882 remote_car_gain_table:
+0x3b79 010883 store 3 ,mem_gain_table 
+0x3b7a 010884 rtn 
+:      010885 remote_car_gain_second_agc_en:
+0x3b7b 010886 store 1 ,mem_gain_second_agc_en 
+0x3b7c 010887 rtn 
+:      010888 remote_car_ring_ibias_trim:
+0x3b7d 010889 store 1 ,mem_ring_ibias_trim 
+0x3b7e 010890 rtn 
+:      010891 remote_car_ring_ibias_vtune_high:
+0x3b7f 010892 store 2 ,mem_ring_ibias_vtune_high 
+0x3b80 010893 rtn 
+:      010894 remote_car_ring_ibias_vtune_low:
+0x3b81 010895 store 2 ,mem_ring_ibias_vtune_low 
+0x3b82 010896 rtn 
+:      010897 remote_car_ring_ibias_calc_adc_gpio:
+0x3b83 010898 store 1 ,mem_ring_ibias_calc_adc_gpio 
+0x3b84 010899 rtn 
+:      010900 remote_car_ring_ibias_calc_adc_channel:
+0x3b85 010901 store 1 ,mem_ring_ibias_calc_adc_channel 
+0x3b86 010902 rtn 
+:      010903 remote_car_tx_power:
+0x3b87 010904 store 1 ,mem_tx_power 
+0x3b88 010905 rtn 
+:      010906 remote_car_24g_tx_phy:
+0x3b89 010907 store 1 ,mem_24g_tx_phy 
+0x3b8a 010908 rtn 
+:      010909 remote_car_24g_rx_phy:
+0x3b8b 010910 store 1 ,mem_24g_rx_phy 
+0x3b8c 010911 rtn 
+:      010912 remote_car_key_conf0:
+0x3b8d 010913 store 4 ,mem_remote_car_key_conf0 
+0x3b8e 010914 rtn 
+:      010915 remote_car_key_public_gpio:
+0x3b8f 010916 store 1 ,mem_key_public_gpio 
+0x3b90 010917 rtn 
+:      010918 remote_car_24g_tx_led_map:
+0x3b91 010919 store 1 ,mem_24g_tx_led_map 
+0x3b92 010920 rtn 
+:      010921 remote_car_24g_addr:
+0x3b93 010922 store 4 ,mem_24g_addr 
+0x3b94 010923 rtn 
+:      010924 remote_car_24g_ch_map1:
+0x3b95 010925 store 4 ,mem_24g_ch_map1 
+0x3b96 010926 rtn 
+:      010932 remote_car_set__lpm_timer_set:
+0x3b97 010933 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+0x3b98 010934 beq g24_unconnect ,remote_car_set_uconnect_lpm_time 
+0x3b99 010935 beq g24_connected ,remote_car_set_connected_lpm_time 
+0x3b9a 010936 rtn 
+:      010937 remote_car_set_uconnect_lpm_time:
+0x3b9b 010938 setarg 0 
+0x3b9c 010939 store 2 ,mem_24g_lpm_timer_count 
+0x3b9d 010940 setarg 300 
+0x3b9e 010941 store 2 ,mem_24g_lpm_enter_count 
+0x3b9f 010942 rtn 
+:      010943 remote_car_set_connected_lpm_time:
+0x3ba0 010944 setarg 0 
+0x3ba1 010945 store 2 ,mem_24g_lpm_timer_count 
+0x3ba2 010946 setarg 15 
+0x3ba3 010947 store 2 ,mem_24g_lpm_enter_count 
+0x3ba4 010948 rtn 
+:      010951 remote_car_get_txid:
+0x3ba5 010952 call enable_otp_read 
+0x3ba6 010953 arg mem_remote_otp_lot_xy_temp ,rega 
+0x3ba7 010954 arg otp_mac_addr ,regb 
+0x3ba8 010955 arg 6 ,loopcnt 
+0x3ba9 010956 call otp_read_data 
+0x3baa 010957 call disable_otp 
+0x3bab 010958 fetch 6 ,mem_remote_otp_lot_xy_temp 
+0x3bac 010959 rtn blank 
+0x3bad 010960 fetch 2 ,mem_remote_otp_lot_xy_temp 
+0x3bae 010961 store 2 ,mem_le_lap 
+0x3baf 010962 fetch 1 ,mem_remote_otp_lot_xy_temp + 3 
+0x3bb0 010963 store 1 ,mem_le_lap + 2 
+0x3bb1 010964 fetch 1 ,mem_remote_otp_lot_xy_temp + 5 
+0x3bb2 010965 store 1 ,mem_le_lap + 3 
+0x3bb3 010967 fetch 1 ,mem_remote_otp_lot_xy_temp + 1 
+0x3bb4 010968 sub pdata ,26 ,null 
+0x3bb5 010969 nrtn positive 
+0x3bb6 010971 fetch 1 ,mem_remote_otp_lot_xy_temp + 2 
+0x3bb7 010972 rtn blank 
+0x3bb8 010973 random pdata 
+0x3bb9 010974 and_into 0x07 ,pdata 
+0x3bba 010975 lshift pdata ,pdata 
+0x3bbb 010976 lshift4 pdata ,pdata 
+0x3bbc 010977 fetcht 1 ,mem_remote_otp_lot_xy_temp + 1 
+0x3bbd 010978 iadd temp ,pdata 
+0x3bbe 010979 store 1 ,mem_le_lap + 1 
+0x3bbf 010980 arg mem_le_lap + 1 ,rega 
+0x3bc0 010981 arg otp_mac_addr_piecenum ,regb 
+0x3bc1 010982 arg 1 ,loopcnt 
+0x3bc2 010983 branch otp_write 
+:      010985 remote_car_txid_check:
+0x3bc3 010986 arg mem_le_lap ,rega 
+0x3bc4 010987 arg mem_remote_full_control_remote_lap ,regb 
+0x3bc5 010988 arg 4 ,loopcnt 
+0x3bc6 010989 call string_compare 
+0x3bc7 010990 nrtn zero 
+0x3bc8 010991 fetch 1 ,mem_le_lap 
+0x3bc9 010992 pincrease -1 
+0x3bca 010993 store 1 ,mem_le_lap 
+0x3bcb 010994 rtn 
+:      010996 remote_car_whitening_24g_addr:
+0x3bcc 010997 arg 4 ,loopcnt 
+0x3bcd 010998 arg mem_24g_addr ,regc 
+0x3bce 010999 arg 0xae ,regb 
+:      011000 remote_car_24g_whitening_loop:
+0x3bcf 011001 call remote_car_24g_whitening_byte 
+0x3bd0 011002 increase 1 ,regc 
+0x3bd1 011003 loop remote_car_24g_whitening_loop 
+0x3bd2 011004 rtn 
+:      011006 remote_car_24g_whitening_byte:
+0x3bd3 011007 arg 1 ,rega 
+:      011008 remote_car_24g_whitening_byte_loop:
+0x3bd4 011009 lshift regb ,regb 
+0x3bd5 011010 isolate1 7 ,regb 
+0x3bd6 011011 call remote_car_24g_whitening_byte_xor ,true 
+0x3bd7 011012 lshift rega ,rega 
+0x3bd8 011013 deposit rega 
+0x3bd9 011014 rtnbit1 8 
+0x3bda 011015 branch remote_car_24g_whitening_byte_loop 
+:      011017 remote_car_24g_whitening_byte_xor:
+0x3bdb 011018 ifetch 1 ,regc 
+0x3bdc 011019 ixor rega ,pdata 
+0x3bdd 011020 istore 1 ,regc 
+0x3bde 011021 xor regb ,0x11 ,regb 
+0x3bdf 011022 rtn 
+:      011025 remote_car_lpm_gpio_config_flag_init:
+0x3be0 011026 arg 0 ,temp 
+0x3be1 011027 arg mem_remote_car_key_conf0 + 1 ,contr 
+0x3be2 011028 arg 2 ,loopcnt 
+:      011029 remote_car_iocfg_pullup_loop:
+0x3be3 011030 ifetch 1 ,contr 
+0x3be4 011031 set0 7 ,pdata 
+0x3be5 011032 copy pdata ,queue 
+0x3be6 011033 setarg 0 
+0x3be7 011034 qset1 pdata 
+0x3be8 011035 iadd temp ,temp 
+0x3be9 011036 loop remote_car_iocfg_pullup_loop 
+0x3bea 011037 storet 4 ,mem_remote_lpm_gpio_config_flag 
+0x3beb 011038 rtn 
+:      011041 remote_car_idle_process:
+0x3bec 011042 bpatch patch06_4 ,mem_patch06 
+0x3bed 011043 fetch 2 ,mem_remote_le_24g_ch_count 
+0x3bee 011044 increase 1 ,pdata 
+0x3bef 011045 store 2 ,mem_remote_le_24g_ch_count 
+0x3bf0 011046 rshift2 pdata ,pdata 
+0x3bf1 011047 call remote_car_set_24g_ch 
+0x3bf2 011048 call remote_car_g24_recved_ack_parse 
+:      011049 remote_car_24g_matching_process:
+0x3bf3 011050 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+0x3bf4 011051 beq g24_unconnect ,remote_car_send_pair_request 
+0x3bf5 011052 beq g24_connected ,remote_car_send_remote_control 
+0x3bf6 011053 rtn 
+:      011056 remote_car_set_24g_ch:
+0x3bf7 011057 beq 0 ,remote_car_set_ch0 
+0x3bf8 011058 beq 1 ,remote_car_set_ch1 
+0x3bf9 011059 beq 2 ,remote_car_set_ch2 
+0x3bfa 011060 beq 3 ,remote_car_set_ch3 
+0x3bfb 011061 branch remote_car_set_ch_reset 
+:      011063 remote_car_set_ch0:
+0x3bfc 011064 fetch 1 ,mem_24g_ch_map1 
+0x3bfd 011065 store 1 ,mem_24g_ch 
+0x3bfe 011066 rtn 
+:      011067 remote_car_set_ch1:
+0x3bff 011068 fetch 1 ,mem_24g_ch_map1 + 1 
+0x3c00 011069 store 1 ,mem_24g_ch 
+0x3c01 011070 rtn 
+:      011071 remote_car_set_ch2:
+0x3c02 011072 fetch 1 ,mem_24g_ch_map1 + 2 
+0x3c03 011073 store 1 ,mem_24g_ch 
+0x3c04 011074 rtn 
+:      011075 remote_car_set_ch3:
+0x3c05 011076 fetch 1 ,mem_24g_ch_map1 + 3 
+0x3c06 011077 store 1 ,mem_24g_ch 
+0x3c07 011078 rtn 
+:      011079 remote_car_set_ch_reset:
+0x3c08 011080 setarg 0 
+0x3c09 011081 store 2 ,mem_remote_le_24g_ch_count 
+0x3c0a 011082 rtn 
+:      011085 remote_car_send_pair_request:
+0x3c0b 011086 jam g24_tx_pair_request ,mem_remote_24g_tx_payload_temp 
+0x3c0c 011087 fetch 4 ,mem_le_lap 
+0x3c0d 011088 store 4 ,mem_remote_24g_tx_payload_temp + 1 
+0x3c0e 011089 branch remote_car_g24_sim_tx_with_datalen_set 
+:      011092 remote_car_g24_sim_tx_with_datalen_set:
+0x3c0f 011093 set0 mark_24g_rxmode ,mark 
+0x3c10 011094 setarg 0x2ee0 
+0x3c11 011095 store 2 ,mem_24g_rx_window 
+0x3c12 011096 fetch 7 ,mem_remote_24g_tx_payload_temp 
+0x3c13 011097 store 7 ,mem_24g_txbuf 
+0x3c14 011098 fetch 5 ,mem_remote_24g_tx_payload_temp + 7 
+0x3c15 011099 store 5 ,mem_24g_txbuf + 7 
+0x3c16 011100 arg len_of_24g_payload ,loopcnt 
+0x3c17 011101 arg 0 ,pdata 
+0x3c18 011102 arg mem_24g_txbuf ,contr 
+0x3c19 011103 call cal_sum 
+0x3c1a 011104 istore 1 ,contw 
+0x3c1b 011105 setarg len_of_24g_payload 
+0x3c1c 011106 increase 1 ,pdata 
+0x3c1d 011107 store 1 ,mem_24g_datalen 
+0x3c1e 011108 branch remote_car_g24_sim_tx 
+:      011112 remote_car_g24_sim_tx:
+0x3c1f 011113 fetch 1 ,mem_24g_tx_phy 
+0x3c20 011114 call le_enable_phy_by_pdata 
+0x3c21 011115 call g24_syncword_crc8 
+0x3c22 011116 jam 0x88 ,mem_rssi_hex 
+0x3c23 011118 call g24_transmit_prep 
+0x3c24 011119 call g24_transmit_receive_ack 
+0x3c25 011120 call g24_end_of_packet 
+0x3c26 011121 fetch 1 ,mem_24g_no_ack 
+0x3c27 011122 beq no_ack_24g ,remote_car_g24_transmit_no_ack 
+0x3c28 011123 nbranch remote_car_g24_transmit_no_ack ,user3 
+0x3c29 011124 nbranch remote_car_g24_transmit_no_ack ,sync 
+0x3c2a 011125 call remote_car_24g_recved_ack 
+:      011126 remote_car_g24_transmit_no_ack:
+0x3c2b 011127 random pdata 
+0x3c2c 011128 arg 0x1ff ,temp 
+0x3c2d 011129 iand temp ,pdata 
+0x3c2e 011130 add pdata ,250 ,pdata 
+0x3c2f 011131 branch delay 
+:      011134 remote_car_24g_recved_ack:
+0x3c30 011135 jam 1 ,mem_remote_le_24g_recv_ack_flag 
+0x3c31 011136 rtn 
+:      011138 remote_car_g24_recved_ack_parse:
+0x3c32 011139 fetch 1 ,mem_remote_le_24g_recv_ack_flag 
+0x3c33 011140 rtn blank 
+0x3c34 011141 jam 0 ,mem_remote_le_24g_recv_ack_flag 
+0x3c35 011142 fetch 1 ,mem_24g_rxbuf + 2 
+0x3c36 011143 beq g24_rx_pair_respones ,remote_car_g24_tx_connected 
+0x3c37 011144 rtn 
+:      011147 remote_car_g24_tx_connected:
+0x3c38 011148 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+0x3c39 011149 nrtn blank 
+0x3c3a 011150 arg mem_24g_rxbuf + 7 ,rega 
+0x3c3b 011151 arg mem_le_lap ,regb 
+0x3c3c 011152 arg 4 ,loopcnt 
+0x3c3d 011153 call string_compare 
+0x3c3e 011154 nrtn zero 
+0x3c3f 011155 call lpm_write_ice_disable 
+0x3c40 011156 jam g24_connected ,mem_remote_le_24g_tx_pair_mode 
+0x3c41 011157 fetch 4 ,mem_24g_rxbuf + 3 
+0x3c42 011158 store 4 ,mem_remote_24g_addr_other 
+0x3c43 011159 store 4 ,mem_remote_24g_tx_payload_temp + 5 
+0x3c44 011161 branch remote_car_set_connected_lpm_time 
+:      011165 remote_car_send_remote_control:
+0x3c45 011166 bpatch patch06_5 ,mem_patch06 
+0x3c46 011167 fetch 1 ,mem_le_24g_tx_send_flag 
+0x3c47 011168 increase 1 ,pdata 
+0x3c48 011169 store 1 ,mem_le_24g_tx_send_flag 
+0x3c49 011170 jam 0 ,mem_remote_24g_tx_payload_temp 
+0x3c4a 011171 setarg 0 
+0x3c4b 011172 store 3 ,mem_remote_24g_tx_payload_temp + 9 
+0x3c4c 011173 jam g24_tx_remote_control ,mem_remote_24g_tx_payload_temp 
+0x3c4d 011174 call remote_car_scan_key 
+0x3c4e 011175 call remote_car_set_tx_key_led 
+0x3c4f 011176 fetch 1 ,mem_le_24g_tx_send_flag 
+0x3c50 011177 beq 200 ,remote_car_24g_tx_send_none 
+0x3c51 011178 branch remote_car_g24_sim_tx_with_datalen_set 
+:      011181 remote_car_scan_key:
+0x3c52 011182 fetcht 1 ,mem_key_public_gpio 
+0x3c53 011183 call gpio_out_inactive 
+0x3c54 011184 call remote_car_key_scan_fb 
+0x3c55 011185 call remote_car_key_scan_lr 
+0x3c56 011187 fetcht 1 ,mem_key_public_gpio 
+0x3c57 011188 branch gpio_set_high_impedance 
+:      011191 remote_car_key_scan_lr:
+0x3c58 011192 fetcht 1 ,mem_remote_car_key_conf3 
+0x3c59 011193 call gpio_out_inactive 
+0x3c5a 011195 fetcht 1 ,mem_remote_car_key_conf3 
+0x3c5b 011196 call gpio_config_input 
+0x3c5c 011197 call gpio_get_bit 
+0x3c5d 011198 branch remote_car_set_keyr ,true 
+0x3c5e 011200 fetcht 1 ,mem_remote_car_key_conf3 
+0x3c5f 011201 call gpio_out_active 
+0x3c60 011202 nop 1200 
+0x3c61 011203 fetcht 1 ,mem_remote_car_key_conf2 
+0x3c62 011204 call gpio_config_input 
+0x3c63 011205 call gpio_get_bit 
+0x3c64 011206 branch remote_car_set_keyl ,true 
+0x3c65 011207 rtn 
+:      011208 remote_car_key_scan_fb:
+0x3c66 011209 fetcht 1 ,mem_remote_car_key_conf0 
+0x3c67 011210 call gpio_out_inactive 
+0x3c68 011212 fetcht 1 ,mem_remote_car_key_conf0 
+0x3c69 011213 call gpio_config_input 
+0x3c6a 011214 call gpio_get_bit 
+0x3c6b 011215 branch remote_car_set_keyf ,true 
+0x3c6c 011217 fetcht 1 ,mem_remote_car_key_conf0 
+0x3c6d 011218 call gpio_out_active 
+0x3c6e 011219 nop 1200 
+0x3c6f 011220 fetcht 1 ,mem_remote_car_key_conf1 
+0x3c70 011221 call gpio_config_input 
+0x3c71 011222 call gpio_get_bit 
+0x3c72 011223 branch remote_car_set_keyb ,true 
+0x3c73 011224 rtn 
+:      011226 remote_car_set_keyf:
+0x3c74 011227 jam 1 ,mem_remote_24g_tx_payload_temp + 9 
+0x3c75 011228 jam 0 ,mem_le_24g_tx_send_flag 
+0x3c76 011229 rtn 
+:      011231 remote_car_set_keyb:
+0x3c77 011232 jam 2 ,mem_remote_24g_tx_payload_temp + 9 
+0x3c78 011233 jam 0 ,mem_le_24g_tx_send_flag 
+0x3c79 011234 rtn 
+:      011236 remote_car_set_keyl:
+0x3c7a 011237 jam 1 ,mem_remote_24g_tx_payload_temp + 10 
+0x3c7b 011238 jam 0 ,mem_le_24g_tx_send_flag 
+0x3c7c 011239 rtn 
+:      011241 remote_car_set_keyr:
+0x3c7d 011242 jam 2 ,mem_remote_24g_tx_payload_temp + 10 
+0x3c7e 011243 jam 0 ,mem_le_24g_tx_send_flag 
+0x3c7f 011244 rtn 
+:      011246 remote_car_set_keym:
+0x3c80 011247 jam 1 ,mem_remote_24g_tx_payload_temp + 11 
+0x3c81 011248 jam 0 ,mem_le_24g_tx_send_flag 
+0x3c82 011249 rtn 
+:      011251 remote_car_set_tx_key_led:
+0x3c83 011252 fetch 3 ,mem_remote_24g_tx_payload_temp + 9 
+0x3c84 011253 branch remote_car_24g_led_off + 1 ,blank 
+0x3c85 011254 setarg 0 
+0x3c86 011255 store 2 ,mem_24g_lpm_timer_count 
+0x3c87 011256 setarg 15 
+0x3c88 011257 store 2 ,mem_24g_lpm_enter_count 
+0x3c89 011258 branch remote_car_24g_led_on 
+:      011260 remote_car_24g_tx_send_none:
+0x3c8a 011261 fetch 1 ,mem_le_24g_tx_send_flag 
+0x3c8b 011262 increase -1 ,pdata 
+0x3c8c 011263 store 1 ,mem_le_24g_tx_send_flag 
+0x3c8d 011264 rtn 
+:      011267 remote_car_24g_set_led:
+0x3c8e 011268 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+0x3c8f 011269 rtneq g24_connected 
+0x3c90 011270 fetch 1 ,mem_24g_led_count 
+0x3c91 011271 increase 1 ,pdata 
+0x3c92 011272 store 1 ,mem_24g_led_count 
+0x3c93 011273 beq 2 ,remote_car_24g_led_on 
+0x3c94 011274 beq 4 ,remote_car_24g_led_off 
+0x3c95 011275 rtn 
+:      011277 remote_car_24g_led_on:
+0x3c96 011278 fetcht 1 ,mem_24g_tx_led_map 
+0x3c97 011279 branch gpio_out_inactive 
+:      011281 remote_car_24g_led_off:
+0x3c98 011282 jam 0 ,mem_24g_led_count 
+0x3c99 011283 fetcht 1 ,mem_24g_tx_led_map 
+0x3c9a 011284 branch gpio_out_active 
+:      011287 remote_car_lpm_timeout_set:
+0x3c9b 011288 fetch 2 ,mem_24g_lpm_enter_count 
+0x3c9c 011289 rtn blank 
+0x3c9d 011290 fetcht 2 ,mem_24g_lpm_timer_count 
+0x3c9e 011291 ixor temp ,pdata 
+0x3c9f 011292 call remote_car_enter_lpm ,blank 
+0x3ca0 011293 fetch 2 ,mem_24g_lpm_timer_count 
+0x3ca1 011294 increase 1 ,pdata 
+0x3ca2 011295 store 2 ,mem_24g_lpm_timer_count 
+0x3ca3 011296 rtn 
+:      011298 remote_car_cb_event_timer:
+0x3ca4 011299 call remote_car_24g_set_led 
+0x3ca5 011300 branch remote_car_lpm_timeout_set 
+:      011303 remote_car_enter_lpm:
+0x3ca6 011304 call lpm_write_ice_disable 
+0x3ca7 011305 call remote_car_enter_lpm_gpio_config 
+0x3ca8 011306 call remote_car_wakeup_config 
+0x3ca9 011307 arg -1 ,temp 
+0x3caa 011308 branch lpm_sleep 
+:      011311 remote_car_enter_lpm_gpio_config:
+0x3cab 011312 arg 24 ,loopcnt 
+0x3cac 011313 jam 0 ,mem_remote_lpm_gpio_config_io_temp 
+:      011314 remote_car_enter_lpm_gpio_config_loopcnt:
+0x3cad 011315 fetcht 1 ,mem_remote_lpm_gpio_config_io_temp 
+0x3cae 011316 copy temp ,queue 
+0x3caf 011317 fetch 4 ,mem_remote_lpm_gpio_config_flag 
+0x3cb0 011318 qisolate1 pdata 
+0x3cb1 011319 branch remote_car_enter_lpm_gpio_config_pull_up ,true 
+0x3cb2 011320 or temp ,0x80 ,temp 
+:      011322 remote_car_enter_lpm_gpio_config_pull_up:
+0x3cb3 011323 call gpio_config_input 
+0x3cb4 011324 fetch 1 ,mem_remote_lpm_gpio_config_io_temp 
+0x3cb5 011325 pincrease 1 
+0x3cb6 011326 store 1 ,mem_remote_lpm_gpio_config_io_temp 
+0x3cb7 011327 loop remote_car_enter_lpm_gpio_config_loopcnt 
+0x3cb8 011328 rtn 
+:      011330 remote_car_set_value:
+0x3cb9 011331 setarg 0x30 
+:      011332 remote_car_gpio_wakeup_cfg:
+0x3cba 011333 copy contw ,contr 
+0x3cbb 011334 ifetcht 1 ,contr 
+0x3cbc 011335 iadd temp ,pdata 
+0x3cbd 011336 istore 1 ,contw 
+0x3cbe 011337 arg mem_gpio_wakeup_cfg ,contw 
+0x3cbf 011338 arg mem_remote_car_key_conf0 + 2 ,contr 
+0x3cc0 011339 loop remote_car_wakeup_config_loop 
+0x3cc1 011340 rtn 
+:      011342 remote_car_wakeup_config:
+0x3cc2 011343 setarg 0 
+0x3cc3 011344 store 0x0c ,mem_gpio_wakeup_cfg 
+0x3cc4 011345 arg mem_gpio_wakeup_cfg ,contw 
+0x3cc5 011346 arg mem_remote_car_key_conf0 + 1 ,contr 
+0x3cc6 011347 arg 2 ,loopcnt 
+:      011348 remote_car_wakeup_config_loop:
+0x3cc7 011349 ifetch 1 ,contr 
+0x3cc8 011350 set0 7 ,pdata 
+0x3cc9 011351 div pdata ,2 
+0x3cca 011352 call wait_div_end 
+0x3ccb 011353 quotient pdata 
+0x3ccc 011354 iadd contw ,contw 
+0x3ccd 011355 remainder pdata 
+0x3cce 011356 nbranch remote_car_set_value ,blank 
+0x3ccf 011357 setarg 0x03 
+0x3cd0 011358 branch remote_car_gpio_wakeup_cfg 
+:      011366 dongle_init:
+0x3cd1 011367 setarg dongle_dispatch 
+0x3cd2 011368 store 2 ,mem_cb_24g_receive_process 
+0x3cd3 011369 setarg dongle_g24_mouse 
+0x3cd4 011370 store 2 ,mem_cb_24g_data_device1 
+0x3cd5 011371 setarg dongle_g24_kb 
+0x3cd6 011372 store 2 ,mem_cb_24g_data_device2 
+0x3cd7 011373 setarg dongle_ackpayload_prep 
+0x3cd8 011374 store 2 ,mem_cb_24g_ackpayload 
+0x3cd9 011375 setarg dongle_usb_config 
+0x3cda 011376 store 2 ,mem_cb_usb_config 
+0x3cdb 011377 branch usb_init 
+:      011380 dongle_default_init:
+0x3cdc 011381 bpatch patch06_6 ,mem_patch06 
+0x3cdd 011383 call dongle_read_kb_bind_status 
+0x3cde 011384 call dongle_xtal_select 
+0x3cdf 011385 fetch 1 ,mem_dg_sys_config 
+0x3ce0 011386 isolate1 dg_enable_eeprom ,pdata 
+0x3ce1 011387 branch dongle_default_no_eeprom ,true 
+0x3ce2 011388 fetch 1 ,mem_dg_sys_config 
+0x3ce3 011389 isolate1 dg_enable_new_chmap ,pdata 
+0x3ce4 011390 call g24_chamap_param_update ,true 
+:      011391 dongle_default_no_eeprom:
+0x3ce5 011392 fetch 1 ,mem_dg_24g_tx_power_default 
+0x3ce6 011393 store 1 ,mem_tx_power 
+0x3ce7 011395 jam 0xff ,mem_rssi_buff_index 
+0x3ce8 011396 setarg mem_dg_rssi_noise_buffer 
+0x3ce9 011397 store 2 ,mem_rssi_noise_buffer_ptr 
+0x3cea 011398 setarg mem_dg_rssi_noise_dg_buffer 
+0x3ceb 011399 store 2 ,mem_rssi_noise_self_buffer_ptr 
+0x3cec 011400 setarg mem_dg_rssi_noise_ms_buffer 
+0x3ced 011401 store 2 ,mem_rssi_noise_device1_buffer_ptr 
+0x3cee 011402 setarg mem_dg_rssi_noise_kb_buffer 
+0x3cef 011403 store 2 ,mem_rssi_noise_device2_buffer_ptr 
+0x3cf0 011404 jam tx_power_f5db ,mem_24g_pair_tx_power 
+0x3cf1 011405 jam 0 ,mem_dg_kb_bind_success 
+0x3cf2 011406 jam 0 ,mem_24g_bind_device_living 
+0x3cf3 011407 call g24_enable_1m 
+0x3cf4 011408 fetch 1 ,mem_dg_sys_config 
+0x3cf5 011409 isolate1 dg_enable_24g_2m ,pdata 
+0x3cf6 011410 call g24_enable_2m ,true 
+0x3cf7 011411 call g24_receive_init 
+0x3cf8 011412 call g24_pair_param_init 
+0x3cf9 011413 call g24_chmap_param_init 
+0x3cfa 011415 fetch 1 ,mem_dg_usb_tx_interval 
+0x3cfb 011416 store 1 ,mem_usb_tx_interval 
+0x3cfc 011417 fetch 9 ,mem_dg_usb_vid_pid 
+0x3cfd 011418 store 9 ,mem_usb_vid_pid 
+0x3cfe 011419 rtn 
+:      011421 dongle_xtal_select:
+0x3cff 011422 jam xtal_24m ,mem_fcomp_div 
+0x3d00 011423 fetch 1 ,mem_dg_sys_config 
+0x3d01 011424 rtnbit0 dg_enable_xtal_24m 
+0x3d02 011425 jam xtal_16m ,mem_fcomp_div 
+0x3d03 011426 rtn 
+:      011428 dongle_dispatch:
+0x3d04 011429 fetch 1 ,mem_24g_pair_mode 
+0x3d05 011430 beq 0x00 ,dongle_auto_bind 
+0x3d06 011431 beq 0x01 ,dongle_pc_bind 
+0x3d07 011432 beq 0x0f ,dongle_all_powerful 
+0x3d08 011433 rtn 
+:      011436 dongle_read_kb_bind_status:
+0x3d09 011437 bpatch patch06_7 ,mem_patch06 
+0x3d0a 011438 arg dongle_kb_bind_efuse_offect ,regb 
+0x3d0b 011439 arg mem_dg_kb_bind_flag ,rega 
+0x3d0c 011440 arg 1 ,loopcnt 
+0x3d0d 011441 branch otp_read_data 
+:      011443 dongle_write_kb_bind_status:
+0x3d0e 011444 bpatch patch07_0 ,mem_patch07 
+0x3d0f 011445 arg 1 ,loopcnt 
+0x3d10 011446 arg mem_dg_kb_bind_flag ,rega 
+0x3d11 011447 arg dongle_kb_bind_efuse_offect ,regb 
+0x3d12 011448 branch otp_write 
+:      011450 dongle_usb_config:
+0x3d13 011451 fetch 1 ,mem_dg_sys_config 
+0x3d14 011452 bbit1 dg_enable_kb_icon ,dongle_usb_config_kb 
+0x3d15 011453 fetch 1 ,mem_dg_kb_bind_flag 
+0x3d16 011454 bne dongle_kb_bind_success ,dongle_usb_config_param 
+:      011455 dongle_usb_config_kb:
+0x3d17 011456 jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+0x3d18 011457 fetch 4 ,usb_devicedata_addr + 9 
+0x3d19 011458 set1 29 ,pdata 
+0x3d1a 011459 store 4 ,mem_devicedesc + 9 
+:      011460 dongle_usb_config_param:
+0x3d1b 011461 bpatch patch07_1 ,mem_patch07 
+0x3d1c 011462 call dongle_usb_device_name 
+0x3d1d 011463 call usb_tx_interval_config 
+0x3d1e 011464 call dongle_usb_vid_pid_config 
+0x3d1f 011465 branch dongle_usb_hid_icon_config 
+:      011467 dongle_usb_vid_pid_config:
+0x3d20 011468 fetch 1 ,mem_usb_vid_pid 
+0x3d21 011469 rtn blank 
+0x3d22 011470 fetch 1 ,mem_dg_kb_bind_flag 
+0x3d23 011471 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+:      011472 dongle_usb_vid_pid_for_mouse_only_auto_pair:
+0x3d24 011473 fetch 4 ,mem_usb_vid_pid + 1 
+:      011474 dongle_usb_vid_pid_store:
+0x3d25 011475 store 4 ,mem_devicedesc + 9 
+0x3d26 011476 rtn 
+:      011477 dongle_usb_vid_pid_for_suit:
+0x3d27 011478 fetch 4 ,mem_usb_vid_pid + 5 
+0x3d28 011479 branch dongle_usb_vid_pid_store 
+:      011481 dongle_usb_hid_icon_config:
+0x3d29 011482 fetch 1 ,mem_dg_kb_bind_flag 
+0x3d2a 011483 beq dongle_kb_bind_success ,dongle_usb_kb_hidreportdesc 
+0x3d2b 011484 setarg usb_kbdata_vendor_define_addr 
+0x3d2c 011485 store 2 ,mem_hidreportdesc_kb 
+0x3d2d 011486 jam 0x1a ,mem_confdesc + 26 
+0x3d2e 011487 rtn 
+:      011488 dongle_usb_kb_hidreportdesc:
+0x3d2f 011489 setarg usb_kbdata_addr 
+0x3d30 011490 store 2 ,mem_hidreportdesc_kb 
+0x3d31 011491 jam 0x41 ,mem_confdesc + 26 
+0x3d32 011492 rtn 
+:      011494 dongle_usb_device_name:
+0x3d33 011495 fetch 1 ,mem_dg_usb_device_name 
+0x3d34 011496 rtn blank 
+0x3d35 011497 arg mem_dg_usb_device_name ,contr 
+0x3d36 011498 arg mem_string2 ,contw 
+0x3d37 011499 arg 32 ,loopcnt 
+0x3d38 011500 branch memcpy 
+:      011503 dongle_all_powerful:
+0x3d39 011504 call g24_switch_work_mode 
+:      011505 dongle_all_powerful_loop:
+0x3d3a 011506 call dongle_work_mode_auto 
+0x3d3b 011507 call dongle_usb_dispatch 
+0x3d3c 011508 branch dongle_all_powerful_loop 
+:      011510 dongle_pc_bind:
+0x3d3d 011511 call g24_switch_work_mode 
+:      011512 dongle_pc_bind_loop:
+0x3d3e 011513 call dongle_work_mode_auto 
+0x3d3f 011514 call g24_bind_mode_auto 
+0x3d40 011515 call dongle_usb_dispatch 
+0x3d41 011516 branch dongle_pc_bind_loop 
+:      011518 dongle_g24_blank_data_process:
+0x3d42 011519 bpatch patch07_2 ,mem_patch07 
+0x3d43 011520 call dongle_g24_ms_blank_data 
+0x3d44 011521 call dongle_g24_kb_blank_data 
+0x3d45 011522 call dongle_g24_kb_sys_ctrl_blank_data 
+0x3d46 011523 call dongle_g24_kb_bit_consumer_blank_data 
+0x3d47 011524 branch dongle_g24_kb_mul_blank_data 
+:      011526 dongle_g24_ms_blank_data:
+0x3d48 011527 fetch 1 ,mem_dg_ms_blank_data_enable 
+0x3d49 011528 rtn blank 
+0x3d4a 011529 arg g24_timer_ms_blank ,queue 
+0x3d4b 011530 call timer_check 
+0x3d4c 011531 nrtn blank 
+0x3d4d 011532 jam 0 ,mem_dg_ms_blank_data_enable 
+0x3d4e 011533 setarg ms_report_id 
+0x3d4f 011534 store 1 ,mem_usb_mouse_data 
+0x3d50 011535 setarg 0 
+0x3d51 011536 istore 7 ,contw 
+:      011537 dongle_usb_tx_ms_data:
+0x3d52 011538 jam usb_ep2_ms ,mem_usb_ep2_data 
+:      011539 dongle_usb_tx_enable_ep2:
+0x3d53 011540 fetch 1 ,mem_usb_tx_enable 
+0x3d54 011541 set1 2 ,pdata 
+0x3d55 011542 store 1 ,mem_usb_tx_enable 
+0x3d56 011543 rtn 
+:      011545 dongle_g24_kb_blank_data:
+0x3d57 011546 fetch 1 ,mem_dg_kb_blank_data_enable 
+0x3d58 011547 rtn blank 
+0x3d59 011548 arg g24_timer_kb_blank ,queue 
+0x3d5a 011549 call timer_check 
+0x3d5b 011550 nrtn blank 
+0x3d5c 011551 jam 0 ,mem_dg_kb_blank_data_enable 
+0x3d5d 011552 arg mem_usb_kb_data ,contw 
+0x3d5e 011553 call memset0_16 
+0x3d5f 011554 fetch 8 ,mem_usb_kb_data 
+0x3d60 011555 store 8 ,mem_dg_kb_data_last_data 
+:      011556 dongle_usb_tx_kb_data:
+0x3d61 011557 jam kb_normal_report_id ,mem_usb_kb_data 
+:      011558 dongle_usb_tx_enable_ep1:
+0x3d62 011559 jam usb_ep1_kb ,mem_usb_ep1_data 
+0x3d63 011560 fetch 1 ,mem_usb_tx_enable 
+0x3d64 011561 set1 1 ,pdata 
+0x3d65 011562 store 1 ,mem_usb_tx_enable 
+0x3d66 011563 rtn 
+:      011565 dongle_g24_kb_sys_ctrl_blank_data:
+0x3d67 011566 fetch 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x3d68 011567 rtn blank 
+0x3d69 011568 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x3d6a 011569 call timer_check 
+0x3d6b 011570 nrtn blank 
+0x3d6c 011571 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x3d6d 011572 arg mem_usb_kb_system ,contw 
+0x3d6e 011573 call memset0_16 
+0x3d6f 011574 jam kb_system_conctrl_report_id ,mem_usb_kb_system 
+0x3d70 011575 fetch 2 ,mem_usb_kb_system 
+0x3d71 011576 store 2 ,mem_dg_kb_system_sta_data 
+:      011577 dongle_usb_tx_sys_ctrl_data:
+0x3d72 011578 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x3d73 011579 branch dongle_usb_tx_enable_ep2 
+:      011581 dongle_g24_kb_mul_blank_data:
+0x3d74 011582 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+0x3d75 011583 rtn blank 
+0x3d76 011584 arg g24_timer_kb_mul_blank ,queue 
+0x3d77 011585 call timer_check 
+0x3d78 011586 nrtn blank 
+0x3d79 011587 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+0x3d7a 011588 arg mem_usb_kb_multikey ,contw 
+0x3d7b 011589 call memset0_16 
+0x3d7c 011590 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+0x3d7d 011591 fetch 3 ,mem_usb_kb_multikey 
+0x3d7e 011592 store 3 ,mem_dg_kb_multikey_last_data 
+:      011593 dongle_usb_tx_multikey_data:
+0x3d7f 011594 jam usb_ep2_multikey ,mem_usb_ep2_data 
+0x3d80 011595 branch dongle_usb_tx_enable_ep2 
+:      011597 dongle_g24_kb_bit_consumer_blank_data:
+0x3d81 011598 fetch 1 ,mem_dg_kb_bit_consumer_blank_data_enable 
+0x3d82 011599 rtn blank 
+0x3d83 011600 arg g24_timer_kb_bit_consumer_blank ,queue 
+0x3d84 011601 call timer_check 
+0x3d85 011602 nrtn blank 
+0x3d86 011603 jam 0 ,mem_dg_kb_bit_consumer_blank_data_enable 
+0x3d87 011604 arg mem_usb_kb_multikey ,contw 
+0x3d88 011605 call memset0_16 
+0x3d89 011606 jam kb_bit_consumer_report_id ,mem_usb_kb_multikey 
+0x3d8a 011607 fetch 4 ,mem_usb_kb_multikey 
+0x3d8b 011608 store 4 ,mem_dg_kb_bit_consumer_last_data 
+:      011609 dongle_usb_tx_bit_consumer_data:
+0x3d8c 011610 jam usb_ep2_bit_consumer ,mem_usb_ep2_data 
+0x3d8d 011611 branch dongle_usb_tx_enable_ep2 
+:      011614 dongle_usb_dispatch:
+0x3d8e 011615 bpatch patch07_3 ,mem_patch07 
+0x3d8f 011616 fetch 1 ,mem_usb_remote_wakeup 
+0x3d90 011617 call dongle_clear_pc_sleep_flag ,blank 
+0x3d91 011618 call usb_isr 
+0x3d92 011619 fetch 1 ,mem_usb0_get_set_report 
+0x3d93 011620 rtn blank 
+0x3d94 011621 jam 0 ,mem_usb0_get_set_report 
+0x3d95 011622 fetch 2 ,mem_usb_setup_bvalue_temp 
+0x3d96 011623 arg pc_set_report ,temp 
+0x3d97 011624 isub temp ,null 
+0x3d98 011625 nrtn zero 
+0x3d99 011627 fetch 1 ,mem_usb0_set_report_data 
+0x3d9a 011628 rtnne pc_report_id 
+0x3d9b 011629 fetch 1 ,mem_usb0_set_report_data + 1 
+0x3d9c 011630 beq command_mode ,dongle_dispose_cmd_mode 
+0x3d9d 011631 beq command_bind ,dongle_dispose_cmd_bind 
+0x3d9e 011632 beq command_current_project ,dongle_dispose_cmd_current_project 
+0x3d9f 011633 beq command_current_mode ,dongle_dispose_cmd_current_mode 
+0x3da0 011634 beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
+:      011636 dongle_usb0_data_ready_report_set0:
+0x3da1 011637 jam 0 ,mem_usb0_data_ready_report 
+0x3da2 011638 rtn 
+:      011640 dongle_dispose_cmd_mode:
+0x3da3 011641 fetch 1 ,mem_usb0_set_report_data + 2 
+0x3da4 011642 beq com_mode_bind ,dongle_enter_bind_mode 
+0x3da5 011643 branch dongle_usb0_data_ready_report_set0 
+:      011644 dongle_enter_bind_mode:
+0x3da6 011645 call g24_bind_mode_enable 
+:      011646 dongle_usb0_data_ready_report_set1:
+0x3da7 011647 jam 1 ,mem_usb0_data_ready_report 
+0x3da8 011648 rtn 
+:      011650 dongle_dispose_cmd_bind:
+0x3da9 011651 fetch 1 ,mem_usb0_set_report_data + 2 
+0x3daa 011652 beq com_bind_get ,dongle_dispose_cmd_get_bind 
+0x3dab 011653 beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
+0x3dac 011654 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+0x3dad 011655 branch dongle_usb0_data_ready_report_set0 
+:      011656 dongle_dispose_cmd_get_bind:
+0x3dae 011657 fetch 1 ,mem_24g_bind_device_status 
+0x3daf 011658 store 1 ,mem_usb0_get_report_data + 1 
+0x3db0 011659 branch dongle_usb0_data_ready_report_set1 
+:      011660 dongle_dispose_cmd_exit_bind:
+0x3db1 011661 call g24_work_mode_enable 
+0x3db2 011662 branch dongle_dispose_cmd_get_bind 
+:      011663 dongle_dispose_cmd_read_mode:
+:      011664 dongle_dispose_in_bind_mode:
+0x3db3 011665 jam command_bind ,mem_usb0_get_report_data + 1 
+0x3db4 011666 branch dongle_usb0_data_ready_report_set1 
+:      011668 dongle_dispose_cmd_current_project:
+0x3db5 011669 jam product_id ,mem_usb0_get_report_data + 1 
+0x3db6 011670 branch dongle_usb0_data_ready_report_set1 
+:      011672 dongle_dispose_cmd_current_mode:
+0x3db7 011673 fetch 1 ,mem_24g_work_mode 
+0x3db8 011674 beq dongle_work ,dongle_dispose_in_work_mode 
+0x3db9 011675 beq dongle_bind ,dongle_dispose_in_bind_mode 
+0x3dba 011676 rtn 
+:      011677 dongle_dispose_in_work_mode:
+0x3dbb 011678 jam command_mode ,mem_usb0_get_report_data + 1 
+0x3dbc 011679 branch dongle_usb0_data_ready_report_set1 
+:      011681 dongle_dispose_cmd_current_fw_version:
+0x3dbd 011682 fetch 4 ,mem_dg_device_version 
+0x3dbe 011683 store 4 ,mem_usb0_get_report_data + 1 
+0x3dbf 011684 branch dongle_usb0_data_ready_report_set1 
+:      011692 dongle_auto_bind:
+0x3dc0 011693 call g24_mode_switch_init 
+:      011694 dongle_auto_bind_loop:
+0x3dc1 011695 call g24_mode_switch_bind_work 
+0x3dc2 011696 call g24_mode_switch_bind_search 
+0x3dc3 011697 call dongle_work_mode_auto 
+0x3dc4 011698 call g24_bind_mode_auto 
+0x3dc5 011699 call g24_search_mode_auto 
+0x3dc6 011700 call dongle_usb_dispatch 
+0x3dc7 011701 branch dongle_auto_bind_loop 
+:      011703 dongle_work_mode_auto:
+0x3dc8 011704 bpatch patch07_4 ,mem_patch07 
+0x3dc9 011705 fetch 1 ,mem_24g_work_mode 
+0x3dca 011706 rtnne dongle_work 
+0x3dcb 011707 call g24_work_mode_start 
+0x3dcc 011708 call dongle_g24_blank_data_process 
+0x3dcd 011709 fetch 1 ,mem_24g_pair_mode 
+0x3dce 011710 nrtn blank 
+0x3dcf 011711 branch g24_nodata_process 
+:      011713 dongle_ackpayload_prep:
+0x3dd0 011714 fetch 1 ,mem_24g_data_type 
+0x3dd1 011715 beq datatype_device1 ,dongle_ackpayload_prep_mouse 
+0x3dd2 011716 beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
+:      011717 dongle_ackpayload_prep_mouse:
+0x3dd3 011718 fetch 1 ,mem_dg_pc_sleep_flag 
+0x3dd4 011719 bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+0x3dd5 011720 branch dongle_ackpayload_prep_end 
+:      011722 dongle_set_pc_sleep_flag:
+0x3dd6 011723 fetch 1 ,mem_device_option 
+0x3dd7 011724 rtnne dvc_op_dongle 
+0x3dd8 011725 jam 3 ,mem_dg_pc_sleep_flag 
+0x3dd9 011726 rtn 
+:      011727 dongle_clear_pc_sleep_flag:
+0x3dda 011728 jam 0 ,mem_dg_pc_sleep_flag 
+0x3ddb 011729 rtn 
+:      011731 dongle_ackpayload_prep_keyboard:
+0x3ddc 011732 fetch 1 ,mem_dg_pc_sleep_flag 
+0x3ddd 011733 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+:      011734 dongle_ackpayload_prep_end:
+0x3dde 011735 fetch 1 ,mem_24g_ackpayload_enable 
+0x3ddf 011736 beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+0x3de0 011737 beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
+0x3de1 011738 rtn 
+:      011740 dongle_pc_sleep_ackpayload_prep_mouse:
+0x3de2 011741 fetch 1 ,mem_dg_pc_sleep_flag 
+0x3de3 011742 set0 0 ,pdata 
+0x3de4 011743 store 1 ,mem_dg_pc_sleep_flag 
+0x3de5 011744 branch dongle_pc_sleep_ackpayload_prep 
+:      011746 dongle_pc_sleep_ackpayload_prep_keyboard:
+0x3de6 011747 fetch 1 ,mem_dg_pc_sleep_flag 
+0x3de7 011748 set0 1 ,pdata 
+0x3de8 011749 store 1 ,mem_dg_pc_sleep_flag 
+:      011750 dongle_pc_sleep_ackpayload_prep:
+0x3de9 011751 jam 0x01 ,mem_24g_datalen 
+0x3dea 011752 setarg 0xff 
+0x3deb 011753 store 1 ,mem_24g_txbuf 
+0x3dec 011754 rtn 
+:      011757 dongle_g24_bind_ackpayload_prep:
+0x3ded 011758 bpatch patch07_5 ,mem_patch07 
+0x3dee 011759 jam 1 ,mem_24g_ackpayload_enable 
+0x3def 011760 fetch 1 ,mem_24g_work_mode 
+0x3df0 011761 rtneq dongle_work 
+0x3df1 011762 fetch 1 ,mem_24g_pair_mode 
+0x3df2 011763 nrtn blank 
+0x3df3 011764 call g24_binding_device_check 
+0x3df4 011765 nrtn user3 
+0x3df5 011766 branch g24_bind_ackpayload_prep 
+:      011768 dongle_g24_kb_led_ackpayload_prep:
+0x3df6 011769 fetch 1 ,mem_24g_rxbuf + 2 
+0x3df7 011770 beq datatype_device1 ,g24_bind_ackpayload_prep 
+0x3df8 011771 beq datatype_attemp ,g24_bind_ackpayload_prep 
+0x3df9 011772 jam 0 ,mem_usb_tx_win_enable 
+0x3dfa 011773 jam 0x01 ,mem_24g_datalen 
+0x3dfb 011774 fetch 1 ,mem_24g_led_status 
+0x3dfc 011775 store 1 ,mem_24g_txbuf 
+0x3dfd 011776 rtn 
+:      011778 dongle_g24_mouse:
+0x3dfe 011779 setarg ms_report_id 
+0x3dff 011780 store 1 ,mem_usb_mouse_data 
+0x3e00 011781 fetch 7 ,mem_24g_rxdata_temp + 3 
+0x3e01 011782 istore 7 ,contw 
+0x3e02 011783 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3e03 011784 ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+0x3e04 011785 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3e05 011786 call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+0x3e06 011787 branch dongle_usb_tx_ms_data 
+:      011789 dongle_g24_ms_enable_blank_data_forcibly:
+0x3e07 011790 jam 1 ,mem_dg_ms_blank_data_enable 
+0x3e08 011791 setarg timer_ms_blank_delay 
+0x3e09 011792 arg g24_timer_ms_blank ,queue 
+0x3e0a 011793 branch timer_init 
+:      011795 dongle_g24_ms_disable_blank_data_forcibly:
+0x3e0b 011796 jam 0 ,mem_dg_ms_blank_data_enable 
+0x3e0c 011797 setarg 0 
+0x3e0d 011798 arg g24_timer_ms_blank ,queue 
+0x3e0e 011799 branch timer_init 
+:      011801 dongle_g24_kb:
+0x3e0f 011802 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3e10 011803 beq 0 ,dongle_g24_kb_type0 
+0x3e11 011804 beq 2 ,dongle_g24_kb_type2 
+0x3e12 011805 beq 3 ,dongle_g24_kb_type3 
+0x3e13 011806 beq 5 ,dongle_g24_kb_type_bit_consumer 
+0x3e14 011807 branch g24_rx_interrupt_clear 
+:      011809 dongle_g24_kb_type0:
+0x3e15 011810 fetch 1 ,mem_24g_rxdata_temp + 5 
+0x3e16 011811 store 1 ,mem_24g_ackpayload_enable 
+0x3e17 011812 jam 0 ,mem_24g_rxdata_temp + 5 
+0x3e18 011813 arg mem_usb_kb_data ,contw 
+0x3e19 011814 arg mem_24g_rxdata_temp + 4 ,contr 
+0x3e1a 011815 arg 8 ,loopcnt 
+0x3e1b 011816 call memcpy 
+0x3e1c 011817 fetch 8 ,mem_usb_kb_data 
+0x3e1d 011818 ncall dongle_g24_kb_enable_blank_data_forcibly ,blank 
+0x3e1e 011819 fetch 8 ,mem_usb_kb_data 
+0x3e1f 011820 call dongle_g24_kb_disable_blank_data_forcibly ,blank 
+0x3e20 011821 fetch 8 ,mem_usb_kb_data 
+0x3e21 011822 store 8 ,mem_dg_kb_data_sta_data 
+0x3e22 011823 fetcht 8 ,mem_dg_kb_data_last_data 
+0x3e23 011824 isub temp ,null 
+0x3e24 011825 ncall dongle_usb_tx_enable_ep1 ,zero 
+0x3e25 011826 fetch 8 ,mem_dg_kb_data_sta_data 
+0x3e26 011827 store 8 ,mem_dg_kb_data_last_data 
+0x3e27 011828 branch g24_rx_interrupt_clear 
+:      011830 dongle_g24_kb_enable_blank_data_forcibly:
+0x3e28 011831 jam 1 ,mem_dg_kb_blank_data_enable 
+0x3e29 011832 setarg timer_kb_blank_delay 
+0x3e2a 011833 arg g24_timer_kb_blank ,queue 
+0x3e2b 011834 branch timer_init 
+:      011836 dongle_g24_kb_disable_blank_data_forcibly:
+0x3e2c 011837 jam 0 ,mem_dg_kb_blank_data_enable 
+0x3e2d 011838 setarg 0 
+0x3e2e 011839 arg g24_timer_kb_blank ,queue 
+0x3e2f 011840 branch timer_init 
+:      011842 dongle_g24_kb_type3:
+0x3e30 011843 arg mem_usb_kb_multikey ,contw 
+0x3e31 011844 arg mem_24g_rxdata_temp + 3 ,contr 
+0x3e32 011845 arg 3 ,loopcnt 
+0x3e33 011846 call memcpy 
+0x3e34 011847 fetch 2 ,mem_usb_kb_multikey + 1 
+0x3e35 011848 ncall dongle_g24_kb_mul_enable_blank_data_forcibly ,blank 
+0x3e36 011849 fetch 2 ,mem_usb_kb_multikey + 1 
+0x3e37 011850 call dongle_g24_kb_mul_disable_blank_data_forcibly ,blank 
+0x3e38 011851 fetch 3 ,mem_usb_kb_multikey 
+0x3e39 011852 store 3 ,mem_dg_kb_multikey_sta_data 
+0x3e3a 011853 fetcht 3 ,mem_dg_kb_multikey_last_data 
+0x3e3b 011854 isub temp ,null 
+0x3e3c 011855 ncall dongle_usb_tx_multikey_data ,zero 
+0x3e3d 011856 fetch 3 ,mem_dg_kb_multikey_sta_data 
+0x3e3e 011857 store 3 ,mem_dg_kb_multikey_last_data 
+0x3e3f 011858 branch g24_rx_interrupt_clear 
+:      011860 dongle_g24_kb_mul_enable_blank_data_forcibly:
+0x3e40 011861 jam 1 ,mem_dg_kb_mul_blank_data_enable 
+0x3e41 011862 setarg timer_kb_mul_blank_delay 
+0x3e42 011863 arg g24_timer_kb_mul_blank ,queue 
+0x3e43 011864 branch timer_init 
+:      011866 dongle_g24_kb_mul_disable_blank_data_forcibly:
+0x3e44 011867 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+0x3e45 011868 setarg 0 
+0x3e46 011869 arg g24_timer_kb_mul_blank ,queue 
+0x3e47 011870 branch timer_init 
+:      011872 dongle_g24_kb_type_bit_consumer:
+0x3e48 011873 arg mem_usb_kb_multikey ,contw 
+0x3e49 011874 arg mem_24g_rxdata_temp + 3 ,contr 
+0x3e4a 011875 arg 4 ,loopcnt 
+0x3e4b 011876 call memcpy 
+0x3e4c 011877 fetch 3 ,mem_usb_kb_multikey + 1 
+0x3e4d 011878 ncall dongle_g24_kb_bit_consumer_enable_blank_data_forcibly ,blank 
+0x3e4e 011879 fetch 3 ,mem_usb_kb_multikey + 1 
+0x3e4f 011880 call dongle_g24_kb_bit_consumer_disable_blank_data_forcibly ,blank 
+0x3e50 011881 fetch 3 ,mem_usb_kb_multikey + 1 
+0x3e51 011882 store 3 ,mem_dg_kb_bit_consumer_sta_data 
+0x3e52 011883 fetcht 3 ,mem_dg_kb_bit_consumer_last_data 
+0x3e53 011884 isub temp ,null 
+0x3e54 011885 ncall dongle_usb_tx_bit_consumer_data ,zero 
+0x3e55 011886 fetch 3 ,mem_dg_kb_bit_consumer_sta_data 
+0x3e56 011887 store 3 ,mem_dg_kb_bit_consumer_last_data 
+0x3e57 011888 branch g24_rx_interrupt_clear 
+:      011890 dongle_g24_kb_bit_consumer_enable_blank_data_forcibly:
+0x3e58 011891 jam 1 ,mem_dg_kb_bit_consumer_blank_data_enable 
+0x3e59 011892 setarg timer_kb_mul_blank_delay 
+0x3e5a 011893 arg g24_timer_kb_bit_consumer_blank ,queue 
+0x3e5b 011894 branch timer_init 
+:      011896 dongle_g24_kb_bit_consumer_disable_blank_data_forcibly:
+0x3e5c 011897 jam 0 ,mem_dg_kb_bit_consumer_blank_data_enable 
+0x3e5d 011898 setarg 0 
+0x3e5e 011899 arg g24_timer_kb_bit_consumer_blank ,queue 
+0x3e5f 011900 branch timer_init 
+:      011903 dongle_g24_kb_type2:
+0x3e60 011904 arg mem_usb_kb_system ,contw 
+0x3e61 011905 arg mem_24g_rxdata_temp + 3 ,contr 
+0x3e62 011906 arg 2 ,loopcnt 
+0x3e63 011907 call memcpy 
+0x3e64 011908 fetch 2 ,mem_usb_kb_system 
+0x3e65 011909 ncall dongle_g24_kb_sys_enable_blank_data_forcibly ,blank 
+0x3e66 011910 fetch 2 ,mem_usb_kb_system 
+0x3e67 011911 call dongle_g24_kb_sys_disable_blank_data_forcibly ,blank 
+0x3e68 011912 fetch 2 ,mem_usb_kb_system 
+0x3e69 011913 store 2 ,mem_dg_kb_system_sta_data 
+0x3e6a 011914 fetcht 2 ,mem_dg_kb_system_last_data 
+0x3e6b 011915 isub temp ,null 
+0x3e6c 011916 ncall dongle_usb_tx_sys_data ,zero 
+0x3e6d 011917 fetch 2 ,mem_dg_kb_system_sta_data 
+0x3e6e 011918 store 2 ,mem_dg_kb_system_last_data 
+0x3e6f 011919 branch g24_rx_interrupt_clear 
+:      011921 dongle_g24_kb_sys_enable_blank_data_forcibly:
+0x3e70 011922 jam 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x3e71 011923 setarg timer_kb_sys_crtl_blank_delay 
+0x3e72 011924 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x3e73 011925 branch timer_init 
+:      011926 dongle_g24_kb_sys_disable_blank_data_forcibly:
+0x3e74 011927 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+0x3e75 011928 setarg 0 
+0x3e76 011929 arg g24_timer_kb_sys_crtl_blank ,queue 
+0x3e77 011930 branch timer_init 
+:      011932 dongle_usb_tx_sys_data:
+0x3e78 011933 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x3e79 011934 branch dongle_usb_tx_enable_ep2 
+:      011937 dongle_g24_store_dvc2_bind_flag:
+0x3e7a 011938 fetch 1 ,mem_device_option 
+0x3e7b 011939 rtnne dvc_op_dongle 
+0x3e7c 011940 fetch 1 ,mem_dg_kb_bind_flag 
+0x3e7d 011941 rtneq dongle_kb_bind_success 
+:      011942 dongle_prep_soft_reset:
+0x3e7e 011943 jam 1 ,mem_dg_kb_bind_success 
+0x3e7f 011944 rtn 
+:      011947 dongle_kb_bind_soft_reset:
+0x3e80 011948 fetch 1 ,mem_device_option 
+0x3e81 011949 rtnne dvc_op_dongle 
+0x3e82 011950 fetch 1 ,mem_dg_kb_bind_success 
+0x3e83 011951 rtn blank 
+0x3e84 011952 jam 0 ,mem_temp 
+:      011953 dongle_wirte_efuse_bind_status:
+0x3e85 011954 jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+0x3e86 011955 call dongle_write_kb_bind_status 
+0x3e87 011956 call dongle_read_kb_bind_status 
+0x3e88 011957 fetch 1 ,mem_temp 
+0x3e89 011958 increase 1 ,pdata 
+0x3e8a 011959 store 1 ,mem_temp 
+0x3e8b 011960 beq 0xff ,soft_reset_chip 
+0x3e8c 011961 fetch 1 ,mem_dg_kb_bind_flag 
+0x3e8d 011962 bne dongle_kb_bind_success ,dongle_wirte_efuse_bind_status 
+0x3e8e 011963 branch soft_reset_chip 
+:      011969 keyboard_softreset_process:
+0x3e8f 011970 call keyboard_wakeup_from_power_check 
+0x3e90 011971 nbranch soft_reset + 1 ,user 
+0x3e91 011972 fetch 1 ,mem_power_on_flag 
+0x3e92 011973 branch soft_reset + 1 ,blank 
+0x3e93 011974 fetch 1 ,mem_keyboard_pb_button_gpio 
+0x3e94 011975 rtneq ui_button_gpio_disable 
+0x3e95 011976 copy pdata ,queue 
+0x3e96 011977 fetch 4 ,mem_saved_gpio_in 
+0x3e97 011978 qisolate0 pdata 
+0x3e98 011979 call keyboard_pb_set ,true 
+0x3e99 011980 branch soft_reset + 2 
+:      011982 keyboard_wakeup_from_power_check:
+0x3e9a 011983 disable user 
+0x3e9b 011984 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3e9c 011985 bbit0 keyboard_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
+0x3e9d 011986 fetch 1 ,core_lpm_isogate 
+0x3e9e 011987 bbit1 cold_wake ,mouse_wakeup_from_poweron 
+0x3e9f 011988 enable user 
+0x3ea0 011989 branch mouse_wakeup_from_poweron 
+:      011991 keyboard_default_init:
+0x3ea1 011992 call hid_device_default_parm_init 
+0x3ea2 011993 call keyboard_xtal_init 
+0x3ea3 011994 call keyboard_24g_phy_select 
+0x3ea4 011995 branch g24_pair_param_init 
+:      011997 keyboard_xtal_init:
+0x3ea5 011998 jam xtal_16m ,mem_fcomp_div 
+0x3ea6 011999 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3ea7 012000 rtnbit1 keyboard_enable_16m 
+0x3ea8 012001 jam xtal_24m ,mem_fcomp_div 
+0x3ea9 012002 rtn 
+:      012004 keyboard_24g_phy_select:
+0x3eaa 012005 call g24_enable_1m 
+0x3eab 012006 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3eac 012007 rtnbit0 keyboard_enable_24g_2m_phy 
+0x3ead 012008 branch g24_enable_2m 
+:      012011 keyboard_init:
+0x3eae 012012 call enable_authrom 
+0x3eaf 012013 call keyboard_setting_config 
+0x3eb0 012015 call keyboard_gpio_init 
+0x3eb1 012016 call keyboard_low_vol_mult_set 
+0x3eb2 012017 call lpm_config_puchk_disable 
+0x3eb3 012018 rtn wake 
+0x3eb4 012019 call keyboard_cb_fuction 
+0x3eb5 012020 fetch 1 ,mem_device_flag 
+0x3eb6 012021 beq mode_usb_device ,keyboard_usb_mode_start 
+:      012022 keyboard_init_wireless:
+0x3eb7 012023 fetch 2 ,mem_ui_state_map 
+0x3eb8 012024 bbit1 ui_state_btn_down ,keyboard_start_discovery 
+0x3eb9 012025 jam 0 ,mem_keyboard_switch_count_temp 
+0x3eba 012026 call keyboard_check_select_device_by_switch 
+0x3ebb 012027 jam 1 ,mem_keyboard_switch_count_temp 
+0x3ebc 012028 branch keyboard_start_work 
+:      012030 keyboard_setting_config:
+0x3ebd 012031 rtn wake 
+0x3ebe 012032 call g24_transmit_init 
+0x3ebf 012033 call g24_chmap_param_init 
+0x3ec0 012034 call keyboard_param_init 
+0x3ec1 012035 call keyboard_device_led_all_off 
+0x3ec2 012036 call keyboard_rgb_off 
+0x3ec3 012037 call keyboard_pwm_init 
+0x3ec4 012038 call le_set_fixed_ltk_justwork 
+0x3ec5 012039 bpatch patch07_6 ,mem_patch07 
+0x3ec6 012040 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3ec7 012041 bbit1 keyboard_enable_otp ,keyboard_load_otp_info 
+0x3ec8 012042 bbit1 keyboard_enable_eeprom ,keyboard_load_eeprom_info 
+0x3ec9 012043 bbit1 keyboard_enable_flash ,keyboard_load_flash_info 
+0x3eca 012044 rtn 
+:      012046 keyboard_param_common_init:
+0x3ecb 012047 setarg mouse_ble_att_list_addr 
+0x3ecc 012048 store 2 ,mem_ui_le_uuid_table 
+0x3ecd 012049 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3ece 012050 bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+0x3ecf 012051 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+0x3ed0 012052 store 2 ,mem_keyboard_le_hid_map 
+0x3ed1 012053 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3ed2 012054 bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+0x3ed3 012055 bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+0x3ed4 012056 setarg keyboard_ble_hid_map_magic_keyboard_addr 
+0x3ed5 012057 store 2 ,mem_keyboard_le_hid_map 
+0x3ed6 012058 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3ed7 012059 bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+0x3ed8 012060 setarg keyboard_ble_hid_map_only_keyboard_addr 
+0x3ed9 012061 store 2 ,mem_keyboard_le_hid_map 
+0x3eda 012062 branch hid_device_param_common_init 
+:      012065 keyboard_param_init:
+0x3edb 012066 call keyboard_compare_addr_init 
+0x3edc 012067 call keyboard_param_common_init 
+0x3edd 012068 call keyboard_adc_vol_init 
+0x3ede 012069 fetch 1 ,mem_keyboard_device_poweron_timer_init 
+0x3edf 012070 store 1 ,mem_keyboard_device_poweron_timer 
+0x3ee0 012071 jam 0 ,mem_same_keyvalue_timerout_flag 
+0x3ee1 012072 arg mem_le_adv_swift_pair ,contw 
+0x3ee2 012073 arg 20 ,loopcnt 
+0x3ee3 012074 call clear_mem 
+0x3ee4 012076 fetch 1 ,mem_le_name_len 
+0x3ee5 012077 sub pdata ,12 ,null 
+0x3ee6 012078 nbranch keyboard_ble_name_set_no_swift_pair ,positive 
+0x3ee7 012079 setarg 0x06ff06 
+0x3ee8 012080 store 3 ,mem_le_adv_swift_pair 
+0x3ee9 012081 setarg 0x000300 
+0x3eea 012082 istore 3 ,contw 
+0x3eeb 012083 setarg 0x80 
+0x3eec 012084 istore 1 ,contw 
+:      012085 keyboard_ble_store_le_name:
+0x3eed 012086 fetch 1 ,mem_le_name_len 
+0x3eee 012087 increase 1 ,pdata 
+0x3eef 012088 copy pdata ,loopcnt 
+0x3ef0 012089 arg mem_le_scan_data ,contr 
+0x3ef1 012090 branch memcpy 
+:      012092 keyboard_ble_name_set_no_swift_pair:
+0x3ef2 012093 arg mem_le_adv_swift_pair ,contw 
+0x3ef3 012094 branch keyboard_ble_store_le_name 
+:      012096 keyboard_compare_addr_init:
+0x3ef4 012097 arg 0 ,temp 
+0x3ef5 012098 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3ef6 012099 bbit1 keyboard_enable_otp ,hid_device_compare_addr_store 
+0x3ef7 012100 arg 0xffffff ,temp 
+0x3ef8 012101 branch hid_device_compare_addr_store 
+:      012104 keyboard_gpio_init:
+0x3ef9 012105 call clear_wake 
+0x3efa 012106 fetcht 1 ,mem_keyboard_pb_button_gpio 
+0x3efb 012107 call device_gpio_config_input_pu 
+0x3efc 012109 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3efd 012110 isolate1 keyboard_disable_ice ,pdata 
+0x3efe 012111 call lpm_write_ice_disable ,true 
+0x3eff 012114 setarg mem_key_row_gpio 
+0x3f00 012115 store 2 ,mem_kb_row_ptr 
+0x3f01 012117 setarg mem_key_col_gpio 
+0x3f02 012118 store 2 ,mem_kb_col_ptr 
+0x3f03 012120 setarg mem_key_excol_gpio 
+0x3f04 012121 store 2 ,mem_kb_excol_ptr 
+0x3f05 012122 call keyboard_key_row_init 
+0x3f06 012123 fetch 2 ,mem_kb_col_ptr 
+0x3f07 012124 copy pdata ,regb 
+0x3f08 012125 arg 20 ,loopcnt 
+:      012126 keyboard_key_cow_init:
+0x3f09 012127 ifetcht 1 ,regb 
+0x3f0a 012128 isolate1 7 ,temp 
+0x3f0b 012129 ncall gpio_set_high_impedance ,true 
+0x3f0c 012130 increase 1 ,regb 
+0x3f0d 012131 loop keyboard_key_cow_init 
+0x3f0e 012132 rtn 
+:      012134 keyboard_key_row_init:
+0x3f0f 012135 fetch 2 ,mem_kb_row_ptr 
+0x3f10 012136 copy pdata ,regb 
+0x3f11 012137 arg 8 ,loopcnt 
+:      012138 keyboard_key_row_init_loop:
+0x3f12 012139 ifetcht 1 ,regb 
+0x3f13 012140 sub temp ,ui_button_gpio_disable ,null 
+0x3f14 012141 ncall keyboard_gpio_set_low_pullup ,zero 
+0x3f15 012142 increase 1 ,regb 
+0x3f16 012143 loop keyboard_key_row_init_loop 
+0x3f17 012144 branch lpm_write_gpio_wakeup 
+:      012146 keyboard_gpio_set_low_pullup:
+0x3f18 012147 call gpio_set_high_impedance 
+0x3f19 012148 ifetcht 1 ,regb 
+0x3f1a 012149 branch gpio_set_low_pullup 
+:      012151 keyboard_gpio_pu_idle:
+0x3f1b 012152 arg core_gpio_conf ,contr 
+0x3f1c 012153 arg gpio_number ,loopcnt 
+:      012154 keyboard_gpio_pu_idle_loop:
+0x3f1d 012155 ifetch 1 ,contr 
+0x3f1e 012156 nbranch keyboard_gpio_pu_idle_configured ,blank 
+0x3f1f 012157 setarg gpcfg_pullup 
+0x3f20 012158 add contr ,-1 ,contw 
+0x3f21 012159 istore 1 ,contw 
+:      012160 keyboard_gpio_pu_idle_configured:
+0x3f22 012161 loop keyboard_gpio_pu_idle_loop 
+0x3f23 012162 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x3f24 012163 isub contr ,null 
+0x3f25 012164 rtn zero 
+0x3f26 012165 arg gpio_number_ext ,loopcnt 
+0x3f27 012166 arg core_gpio_conf_hi ,contr 
+0x3f28 012167 branch keyboard_gpio_pu_idle_loop 
+:      012169 keyboard_key_row_wake_set:
+0x3f29 012170 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0x3f2a 012171 branch gpio_set_wake ,blank 
+0x3f2b 012172 branch gpio_set_wake_by_current_state 
+:      012178 keyboard_pairing_check_otp_offset:
+0x3f2c 012179 fetch 2 ,mem_otp_read_retention_offset 
+0x3f2d 012181 fetcht 2 ,mem_otp_read_retention_max_size 
+0x3f2e 012182 isub temp ,null 
+0x3f2f 012183 nrtn positive 
+0x3f30 012184 branch assert 
+:      012187 keyboard_load_otp_info:
+0x3f31 012188 fetch 1 ,mem_device_flag 
+0x3f32 012189 beq mode_24g_device ,keyboard_load_otp_device_info_g24_init 
+0x3f33 012190 beq mode_bt_device1 ,keyboard_load_otp_device_info_ble_init 
+0x3f34 012191 rtn 
+:      012193 keyboard_load_otp_device_info_g24_init:
+0x3f35 012194 arg 8 ,regd 
+0x3f36 012196 fetch 2 ,mem_otp_read_retention_max_size 
+0x3f37 012197 idiv regd 
+0x3f38 012198 call wait_div_end 
+0x3f39 012199 quotient pdata 
+0x3f3a 012200 store 2 ,mem_pdatatemp 
+0x3f3b 012201 arg 0x1fbc ,pdata 
+0x3f3c 012202 arg 4 ,temp 
+0x3f3d 012203 arg 4 ,rege 
+0x3f3e 012204 branch keyboard_load_otp_device_info 
+:      012205 keyboard_load_otp_device_info_ble_init:
+0x3f3f 012206 arg 32 ,regd 
+0x3f40 012208 fetch 2 ,mem_otp_read_retention_max_size 
+0x3f41 012209 idiv regd 
+0x3f42 012210 call wait_div_end 
+0x3f43 012211 quotient pdata 
+0x3f44 012212 store 2 ,mem_pdatatemp 
+0x3f45 012213 arg 0x1fb0 ,pdata 
+0x3f46 012214 arg 16 ,temp 
+0x3f47 012215 arg 16 ,rege 
+0x3f48 012216 branch keyboard_load_otp_device_info 
+:      012217 keyboard_load_otp_device_info:
+0x3f49 012218 store 2 ,mem_pdatatemp + 2 
+0x3f4a 012219 storet 1 ,mem_temp 
+0x3f4b 012220 arg mem_otp_read_retention_memory ,rega 
+0x3f4c 012221 arg 0 ,regc 
+:      012222 keyboard_load_otp_info_check_page_loop:
+0x3f4d 012223 fetch 2 ,mem_pdatatemp + 2 
+0x3f4e 012224 copy pdata ,regb 
+0x3f4f 012225 fetchr loopcnt ,1 ,mem_temp 
+0x3f50 012226 arg mem_otp_read_retention_memory ,rega 
+0x3f51 012227 call otp_read_data 
+0x3f52 012228 fetch 8 ,mem_otp_read_retention_memory 
+0x3f53 012229 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x3f54 012230 ior temp ,pdata 
+0x3f55 012231 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x3f56 012232 ior temp ,pdata 
+0x3f57 012233 branch keyboard_load_otp_info_check_first_time ,blank 
+0x3f58 012234 increase 1 ,regc 
+0x3f59 012235 fetch 2 ,mem_pdatatemp 
+0x3f5a 012236 isub regc ,null 
+0x3f5b 012237 fetch 2 ,mem_pdatatemp + 2 
+0x3f5c 012238 isub regd ,pdata 
+0x3f5d 012239 store 2 ,mem_pdatatemp + 2 
+0x3f5e 012240 branch keyboard_load_otp_info_check_page_loop 
+:      012242 keyboard_load_otp_info_check_first_time:
+0x3f5f 012243 sub regc ,0 ,null 
+0x3f60 012244 branch keyboard_load_otp_info_check_first_time_process ,zero 
+:      012245 keyboard_load_otp_info_check_first_time_loop_init:
+0x3f61 012246 fetch 2 ,mem_pdatatemp + 2 
+0x3f62 012247 iadd regd ,pdata 
+:      012248 keyboard_load_otp_info_check_first_time_loop:
+0x3f63 012249 isub rege ,pdata 
+0x3f64 012250 store 2 ,mem_pdatatemp + 2 
+0x3f65 012251 fetch 2 ,mem_pdatatemp + 2 
+0x3f66 012252 copy pdata ,regb 
+0x3f67 012253 fetchr loopcnt ,1 ,mem_temp 
+0x3f68 012254 arg mem_otp_read_retention_memory ,rega 
+0x3f69 012255 call otp_read_data 
+0x3f6a 012256 fetch 8 ,mem_otp_read_retention_memory 
+0x3f6b 012257 fetcht 8 ,mem_otp_read_retention_memory + 8 
+0x3f6c 012258 ior temp ,pdata 
+0x3f6d 012259 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0x3f6e 012260 ior temp ,pdata 
+0x3f6f 012261 branch keyboard_load_otp_info_check_offset_process ,blank 
+0x3f70 012262 fetch 2 ,mem_pdatatemp + 2 
+0x3f71 012263 branch keyboard_load_otp_info_check_first_time_loop 
+:      012265 keyboard_load_otp_info_check_first_time_process:
+0x3f72 012266 storer rege ,1 ,mem_otp_read_retention_offset 
+0x3f73 012267 rtn 
+:      012268 keyboard_load_otp_info_check_offset_process:
+0x3f74 012269 setarg 0x1fc0 
+0x3f75 012270 fetcht 2 ,mem_pdatatemp + 2 
+0x3f76 012271 isub temp ,pdata 
+0x3f77 012272 store 2 ,mem_otp_read_retention_offset 
+0x3f78 012273 copy temp ,pdata 
+0x3f79 012274 iadd rege ,regb 
+0x3f7a 012275 fetchr loopcnt ,1 ,mem_temp 
+0x3f7b 012276 arg mem_otp_read_retention_memory ,rega 
+0x3f7c 012277 call otp_read_data 
+0x3f7d 012278 fetch 1 ,mem_device_flag 
+0x3f7e 012279 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+0x3f7f 012280 beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
+0x3f80 012281 rtn 
+:      012283 keyboard_load_otp_info_check_offset_process_g24:
+0x3f81 012284 fetch 6 ,mem_otp_read_retention_memory 
+0x3f82 012285 store 4 ,mem_device_24g_addr 
+0x3f83 012286 fetch 4 ,mem_device_24g_addr 
+0x3f84 012287 store 4 ,mem_24g_receiver_addr 
+0x3f85 012288 store 4 ,mem_24g_addr 
+0x3f86 012289 rtn 
+:      012291 keyboard_load_otp_info_check_offset_process_ble:
+0x3f87 012292 fetch 1 ,mem_otp_read_retention_memory 
+0x3f88 012293 sub pdata ,system_os_mac ,null 
+0x3f89 012294 ncall set_pdata_0 ,positive 
+0x3f8a 012295 store 1 ,mem_kb_computer_system 
+0x3f8b 012296 fetch 1 ,mem_otp_read_retention_memory + 1 
+0x3f8c 012297 store 1 ,mem_device1_type 
+0x3f8d 012298 fetch 6 ,mem_otp_read_retention_memory + 2 
+0x3f8e 012299 store 6 ,mem_device1_addr 
+0x3f8f 012300 fetch 6 ,mem_otp_read_retention_memory + 8 
+0x3f90 012301 store 6 ,mem_device1_locall_addr 
+0x3f91 012302 fetcht 2 ,mem_otp_read_retention_memory + 14 
+0x3f92 012303 random pdata 
+0x3f93 012304 iadd temp ,pdata 
+0x3f94 012305 store 2 ,mem_random_addr_increase_count 
+0x3f95 012306 branch hid_device_select_reconn_device 
+:      012309 keyboard_load_eeprom_info:
+0x3f96 012310 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3f97 012311 bbit0 keyboard_enable_sda_multi_r_line ,keyboard_load_eeprom_device_info_next 
+0x3f98 012312 fetcht 1 ,mem_eeprom_sda_gpio 
+0x3f99 012313 call device_gpio_config_input_pu 
+0x3f9a 012314 fetcht 1 ,mem_eeprom_sda_gpio 
+0x3f9b 012315 call gpio_get_bit 
+0x3f9c 012316 branch keyboard_load_eeprom_info ,true 
+:      012317 keyboard_load_eeprom_device_info_next:
+0x3f9d 012318 call keyboard_eeprom_init 
+0x3f9e 012319 arg 128 ,temp 
+0x3f9f 012320 arg mem_device_flag ,rega 
+0x3fa0 012321 arg keyboard_info_eeprom_offect ,regb 
+0x3fa1 012322 call iicd_read_eep_data 
+:      012323 keyboard_load_info_check:
+0x3fa2 012324 bpatch patch07_7 ,mem_patch07 
+0x3fa3 012325 call keyboard_app_initflag_check 
+0x3fa4 012326 fetch 1 ,mem_device_flag 
+0x3fa5 012327 beq mode_24g_device ,keyboard_load_info_24g 
+0x3fa6 012328 beq mode_bt_device1 ,keyboard_load_info_bt1 
+0x3fa7 012329 beq mode_bt_device2 ,keyboard_load_info_bt2 
+0x3fa8 012330 beq mode_bt_device3 ,keyboard_load_info_bt3 
+0x3fa9 012331 beq mode_usb_device ,keyboard_load_info_usb 
+:      012332 keyboard_load_info_24g:
+0x3faa 012333 jam system_os_windows ,mem_kb_computer_system 
+0x3fab 012334 fetch 1 ,mem_keyboard_24g_fn_lock 
+:      012335 keyboard_load_info_fn_lock:
+0x3fac 012336 sub pdata ,1 ,null 
+0x3fad 012337 ncall set_pdata_0 ,zero 
+0x3fae 012338 store 1 ,mem_keyboard_fn_lock_flag 
+0x3faf 012339 rtn 
+:      012340 keyboard_load_info_bt1:
+0x3fb0 012341 fetch 1 ,mem_keyboard_bt1_fn_lock 
+0x3fb1 012342 call keyboard_load_info_fn_lock 
+0x3fb2 012343 fetch 1 ,mem_keyboard_bt1_computer_system 
+0x3fb3 012344 sub pdata ,system_os_mac ,null 
+0x3fb4 012345 ncall set_pdata_0 ,positive 
+:      012346 keyboard_load_info_bt:
+0x3fb5 012347 store 1 ,mem_kb_computer_system 
+0x3fb6 012348 fetcht 2 ,mem_random_addr_increase_count 
+0x3fb7 012349 random pdata 
+0x3fb8 012350 iadd temp ,pdata 
+0x3fb9 012351 store 2 ,mem_random_addr_increase_count 
+0x3fba 012352 rtn 
+:      012353 keyboard_load_info_bt2:
+0x3fbb 012354 fetch 1 ,mem_keyboard_bt2_fn_lock 
+0x3fbc 012355 call keyboard_load_info_fn_lock 
+0x3fbd 012356 fetch 1 ,mem_keyboard_bt2_computer_system 
+0x3fbe 012357 branch keyboard_load_info_bt 
+:      012358 keyboard_load_info_bt3:
+0x3fbf 012359 fetch 1 ,mem_keyboard_bt3_fn_lock 
+0x3fc0 012360 call keyboard_load_info_fn_lock 
+0x3fc1 012361 fetch 1 ,mem_keyboard_bt3_computer_system 
+0x3fc2 012362 branch keyboard_load_info_bt 
+:      012363 keyboard_load_info_usb:
+0x3fc3 012364 jam system_os_windows ,mem_kb_computer_system 
+0x3fc4 012365 fetch 1 ,mem_keyboard_usb_fn_lock 
+0x3fc5 012366 branch keyboard_load_info_fn_lock 
+:      012368 keyboard_app_initflag_check:
+0x3fc6 012369 fetch 2 ,mem_store_flag 
+0x3fc7 012370 arg eeprom_init_flag ,temp 
+0x3fc8 012371 isub temp ,null 
+0x3fc9 012372 branch hid_device_load_device_info ,zero 
+0x3fca 012373 storet 2 ,mem_store_flag 
+0x3fcb 012374 call hid_device_ble_init_address 
+0x3fcc 012375 fetch 1 ,mem_device_flag_temp 
+0x3fcd 012376 store 1 ,mem_device_flag 
+0x3fce 012377 fetch 4 ,mem_24g_fast_conn_addr 
+0x3fcf 012378 store 4 ,mem_24g_receiver_addr 
+0x3fd0 012379 store 4 ,mem_24g_addr 
+0x3fd1 012380 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x3fd2 012381 set1 keyboard_store_eepromm_flag_all_info ,pdata 
+0x3fd3 012382 store 1 ,mem_keyboard_device_info_store_flag 
+0x3fd4 012383 branch keyboard_store_device_info 
+:      012385 keyboard_load_flash_info:
+0x3fd5 012386 call hid_device_load_flash_info_check 
+0x3fd6 012387 branch keyboard_load_info_check 
+:      012389 keyboard_store_device_info:
+0x3fd7 012390 bpatch patch08_0 ,mem_patch08 
+0x3fd8 012391 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x3fd9 012392 bbit1 keyboard_enable_otp ,keyboard_store_otp_device_info 
+0x3fda 012393 bbit1 keyboard_enable_eeprom ,keyboard_store_eeprom_device_info 
+0x3fdb 012394 bbit1 keyboard_enable_flash ,hid_device_store_flash_device_info 
+0x3fdc 012395 rtn 
+:      012397 keyboard_store_otp_device_info:
+0x3fdd 012398 fetch 1 ,mem_device_flag 
+0x3fde 012399 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+0x3fdf 012400 beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+0x3fe0 012401 rtn 
+:      012403 keyboard_store_otp_device_info_g24:
+0x3fe1 012404 fetcht 2 ,mem_otp_read_retention_offset 
+0x3fe2 012405 setarg 0x1fc0 
+0x3fe3 012406 isub temp ,regb 
+0x3fe4 012407 arg mem_device_24g_addr ,rega 
+0x3fe5 012408 arg 4 ,loopcnt 
+0x3fe6 012409 call otp_write 
+0x3fe7 012410 fetcht 2 ,mem_otp_read_retention_offset 
+0x3fe8 012411 increase 4 ,temp 
+0x3fe9 012412 storet 2 ,mem_otp_read_retention_offset 
+0x3fea 012413 rtn 
+:      012415 keyboard_store_otp_device_info_ble:
+0x3feb 012416 jam 1 ,mem_otp_store_device_info_flag 
+0x3fec 012417 fetch 1 ,mem_otp_store_system_flag 
+0x3fed 012418 rtn blank 
+:      012419 keyboard_wirte_otp_ble:
+0x3fee 012420 fetcht 2 ,mem_otp_read_retention_offset 
+0x3fef 012421 setarg 0x1fc0 
+0x3ff0 012422 isub temp ,pdata 
+0x3ff1 012423 store 2 ,mem_pdatatemp 
+0x3ff2 012425 copy pdata ,regb 
+0x3ff3 012426 arg mem_kb_computer_system ,rega 
+0x3ff4 012427 arg 1 ,loopcnt 
+0x3ff5 012428 call otp_write 
+0x3ff6 012430 fetch 2 ,mem_pdatatemp 
+0x3ff7 012431 add pdata ,1 ,regb 
+0x3ff8 012432 arg mem_device1_type ,rega 
+0x3ff9 012433 arg 13 ,loopcnt 
+0x3ffa 012434 call otp_write 
+0x3ffb 012436 fetch 2 ,mem_pdatatemp 
+0x3ffc 012437 add pdata ,14 ,regb 
+0x3ffd 012438 arg mem_random_addr_increase_count ,rega 
+0x3ffe 012439 arg 2 ,loopcnt 
+0x3fff 012440 call otp_write 
+0x4000 012442 fetcht 2 ,mem_otp_read_retention_offset 
+0x4001 012443 increase 16 ,temp 
+0x4002 012444 storet 2 ,mem_otp_read_retention_offset 
+0x4003 012445 rtn 
+:      012447 keyboard_store_eeprom_device_info:
+0x4004 012448 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4005 012449 bbit0 keyboard_enable_sda_multi_r_line ,keyboard_store_eeprom_device_info_next 
+0x4006 012450 fetcht 1 ,mem_eeprom_sda_gpio 
+0x4007 012451 call device_gpio_config_input_pu 
+0x4008 012452 fetcht 1 ,mem_eeprom_sda_gpio 
+0x4009 012453 call gpio_get_bit 
+0x400a 012454 branch keyboard_store_device_info_delay ,true 
+:      012455 keyboard_store_eeprom_device_info_next:
+0x400b 012456 call keyboard_eeprom_init 
+:      012457 keyboard_store_eeprom_device_info_typer_check:
+0x400c 012458 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x400d 012459 bbit1 keyboard_store_eepromm_flag_all_info ,keyboard_store_eeprom_device_all_info 
+0x400e 012460 bbit1 keyboard_store_eepromm_flag_ble_addr ,keyboard_store_eeprom_device_info_ble_addr 
+0x400f 012461 bbit1 keyboard_store_eepromm_flag_g24_addr ,keyboard_store_eeprom_device_info_g24_addr 
+0x4010 012462 bbit1 keyboard_store_eepromm_flag_fn_lock ,keyboard_store_eeprom_device_info_fn_lock 
+0x4011 012463 bbit1 keyboard_store_eepromm_flag_computer_system ,keyboard_store_eeprom_device_info_device_os 
+0x4012 012464 bbit1 keyboard_store_eepromm_flag_rgb_type ,keyboard_store_eeprom_device_info_rgb_tpye 
+0x4013 012465 rtn 
+:      012466 keyboard_store_eeprom_device_all_info:
+0x4014 012467 jam 0 ,mem_keyboard_device_info_store_flag 
+0x4015 012468 arg 128 ,temp 
+0x4016 012469 arg mem_device_flag ,rega 
+0x4017 012470 arg keyboard_info_eeprom_offect ,regb 
+0x4018 012471 branch iicd_write_protect_eep_data 
+:      012472 keyboard_store_eeprom_device_info_ble_addr:
+0x4019 012473 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x401a 012474 set0 keyboard_store_eepromm_flag_ble_addr ,pdata 
+0x401b 012475 store 1 ,mem_keyboard_device_info_store_flag 
+0x401c 012476 arg 39 ,temp 
+0x401d 012477 arg mem_device1_type ,rega 
+0x401e 012478 arg keyboard_ble_addr_eeprom_offect ,regb 
+0x401f 012479 call iicd_write_protect_eep_data 
+0x4020 012480 arg 2 ,temp 
+0x4021 012481 arg mem_random_addr_increase_count ,rega 
+0x4022 012482 arg keyboard_random_addr_count_eeprom_offset ,regb 
+0x4023 012483 call iicd_write_protect_eep_data 
+0x4024 012484 branch keyboard_store_eeprom_device_info_typer_check 
+:      012485 keyboard_store_eeprom_device_info_g24_addr:
+0x4025 012486 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x4026 012487 set0 keyboard_store_eepromm_flag_g24_addr ,pdata 
+0x4027 012488 store 1 ,mem_keyboard_device_info_store_flag 
+0x4028 012489 arg 4 ,temp 
+0x4029 012490 arg mem_device_24g_addr ,rega 
+0x402a 012491 arg keyboard_g24_addr_eeprom_offect ,regb 
+0x402b 012492 call iicd_write_protect_eep_data 
+0x402c 012493 branch keyboard_store_eeprom_device_info_typer_check 
+:      012494 keyboard_store_eeprom_device_info_fn_lock:
+0x402d 012495 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x402e 012496 set0 keyboard_store_eepromm_flag_fn_lock ,pdata 
+0x402f 012497 store 1 ,mem_keyboard_device_info_store_flag 
+0x4030 012498 arg 5 ,temp 
+0x4031 012499 arg mem_keyboard_24g_fn_lock ,rega 
+0x4032 012500 arg keyboard_fn_flag_eeprom_offset ,regb 
+0x4033 012501 call iicd_write_protect_eep_data 
+0x4034 012502 branch keyboard_store_eeprom_device_info_typer_check 
+:      012503 keyboard_store_eeprom_device_info_device_os:
+0x4035 012504 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x4036 012505 set0 keyboard_store_eepromm_flag_computer_system ,pdata 
+0x4037 012506 store 1 ,mem_keyboard_device_info_store_flag 
+0x4038 012507 arg 3 ,temp 
+0x4039 012508 arg mem_keyboard_bt1_computer_system ,rega 
+0x403a 012509 arg keyboard_computer_system_eeprom_offset ,regb 
+0x403b 012510 call iicd_write_protect_eep_data 
+0x403c 012511 branch keyboard_store_eeprom_device_info_typer_check 
+:      012512 keyboard_store_eeprom_device_info_rgb_tpye:
+0x403d 012513 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x403e 012514 set0 keyboard_store_eepromm_flag_rgb_type ,pdata 
+0x403f 012515 store 1 ,mem_keyboard_device_info_store_flag 
+0x4040 012516 arg 4 ,temp 
+0x4041 012517 arg mem_backlight_on_flag ,rega 
+0x4042 012518 arg keyboard_rgb_tpye_offset ,regb 
+0x4043 012519 call iicd_write_protect_eep_data 
+0x4044 012520 branch keyboard_store_eeprom_device_info_typer_check 
+:      012522 keyboard_store_device_number:
+0x4045 012523 arg 1 ,temp 
+0x4046 012524 arg mem_device_flag ,rega 
+0x4047 012525 arg keyboard_device_number_eeprom_offect ,regb 
+0x4048 012526 branch iicd_write_protect_eep_data 
+:      012528 keyboard_eeprom_init:
+0x4049 012529 call iicd_read_init_pin 
+0x404a 012530 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x404b 012531 isolate1 keyboard_enable_2k_eeprom ,pdata 
+0x404c 012532 branch set_eeprom_size_2k ,true 
+0x404d 012533 branch clear_eeprom_size_2k 
+:      012537 keyboard_cb_fuction:
+0x404e 012538 bpatch patch08_1 ,mem_patch08 
+0x404f 012539 setarg hid_device_before_lpm_set 
+0x4050 012540 store 2 ,mem_cb_before_lpm_sleep 
+0x4051 012541 setarg keyboard_24g_package_data 
+0x4052 012542 store 2 ,mem_cb_24g_transmit_data 
+0x4053 012543 setarg keyboard_24g_search_dongle 
+0x4054 012544 store 2 ,mem_cb_24g_search_receiver 
+0x4055 012545 setarg keyboard_lpm_before_common 
+0x4056 012546 store 2 ,mem_cb_24g_lpm_before 
+0x4057 012547 setarg keyboard_le 
+0x4058 012548 store 2 ,mem_cb_le_process 
+0x4059 012550 setarg keyboard_process_lpm_before 
+0x405a 012551 store 2 ,mem_cb_before_lpm 
+0x405b 012553 setarg keyboard_priority_bb_event 
+0x405c 012554 store 2 ,mem_cb_bb_event_process 
+0x405d 012555 setarg keyboard_idle 
+0x405e 012556 store 2 ,mem_cb_idle_process 
+0x405f 012557 setarg keyboard_before_hibernate 
+0x4060 012558 store 2 ,mem_cb_before_hibernate 
+0x4061 012559 setarg mouse_le_bb_event_connect_complete 
+0x4062 012560 store 2 ,mem_cb_att_write 
+0x4063 012561 setarg keyboard_bb_event_timer 
+0x4064 012562 store 2 ,mem_cb_event_timer 
+0x4065 012563 branch hid_device_cb_fuction 
+:      012567 keyboard_priority_bb_event:
+0x4066 012568 bpatch patch08_2 ,mem_patch08 
+0x4067 012569 copy regc ,pdata 
+0x4068 012571 beq bt_evt_le_start_enc ,keyboard_le_ll_start_encryt 
+0x4069 012572 beq bt_evt_le_parse_conn_papa_update_rsp ,keyboard_le_conn_param_update_rsp_recieved 
+0x406a 012573 beq bt_evt_le_disconnected ,keyboard_le_bb_disconnected 
+0x406b 012575 beq bt_evt_le_connected ,keyboard_le_bb_event_connected 
+0x406c 012576 beq bt_evt_button_long_pressed ,keyboard_bb_event_discovery_btn 
+0x406d 012577 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+0x406e 012578 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+0x406f 012580 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+0x4070 012581 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+0x4071 012583 beq bt_evt_24g_pairing_complete ,keyboard_24g_pairing_complete 
+0x4072 012584 beq bt_evt_24g_attempt_success ,keyboard_24g_attempt_success 
+0x4073 012585 beq bt_evt_24g_attempt_fail ,keyboard_24g_attempt_fail 
+0x4074 012587 rtn 
+:      012592 keyboard_bb_event_timer:
+0x4075 012593 bpatch patch08_3 ,mem_patch08 
+0x4076 012594 call keyboard_low_voltage_param_set 
+0x4077 012595 call keyboard_adc_read 
+0x4078 012596 call keyboard_adc_gpio_set_before_hibernate 
+0x4079 012599 call keyboard_low_voltage_led_timer 
+0x407a 012600 call keyboard_num_capslock_led_on_timer 
+0x407b 012601 call keyboard_rgb_on_timer 
+0x407c 012602 call keyboard_device_poweron_timer 
+0x407d 012603 call keyboard_mode_led_timer 
+0x407e 012604 call keyboard_device_pair_led_timer 
+0x407f 012607 call keyboard_key_press_timer 
+0x4080 012608 call keyboard_commbination_key_process 
+0x4081 012609 call keyboard_same_key_long_press_timer 
+0x4082 012612 call g24_pair_timeout_timer 
+0x4083 012613 call g24_reconn_timeout_timer 
+0x4084 012614 call mouse_24g_long_sleep_param_update_timer 
+0x4085 012615 call keyboard_24g_repeat_send_data 
+0x4086 012616 call keyboard_24g_led_status_get_timer 
+0x4087 012619 call keyboard_check_discovery_timeout_timer 
+0x4088 012620 call keyboard_check_direct_timeout_timer 
+0x4089 012621 call mouse_le_enable_att_list_timer 
+0x408a 012622 call keyboard_le_battery_updata_timer 
+0x408b 012623 call mouse_le_send_smp_security_request_timer 
+0x408c 012624 call keyboard_le_send_conn_param_update_timer 
+0x408d 012625 call keyboard_le_auto_recognize_timer 
+0x408e 012627 call mouse_current_mult_update_timer 
+0x408f 012628 call keyboard_store_information_delay_timer 
+0x4090 012629 call keyboard_commbination_delay_release_timer 
+0x4091 012630 call keyboard_usb_updata_timer 
+0x4092 012631 branch keyboard_check_no_data_timeout_timer 
+:      012634 keyboard_adc_vol_init:
+0x4093 012635 bpatch patch08_4 ,mem_patch08 
+0x4094 012636 fetch 1 ,mem_keyboard_power_type 
+0x4095 012637 beq keyboard_battary_1v5 ,keyboard_adc_vol_1v5_init 
+0x4096 012638 beq keyboard_battary_3v0 ,keyboard_adc_vol_3v0_init 
+0x4097 012639 beq keyboard_battary_4v2 ,keyboard_adc_vol_4v2_init 
+:      012640 keyboard_adc_vol_1v5_init:
+0x4098 012641 setarg 0x560094 
+0x4099 012642 store 3 ,mem_keyboard_vdd_full_vol 
+0x409a 012643 setarg 0x006d00 
+0x409b 012644 istore 3 ,contw 
+0x409c 012645 rtn 
+:      012646 keyboard_adc_vol_3v0_init:
+0x409d 012647 setarg 0xd4012c 
+0x409e 012648 store 3 ,mem_keyboard_vdd_full_vol 
+0x409f 012649 setarg 0x00e600 
+0x40a0 012650 istore 3 ,contw 
+0x40a1 012651 rtn 
+:      012652 keyboard_adc_vol_4v2_init:
+0x40a2 012653 setarg 0x2c01270 
+0x40a3 012654 store 3 ,mem_keyboard_vdd_full_vol 
+0x40a4 012655 setarg 0x014001 
+0x40a5 012656 istore 3 ,contw 
+0x40a6 012657 rtn 
+:      012659 keyboard_adc_init:
+0x40a7 012660 call keyboard_adc_gpio_set 
+0x40a8 012661 branch keyboard_low_voltage_param_set 
+:      012663 keyboard_adc_gpio_set:
+0x40a9 012664 fetch 1 ,mem_adc_config_flag 
+0x40aa 012665 rtnne adc_config_gpio 
+0x40ab 012666 fetch 1 ,mem_adc_channel 
+0x40ac 012667 call keyboard_channel_set_gpio 
+0x40ad 012668 copy temp ,pdata 
+0x40ae 012669 store 1 ,mem_adc_channel_gpio 
+0x40af 012670 set1 gpio_active_bit ,pdata 
+0x40b0 012671 arg gpcfg_input ,temp 
+0x40b1 012672 branch gpio_config_function 
+:      012674 keyboard_channel_set_gpio:
+0x40b2 012675 arg 18 ,temp 
+0x40b3 012676 rtneq 0x6 
+0x40b4 012677 arg 10 ,temp 
+0x40b5 012678 rtneq 0x7 
+0x40b6 012679 arg 9 ,temp 
+0x40b7 012680 rtneq 0x8 
+0x40b8 012681 arg 12 ,temp 
+0x40b9 012682 rtneq 0x9 
+0x40ba 012683 arg 6 ,temp 
+0x40bb 012684 rtneq 0xa 
+0x40bc 012685 arg 20 ,temp 
+0x40bd 012686 rtneq 0xb 
+0x40be 012687 arg 21 ,temp 
+0x40bf 012688 rtneq 0xc 
+0x40c0 012689 arg 22 ,temp 
+0x40c1 012690 rtneq 0xd 
+0x40c2 012691 arg 13 ,temp 
+0x40c3 012692 rtn 
+:      012694 keyboard_adc_read_start:
+0x40c4 012695 call keyboard_adc_init 
+0x40c5 012696 call enable_adc 
+0x40c6 012697 call vdd_calculate_by_mode 
+0x40c7 012698 div pdata ,10 
+0x40c8 012699 call get_div_result 
+0x40c9 012700 store 2 ,mem_device_vdd_now_vol 
+0x40ca 012701 arg mem_device_vdd_calculate_set ,rega 
+0x40cb 012702 branch mouse_adc_bat_percent_lowpower_out 
+:      012704 keyboard_adc_read:
+0x40cc 012705 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x40cd 012706 rtnbit0 keyboard_enable_adc 
+0x40ce 012707 call keyboard_adc_read_start 
+:      012708 keyboard_adc_data_process:
+0x40cf 012709 fetch 1 ,mem_adc_power_flag 
+0x40d0 012710 bbit1 1 ,keyboard_power_down 
+0x40d1 012711 bbit0 0 ,keyboard_adc_no_low_voltage 
+0x40d2 012712 jam 1 ,mem_device_adc_last_low_voltage_flag 
+0x40d3 012713 branch keyboard_adc_low_voltage 
+:      012715 keyboard_adc_low_voltage:
+0x40d4 012716 arg keyboard_low_voltage_flag ,queue 
+0x40d5 012717 branch keyboard_enable_function_flag 
+:      012718 keyboard_adc_no_low_voltage:
+0x40d6 012719 arg keyboard_low_voltage_flag ,queue 
+0x40d7 012720 call keyboard_disable_function_flag 
+0x40d8 012721 jam 12 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x40d9 012722 fetch 1 ,mem_device_adc_last_low_voltage_flag 
+0x40da 012723 rtn blank 
+0x40db 012724 jam 0 ,mem_device_adc_last_low_voltage_flag 
+0x40dc 012725 branch keyboard_low_voltage_led_off 
+:      012727 keyboard_adc_gpio_set_before_hibernate:
+0x40dd 012728 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x40de 012729 rtnbit0 keyboard_enable_adc 
+0x40df 012730 branch mouse_adc_gpio_set_before_hibernate + 2 
+:      012732 keyboard_low_voltage_param_set:
+0x40e0 012733 fetch 6 ,mem_keyboard_vdd_full_vol 
+0x40e1 012734 store 6 ,mem_device_vdd_full_vol 
+0x40e2 012735 fetch 1 ,mem_device_adc_last_low_voltage_flag 
+0x40e3 012736 branch keyboard_low_voltage_param_reset ,blank 
+0x40e4 012737 fetch 2 ,mem_keyboard_vdd_low_vol 
+0x40e5 012738 increase 5 ,pdata 
+0x40e6 012739 store 2 ,mem_device_vdd_low_vol 
+0x40e7 012740 rtn 
+:      012741 keyboard_low_voltage_param_reset:
+0x40e8 012742 fetch 2 ,mem_keyboard_vdd_low_vol 
+0x40e9 012743 store 2 ,mem_device_vdd_low_vol 
+0x40ea 012744 rtn 
+:      012746 keyboard_low_vol_mult_set:
+0x40eb 012747 fetch 1 ,mem_device_flag 
+0x40ec 012748 bne mode_24g_device ,keyboard_low_vol_mult_ble_set 
+0x40ed 012749 call g24_interval_param_8ms 
+0x40ee 012750 setarg 0x5d4800 
+0x40ef 012751 store 4 ,mem_24g_long_sleep_set1 
+0x40f0 012752 fetch 1 ,mem_adc_power_flag 
+0x40f1 012753 rtnbit0 0 
+0x40f2 012754 branch mouse_24g_long_sleep_set 
+:      012755 keyboard_low_vol_mult_ble_set:
+0x40f3 012756 setarg 160 
+0x40f4 012757 call keyboard_mult_auto_get 
+0x40f5 012758 fetch 1 ,mem_adc_power_flag 
+0x40f6 012759 rtnbit0 0 
+0x40f7 012760 setarg 80 
+0x40f8 012761 branch keyboard_mult_auto_get 
+:      012763 keyboard_mult_auto_get:
+0x40f9 012764 fetcht 2 ,mem_le_interval_min 
+0x40fa 012765 idiv temp 
+0x40fb 012766 call get_div_result 
+0x40fc 012767 store 1 ,mem_lpm_mult_init 
+0x40fd 012768 fetch 1 ,mem_mouse_current_mult_timer 
+0x40fe 012769 branch mouse_current_mult_reinit ,blank 
+0x40ff 012770 rtn 
+:      012776 keyboard_low_voltage_led_timer:
+0x4100 012777 jam 0 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+0x4101 012778 fetch 2 ,mem_device_discovery_timer 
+0x4102 012779 nrtn blank 
+0x4103 012780 fetch 2 ,mem_24g_pair_timeout 
+0x4104 012781 nrtn blank 
+0x4105 012782 fetch 2 ,mem_24g_reconn_timeout 
+0x4106 012783 nrtn blank 
+0x4107 012784 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x4108 012785 nrtn blank 
+0x4109 012786 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x410a 012787 rtnbit0 keyboard_enable_adc 
+0x410b 012788 rtnbit0 keyboard_enable_low_led 
+0x410c 012789 rtnbit0 keyboard_low_voltage_flag 
+0x410d 012790 bbit1 keyboard_enable_low_voltage_led_blink_n_second ,keyboard_low_voltage_led_blink_new_data 
+0x410e 012791 bpatch patch08_5 ,mem_patch08 
+0x410f 012792 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x4110 012793 increase 1 ,pdata 
+0x4111 012794 store 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x4112 012795 sub pdata ,20 ,null 
+0x4113 012796 ncall keyboard_adc_low_volatage_led_timer_count_clean ,positive 
+0x4114 012797 beq 2 ,keyboard_low_voltage_led_on 
+0x4115 012798 beq 4 ,keyboard_low_voltage_led_off 
+0x4116 012799 beq 6 ,keyboard_low_voltage_led_on 
+0x4117 012800 beq 8 ,keyboard_low_voltage_led_off 
+0x4118 012801 rtn 
+:      012802 keyboard_adc_low_volatage_led_timer_count_clean:
+0x4119 012803 jam 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+0x411a 012804 branch keyboard_low_voltage_led_off 
+:      012806 keyboard_low_voltage_led_blink_new_data:
+0x411b 012807 fetch 2 ,mem_device_no_data_timeout 
+0x411c 012808 fetcht 2 ,mem_device_no_data_timer 
+0x411d 012809 isub temp ,temp 
+0x411e 012810 fetch 2 ,mem_adc_low_volatage_led_blink_timer 
+0x411f 012811 isub temp ,null 
+0x4120 012812 nbranch keyboard_low_voltage_led_off ,positive 
+0x4121 012813 jam 1 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+0x4122 012814 fetch 1 ,mem_keyboard_low_volatage_led_flag 
+0x4123 012815 increase 1 ,pdata 
+0x4124 012816 store 1 ,mem_keyboard_low_volatage_led_flag 
+0x4125 012817 fetcht 1 ,mem_keyboard_low_volatage_led_blink_count 
+0x4126 012818 increase 1 ,temp 
+0x4127 012819 isub temp ,null 
+0x4128 012820 nbranch keyboard_low_voltage_led_on ,positive 
+0x4129 012821 call keyboard_low_voltage_led_off 
+0x412a 012822 fetch 1 ,mem_keyboard_low_volatage_led_flag 
+0x412b 012823 fetcht 1 ,mem_keyboard_low_volatage_led_blink_count 
+0x412c 012824 mul32 temp ,2 ,temp 
+0x412d 012825 isub temp ,null 
+0x412e 012826 nrtn zero 
+0x412f 012827 jam 0 ,mem_keyboard_low_volatage_led_flag 
+0x4130 012828 rtn 
+:      012831 keyboard_device_poweron_timer:
+0x4131 012832 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x4132 012833 rtn blank 
+0x4133 012834 increase -1 ,pdata 
+0x4134 012835 store 1 ,mem_keyboard_device_poweron_timer 
+0x4135 012836 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4136 012837 bbit1 keyboard_enable_030_power_led ,keyboard_device_poweron_030_led 
+0x4137 012838 branch keyboard_device_led_off ,blank 
+0x4138 012839 branch keyboard_device_led_on 
+:      012841 keyboard_device_poweron_030_led:
+0x4139 012842 branch keyboard_power_led_off ,blank 
+:      012843 keyboard_power_led_on:
+0x413a 012844 fetcht 1 ,mem_keyboard_power_led_gpio 
+0x413b 012845 branch gpio_out_active 
+:      012846 keyboard_power_led_off:
+0x413c 012847 fetcht 1 ,mem_keyboard_power_led_gpio 
+0x413d 012848 branch gpio_out_inactive 
+:      012850 keyboard_mode_led_timer:
+0x413e 012851 fetch 2 ,mem_device_no_data_timer 
+0x413f 012852 rtn blank 
+0x4140 012853 fetch 1 ,mem_keyboard_mode_led_on_timer 
+0x4141 012854 rtn blank 
+0x4142 012855 increase -1 ,pdata 
+0x4143 012856 store 1 ,mem_keyboard_mode_led_on_timer 
+0x4144 012857 bbit1 0 ,keyboard_device_led_on 
+0x4145 012858 branch keyboard_device_led_off 
+:      012861 keyboard_device_pair_led_timer:
+0x4146 012862 fetch 1 ,mem_device_flag 
+0x4147 012863 beq mode_24g_device ,keyboard_device_24g_pair_led 
+0x4148 012864 fetch 2 ,mem_device_discovery_timer 
+0x4149 012865 rtn blank 
+0x414a 012866 branch keyboard_device_pair_led 
+:      012868 keyboard_device_24g_pair_led:
+0x414b 012869 fetch 2 ,mem_24g_pair_timeout 
+0x414c 012870 rtn blank 
+:      012871 keyboard_device_pair_led:
+0x414d 012872 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x414e 012873 isolate0 keyboard_enable_030_power_led ,pdata 
+0x414f 012874 call keyboard_device_clear_power_timer ,true 
+0x4150 012875 fetch 1 ,mem_keyboard_pair_led_flag 
+0x4151 012876 increase 1 ,pdata 
+0x4152 012877 store 1 ,mem_keyboard_pair_led_flag 
+0x4153 012878 fetcht 1 ,mem_keyboard_pair_led_blink_count 
+0x4154 012879 increase 1 ,temp 
+0x4155 012880 isub temp ,null 
+0x4156 012881 nbranch keyboard_device_led_on ,positive 
+0x4157 012882 call keyboard_device_led_off 
+0x4158 012883 fetch 1 ,mem_keyboard_pair_led_flag 
+0x4159 012884 fetcht 1 ,mem_keyboard_pair_led_blink_count 
+0x415a 012885 mul32 temp ,2 ,temp 
+0x415b 012886 isub temp ,null 
+0x415c 012887 nrtn zero 
+0x415d 012888 jam 0 ,mem_keyboard_pair_led_flag 
+0x415e 012889 rtn 
+:      012891 keyboard_device_clear_power_timer:
+0x415f 012892 jam 0 ,mem_keyboard_device_poweron_timer 
+0x4160 012893 rtn 
+:      012895 keyboard_device_led_all_off:
+0x4161 012896 bpatch patch08_6 ,mem_patch08 
+0x4162 012897 call keyboard_power_led_off 
+0x4163 012898 call keyboard_device_led_off 
+0x4164 012899 call keyboard_numlock_led_off 
+0x4165 012900 branch keyboard_capslock_led_off 
+:      012902 keyboard_device_led_off:
+0x4166 012903 fetch 1 ,mem_device_flag 
+0x4167 012904 beq mode_24g_device ,keyboard_device_24g_led_off 
+0x4168 012905 beq mode_bt_device1 ,keyboard_device_bt1_led_off 
+0x4169 012906 beq mode_bt_device2 ,keyboard_device_bt2_led_off 
+0x416a 012907 beq mode_bt_device3 ,keyboard_device_bt3_led_off 
+0x416b 012908 rtn 
+:      012910 keyboard_device_led_on:
+0x416c 012911 fetch 1 ,mem_device_flag 
+0x416d 012912 beq mode_24g_device ,keyboard_device_24g_led_on 
+0x416e 012913 beq mode_bt_device1 ,keyboard_device_bt1_led_on 
+0x416f 012914 beq mode_bt_device2 ,keyboard_device_bt2_led_on 
+0x4170 012915 beq mode_bt_device3 ,keyboard_device_bt3_led_on 
+0x4171 012916 rtn 
+:      012918 keyboard_device_24g_led_off:
+0x4172 012919 fetcht 1 ,mem_keyboard_24g_led_gpio 
+0x4173 012920 branch gpio_out_inactive 
+:      012922 keyboard_device_bt1_led_off:
+0x4174 012923 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+0x4175 012924 branch gpio_out_inactive 
+:      012926 keyboard_device_bt2_led_off:
+0x4176 012927 fetcht 1 ,mem_keyboard_bt2_led_gpio 
+0x4177 012928 branch gpio_out_inactive 
+:      012930 keyboard_device_bt3_led_off:
+0x4178 012931 fetcht 1 ,mem_keyboard_bt3_led_gpio 
+0x4179 012932 branch gpio_out_inactive 
+:      012934 keyboard_device_24g_led_on:
+0x417a 012935 fetcht 1 ,mem_keyboard_24g_led_gpio 
+0x417b 012936 branch gpio_out_active 
+:      012938 keyboard_device_bt1_led_on:
+0x417c 012939 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+0x417d 012940 branch gpio_out_active 
+:      012942 keyboard_device_bt2_led_on:
+0x417e 012943 fetcht 1 ,mem_keyboard_bt2_led_gpio 
+0x417f 012944 branch gpio_out_active 
+:      012946 keyboard_device_bt3_led_on:
+0x4180 012947 fetcht 1 ,mem_keyboard_bt3_led_gpio 
+0x4181 012948 branch gpio_out_active 
+:      012950 keyboard_low_voltage_led_on:
+0x4182 012951 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+0x4183 012952 branch gpio_out_active 
+:      012954 keyboard_low_voltage_led_off:
+0x4184 012955 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+0x4185 012956 branch gpio_out_inactive 
+:      012959 keyboard_num_capslock_led_on_timer:
+0x4186 012960 fetch 1 ,mem_usb_vdd_status_current 
+0x4187 012961 beq usb_interface_insert ,keyboard_usb_led_check 
+0x4188 012962 fetch 2 ,mem_device_no_data_timer 
+0x4189 012963 rtn blank 
+0x418a 012964 fetch 2 ,mem_device_no_data_timeout 
+0x418b 012965 fetcht 2 ,mem_device_no_data_timer 
+0x418c 012966 isub temp ,temp 
+0x418d 012967 fetch 2 ,mem_keyboard_num_caps_scoll_led_on_timer 
+0x418e 012968 isub temp ,pdata 
+0x418f 012969 branch keyboard_num_cap_scoll_led_check ,positive 
+0x4190 012970 call keyboard_numlock_led_off 
+0x4191 012971 call keyboard_scrolllock_led_off 
+0x4192 012972 branch keyboard_capslock_led_off 
+:      012974 keyboard_usb_led_check:
+0x4193 012975 fetch 1 ,mem_24g_led_status 
+0x4194 012976 store 1 ,mem_keyboard_led_status 
+0x4195 012977 branch keyboard_num_cap_scoll_led_check 
+:      012979 keyboard_num_cap_scoll_led_check:
+0x4196 012980 call keyboard_numlock_led_check_on 
+0x4197 012981 call keyboard_scrolllock_led_check_on 
+0x4198 012982 branch keyboard_capslock_led_check_on 
+:      012984 keyboard_numlock_led_check_on:
+0x4199 012985 fetch 1 ,mem_keyboard_led_status 
+0x419a 012986 bbit0 kb_pc_keysel_numlock ,keyboard_numlock_led_off 
+:      012987 keyboard_numlock_led_on:
+0x419b 012988 fetcht 1 ,mem_keyboard_num_led_gpio 
+0x419c 012989 branch gpio_out_active 
+:      012990 keyboard_numlock_led_off:
+0x419d 012991 fetcht 1 ,mem_keyboard_num_led_gpio 
+0x419e 012992 branch gpio_out_inactive 
+:      012994 keyboard_capslock_led_check_on:
+0x419f 012995 fetch 1 ,mem_keyboard_led_status 
+0x41a0 012996 bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
+0x41a1 012997 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0x41a2 012998 branch gpio_out_active 
+:      012999 keyboard_capslock_led_off:
+0x41a3 013000 fetcht 1 ,mem_keyboard_caps_led_gpio 
+0x41a4 013001 branch gpio_out_inactive 
+:      013003 keyboard_scrolllock_led_check_on:
+0x41a5 013004 fetch 1 ,mem_keyboard_led_status 
+0x41a6 013005 bbit0 kb_pc_keysel_scrolllock ,keyboard_scrolllock_led_off 
+0x41a7 013006 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+0x41a8 013007 branch gpio_out_active 
+:      013008 keyboard_scrolllock_led_off:
+0x41a9 013009 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+0x41aa 013010 branch gpio_out_inactive 
+:      013012 keyboard_rgb_on_timer:
+0x41ab 013013 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x41ac 013014 rtnbit0 keyboard_enable_backlight 
+0x41ad 013015 fetch 2 ,mem_device_no_data_timer 
+0x41ae 013016 rtn blank 
+0x41af 013017 fetch 2 ,mem_device_no_data_timeout 
+0x41b0 013018 fetcht 2 ,mem_device_no_data_timer 
+0x41b1 013019 isub temp ,temp 
+0x41b2 013020 fetch 2 ,mem_keyboard_rgb_on_timer 
+0x41b3 013021 isub temp ,pdata 
+0x41b4 013022 rtn positive 
+0x41b5 013023 jam 0 ,mem_backlight_on_flag 
+0x41b6 013024 branch keyboard_rgb_off 
+:      013027 keyboard_pwm_init:
+0x41b7 013028 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x41b8 013029 rtnbit0 keyboard_enable_backlight 
+0x41b9 013030 arg 0 ,rega 
+0x41ba 013031 call pwm_init 
+0x41bb 013032 fetch 6 ,mem_rgb_pwm_conf 
+0x41bc 013033 store 6 ,mem_pdatatemp 
+0x41bd 013034 call pwm_out_set 
+0x41be 013035 fetch 2 ,mem_rgb_pwm_conf 
+0x41bf 013036 branch pwm_disable 
+:      013038 keyboard_rgb_pwm_disable:
+0x41c0 013039 fetch 1 ,mem_keyboard_led_r_gpio 
+0x41c1 013040 call pwm_disable 
+0x41c2 013041 fetch 1 ,mem_keyboard_led_g_gpio 
+0x41c3 013042 call pwm_disable 
+0x41c4 013043 fetch 1 ,mem_keyboard_led_b_gpio 
+0x41c5 013044 branch pwm_disable 
+:      013046 keyboard_rgb_pwm_set:
+0x41c6 013047 fetch 6 ,mem_rgb_pwm_conf 
+0x41c7 013048 store 6 ,mem_pdatatemp 
+0x41c8 013049 branch pwm_out_set 
+:      013051 keyboard_load_rgb:
+0x41c9 013052 bpatch patch08_7 ,mem_patch08 
+0x41ca 013053 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x41cb 013054 rtnbit0 keyboard_enable_backlight 
+0x41cc 013055 fetch 1 ,mem_backlight_on_flag 
+0x41cd 013056 call keyboard_rgb_mode_switch_next 
+0x41ce 013057 fetch 1 ,mem_backlight_on_type 
+0x41cf 013058 branch keyboard_rgb_on_type_switch_next 
+:      013060 keyboard_rgb_mode_switch:
+0x41d0 013061 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x41d1 013062 rtnbit0 keyboard_enable_backlight 
+0x41d2 013063 call keyboard_keyvalue_clear_temp 
+0x41d3 013064 fetch 1 ,mem_keyboard_press_flag_temp 
+0x41d4 013065 rtnbit0 0 
+0x41d5 013066 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x41d6 013067 set1 keyboard_store_eepromm_flag_rgb_type ,pdata 
+0x41d7 013068 store 1 ,mem_keyboard_device_info_store_flag 
+0x41d8 013069 call keyboard_store_eeprom_or_flash 
+0x41d9 013070 jam 0 ,mem_backlight_breathe_type 
+0x41da 013071 jam 0 ,mem_rgb_pwm_breathe_flag 
+0x41db 013072 jam 10 ,mem_rgb_pwm_conf + 5 
+0x41dc 013073 fetch 1 ,mem_backlight_on_flag 
+0x41dd 013074 increase 1 ,pdata 
+:      013075 keyboard_rgb_mode_switch_next:
+0x41de 013076 sub pdata ,rgb_backlight_status_breathe ,null 
+0x41df 013077 ncall set_pdata_0 ,positive 
+0x41e0 013078 store 1 ,mem_backlight_on_flag 
+0x41e1 013079 rtn 
+:      013081 keyboard_rgb_on_type_switch:
+0x41e2 013082 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x41e3 013083 rtnbit0 keyboard_enable_backlight 
+0x41e4 013084 call keyboard_keyvalue_clear_temp 
+0x41e5 013085 fetch 1 ,mem_keyboard_press_flag_temp 
+0x41e6 013086 rtnbit0 0 
+0x41e7 013087 fetch 1 ,mem_backlight_on_flag 
+0x41e8 013088 rtnne rgb_backlight_status_on 
+0x41e9 013089 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x41ea 013090 set1 keyboard_store_eepromm_flag_rgb_type ,pdata 
+0x41eb 013091 store 1 ,mem_keyboard_device_info_store_flag 
+0x41ec 013092 call keyboard_store_eeprom_or_flash 
+0x41ed 013093 fetch 1 ,mem_backlight_on_type 
+0x41ee 013094 increase 1 ,pdata 
+:      013095 keyboard_rgb_on_type_switch_next:
+0x41ef 013096 sub pdata ,rgb_backlight_on_tpye_white ,null 
+0x41f0 013097 ncall set_pdata_0 ,positive 
+0x41f1 013098 store 1 ,mem_backlight_on_type 
+0x41f2 013099 rtn 
+:      013101 keyboard_rgb_process:
+0x41f3 013102 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x41f4 013103 rtnbit0 keyboard_enable_backlight 
+0x41f5 013104 fetcht 4 ,mem_ui_check_timer_setup 
+0x41f6 013105 copy clkn_bt ,pdata 
+0x41f7 013106 isub temp ,pdata 
+0x41f8 013107 fetcht 2 ,mem_customize_timer_setup 
+0x41f9 013108 idiv temp 
+0x41fa 013109 call wait_div_end 
+0x41fb 013110 quotient pdata 
+0x41fc 013111 rtn blank 
+0x41fd 013112 copy clkn_bt ,temp 
+0x41fe 013113 storet 4 ,mem_ui_check_timer_setup 
+0x41ff 013114 fetch 1 ,mem_backlight_on_flag 
+0x4200 013115 beq rgb_backlight_status_breathe ,keyboard_rbg_breathe_process 
+0x4201 013116 beq rgb_backlight_status_on ,keyboard_rgb_on_process 
+0x4202 013117 jam 0 ,mem_backlight_on_flag 
+:      013118 keyboard_rgb_off:
+0x4203 013119 bpatch patch09_0 ,mem_patch09 
+0x4204 013120 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4205 013121 rtnbit0 keyboard_enable_backlight 
+0x4206 013122 call keyboard_rgb_pwm_disable 
+0x4207 013123 jam 0 ,mem_rgb_on_color_temp 
+0x4208 013124 branch keyboard_rgb_led_control 
+:      013126 keyboard_rbg_breathe_process:
+0x4209 013127 fetch 1 ,mem_rgb_pwm_breathe_flag 
+0x420a 013128 branch keyboard_rbg_breathe_up ,blank 
+0x420b 013129 fetch 1 ,mem_rgb_pwm_conf + 5 
+0x420c 013130 sub pdata ,5 ,null 
+0x420d 013131 branch keyboard_rbg_breathe_color_switch ,positive 
+0x420e 013132 increase -1 ,pdata 
+0x420f 013133 store 1 ,mem_rgb_pwm_conf + 5 
+0x4210 013134 branch keyboard_rgb_pwm 
+:      013136 keyboard_rbg_breathe_up:
+0x4211 013137 fetch 1 ,mem_rgb_pwm_conf + 5 
+0x4212 013138 increase 1 ,pdata 
+0x4213 013139 store 1 ,mem_rgb_pwm_conf + 5 
+0x4214 013140 call keyboard_rgb_pwm 
+0x4215 013141 fetch 1 ,mem_rgb_pwm_conf + 5 
+0x4216 013142 sub pdata ,90 ,null 
+0x4217 013143 rtn positive 
+0x4218 013144 jam 1 ,mem_rgb_pwm_breathe_flag 
+0x4219 013145 rtn 
+:      013147 keyboard_rbg_breathe_color_switch:
+0x421a 013148 jam 0 ,mem_rgb_pwm_breathe_flag 
+0x421b 013149 fetch 1 ,mem_backlight_breathe_type 
+0x421c 013150 increase 1 ,pdata 
+0x421d 013151 sub pdata ,rgb_backlight_breathe_tpye_white ,null 
+0x421e 013152 ncall set_pdata_0 ,positive 
+0x421f 013153 store 1 ,mem_backlight_breathe_type 
+0x4220 013154 rtn 
+:      013156 keyboard_rgb_pwm:
+0x4221 013157 call keyboard_pwm_init 
+0x4222 013158 call keyboard_rgb_off + 4 
+0x4223 013159 branch keyboard_breathe_tpye_select 
+:      013161 keyboard_breathe_tpye_select:
+0x4224 013162 fetch 1 ,mem_backlight_breathe_type 
+0x4225 013163 beq rgb_backlight_breathe_tpye_red ,keyboard_breathe_tpye_red 
+0x4226 013164 beq rgb_backlight_breathe_tpye_green ,keyboard_breathe_tpye_green 
+0x4227 013165 beq rgb_backlight_breathe_tpye_blue ,keyboard_breathe_tpye_blue 
+0x4228 013166 beq rgb_backlight_breathe_tpye_cyan ,keyboard_breathe_tpye_cyan 
+0x4229 013167 beq rgb_backlight_breathe_tpye_orange ,keyboard_breathe_tpye_orange 
+0x422a 013168 beq rgb_backlight_breathe_tpye_purple ,keyboard_breathe_tpye_purple 
+0x422b 013169 beq rgb_backlight_breathe_tpye_white ,keyboard_breathe_tpye_white 
+:      013170 keyboard_breathe_tpye_red:
+0x422c 013171 fetch 1 ,mem_keyboard_led_r_gpio 
+0x422d 013172 store 1 ,mem_rgb_pwm_conf 
+0x422e 013173 setarg 0x01 
+0x422f 013174 store 1 ,mem_rgb_pwm_conf + 1 
+0x4230 013175 branch keyboard_rgb_pwm_set 
+:      013177 keyboard_breathe_tpye_green:
+0x4231 013178 fetch 1 ,mem_keyboard_led_g_gpio 
+0x4232 013179 store 1 ,mem_rgb_pwm_conf 
+0x4233 013180 setarg 0x02 
+0x4234 013181 store 1 ,mem_rgb_pwm_conf + 1 
+0x4235 013182 branch keyboard_rgb_pwm_set 
+:      013184 keyboard_breathe_tpye_blue:
+0x4236 013185 fetch 1 ,mem_keyboard_led_b_gpio 
+0x4237 013186 store 1 ,mem_rgb_pwm_conf 
+0x4238 013187 setarg 0x04 
+0x4239 013188 store 1 ,mem_rgb_pwm_conf + 1 
+0x423a 013189 branch keyboard_rgb_pwm_set 
+:      013191 keyboard_breathe_tpye_cyan:
+0x423b 013192 call keyboard_breathe_tpye_green 
+0x423c 013193 branch keyboard_breathe_tpye_blue 
+:      013195 keyboard_breathe_tpye_orange:
+0x423d 013196 call keyboard_breathe_tpye_red 
+0x423e 013197 branch keyboard_breathe_tpye_green 
+:      013199 keyboard_breathe_tpye_purple:
+0x423f 013200 call keyboard_breathe_tpye_red 
+0x4240 013201 branch keyboard_breathe_tpye_blue 
+:      013203 keyboard_breathe_tpye_white:
+0x4241 013204 call keyboard_breathe_tpye_red 
+0x4242 013205 call keyboard_breathe_tpye_green 
+0x4243 013206 branch keyboard_breathe_tpye_blue 
+:      013208 keyboard_rgb_on_process:
+0x4244 013209 call keyboard_rgb_pwm_disable 
+0x4245 013210 fetch 1 ,mem_backlight_on_type 
+0x4246 013211 sub pdata ,rgb_backlight_on_tpye_white ,null 
+0x4247 013212 ncall set_pdata_0 ,positive 
+0x4248 013213 store 1 ,mem_backlight_on_type 
+0x4249 013214 arg mem_rgb_on_color ,contr 
+0x424a 013215 iadd contr ,contr 
+0x424b 013216 ifetch 1 ,contr 
+0x424c 013217 store 1 ,mem_rgb_on_color_temp 
+0x424d 013218 branch keyboard_rgb_led_control 
+:      013221 keyboard_rgb_led_control:
+0x424e 013222 fetch 1 ,mem_rgb_on_color_temp 
+0x424f 013223 isolate1 keyboard_rgb_red_status ,pdata 
+0x4250 013224 call keyboard_rgb_red_led_on ,true 
+0x4251 013225 ncall keyboard_rgb_red_led_off ,true 
+0x4252 013226 fetch 1 ,mem_rgb_on_color_temp 
+0x4253 013227 isolate1 keyboard_rgb_green_status ,pdata 
+0x4254 013228 call keyboard_rgb_green_led_on ,true 
+0x4255 013229 ncall keyboard_rgb_green_led_off ,true 
+0x4256 013230 fetch 1 ,mem_rgb_on_color_temp 
+0x4257 013231 isolate1 keyboard_rgb_blue_status ,pdata 
+0x4258 013232 call keyboard_rgb_blue_led_on ,true 
+0x4259 013233 ncall keyboard_rgb_blue_led_off ,true 
+0x425a 013234 rtn 
+:      013236 keyboard_rgb_red_led_on:
+0x425b 013237 fetcht 1 ,mem_keyboard_led_r_gpio 
+0x425c 013238 branch gpio_out_inactive 
+:      013240 keyboard_rgb_red_led_off:
+0x425d 013241 fetcht 1 ,mem_keyboard_led_r_gpio 
+0x425e 013242 branch gpio_out_active 
+:      013244 keyboard_rgb_green_led_on:
+0x425f 013245 fetcht 1 ,mem_keyboard_led_g_gpio 
+0x4260 013246 branch gpio_out_inactive 
+:      013248 keyboard_rgb_green_led_off:
+0x4261 013249 fetcht 1 ,mem_keyboard_led_g_gpio 
+0x4262 013250 branch gpio_out_active 
+:      013252 keyboard_rgb_blue_led_on:
+0x4263 013253 fetcht 1 ,mem_keyboard_led_b_gpio 
+0x4264 013254 branch gpio_out_inactive 
+:      013256 keyboard_rgb_blue_led_off:
+0x4265 013257 fetcht 1 ,mem_keyboard_led_b_gpio 
+0x4266 013258 branch gpio_out_active 
+:      013263 keyboard_key_press_timer:
+0x4267 013264 fetch 1 ,mem_keyboard_switch_device_flag 
+0x4268 013265 bbit1 keyboard_flag_g24_device_button ,keyboard_device_select_g24_press_timer 
+0x4269 013266 call keyboard_device_select_g24_nopress_timer 
+0x426a 013267 fetch 1 ,mem_keyboard_switch_device_flag 
+0x426b 013268 bbit1 keyboard_flag_bt_device_button ,keyboard_device_select_bt_press_timer 
+0x426c 013269 branch keyboard_device_select_bt_nopress_timer 
+:      013271 keyboard_device_select_g24_press_timer:
+0x426d 013272 fetch 1 ,mem_keyboard_switch_g24_press_timer 
+0x426e 013273 sub pdata ,100 ,null 
+0x426f 013274 nrtn positive 
+0x4270 013275 increase 1 ,pdata 
+0x4271 013276 store 1 ,mem_keyboard_switch_g24_press_timer 
+0x4272 013277 rtnne 25 
+0x4273 013278 jam 0 ,mem_keyboard_switch_g24_enable 
+0x4274 013279 fetch 1 ,mem_device_flag 
+0x4275 013280 rtneq mode_usb_device 
+0x4276 013281 call keyboard_stop_bluetooth_mode 
+0x4277 013282 branch keyboard_24g_start_pair_mode 
+:      013284 keyboard_device_select_g24_nopress_timer:
+0x4278 013285 jam 0 ,mem_keyboard_switch_g24_press_timer 
+0x4279 013286 fetch 1 ,mem_keyboard_switch_g24_enable 
+0x427a 013287 rtn blank 
+0x427b 013288 jam 0 ,mem_keyboard_switch_g24_enable 
+0x427c 013289 call keyboard_store_device_number 
+0x427d 013290 branch soft_reset_chip 
+:      013292 keyboard_device_select_bt_press_timer:
+0x427e 013293 fetch 1 ,mem_keyboard_switch_bt_press_timer 
+0x427f 013294 sub pdata ,100 ,null 
+0x4280 013295 nrtn positive 
+0x4281 013296 increase 1 ,pdata 
+0x4282 013297 store 1 ,mem_keyboard_switch_bt_press_timer 
+0x4283 013298 rtnne 25 
+0x4284 013299 jam 0 ,mem_keyboard_switch_bt_enable 
+0x4285 013300 fetch 1 ,mem_device_flag 
+0x4286 013301 rtneq mode_usb_device 
+0x4287 013302 call hid_device_le_send_empty_packet 
+0x4288 013303 branch keyboard_long_button_bt_discovery 
+:      013305 keyboard_device_select_bt_nopress_timer:
+0x4289 013306 jam 0 ,mem_keyboard_switch_bt_press_timer 
+0x428a 013307 fetch 1 ,mem_keyboard_switch_bt_enable 
+0x428b 013308 rtn blank 
+0x428c 013309 jam 0 ,mem_keyboard_switch_bt_enable 
+0x428d 013310 call keyboard_store_device_number 
+0x428e 013311 branch soft_reset_chip 
+:      013313 keyboard_commbination_key_process:
+0x428f 013314 fetch 1 ,mem_commbination_key_statue 
+0x4290 013315 rtnne commbination_key_state_down 
+0x4291 013316 arg mem_combination_ui_button_count ,regc 
+0x4292 013317 arg keyboard_commbination_key_press_type_check ,regb 
+0x4293 013318 branch timer_single_step 
+:      013320 keyboard_commbination_key_press_type_check:
+0x4294 013321 fetch 1 ,mem_keyboard_commbination_press_type 
+0x4295 013322 beq keyboard_commbination_press_type_24g_pair ,keyboard_24g_start_pair_mode 
+0x4296 013323 beq keyboard_commbination_press_type_bt_pair ,keyboard_long_button_bt_discovery 
+0x4297 013324 beq keyboard_commbination_press_type_bt_fast_conn ,mouse_bluetooth_fast_conn_init 
+0x4298 013325 rtn 
+:      013328 keyboard_check_discovery_timeout_timer:
+0x4299 013329 arg mem_device_discovery_timer ,regc 
+0x429a 013330 arg keyboard_check_discovery_timeout ,regb 
+0x429b 013331 branch timer_single_step_2b 
+:      013333 keyboard_check_discovery_timeout:
+0x429c 013334 call keyboard_stop_discovery 
+0x429d 013335 branch keyboard_power_down 
+:      013337 keyboard_store_information_delay_timer:
+0x429e 013338 arg mem_store_information_delay_timer ,regc 
+0x429f 013339 arg keyboard_store_device_info ,regb 
+0x42a0 013340 branch timer_single_step 
+:      013342 keyboard_le_auto_recognize_timer:
+0x42a1 013343 arg mem_le_start_auto_reco_timer ,regc 
+0x42a2 013344 arg keyboard_le_send_att_find_by_type_value_request_ancs ,regb 
+0x42a3 013345 branch timer_single_step 
+:      013347 keyboard_check_direct_timeout_timer:
+0x42a4 013348 arg mem_device_direct_timer ,regc 
+0x42a5 013349 arg keyboard_check_direct_timeout ,regb 
+0x42a6 013350 call timer_single_step 
+0x42a7 013351 fetch 1 ,mem_device_direct_timer 
+0x42a8 013352 beq 1 ,app_ble_stop_direct_adv 
+0x42a9 013353 rtn 
+:      013355 keyboard_check_direct_timeout:
+0x42aa 013356 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x42ab 013357 bbit1 keyboard_enable_bt_reconnect_timeout_enter_discovery ,keyboard_start_discovery 
+0x42ac 013358 branch mouse_app_enter_hibernate 
+:      013361 keyboard_le_battery_updata_timer:
+0x42ad 013362 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x42ae 013363 rtnbit1 keyboard_enable_le_battery_service_cancel 
+0x42af 013364 arg mem_le_battery_level_updata_timer ,regc 
+0x42b0 013365 arg mouse_le_battery_level_updata ,regb 
+0x42b1 013366 branch timer_single_step 
+:      013368 keyboard_le_send_conn_param_update_timer:
+0x42b2 013369 arg mem_keyboard_le_send_conn_param_update_timer ,regc 
+0x42b3 013370 arg mouse_updata_le_param ,regb 
+0x42b4 013371 branch timer_single_step 
+:      013373 keyboard_24g_repeat_send_data:
+0x42b5 013374 fetch 1 ,mem_24g_repeat_send_flag 
+0x42b6 013375 rtn blank 
+0x42b7 013376 jam 0 ,mem_24g_repeat_send_flag 
+0x42b8 013377 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0x42b9 013378 nrtn blank 
+0x42ba 013379 fetch 2 ,mem_24g_pair_timeout 
+0x42bb 013380 nrtn blank 
+0x42bc 013381 jam 1 ,mem_keyboard_data_change_flag 
+0x42bd 013382 call g24_txdata_prep 
+0x42be 013383 branch keyboard_g24_transmit_process 
+:      013385 keyboard_24g_led_status_get_timer:
+0x42bf 013386 arg mem_keyboard_led_status_get_timer ,regc 
+0x42c0 013387 arg keyboard_24g_led_status_clear ,regb 
+0x42c1 013388 branch timer_single_step 
+:      013390 keyboard_24g_led_status_clear:
+0x42c2 013391 jam 0 ,mem_keyboard_led_status_get 
+0x42c3 013392 rtn 
+:      013395 keyboard_same_key_long_press_timer:
+0x42c4 013396 arg mem_same_keyvalue_timer ,regc 
+0x42c5 013397 arg keyboard_long_press_timerout ,regb 
+0x42c6 013398 branch timer_single_step_2b 
+:      013400 keyboard_long_press_timerout:
+0x42c7 013401 jam 1 ,mem_same_keyvalue_timerout_flag 
+0x42c8 013402 branch keyboard_power_down 
+:      013404 keyboard_commbination_delay_release_timer:
+0x42c9 013405 arg mem_keyboard_commbination_control_key_delay_release_timer ,regc 
+0x42ca 013406 arg keyboard_commbination_key_null_set ,regb 
+0x42cb 013407 branch timer_single_step 
+:      013409 keyboard_usb_updata_timer:
+0x42cc 013410 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x42cd 013411 rtnbit0 keyboard_enable_usb 
+0x42ce 013412 fetch 1 ,mem_usb_wait_updata_timer 
+0x42cf 013413 rtn blank 
+0x42d0 013414 increase -1 ,pdata 
+0x42d1 013415 store 1 ,mem_usb_wait_updata_timer 
+0x42d2 013416 nrtn blank 
+0x42d3 013417 jam 1 ,mem_lpm_mode 
+0x42d4 013418 branch keyboard_power_down 
+:      013420 keyboard_check_no_data_timeout_timer:
+0x42d5 013421 fetch 1 ,mem_usb_vdd_status_current 
+0x42d6 013422 rtneq usb_interface_insert 
+0x42d7 013423 arg mem_device_no_data_timer ,regc 
+0x42d8 013424 arg keyboard_check_no_data_timeout ,regb 
+0x42d9 013425 branch timer_single_step_2b 
+:      013427 keyboard_check_no_data_timeout:
+0x42da 013428 fetch 1 ,mem_device_flag 
+0x42db 013429 beq mode_24g_device ,keyboard_24g_hibernate_set 
+0x42dc 013430 branch mouse_disconnect 
+:      013433 keyboard_idle:
+0x42dd 013434 bpatch patch09_1 ,mem_patch09 
+0x42de 013435 call kscan_dispatch 
+0x42df 013436 call keyboard_rgb_process 
+0x42e0 013437 call keyboard_usb_isr 
+0x42e1 013438 call keyboard_usb_mode 
+0x42e2 013439 branch keyboard_check_select_device_by_switch 
+:      013441 keyboard_check_select_device_by_switch:
+0x42e3 013442 bpatch patch09_2 ,mem_patch09 
+0x42e4 013443 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x42e5 013444 rtnbit0 keyboard_enable_select_device_by_switch_gpio 
+0x42e6 013445 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_check_select_device_by_switch_vdd_check 
+0x42e7 013446 bbit1 keyboard_enable_select_device_by_switch_gpio_bt_connect_vdd ,keyboard_check_select_device_by_switch_vdd_check 
+0x42e8 013447 fetcht 1 ,mem_device_switch_gpio 
+0x42e9 013448 call device_gpio_config_input_pu 
+0x42ea 013449 fetcht 1 ,mem_device_switch_gpio 
+0x42eb 013450 call gpio_get_bit 
+0x42ec 013451 branch keyboard_check_select_device_by_switch_gnd ,true 
+0x42ed 013452 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x42ee 013453 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_gnd ,keyboard_select_btdevice 
+0x42ef 013454 branch keyboard_check_select_24g_device 
+:      013456 keyboard_check_select_device_by_switch_vdd_check:
+0x42f0 013457 fetcht 1 ,mem_device_switch_gpio 
+0x42f1 013458 call device_gpio_config_input_pd 
+0x42f2 013459 fetcht 1 ,mem_device_switch_gpio 
+0x42f3 013460 call gpio_get_bit 
+0x42f4 013461 nbranch keyboard_check_select_device_by_switch_vdd ,true 
+0x42f5 013462 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x42f6 013463 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_select_btdevice 
+0x42f7 013464 branch keyboard_check_select_24g_device 
+:      013466 keyboard_check_select_device_by_switch_vdd:
+0x42f8 013467 fetcht 1 ,mem_device_switch_gpio 
+0x42f9 013468 call device_gpio_config_input_pu 
+0x42fa 013469 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x42fb 013470 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_check_select_24g_device 
+0x42fc 013471 branch keyboard_select_btdevice 
+:      013473 keyboard_check_select_device_by_switch_gnd:
+0x42fd 013474 fetcht 1 ,mem_device_switch_gpio 
+0x42fe 013475 call device_gpio_config_input_pd 
+0x42ff 013476 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4300 013477 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_gnd ,keyboard_check_select_24g_device 
+0x4301 013478 branch keyboard_select_btdevice 
+:      013480 keyboard_select_btdevice:
+0x4302 013481 fetch 1 ,mem_device_flag 
+0x4303 013482 rtneq mode_bt_device1 
+0x4304 013483 jam mode_bt_device1 ,mem_device_flag 
+0x4305 013484 fetch 1 ,mem_keyboard_switch_count_temp 
+0x4306 013485 nbranch soft_reset_chip ,blank 
+0x4307 013486 branch keyboard_stop_bluetooth_mode 
+:      013487 keyboard_check_select_24g_device:
+0x4308 013488 fetch 1 ,mem_device_flag 
+0x4309 013489 rtneq mode_24g_device 
+0x430a 013490 jam mode_24g_device ,mem_device_flag 
+0x430b 013491 fetch 1 ,mem_keyboard_switch_count_temp 
+0x430c 013492 nbranch soft_reset_chip ,blank 
+0x430d 013493 branch keyboard_24g_stop 
+:      013495 keyboard_start_work:
+0x430e 013496 bpatch patch09_3 ,mem_patch09 
+0x430f 013497 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4310 013498 bbit0 keyboard_enable_adc ,keyboard_start_work_next 
+0x4311 013499 call keyboard_adc_read_start 
+0x4312 013500 fetch 2 ,mem_device_vdd_empty_vol 
+0x4313 013501 div pdata ,2 
+0x4314 013502 call get_div_result 
+0x4315 013503 fetcht 2 ,mem_device_vdd_now_vol 
+0x4316 013504 isub temp ,null 
+0x4317 013505 branch keyboard_start_work ,positive 
+0x4318 013506 fetch 1 ,mem_adc_power_flag 
+0x4319 013507 bbit1 1 ,keyboard_power_down 
+:      013508 keyboard_start_work_next:
+0x431a 013509 fetch 1 ,mem_keyboard_pairing_type 
+0x431b 013510 call keyboard_enable_bt_button_pairing ,blank 
+0x431c 013511 fetch 1 ,mem_keyboard_bt_button_flag 
+0x431d 013512 nrtn blank 
+0x431e 013513 fetch 1 ,mem_device_flag 
+0x431f 013514 beq mode_24g_device ,keyboard_24g_start_mode 
+0x4320 013515 call mouse_bluetooth_fast_conn_disable 
+0x4321 013516 beq mode_bt_device1 ,keyboard_start_ble1_reconnect 
+0x4322 013517 beq mode_bt_device2 ,keyboard_start_ble2_reconnect 
+0x4323 013518 beq mode_bt_device3 ,keyboard_start_ble3_reconnect 
+:      013519 keyboard_start_ble1_reconnect:
+0x4324 013520 fetch 6 ,mem_device1_addr 
+:      013521 keyboard_start_ble_reconnect:
+0x4325 013522 fetcht 6 ,mem_device_compare_addr 
+0x4326 013523 isub temp ,null 
+0x4327 013524 branch mouse_bluetooth_fast_conn_init ,zero 
+0x4328 013525 branch mouse_start_reconnect_device 
+:      013527 keyboard_start_ble2_reconnect:
+0x4329 013528 fetch 6 ,mem_device2_addr 
+0x432a 013529 branch keyboard_start_ble_reconnect 
+:      013531 keyboard_start_ble3_reconnect:
+0x432b 013532 fetch 6 ,mem_device3_addr 
+0x432c 013533 branch keyboard_start_ble_reconnect 
+:      013535 keyboard_24g_start_mode:
+0x432d 013536 call keyboard_wakeup_from_power_check 
+0x432e 013537 branch mouse_24g_reconn_dongle_start ,user 
+0x432f 013538 branch mouse_24g_reconn_general_dongle 
+:      013541 kscan_dispatch:
+0x4330 013542 bpatch patch09_4 ,mem_patch09 
+0x4331 013543 call keyboard_keyscan 
+0x4332 013544 call keyboard_key_process 
+0x4333 013545 branch keyboard_special_key_check 
+:      013547 keyboard_keyscan:
+0x4334 013548 call keyboard_gpio_init 
+0x4335 013549 call keyboard_stb_state_low 
+0x4336 013550 setarg 0 
+0x4337 013551 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4338 013552 arg mem_keyscan_value_current ,contr 
+0x4339 013553 arg mem_keyscan_value_check ,contw 
+0x433a 013554 arg 20 ,loopcnt 
+0x433b 013555 call memcpy 
+0x433c 013556 setarg mem_keyscan_value_current 
+0x433d 013557 store 2 ,mem_keyscan_value_ptr 
+0x433e 013558 setarg mem_keyscan_exmcu_value 
+0x433f 013559 store 2 ,mem_keyscan_exmcu_value_ptr 
+0x4340 013560 call keyboard_stb_state_high 
+0x4341 013561 call keyboard_clk_input 
+:      013562 keyboard_keyscan_exmcu_start_check:
+0x4342 013563 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4343 013564 increase 1 ,pdata 
+0x4344 013565 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0x4345 013566 bbit1 9 ,keyboard_keyscan 
+0x4346 013567 fetcht 1 ,mem_mcu_clk_gpio 
+0x4347 013568 call gpio_get_bit 
+0x4348 013569 nbranch keyboard_keyscan_exmcu_start_check ,true 
+0x4349 013570 call keyboard_stb_state_low 
+:      013571 keyboard_keyscan_wait_wake_next:
+0x434a 013572 fetcht 1 ,mem_mcu_clk_gpio 
+0x434b 013573 call gpio_get_bit 
+0x434c 013574 branch keyboard_keyscan_wait_wake_next ,true 
+0x434d 013576 call keyboard_keyscan_get_exmcu_value 
+0x434e 013577 call keyboard_keyscan_get_mcu_value 
+0x434f 013578 call keyboard_clk_input 
+0x4350 013579 call keyboard_stb_state_high 
+:      013580 keyboard_keyscan_copy_value:
+0x4351 013581 fetch 2 ,mem_kb_excol_ptr 
+0x4352 013582 copy pdata ,regb 
+0x4353 013583 jam 0 ,mem_keyscan_col_loop_count 
+:      013584 keyboard_compare_col_excol_gpio_loop:
+0x4354 013585 ifetcht 1 ,regb 
+0x4355 013586 fetch 2 ,mem_kb_col_ptr 
+0x4356 013587 copy pdata ,rega 
+0x4357 013588 copy rega ,regc 
+0x4358 013589 arg 20 ,loopcnt 
+:      013590 keyboard_compare_col_gpio_loop:
+0x4359 013591 ifetch 1 ,rega 
+0x435a 013592 isub temp ,null 
+0x435b 013593 branch keyboard_copy_value_exmcu_to_mcu ,zero 
+0x435c 013594 increase 1 ,rega 
+0x435d 013595 loop keyboard_compare_col_gpio_loop 
+:      013596 keyboard_compare_col_excol_gpio_loop_next:
+0x435e 013597 increase 1 ,regb 
+0x435f 013598 fetch 1 ,mem_keyscan_col_loop_count 
+0x4360 013599 increase 1 ,pdata 
+0x4361 013600 store 1 ,mem_keyscan_col_loop_count 
+0x4362 013601 sub pdata ,11 ,null 
+0x4363 013602 branch keyboard_compare_col_excol_gpio_loop ,positive 
+0x4364 013603 call keyboard_gpio_pu_idle 
+0x4365 013604 branch keyboard_key_row_init 
+:      013606 keyboard_copy_value_exmcu_to_mcu:
+0x4366 013607 fetch 2 ,mem_keyscan_value_ptr 
+0x4367 013608 copy pdata ,contw 
+0x4368 013609 copy rega ,pdata 
+0x4369 013610 isub regc ,pdata 
+0x436a 013611 iadd contw ,contw 
+0x436b 013612 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+0x436c 013613 copy pdata ,regc 
+0x436d 013614 fetch 1 ,mem_keyscan_col_loop_count 
+0x436e 013615 iadd regc ,regc 
+0x436f 013616 ifetch 1 ,regc 
+0x4370 013617 istore 1 ,contw 
+0x4371 013618 branch keyboard_compare_col_excol_gpio_loop_next 
+:      013620 keyboard_keyscan_get_exmcu_value:
+0x4372 013621 jam 0 ,mem_keyscan_col_loop_count 
+:      013622 keyboard_keyscan_exmcu_start_loop:
+0x4373 013623 call keyboard_clk_state_low 
+0x4374 013624 call keyboard_keyscan_exmcu_get_col_value 
+0x4375 013625 call keyboard_clk_state_high 
+0x4376 013626 call keyboard_keyscan_exmcu_get_col_value 
+0x4377 013627 sub pdata ,11 ,null 
+0x4378 013628 branch keyboard_keyscan_exmcu_start_loop ,positive 
+0x4379 013629 branch keyboard_clk_state_low 
+:      013632 keyboard_keyscan_exmcu_get_col_value:
+0x437a 013633 jam 0 ,mem_keyscan_value_temp 
+0x437b 013634 call keyboard_keyscan_get_col_value 
+0x437c 013635 fetch 2 ,mem_keyscan_exmcu_value_ptr 
+:      013636 keyboard_keyscan_value_store:
+0x437d 013637 copy pdata ,contw 
+0x437e 013638 fetch 1 ,mem_keyscan_col_loop_count 
+0x437f 013639 iadd contw ,contw 
+0x4380 013640 fetch 1 ,mem_keyscan_value_temp 
+0x4381 013641 istore 1 ,contw 
+0x4382 013642 fetch 1 ,mem_keyscan_col_loop_count 
+0x4383 013643 increase 1 ,pdata 
+0x4384 013644 store 1 ,mem_keyscan_col_loop_count 
+0x4385 013645 rtn 
+:      013648 keyboard_keyscan_get_mcu_value:
+0x4386 013649 fetch 2 ,mem_kb_col_ptr 
+0x4387 013650 copy pdata ,regb 
+0x4388 013651 jam 0 ,mem_keyscan_col_loop_count 
+:      013652 keyboard_keyscan_mcu_start:
+0x4389 013653 jam 0 ,mem_keyscan_value_temp 
+0x438a 013654 ifetcht 1 ,regb 
+0x438b 013655 isolate1 7 ,temp 
+0x438c 013656 branch keyboard_keyscan_mcu_start_loop ,true 
+0x438d 013657 call gpio_out_active 
+0x438e 013658 call keyboard_keyscan_get_col_value 
+0x438f 013659 ifetcht 1 ,regb 
+0x4390 013660 call gpio_out_inactive 
+0x4391 013661 ifetcht 1 ,regb 
+0x4392 013662 call device_gpio_config_input_pu 
+:      013663 keyboard_keyscan_mcu_start_loop:
+0x4393 013664 increase 1 ,regb 
+0x4394 013665 fetch 2 ,mem_keyscan_value_ptr 
+0x4395 013666 call keyboard_keyscan_value_store 
+0x4396 013667 sub pdata ,19 ,null 
+0x4397 013668 branch keyboard_keyscan_mcu_start ,positive 
+0x4398 013669 rtn 
+:      013672 keyboard_keyscan_get_col_value:
+0x4399 013673 bpatch patch09_5 ,mem_patch09 
+0x439a 013674 nop 120 
+0x439b 013675 fetch 2 ,mem_kb_row_ptr 
+0x439c 013676 copy pdata ,regc 
+0x439d 013677 arg 8 ,loopcnt 
+:      013678 keyboard_keyscan_get_col_value_loop:
+0x439e 013679 ifetcht 1 ,regc 
+0x439f 013680 call gpio_get_bit 
+0x43a0 013681 fetch 1 ,mem_keyscan_value_temp 
+0x43a1 013682 rshift pdata ,pdata 
+0x43a2 013683 setflag true ,7 ,pdata 
+0x43a3 013684 store 1 ,mem_keyscan_value_temp 
+0x43a4 013685 increase 1 ,regc 
+0x43a5 013686 loop keyboard_keyscan_get_col_value_loop 
+0x43a6 013687 rtn 
+:      013689 keyboard_clk_state_high:
+0x43a7 013690 fetcht 1 ,mem_mcu_clk_gpio 
+0x43a8 013691 branch gpio_out_inactive 
+:      013693 keyboard_clk_state_low:
+0x43a9 013694 fetcht 1 ,mem_mcu_clk_gpio 
+0x43aa 013695 branch gpio_out_active 
+:      013697 keyboard_clk_input:
+0x43ab 013698 fetcht 1 ,mem_mcu_clk_gpio 
+0x43ac 013699 branch gpio_config_input 
+:      013701 keyboard_stb_state_high:
+0x43ad 013702 fetcht 1 ,mem_mcu_stb_gpio 
+0x43ae 013703 branch gpio_out_inactive 
+:      013705 keyboard_stb_state_low:
+0x43af 013706 fetcht 1 ,mem_mcu_stb_gpio 
+0x43b0 013707 branch gpio_out_active 
+:      013713 keyboard_press_change_or_no_key:
+0x43b1 013714 jam 0 ,mem_same_keyvalue_timerout_flag 
+0x43b2 013715 fetch 2 ,mem_same_keyvalue_timer_init 
+0x43b3 013716 store 2 ,mem_same_keyvalue_timer 
+0x43b4 013717 rtn 
+:      013719 keyboard_key_process:
+0x43b5 013721 arg mem_keyscan_value_current ,rega 
+0x43b6 013722 arg mem_keyscan_value_check ,regb 
+0x43b7 013723 arg 20 ,loopcnt 
+0x43b8 013724 call string_compare 
+0x43b9 013725 nbranch keyboard_press_change_or_no_key ,zero 
+0x43ba 013726 call keyboard_keyscan_value_current_zero_check 
+0x43bb 013727 call keyboard_press_change_or_no_key ,blank 
+0x43bc 013729 call keyboard_ghost_key_check 
+0x43bd 013730 fetch 1 ,mem_keyboard_ghost_flag 
+0x43be 013731 nrtn blank 
+0x43bf 013732 fetch 1 ,mem_keyboard_commbination_key_step 
+0x43c0 013733 rtneq cammbination_key_press 
+0x43c1 013734 rtneq cammbination_key_hold 
+0x43c2 013735 rtneq cammbination_key_wait_release 
+0x43c3 013738 jam 0 ,mem_keyscan_col_loop_count 
+0x43c4 013739 arg mem_keyscan_value_current ,rega 
+0x43c5 013740 arg mem_keyscan_value_old ,regb 
+:      013741 keyboard_keyvalue_process:
+0x43c6 013742 ifetcht 1 ,rega 
+0x43c7 013743 ifetch 1 ,regb 
+0x43c8 013744 ixor temp ,pdata 
+0x43c9 013745 branch keyboard_keyvalue_process_loop ,blank 
+0x43ca 013746 store 1 ,mem_keyscan_value_temp 
+0x43cb 013747 storet 1 ,mem_keyboard_press_flag_temp 
+0x43cc 013748 istoret 1 ,regb 
+0x43cd 013749 jam 1 ,mem_keyboard_data_change_flag 
+0x43ce 013750 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
+:      013751 keyboard_keyvalue_change:
+0x43cf 013752 fetch 1 ,mem_keyscan_value_temp 
+0x43d0 013753 bbit0 0 ,keyboard_keyvalue_change_loop 
+0x43d1 013754 fetch 1 ,mem_keyscan_col_loop_count 
+0x43d2 013755 mul32 pdata ,8 ,pdata 
+0x43d3 013756 fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x43d4 013757 iadd temp ,pdata 
+0x43d5 013758 arg mem_keyboard_keyvalue_map ,contr 
+0x43d6 013759 iadd contr ,contr 
+0x43d7 013760 ifetch 1 ,contr 
+0x43d8 013761 store 1 ,mem_keyboard_keyvalue_temp 
+0x43d9 013762 bpatch patch09_6 ,mem_patch09 
+0x43da 013763 call keyboard_keyvalue_normal_replace 
+0x43db 013764 call keyboard_keyvalue_fn_replace 
+0x43dc 013765 call keyboard_keyvalue_commbination_replace 
+0x43dd 013766 call keyboard_keyvalue_in_out 
+:      013767 keyboard_keyvalue_change_loop:
+0x43de 013768 fetch 1 ,mem_keyscan_value_temp 
+0x43df 013769 rshift pdata ,pdata 
+0x43e0 013770 store 1 ,mem_keyscan_value_temp 
+0x43e1 013771 fetch 1 ,mem_keyboard_press_flag_temp 
+0x43e2 013772 rshift pdata ,pdata 
+0x43e3 013773 store 1 ,mem_keyboard_press_flag_temp 
+0x43e4 013774 fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x43e5 013775 increase 1 ,pdata 
+0x43e6 013776 store 1 ,mem_keyboard_keyvalue_bit_loop_count 
+0x43e7 013777 sub pdata ,7 ,null 
+0x43e8 013778 branch keyboard_keyvalue_change ,positive 
+:      013779 keyboard_keyvalue_process_loop:
+0x43e9 013780 increase 1 ,rega 
+0x43ea 013781 increase 1 ,regb 
+0x43eb 013782 fetch 1 ,mem_keyscan_col_loop_count 
+0x43ec 013783 increase 1 ,pdata 
+0x43ed 013784 store 1 ,mem_keyscan_col_loop_count 
+0x43ee 013785 sub pdata ,19 ,null 
+0x43ef 013786 branch keyboard_keyvalue_process ,positive 
+0x43f0 013787 rtn 
+:      013789 keyboard_keyscan_value_current_zero_check:
+0x43f1 013790 fetch 8 ,mem_keyscan_value_current 
+0x43f2 013791 nbranch keyboard_load_rgb ,blank 
+0x43f3 013792 fetch 8 ,mem_keyscan_value_current + 8 
+0x43f4 013793 nbranch keyboard_load_rgb ,blank 
+0x43f5 013794 fetch 4 ,mem_keyscan_value_current + 16 
+0x43f6 013795 nbranch keyboard_load_rgb ,blank 
+0x43f7 013797 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x43f8 013798 nrtn blank 
+0x43f9 013799 fetch 1 ,mem_keyboard_commbination_key_step 
+0x43fa 013800 rtneq cammbination_key_null 
+0x43fb 013801 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+0x43fc 013802 rtn 
+:      013806 keyboard_ghost_key_check:
+0x43fd 013807 bpatch patch09_7 ,mem_patch09 
+0x43fe 013808 jam 0 ,mem_keyboard_ghost_flag 
+0x43ff 013809 jam 0 ,mem_keyboard_all_press_key_count 
+0x4400 013810 arg mem_keyscan_value_current ,rega 
+0x4401 013811 arg 20 ,loopcnt 
+:      013812 keyboard_ghost_key_check_loop:
+0x4402 013813 jam 0 ,mem_keyboard_current_col_press_key_count 
+0x4403 013814 ifetch 1 ,rega 
+0x4404 013815 branch keyboard_ghost_key_check_next_loop ,blank 
+:      013816 keyboard_current_col_press_key_count_check:
+0x4405 013817 fetcht 1 ,mem_keyboard_current_col_press_key_count 
+0x4406 013818 increase 1 ,temp 
+0x4407 013819 storet 1 ,mem_keyboard_current_col_press_key_count 
+0x4408 013820 copy pdata ,temp 
+0x4409 013821 increase -1 ,pdata 
+0x440a 013822 iand temp ,pdata 
+0x440b 013823 nbranch keyboard_current_col_press_key_count_check ,zero 
+0x440c 013824 fetch 1 ,mem_keyboard_current_col_press_key_count 
+0x440d 013825 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x440e 013826 iadd temp ,temp 
+0x440f 013827 storet 1 ,mem_keyboard_all_press_key_count 
+0x4410 013828 sub pdata ,1 ,null 
+0x4411 013829 branch keyboard_ghost_key_check_next_loop ,positive 
+0x4412 013830 sub temp ,2 ,null 
+0x4413 013831 branch keyboard_ghost_key_check_next_loop ,positive 
+0x4414 013832 jam 0 ,mem_keyscan_col_loop_count 
+0x4415 013833 jam 0 ,mem_keyboard_same_row_press_key_count 
+0x4416 013834 ifetcht 1 ,rega 
+0x4417 013835 arg mem_keyscan_value_current ,regb 
+:      013836 keyboard_same_row_key_check:
+0x4418 013837 fetch 1 ,mem_keyscan_col_loop_count 
+0x4419 013838 increase 1 ,pdata 
+0x441a 013839 store 1 ,mem_keyscan_col_loop_count 
+0x441b 013840 sub pdata ,19 ,null 
+0x441c 013841 nbranch keyboard_ghost_key_check_next_loop ,positive 
+0x441d 013842 ifetch 1 ,regb 
+0x441e 013843 iand temp ,null 
+0x441f 013844 branch keyboard_same_row_key_check_loop ,zero 
+0x4420 013845 fetch 1 ,mem_keyboard_same_row_press_key_count 
+0x4421 013846 increase 1 ,pdata 
+0x4422 013847 store 1 ,mem_keyboard_same_row_press_key_count 
+0x4423 013848 sub pdata ,1 ,null 
+0x4424 013849 branch keyboard_same_row_key_check_loop ,positive 
+0x4425 013850 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4426 013851 rtnbit1 keyboard_enable_full_n_key_rollover 
+0x4427 013852 jam 1 ,mem_keyboard_ghost_flag 
+0x4428 013853 rtn 
+:      013855 keyboard_ghost_key_check_next_loop:
+0x4429 013856 increase 1 ,rega 
+0x442a 013857 loop keyboard_ghost_key_check_loop 
+0x442b 013858 rtn 
+:      013860 keyboard_same_row_key_check_loop:
+0x442c 013861 increase 1 ,regb 
+0x442d 013862 branch keyboard_same_row_key_check 
+:      013870 keyboard_keyvalue_normal_replace:
+0x442e 013871 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x442f 013872 beq hid_key_right_alt ,keyboard_rgb_on_type_switch 
+0x4430 013873 beq hid_key_right_gui ,keyboard_rgb_mode_switch 
+0x4431 013874 fetch 1 ,mem_kb_computer_system 
+0x4432 013875 rtneq system_os_windows 
+0x4433 013876 rtneq system_os_android 
+0x4434 013877 rtn 
+:      013879 keyboard_keyvalue_fn_replace:
+0x4435 013880 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4436 013881 isolate1 0 ,pdata 
+0x4437 013882 call keyboard_commbination_delay_release_clear ,true 
+0x4438 013883 fetch 1 ,mem_keyboard_fn_flag 
+0x4439 013884 ncall keyboard_keyvalue_fn_replace_press ,blank 
+0x443a 013885 fetch 1 ,mem_device_fast_conn_flag 
+0x443b 013886 rtneq 0xff 
+0x443c 013887 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x443d 013888 bbit0 keyboard_enable_fn_lock ,keyboard_fn_lock_check 
+0x443e 013889 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x443f 013890 branch keyboard_fn_lock_check + 1 
+:      013891 keyboard_fn_lock_check:
+0x4440 013892 fetch 1 ,mem_keyboard_fn_first 
+0x4441 013893 fetcht 1 ,mem_keyboard_fn_flag 
+0x4442 013894 ixor temp ,pdata 
+0x4443 013895 rtn zero 
+0x4444 013896 bpatch patch0a_0 ,mem_patch0a 
+0x4445 013897 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4446 013898 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
+0x4447 013899 beq hid_key_delete ,keyboard_keyvalue_fn_delete 
+0x4448 013900 sub pdata ,hid_key_f12 ,null 
+0x4449 013901 nrtn positive 
+0x444a 013902 arg hid_key_f1 ,temp 
+0x444b 013903 isub temp ,pdata 
+0x444c 013904 nrtn positive 
+0x444d 013905 arg mem_keyboard_fn_f1 ,contr 
+0x444e 013906 iadd contr ,contr 
+0x444f 013907 ifetch 1 ,contr 
+0x4450 013908 branch keyboard_keyvalue_store_temp 
+:      013910 keyboard_keyvalue_fn_esc:
+0x4451 013911 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4452 013912 bbit0 keyboard_enable_fn_lock ,keyboard_keyvalue_fn_esc_next 
+0x4453 013913 fetch 1 ,mem_keyboard_fn_esc 
+0x4454 013914 fetcht 1 ,mem_keyboard_fn_lock_keyvalue 
+0x4455 013915 isub temp ,null 
+0x4456 013916 rtn zero 
+:      013917 keyboard_keyvalue_fn_esc_next:
+0x4457 013918 fetch 1 ,mem_keyboard_fn_esc 
+0x4458 013919 branch keyboard_keyvalue_store_temp 
+:      013921 keyboard_keyvalue_fn_delete:
+0x4459 013922 fetch 1 ,mem_keyboard_fn_del 
+0x445a 013923 branch keyboard_keyvalue_store_temp 
+:      013925 keyboard_keyvalue_fn_replace_press:
+0x445b 013926 bpatch patch0a_1 ,mem_patch0a 
+0x445c 013927 call keyboard_keyvalue_fn_lock_replace 
+0x445d 013928 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x445e 013929 beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
+0x445f 013930 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
+0x4460 013931 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
+0x4461 013932 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
+0x4462 013933 beq hid_key_left_ctrl ,keyboard_keyvalue_fn_left_ctrl 
+0x4463 013934 beq hid_key_space ,keyboard_keyvalue_fn_space 
+0x4464 013935 beq hid_key_q ,keyboard_keyvalue_os_android 
+0x4465 013936 beq hid_key_w ,keyboard_keyvalue_os_windows 
+0x4466 013937 beq hid_key_e ,keyboard_keyvalue_os_ios 
+0x4467 013938 rtn 
+:      013940 keyboard_keyvalue_fn_lock_replace:
+0x4468 013941 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4469 013942 rtnbit0 keyboard_enable_fn_lock 
+0x446a 013943 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x446b 013944 fetcht 1 ,mem_keyboard_fn_lock_keyvalue 
+0x446c 013945 isub temp ,null 
+0x446d 013946 nrtn zero 
+0x446e 013947 call keyboard_keyvalue_clear_temp 
+0x446f 013948 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4470 013949 rtnbit0 0 
+0x4471 013950 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x4472 013951 increase 1 ,pdata 
+0x4473 013952 and_into 0x01 ,pdata 
+0x4474 013953 store 1 ,mem_keyboard_fn_lock_flag 
+0x4475 013954 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x4476 013955 set1 keyboard_store_eepromm_flag_fn_lock ,pdata 
+0x4477 013956 store 1 ,mem_keyboard_device_info_store_flag 
+0x4478 013957 fetch 1 ,mem_device_flag 
+0x4479 013958 beq mode_24g_device ,keyboard_keyvalue_fn_lock_24g 
+0x447a 013959 beq mode_bt_device1 ,keyboard_keyvalue_fn_lock_bt1 
+0x447b 013960 beq mode_bt_device2 ,keyboard_keyvalue_fn_lock_bt2 
+0x447c 013961 beq mode_bt_device3 ,keyboard_keyvalue_fn_lock_bt3 
+0x447d 013962 beq mode_usb_device ,keyboard_keyvalue_fn_lock_usb 
+:      013963 keyboard_keyvalue_fn_lock_24g:
+0x447e 013964 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x447f 013965 store 1 ,mem_keyboard_24g_fn_lock 
+0x4480 013966 branch keyboard_store_eeprom_or_flash 
+:      013967 keyboard_keyvalue_fn_lock_bt1:
+0x4481 013968 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x4482 013969 store 1 ,mem_keyboard_bt1_fn_lock 
+0x4483 013970 branch keyboard_store_eeprom_or_flash 
+:      013971 keyboard_keyvalue_fn_lock_bt2:
+0x4484 013972 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x4485 013973 store 1 ,mem_keyboard_bt2_fn_lock 
+0x4486 013974 branch keyboard_store_eeprom_or_flash 
+:      013975 keyboard_keyvalue_fn_lock_bt3:
+0x4487 013976 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x4488 013977 store 1 ,mem_keyboard_bt3_fn_lock 
+0x4489 013978 branch keyboard_store_eeprom_or_flash 
+:      013979 keyboard_keyvalue_fn_lock_usb:
+0x448a 013980 fetch 1 ,mem_keyboard_fn_lock_flag 
+0x448b 013981 store 1 ,mem_keyboard_usb_fn_lock 
+0x448c 013982 branch keyboard_store_eeprom_or_flash 
+:      013984 keyboard_keyvalue_fn_up_arrow:
+0x448d 013985 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x448e 013986 rtnbit0 keyboard_enable_fn_arrow 
+0x448f 013987 setarg hid_key_page_up 
+0x4490 013988 branch keyboard_keyvalue_store_temp 
+:      013990 keyboard_keyvalue_fn_down_arrow:
+0x4491 013991 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4492 013992 rtnbit0 keyboard_enable_fn_arrow 
+0x4493 013993 setarg hid_key_page_down 
+0x4494 013994 branch keyboard_keyvalue_store_temp 
+:      013996 keyboard_keyvalue_fn_left_arrow:
+0x4495 013997 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4496 013998 rtnbit0 keyboard_enable_fn_arrow 
+0x4497 013999 setarg hid_key_home 
+0x4498 014000 branch keyboard_keyvalue_store_temp 
+:      014002 keyboard_keyvalue_fn_right_arrow:
+0x4499 014003 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x449a 014004 rtnbit0 keyboard_enable_fn_arrow 
+0x449b 014005 setarg hid_key_end 
+0x449c 014006 branch keyboard_keyvalue_store_temp 
+:      014008 keyboard_keyvalue_fn_left_ctrl:
+0x449d 014009 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x449e 014010 rtnbit0 keyboard_enable_fn_left_ctrl_osk 
+0x449f 014011 fetch 1 ,mem_device_fast_conn_flag 
+0x44a0 014012 rtneq 0xff 
+0x44a1 014013 fetch 1 ,mem_kb_computer_system 
+0x44a2 014014 beq system_os_windows ,keyboard_keyvalue_windows_osk 
+0x44a3 014015 setarg hid_key_os_soft_kb 
+0x44a4 014016 branch keyboard_keyvalue_store_temp 
+:      014017 keyboard_keyvalue_windows_osk:
+0x44a5 014018 setarg hid_key_osk 
+0x44a6 014019 branch keyboard_keyvalue_store_temp 
+:      014021 keyboard_keyvalue_fn_space:
+0x44a7 014022 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x44a8 014023 rtnbit0 keyboard_enable_fn_space_language 
+0x44a9 014024 setarg hid_key_language 
+:      014025 keyboard_keyvalue_store_temp:
+0x44aa 014026 store 1 ,mem_keyboard_keyvalue_temp 
+0x44ab 014027 rtn 
+:      014029 keyboard_keyvalue_os_android:
+0x44ac 014030 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x44ad 014031 rtnbit0 keyboard_enable_fn_os_switch 
+0x44ae 014032 call keyboard_keyvalue_clear_temp 
+0x44af 014033 fetch 1 ,mem_keyboard_press_flag_temp 
+0x44b0 014034 rtnbit0 0 
+0x44b1 014035 jam system_os_android ,mem_kb_computer_system 
+:      014036 keyboard_keyvalue_os_switch_end:
+0x44b2 014037 jam 6 ,mem_keyboard_mode_led_on_timer 
+0x44b3 014038 call keyboard_store_computer_system 
+0x44b4 014039 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x44b5 014040 set1 keyboard_store_eepromm_flag_computer_system ,pdata 
+0x44b6 014041 store 1 ,mem_keyboard_device_info_store_flag 
+:      014042 keyboard_store_eeprom_or_flash:
+0x44b7 014043 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x44b8 014044 rtnbit1 keyboard_enable_otp 
+:      014045 keyboard_store_device_info_delay:
+0x44b9 014046 fetch 1 ,mem_store_information_delay_timer_init 
+0x44ba 014047 store 1 ,mem_store_information_delay_timer 
+0x44bb 014048 rtn 
+:      014050 keyboard_keyvalue_os_windows:
+0x44bc 014051 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x44bd 014052 rtnbit0 keyboard_enable_fn_os_switch 
+0x44be 014053 call keyboard_keyvalue_clear_temp 
+0x44bf 014054 fetch 1 ,mem_keyboard_press_flag_temp 
+0x44c0 014055 rtnbit0 0 
+0x44c1 014056 jam system_os_windows ,mem_kb_computer_system 
+0x44c2 014057 branch keyboard_keyvalue_os_switch_end 
+:      014059 keyboard_keyvalue_os_ios:
+0x44c3 014060 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x44c4 014061 rtnbit0 keyboard_enable_fn_os_switch 
+0x44c5 014062 call keyboard_keyvalue_clear_temp 
+0x44c6 014063 fetch 1 ,mem_keyboard_press_flag_temp 
+0x44c7 014064 rtnbit0 0 
+0x44c8 014065 jam system_os_ios ,mem_kb_computer_system 
+0x44c9 014066 branch keyboard_keyvalue_os_switch_end 
+:      014068 keyboard_keyvalue_clear_temp:
+0x44ca 014069 setarg 0 
+0x44cb 014070 branch keyboard_keyvalue_store_temp 
+:      014072 keyboard_store_computer_system:
+0x44cc 014073 bpatch patch0a_2 ,mem_patch0a 
+0x44cd 014074 fetch 1 ,mem_device_flag 
+0x44ce 014075 rtneq mode_24g_device 
+0x44cf 014076 rtneq mode_usb_device 
+0x44d0 014077 beq mode_bt_device1 ,keyboard_store_computer_system_bt1 
+0x44d1 014078 beq mode_bt_device2 ,keyboard_store_computer_system_bt2 
+0x44d2 014079 beq mode_bt_device3 ,keyboard_store_computer_system_bt3 
+:      014080 keyboard_store_computer_system_bt1:
+0x44d3 014081 fetcht 1 ,mem_kb_computer_system 
+0x44d4 014082 storet 1 ,mem_keyboard_bt1_computer_system 
+0x44d5 014083 rtn 
+:      014084 keyboard_store_computer_system_bt2:
+0x44d6 014085 fetcht 1 ,mem_kb_computer_system 
+0x44d7 014086 storet 1 ,mem_keyboard_bt2_computer_system 
+0x44d8 014087 rtn 
+:      014088 keyboard_store_computer_system_bt3:
+0x44d9 014089 fetcht 1 ,mem_kb_computer_system 
+0x44da 014090 storet 1 ,mem_keyboard_bt3_computer_system 
+0x44db 014091 rtn 
+:      014097 keyboard_keyvalue_commbination_replace:
+0x44dc 014098 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x44dd 014099 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
+0x44de 014100 beq hid_key_page_up ,keyboard_commination_pageup_replace 
+0x44df 014101 beq hid_key_page_down ,keyboard_commination_pagedown_replace 
+0x44e0 014102 beq hid_key_home ,keyboard_commination_home_replace 
+0x44e1 014103 beq hid_key_end ,keyboard_commination_end_replace 
+0x44e2 014104 beq hid_key_select_all ,keyboard_commination_select_all 
+0x44e3 014105 beq hid_key_copy ,keyboard_commbination_copy 
+0x44e4 014106 beq hid_key_paste ,keyboard_commbination_paste 
+0x44e5 014107 beq hid_key_cut ,keyboard_commbination_cut 
+0x44e6 014108 beq hid_key_all_os_lock ,keyboard_commination_os_lock 
+0x44e7 014109 beq hid_key_osk ,keyboard_commbination_osk 
+0x44e8 014110 beq hid_key_search ,keyboard_commbination_search 
+0x44e9 014111 beq hid_key_language ,keyboard_commbination_language 
+0x44ea 014112 beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
+0x44eb 014113 rtn 
+:      014115 keyboard_commbination_delay_release_set:
+0x44ec 014116 fetch 1 ,mem_keyboard_press_flag_temp 
+0x44ed 014117 rtnbit0 0 
+0x44ee 014118 jam 10 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x44ef 014119 rtn 
+:      014121 keyboard_commbination_delay_release_clear:
+0x44f0 014122 jam 0 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x44f1 014123 rtn 
+:      014125 keyboard_commination_screen_shot_replace:
+0x44f2 014126 fetch 1 ,mem_kb_computer_system 
+0x44f3 014127 rtneq system_os_windows 
+0x44f4 014128 rtneq system_os_android 
+0x44f5 014129 jam left_shift_gui ,mem_keyboard_commbination_control_key_value 
+0x44f6 014130 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
+0x44f7 014131 branch keyboard_commbination_keypress 
+:      014133 keyboard_commination_pageup_replace:
+0x44f8 014134 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+:      014135 keyboard_commination_ios_mac_command_commiation:
+0x44f9 014136 fetch 1 ,mem_kb_computer_system 
+0x44fa 014137 rtneq system_os_windows 
+0x44fb 014138 rtneq system_os_android 
+0x44fc 014139 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x44fd 014140 branch keyboard_commbination_keypress 
+:      014142 keyboard_commination_pagedown_replace:
+0x44fe 014143 jam hid_key_down_arrow ,mem_keyboard_commbination_standard_key_value 
+0x44ff 014144 branch keyboard_commination_ios_mac_command_commiation 
+:      014146 keyboard_commination_home_replace:
+0x4500 014147 jam hid_key_left_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4501 014148 branch keyboard_commination_ios_mac_command_commiation 
+:      014150 keyboard_commination_end_replace:
+0x4502 014151 jam hid_key_right_arrow ,mem_keyboard_commbination_standard_key_value 
+0x4503 014152 branch keyboard_commination_ios_mac_command_commiation 
+:      014154 keyboard_commination_select_all:
+0x4504 014155 jam hid_key_a ,mem_keyboard_commbination_standard_key_value 
+:      014156 keyboard_commbination_text_edit:
+0x4505 014157 jam left_control ,mem_keyboard_commbination_control_key_value 
+0x4506 014158 fetch 1 ,mem_kb_computer_system 
+0x4507 014159 beq system_os_windows ,keyboard_commbination_keypress 
+0x4508 014160 beq system_os_android ,keyboard_commbination_keypress 
+0x4509 014161 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x450a 014162 branch keyboard_commbination_keypress 
+:      014164 keyboard_commbination_copy:
+0x450b 014165 jam hid_key_c ,mem_keyboard_commbination_standard_key_value 
+0x450c 014166 branch keyboard_commbination_text_edit 
+:      014168 keyboard_commbination_paste:
+0x450d 014169 jam hid_key_v ,mem_keyboard_commbination_standard_key_value 
+0x450e 014170 branch keyboard_commbination_text_edit 
+:      014172 keyboard_commbination_cut:
+0x450f 014173 jam hid_key_x ,mem_keyboard_commbination_standard_key_value 
+0x4510 014174 branch keyboard_commbination_text_edit 
+:      014176 keyboard_commination_os_lock:
+0x4511 014177 fetch 1 ,mem_kb_computer_system 
+0x4512 014178 beq system_os_windows ,keyboard_commination_windows_lock 
+0x4513 014179 beq system_os_mac ,keyboard_commination_mac_lock 
+0x4514 014180 setarg hid_key_ios_android_os_lock 
+0x4515 014181 branch keyboard_keyvalue_store_temp 
+:      014182 keyboard_commination_windows_lock:
+0x4516 014183 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4517 014184 jam hid_key_l ,mem_keyboard_commbination_standard_key_value 
+0x4518 014185 branch keyboard_commbination_keypress 
+:      014186 keyboard_commination_mac_lock:
+0x4519 014187 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+0x451a 014188 jam hid_key_q ,mem_keyboard_commbination_standard_key_value 
+0x451b 014189 branch keyboard_commbination_keypress 
+:      014191 keyboard_commbination_osk:
+0x451c 014192 fetch 1 ,mem_kb_computer_system 
+0x451d 014193 beq system_os_windows ,keyboard_commbination_windows_osk 
+0x451e 014194 setarg hid_key_os_soft_kb 
+0x451f 014195 branch keyboard_keyvalue_store_temp 
+:      014196 keyboard_commbination_windows_osk:
+0x4520 014197 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+0x4521 014198 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
+0x4522 014199 branch keyboard_commbination_keypress 
+:      014201 keyboard_commbination_search:
+0x4523 014202 fetch 1 ,mem_kb_computer_system 
+0x4524 014203 beq system_os_mac ,keyboard_commbination_mac_search 
+0x4525 014204 setarg hid_key_ac_search 
+0x4526 014205 branch keyboard_keyvalue_store_temp 
+:      014206 keyboard_commbination_mac_search:
+0x4527 014207 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4528 014208 jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+0x4529 014209 branch keyboard_commbination_keypress 
+:      014211 keyboard_commbination_language:
+0x452a 014212 fetch 1 ,mem_kb_computer_system 
+0x452b 014213 beq system_os_windows ,keyboard_commbination_language_windows 
+0x452c 014214 beq system_os_android ,keyboard_commbination_language_android 
+0x452d 014215 jam left_control ,mem_keyboard_commbination_control_key_value 
+:      014216 keyboard_commbination_language_next:
+0x452e 014217 jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+0x452f 014218 call keyboard_commbination_delay_release_set 
+0x4530 014219 branch keyboard_commbination_keypress 
+:      014220 keyboard_commbination_language_windows:
+0x4531 014221 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x4532 014222 branch keyboard_commbination_language_next 
+:      014223 keyboard_commbination_language_android:
+0x4533 014224 jam left_shift ,mem_keyboard_commbination_control_key_value 
+0x4534 014225 branch keyboard_commbination_language_next 
+:      014227 keyboard_commbination_app_tiling:
+0x4535 014228 fetch 1 ,mem_kb_computer_system 
+0x4536 014229 beq system_os_windows ,keyboard_commbination_app_tiling_windows_android 
+0x4537 014230 beq system_os_android ,keyboard_commbination_app_tiling_windows_android 
+0x4538 014231 jam left_control ,mem_keyboard_commbination_control_key_value 
+0x4539 014232 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+0x453a 014233 branch keyboard_commbination_keypress 
+:      014234 keyboard_commbination_app_tiling_windows_android:
+0x453b 014235 jam left_gui ,mem_keyboard_commbination_control_key_value 
+0x453c 014236 jam hid_key_tab ,mem_keyboard_commbination_standard_key_value 
+0x453d 014237 branch keyboard_commbination_keypress 
+:      014239 keyboard_commbination_keypress:
+0x453e 014240 jam 0 ,mem_keyboard_keyvalue_temp 
+0x453f 014241 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4540 014242 bbit0 0 ,keyboard_commbination_key_wait_release_set 
+0x4541 014243 fetch 1 ,mem_keyboard_commbination_key_step 
+0x4542 014244 beq cammbination_key_complete ,keyboard_commbination_key_hold_set 
+:      014245 keyboard_commbination_key_press_set:
+0x4543 014246 jam cammbination_key_press ,mem_keyboard_commbination_key_step 
+0x4544 014247 rtn 
+:      014249 keyboard_commbination_key_wait_release_set:
+0x4545 014250 jam cammbination_key_wait_release ,mem_keyboard_commbination_key_step 
+0x4546 014251 rtn 
+:      014253 keyboard_commbination_key_null_set:
+0x4547 014254 jam cammbination_key_null ,mem_keyboard_commbination_key_step 
+0x4548 014255 rtn 
+:      014258 keyboard_commbination_key_value_store:
+0x4549 014259 store 1 ,mem_keyboard_tx_data + 1 
+0x454a 014260 storet 1 ,mem_keyboard_tx_data + 3 
+0x454b 014261 call enable_user 
+0x454c 014262 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x454d 014263 branch keyboard_motion_data_check_next 
+:      014265 keyboard_commbination_key_press_process:
+0x454e 014266 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x454f 014267 arg 0 ,temp 
+0x4550 014268 call keyboard_commbination_key_value_store 
+:      014269 keyboard_commbination_key_hold_set:
+0x4551 014270 jam cammbination_key_hold ,mem_keyboard_commbination_key_step 
+0x4552 014271 rtn 
+:      014273 keyboard_commbination_key_hold_process:
+0x4553 014274 jam cammbination_key_complete ,mem_keyboard_commbination_key_step 
+0x4554 014275 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4555 014276 fetcht 1 ,mem_keyboard_commbination_standard_key_value 
+0x4556 014277 branch keyboard_commbination_key_value_store 
+:      014279 keyboard_commbination_key_wait_release_process:
+0x4557 014280 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x4558 014281 fetch 1 ,mem_keyboard_commbination_control_key_value 
+0x4559 014282 arg 0 ,temp 
+0x455a 014283 call keyboard_commbination_key_value_store 
+0x455b 014284 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x455c 014285 branch keyboard_commbination_key_null_set ,blank 
+:      014286 keyboard_commbination_key_release_set:
+0x455d 014287 jam cammbination_key_release ,mem_keyboard_commbination_key_step 
+0x455e 014288 rtn 
+:      014290 keyboard_commbination_key_release_process:
+0x455f 014291 branch keyboard_commbination_key_value_store + 2 
+:      014293 keyboard_commbination_key_null_process:
+0x4560 014294 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+0x4561 014295 arg 0 ,pdata 
+0x4562 014296 arg 0 ,temp 
+0x4563 014297 branch keyboard_commbination_key_value_store 
+:      014301 keyboard_keyvalue_in_out:
+0x4564 014302 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x4565 014303 arg hid_key_left_ctrl ,temp 
+0x4566 014304 isub temp ,null 
+0x4567 014305 nbranch keyboard_keyvalue_standard ,positive 
+0x4568 014306 sub pdata ,hid_key_right_gui ,null 
+0x4569 014307 nbranch keyboard_keyvalue_consumer ,positive 
+0x456a 014308 and_into 0x07 ,pdata 
+0x456b 014309 copy pdata ,queue 
+0x456c 014310 fetch 1 ,mem_keyboard_press_flag_temp 
+0x456d 014311 bbit1 0 ,keyboard_keyvalue_control_key_in 
+:      014312 keyboard_keyvalue_control_key_out:
+0x456e 014313 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x456f 014314 qset0 pdata 
+0x4570 014315 store 1 ,mem_keyboard_keyvalue_buffer 
+0x4571 014316 rtn 
+:      014317 keyboard_keyvalue_control_key_in:
+0x4572 014318 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x4573 014319 qset1 pdata 
+0x4574 014320 store 1 ,mem_keyboard_keyvalue_buffer 
+0x4575 014321 rtn 
+:      014323 keyboard_keyvalue_standard:
+0x4576 014324 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
+0x4577 014325 fetch 1 ,mem_keyboard_press_flag_temp 
+0x4578 014326 bbit1 0 ,keyboard_keyvalue_standard_in 
+:      014327 keyboard_keyvalue_standard_out:
+0x4579 014328 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x457a 014329 arg 6 ,loopcnt 
+0x457b 014330 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      014331 keyboard_keyvalue_standard_out_loop:
+0x457c 014332 ifetch 1 ,contr 
+0x457d 014333 isub temp ,null 
+0x457e 014334 nbranch keyboard_keyvalue_standard_out_next ,zero 
+0x457f 014335 ifetch 1 ,contr 
+0x4580 014336 increase -2 ,contr 
+0x4581 014337 istore 1 ,contr 
+0x4582 014338 rtn blank 
+0x4583 014339 increase 1 ,contr 
+0x4584 014340 istoret 1 ,contr 
+:      014341 keyboard_keyvalue_standard_out_next:
+0x4585 014342 loop keyboard_keyvalue_standard_out_loop 
+0x4586 014343 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4587 014344 bbit1 keyboard_enable_full_n_key_rollover ,keyboard_keyvalue_standard_out_n_key_rollover 
+0x4588 014345 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4589 014346 rtnbit0 keyboard_enable_26_n_key_rollover 
+:      014347 keyboard_keyvalue_standard_out_n_key_rollover:
+0x458a 014348 call keyboard_keyvalue_n_key_rollover_data_in_out 
+0x458b 014349 qset0 pdata 
+0x458c 014350 branch istore_1_contw_rtn 
+:      014353 keyboard_keyvalue_standard_in:
+0x458d 014354 fetcht 1 ,mem_keyboard_keyvalue_temp 
+0x458e 014355 arg 6 ,loopcnt 
+0x458f 014356 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+:      014357 keyboard_keyvalue_standard_in_loop:
+0x4590 014358 ifetch 1 ,contr 
+0x4591 014359 branch keyboard_keyvalue_standard_in_data ,blank 
+0x4592 014360 isub temp ,null 
+0x4593 014361 rtn zero 
+0x4594 014362 loop keyboard_keyvalue_standard_in_loop 
+0x4595 014363 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4596 014364 bbit1 keyboard_enable_full_n_key_rollover ,keyboard_keyvalue_standard_in_n_key_rollover 
+0x4597 014365 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4598 014366 rtnbit0 keyboard_enable_26_n_key_rollover 
+:      014367 keyboard_keyvalue_standard_in_n_key_rollover:
+0x4599 014368 call keyboard_keyvalue_n_key_rollover_data_in_out 
+0x459a 014369 qset1 pdata 
+0x459b 014370 branch istore_1_contw_rtn 
+:      014372 keyboard_keyvalue_standard_in_data:
+0x459c 014373 increase -1 ,contr 
+0x459d 014374 istoret 1 ,contr 
+0x459e 014375 rtn 
+:      014377 keyboard_keyvalue_n_key_rollover_data_in_out:
+0x459f 014378 bpatch patch0a_3 ,mem_patch0a 
+0x45a0 014379 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x45a1 014380 sub pdata ,0x70 ,null 
+0x45a2 014381 nrtn positive 
+0x45a3 014382 jam 1 ,mem_keboard_n_key_rollover_send_flag 
+0x45a4 014383 jam 1 ,mem_keyboard_data_change_flag 
+0x45a5 014384 div pdata ,8 
+0x45a6 014385 call wait_div_end 
+0x45a7 014386 quotient pdata 
+0x45a8 014387 remainder queue 
+0x45a9 014388 arg mem_keyboard_n_key_rollover_data + 1 ,contw 
+0x45aa 014389 iadd contw ,contw 
+0x45ab 014390 setarg 0 
+0x45ac 014391 rtn 
+:      014393 keyboard_keyvalue_consumer:
+0x45ad 014394 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
+0x45ae 014395 fetch 1 ,mem_keyboard_press_flag_temp 
+0x45af 014396 isolate0 0 ,pdata 
+0x45b0 014397 call keyboard_consumer_key_release_status ,true 
+0x45b1 014398 branch keyboard_keyvalue_standard 
+:      014400 keyboard_consumer_key_release_status:
+0x45b2 014401 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
+0x45b3 014402 rtn 
+:      014406 keyboard_special_key_check:
+0x45b4 014407 call keyboard_pairing_button_check 
+0x45b5 014408 call keyboard_device_select 
+0x45b6 014409 jam 0 ,mem_keyboard_fn_flag 
+0x45b7 014410 jam 0 ,mem_keyboard_control_key_flag 
+0x45b8 014411 jam 0 ,mem_keyboard_alt_flag 
+0x45b9 014412 jam 0 ,mem_keyboard_shift_flag 
+0x45ba 014413 jam 0 ,mem_keyboard_bt_button_flag 
+0x45bb 014414 fetch 1 ,mem_keyboard_keyvalue_buffer 
+0x45bc 014415 ncall keyborad_control_key_set ,blank 
+0x45bd 014416 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+0x45be 014417 arg 6 ,loopcnt 
+:      014418 keyboard_special_key_check_loop:
+0x45bf 014419 ifetch 1 ,contr 
+0x45c0 014420 sub pdata ,hid_key_fn ,null 
+0x45c1 014421 call keyboard_fn_set ,zero 
+0x45c2 014422 sub pdata ,hid_key_pb ,null 
+0x45c3 014423 call keyboard_pb_set ,zero 
+0x45c4 014424 loop keyboard_special_key_check_loop 
+0x45c5 014426 call keyboard_commbination_key_press_check 
+0x45c6 014427 fetch 1 ,mem_keyboard_pairing_type 
+0x45c7 014428 branch keyboard_enable_bt_button_pairing ,blank 
+0x45c8 014429 rtn 
+:      014431 keyboard_commbination_key_press_check:
+0x45c9 014432 bpatch patch0a_4 ,mem_patch0a 
+0x45ca 014433 jam 0 ,mem_keyboard_commbination_press_type 
+0x45cb 014434 fetch 1 ,mem_device_flag 
+0x45cc 014435 bne mode_24g_device ,keyboard_commbination_key_press_check_bt 
+0x45cd 014436 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x45ce 014437 rtnbit0 keyboard_enable_commbination_key_by_24g_pairing 
+0x45cf 014438 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x45d0 014439 fetcht 2 ,mem_keyboard_commbination_key_24g 
+0x45d1 014440 isub temp ,null 
+0x45d2 014441 branch keyboard_commbination_key_down_24g ,zero 
+0x45d3 014442 byteswap temp ,temp 
+0x45d4 014443 isub temp ,null 
+0x45d5 014444 branch keyboard_commbination_key_down_24g ,zero 
+0x45d6 014445 branch mouse_commbination_key_up 
+:      014447 keyboard_commbination_key_press_check_bt:
+0x45d7 014448 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x45d8 014449 fetcht 2 ,mem_keyboard_commbination_fast_conn_bt 
+0x45d9 014450 isub temp ,null 
+0x45da 014451 branch keyboard_commbination_key_down_bt_fast_conn ,zero 
+0x45db 014452 byteswap temp ,temp 
+0x45dc 014453 isub temp ,null 
+0x45dd 014454 branch keyboard_commbination_key_down_bt_fast_conn ,zero 
+0x45de 014455 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x45df 014456 bbit0 keyboard_enable_commbination_key_by_bt_discovery ,mouse_commbination_key_up 
+0x45e0 014457 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x45e1 014458 fetcht 2 ,mem_keyboard_commbination_key_bt 
+0x45e2 014459 isub temp ,null 
+0x45e3 014460 branch keyboard_commbination_key_down_bt ,zero 
+0x45e4 014461 byteswap temp ,temp 
+0x45e5 014462 isub temp ,null 
+0x45e6 014463 branch keyboard_commbination_key_down_bt ,zero 
+0x45e7 014464 branch mouse_commbination_key_up 
+:      014466 keyboard_commbination_key_down_24g:
+0x45e8 014467 jam keyboard_commbination_press_type_24g_pair ,mem_keyboard_commbination_press_type 
+0x45e9 014468 branch keyboard_commbination_key_down 
+:      014469 keyboard_commbination_key_down_bt:
+0x45ea 014470 jam keyboard_commbination_press_type_bt_pair ,mem_keyboard_commbination_press_type 
+0x45eb 014471 branch keyboard_commbination_key_down 
+:      014472 keyboard_commbination_key_down_bt_fast_conn:
+0x45ec 014473 jam keyboard_commbination_press_type_bt_fast_conn ,mem_keyboard_commbination_press_type 
+0x45ed 014474 branch keyboard_commbination_key_down 
+:      014476 keyboard_commbination_key_down:
+0x45ee 014477 fetch 1 ,mem_commbination_key_statue 
+0x45ef 014478 rtneq commbination_key_state_down 
+0x45f0 014479 jam commbination_key_state_down ,mem_commbination_key_statue 
+0x45f1 014480 rtn 
+:      014483 keyboard_device_select:
+0x45f2 014484 call disable_user 
+0x45f3 014485 call keyboard_device_select_g24 
+0x45f4 014486 call keyboard_device_select_bt1 
+0x45f5 014487 call keyboard_device_select_bt2 
+0x45f6 014488 call keyboard_device_select_bt3 
+0x45f7 014489 call keyboard_device_select_usb 
+0x45f8 014490 branch keyboard_clear_change_flag ,user 
+0x45f9 014491 fetch 1 ,mem_keyboard_switch_device_flag 
+0x45fa 014492 set0 keyboard_flag_g24_device_button ,pdata 
+0x45fb 014493 set0 keyboard_flag_bt_device_button ,pdata 
+0x45fc 014494 store 1 ,mem_keyboard_switch_device_flag 
+0x45fd 014495 rtn 
+:      014497 keyboard_clear_change_flag:
+0x45fe 014498 jam 0 ,mem_keyboard_data_change_flag 
+0x45ff 014499 rtn 
+:      014501 keyboard_device_select_g24:
+0x4600 014502 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4601 014503 rtnbit0 keyboard_enable_24g 
+0x4602 014504 fetch 1 ,mem_keyboard_switch_device_to_g24 
+0x4603 014505 rtn blank 
+0x4604 014506 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4605 014507 fetcht 2 ,mem_keyboard_switch_device_to_g24 + 1 
+0x4606 014508 isub temp ,null 
+0x4607 014509 branch keyboard_device_select_g24_press ,zero 
+0x4608 014510 byteswap temp ,temp 
+0x4609 014511 isub temp ,null 
+0x460a 014512 branch keyboard_device_select_g24_press ,zero 
+0x460b 014513 rtn 
+:      014515 keyboard_device_select_g24_press:
+0x460c 014516 call enable_user 
+0x460d 014517 fetch 1 ,mem_keyboard_switch_device_flag 
+0x460e 014518 set1 keyboard_flag_g24_device_button ,pdata 
+0x460f 014519 set0 keyboard_flag_bt_device_button ,pdata 
+0x4610 014520 store 1 ,mem_keyboard_switch_device_flag 
+0x4611 014521 fetch 1 ,mem_device_flag 
+0x4612 014522 rtneq mode_24g_device 
+0x4613 014523 jam mode_24g_device ,mem_device_flag 
+0x4614 014524 jam 1 ,mem_keyboard_switch_g24_enable 
+0x4615 014525 rtn 
+:      014527 keyboard_device_select_bt1:
+0x4616 014528 fetch 1 ,mem_keyboard_switch_device_to_bt1 
+0x4617 014529 rtn blank 
+0x4618 014530 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4619 014531 fetcht 2 ,mem_keyboard_switch_device_to_bt1 + 1 
+0x461a 014532 isub temp ,null 
+0x461b 014533 branch keyboard_device_select_bt1_press ,zero 
+0x461c 014534 byteswap temp ,temp 
+0x461d 014535 isub temp ,null 
+0x461e 014536 branch keyboard_device_select_bt1_press ,zero 
+0x461f 014537 rtn 
+:      014539 keyboard_device_select_bt1_press:
+0x4620 014540 call enable_user 
+0x4621 014541 call keyboard_device_select_bt_set_press_flag 
+0x4622 014542 fetch 1 ,mem_device_flag 
+0x4623 014543 rtneq mode_bt_device1 
+0x4624 014544 jam mode_bt_device1 ,mem_device_flag 
+0x4625 014545 jam 1 ,mem_keyboard_switch_bt_enable 
+0x4626 014546 rtn 
+:      014548 keyboard_device_select_bt2:
+0x4627 014549 fetch 1 ,mem_keyboard_switch_device_to_bt2 
+0x4628 014550 rtn blank 
+0x4629 014551 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x462a 014552 fetcht 2 ,mem_keyboard_switch_device_to_bt2 + 1 
+0x462b 014553 isub temp ,null 
+0x462c 014554 branch keyboard_device_select_bt2_press ,zero 
+0x462d 014555 byteswap temp ,temp 
+0x462e 014556 isub temp ,null 
+0x462f 014557 branch keyboard_device_select_bt2_press ,zero 
+0x4630 014558 rtn 
+:      014560 keyboard_device_select_bt2_press:
+0x4631 014561 call enable_user 
+0x4632 014562 call keyboard_device_select_bt_set_press_flag 
+0x4633 014563 fetch 1 ,mem_device_flag 
+0x4634 014564 rtneq mode_bt_device2 
+0x4635 014565 jam mode_bt_device2 ,mem_device_flag 
+0x4636 014566 jam 1 ,mem_keyboard_switch_bt_enable 
+0x4637 014567 rtn 
+:      014569 keyboard_device_select_bt3:
+0x4638 014570 fetch 1 ,mem_keyboard_switch_device_to_bt3 
+0x4639 014571 rtn blank 
+0x463a 014572 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x463b 014573 fetcht 2 ,mem_keyboard_switch_device_to_bt3 + 1 
+0x463c 014574 isub temp ,null 
+0x463d 014575 branch keyboard_device_select_bt3_press ,zero 
+0x463e 014576 byteswap temp ,temp 
+0x463f 014577 isub temp ,null 
+0x4640 014578 branch keyboard_device_select_bt3_press ,zero 
+0x4641 014579 rtn 
+:      014581 keyboard_device_select_bt3_press:
+0x4642 014582 call enable_user 
+0x4643 014583 call keyboard_device_select_bt_set_press_flag 
+0x4644 014584 fetch 1 ,mem_device_flag 
+0x4645 014585 rtneq mode_bt_device3 
+0x4646 014586 jam mode_bt_device3 ,mem_device_flag 
+0x4647 014587 jam 1 ,mem_keyboard_switch_bt_enable 
+0x4648 014588 rtn 
+:      014590 keyboard_device_select_bt_set_press_flag:
+0x4649 014591 fetch 1 ,mem_keyboard_switch_device_flag 
+0x464a 014592 set0 keyboard_flag_g24_device_button ,pdata 
+0x464b 014593 set1 keyboard_flag_bt_device_button ,pdata 
+0x464c 014594 store 1 ,mem_keyboard_switch_device_flag 
+0x464d 014595 rtn 
+:      014597 keyboard_device_select_usb:
+0x464e 014598 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x464f 014599 rtnbit0 keyboard_enable_usb 
+0x4650 014600 fetch 1 ,mem_keyboard_switch_device_to_usb 
+0x4651 014601 rtn blank 
+0x4652 014602 fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+0x4653 014603 fetcht 2 ,mem_keyboard_switch_device_to_usb + 1 
+0x4654 014604 isub temp ,null 
+0x4655 014605 branch keyboard_device_select_usb_press ,zero 
+0x4656 014606 byteswap temp ,temp 
+0x4657 014607 isub temp ,null 
+0x4658 014608 branch keyboard_device_select_usb_press ,zero 
+0x4659 014609 rtn 
+:      014611 keyboard_device_select_usb_press:
+0x465a 014612 call enable_user 
+0x465b 014613 fetch 1 ,mem_device_flag 
+0x465c 014614 rtneq mode_usb_device 
+0x465d 014615 jam mode_usb_device ,mem_device_flag 
+0x465e 014616 call keyboard_store_device_number 
+0x465f 014617 branch soft_reset_chip 
+:      014619 keyboard_pairing_button_check:
+0x4660 014620 fetch 1 ,mem_keyboard_pairing_type 
+0x4661 014621 nrtn blank 
+0x4662 014622 fetcht 1 ,mem_keyboard_pb_button_gpio 
+0x4663 014623 sub temp ,ui_button_gpio_disable ,null 
+0x4664 014624 rtn zero 
+0x4665 014625 call gpio_get_bit 
+0x4666 014626 nbranch keyboard_pairing_button_release ,true 
+0x4667 014627 arg 8 ,loopcnt 
+0x4668 014628 arg mem_keyboard_keyvalue_buffer ,contw 
+0x4669 014629 call clear_mem 
+0x466a 014630 jam hid_key_pb ,mem_keyboard_keyvalue_buffer + 2 
+0x466b 014631 rtn 
+:      014633 keyboard_pairing_button_release:
+0x466c 014634 fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+0x466d 014635 rtnne hid_key_pb 
+0x466e 014636 jam hid_key_null ,mem_keyboard_keyvalue_buffer + 2 
+0x466f 014637 rtn 
+:      014639 keyboard_enable_bt_button_pairing:
+0x4670 014640 bpatch patch0a_5 ,mem_patch0a 
+0x4671 014641 fetch 1 ,mem_keyboard_bt_button_flag 
+0x4672 014642 rtn blank 
+0x4673 014643 fetch 1 ,mem_device_flag 
+0x4674 014644 beq mode_24g_device ,keyboard_24g_start_pair_mode 
+:      014645 keyboard_long_button_bt_discovery:
+0x4675 014646 bpatch patch0a_6 ,mem_patch0a 
+0x4676 014647 call keyboard_pairing_check_otp_offset 
+0x4677 014648 jam 0 ,mem_keyboard_data_change_flag 
+0x4678 014649 fetch 1 ,mem_device_flag 
+0x4679 014650 rtneq mode_24g_device 
+0x467a 014651 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x467b 014652 rtnbit1 keyboard_bt_discovery_button_long_down_flag 
+0x467c 014653 arg keyboard_bt_discovery_button_long_down_flag ,queue 
+0x467d 014654 call keyboard_enable_function_flag 
+0x467e 014655 call app_evt_button_long_pressed 
+0x467f 014656 branch keyboard_bb_event_discovery_btn 
+:      014658 keyboard_24g_start_pair_mode:
+0x4680 014659 bpatch patch0a_7 ,mem_patch0a 
+0x4681 014660 call keyboard_device_led_all_off 
+0x4682 014661 call keyboard_pairing_check_otp_offset 
+0x4683 014662 jam 0 ,mem_keyboard_data_change_flag 
+0x4684 014663 fetch 2 ,mem_24g_pair_timeout 
+0x4685 014664 nrtn blank 
+0x4686 014665 setarg 0 
+0x4687 014666 store 2 ,mem_device_no_data_timer 
+0x4688 014667 store 2 ,mem_24g_reconn_timeout 
+0x4689 014668 store 1 ,mem_24g_reconn_type 
+0x468a 014669 arg keyboard_24g_pairing_flag ,queue 
+0x468b 014670 call keyboard_enable_function_flag 
+0x468c 014671 call keyboard_stop_discovery 
+0x468d 014672 jam type_kb ,mem_24g_data_type 
+0x468e 014673 branch g24_pair_start 
+:      014676 keyborad_control_key_set:
+0x468f 014677 store 1 ,mem_keyboard_control_key_flag 
+0x4690 014678 and_into 0x44 ,pdata 
+0x4691 014679 ncall keyboard_alt_flag_set ,blank 
+0x4692 014680 fetch 1 ,mem_keyboard_control_key_flag 
+0x4693 014681 and_into 0x22 ,pdata 
+0x4694 014682 rtn blank 
+0x4695 014683 jam 1 ,mem_keyboard_shift_flag 
+0x4696 014684 rtn 
+:      014685 keyboard_alt_flag_set:
+0x4697 014686 jam 1 ,mem_keyboard_alt_flag 
+0x4698 014687 rtn 
+:      014690 keyboard_fn_set:
+0x4699 014691 jam 1 ,mem_keyboard_fn_flag 
+0x469a 014692 rtn 
+:      014694 keyboard_pb_set:
+0x469b 014695 jam 1 ,mem_keyboard_bt_button_flag 
+0x469c 014696 rtn 
+:      014700 keyboard_motion:
+0x469d 014701 bpatch patch0b_0 ,mem_patch0b 
+0x469e 014702 disable user 
+0x469f 014703 jam 0 ,mem_customer_key 
+0x46a0 014704 jam 0 ,mem_customer_data_trigger 
+0x46a1 014705 jam 0 ,mem_customer_data_trigger_last 
+0x46a2 014706 fetch 1 ,mem_keyboard_commbination_key_step 
+0x46a3 014707 beq cammbination_key_press ,keyboard_commbination_key_press_process 
+0x46a4 014708 beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
+0x46a5 014709 beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
+0x46a6 014710 beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
+0x46a7 014711 beq cammbination_key_null ,keyboard_commbination_key_null_process 
+0x46a8 014712 fetch 1 ,mem_keyboard_data_change_flag 
+0x46a9 014713 branch keyboard_no_key_press ,blank 
+0x46aa 014714 increase -1 ,pdata 
+0x46ab 014715 store 1 ,mem_keyboard_data_change_flag 
+0x46ac 014716 call keyboard_current_mult_update 
+0x46ad 014717 jam 10 ,mem_keyboard_led_status_get_timer 
+0x46ae 014718 call mouse_no_data_timer_init 
+0x46af 014719 fetch 1 ,mem_keyboard_commbination_key_step 
+0x46b0 014720 beq cammbination_key_release ,keyboard_commbination_key_release_process 
+0x46b1 014721 arg mem_keyboard_tx_data ,contw 
+0x46b2 014722 arg 10 ,loopcnt 
+0x46b3 014723 call clear_mem 
+0x46b4 014724 call keyboard_motion_data_check 
+0x46b5 014725 jam 0 ,mem_keyboard_data_send_flag 
+0x46b6 014726 rtn 
+:      014728 keyboard_current_mult_update:
+0x46b7 014729 jam 3 ,mem_lpm_mult 
+0x46b8 014730 jam 10 ,mem_mouse_current_mult_timer 
+0x46b9 014731 rtn 
+:      014733 keyboard_no_key_press:
+0x46ba 014734 fetch 1 ,mem_device_flag 
+0x46bb 014735 rtnne mode_24g_device 
+0x46bc 014736 fetch 1 ,mem_keyboard_led_status_get 
+0x46bd 014737 rtn blank 
+0x46be 014738 fetch 1 ,mem_24g_repeat_send_flag 
+0x46bf 014739 nrtn blank 
+0x46c0 014740 fetcht 1 ,mem_keyboard_led_status_get_timer_last 
+0x46c1 014741 fetch 1 ,mem_keyboard_led_status_get_timer 
+0x46c2 014742 isub temp ,null 
+0x46c3 014743 store 1 ,mem_keyboard_led_status_get_timer_last 
+0x46c4 014744 rtn zero 
+0x46c5 014745 arg mem_keyboard_tx_data ,contw 
+0x46c6 014746 arg 10 ,loopcnt 
+0x46c7 014747 call clear_mem 
+0x46c8 014748 call enable_user 
+0x46c9 014749 branch keyboard_motion_data_check_next 
+:      014751 keyboard_motion_data_check:
+0x46ca 014752 bpatch patch0b_1 ,mem_patch0b 
+0x46cb 014753 fetch 1 ,mem_keyboard_consumer_key_status 
+0x46cc 014754 beq keyboard_consumer_key_release ,keyboard_value_consumer_release 
+0x46cd 014755 fetch 1 ,mem_keboard_n_key_rollover_send_flag 
+0x46ce 014756 nbranch keyboard_motion_data_check_n_key_rollover_key ,blank 
+0x46cf 014757 arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+0x46d0 014758 arg 6 ,loopcnt 
+:      014759 keyboard_value_tpye_check:
+0x46d1 014760 ifetch 1 ,contr 
+0x46d2 014761 sub pdata ,hid_key_right_gui ,null 
+0x46d3 014762 nbranch keyboard_value_tpye_consumer_set ,positive 
+0x46d4 014763 loop keyboard_value_tpye_check 
+0x46d5 014764 fetch 1 ,mem_keyboard_all_press_key_count 
+0x46d6 014765 call keyboard_value_release_all_key ,blank 
+0x46d7 014766 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+0x46d8 014767 bpatch patch0b_2 ,mem_patch0b 
+0x46d9 014768 arg mem_keyboard_keyvalue_buffer ,rega 
+0x46da 014769 arg mem_keyboard_tx_data + 1 ,contw 
+0x46db 014770 arg 8 ,loopcnt 
+:      014771 keyboard_tx_data_store:
+0x46dc 014772 ifetcht 1 ,rega 
+0x46dd 014773 fetch 1 ,mem_device_fast_conn_flag 
+0x46de 014774 beq 0xff ,keyboard_tx_data_store_loop 
+0x46df 014775 sub temp ,hid_key_fn ,null 
+0x46e0 014776 nbranch keyboard_tx_data_store_loop ,zero 
+0x46e1 014777 increase 1 ,rega 
+0x46e2 014778 ifetcht 1 ,rega 
+:      014779 keyboard_tx_data_store_loop:
+0x46e3 014780 istoret 1 ,contw 
+0x46e4 014781 increase 1 ,rega 
+0x46e5 014782 loop keyboard_tx_data_store 
+:      014783 keyboard_motion_data_check_next:
+0x46e6 014784 bpatch patch0b_3 ,mem_patch0b 
+0x46e7 014785 call keyboard_device_data_tpye_check 
+0x46e8 014787 fetch 1 ,mem_keyboard_data_send_flag 
+0x46e9 014788 beq device_data_tpye_mouse ,enable_user 
+:      014789 device_send_keyboard_data:
+0x46ea 014790 call mouse_customerkey_press 
+0x46eb 014791 branch enable_user 
+:      014793 keyboard_motion_data_check_n_key_rollover_key:
+0x46ec 014794 jam 0 ,mem_keboard_n_key_rollover_send_flag 
+0x46ed 014795 jam hid_reportid_n_key_rollover ,mem_keyboard_tx_data 
+0x46ee 014796 branch keyboard_motion_data_check_next 
+:      014798 keyboard_value_release_all_key:
+0x46ef 014799 arg mem_keyboard_n_key_rollover_data ,contw 
+0x46f0 014800 arg 15 ,loopcnt 
+0x46f1 014801 call clear_mem 
+0x46f2 014802 arg mem_keyboard_keyvalue_buffer ,contw 
+0x46f3 014803 arg 10 ,loopcnt 
+0x46f4 014804 branch clear_mem 
+:      014806 keyboard_value_tpye_consumer_set:
+0x46f5 014807 copy pdata ,temp 
+0x46f6 014808 bpatch patch0b_4 ,mem_patch0b 
+0x46f7 014809 copy temp ,pdata 
+0x46f8 014810 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+0x46f9 014811 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x46fa 014812 sub temp ,hid_key_null ,null 
+0x46fb 014813 branch keyboard_value_consumer_all_key_release ,zero 
+0x46fc 014814 beq hid_key_multikey_media ,keyboard_value_media 
+0x46fd 014815 beq hid_key_multikey_vol_down ,keyboard_value_vol_down 
+0x46fe 014816 beq hid_key_multikey_vol_up ,keyboard_value_vol_up 
+0x46ff 014817 beq hid_key_multikey_mute ,keyboard_value_mute 
+0x4700 014818 beq hid_key_multikey_pre_track ,keyboard_value_pre_track 
+0x4701 014819 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+0x4702 014820 beq hid_key_multikey_paly ,keyboard_value_play 
+0x4703 014821 beq hid_key_multikey_stop ,keyboard_value_stop 
+0x4704 014823 beq hid_key_ac_home ,keyboard_value_ac_home 
+0x4705 014824 beq hid_key_mail ,keyboard_value_mail 
+0x4706 014825 beq hid_key_my_computer ,keyboard_value_my_computer 
+0x4707 014826 beq hid_key_ac_favorites ,keyboard_value_ac_favorites 
+0x4708 014827 beq hid_key_calculator ,keyboard_value_calculator 
+0x4709 014828 beq hid_key_ac_search ,keyboard_value_ac_search 
+0x470a 014829 beq hid_key_ac_back ,keyboard_value_ac_back 
+0x470b 014830 beq hid_key_os_soft_kb ,keyboard_value_os_soft_kb 
+0x470c 014832 beq hid_key_light_down ,keyboard_value_light_down 
+0x470d 014833 beq hid_key_light_up ,keyboard_value_light_up 
+0x470e 014834 beq hid_key_ios_android_os_lock ,keyboard_value_os_lock 
+0x470f 014836 beq hid_key_mac_eject ,keyboard_value_mac_eject 
+0x4710 014837 beq hid_key_ac_forward ,keyboard_value_ac_forward 
+0x4711 014838 beq hid_key_ac_stop ,keyboard_value_ac_stop 
+0x4712 014839 beq hid_key_ac_refresh ,keyboard_value_ac_refresh 
+0x4713 014841 beq hid_key_system_sleep ,keyboard_value_system_sleep 
+0x4714 014842 branch keyboard_motion_data_check_next 
+:      014844 keyboard_value_media:
+0x4715 014845 setarg 0x000001 
+:      014846 keyboard_consumer_value_store:
+0x4716 014847 store 3 ,mem_keyboard_tx_data + 1 
+0x4717 014848 branch keyboard_motion_data_check_next 
+:      014849 keyboard_value_vol_down:
+0x4718 014850 setarg 0x000002 
+0x4719 014851 branch keyboard_consumer_value_store 
+:      014852 keyboard_value_vol_up:
+0x471a 014853 setarg 0x000004 
+0x471b 014854 branch keyboard_consumer_value_store 
+:      014855 keyboard_value_mute:
+0x471c 014856 setarg 0x000008 
+0x471d 014857 branch keyboard_consumer_value_store 
+:      014858 keyboard_value_pre_track:
+0x471e 014859 setarg 0x000010 
+0x471f 014860 branch keyboard_consumer_value_store 
+:      014861 keyboard_value_next_track:
+0x4720 014862 setarg 0x000020 
+0x4721 014863 branch keyboard_consumer_value_store 
+:      014864 keyboard_value_play:
+0x4722 014865 setarg 0x000040 
+0x4723 014866 branch keyboard_consumer_value_store 
+:      014867 keyboard_value_stop:
+0x4724 014868 setarg 0x000080 
+0x4725 014869 branch keyboard_consumer_value_store 
+:      014871 keyboard_value_ac_home:
+0x4726 014872 setarg 0x000100 
+0x4727 014873 branch keyboard_consumer_value_store 
+:      014874 keyboard_value_mail:
+0x4728 014875 setarg 0x000200 
+0x4729 014876 branch keyboard_consumer_value_store 
+:      014877 keyboard_value_my_computer:
+0x472a 014878 setarg 0x000400 
+0x472b 014879 branch keyboard_consumer_value_store 
+:      014880 keyboard_value_ac_favorites:
+0x472c 014881 setarg 0x000800 
+0x472d 014882 branch keyboard_consumer_value_store 
+:      014883 keyboard_value_calculator:
+0x472e 014884 setarg 0x001000 
+0x472f 014885 branch keyboard_consumer_value_store 
+:      014886 keyboard_value_ac_search:
+0x4730 014887 setarg 0x002000 
+0x4731 014888 branch keyboard_consumer_value_store 
+:      014889 keyboard_value_ac_back:
+0x4732 014890 fetch 1 ,mem_kb_computer_system 
+0x4733 014891 beq system_os_ios ,keyboard_value_ac_home 
+0x4734 014892 beq system_os_mac ,keyboard_value_ac_home 
+0x4735 014893 setarg 0x004000 
+0x4736 014894 branch keyboard_consumer_value_store 
+:      014895 keyboard_value_os_soft_kb:
+0x4737 014896 fetch 1 ,mem_kb_computer_system 
+0x4738 014897 beq system_os_android ,keyboard_value_os_soft_kb_android 
+0x4739 014898 setarg 0x010000 
+0x473a 014899 branch keyboard_consumer_value_store 
+:      014900 keyboard_value_os_soft_kb_android:
+0x473b 014901 setarg 0x008000 
+0x473c 014902 branch keyboard_consumer_value_store 
+:      014904 keyboard_value_light_down:
+0x473d 014905 setarg 0x020000 
+0x473e 014906 branch keyboard_consumer_value_store 
+:      014907 keyboard_value_light_up:
+0x473f 014908 setarg 0x040000 
+0x4740 014909 branch keyboard_consumer_value_store 
+:      014910 keyboard_value_os_lock:
+0x4741 014911 setarg 0x080000 
+0x4742 014912 branch keyboard_consumer_value_store 
+:      014914 keyboard_value_mac_eject:
+0x4743 014915 setarg 0x100000 
+0x4744 014916 branch keyboard_consumer_value_store 
+:      014917 keyboard_value_ac_forward:
+0x4745 014918 setarg 0x200000 
+0x4746 014919 branch keyboard_consumer_value_store 
+:      014920 keyboard_value_ac_stop:
+0x4747 014921 setarg 0x400000 
+0x4748 014922 branch keyboard_consumer_value_store 
+:      014923 keyboard_value_ac_refresh:
+0x4749 014924 setarg 0x800000 
+0x474a 014925 branch keyboard_consumer_value_store 
+:      014927 keyboard_value_consumer_all_key_release:
+:      014928 keyboard_value_consumer_release:
+0x474b 014929 jam 2 ,mem_keyboard_data_change_flag 
+0x474c 014930 fetch 1 ,mem_keyboard_all_press_key_count 
+0x474d 014931 call keyboard_value_release_all_key ,blank 
+0x474e 014932 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0x474f 014933 setarg hid_reportid_bit_consumer_key 
+0x4750 014934 store 3 ,mem_keyboard_tx_data 
+0x4751 014935 branch keyboard_motion_data_check_next 
+:      014936 keyboard_value_system_sleep:
+0x4752 014937 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0x4753 014938 setarg 0x02 
+0x4754 014939 store 1 ,mem_keyboard_tx_data + 1 
+0x4755 014940 branch keyboard_motion_data_check_next 
+:      014945 keyboard_device_data_tpye_check:
+0x4756 014946 fetch 1 ,mem_device_flag 
+0x4757 014947 bne mode_24g_device ,keyboard_device_data_tpye_check_next 
+0x4758 014948 jam 0 ,mem_24g_repeat_send_flag 
+0x4759 014949 fetch 2 ,mem_keyboard_tx_data 
+0x475a 014950 ncall keyboard_set_repeat_send_flag ,blank 
+0x475b 014951 fetch 6 ,mem_keyboard_tx_data + 3 
+0x475c 014952 ncall keyboard_set_repeat_send_flag ,blank 
+:      014953 keyboard_device_data_tpye_check_next:
+0x475d 014954 call hid_device_clear_key_data 
+0x475e 014955 jam device_data_tpye_keyboard ,mem_keyboard_data_send_flag 
+0x475f 014956 bpatch patch0b_5 ,mem_patch0b 
+0x4760 014957 fetch 1 ,mem_keyboard_tx_data 
+0x4761 014958 beq hid_reportid_key_standard ,keyboard_standard_data_send 
+0x4762 014959 beq hid_reportid_mouse ,keyboard_mouse_data_send 
+0x4763 014960 beq hid_reportid_consumer_key ,keyboard_consumer_data_send 
+0x4764 014961 beq hid_reportid_bit_consumer_key ,keyboard_bit_consumer_data_send 
+0x4765 014962 beq hid_reportid_system_ctrl ,keyboard_system_control_data_send 
+0x4766 014963 beq hid_reportid_n_key_rollover ,keyboard_n_key_rollover_send 
+0x4767 014964 rtn 
+:      014966 keyboard_mouse_data_send:
+0x4768 014967 jam device_data_tpye_mouse ,mem_keyboard_data_send_flag 
+0x4769 014968 arg mem_keyboard_tx_data + 1 ,contr 
+0x476a 014969 arg mem_mouse_key ,contw 
+0x476b 014970 arg 7 ,loopcnt 
+0x476c 014971 branch memcpy 
+:      014973 keyboard_standard_data_send:
+0x476d 014974 fetch 1 ,mem_device_flag 
+0x476e 014975 bne mode_24g_device ,keyboard_standard_data_send_end 
+0x476f 014976 call keyboard_24g_led_get_status_check 
+0x4770 014977 fetch 1 ,mem_keyboard_led_status_get 
+0x4771 014978 store 1 ,mem_keyboard_tx_data + 2 
+:      014979 keyboard_standard_data_send_end:
+0x4772 014980 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4773 014981 bbit1 keyboard_enable_magic_keyboard ,keyboard_magic_data_send 
+0x4774 014982 arg mem_keyboard_tx_data ,contr 
+0x4775 014983 arg mem_customer_key_press ,contw 
+0x4776 014984 arg 9 ,loopcnt 
+0x4777 014985 branch memcpy 
+:      014987 keyboard_magic_data_send:
+0x4778 014988 jam 0 ,mem_keyboard_tx_data + 9 
+0x4779 014989 fetch 1 ,mem_keyboard_fn_flag 
+0x477a 014990 branch keyboard_magic_data_send_end ,blank 
+0x477b 014991 jam 1 ,mem_keyboard_tx_data + 9 
+:      014992 keyboard_magic_data_send_end:
+0x477c 014993 arg mem_keyboard_tx_data ,contr 
+0x477d 014994 arg mem_customer_key_press ,contw 
+0x477e 014995 arg 10 ,loopcnt 
+0x477f 014996 branch memcpy 
+:      014998 keyboard_consumer_data_send:
+0x4780 014999 setarg hid_reportid_consumer_key 
+:      015000 keyboard_consumer_data_store:
+0x4781 015001 store 1 ,mem_customer_key_press 
+0x4782 015002 fetch 3 ,mem_keyboard_tx_data + 1 
+0x4783 015003 store 3 ,mem_customer_key_press + 1 
+0x4784 015004 rtn 
+:      015006 keyboard_bit_consumer_data_send:
+0x4785 015007 setarg hid_reportid_bit_consumer_key 
+0x4786 015008 branch keyboard_consumer_data_store 
+:      015010 keyboard_system_control_data_send:
+0x4787 015011 setarg hid_reportid_system_ctrl 
+0x4788 015012 store 1 ,mem_customer_key_press 
+0x4789 015013 fetch 1 ,mem_keyboard_tx_data + 1 
+0x478a 015014 store 1 ,mem_customer_key_press + 1 
+0x478b 015015 rtn 
+:      015017 keyboard_n_key_rollover_send:
+0x478c 015018 setarg hid_reportid_n_key_rollover 
+0x478d 015019 store 1 ,mem_customer_key_press 
+0x478e 015020 rtn 
+:      015024 keyboard_lpm_before_common:
+0x478f 015025 bpatch patch0b_6 ,mem_patch0b 
+0x4790 015026 call clear_wake 
+0x4791 015028 fetcht 1 ,mem_keyboard_pb_button_gpio 
+0x4792 015029 call gpio_set_wake 
+0x4793 015031 fetch 2 ,mem_kb_col_ptr 
+0x4794 015032 copy pdata ,regb 
+0x4795 015033 arg 20 ,loopcnt 
+:      015034 keyboard_key_col_wake_init:
+0x4796 015035 ifetcht 1 ,regb 
+0x4797 015036 isolate1 7 ,temp 
+0x4798 015037 ncall gpio_out_active ,true 
+0x4799 015038 increase 1 ,regb 
+0x479a 015039 loop keyboard_key_col_wake_init 
+0x479b 015041 call keyboard_gpio_pu_idle 
+0x479c 015042 jam 0 ,mem_qdec_set_flag 
+0x479d 015044 fetch 2 ,mem_kb_row_ptr 
+0x479e 015045 copy pdata ,regb 
+0x479f 015046 arg 8 ,loopcnt 
+:      015047 keyboard_key_row_wake_init:
+0x47a0 015048 ifetcht 1 ,regb 
+0x47a1 015049 sub temp ,ui_button_gpio_disable ,null 
+0x47a2 015050 ncall keyboard_key_row_wake_set ,zero 
+0x47a3 015051 increase 1 ,regb 
+0x47a4 015052 loop keyboard_key_row_wake_init 
+0x47a5 015054 call lpm_puchk_set_check 
+0x47a6 015055 fetcht 1 ,mem_device_reuse_2ice_gpio 
+0x47a7 015056 call device_gpio_config_input_pu 
+0x47a8 015057 call mouse_gpio_set_analog 
+0x47a9 015058 branch keyboard_adc_gpio_set_before_hibernate 
+:      015060 keyboard_process_lpm_before:
+0x47aa 015061 rtnmark1 mark_24g 
+0x47ab 015062 branch keyboard_lpm_before_common 
+:      015064 keyboard_before_hibernate:
+0x47ac 015065 bpatch patch0b_7 ,mem_patch0b 
+0x47ad 015066 call disable_authrom 
+0x47ae 015067 branch keyboard_setgpio_hibernate 
+:      015070 keyboard_power_down:
+0x47af 015071 bpatch patch0c_0 ,mem_patch0c 
+0x47b0 015072 call keyboard_device_led_all_off 
+:      015073 keyboard_app_enter_hibernate:
+0x47b1 015074 call keyboard_setgpio_hibernate 
+0x47b2 015075 branch app_enter_hibernate 
+:      015077 keyboard_setgpio_hibernate:
+0x47b3 015078 bpatch patch0c_1 ,mem_patch0c 
+0x47b4 015079 call clear_wake 
+0x47b5 015080 call keyboard_device_led_all_off 
+0x47b6 015081 call keyboard_rgb_off 
+0x47b7 015082 branch keyboard_lpm_before_common 
+:      015085 keyboard_24g_pairing_complete:
+0x47b8 015086 call keyboard_get_24g_led_enable 
+0x47b9 015087 call mouse_no_data_timer_init 
+0x47ba 015088 arg keyboard_24g_pairing_flag ,queue 
+0x47bb 015089 call keyboard_disable_function_flag 
+0x47bc 015090 setarg 0 
+0x47bd 015091 store 2 ,mem_24g_pair_timeout 
+0x47be 015092 store 2 ,mem_24g_reconn_timeout 
+0x47bf 015093 store 1 ,mem_24g_conn_sm 
+0x47c0 015094 store 1 ,mem_mouse_move_flag 
+0x47c1 015095 store 1 ,mem_24g_reconn_type 
+0x47c2 015096 fetch 4 ,mem_24g_addr 
+0x47c3 015097 store 4 ,mem_24g_receiver_addr 
+0x47c4 015098 store 4 ,mem_device_24g_addr 
+0x47c5 015099 call keyboard_24g_fast_conn_check 
+0x47c6 015100 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x47c7 015101 set1 keyboard_store_eepromm_flag_g24_addr ,pdata 
+0x47c8 015102 store 1 ,mem_keyboard_device_info_store_flag 
+0x47c9 015103 branch keyboard_store_device_info_delay 
+:      015105 keyboard_24g_attempt_success:
+0x47ca 015106 call keyboard_get_24g_led_enable 
+0x47cb 015107 fetch 4 ,mem_24g_addr 
+0x47cc 015108 store 4 ,mem_24g_receiver_addr 
+0x47cd 015109 store 4 ,mem_device_24g_addr 
+0x47ce 015110 call g24_ch_syncword_crc8_init 
+0x47cf 015111 call keyboard_24g_fast_conn_check 
+0x47d0 015112 jam 0 ,mem_24g_conn_sm 
+0x47d1 015113 jam 0 ,mem_24g_reconn_type 
+0x47d2 015114 branch mouse_no_data_timer_init 
+:      015116 keyboard_24g_fast_conn_check:
+0x47d3 015117 fetch 4 ,mem_24g_addr 
+0x47d4 015118 fetcht 4 ,mem_24g_fast_conn_addr 
+0x47d5 015119 isub temp ,null 
+0x47d6 015120 nbranch mouse_bluetooth_fast_conn_disable ,zero 
+0x47d7 015121 jam 0xff ,mem_device_fast_conn_flag 
+0x47d8 015122 rtn 
+:      015124 keyboard_24g_led_get_status_check:
+0x47d9 015125 arg 6 ,loopcnt 
+0x47da 015126 arg mem_keyboard_tx_data + 3 ,contr 
+:      015127 keyboard_24g_led_data_check:
+0x47db 015128 ifetch 1 ,contr 
+0x47dc 015129 beq hid_key_num_lock ,keyboard_get_24g_led_enable 
+0x47dd 015130 beq hid_key_caps_lock ,keyboard_get_24g_led_enable 
+0x47de 015131 beq hid_key_scroll_lock ,keyboard_get_24g_led_enable 
+0x47df 015132 loop keyboard_24g_led_data_check 
+0x47e0 015133 rtn 
+:      015135 keyboard_get_24g_led_enable:
+0x47e1 015136 jam 0x03 ,mem_keyboard_led_status_get 
+0x47e2 015137 jam 1 ,mem_keyboard_data_change_flag 
+0x47e3 015138 rtn 
+:      015140 keyboard_set_repeat_send_flag:
+0x47e4 015141 jam 1 ,mem_24g_repeat_send_flag 
+0x47e5 015142 rtn 
+:      015145 keyboard_24g_attempt_fail:
+0x47e6 015146 fetch 1 ,mem_24g_attempt_fail_flag 
+0x47e7 015147 nbranch keyboard_24g_hibernate_set ,blank 
+0x47e8 015148 fetch 1 ,mem_24g_reconn_type 
+0x47e9 015149 beq fast_conn_and_3_0_addr ,keyboard_24g_fast_conn_attempt_fail 
+0x47ea 015150 beq fast_conn_and_receiver ,keyboard_24g_fast_conn_attempt_fail 
+0x47eb 015151 beq receiver_and_3_0_addr ,keyboard_24g_attempt_fail_enter_hibernate 
+0x47ec 015152 branch keyboard_24g_attempt_fail_enter_hibernate 
+:      015154 keyboard_24g_attempt_fail_enter_hibernate:
+0x47ed 015155 call keyboard_24g_stop 
+0x47ee 015156 fetch 1 ,mem_reconn_times 
+0x47ef 015157 nbranch mouse_polling_device ,blank 
+0x47f0 015158 fetch 1 ,mem_device_flag 
+0x47f1 015159 beq mode_24g_device ,keyboard_power_down 
+0x47f2 015160 rtn 
+:      015162 keyboard_24g_fast_conn_attempt_fail:
+0x47f3 015163 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x47f4 015164 bbit1 keyboard_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+0x47f5 015165 bbit0 keyboard_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0x47f6 015166 fetch 4 ,mem_device_24g_addr 
+0x47f7 015167 fetcht 4 ,mem_device_compare_addr 
+0x47f8 015168 isub temp ,null 
+0x47f9 015169 branch keyboard_24g_start_pair_mode ,zero 
+0x47fa 015170 branch mouse_24g_reconn_dongle_start 
+:      015172 keyboard_24g_hibernate_set:
+0x47fb 015173 bpatch patch0c_2 ,mem_patch0c 
+0x47fc 015174 jam 0 ,mem_24g_attempt_fail_flag 
+0x47fd 015175 call g24_transmit_next_packet 
+0x47fe 015176 setarg -1 
+0x47ff 015177 store 8 ,mem_24g_enter_hibernate 
+0x4800 015178 setarg 0 
+0x4801 015179 store 7 ,mem_mouse_key 
+0x4802 015180 jam 1 ,mem_24g_shutdown_flag 
+0x4803 015181 branch keyboard_g24_long_sleep 
+:      015184 keyboard_24g_stop:
+0x4804 015185 set0 mark_24g ,mark 
+0x4805 015186 jam state_24g_stop ,mem_24g_conn_sm 
+0x4806 015187 arg keyboard_24g_pairing_flag ,queue 
+0x4807 015188 branch keyboard_disable_function_flag 
+:      015190 keyboard_g24_reconn_dispatch:
+0x4808 015191 fetch 2 ,mem_24g_reconn_count 
+0x4809 015192 and_into 0xe0 ,pdata 
+0x480a 015193 branch keyboard_g24_reconn_dispatch_next ,blank 
+0x480b 015194 fetch 2 ,mem_24g_reconn_count 
+0x480c 015195 increase 1 ,pdata 
+0x480d 015196 store 2 ,mem_24g_reconn_count 
+0x480e 015197 rtn 
+:      015198 keyboard_g24_reconn_dispatch_next:
+0x480f 015199 call g24_reconn_data_prep 
+0x4810 015200 call g24_transmit_receive_ack 
+0x4811 015201 nbranch g24_reconn_device_fail ,sync 
+0x4812 015202 nbranch g24_reconn_device_fail ,user3 
+0x4813 015203 call hid_device_g24_ackpayload_parse 
+0x4814 015204 branch g24_reconn_dispatch_next + 5 
+:      015206 keyboard_g24_transmit_no_interrupt:
+0x4815 015207 call g24_txdata_prep 
+0x4816 015208 nbranch keyboard_g24_nodata_transmit ,user 
+:      015209 keyboard_g24_transmit_start:
+0x4817 015210 call keyboard_g24_transmit_process 
+0x4818 015211 call keyboard_power_ctrl_start 
+0x4819 015212 branch keyboard_g24_transmit_start_next 
+:      015214 keyboard_g24_nodata_transmit:
+0x481a 015215 fetch 8 ,mem_keyscan_value_current 
+0x481b 015216 nbranch keyboard_g24_transmit_start_next ,blank 
+0x481c 015217 fetch 8 ,mem_keyscan_value_current + 8 
+0x481d 015218 nbranch keyboard_g24_transmit_start_next ,blank 
+0x481e 015219 fetch 4 ,mem_keyscan_value_current + 16 
+0x481f 015220 nbranch keyboard_g24_transmit_start_next ,blank 
+0x4820 015221 call g24_search_receiver 
+:      015222 keyboard_g24_long_sleep:
+0x4821 015223 call keyboard_g24_lpm_wait 
+0x4822 015224 nrtn user 
+0x4823 015225 call g24_setgpio_lpm_before 
+0x4824 015226 fetch 1 ,mem_24g_shutdown_flag 
+0x4825 015227 ncall keyboard_setgpio_hibernate ,blank 
+0x4826 015228 fetch 8 ,mem_24g_enter_hibernate 
+0x4827 015229 branch g24_long_seep2 
+:      015231 keyboard_g24_transmit_process:
+0x4828 015232 bpatch patch0c_3 ,mem_patch0c 
+0x4829 015233 jam 0 ,mem_24g_retry 
+:      015234 keyboard_g24_transmit_loop:
+0x482a 015235 fetchr timeup ,2 ,mem_param_rx_setup 
+0x482b 015236 until clkn_rt ,meet 
+0x482c 015237 call g24_transmit_receive_ack 
+0x482d 015238 fetch 1 ,mem_24g_no_ack 
+0x482e 015239 beq no_ack_24g ,g24_transmit_no_ack 
+0x482f 015240 nbranch keyboard_g24_retransmit ,sync 
+0x4830 015241 nbranch keyboard_g24_retransmit ,user3 
+0x4831 015242 call hid_device_g24_ackpayload_parse 
+0x4832 015243 jam 0 ,mem_24g_shutdown_flag 
+0x4833 015244 branch g24_transmit_no_ack 
+:      015247 keyboard_g24_retransmit:
+0x4834 015248 fetch 1 ,mem_24g_abort_pac 
+0x4835 015249 nrtn blank 
+0x4836 015250 fetch 2 ,mem_24g_txfail_cnt 
+0x4837 015251 increase 1 ,pdata 
+0x4838 015252 store 2 ,mem_24g_txfail_cnt 
+0x4839 015253 fetch 1 ,mem_24g_txfail_cnt 
+0x483a 015254 beq 0xff ,g24_tx_attempt_fail 
+0x483b 015255 fetch 1 ,mem_24g_retry 
+0x483c 015256 increase 1 ,pdata 
+0x483d 015257 store 1 ,mem_24g_retry 
+0x483e 015258 and_into 0x03 ,pdata 
+0x483f 015259 branch keyboard_g24_tx_fast_hop ,blank 
+0x4840 015260 branch keyboard_g24_transmit_loop 
+:      015262 keyboard_g24_tx_fast_hop:
+0x4841 015263 call kscan_dispatch 
+0x4842 015264 fetch 1 ,mem_keyboard_switch_device_flag 
+0x4843 015265 nbranch soft_reset_chip ,blank 
+0x4844 015266 fetch 1 ,mem_keyboard_commbination_press_type 
+0x4845 015267 nbranch g24_transmit_no_ack ,blank 
+0x4846 015268 call g24_tx_fast_hop 
+0x4847 015269 branch keyboard_g24_transmit_loop 
+:      015271 keyboard_g24_lpm_wait:
+0x4848 015272 enable user 
+0x4849 015273 call lpo_calibration 
+0x484a 015274 fetch 3 ,mem_clks_per_lpo 
+0x484b 015275 branch disable_user ,blank 
+0x484c 015276 fetch 1 ,mem_keyboard_fn_flag 
+0x484d 015277 nbranch disable_user ,blank 
+0x484e 015278 fetch 1 ,mem_keyboard_control_key_flag 
+0x484f 015279 nbranch disable_user ,blank 
+0x4850 015280 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x4851 015281 nbranch disable_user ,blank 
+0x4852 015282 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x4853 015283 beq g24_tx_timer_int_enable ,disable_user 
+0x4854 015284 branch g24_lpm_wait + 5 
+:      015286 keyboard_power_ctrl_start:
+0x4855 015287 fetch 4 ,mem_24g_addr 
+0x4856 015288 fetcht 4 ,mem_24g_fast_conn_addr 
+0x4857 015289 isub temp ,null 
+0x4858 015290 nbranch power_ctrl_start + 1 ,zero 
+0x4859 015291 jam tx_power_factory ,mem_tx_power 
+0x485a 015292 rtn 
+:      015293 keyboard_g24_transmit_start_next:
+0x485b 015294 fetch 8 ,mem_24g_long_sleep_set 
+0x485c 015295 store 8 ,mem_24g_enter_hibernate 
+0x485d 015296 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0x485e 015297 store 2 ,mem_24g_long_sleep_param_update_timer 
+:      015298 keyboard_g24_short_sleep:
+0x485f 015299 bpatch patch0c_4 ,mem_patch0c 
+0x4860 015300 call keyboard_g24_lpm_wait 
+0x4861 015301 branch g24_short_sleep + 2 
+:      015303 keyboard_24g_package_data:
+0x4862 015304 rtnmark0 mark_24g 
+0x4863 015305 call keyboard_motion 
+0x4864 015306 nrtn user 
+0x4865 015307 fetch 1 ,mem_customer_key 
+0x4866 015308 nbranch keyboard_24g_keyboard_package_data ,blank 
+0x4867 015309 branch mouse_24g_mouse_package_data 
+:      015311 keyboard_24g_keyboard_package_data:
+0x4868 015312 jam type_kb ,mem_24g_data_type 
+0x4869 015313 fetch 1 ,mem_customer_key_press 
+0x486a 015314 beq hid_reportid_n_key_rollover ,keyboard_24g_keyboard_package_n_key_rollover_data 
+0x486b 015315 arg 10 ,rega 
+0x486c 015316 branch hid_device_24g_keyboard_package_data_set 
+:      015318 keyboard_24g_keyboard_package_n_key_rollover_data:
+0x486d 015319 store 1 ,mem_keyboard_n_key_rollover_data 
+0x486e 015320 arg 15 ,rega 
+0x486f 015321 arg mem_keyboard_n_key_rollover_data ,regb 
+0x4870 015322 rtn 
+:      015325 keyboard_24g_search_dongle:
+0x4871 015326 bpatch patch0c_5 ,mem_patch0c 
+0x4872 015327 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4873 015328 rtnbit0 keyboard_enable_24g_search_dongle 
+0x4874 015329 branch hid_device_24g_search_dongle 
+:      015332 keyboard_le:
+0x4875 015333 bpatch patch0c_6 ,mem_patch0c 
+0x4876 015334 call le_fifo_check_nearly_full 
+0x4877 015335 nrtn blank 
+0x4878 015336 fetch 1 ,mem_device_fast_conn_flag 
+0x4879 015337 beq 0xff ,keyboard_le_next 
+0x487a 015338 fetch 1 ,mem_le_connect_status_flag 
+0x487b 015339 and pdata ,0x03 ,pdata 
+0x487c 015340 rtnne 0x03 
+:      015341 keyboard_le_next:
+0x487d 015342 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x487e 015343 bbit1 keyboard_24g_pairing_flag ,hid_device_le_send_empty_packet 
+0x487f 015344 bbit1 keyboard_bt_discovery_button_down_flag ,hid_device_le_send_empty_packet 
+0x4880 015345 bbit1 keyboard_bt_discovery_button_long_down_flag ,hid_device_le_send_empty_packet 
+0x4881 015346 call keyboard_motion 
+0x4882 015347 nrtn user 
+0x4883 015348 call mouse_wheel_trigger 
+0x4884 015349 branch hid_device_send_package_data_check 
+:      015351 keyboard_le_fill_n_key_rollover_key_data:
+0x4885 015352 jam 14 ,mem_le_data_len 
+0x4886 015353 fetcht 2 ,mem_le_notify_handle 
+0x4887 015354 fetch 1 ,mem_le_data_len 
+0x4888 015355 copy pdata ,rega 
+0x4889 015356 call le_att_malloc_tx_notify 
+0x488a 015357 fetcht 1 ,mem_le_data_len 
+0x488b 015358 copy temp ,loopcnt 
+0x488c 015359 arg mem_keyboard_n_key_rollover_data + 1 ,contr 
+0x488d 015360 branch memcpy 
+:      015362 keyboard_le_fill_standard_key_data:
+0x488e 015363 jam 9 ,mem_le_data_len 
+0x488f 015364 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4890 015365 bbit1 keyboard_enable_magic_keyboard ,keyoard_le_fill_standard_key_data_send 
+0x4891 015366 jam 8 ,mem_le_data_len 
+0x4892 015367 branch keyoard_le_fill_standard_key_data_send 
+:      015369 keyboard_le_bb_event_connected:
+0x4893 015370 call keyboard_load_rgb 
+0x4894 015371 jam 0 ,mem_mouse_long_mult_flag 
+0x4895 015372 jam 1 ,mem_device_le_bb_connected_flag 
+0x4896 015373 call mouse_24g_first_store_reconn_info 
+0x4897 015374 fetch 1 ,mem_device_le_reconnect_flag 
+0x4898 015375 nbranch keyboard_le_bb_event_connected_next ,blank 
+0x4899 015376 jam 0x14 ,mem_device_send_secutiry_request_timer 
+:      015377 keyboard_le_bb_event_connected_next:
+0x489a 015378 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x489b 015379 set0 app_disc_by_button ,pdata 
+0x489c 015380 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x489d 015381 jam 0 ,mem_device_direct_timer 
+0x489e 015382 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x489f 015383 store 2 ,mem_le_battery_level_updata_timer 
+0x48a0 015384 call mouse_no_data_timer_init 
+0x48a1 015385 branch keyboard_stop_discovery 
+:      015388 keyboard_le_bb_disconnected:
+0x48a2 015389 setarg 0 
+0x48a3 015390 store 2 ,mem_le_battery_level_updata_timer 
+0x48a4 015391 store 1 ,mem_keyboard_le_send_conn_param_update 
+0x48a5 015392 store 1 ,mem_keyboard_le_send_conn_param_update_timer 
+0x48a6 015393 store 1 ,mem_device_le_bb_connected_flag 
+:      015394 keyboard_le_bb_disconnected_next:
+0x48a7 015395 jam le_lpm_enable ,mem_le_conn_param_reject 
+0x48a8 015396 call le_clr_config_more_data 
+0x48a9 015397 jam 0 ,mem_ltk_exists 
+0x48aa 015398 branch keyboard_bb_disconnected 
+:      015399 keyboard_bb_disconnected:
+0x48ab 015400 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x48ac 015401 bbit1 app_disc_ble ,keyboard_le_event_bb_disconn 
+0x48ad 015402 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x48ae 015403 branch keyboard_start_discovery 
+:      015404 keyboard_le_event_bb_disconn:
+0x48af 015405 jam 0 ,mem_le_connect_status_flag 
+0x48b0 015406 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x48b1 015407 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x48b2 015408 branch keyboard_power_down 
+:      015410 keyboard_le_ll_start_encryt:
+0x48b3 015411 fetch 1 ,mem_device_le_reconnect_flag 
+0x48b4 015412 beq 1 ,keyboard_le_ll_reconn_start_encryt 
+0x48b5 015413 jam 20 ,mem_le_start_encrypt_timer 
+0x48b6 015414 jam 5 ,mem_le_start_auto_reco_timer 
+0x48b7 015415 branch mouse_le_ll_enable_start_enc_flag 
+:      015416 keyboard_le_ll_reconn_start_encryt:
+0x48b8 015417 call mouse_updata_le_param 
+0x48b9 015418 jam 5 ,mem_le_start_encrypt_timer 
+0x48ba 015419 branch mouse_le_ll_enable_start_enc_flag 
+:      015421 keyboard_le_conn_param_update_rsp_recieved:
+0x48bb 015422 fetch 1 ,mem_keyboard_le_send_conn_param_update 
+0x48bc 015423 nrtn blank 
+0x48bd 015424 jam 1 ,mem_keyboard_le_send_conn_param_update 
+0x48be 015425 jam 30 ,mem_keyboard_le_send_conn_param_update_timer 
+0x48bf 015426 rtn 
+:      015428 keyboard_bb_event_discovery_btn:
+0x48c0 015429 isolate1 mark_24g ,mark 
+0x48c1 015430 call keyboard_24g_stop ,true 
+0x48c2 015431 call mouse_disconnect 
+0x48c3 015432 jam 0 ,mem_le_connect_status_flag 
+0x48c4 015433 branch keyboard_start_discovery 
+:      015435 keyboard_start_discovery:
+0x48c5 015436 bpatch patch0c_7 ,mem_patch0c 
+0x48c6 015437 call keyboard_device_led_all_off + 2 
+0x48c7 015438 setarg 0 
+0x48c8 015439 store 2 ,mem_le_battery_level_updata_timer 
+0x48c9 015440 store 2 ,mem_otp_store_device_info_flag 
+0x48ca 015441 jam 0xff ,mem_kb_computer_system 
+0x48cb 015443 fetch 2 ,mem_ui_state_map 
+0x48cc 015444 isolate1 ui_state_ble_adv ,pdata 
+0x48cd 015445 call mouse_stop_le_adv ,true 
+0x48ce 015446 call mouse_bluetooth_fast_conn_disable 
+0x48cf 015447 fetch 2 ,mem_ui_state_map 
+0x48d0 015448 bbit1 ui_state_ble_adv ,keyboard_start_discovery_norandom 
+0x48d1 015449 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x48d2 015450 bbit0 keyboard_enable_ble_random_addre ,keyboard_start_discovery_norandom 
+0x48d3 015451 fetcht 2 ,mem_random_addr_increase_count 
+0x48d4 015452 increase 1 ,temp 
+0x48d5 015453 storet 2 ,mem_random_addr_increase_count 
+0x48d6 015454 storet 2 ,mem_le_lap + 1 
+0x48d7 015455 random pdata 
+0x48d8 015456 store 1 ,mem_le_lap 
+:      015457 keyboard_start_discovery_norandom:
+0x48d9 015458 fetch 3 ,mem_device_le_lap_temp 
+0x48da 015459 store 3 ,mem_le_lap + 3 
+0x48db 015460 call app_lpm_mult_disable 
+0x48dc 015461 fetch 2 ,mem_device_discovery_timeout 
+0x48dd 015462 store 2 ,mem_device_discovery_timer 
+0x48de 015463 setarg 0 
+0x48df 015464 store 2 ,mem_device_no_data_timer 
+0x48e0 015465 store 2 ,mem_le_battery_level_updata_timer 
+0x48e1 015466 store 1 ,mem_device_direct_timer 
+0x48e2 015467 arg keyboard_store_memory_flag ,queue 
+0x48e3 015468 call keyboard_enable_function_flag 
+0x48e4 015469 call keyboard_bt_discovery_button_down_disable 
+0x48e5 015470 branch mouse_check_51cmd_adv 
+:      015472 keyboard_stop_bluetooth_mode:
+0x48e6 015473 fetch 2 ,mem_ui_state_map 
+0x48e7 015474 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x48e8 015475 branch keyboard_stop_discovery 
+:      015477 keyboard_stop_discovery:
+0x48e9 015478 bpatch patch0d_0 ,mem_patch0d 
+0x48ea 015479 setarg 0 
+0x48eb 015480 store 2 ,mem_device_discovery_timer 
+0x48ec 015481 arg keyboard_bt_discovery_button_long_down_flag ,queue 
+0x48ed 015482 call keyboard_disable_function_flag 
+0x48ee 015483 call mouse_stop_le_adv 
+0x48ef 015484 fetch 1 ,mem_keyboard_device_poweron_timer 
+0x48f0 015485 branch keyboard_device_led_all_off + 2 ,blank 
+0x48f1 015486 rtn 
+:      015488 keyboard_store_remote_bdaddr:
+0x48f2 015489 bpatch patch0d_1 ,mem_patch0d 
+0x48f3 015490 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x48f4 015491 rtnbit0 keyboard_store_memory_flag 
+0x48f5 015492 arg keyboard_store_memory_flag ,queue 
+0x48f6 015493 call keyboard_disable_function_flag 
+0x48f7 015494 call hid_device_check_device_addr 
+0x48f8 015495 call hid_device_before_store_reconn_info 
+0x48f9 015496 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x48fa 015497 set1 keyboard_store_eepromm_flag_ble_addr ,pdata 
+0x48fb 015498 store 1 ,mem_keyboard_device_info_store_flag 
+0x48fc 015499 branch keyboard_store_device_info_delay 
+:      015502 keyboard_le_send_att_find_by_type_value_request_ancs:
+0x48fd 015503 jam 1 ,mem_le_connect_ios_mac_flag 
+0x48fe 015504 arg 23 ,rega 
+0x48ff 015505 arg le_l2cap_cid_att ,regb 
+0x4900 015506 call le_fifo_malloc_tx_l2cap 
+0x4901 015507 setarg attop_find_by_type_value_request 
+0x4902 015508 istore 1 ,contw 
+0x4903 015509 setarg 0x0001 
+0x4904 015510 istore 2 ,contw 
+0x4905 015511 setarg 0xffff 
+0x4906 015512 istore 2 ,contw 
+0x4907 015513 setarg 0x2800 
+0x4908 015514 istore 2 ,contw 
+0x4909 015515 arg mem_le_search_service_uuid ,contr 
+0x490a 015516 branch memcpy16 
+:      015518 keyboard_le_parse_att:
+0x490b 015519 bpatch patch0d_2 ,mem_patch0d 
+0x490c 015520 copy rega ,contr 
+0x490d 015521 ifetch 3 ,contr 
+0x490e 015522 store 3 ,mem_le_att_opcode 
+0x490f 015523 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+0x4910 015524 beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+0x4911 015525 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+0x4912 015526 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+0x4913 015527 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+0x4914 015528 beq attop_read_blob_request ,keyboard_le_parse_att_read_blob_request 
+0x4915 015529 beq attop_read_request ,keyboard_le_parse_att_read_request 
+0x4916 015530 beq attop_write_request ,keyboard_le_parse_att_write_request 
+0x4917 015531 beq attop_write_command ,keyboard_le_parse_att_write_command 
+0x4918 015532 branch le_parse_att2 
+:      015535 keyboard_le_send_att_find_by_type_value_request_mac:
+0x4919 015536 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x491a 015537 rtn blank 
+0x491b 015538 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x491c 015539 beq 2 ,keyboard_le_parse_att_not_find_mac_report 
+0x491d 015540 jam 2 ,mem_le_connect_ios_mac_flag 
+0x491e 015541 arg 9 ,rega 
+0x491f 015542 arg le_l2cap_cid_att ,regb 
+0x4920 015543 call le_fifo_malloc_tx_l2cap 
+0x4921 015544 setarg attop_find_by_type_value_request 
+0x4922 015545 istore 1 ,contw 
+0x4923 015546 setarg 0x0001 
+0x4924 015547 istore 2 ,contw 
+0x4925 015548 setarg 0xffff 
+0x4926 015549 istore 2 ,contw 
+0x4927 015550 setarg 0x2800 
+0x4928 015551 istore 2 ,contw 
+0x4929 015552 arg 2 ,loopcnt 
+0x492a 015553 arg mem_le_search_mac_uuid ,contr 
+0x492b 015554 branch memcpy 
+:      015556 keyboard_le_parse_att_find_by_type_value_rsp_mac:
+0x492c 015557 arg 7 ,rega 
+0x492d 015558 arg le_l2cap_cid_att ,regb 
+0x492e 015559 call le_fifo_malloc_tx_l2cap 
+0x492f 015560 setarg attop_read_by_type_request 
+0x4930 015561 istore 1 ,contw 
+0x4931 015562 fetcht 2 ,mem_le_payload_ptr 
+0x4932 015563 increase 5 ,temp 
+0x4933 015564 ifetch 4 ,temp 
+0x4934 015565 istore 4 ,contw 
+0x4935 015566 setarg 0x2803 
+0x4936 015567 istore 2 ,contw 
+0x4937 015568 rtn 
+:      015570 keyboard_le_send_att_read_by_type_rsp_mac:
+0x4938 015571 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x4939 015572 rtn blank 
+0x493a 015573 fetch 2 ,mem_le_l2cap_size 
+0x493b 015574 increase -2 ,pdata 
+0x493c 015575 div pdata ,7 
+0x493d 015576 call wait_div_end 
+0x493e 015577 quotient loopcnt 
+0x493f 015578 fetch 2 ,mem_le_payload_ptr 
+0x4940 015579 add pdata ,6 ,contr 
+:      015580 keyboard_le_check_att_read_type_manu_loop:
+0x4941 015581 increase 3 ,contr 
+0x4942 015582 ifetch 2 ,contr 
+0x4943 015583 copy pdata ,regc 
+0x4944 015584 ifetch 2 ,contr 
+0x4945 015585 arg 0x2a29 ,temp 
+0x4946 015586 isub temp ,null 
+0x4947 015587 branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
+0x4948 015588 loop keyboard_le_check_att_read_type_manu_loop 
+0x4949 015589 branch keyboard_le_parse_att_not_find_mac_report 
+:      015590 keyboard_le_send_att_read_by_type_rsp_manufactory:
+0x494a 015591 arg 3 ,rega 
+0x494b 015592 arg le_l2cap_cid_att ,regb 
+0x494c 015593 call le_fifo_malloc_tx_l2cap 
+0x494d 015594 setarg attop_read_request 
+0x494e 015595 istore 1 ,contw 
+0x494f 015596 copy regc ,pdata 
+0x4950 015597 istore 2 ,contw 
+0x4951 015598 rtn 
+:      015600 keyboard_le_parse_att_manu_resp:
+0x4952 015601 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x4953 015602 rtn blank 
+0x4954 015603 fetch 2 ,mem_le_l2cap_size 
+0x4955 015604 arg 9 ,loopcnt 
+0x4956 015605 fetch 2 ,mem_le_payload_ptr 
+0x4957 015606 add pdata ,5 ,rega 
+0x4958 015607 arg mem_le_search_mac_manu_name ,regb 
+0x4959 015608 call string_compare 
+0x495a 015609 branch keyboard_le_parse_att_find_mac_report ,zero 
+0x495b 015610 branch keyboard_le_parse_att_not_find_mac_report 
+:      015612 keyboard_le_parse_att_find_by_type_value_rsp:
+0x495c 015613 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x495d 015614 rtn blank 
+0x495e 015615 fetch 1 ,mem_le_connect_ios_mac_flag 
+0x495f 015616 beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
+:      015617 keyboard_le_parse_att_find_ios_report:
+0x4960 015618 jam system_os_ios ,mem_kb_computer_system 
+0x4961 015619 branch keyboard_store_computer_system_ble 
+:      015620 keyboard_le_parse_att_not_find_mac_report:
+0x4962 015621 fetch 1 ,mem_le_conn_peer_addr_type 
+0x4963 015622 store 1 ,mem_kb_computer_system 
+0x4964 015623 branch keyboard_store_computer_system_ble 
+:      015624 keyboard_le_parse_att_find_mac_report:
+0x4965 015625 jam system_os_mac ,mem_kb_computer_system 
+:      015626 keyboard_store_computer_system_ble:
+0x4966 015627 jam 0 ,mem_le_connect_ios_mac_flag 
+0x4967 015628 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4968 015629 bbit0 keyboard_enable_otp ,keyboard_store_computer_system_info 
+0x4969 015630 jam 1 ,mem_otp_store_system_flag 
+0x496a 015631 fetch 1 ,mem_otp_store_device_info_flag 
+0x496b 015632 rtn blank 
+0x496c 015633 branch keyboard_wirte_otp_ble 
+:      015635 keyboard_store_computer_system_info:
+0x496d 015636 fetch 1 ,mem_keyboard_device_info_store_flag 
+0x496e 015637 set1 keyboard_store_eepromm_flag_computer_system ,pdata 
+0x496f 015638 store 1 ,mem_keyboard_device_info_store_flag 
+0x4970 015639 branch keyboard_store_device_info_delay 
+:      015641 keyboard_le_parse_att_read_by_type_request:
+0x4971 015642 call le_get_search_handle_start_end_common 
+0x4972 015643 call le_get_search_att_type 
+:      015644 keyboard_le_send_att_read_by_type_response:
+0x4973 015645 fetcht 2 ,mem_le_search_handle_start 
+0x4974 015646 storet 2 ,mem_temp 
+0x4975 015647 call le_init_attlist_search 
+0x4976 015648 call le_att_get_handle_ptr2 
+0x4977 015649 increase -2 ,contr 
+0x4978 015650 copy contr ,pdata 
+0x4979 015651 store 2 ,mem_le_cur_attlist_start_ptr 
+0x497a 015653 fetcht 2 ,mem_le_search_att_type 
+0x497b 015654 setarg uuid_chrctr_pnp_id 
+0x497c 015655 isub temp ,null 
+0x497d 015656 branch keyboard_le_send_att_read_by_type_res_pnp_id ,zero 
+0x497e 015657 branch le_send_att_read_by_type_response + 8 
+:      015658 keyboard_le_send_att_read_by_type_res_pnp_id:
+0x497f 015659 fetch 1 ,mem_keyboard_le_change_vid_pid_flag 
+0x4980 015660 branch le_send_att_read_by_type_response + 8 ,blank 
+0x4981 015661 call le_att_get_uuid_ptr 
+0x4982 015662 branch le_send_att_error_response_notfound ,blank 
+0x4983 015663 arg mem_keyboard_le_change_vid_pid_flag + 1 ,contr 
+0x4984 015664 force 11 ,pdata 
+0x4985 015665 branch le_send_att_read_by_type_res_not_characteristic + 9 
+:      015667 keyboard_le_parse_att_read_blob_request:
+0x4986 015668 ifetch 2 ,contr 
+0x4987 015669 store 2 ,mem_le_att_offset 
+0x4988 015670 iforce rega 
+0x4989 015671 fetcht 2 ,mem_le_att_handle 
+0x498a 015672 fetch 2 ,mem_le_pairing_handle 
+0x498b 015673 isub temp ,null 
+0x498c 015674 nbranch le_send_att_read_blob_response ,zero 
+0x498d 015675 fetch 2 ,mem_le_att_offset 
+0x498e 015676 sub pdata ,66 ,null 
+0x498f 015677 nbranch keyboard_le_send_att_read_blob_response ,zero 
+0x4990 015679 setarg 23 
+0x4991 015680 copy pdata ,rega 
+0x4992 015681 copy pdata ,regc 
+0x4993 015682 call le_fifo_malloc_tx_l2cap_gatt 
+0x4994 015683 setarg attop_read_blob_response 
+0x4995 015684 istore 1 ,contw 
+0x4996 015685 arg mem_keyboard_blob_response_consumer_customize ,contr 
+0x4997 015686 add regc ,-1 ,loopcnt 
+0x4998 015687 branch memcpy_fast 
+:      015689 keyboard_le_send_att_read_blob_response:
+0x4999 015690 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x499a 015691 bbit1 keyboard_enable_mouse ,le_send_att_read_blob_response 
+0x499b 015692 fetch 2 ,mem_keyboard_le_hid_map 
+0x499c 015693 copy pdata ,contr 
+0x499d 015694 ifetch 2 ,contr 
+0x499e 015695 branch le_send_att_read_blob_response + 3 
+:      015697 keyboard_le_parse_att_read_request:
+0x499f 015698 fetcht 2 ,mem_le_att_handle 
+0x49a0 015699 fetch 1 ,mem_le_configuration 
+0x49a1 015700 bbit1 bit_ble_read_auth ,keyboard_le_send_att_read_response_check_auth 
+:      015702 keyboard_le_send_att_read_response:
+0x49a2 015703 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x49a3 015704 bbit0 keyboard_enable_adc ,keyboard_le_send_att_read_response + 3 
+0x49a4 015705 bbit0 keyboard_enable_le_battery_service_cancel ,keyboard_le_send_att_read_response_next 
+0x49a5 015706 fetch 2 ,mem_le_att_handle 
+0x49a6 015707 beq 0x30 ,le_send_att_error_response_notfound 
+:      015708 keyboard_le_send_att_read_response_next:
+0x49a7 015709 fetch 2 ,mem_le_att_handle 
+0x49a8 015710 beq 0x05 ,keyboard_le_send_att_appearance 
+0x49a9 015711 beq 0x10 ,keyboard_le_send_att_pnp_id 
+:      015712 keyboard_le_send_att_read_response_next_1:
+0x49aa 015713 fetcht 2 ,mem_le_att_handle 
+0x49ab 015714 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x49ac 015715 bbit1 keyboard_enable_mouse ,le_send_att_read_response 
+0x49ad 015716 fetch 2 ,mem_le_pairing_handle 
+0x49ae 015717 isub temp ,null 
+0x49af 015718 nbranch le_send_att_read_response ,zero 
+0x49b0 015719 call le_get_search_max_mtu_data 
+0x49b1 015720 fetcht 2 ,mem_keyboard_le_hid_map 
+0x49b2 015721 copy temp ,contr 
+0x49b3 015722 ifetcht 2 ,contr 
+0x49b4 015723 increase 1 ,temp 
+0x49b5 015724 call not_greater_than 
+0x49b6 015725 branch le_send_att_read_response_less 
+:      015727 keyboard_le_send_att_appearance:
+0x49b7 015728 arg mem_keybord_appearance ,contr 
+0x49b8 015729 force 3 ,pdata 
+0x49b9 015730 branch le_send_att_read_response_less 
+:      015732 keyboard_le_send_att_pnp_id:
+0x49ba 015733 fetch 1 ,mem_keyboard_le_change_vid_pid_flag 
+0x49bb 015734 branch keyboard_le_send_att_read_response_next_1 ,blank 
+0x49bc 015735 arg mem_keyboard_le_change_vid_pid_flag + 1 ,contr 
+0x49bd 015736 force 8 ,pdata 
+0x49be 015737 branch le_send_att_read_response_less 
+:      015739 keyboard_le_send_att_read_response_check_auth:
+0x49bf 015740 fetch 2 ,mem_le_pairing_handle 
+0x49c0 015741 isub temp ,null 
+0x49c1 015742 nbranch keyboard_le_send_att_read_response ,zero 
+0x49c2 015743 call le_check_encrypt_state 
+0x49c3 015744 nbranch keyboard_le_send_att_read_response_next ,user 
+0x49c4 015745 branch le_send_att_read_response_error_insufficient_auth 
+:      015747 keyboard_le_parse_att_write_request:
+0x49c5 015748 copy contr ,rega 
+0x49c6 015749 fetch 2 ,mem_le_l2cap_size 
+0x49c7 015750 add pdata ,-3 ,regb 
+0x49c8 015751 call le_writeatt_cb 
+0x49c9 015752 call keyboard_le_parse_att_write_command + 1 
+0x49ca 015753 branch hid_device_le_parse_att_write_request 
+:      015755 keyboard_le_parse_att_write_command:
+0x49cb 015756 call le_parse_att_write_command 
+0x49cc 015757 fetch 1 ,mem_device_fast_conn_flag 
+0x49cd 015758 beq 0xff ,keyboard_le_fast_conn_led_get 
+0x49ce 015759 fetch 2 ,mem_le_att_handle 
+0x49cf 015760 beq 0x25 ,keyboard_le_led_get 
+0x49d0 015761 rtn 
+:      015762 keyboard_le_fast_conn_led_get:
+0x49d1 015763 fetch 2 ,mem_le_att_handle 
+0x49d2 015764 beq 0x21 ,keyboard_le_led_get 
+0x49d3 015765 rtn 
+:      015767 keyboard_le_led_get:
+0x49d4 015768 fetch 1 ,mem_le_rxbuf + 9 
+0x49d5 015769 store 1 ,mem_keyboard_led_status 
+0x49d6 015770 rtn 
+:      015773 keyboard_usb_mode_start:
+0x49d7 015774 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x49d8 015775 rtnbit0 mouse_enable_usb 
+0x49d9 015776 call keyboard_usb_check_enable 
+0x49da 015777 branch keyboard_usb_interface_check_power_on 
+:      015779 keyboard_usb_check_enable:
+0x49db 015780 fetch 9 ,mem_keyboard_usb_vid_pid 
+0x49dc 015781 store 9 ,mem_usb_vid_pid 
+0x49dd 015782 setarg keyboard_usb_config_param 
+0x49de 015783 store 2 ,mem_cb_usb_config 
+0x49df 015784 jam usb_interface_insert ,mem_usb_vdd_status_current 
+0x49e0 015785 rtn 
+:      015787 keyboard_usb_config_param:
+0x49e1 015788 jam dongle_kb_bind_success ,mem_usb_keyboard_flag 
+0x49e2 015789 jam 0x01 ,mem_usb_tx_interval 
+0x49e3 015790 call usb_tx_interval_config 
+0x49e4 015791 call keyboard_usb_vid_pid_config 
+0x49e5 015792 fetch 1 ,mem_usb_keyboard_flag 
+0x49e6 015793 branch dongle_usb_hid_icon_config + 1 
+:      015795 keyboard_usb_vid_pid_config:
+0x49e7 015796 fetch 1 ,mem_usb_vid_pid 
+0x49e8 015797 rtn blank 
+0x49e9 015798 fetch 1 ,mem_usb_keyboard_flag 
+0x49ea 015799 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+0x49eb 015800 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
+:      015802 keyboard_usb_interface_check_power_on:
+0x49ec 015803 fetch 1 ,mem_usb_vdd_status_current 
+0x49ed 015804 beq usb_interface_insert ,keyboard_usb_insert 
+:      015805 keyboard_usb_vdd_status_store:
+0x49ee 015806 fetch 1 ,mem_usb_vdd_status_current 
+0x49ef 015807 store 1 ,mem_usb_vdd_status_last 
+0x49f0 015808 rtn 
+:      015809 keyboard_usb_insert:
+0x49f1 015810 call keyboard_usb_vdd_status_store 
+0x49f2 015811 setarg 0 
+0x49f3 015812 store 2 ,mem_24g_pair_timeout 
+0x49f4 015813 store 2 ,mem_24g_reconn_timeout 
+0x49f5 015814 jam 0 ,mem_lpm_mode 
+0x49f6 015815 fetch 1 ,mem_usb_wait_updata_timer 
+0x49f7 015816 call usb_init ,blank 
+0x49f8 015817 jam 50 ,mem_usb_wait_updata_timer 
+0x49f9 015818 rtn 
+:      015820 keyboard_usb_isr:
+0x49fa 015821 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x49fb 015822 rtnbit0 keyboard_enable_usb 
+0x49fc 015823 fetch 1 ,mem_device_flag 
+0x49fd 015824 rtnne mode_usb_device 
+0x49fe 015825 branch usb_isr 
+:      015827 keyboard_usb_mode:
+0x49ff 015828 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4a00 015829 rtnbit0 keyboard_enable_usb 
+0x4a01 015830 fetch 1 ,mem_device_flag 
+0x4a02 015831 rtnne mode_usb_device 
+0x4a03 015832 fetch 1 ,core_usb_addr 
+0x4a04 015833 store 1 ,mem_usb_addr 
+0x4a05 015834 rtnbit0 7 
+0x4a06 015835 jam 0 ,mem_usb_wait_updata_timer 
+0x4a07 015836 setarg 0 
+0x4a08 015837 store 2 ,mem_device_no_data_timer 
+0x4a09 015838 call keyboard_24g_stop 
+0x4a0a 015839 call keyboard_stop_bluetooth_mode 
+0x4a0b 015840 call keyboard_motion 
+0x4a0c 015841 nrtn user 
+0x4a0d 015842 fetch 1 ,mem_customer_key 
+0x4a0e 015843 beq 1 ,hid_device_push_keyboard_data_to_usb 
+0x4a0f 015844 branch hid_device_push_mouse_data_to_usb 
+:      015846 keyboard_usb_tx_kb_normal_data:
+0x4a10 015847 jam 0 ,mem_usb_ep1_data 
+0x4a11 015848 arg 9 ,loopcnt 
+0x4a12 015849 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4a13 015850 bbit1 keyboard_enable_magic_keyboard ,usb_tx_kb_normal_data + 4 
+0x4a14 015851 branch usb_tx_kb_normal_data + 2 
+:      015853 keyboard_push_n_key_rollover_key_data_to_usb:
+0x4a15 015854 call dongle_usb_tx_enable_ep2 
+0x4a16 015855 jam usb_ep2_n_key_rollover ,mem_usb_ep2_data 
+0x4a17 015856 setarg kb_n_key_rollover_report_id 
+0x4a18 015857 store 1 ,mem_usb_kb_n_key_rollvoer_data 
+0x4a19 015858 arg mem_keyboard_n_key_rollover_data + 1 ,contr 
+0x4a1a 015859 arg mem_usb_kb_n_key_rollvoer_data + 1 ,contw 
+0x4a1b 015860 arg 14 ,loopcnt 
+0x4a1c 015861 branch memcpy 
+:      015864 keyboard_ui_ipc_send_event:
+0x4a1d 015865 fetch 1 ,mem_fifo_temp 
+0x4a1e 015866 arg 8 ,loopcnt 
+0x4a1f 015867 arg mem_ipc_fifo_bt2c51 ,contr 
+:      015868 ui_ipc_fifo_check:
+0x4a20 015869 ifetcht 1 ,contr 
+0x4a21 015870 isub temp ,null 
+0x4a22 015871 rtn zero 
+0x4a23 015872 loop ui_ipc_fifo_check 
+0x4a24 015873 branch ui_ipc_send_event + 3 
+:      015875 keyboard_enable_function_flag:
+0x4a25 015876 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4a26 015877 qset1 pdata 
+0x4a27 015878 store keyboard_flag_len ,mem_keyboard_flag 
+0x4a28 015879 rtn 
+:      015880 keyboard_disable_function_flag:
+0x4a29 015881 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x4a2a 015882 qset0 pdata 
+0x4a2b 015883 store keyboard_flag_len ,mem_keyboard_flag 
+0x4a2c 015884 rtn 
+:      015886 keyboard_bt_discovery_button_down_enable:
+0x4a2d 015887 arg keyboard_bt_discovery_button_down_flag ,queue 
+0x4a2e 015888 branch keyboard_enable_function_flag 
+:      015889 keyboard_bt_discovery_button_down_disable:
+0x4a2f 015890 arg keyboard_bt_discovery_button_down_flag ,queue 
+0x4a30 015891 branch keyboard_disable_function_flag 
+:      015896 module_init:
+0x4a31 015897 branch module_lpm_uart_init ,wake 
+0x4a32 015899 call le_modified_name 
+0x4a33 015900 setarg module_process_idle 
+0x4a34 015901 store 2 ,mem_cb_idle_process 
+0x4a35 015902 setarg module_process_bb_event 
+0x4a36 015903 store 2 ,mem_cb_bb_event_process 
+0x4a37 015904 setarg module_lpm_lock 
+0x4a38 015905 store 2 ,mem_cb_check_wakelock 
+0x4a39 015906 setarg module_hci_cmd_transmit_le_notify 
+0x4a3a 015907 store 2 ,mem_cb_ble_transmit 
+0x4a3b 015908 setarg module_le_receive_data 
+0x4a3c 015909 store 2 ,mem_cb_att_write 
+0x4a3d 015910 setarg module_bb_event_timer 
+0x4a3e 015911 store 2 ,mem_cb_event_timer 
+0x4a3f 015913 bpatch patch0d_4 ,mem_patch0d 
+0x4a40 015914 call module_lpm_uart_init 
+0x4a41 015915 call module_gpio_init 
+0x4a42 015916 branch module_hci_event_enter_standby_mode 
+:      015918 module_lpm_uart_init:
+0x4a43 015919 fetch 1 ,core_uart_ctrl 
+0x4a44 015920 set0 bit_uart_control_enable ,pdata 
+0x4a45 015921 store 1 ,core_uart_ctrl 
+0x4a46 015922 fetch 8 ,mem_module_uart_rx_buffer 
+0x4a47 015923 call uarta_init_dma_mem 
+0x4a48 015924 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+0x4a49 015925 call uarta_init_baud_rate 
+0x4a4a 015926 call uart_clock_select_main_freq_crystal 
+0x4a4b 015927 jam gpcfg_uart_txd ,core_gpio_conf + hci_uart_tx_gpio_num 
+0x4a4c 015928 jam gpcfg_uart_rxd | gpcfg_pullup ,core_gpio_conf + hci_uart_rx_gpio_num 
+0x4a4d 015929 jam gpcfg_uart_rts ,core_gpio_conf + hci_uart_rts_gpio_num 
+0x4a4e 015930 jam gpcfg_uart_cts ,core_gpio_conf + hci_uart_cts_gpio_num 
+0x4a4f 015932 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+0x4a50 015933 fetch 2 ,mem_module_flag 
+0x4a51 015934 isolate1 module_flag_uart_flow_control ,pdata 
+0x4a52 015935 setflag true ,bit_uart_control_flow_control ,temp 
+0x4a53 015936 storet 1 ,core_uart_ctrl 
+0x4a54 015937 rtn 
+:      015944 module_gpio_init:
+0x4a55 015945 fetcht 1 ,mem_module_connect_state_gpio 
+0x4a56 015946 call gpio_config_output 
+0x4a57 015947 call module_set_conn_pin_low 
+0x4a58 015948 fetcht 1 ,mem_module_wake_up_gpio 
+0x4a59 015949 branch gpio_config_input 
+:      015951 module_lpm_lock:
+0x4a5a 015952 fetcht 1 ,mem_module_wake_up_gpio 
+0x4a5b 015953 call gpio_get_bit 
+0x4a5c 015954 nbranch app_put_lpm_wake_lock ,true 
+0x4a5d 015955 branch app_get_lpm_wake_lock 
+:      015958 module_process_idle:
+0x4a5e 015959 call l2cap_malloc_is_fifo_full 
+0x4a5f 015960 nrtn blank 
+0x4a60 015961 branch module_process_check_hci_command_complete 
+:      015964 module_process_bb_event:
+0x4a61 015965 copy regc ,pdata 
+0x4a62 015966 beq bt_evt_le_connected ,module_process_le_conn 
+0x4a63 015967 beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
+0x4a64 015968 beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
+0x4a65 015969 beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
+0x4a66 015970 beq bt_evt_le_start_enc ,module_hci_event_start_enc 
+0x4a67 015971 beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
+0x4a68 015972 beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
+0x4a69 015973 beq bt_evt_store_nvram ,module_hci_event_store_device 
+0x4a6a 015974 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
+0x4a6b 015975 beq bt_evt_le_update_phy ,module_process_ble_update_phy 
+0x4a6c 015976 beq bt_evt_le_get_passkey ,module_hci_event_passkey_entry_mode 
+0x4a6d 015977 beq bt_evt_le_gkey_generate ,module_hci_event_gkey_generate 
+0x4a6e 015978 rtn 
+:      015982 module_process_bb_even_le_disconn:
+0x4a6f 015983 call le_clr_config_more_data 
+0x4a70 015984 jam 0 ,mem_module_hci_notify_len 
+0x4a71 015985 call module_disconn_start 
+0x4a72 015986 branch module_hci_event_le_disconnect 
+:      015991 module_process_le_conn:
+0x4a73 015993 call module_conn_start 
+0x4a74 015994 fetch 1 ,mem_module_le_lpm_mult 
+0x4a75 015995 store 1 ,mem_lpm_mult 
+0x4a76 015996 branch module_hci_event_le_connect 
+:      016000 module_disconn_start:
+0x4a77 016001 call module_start_adv_discovery_by_command 
+0x4a78 016002 branch module_set_conn_pin_high 
+:      016005 module_process_ble_ltk_lost:
+0x4a79 016006 call le_send_reject_ind 
+0x4a7a 016007 branch le_send_smp_security_request 
+:      016009 module_process_ble_update_phy:
+0x4a7b 016010 branch module_hci_event_le_update_phy 
+:      016013 module_set_conn_pin_high:
+0x4a7c 016014 fetcht 1 ,mem_module_connect_state_gpio 
+0x4a7d 016015 branch gpio_out_active 
+:      016017 module_conn_start:
+0x4a7e 016018 call module_stop_adv_discovery 
+0x4a7f 016019 branch module_set_conn_pin_low 
+:      016021 module_stop_adv_discovery:
+0x4a80 016022 fetch 1 ,mem_module_state 
+0x4a81 016023 isolate1 moudle_state_ble_bit ,pdata 
+0x4a82 016024 call app_ble_stop_adv ,true 
+0x4a83 016025 rtn 
+:      016026 module_set_conn_pin_low:
+0x4a84 016027 fetcht 1 ,mem_module_connect_state_gpio 
+0x4a85 016028 branch gpio_out_inactive 
+:      016031 module_process_check_hci_command_complete:
+0x4a86 016032 fetch 1 ,core_uart_status 
+0x4a87 016033 rtnbit1 uart_status_rx_fifo_empty 
+0x4a88 016034 call uarta_prepare_rx 
+0x4a89 016035 ifetch 1 ,contru 
+0x4a8a 016036 bne 0x01 ,module_hci_in_excp 
+0x4a8b 016037 fetch 2 ,core_uart_rxitems 
+0x4a8c 016038 sub pdata ,2 ,null 
+0x4a8d 016039 rtn positive 
+0x4a8e 016040 ifetch 1 ,contru 
+0x4a8f 016041 store 1 ,mem_module_uart_opcode 
+0x4a90 016042 ifetcht 1 ,contru 
+0x4a91 016043 copy contru ,rega 
+0x4a92 016044 storet 1 ,mem_module_uart_len 
+0x4a93 016045 add temp ,3 ,temp 
+0x4a94 016046 fetch 2 ,core_uart_rxitems 
+0x4a95 016047 isub temp ,temp 
+0x4a96 016048 nrtn positive 
+0x4a97 016049 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x4a98 016050 call module_hci_cmd_control 
+0x4a99 016051 fetch 1 ,mem_module_temp_nl_discard_packet 
+0x4a9a 016052 rtneq hci_not_discard_packet 
+0x4a9b 016053 branch module_hci_dicard_packet 
+:      016055 module_hci_in_excp:
+0x4a9c 016056 call delay_10ms 
+0x4a9d 016057 call module_hci_event_invalid_packet 
+0x4a9e 016058 branch module_hci_release_except 
+:      016061 module_hci_release_except:
+0x4a9f 016062 bpatch patch0d_5 ,mem_patch0d 
+0x4aa0 016063 call uarta_prepare_rx 
+0x4aa1 016064 fetch 2 ,core_uart_rxitems 
+0x4aa2 016065 rtn blank 
+0x4aa3 016066 iadd contru ,contru 
+0x4aa4 016067 branch module_hci_dicard_bytes 
+:      016069 module_hci_dicard_packet:
+0x4aa5 016070 call uarta_prepare_rx 
+0x4aa6 016071 increase 2 ,contu 
+0x4aa7 016072 ifetch 1 ,contu 
+0x4aa8 016073 iadd contu ,contu 
+:      016074 module_hci_dicard_bytes:
+0x4aa9 016075 branch uarta_rxdone 
+:      016078 module_hci_cmd_control:
+0x4aaa 016079 bpatch patch0d_6 ,mem_patch0d 
+0x4aab 016080 fetch 1 ,mem_module_uart_opcode 
+0x4aac 016081 beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
+0x4aad 016082 beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
+0x4aae 016083 beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
+0x4aaf 016084 beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
+0x4ab0 016085 beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
+0x4ab1 016087 beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
+0x4ab2 016088 beq hci_cmd_version_req ,module_hci_cmd_version_request 
+0x4ab3 016089 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
+0x4ab4 016090 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
+0x4ab5 016092 beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
+0x4ab6 016093 beq hci_cmd_power_req ,module_hci_cmd_power_request 
+0x4ab7 016094 beq hci_cmd_power_set ,module_hci_cmd_power_set 
+0x4ab8 016095 beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
+0x4ab9 016098 beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
+0x4aba 016100 beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
+0x4abb 016101 beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
+0x4abc 016102 beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
+0x4abd 016103 beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
+0x4abe 016104 beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
+0x4abf 016105 beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
+0x4ac0 016106 beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
+0x4ac1 016108 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
+0x4ac2 016110 beq hci_cmd_delete_customize_service ,module_hci_cmd_delete_customize_service 
+0x4ac3 016111 beq hci_cmd_add_service_uuid ,module_hci_cmd_add_service_uuid 
+0x4ac4 016112 beq hci_cmd_add_characteristic_uuid ,module_hci_cmd_add_characteristic_uuid 
+0x4ac5 016113 beq hci_cmd_passkey_entry_input ,module_hci_cmd_le_passkey_entry_input 
+0x4ac6 016124 branch module_hci_event_receive_invalid_cmd 
+:      016130 module_hci_cmd_set_le_addr:
+0x4ac7 016131 fetch 1 ,mem_module_uart_len 
+0x4ac8 016132 bne 6 ,module_hci_event_receive_invalid_cmd 
+0x4ac9 016133 ifetch 6 ,contru 
+0x4aca 016134 store 6 ,mem_le_lap 
+0x4acb 016135 branch module_hci_event_receive_valid_cmd 
+:      016139 module_hci_cmd_set_visibility:
+0x4acc 016140 fetch 1 ,mem_module_uart_len 
+0x4acd 016141 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x4ace 016142 ifetcht 1 ,contru 
+0x4acf 016143 storet 1 ,mem_module_bluetooth_stauts_by_command 
+0x4ad0 016144 call module_hci_event_receive_valid_cmd 
+0x4ad1 016145 fetch 2 ,mem_ui_state_map 
+0x4ad2 016146 rtnbit1 ui_state_ble_connected 
+:      016148 module_start_adv_discovery_by_command:
+:      016149 moudle_start_adv_by_command:
+0x4ad3 016150 fetch 1 ,mem_module_state 
+0x4ad4 016151 isolate1 moudle_state_ble_bit ,pdata 
+0x4ad5 016152 nrtn true 
+0x4ad6 016153 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
+0x4ad7 016154 isolate1 2 ,temp 
+0x4ad8 016155 branch app_ble_start_adv ,true 
+0x4ad9 016156 branch app_ble_stop_adv 
+:      016161 module_hci_cmd_set_le_name:
+0x4ada 016162 arg 29 ,pdata 
+0x4adb 016163 arg mem_le_name_len ,contw 
+0x4adc 016164 call module_hci_cmd_receive_store_mem 
+0x4add 016165 branch le_modified_name 
+:      016170 module_hci_cmd_receive_le_data:
+0x4ade 016171 fetch 2 ,mem_ui_state_map 
+0x4adf 016172 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+0x4ae0 016173 call module_check_ble_encrypt_state 
+0x4ae1 016174 branch module_hci_event_receive_invalid_cmd ,user 
+0x4ae2 016175 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+0x4ae3 016176 fetch 2 ,mem_module_flag 
+0x4ae4 016177 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
+0x4ae5 016178 fetch 1 ,mem_module_hci_notify_len 
+0x4ae6 016179 nrtn blank 
+0x4ae7 016180 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x4ae8 016181 ifetch 2 ,contru 
+0x4ae9 016182 store 2 ,mem_module_hci_notify_handle 
+0x4aea 016183 storer contru ,2 ,mem_module_hci_nofiy_addr 
+0x4aeb 016184 fetch 1 ,mem_module_uart_len 
+0x4aec 016185 pincrease -2 
+0x4aed 016186 nbranch module_hci_event_receive_invalid_cmd ,positive 
+0x4aee 016187 branch module_hci_event_receive_invalid_cmd ,zero 
+0x4aef 016188 store 1 ,mem_module_hci_notify_len 
+0x4af0 016189 fetcht 2 ,mem_module_hci_notify_handle 
+0x4af1 016190 increase -1 ,temp 
+0x4af2 016191 call le_att_get_handle_ptr2 
+0x4af3 016192 branch module_hci_cmd_transmit_handle_error ,blank 
+0x4af4 016193 ifetcht 4 ,contr 
+0x4af5 016194 setarg 0x01280302 
+0x4af6 016195 isub temp ,null 
+0x4af7 016196 nbranch module_hci_cmd_transmit_handle_error ,zero 
+0x4af8 016197 ifetch 1 ,contr 
+0x4af9 016198 store 1 ,mem_module_hci_notify_type 
+0x4afa 016199 and_into 0x30 ,pdata 
+0x4afb 016200 branch module_hci_cmd_transmit_handle_error ,blank 
+0x4afc 016201 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+0x4afd 016202 call le_set_config_more_data 
+0x4afe 016203 call module_hci_cmd_transmit_le_notify 
+0x4aff 016204 call module_hci_cmd_transmit_le_notify 
+0x4b00 016205 call module_hci_cmd_transmit_le_notify 
+0x4b01 016206 fetch 2 ,mem_module_flag 
+0x4b02 016207 rtnbit0 module_flag_ble_data_finish 
+:      016208 module_hci_cmd_receive_le_data_finish:
+0x4b03 016209 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x4b04 016210 call module_clear_le_tx_data_flag 
+0x4b05 016211 branch module_hci_event_receive_valid_cmd 
+:      016213 module_hci_cmd_transmit_handle_error:
+0x4b06 016214 jam 0 ,mem_module_hci_notify_len 
+0x4b07 016215 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+0x4b08 016216 call module_clear_le_tx_data_flag 
+0x4b09 016217 branch module_hci_event_receive_invalid_cmd 
+:      016219 module_hci_cmd_transmit_le_notify:
+0x4b0a 016220 fetch 1 ,mem_module_hci_notify_len 
+0x4b0b 016221 rtn blank 
+0x4b0c 016222 call le_fifo_check_nearly_full 
+0x4b0d 016223 nrtn blank 
+0x4b0e 016224 call module_get_le_remote_mtu 
+0x4b0f 016225 bpatch patch0d_7 ,mem_patch0d 
+0x4b10 016226 fetch 2 ,mem_le_local_mtu 
+0x4b11 016227 call not_greater_than 
+0x4b12 016228 copy pdata ,temp 
+0x4b13 016229 fetch 1 ,mem_le_l2cap_att_states 
+0x4b14 016230 rtnbit1 ble_l2cap_recv_confirmation_packet 
+0x4b15 016231 add temp ,-3 ,pdata 
+0x4b16 016232 arg 251 ,temp 
+0x4b17 016233 call not_greater_than 
+0x4b18 016234 fetcht 1 ,mem_module_hci_notify_len 
+0x4b19 016235 call not_greater_than 
+0x4b1a 016236 copy pdata ,rega 
+0x4b1b 016237 copy temp ,pdata 
+0x4b1c 016238 isub rega ,pdata 
+0x4b1d 016239 store 1 ,mem_module_hci_notify_len 
+0x4b1e 016240 call module_hci_cmd_transmit_le_notify_malloc_l2cap 
+0x4b1f 016241 fetch 2 ,mem_module_hci_nofiy_addr 
+0x4b20 016242 copy pdata ,contru 
+0x4b21 016243 copy rega ,loopcnt 
+0x4b22 016244 call uart_copy_rx_bytes_fast 
+0x4b23 016245 copy contru ,pdata 
+0x4b24 016246 store 2 ,mem_module_hci_nofiy_addr 
+0x4b25 016247 fetch 1 ,mem_module_hci_notify_len 
+0x4b26 016248 nrtn blank 
+0x4b27 016249 branch module_set_le_tx_data_flag 
+:      016251 module_hci_cmd_transmit_le_notify_malloc_l2cap:
+0x4b28 016252 fetcht 2 ,mem_module_hci_notify_handle 
+0x4b29 016253 fetch 1 ,mem_module_hci_notify_type 
+0x4b2a 016254 bbit1 bit_characteristic_indicate ,le_att_malloc_tx_indication 
+0x4b2b 016255 bbit1 bit_characteristic_notify ,le_att_malloc_tx_notify 
+0x4b2c 016256 rtn 
+:      016260 module_get_le_remote_mtu:
+0x4b2d 016261 arg 0x17 ,temp 
+0x4b2e 016262 fetch 2 ,mem_module_flag 
+0x4b2f 016263 rtnbit1 module_flag_ble_send_mtu23 
+0x4b30 016264 fetcht 2 ,mem_le_remote_mtu 
+0x4b31 016265 rtn 
+:      016267 module_check_ble_encrypt_state:
+0x4b32 016268 fetch 2 ,mem_module_flag 
+0x4b33 016269 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
+0x4b34 016270 branch disable_user 
+:      016274 module_hci_cmd_inquire_status:
+0x4b35 016275 branch module_hci_event_status_res 
+:      016293 module_hci_cmd_set_uart_baud:
+0x4b36 016294 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x4b37 016295 call string2dec_from_uart 
+0x4b38 016296 call uart_calc_baud_rate_config 
+0x4b39 016297 store uart_baud_len ,mem_module_uarta_baud_rate 
+0x4b3a 016298 call module_hci_event_receive_valid_cmd 
+0x4b3b 016299 call wait_uarttx 
+0x4b3c 016300 fetch uart_baud_len ,mem_module_uarta_baud_rate 
+0x4b3d 016301 branch uarta_init_baud_rate 
+:      016305 module_hci_cmd_version_request:
+0x4b3e 016306 arg 2 ,rega 
+0x4b3f 016307 arg mem_soft_version_num ,regb 
+0x4b40 016308 arg 0 ,temp 
+0x4b41 016309 branch module_hci_event_set_cmd 
+:      016314 module_hci_cmd_ble_disconnect:
+0x4b42 016315 fetch 2 ,mem_ui_state_map 
+0x4b43 016316 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+:      016317 module_hci_cmd_ble_disconnect_doing:
+0x4b44 016318 call module_hci_event_receive_valid_cmd 
+0x4b45 016319 branch app_ble_disconnect 
+:      016325 module_hci_cmd_set_nvram:
+0x4b46 016326 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x4b47 016327 fetch 2 ,mem_nv_data_ptr 
+0x4b48 016328 icopy contw 
+0x4b49 016329 call uart_copy_rx_bytes_fast 
+0x4b4a 016330 branch module_hci_event_receive_valid_cmd 
+:      016341 module_hci_cmd_auto_adv:
+0x4b4b 016342 arg 0x40 ,loopcnt 
+0x4b4c 016343 arg mem_le_adv_data_len ,contw 
+0x4b4d 016344 call clear_mem 
+0x4b4e 016345 setarg 0 
+0x4b4f 016346 store 1 ,mem_regb 
+0x4b50 016347 copy rega ,contru 
+:      016348 module_hci_cmd_auto_adv_loop:
+0x4b51 016349 copy contru ,pdata 
+0x4b52 016350 store 2 ,mem_regc 
+0x4b53 016351 call module_hci_cmd_auto_adv_adv_analys 
+0x4b54 016353 fetch 1 ,mem_regb 
+0x4b55 016354 fetcht 1 ,mem_temp 
+0x4b56 016355 increase 1 ,temp 
+0x4b57 016356 iadd temp ,pdata 
+0x4b58 016357 store 1 ,mem_regb 
+0x4b59 016359 sub pdata ,31 ,null 
+0x4b5a 016360 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
+:      016361 module_hci_cmd_auto_adv_store_adv:
+0x4b5b 016362 fetcht 1 ,mem_le_adv_data_len 
+0x4b5c 016363 setarg mem_le_adv_data 
+0x4b5d 016364 iadd temp ,pdata 
+0x4b5e 016365 store 2 ,mem_contw 
+0x4b5f 016366 fetcht 1 ,mem_temp 
+0x4b60 016367 increase 1 ,temp 
+0x4b61 016368 fetch 1 ,mem_le_adv_data_len 
+0x4b62 016369 iadd temp ,pdata 
+0x4b63 016370 store 1 ,mem_le_adv_data_len 
+0x4b64 016371 branch module_hci_cmd_auto_adv_store_common 
+:      016372 module_hci_cmd_auto_adv_store_scan:
+0x4b65 016373 fetcht 1 ,mem_le_scan_data_len 
+0x4b66 016374 setarg mem_le_scan_data 
+0x4b67 016375 iadd temp ,pdata 
+0x4b68 016376 store 2 ,mem_contw 
+0x4b69 016377 fetcht 1 ,mem_temp 
+0x4b6a 016378 increase 1 ,temp 
+0x4b6b 016379 fetch 1 ,mem_le_scan_data_len 
+0x4b6c 016380 iadd temp ,pdata 
+0x4b6d 016381 store 1 ,mem_le_scan_data_len 
+:      016382 module_hci_cmd_auto_adv_store_common:
+0x4b6e 016383 fetch 2 ,mem_contw 
+0x4b6f 016384 copy pdata ,contw 
+0x4b70 016385 fetch 2 ,mem_regc 
+0x4b71 016386 copy pdata ,contru 
+0x4b72 016388 copy temp ,loopcnt 
+0x4b73 016389 call uart_copy_rx_bytes_fast 
+0x4b74 016391 fetch 1 ,mem_module_uart_len 
+0x4b75 016392 fetcht 1 ,mem_regb 
+0x4b76 016393 isub temp ,null 
+0x4b77 016394 nbranch module_hci_cmd_auto_adv_loop ,zero 
+0x4b78 016395 branch module_hci_event_receive_valid_cmd 
+:      016398 module_hci_cmd_auto_adv_adv_analys:
+0x4b79 016399 ifetch 1 ,contru 
+0x4b7a 016400 store 1 ,mem_temp 
+0x4b7b 016401 ifetch 1 ,contru 
+0x4b7c 016402 store 1 ,mem_rega 
+0x4b7d 016403 rtn 
+:      016407 module_hci_cmd_power_request:
+0x4b7e 016408 arg 0 ,temp 
+0x4b7f 016409 arg 2 ,rega 
+0x4b80 016410 fetch 2 ,mem_module_vdd_quotient 
+0x4b81 016411 store 2 ,mem_event_cmd_response_content 
+0x4b82 016412 arg mem_event_cmd_response_content ,regb 
+0x4b83 016413 branch module_hci_event_set_cmd 
+:      016417 module_hci_cmd_power_set:
+0x4b84 016418 fetch 1 ,mem_module_uart_len 
+0x4b85 016419 bne 1 ,module_hci_event_receive_invalid_cmd 
+0x4b86 016420 ifetch 1 ,contru 
+0x4b87 016421 store 1 ,mem_module_read_vdd_flag 
+0x4b88 016422 setarg 0x00 
+0x4b89 016423 store 2 ,mem_module_vdd_quotient 
+0x4b8a 016424 branch module_hci_event_receive_valid_cmd 
+:      016428 module_hci_cmd_passkey_entry:
+0x4b8b 016429 fetch 1 ,mem_module_uart_len 
+0x4b8c 016430 bne 4 ,module_hci_event_receive_invalid_cmd 
+0x4b8d 016431 fetch 2 ,mem_ui_state_map 
+0x4b8e 016432 bbit1 ui_state_ble_connected ,module_hci_cmd_le_passkey_entry_input 
+0x4b8f 016433 branch module_hci_event_receive_invalid_cmd 
+:      016478 module_hci_cmd_le_set_pairing_mode:
+0x4b90 016479 ifetch 1 ,contru 
+0x4b91 016480 copy pdata ,temp 
+0x4b92 016481 beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
+0x4b93 016482 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
+0x4b94 016483 beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
+0x4b95 016484 beq le_pairing_mode_secure_connect_passkey_res_input ,module_le_set_pairing_mode_secure_passkey_res_input 
+0x4b96 016485 store 1 ,mem_le_pairing_mode 
+0x4b97 016486 call sc_reset 
+0x4b98 016487 call le_secure_connection_disable 
+0x4b99 016488 fetch 1 ,mem_le_pairing_mode 
+0x4b9a 016489 beq le_pairing_mode_none ,module_le_set_no_pairing 
+0x4b9b 016490 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
+0x4b9c 016491 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
+0x4b9d 016492 beq le_pairing_mode_lagacy_passkey_res_input ,module_le_set_pairing_mode_lagacy_passkey_res_input 
+0x4b9e 016493 branch module_hci_event_receive_invalid_cmd 
+:      016495 module_le_set_pairing_mode_secure_justwork:
+0x4b9f 016496 storet 1 ,mem_le_pairing_mode 
+0x4ba0 016497 call le_secure_connection_enable 
+0x4ba1 016498 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x4ba2 016499 branch module_le_set_noinputnooutput 
+:      016500 module_le_set_pairing_mode_secure_numeric:
+0x4ba3 016501 storet 1 ,mem_le_pairing_mode 
+0x4ba4 016502 call le_secure_connection_enable 
+0x4ba5 016503 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x4ba6 016504 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+0x4ba7 016505 branch module_hci_event_receive_valid_cmd 
+:      016506 module_le_set_pairing_mode_secure_passkey:
+0x4ba8 016507 storet 1 ,mem_le_pairing_mode 
+0x4ba9 016508 call le_secure_connection_enable 
+0x4baa 016509 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x4bab 016510 branch module_le_set_displayonly 
+:      016511 module_le_set_pairing_mode_secure_passkey_res_input:
+0x4bac 016512 storet 1 ,mem_le_pairing_mode 
+0x4bad 016513 call le_secure_connection_enable 
+0x4bae 016514 jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+0x4baf 016515 branch module_le_set_keboadonly 
+:      016518 module_le_set_no_pairing:
+0x4bb0 016519 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+:      016520 module_le_set_noinputnooutput:
+0x4bb1 016521 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+0x4bb2 016522 branch module_hci_event_receive_valid_cmd 
+:      016523 module_le_set_pairing_mode_lagacy_just_work:
+0x4bb3 016524 jam flag_le_bonding_no_mitm ,mem_le_pres_auth 
+0x4bb4 016525 branch module_le_set_noinputnooutput 
+:      016526 module_le_set_pairing_mode_lagacy_passkey:
+0x4bb5 016527 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x4bb6 016528 branch module_le_set_displayonly 
+:      016529 module_le_set_pairing_mode_lagacy_passkey_res_input:
+0x4bb7 016530 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+0x4bb8 016531 branch module_le_set_keboadonly 
+:      016532 module_le_set_keboadonly:
+0x4bb9 016533 jam flag_iocap_keyboardonly ,mem_le_pres_iocap 
+0x4bba 016534 branch module_hci_event_receive_valid_cmd 
+:      016535 module_le_set_displayonly:
+0x4bbb 016536 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+0x4bbc 016537 branch module_hci_event_receive_valid_cmd 
+:      016548 module_hci_cmd_le_set_scan_data:
+0x4bbd 016549 arg 31 ,pdata 
+0x4bbe 016550 arg mem_le_scan_data_len ,contw 
+0x4bbf 016551 branch module_hci_cmd_receive_store_mem 
+:      016553 module_hci_cmd_receive_store_mem:
+0x4bc0 016554 fetchr loopcnt ,1 ,mem_module_uart_len 
+0x4bc1 016555 isub loopcnt ,null 
+0x4bc2 016556 nbranch module_hci_event_receive_invalid_cmd ,positive 
+0x4bc3 016557 istorer loopcnt ,1 ,contw 
+0x4bc4 016558 call uart_copy_rx_bytes_fast 
+0x4bc5 016559 branch module_hci_event_receive_valid_cmd 
+:      016563 module_hci_cmd_le_send_conn_update_req:
+0x4bc6 016564 fetch 2 ,mem_ui_state_map 
+0x4bc7 016565 bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+0x4bc8 016566 fetch 1 ,mem_module_uart_len 
+0x4bc9 016567 bne 0x08 ,module_hci_event_receive_invalid_cmd 
+0x4bca 016568 ifetch 8 ,contru 
+0x4bcb 016569 store 8 ,mem_le_interval_min 
+0x4bcc 016570 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0x4bcd 016571 call ui_ipc_send_cmd 
+0x4bce 016572 branch module_hci_event_receive_valid_cmd 
+:      016576 module_hci_cmd_set_le_adv_parameter:
+0x4bcf 016577 ifetch 2 ,contru 
+0x4bd0 016578 store 2 ,mem_le_adv_interval 
+0x4bd1 016579 storet 1 ,mem_lpm_overhead 
+0x4bd2 016580 iadd temp ,pdata 
+0x4bd3 016581 store 2 ,mem_lpm_interval 
+0x4bd4 016582 branch module_hci_event_receive_valid_cmd 
+:      016586 module_hci_cmd_le_start_pairing:
+0x4bd5 016587 fetch 1 ,mem_le_pairing_mode 
+0x4bd6 016588 branch module_hci_event_receive_invalid_cmd ,blank 
+0x4bd7 016589 fetch 1 ,mem_le_pairing_state 
+0x4bd8 016590 bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
+0x4bd9 016591 fetch 1 ,mem_le_enc_state 
+0x4bda 016592 bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
+0x4bdb 016593 call check_51cmd_le_smp_sec_req 
+0x4bdc 016594 branch module_hci_event_receive_valid_cmd 
+:      016598 module_hci_cmd_set_wake_gpio:
+0x4bdd 016599 fetch 1 ,mem_module_uart_len 
+0x4bde 016600 bne 5 ,module_hci_event_receive_invalid_cmd 
+0x4bdf 016601 ifetch 1 ,contru 
+0x4be0 016602 store 1 ,mem_module_mcu_wake_pin 
+0x4be1 016603 ifetch 4 ,contru 
+0x4be2 016604 store 4 ,mem_module_mcu_wake_delay_us 
+0x4be3 016605 fetcht 1 ,mem_module_mcu_wake_pin 
+0x4be4 016606 call gpio_config_output 
+0x4be5 016607 call module_set_mcu_wake_pin_low 
+0x4be6 016608 branch module_hci_event_receive_valid_cmd 
+:      016612 module_hci_cmd_set_tx_power:
+0x4be7 016613 fetch 1 ,mem_module_uart_len 
+0x4be8 016614 bne 0x01 ,module_hci_event_receive_invalid_cmd 
+0x4be9 016615 ifetch 1 ,contru 
+0x4bea 016616 store 1 ,mem_tx_power 
+0x4beb 016617 branch module_hci_event_receive_valid_cmd 
+:      016621 module_hci_cmd_le_confirm_gkey:
+0x4bec 016622 ifetch 1 ,contru 
+0x4bed 016623 beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
+0x4bee 016624 fetch 1 ,mem_le_secure_connect_state 
+0x4bef 016625 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
+0x4bf0 016626 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
+0x4bf1 016627 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
+0x4bf2 016628 branch module_hci_event_receive_invalid_cmd 
+:      016629 module_hci_cmd_le_confirm_gkey_ok:
+0x4bf3 016630 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
+0x4bf4 016631 branch module_hci_event_receive_valid_cmd 
+:      016633 module_hci_cmd_le_confirm_gkey_fail:
+0x4bf5 016634 call le_send_pairing_confirm_value_failed 
+0x4bf6 016635 branch module_hci_event_receive_valid_cmd 
+:      016641 module_hci_cmd_reset_chip:
+0x4bf7 016642 call module_hci_event_receive_valid_cmd 
+0x4bf8 016643 call wait_uarttx 
+0x4bf9 016644 jam 0x01 ,core_reset 
+0x4bfa 016645 branch assert 
+:      016670 module_hci_cmd_delete_customize_service:
+0x4bfb 016671 arg 0x0001 ,temp 
+0x4bfc 016672 call le_att_get_handle_ptr2 
+0x4bfd 016673 add contr ,-2 ,contw 
+0x4bfe 016674 setarg 0x0000 
+0x4bff 016675 istore 2 ,contw 
+0x4c00 016676 branch module_hci_event_receive_valid_cmd 
+:      016680 module_hci_cmd_add_service_uuid:
+0x4c01 016681 call module_hci_cmd_add_service_uuid_set_uuid 
+0x4c02 016682 call uart_copy_rx_bytes_len_data 
+0x4c03 016683 setarg 0x0000 
+0x4c04 016684 istore 2 ,contw 
+0x4c05 016685 branch module_hci_event_uuid_handle 
+:      016690 module_hci_cmd_add_characteristic_uuid:
+0x4c06 016691 ifetch 1 ,contru 
+0x4c07 016692 call module_hci_cmd_add_characteristic_uuid_set_handle 
+0x4c08 016693 call module_hci_cmd_add_characteristic_uuid_set_uuid 
+0x4c09 016694 branch module_hci_event_uuid_handle 
+:      016697 module_hci_cmd_add_service_uuid_set_uuid:
+0x4c0a 016698 call le_att_creat_new_handle 
+0x4c0b 016699 setarg 0x280002 
+0x4c0c 016700 istore 3 ,contw 
+0x4c0d 016701 rtn 
+:      016704 module_hci_cmd_add_characteristic_uuid_set_handle:
+0x4c0e 016705 store 1 ,mem_pdatatemp 
+0x4c0f 016706 call le_att_creat_new_handle 
+0x4c10 016707 setarg 0x01280302 
+0x4c11 016708 istore 4 ,contw 
+0x4c12 016709 fetch 1 ,mem_pdatatemp 
+0x4c13 016710 istore 3 ,contw 
+0x4c14 016711 rtn 
+:      016714 module_hci_cmd_add_characteristic_uuid_set_uuid:
+0x4c15 016715 call le_att_get_last_handle 
+0x4c16 016716 ifetch 1 ,contru 
+0x4c17 016717 and pdata ,0x1f ,loopcnt 
+0x4c18 016718 copy pdata ,rega 
+0x4c19 016719 isolate1 bit_of_write_authenticated ,rega 
+0x4c1a 016720 setflag true ,bit_of_att_handle_write_authenticated ,temp 
+0x4c1b 016721 isolate1 bit_of_read_authenticated ,rega 
+0x4c1c 016722 setflag true ,bit_of_att_handle_read_authenticated ,temp 
+0x4c1d 016723 istoret 2 ,contw 
+0x4c1e 016724 copy loopcnt ,pdata 
+0x4c1f 016725 istore 1 ,contw 
+0x4c20 016726 call uart_copy_rx_bytes 
+0x4c21 016727 call uart_copy_rx_bytes_len_data 
+0x4c22 016728 setarg 0 
+0x4c23 016729 istore 2 ,contw 
+0x4c24 016730 and temp ,0xff ,temp 
+0x4c25 016731 increase -1 ,temp 
+0x4c26 016732 call le_att_get_handle_ptr2 
+0x4c27 016733 add contr ,4 ,contr 
+0x4c28 016734 ifetch 1 ,contr 
+0x4c29 016735 bbit1 bit_characteristic_notify ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+0x4c2a 016736 bbit1 bit_characteristic_indicate ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+0x4c2b 016737 increase 1 ,temp 
+0x4c2c 016738 rtn 
+:      016741 module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+0x4c2d 016742 call le_att_get_last_handle 
+0x4c2e 016743 isolate1 bit_of_notify_authenticated ,rega 
+0x4c2f 016744 setflag true ,bit_of_att_handle_write_authenticated ,temp 
+0x4c30 016745 istoret 2 ,contw 
+0x4c31 016746 setarg 0x02290202 
+0x4c32 016747 istore 8 ,contw 
+0x4c33 016748 increase -1 ,temp 
+0x4c34 016749 rtn 
+:      016752 le_att_creat_new_handle:
+0x4c35 016753 call le_att_get_last_handle 
+0x4c36 016754 istoret 2 ,contw 
+0x4c37 016755 rtn 
+:      016758 uart_copy_rx_bytes_len_data:
+0x4c38 016759 ifetch 1 ,contru 
+0x4c39 016760 copy pdata ,loopcnt 
+0x4c3a 016761 istore 1 ,contw 
+0x4c3b 016762 branch uart_copy_rx_bytes 
+:      016766 module_hci_cmd_le_passkey_entry_input:
+0x4c3c 016767 fetch 1 ,mem_le_pairing_state 
+0x4c3d 016768 bne flag_le_pairing_receive_pairing_confirm ,module_hci_event_receive_invalid_cmd 
+0x4c3e 016769 fetch 1 ,mem_le_pairing_mode 
+0x4c3f 016770 beq le_pairing_mode_lagacy_passkey_res_input ,module_hci_cmd_passkey_entry_res_input 
+0x4c40 016771 beq le_pairing_mode_secure_connect_passkey_res_input ,module_hci_cmd_passkey_entry_sc_res_input 
+0x4c41 016772 branch module_hci_event_receive_invalid_cmd 
+:      016774 module_hci_cmd_passkey_entry_sc_res_input:
+0x4c42 016775 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+0x4c43 016776 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+0x4c44 016777 branch module_hci_cmd_receive_ble_passkey 
+:      016779 module_hci_cmd_receive_ble_passkey:
+0x4c45 016780 ifetch 4 ,contru 
+0x4c46 016781 store 4 ,mem_le_tk 
+0x4c47 016782 branch module_hci_event_receive_valid_cmd 
+:      016784 module_hci_cmd_passkey_entry_res_input:
+0x4c48 016785 call module_hci_cmd_receive_ble_passkey 
+0x4c49 016786 branch le_send_smp_pairing_confirm 
+:      016869 module_hci_event_receive_invalid_cmd:
+0x4c4a 016870 arg 1 ,temp 
+0x4c4b 016871 arg 0 ,rega 
+0x4c4c 016872 branch module_hci_event_set_cmd 
+:      016875 module_hci_event_receive_valid_cmd:
+0x4c4d 016876 arg 0 ,temp 
+0x4c4e 016877 arg 0 ,rega 
+0x4c4f 016878 branch module_hci_event_set_cmd 
+:      016882 module_hci_event_le_connect:
+0x4c50 016883 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
+0x4c51 016884 branch module_hci_event_enter_standby_mode_len0 
+:      016889 module_hci_event_le_disconnect:
+0x4c52 016890 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
+0x4c53 016891 branch module_hci_event_enter_standby_mode_len0 
+:      016899 module_hci_event_set_cmd:
+0x4c54 016900 fetch 1 ,mem_module_uart_opcode 
+0x4c55 016901 copy pdata ,regc 
+0x4c56 016902 jam hci_event_cmd_res ,mem_module_uart_opcode 
+0x4c57 016903 setarg 2 
+0x4c58 016904 iadd rega ,pdata 
+0x4c59 016905 call module_hci_prepare_tx 
+0x4c5a 016906 copy regc ,pdata 
+0x4c5b 016907 istore 1 ,contwu 
+0x4c5c 016908 istoret 1 ,contwu 
+0x4c5d 016909 copy rega ,loopcnt 
+0x4c5e 016910 copy regb ,contr 
+0x4c5f 016911 call uart_copy_tx_bytes 
+0x4c60 016912 branch module_hci_transmit_tx 
+:      016919 module_hci_event_receive_le_data:
+0x4c61 016920 jam hci_event_le_data_rep ,mem_module_uart_opcode 
+0x4c62 016921 add loopcnt ,2 ,pdata 
+0x4c63 016922 call module_hci_prepare_tx 
+0x4c64 016923 fetch 2 ,mem_module_le_rx_data_handle 
+0x4c65 016924 istore 2 ,contwu 
+0x4c66 016925 fetch 2 ,mem_module_le_rx_data_address 
+0x4c67 016926 icopy contr 
+0x4c68 016927 call uart_copy_tx_bytes_fast 
+0x4c69 016928 copy contr ,pdata 
+0x4c6a 016929 store 2 ,mem_module_le_rx_data_address 
+0x4c6b 016930 branch module_hci_transmit_tx 
+:      016934 module_hci_event_enter_standby_mode:
+0x4c6c 016935 jam hci_event_standby_rep ,mem_module_uart_opcode 
+:      016936 module_hci_event_enter_standby_mode_len0:
+0x4c6d 016937 setarg 0 
+0x4c6e 016938 call module_hci_prepare_tx 
+0x4c6f 016939 branch module_hci_transmit_tx 
+:      016943 module_hci_event_status_res:
+0x4c70 016944 jam hci_event_status_res ,mem_module_uart_opcode 
+0x4c71 016945 setarg 1 
+0x4c72 016946 call module_hci_prepare_tx 
+0x4c73 016948 call module_hci_read_bt_status 
+0x4c74 016950 fetch 2 ,mem_ui_state_map 
+0x4c75 016951 arg ui_state_ble_connected ,queue 
+0x4c76 016952 qisolate1 pdata 
+0x4c77 016953 setflag true ,5 ,temp 
+0x4c78 016957 istoret 1 ,contwu 
+0x4c79 016958 branch module_hci_transmit_tx 
+:      016962 module_hci_read_bt_status:
+0x4c7a 016963 arg 0 ,temp 
+0x4c7b 016964 fetch 1 ,mem_le_adv_enable 
+0x4c7c 016965 arg 0 ,queue 
+0x4c7d 016966 qisolate1 pdata 
+0x4c7e 016967 setflag true ,2 ,temp 
+0x4c7f 016968 rtn 
+:      016972 module_hci_event_store_device:
+0x4c80 016973 jam hci_event_nvram_rep ,mem_module_uart_opcode 
+0x4c81 016974 fetch 1 ,mem_nv_data_number 
+0x4c82 016975 mul32 pdata ,34 ,pdata 
+0x4c83 016976 icopy loopcnt 
+0x4c84 016977 call module_hci_prepare_tx 
+0x4c85 016978 fetch 2 ,mem_nv_data_ptr 
+0x4c86 016979 icopy contr 
+0x4c87 016980 call uart_copy_tx_bytes_fast 
+0x4c88 016981 branch module_hci_transmit_tx 
+:      016984 module_hci_event_gkey_generate:
+0x4c89 016985 jam hci_event_gkey ,mem_module_uart_opcode 
+0x4c8a 016986 setarg 4 
+0x4c8b 016987 call module_hci_prepare_tx 
+0x4c8c 016988 fetch 4 ,mem_gkey 
+0x4c8d 016989 istore 4 ,contwu 
+0x4c8e 016990 branch module_hci_transmit_tx 
+:      016993 module_hci_event_invalid_packet:
+0x4c8f 016994 jam hci_event_invalid_packet ,mem_module_uart_opcode 
+0x4c90 016995 fetch 2 ,core_uart_rxitems 
+0x4c91 016996 arg 0x40 ,temp 
+0x4c92 016997 call not_greater_than 
+0x4c93 016998 copy pdata ,rega 
+0x4c94 016999 copy pdata ,loopcnt 
+0x4c95 017000 call uarta_prepare_rx 
+0x4c96 017001 arg mem_module_rx_error_data_buffer ,contw 
+0x4c97 017002 call uart_copy_rx_bytes_fast 
+0x4c98 017003 copy rega ,pdata 
+0x4c99 017004 copy rega ,loopcnt 
+0x4c9a 017005 call module_hci_prepare_tx 
+0x4c9b 017006 arg mem_module_rx_error_data_buffer ,contr 
+0x4c9c 017007 call uart_copy_tx_bytes_fast 
+0x4c9d 017008 branch module_hci_transmit_tx 
+:      017012 module_hci_event_passkey_entry_mode:
+0x4c9e 017013 jam hci_event_get_passkey ,mem_module_uart_opcode 
+0x4c9f 017014 branch module_hci_event_enter_standby_mode_len0 
+:      017018 module_hci_event_le_tk:
+0x4ca0 017019 jam hci_event_le_tk ,mem_module_uart_opcode 
+0x4ca1 017020 setarg 4 
+0x4ca2 017021 call module_hci_prepare_tx 
+0x4ca3 017022 fetch 4 ,mem_le_tk 
+0x4ca4 017023 istore 4 ,contwu 
+0x4ca5 017024 branch module_hci_transmit_tx 
+:      017028 module_hci_event_le_pairing_fail:
+0x4ca6 017029 arg flag_ble_pairing_fail ,rega 
+0x4ca7 017030 branch module_hci_event_pairing_completed 
+:      017032 module_hci_event_le_pairing_success:
+0x4ca8 017033 arg flag_ble_pairing_success ,rega 
+0x4ca9 017034 branch module_hci_event_pairing_completed 
+:      017037 module_hci_event_pairing_completed:
+0x4caa 017038 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
+0x4cab 017039 setarg 2 
+0x4cac 017040 call module_hci_prepare_tx 
+0x4cad 017041 copy rega ,pdata 
+0x4cae 017042 istore 2 ,contwu 
+0x4caf 017043 branch module_hci_transmit_tx 
+:      017047 module_hci_event_pause_enc:
+0x4cb0 017048 arg flag_event_pause_enc ,regc 
+0x4cb1 017049 branch module_hci_event_enc 
+:      017051 module_hci_event_start_enc:
+0x4cb2 017052 arg flag_event_start_enc ,regc 
+:      017054 module_hci_event_enc:
+0x4cb3 017055 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
+0x4cb4 017056 setarg 1 
+0x4cb5 017057 call module_hci_prepare_tx 
+0x4cb6 017058 copy regc ,pdata 
+0x4cb7 017059 istore 1 ,contwu 
+0x4cb8 017060 branch module_hci_transmit_tx 
+:      017066 module_hci_event_uuid_handle:
+0x4cb9 017067 storet 2 ,mem_temp 
+0x4cba 017068 jam hci_event_uuid_handle ,mem_module_uart_opcode 
+0x4cbb 017069 setarg 2 
+0x4cbc 017070 call module_hci_prepare_tx 
+0x4cbd 017071 fetcht 2 ,mem_temp 
+0x4cbe 017072 istoret 2 ,contwu 
+0x4cbf 017073 branch module_hci_transmit_tx 
+:      017077 module_hci_event_le_input_passkey:
+0x4cc0 017078 jam hci_event_le_input_gkey ,mem_module_uart_opcode 
+0x4cc1 017079 branch module_hci_event_enter_standby_mode_len0 
+:      017083 module_hci_event_le_update_phy:
+0x4cc2 017084 jam hci_ble_update_phy_event ,mem_module_uart_opcode 
+0x4cc3 017085 setarg 2 
+0x4cc4 017086 call module_hci_prepare_tx 
+0x4cc5 017087 fetch 2 ,mem_context + coffset_le_rx_phy 
+0x4cc6 017088 istore 2 ,contwu 
+0x4cc7 017089 branch module_hci_transmit_tx 
+:      017101 module_hci_prepare_tx:
+0x4cc8 017102 jam 0x02 ,mem_module_uart_cmd 
+0x4cc9 017103 store 1 ,mem_module_uart_len 
+0x4cca 017104 storet 8 ,mem_temp 
+0x4ccb 017105 bpatch patch0e_0 ,mem_patch0e 
+0x4ccc 017106 call module_set_mcu_wake_pin_high_delay 
+0x4ccd 017107 fetcht 8 ,mem_temp 
+0x4cce 017108 call uarta_prepare_tx_register_push 
+0x4ccf 017109 fetch 3 ,mem_module_uart_cmd 
+0x4cd0 017110 istore 3 ,contwu 
+0x4cd1 017111 rtn 
+:      017113 module_hci_transmit_tx:
+0x4cd2 017114 bpatch patch0e_1 ,mem_patch0e 
+0x4cd3 017115 branch uarta_send_register_pop 
+:      017117 module_set_mcu_wake_pin_high_delay:
+0x4cd4 017118 call module_check_mcu_wake_pin_high 
+0x4cd5 017119 rtn true 
+:      017120 module_set_mcu_wake_pin_h_delay:
+0x4cd6 017121 call module_set_mcu_wake_pin_high 
+0x4cd7 017122 fetch 4 ,mem_module_mcu_wake_delay_us 
+0x4cd8 017123 rshift2 pdata ,pdata 
+0x4cd9 017124 rtn blank 
+0x4cda 017125 branch delay 
+:      017127 module_set_mcu_wake_pin_high:
+0x4cdb 017128 fetcht 1 ,mem_module_mcu_wake_pin 
+0x4cdc 017129 branch gpio_out_active 
+:      017131 module_check_mcu_wake_pin_high:
+0x4cdd 017132 fetcht 1 ,mem_module_mcu_wake_pin 
+0x4cde 017133 branch gpio_check_active 
+:      017135 module_set_mcu_wake_pin_low:
+0x4cdf 017136 fetcht 1 ,mem_module_mcu_wake_pin 
+0x4ce0 017137 branch gpio_out_inactive 
+:      017148 module_le_receive_data:
+0x4ce1 017149 storer rega ,2 ,mem_module_le_rx_data_address 
+0x4ce2 017150 storer regb ,2 ,mem_module_le_rx_data_len 
+0x4ce3 017151 fetch 2 ,mem_le_att_handle 
+0x4ce4 017152 store 2 ,mem_module_le_rx_data_handle 
+0x4ce5 017153 call module_check_ble_encrypt_state 
+0x4ce6 017154 rtn user 
+:      017156 module_le_receive_data_ok:
+0x4ce7 017157 fetcht 2 ,mem_module_le_rx_data_len 
+0x4ce8 017158 fetch 1 ,mem_module_ble_data_uart_max_length 
+0x4ce9 017159 call not_greater_than 
+0x4cea 017160 copy pdata ,loopcnt 
+0x4ceb 017161 copy temp ,pdata 
+0x4cec 017162 isub loopcnt ,pdata 
+0x4ced 017163 store 2 ,mem_module_le_rx_data_len 
+0x4cee 017164 call module_hci_event_receive_le_data 
+0x4cef 017165 fetch 2 ,mem_module_le_rx_data_len 
+0x4cf0 017166 rtn blank 
+0x4cf1 017167 branch module_le_receive_data_ok 
+:      017172 module_bb_event_timer:
+0x4cf2 017173 rtn 
+:      017175 module_read_vdd_timer:
+0x4cf3 017176 fetch 1 ,mem_module_read_vdd_flag 
+0x4cf4 017177 rtn blank 
+0x4cf5 017178 fetch 1 ,mem_module_read_vdd_count 
+0x4cf6 017179 rtn blank 
+0x4cf7 017180 increase -1 ,pdata 
+0x4cf8 017181 store 1 ,mem_module_read_vdd_count 
+0x4cf9 017182 nrtn blank 
+0x4cfa 017183 jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
+0x4cfb 017184 call enable_adc 
+0x4cfc 017185 call vdd_calculate_by_mode 
+0x4cfd 017186 div pdata ,10 
+0x4cfe 017187 call get_div_result 
+0x4cff 017188 div pdata ,100 
+0x4d00 017189 call get_div_result 
+0x4d01 017190 remainder temp 
+0x4d02 017191 store 1 ,mem_module_vdd_quotient 
+0x4d03 017192 storet 1 ,mem_module_vdd_remainder 
+0x4d04 017193 rtn 
+:      017199 module_set_le_tx_data_flag:
+0x4d05 017200 arg module_flag_ble_data_finish ,queue 
+0x4d06 017201 branch module_set_state 
+:      017203 module_clear_le_tx_data_flag:
+0x4d07 017204 arg module_flag_ble_data_finish ,queue 
+0x4d08 017205 branch module_clr_state 
+:      017207 module_clr_state:
+0x4d09 017208 fetch 2 ,mem_module_flag 
+0x4d0a 017209 qset0 pdata 
+0x4d0b 017210 store 2 ,mem_module_flag 
+0x4d0c 017211 rtn 
+:      017213 module_set_state:
+0x4d0d 017214 fetch 2 ,mem_module_flag 
+0x4d0e 017215 qset1 pdata 
+0x4d0f 017216 store 2 ,mem_module_flag 
+0x4d10 017217 rtn 
+:      017222 mouse_init:
+0x4d11 017223 call enable_authrom 
+0x4d12 017224 call mouse_wake_gpio_set ,wake 
+0x4d13 017225 call mouse_setting_config 
+0x4d14 017226 call mouse_le_name_modify 
+0x4d15 017227 call mouse_init_sunt 
+0x4d16 017228 rtn wake 
+0x4d17 017229 call mouse_usb_check_enable 
+0x4d18 017230 call mouse_setting_sensor_type 
+0x4d19 017231 call mouse_drawing_optima_init 
+0x4d1a 017232 call mouse_cb_fuction 
+0x4d1b 017233 call mouse_sensor_powerdown 
+:      017234 mouse_init_wireless:
+0x4d1c 017235 fetch 2 ,mem_ui_state_map 
+0x4d1d 017236 bbit1 ui_state_btn_down ,mouse_start_discovery 
+0x4d1e 017237 call mouse_check_select_device_by_switch_once 
+0x4d1f 017238 branch mouse_start_work 
+:      017240 mouse_wake_gpio_set:
+0x4d20 017241 call mouse_matrix_public_gpio_reset 
+0x4d21 017242 branch lpm_config_puchk_disable 
+:      017244 mouse_cb_fuction:
+0x4d22 017245 bpatch patch0e_2 ,mem_patch0e 
+0x4d23 017246 setarg mouse_24g_short_sleep 
+0x4d24 017247 store 2 ,mem_cb_24g_transmit_short_sleep 
+0x4d25 017248 setarg mouse_24g_long_sleep 
+0x4d26 017249 store 2 ,mem_cb_24g_transmit_long_sleep 
+0x4d27 017250 setarg mouse_24g_before_lpm_sleep 
+0x4d28 017251 store 2 ,mem_cb_before_lpm_sleep 
+0x4d29 017252 setarg mouse_24g_package_data 
+0x4d2a 017253 store 2 ,mem_cb_24g_transmit_data 
+0x4d2b 017254 setarg mouse_24g_search_dongle 
+0x4d2c 017255 store 2 ,mem_cb_24g_search_receiver 
+0x4d2d 017256 setarg mouse_lpm_before_common 
+0x4d2e 017257 store 2 ,mem_cb_24g_lpm_before 
+0x4d2f 017258 setarg mouse_le 
+0x4d30 017259 store 2 ,mem_cb_le_process 
+0x4d31 017260 setarg mouse_process_lpm_before 
+0x4d32 017261 store 2 ,mem_cb_before_lpm 
+0x4d33 017262 setarg mouse_priority_bb_event 
+0x4d34 017263 store 2 ,mem_cb_bb_event_process 
+0x4d35 017264 setarg mouse_idle 
+0x4d36 017265 store 2 ,mem_cb_idle_process 
+0x4d37 017266 setarg mouse_before_hibernate 
+0x4d38 017267 store 2 ,mem_cb_before_hibernate 
+0x4d39 017268 setarg mouse_le_bb_event_connect_complete 
+0x4d3a 017269 store 2 ,mem_cb_att_write 
+0x4d3b 017270 setarg mouse_bb_event_timer 
+0x4d3c 017271 store 2 ,mem_cb_event_timer 
+0x4d3d 017272 setarg mouse_lpm_check_wake_lock 
+0x4d3e 017273 store 2 ,mem_cb_check_wakelock 
+0x4d3f 017274 branch hid_device_cb_fuction 
+:      017276 mouse_setting_config:
+0x4d40 017277 rtn wake 
+0x4d41 017278 call g24_transmit_init 
+0x4d42 017279 call g24_chmap_param_init 
+0x4d43 017280 call mouse_24g_send_time_long_wake 
+0x4d44 017281 call mouse_gpio_init 
+0x4d45 017282 call mouse_param_info_init 
+0x4d46 017284 call mouse_device_multi_led_parm_init 
+0x4d47 017285 call le_set_fixed_ltk_justwork 
+:      017286 mouse_load_device_info_check:
+0x4d48 017287 bpatch patch0e_3 ,mem_patch0e 
+0x4d49 017288 fetch mouse_flag_len ,mem_mouse_flag 
+0x4d4a 017289 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+0x4d4b 017290 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+0x4d4c 017291 bbit1 mouse_enable_otp ,mouse_load_otp_info_check 
+0x4d4d 017292 rtn 
+:      017294 mouse_xtal_init:
+0x4d4e 017295 jam xtal_16m ,mem_fcomp_div 
+0x4d4f 017296 fetch mouse_flag_len ,mem_mouse_flag 
+0x4d50 017297 rtnbit1 mouse_enable_16m 
+0x4d51 017298 jam xtal_24m ,mem_fcomp_div 
+0x4d52 017299 rtn 
+:      017301 mouse_24g_phy_select:
+0x4d53 017302 call g24_enable_1m 
+0x4d54 017303 jam 0 ,mem_mouse_sleep_deal_type 
+0x4d55 017304 jam 0 ,mem_24g_disable_fec1 
+0x4d56 017305 jam 0 ,mem_power_ctrl_disable 
+0x4d57 017306 fetch mouse_flag_len ,mem_mouse_flag 
+0x4d58 017307 rtnbit0 mouse_enable_24g_2m_phy 
+0x4d59 017308 jam 1 ,mem_mouse_sleep_deal_type 
+0x4d5a 017309 jam 1 ,mem_24g_disable_fec1 
+0x4d5b 017310 jam 1 ,mem_power_ctrl_disable 
+0x4d5c 017311 branch g24_enable_2m 
+:      017315 mouse_g24_reconn_dispatch_set:
+0x4d5d 017316 bpatchx patch3e_0 ,mem_patch3e 
+0x4d5e 017317 fetch 1 ,mem_24g_rxdata_length 
+0x4d5f 017318 branch mouse_receiver_addr_check ,blank 
+:      017319 mouse_g24_reconn_dispatch:
+0x4d60 017320 fetch 4 ,mem_24g_pair_addr 
+0x4d61 017321 fetcht 4 ,mem_24g_addr 
+0x4d62 017322 isub temp ,null 
+0x4d63 017323 branch mouse_g24_reconn_mode_judge ,zero 
+0x4d64 017324 branch g24_reconn_dispatch_success 
+:      017326 mouse_receiver_addr_check:
+0x4d65 017327 fetch 4 ,mem_24g_fast_conn_addr 
+0x4d66 017328 fetcht 4 ,mem_24g_addr 
+0x4d67 017329 isub temp ,null 
+0x4d68 017330 branch mouse_g24_reconn_dispatch ,zero 
+0x4d69 017331 fetch 4 ,mem_24g_rxpayload + 2 
+0x4d6a 017332 rtn blank 
+0x4d6b 017333 branch mouse_g24_reconn_dispatch 
+:      017335 mouse_g24_reconn_mode_judge:
+0x4d6c 017336 fetch mouse_flag_len ,mem_mouse_flag 
+0x4d6d 017337 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_pair_mode_check 
+0x4d6e 017338 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_pair_mode_check 
+0x4d6f 017339 branch g24_reconn_receiver_addr 
+:      017341 mouse_g24_transmit_hop_process:
+0x4d70 017342 fetch mouse_flag_len ,mem_mouse_flag 
+0x4d71 017343 bbit0 mouse_enable_24g_2m_phy ,g24_transmit_hop_process_next 
+:      017344 mouse_g24_transmit_hop_process_new:
+0x4d72 017345 fetcht 1 ,mem_24g_retry 
+0x4d73 017346 fetch 1 ,mem_24g_fast_hop_count 
+0x4d74 017347 isub temp ,null 
+0x4d75 017348 nbranch g24_tx_fast_hop ,positive 
+0x4d76 017349 increase 1 ,temp 
+0x4d77 017350 storet 1 ,mem_24g_retry 
+0x4d78 017351 fetch 1 ,mem_24g_fast_hop_count 
+0x4d79 017352 beq 15 ,mouse_g24_transmit_hop_process_4ms 
+0x4d7a 017353 fetch 1 ,mem_24g_retry 
+0x4d7b 017354 beq 20 ,g24_hop_ch_disable 
+0x4d7c 017355 beq 30 ,g24_hop_ch_disable 
+0x4d7d 017356 rtn 
+:      017358 mouse_g24_transmit_hop_process_4ms:
+0x4d7e 017359 fetch 1 ,mem_24g_retry 
+0x4d7f 017360 beq 10 ,g24_hop_ch_disable 
+0x4d80 017361 beq 15 ,g24_hop_ch_disable 
+0x4d81 017362 rtn 
+:      017366 mouse_default_init:
+0x4d82 017367 bpatch patch0e_4 ,mem_patch0e 
+0x4d83 017368 call hid_device_default_parm_init 
+0x4d84 017369 call mouse_xtal_init 
+0x4d85 017370 call mouse_24g_phy_select 
+0x4d86 017371 call mouse_24g_long_sleep_set 
+0x4d87 017372 branch g24_pair_param_init 
+:      017380 mouse_param_info_init:
+0x4d88 017381 bpatch patch0e_5 ,mem_patch0e 
+0x4d89 017382 call mouse_param_common_init 
+0x4d8a 017383 call mouse_report_rate_parm_init 
+0x4d8b 017384 call mouse_sensor_set_angle 
+:      017385 mouse_spi_parm_init:
+0x4d8c 017386 setarg 0x0a77 
+0x4d8d 017387 store 2 ,mem_spi_init_clk 
+0x4d8e 017388 setsect 0 ,0x1224 
+0x4d8f 017389 setsect 1 ,0x4000 
+0x4d90 017390 setsect 2 ,0x0 
+0x4d91 017391 istore 5 ,contw 
+0x4d92 017392 rtn 
+:      017394 mouse_param_common_init:
+0x4d93 017395 setarg mouse_ble_att_list_addr 
+0x4d94 017396 store 2 ,mem_ui_le_uuid_table 
+0x4d95 017397 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x4d96 017398 setarg 0 
+0x4d97 017399 store 7 ,mem_mouse_key 
+0x4d98 017400 fetch 1 ,mem_ui_button_timeout 
+0x4d99 017401 store 1 ,mem_bt_discovery_count 
+0x4d9a 017402 store 1 ,mem_select_device_count 
+0x4d9b 017404 jam type_ms ,mem_24g_data_type 
+0x4d9c 017405 jam 1 ,mem_24g_fast_conn_enable 
+0x4d9d 017406 jam 0 ,mem_mouse_pair_flag 
+0x4d9e 017408 call mouse_compare_addr_init 
+0x4d9f 017409 branch hid_device_param_common_init 
+:      017411 mouse_compare_addr_init:
+0x4da0 017412 arg 0 ,temp 
+0x4da1 017413 fetch mouse_flag_len ,mem_mouse_flag 
+0x4da2 017414 bbit1 mouse_enable_otp ,hid_device_compare_addr_store 
+0x4da3 017415 arg 0xffffff ,temp 
+0x4da4 017416 branch hid_device_compare_addr_store 
+:      017419 mouse_report_rate_parm_init:
+0x4da5 017420 call mouse_24g_report_rate_parm_init 
+0x4da6 017421 fetch 3 ,mem_24g_short_sleep_set 
+0x4da7 017422 store 3 ,mem_mouse_24g_short_sleep_set_init 
+:      017423 mouse_le_report_rate_parm_init:
+0x4da8 017424 fetch mouse_flag_len ,mem_mouse_flag 
+0x4da9 017425 rtnbit0 mouse_enable_bt_125hz 
+0x4daa 017426 setarg le_interval_7_5ms 
+:      017427 mouse_le_interval_store:
+0x4dab 017428 store 2 ,mem_le_interval_min 
+0x4dac 017429 store 2 ,mem_le_interval_min + 2 
+0x4dad 017430 rtn 
+:      017432 mouse_24g_report_rate_parm_init:
+0x4dae 017433 fetch mouse_flag_len ,mem_mouse_flag 
+0x4daf 017434 bbit1 mouse_enable_24g_500hz ,mouse_g24_interval_param_2ms 
+0x4db0 017435 bbit1 mouse_enable_24g_250hz ,mouse_g24_interval_param_4ms 
+0x4db1 017436 branch mouse_g24_interval_param_8ms 
+:      017438 mouse_g24_interval_param_2ms:
+0x4db2 017439 fetch 1 ,mem_mouse_24g_fast_hop_count_2ms 
+0x4db3 017440 store 1 ,mem_24g_fast_hop_count 
+0x4db4 017441 fetch 4 ,mem_mouse_24g_tsniff_2ms 
+0x4db5 017442 store 4 ,mem_mouse_24g_tsniff 
+:      017443 mouse_report_rate_set_500hz:
+0x4db6 017444 setarg 0x080606 
+0x4db7 017445 store 3 ,mem_24g_interval 
+0x4db8 017446 branch g24_transmit_by_interrupt_enable 
+:      017448 mouse_g24_interval_param_4ms:
+0x4db9 017449 fetch 3 ,mem_mouse_24g_short_sleep_set_4ms 
+0x4dba 017450 store 3 ,mem_24g_short_sleep_set 
+0x4dbb 017451 fetch 3 ,mem_mouse_24g_long_sleep_set_4ms 
+0x4dbc 017452 store 3 ,mem_24g_long_sleep_set 
+0x4dbd 017454 fetch 4 ,mem_mouse_24g_tsniff_4ms 
+0x4dbe 017455 store 4 ,mem_mouse_24g_tsniff 
+0x4dbf 017457 setarg 0x100c0c 
+0x4dc0 017458 store 3 ,mem_24g_interval 
+0x4dc1 017460 jam 0x05 ,mem_24g_fast_hop_count 
+0x4dc2 017461 fetch mouse_flag_len ,mem_mouse_flag 
+0x4dc3 017462 rtnbit0 mouse_enable_24g_2m_phy 
+0x4dc4 017463 jam 0x0f ,mem_24g_fast_hop_count 
+0x4dc5 017464 rtn 
+:      017466 mouse_g24_interval_param_8ms:
+0x4dc6 017467 fetch 3 ,mem_mouse_24g_short_sleep_set_8ms 
+0x4dc7 017468 store 3 ,mem_24g_short_sleep_set 
+0x4dc8 017469 fetch 3 ,mem_mouse_24g_long_sleep_set_8ms 
+0x4dc9 017470 store 3 ,mem_24g_long_sleep_set 
+0x4dca 017472 fetch 4 ,mem_mouse_24g_tsniff_8ms 
+0x4dcb 017473 store 4 ,mem_mouse_24g_tsniff 
+0x4dcc 017475 setarg 0x1c1919 
+0x4dcd 017476 store 3 ,mem_24g_interval 
+0x4dce 017478 jam 0x0b ,mem_24g_fast_hop_count 
+0x4dcf 017479 fetch mouse_flag_len ,mem_mouse_flag 
+0x4dd0 017480 rtnbit0 mouse_enable_24g_2m_phy 
+0x4dd1 017481 jam 0x1e ,mem_24g_fast_hop_count 
+0x4dd2 017482 rtn 
+:      017498 mouse_sensor_set_angle:
+0x4dd3 017499 bpatch patch0e_6 ,mem_patch0e 
+0x4dd4 017500 call mouse_set_sensor_angle_float 
+0x4dd5 017501 fetch 1 ,mem_select_sensor_angle_gpio 
+0x4dd6 017502 rtneq gpio_disable 
+0x4dd7 017504 fetch 1 ,mem_select_sensor_angle_gpio 
+0x4dd8 017505 call mouse_gpio_config_pu_check 
+0x4dd9 017507 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x4dda 017508 call gpio_get_bit 
+0x4ddb 017509 branch mouse_set_sensor_angle_gnd ,true 
+0x4ddc 017511 fetch 1 ,mem_select_sensor_angle_gpio 
+0x4ddd 017512 call mouse_gpio_config_pd_check 
+0x4dde 017514 fetcht 1 ,mem_select_sensor_angle_gpio 
+0x4ddf 017515 call gpio_get_bit 
+0x4de0 017516 branch mouse_set_sensor_angle_float ,true 
+:      017517 mouse_set_sensor_angle_vin:
+0x4de1 017518 fetch 1 ,mem_select_sensor_angle_gpio 
+0x4de2 017519 call mouse_gpio_config_pu_check 
+0x4de3 017520 fetch 1 ,mem_sensor_angle_vin 
+0x4de4 017521 branch mouse_store_sensor_angle 
+:      017523 mouse_set_sensor_angle_gnd:
+0x4de5 017524 fetch 1 ,mem_select_sensor_angle_gpio 
+0x4de6 017525 call mouse_gpio_config_pd_check 
+0x4de7 017526 fetch 1 ,mem_sensor_angle_gnd 
+0x4de8 017527 branch mouse_store_sensor_angle 
+:      017529 mouse_set_sensor_angle_float:
+0x4de9 017530 fetch 1 ,mem_sensor_angle_default 
+:      017531 mouse_store_sensor_angle:
+0x4dea 017532 store 1 ,mem_config_sensor_angle 
+0x4deb 017533 rtn 
+:      017543 mouse_le_name_modify:
+0x4dec 017544 bpatch patch0f_0 ,mem_patch0f 
+0x4ded 017545 rtn wake 
+0x4dee 017546 fetch 1 ,mem_le_name_patch_len 
+0x4def 017547 rtn blank 
+0x4df0 017548 add pdata ,1 ,loopcnt 
+0x4df1 017549 arg mem_le_name_patch_len ,contr 
+0x4df2 017550 arg mem_le_name_len ,contw 
+0x4df3 017551 call memcpy 
+0x4df4 017552 branch le_modified_name_adv 
+:      017556 mouse_start_work:
+0x4df5 017557 bpatch patch0f_1 ,mem_patch0f 
+0x4df6 017558 fetch mouse_flag_len ,mem_mouse_flag 
+0x4df7 017559 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0x4df8 017560 fetch 1 ,mem_device_flag 
+0x4df9 017561 beq mode_24g_device ,mouse_24g_start_mode 
+:      017562 mouse_le_fast_conn_judge:
+0x4dfa 017563 call mouse_device_le_reconn_led_config 
+0x4dfb 017564 call mouse_bluetooth_fast_conn_disable 
+0x4dfc 017565 fetch 1 ,mem_device_flag 
+0x4dfd 017566 beq mode_bt_device1 ,mouse_le_device1_judge 
+0x4dfe 017567 beq mode_bt_device2 ,mouse_le_device2_judge 
+0x4dff 017568 rtn 
+:      017569 mouse_le_device1_judge:
+0x4e00 017570 fetch 6 ,mem_device1_addr 
+0x4e01 017571 fetcht 6 ,mem_device_compare_addr 
+0x4e02 017572 isub temp ,null 
+0x4e03 017573 branch mouse_bluetooth_fast_conn_init ,zero 
+0x4e04 017574 branch mouse_start_reconnect_device 
+:      017576 mouse_le_device2_judge:
+0x4e05 017577 fetch 6 ,mem_device2_addr 
+0x4e06 017578 fetcht 6 ,mem_device_compare_addr 
+0x4e07 017579 isub temp ,null 
+0x4e08 017580 branch mouse_bluetooth_fast_conn_init ,zero 
+:      017581 mouse_start_reconnect_device:
+0x4e09 017582 bpatch patch0f_2 ,mem_patch0f 
+0x4e0a 017583 arg mem_device1_type ,rega 
+0x4e0b 017584 fetch 1 ,mem_device_flag 
+0x4e0c 017585 increase -1 ,pdata 
+0x4e0d 017586 mul32 pdata ,13 ,pdata 
+0x4e0e 017587 iadd rega ,rega 
+0x4e0f 017588 ifetch 1 ,rega 
+0x4e10 017589 store 1 ,mem_xrecord_mode 
+:      017590 mouse_start_reconnect:
+0x4e11 017591 fetch 1 ,mem_xrecord_mode 
+0x4e12 017592 beq rec_4_mode ,mouse4_0_check_reconn_target 
+0x4e13 017593 branch mouse_bluetooth_fast_conn_init 
+:      017595 mouse_wakeup_from_power_check:
+0x4e14 017596 bpatch patch0f_3 ,mem_patch0f 
+0x4e15 017597 disable user 
+0x4e16 017598 fetch mouse_flag_len ,mem_mouse_flag 
+0x4e17 017599 bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
+0x4e18 017600 fetch 1 ,core_lpm_isogate 
+0x4e19 017601 bbit1 cold_wake ,mouse_wakeup_from_poweron 
+0x4e1a 017602 enable user 
+:      017603 mouse_wakeup_from_poweron:
+0x4e1b 017604 fetch 1 ,mem_reconn_times_init 
+0x4e1c 017605 store 1 ,mem_reconn_times 
+0x4e1d 017606 rtn 
+:      017608 mouse4_0_check_reconn_target:
+0x4e1e 017609 jam 1 ,mem_device_le_reconnect_flag 
+0x4e1f 017610 fetcht 1 ,mem_device_fast_direct_timeout 
+0x4e20 017611 fetch 1 ,mem_device_fast_conn_flag 
+0x4e21 017612 beq 0xff ,mouse4_0_check_reconn_target_next 
+0x4e22 017613 fetcht 1 ,mem_device_direct_timeout 
+:      017614 mouse4_0_check_reconn_target_next:
+0x4e23 017615 storet 1 ,mem_device_direct_timer 
+0x4e24 017616 call app_lpm_mult_disable 
+0x4e25 017617 fetch 3 ,mem_le_adv_direct_ind 
+0x4e26 017618 store 3 ,mem_le_adv_data + 4 
+0x4e27 017619 call mouse_le_check_adv_flag 
+0x4e28 017620 setarg adv_flag_bredr_not_supported 
+0x4e29 017621 istore 1 ,contr 
+0x4e2a 017622 arg mem_le_scan_data ,contr 
+0x4e2b 017623 call mouse_le_adv_data_update 
+0x4e2c 017624 branch check_51cmd_adv 
+:      017628 mouse_lpm_check_wake_lock:
+0x4e2d 017629 bmark1 mark_24g ,app_get_lpm_wake_lock 
+0x4e2e 017630 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0x4e2f 017631 branch app_get_lpm_wake_lock ,blank 
+0x4e30 017632 fetch 1 ,mem_le_conn_param_reject 
+0x4e31 017633 beq le_lpm_disable ,app_get_lpm_wake_lock 
+0x4e32 017634 fetch 1 ,mem_mouse_wheel_trigger 
+0x4e33 017635 nbranch app_get_lpm_wake_lock ,blank 
+0x4e34 017636 branch app_put_lpm_wake_lock 
+:      017640 mouse_app_enter_hibernate:
+0x4e35 017641 bpatch patch0f_4 ,mem_patch0f 
+0x4e36 017642 setarg pan_reg_config 
+0x4e37 017643 call twspi_read 
+0x4e38 017644 bbit1 3 ,mouse_app_enter_hibernate_next 
+0x4e39 017645 call mouse_sensor_reset 
+0x4e3a 017646 call mouse_sensor_powerdown 
+:      017647 mouse_app_enter_hibernate_next:
+0x4e3b 017648 call mouse_setgpio_hibernate 
+0x4e3c 017649 branch app_enter_hibernate 
+:      017651 mouse_before_hibernate:
+0x4e3d 017652 bpatch patch0f_5 ,mem_patch0f 
+0x4e3e 017653 call disable_authrom 
+0x4e3f 017655 call mouse_flash_power_down 
+0x4e40 017656 fetcht 1 ,mem_sensor_motion_gpio 
+0x4e41 017657 branch gpio_clr_wake 
+:      017659 mouse_setgpio_hibernate:
+0x4e42 017660 bpatch patch0f_6 ,mem_patch0f 
+0x4e43 017661 call mouse_set_sdio_high 
+0x4e44 017662 call clear_wake 
+0x4e45 017663 call mouse_before_hibernate_wheel_gpio_set 
+0x4e46 017664 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+0x4e47 017665 call mouse_gpio_config_output_high 
+0x4e48 017666 fetcht 1 ,mem_device_switch_gpio 
+0x4e49 017667 call mouse_gpio_set_pupd_by_input 
+0x4e4a 017668 call mouse_lpm_before_common 
+0x4e4b 017670 fetcht 1 ,mem_device_reuse_2ice_gpio 
+0x4e4c 017671 call device_gpio_config_input_pu 
+0x4e4d 017672 call mouse_gpio_set_analog 
+0x4e4e 017673 call mouse_logo_led_off 
+0x4e4f 017674 call mouse_device_multi_led_all_off 
+0x4e50 017675 call mouse_adc_gpio_set_before_hibernate 
+0x4e51 017676 branch mouse_wheel_gpio_set_before_hibernate 
+:      017678 mouse_wheel_gpio_set_before_hibernate:
+0x4e52 017679 fetch mouse_flag_len ,mem_mouse_flag 
+0x4e53 017680 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+:      017681 mouse_wheel_gpio_clr_wakeup:
+0x4e54 017682 fetcht 1 ,mem_whee_a_data_gpio 
+0x4e55 017683 call gpio_clr_wake 
+0x4e56 017684 fetcht 1 ,mem_whee_b_data_gpio 
+0x4e57 017685 call gpio_clr_wake 
+0x4e58 017686 fetcht 1 ,mem_whee_a_data_gpio 
+0x4e59 017687 call device_gpio_config_input_pd 
+0x4e5a 017688 fetcht 1 ,mem_whee_b_data_gpio 
+0x4e5b 017689 branch device_gpio_config_input_pd 
+:      017691 mouse_adc_gpio_set_before_hibernate:
+0x4e5c 017692 fetch mouse_flag_len ,mem_mouse_flag 
+0x4e5d 017693 rtnbit0 mouse_enable_adc 
+0x4e5e 017694 fetch 1 ,mem_adc_config_flag 
+0x4e5f 017695 rtnne adc_config_gpio 
+0x4e60 017696 fetcht 1 ,mem_adc_channel_gpio 
+0x4e61 017697 branch gpio_set_analog 
+:      017701 mouse_gpio_pd_idle:
+0x4e62 017702 arg core_gpio_conf ,contr 
+0x4e63 017703 arg gpio_number ,loopcnt 
+:      017704 mouse_gpio_pd_idle_loop:
+0x4e64 017705 ifetch 1 ,contr 
+0x4e65 017706 nbranch mouse_gpio_pd_idle_configured ,blank 
+0x4e66 017707 setarg gpcfg_pulldown 
+0x4e67 017708 add contr ,-1 ,contw 
+0x4e68 017709 istore 1 ,contw 
+:      017710 mouse_gpio_pd_idle_configured:
+0x4e69 017711 loop mouse_gpio_pd_idle_loop 
+0x4e6a 017712 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x4e6b 017713 isub contr ,null 
+0x4e6c 017714 rtn zero 
+:      017715 mouse_gpio_pd_idle_ext:
+0x4e6d 017716 arg gpio_number_ext ,loopcnt 
+0x4e6e 017717 arg core_gpio_conf_hi ,contr 
+0x4e6f 017718 branch mouse_gpio_pd_idle_loop 
+:      017720 mouse_process_lpm_before:
+0x4e70 017721 rtnmark1 mark_24g 
+0x4e71 017722 call mouse_lpm_before_common 
+0x4e72 017723 fetch 1 ,mem_lpm_current_mult 
+0x4e73 017724 nrtn blank 
+0x4e74 017725 branch gpio_clr_wake 
+:      017727 mouse_lpm_before_common:
+0x4e75 017728 bpatch patch0f_7 ,mem_patch0f 
+0x4e76 017729 jam 0 ,mem_qdec_set_flag 
+0x4e77 017730 call clear_wake 
+0x4e78 017731 fetcht 1 ,mem_matrix_public_gpio 
+0x4e79 017732 call gpio_out_active 
+0x4e7a 017733 fetcht 1 ,mem_matrix_public_gpio 
+0x4e7b 017734 call gpio_clr_wake 
+0x4e7c 017736 call mouse_wheel_check 
+0x4e7d 017737 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+0x4e7e 017738 call mouse_gpio_config_output_high 
+0x4e7f 017739 call twspi_disable 
+0x4e80 017741 fetcht 1 ,mem_lbutton_gpio 
+0x4e81 017742 call gpio_set_wake 
+0x4e82 017743 fetcht 1 ,mem_rbutton_gpio 
+0x4e83 017744 call gpio_set_wake 
+0x4e84 017745 fetcht 1 ,mem_mbutton_gpio 
+0x4e85 017746 call gpio_set_wake 
+0x4e86 017748 fetcht 1 ,mem_bk_button_gpio 
+0x4e87 017749 call gpio_set_wake 
+0x4e88 017750 fetcht 1 ,mem_fw_button_gpio 
+0x4e89 017751 call gpio_set_wake 
+0x4e8a 017752 fetcht 1 ,mem_dpi_button_gpio 
+0x4e8b 017753 call gpio_set_wake 
+0x4e8c 017754 fetcht 1 ,mem_config_select_device_button_gpio 
+0x4e8d 017755 call gpio_set_wake 
+0x4e8e 017757 fetcht 1 ,mem_customer_key_gpio 
+0x4e8f 017758 call gpio_set_wake 
+0x4e90 017760 call mouse_gpio_pd_idle 
+0x4e91 017762 fetcht 1 ,mem_whee_a_data_gpio 
+0x4e92 017763 call gpio_set_wake_by_current_state 
+0x4e93 017764 fetcht 1 ,mem_whee_b_data_gpio 
+0x4e94 017765 call gpio_set_wake_by_current_state 
+0x4e95 017766 fetcht 1 ,mem_whee_ta_data_gpio 
+0x4e96 017767 call gpio_set_wake_by_current_state 
+0x4e97 017768 fetcht 1 ,mem_whee_tb_data_gpio 
+0x4e98 017769 call gpio_set_wake_by_current_state 
+0x4e99 017770 fetcht 1 ,mem_sensor_motion_gpio 
+0x4e9a 017771 branch gpio_set_wake 
+:      017775 mouse_set_mult:
+0x4e9b 017776 fetch 2 ,mem_ui_state_map 
+0x4e9c 017777 rtnbit0 ui_state_ble_connected 
+0x4e9d 017778 copy rega ,pdata 
+0x4e9e 017779 nbranch le_set_config_short_mult ,blank 
+0x4e9f 017780 branch le_clr_config_short_mult 
+:      017784 mouse_adc_gpio_set:
+0x4ea0 017785 bpatch patch10_0 ,mem_patch10 
+0x4ea1 017786 fetch 1 ,mem_adc_config_flag 
+0x4ea2 017787 rtnne adc_config_gpio 
+0x4ea3 017788 fetcht 1 ,mem_adc_channel_gpio 
+0x4ea4 017789 branch gpio_set_high_impedance 
+:      017791 mouse_adc_read:
+0x4ea5 017792 bpatch patch10_1 ,mem_patch10 
+0x4ea6 017793 fetch mouse_flag_len ,mem_mouse_flag 
+0x4ea7 017794 rtnbit0 mouse_enable_adc 
+0x4ea8 017795 call mouse_adc_gpio_set 
+:      017796 mouse_adc_read_start:
+0x4ea9 017797 call enable_adc 
+0x4eaa 017798 call vdd_calculate_by_mode 
+0x4eab 017799 store 2 ,mem_device_vdd_now_vol 
+0x4eac 017800 fetch 1 ,mem_adc_config_flag 
+0x4ead 017801 bne adc_config_gpio ,mouse_adc_data_process 
+0x4eae 017802 fetcht 2 ,mem_device_vdd_now_vol 
+0x4eaf 017803 mul32 temp ,8 ,pdata 
+0x4eb0 017804 div pdata ,10 
+0x4eb1 017805 call get_div_result 
+0x4eb2 017806 iadd temp ,pdata 
+0x4eb3 017807 store 2 ,mem_device_vdd_now_vol 
+:      017808 mouse_adc_data_process:
+0x4eb4 017809 arg mem_device_vdd_calculate_set ,rega 
+0x4eb5 017810 call mouse_adc_bat_percent_lowpower_out 
+0x4eb6 017811 fetch 1 ,mem_adc_power_flag 
+0x4eb7 017812 bbit1 1 ,mouse_app_enter_hibernate 
+0x4eb8 017813 bbit0 0 ,mouse_adc_no_low_voltage 
+0x4eb9 017814 jam 1 ,mem_device_adc_last_low_voltage_flag 
+0x4eba 017815 branch mouse_adc_low_voltage 
+:      017817 mouse_adc_low_voltage:
+0x4ebb 017818 arg mouse_low_voltage_flag ,queue 
+0x4ebc 017819 branch mouse_enable_function_flag 
+:      017820 mouse_adc_no_low_voltage:
+0x4ebd 017821 arg mouse_low_voltage_flag ,queue 
+0x4ebe 017822 call mouse_disable_function_flag 
+0x4ebf 017823 jam 1 ,mem_adc_low_volatage_led_timer_count 
+0x4ec0 017824 fetch 1 ,mem_device_adc_last_low_voltage_flag 
+0x4ec1 017825 rtn blank 
+0x4ec2 017826 jam 0 ,mem_device_adc_last_low_voltage_flag 
+0x4ec3 017827 branch mouse_low_voltage_led_off_judge 
+:      017830 mouse_adc_bat_percent_lowpower_out:
+0x4ec4 017831 bpatch patch10_2 ,mem_patch10 
+0x4ec5 017832 ifetch 8 ,rega 
+0x4ec6 017833 store 8 ,mem_pdatatemp 
+:      017834 mouse_adc_bat_percent_lowpower_out_battery:
+0x4ec7 017835 call adc_clear_no_power_flag 
+0x4ec8 017836 call adc_clear_low_power_flag 
+0x4ec9 017837 fetch 2 ,mem_pdatatemp + 6 
+0x4eca 017838 fetcht 2 ,mem_pdatatemp + 2 
+0x4ecb 017839 isub temp ,null 
+0x4ecc 017840 ncall adc_set_no_power_flag ,positive 
+0x4ecd 017841 fetcht 2 ,mem_pdatatemp + 4 
+0x4ece 017842 isub temp ,null 
+0x4ecf 017843 ncall adc_set_low_power_flag ,positive 
+:      017844 mouse_adc_bat_level_set:
+0x4ed0 017845 fetch 2 ,mem_pdatatemp + 6 
+0x4ed1 017846 fetcht 2 ,mem_pdatatemp 
+0x4ed2 017847 isub temp ,null 
+0x4ed3 017848 branch mouse_adc_bat_level_100_percent ,positive 
+0x4ed4 017849 fetcht 2 ,mem_pdatatemp + 2 
+0x4ed5 017850 isub temp ,pdata 
+0x4ed6 017851 nbranch mouse_adc_bat_level_0_percent ,positive 
+0x4ed7 017852 branch mouse_adc_bat_level_0_percent ,blank 
+0x4ed8 017853 mul32 pdata ,100 ,rega 
+0x4ed9 017854 fetch 2 ,mem_pdatatemp 
+0x4eda 017855 fetcht 2 ,mem_pdatatemp + 2 
+0x4edb 017856 isub temp ,temp 
+0x4edc 017857 copy rega ,pdata 
+0x4edd 017858 idiv temp 
+0x4ede 017859 call get_div_result 
+0x4edf 017860 store 1 ,mem_le_battery_level_percentage 
+0x4ee0 017861 rtn 
+:      017863 mouse_adc_bat_level_100_percent:
+0x4ee1 017864 jam 100 ,mem_le_battery_level_percentage 
+0x4ee2 017865 rtn 
+:      017866 mouse_adc_bat_level_0_percent:
+0x4ee3 017867 jam 0 ,mem_le_battery_level_percentage 
+0x4ee4 017868 rtn 
+:      017874 mouse_gpio_init:
+0x4ee5 017875 fetcht 1 ,mem_eeprom_wp_gpio 
+0x4ee6 017876 call gpio_config_output 
+0x4ee7 017878 fetcht 1 ,mem_lbutton_gpio 
+0x4ee8 017879 call device_gpio_config_input_pu 
+0x4ee9 017880 fetcht 1 ,mem_rbutton_gpio 
+0x4eea 017881 call device_gpio_config_input_pu 
+0x4eeb 017882 fetcht 1 ,mem_mbutton_gpio 
+0x4eec 017883 call device_gpio_config_input_pu 
+0x4eed 017884 fetcht 1 ,mem_bk_button_gpio 
+0x4eee 017885 call device_gpio_config_input_pu 
+0x4eef 017886 fetcht 1 ,mem_fw_button_gpio 
+0x4ef0 017887 call device_gpio_config_input_pu 
+0x4ef1 017888 fetcht 1 ,mem_dpi_button_gpio 
+0x4ef2 017889 call device_gpio_config_input_pu 
+0x4ef3 017891 fetcht 1 ,mem_matrix_public_gpio 
+0x4ef4 017892 call device_gpio_config_input_pu 
+0x4ef5 017894 fetcht 1 ,mem_config_select_device_button_gpio 
+0x4ef6 017895 call device_gpio_config_input_pu 
+0x4ef7 017897 fetcht 1 ,mem_customer_key_gpio 
+0x4ef8 017898 call device_gpio_config_input_pu 
+0x4ef9 017900 call mouse_wheel_gpio_init 
+0x4efa 017902 fetcht 1 ,mem_whee_ta_data_gpio 
+0x4efb 017903 call device_gpio_config_input_pu 
+0x4efc 017904 fetcht 1 ,mem_whee_tb_data_gpio 
+0x4efd 017905 call device_gpio_config_input_pu 
+0x4efe 017907 fetcht 1 ,mem_sensor_motion_gpio 
+0x4eff 017908 call device_gpio_config_input_pu 
+0x4f00 017910 fetcht 1 ,mem_device_switch_gpio 
+0x4f01 017911 branch device_gpio_config_input_pu 
+:      017913 mouse_gpio_set_pupd_by_input:
+0x4f02 017914 and temp ,0x7f ,queue 
+0x4f03 017915 fetch 4 ,core_gpio_in 
+0x4f04 017916 qisolate1 pdata 
+0x4f05 017917 branch device_gpio_config_input_pu ,true 
+:      017918 device_gpio_config_input_pd:
+0x4f06 017919 sub temp ,ui_button_gpio_disable ,null 
+0x4f07 017920 rtn zero 
+0x4f08 017921 set1 gpio_active_bit ,temp 
+0x4f09 017922 branch gpio_config_input 
+:      017924 device_gpio_config_input_pu:
+0x4f0a 017925 sub temp ,ui_button_gpio_disable ,null 
+0x4f0b 017926 rtn zero 
+0x4f0c 017927 set0 gpio_active_bit ,temp 
+0x4f0d 017928 branch gpio_config_input 
+:      017930 mouse_gpio_set_analog:
+0x4f0e 017931 fetch 3 ,mem_device_set_analog_bit_set 
+0x4f0f 017932 store 3 ,mem_pdatatemp 
+0x4f10 017933 arg 24 ,loopcnt 
+0x4f11 017934 arg 0 ,temp 
+:      017935 mouse_gpio_set_analog_bit_loop:
+0x4f12 017936 fetch 3 ,mem_pdatatemp 
+0x4f13 017937 isolate1 0 ,pdata 
+0x4f14 017938 call gpio_set_analog ,true 
+0x4f15 017940 fetch 3 ,mem_pdatatemp 
+0x4f16 017941 lshift pdata ,pdata 
+0x4f17 017942 store 3 ,mem_pdatatemp 
+0x4f18 017943 increase 1 ,temp 
+0x4f19 017944 loop mouse_gpio_set_analog_bit_loop 
+0x4f1a 017945 rtn 
+:      017950 mouse_sensor_spi_init:
+0x4f1b 017951 call mouse_spid_init_pin 
+0x4f1c 017952 jam 0x73 ,mem_spi_init_clk 
+0x4f1d 017954 call mouse_spi_init 
+0x4f1e 017955 branch twspi_enable 
+:      017957 mouse_spi_write_flash_cb:
+:      017958 mouse_spi_init:
+0x4f1f 017959 branch spid_init 
+:      017961 mouse_spid_init_pin:
+0x4f20 017962 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+0x4f21 017963 arg gpcfg_spid_sck ,temp 
+0x4f22 017964 call gpio_config_function_int 
+0x4f23 017965 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+0x4f24 017966 arg gpcfg_spid_sdio ,temp 
+0x4f25 017967 branch gpio_config_function_int 
+:      017972 mouse_motion:
+0x4f26 017973 bpatch patch10_3 ,mem_patch10 
+0x4f27 017974 call hid_device_copy_key_data 
+0x4f28 017975 disable user 
+0x4f29 017976 setarg 0 
+0x4f2a 017977 store 6 ,mem_mouse_x 
+0x4f2b 017978 call mouse_check_sensor_data 
+0x4f2c 017979 setarg 0x0089 
+0x4f2d 017980 call twspi_write 
+0x4f2e 017981 call mouse_setting_sensor_type 
+0x4f2f 017982 call mouse_zwheel 
+0x4f30 017983 call mouse_t_zwheel 
+0x4f31 017984 call mouse_key 
+0x4f32 017985 fetch 1 ,mem_mouse_key 
+0x4f33 017986 and_into 0x1f ,pdata 
+0x4f34 017987 store 1 ,mem_mouse_key 
+0x4f35 017988 nbranch mouse_drawing_optima_init ,user 
+0x4f36 017989 call mouse_drawing_optima 
+0x4f37 017990 branch mouse_no_data_timer_init 
+:      017994 mouse_zwheel:
+0x4f38 017995 fetch 1 ,mem_mouse_z_data 
+0x4f39 017996 rtn blank 
+0x4f3a 017997 store 1 ,mem_mouse_z 
+0x4f3b 017998 jam 0 ,mem_mouse_z_data 
+0x4f3c 017999 branch enable_user 
+:      018001 mouse_t_zwheel:
+0x4f3d 018002 fetch 1 ,mem_mouse_tz_data 
+0x4f3e 018003 rtn blank 
+0x4f3f 018004 store 1 ,mem_mouse_tz 
+0x4f40 018005 jam 0 ,mem_mouse_tz_data 
+0x4f41 018006 branch enable_user 
+:      018008 mouse_wheel_check:
+0x4f42 018009 bpatch patch10_4 ,mem_patch10 
+0x4f43 018010 call mouse_wheel_gpio_init 
+0x4f44 018011 call mouse_t_wheel_scan 
+0x4f45 018012 call mouse_wheel_scan 
+0x4f46 018013 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x4f47 018014 fetcht 1 ,mem_wheel_tb_old_pinlevel 
+0x4f48 018015 store 1 ,mem_wheel_tb_old_pinlevel 
+0x4f49 018016 isub temp ,null 
+0x4f4a 018017 nbranch app_lpm_wake_auto_lock ,zero 
+0x4f4b 018018 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x4f4c 018019 fetcht 1 ,mem_mwheel_b_old_pinlevel 
+0x4f4d 018020 store 1 ,mem_mwheel_b_old_pinlevel 
+0x4f4e 018021 isub temp ,null 
+0x4f4f 018022 nbranch app_lpm_wake_auto_lock ,zero 
+0x4f50 018023 rtn 
+:      018024 mouse_t_wheel_scan:
+0x4f51 018025 fetch 1 ,mem_whee_ta_data_gpio 
+0x4f52 018026 rtneq gpio_disable 
+0x4f53 018027 arg 0 ,rega 
+0x4f54 018028 fetcht 1 ,mem_whee_ta_data_gpio 
+0x4f55 018029 call gpio_get_bit 
+0x4f56 018030 setflag true ,0 ,rega 
+0x4f57 018031 fetcht 1 ,mem_whee_tb_data_gpio 
+0x4f58 018032 call gpio_get_bit 
+0x4f59 018033 setflag true ,1 ,rega 
+0x4f5a 018034 copy rega ,pdata 
+0x4f5b 018035 store 1 ,mem_wheel_tb_new_pinlevel 
+0x4f5c 018036 beq 0x01 ,mouse_t_wheel_scan_judge1 
+0x4f5d 018037 beq 0x02 ,mouse_t_wheel_scan_judge2 
+0x4f5e 018038 fetch 1 ,mem_wheel_tog 
+0x4f5f 018039 bbit1 7 ,mouse_t_wheel_scan_judge3 
+0x4f60 018040 rtn 
+:      018042 mouse_t_wheel_scan_judge1:
+0x4f61 018043 fetch 1 ,mem_wheel_tb_old_pinlevel 
+0x4f62 018044 beq 0 ,mouse_t_wheel_scan_judge11 
+0x4f63 018045 beq 3 ,mouse_t_wheel_scan_judge12 
+0x4f64 018046 rtn 
+:      018047 mouse_t_wheel_scan_judge2:
+0x4f65 018048 fetch 1 ,mem_wheel_tb_old_pinlevel 
+0x4f66 018049 beq 0 ,mouse_t_wheel_scan_judge21 
+0x4f67 018050 beq 3 ,mouse_t_wheel_scan_judge22 
+0x4f68 018051 rtn 
+:      018052 mouse_t_wheel_scan_judge11:
+0x4f69 018053 jam 0x82 ,mem_wheel_tog 
+0x4f6a 018054 rtn 
+:      018055 mouse_t_wheel_scan_judge12:
+0x4f6b 018056 jam 0x81 ,mem_wheel_tog 
+0x4f6c 018057 rtn 
+:      018058 mouse_t_wheel_scan_judge21:
+0x4f6d 018059 jam 0x80 ,mem_wheel_tog 
+0x4f6e 018060 rtn 
+:      018061 mouse_t_wheel_scan_judge22:
+0x4f6f 018062 jam 0x83 ,mem_wheel_tog 
+0x4f70 018063 rtn 
+:      018064 mouse_t_wheel_scan_judge3:
+0x4f71 018065 fetch 1 ,mem_wheel_tog 
+0x4f72 018066 set0 7 ,pdata 
+0x4f73 018067 store 1 ,mem_wheel_tog 
+0x4f74 018068 beq 0 ,mouse_t_wheel_scan_judge30 
+0x4f75 018069 beq 1 ,mouse_t_wheel_scan_judge31 
+0x4f76 018070 beq 2 ,mouse_t_wheel_scan_judge32 
+0x4f77 018071 beq 3 ,mouse_t_wheel_scan_judge33 
+0x4f78 018072 rtn 
+:      018073 mouse_t_wheel_scan_judge30:
+0x4f79 018074 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x4f7a 018075 beq 3 ,mouse_wheel_t_forward 
+0x4f7b 018076 rtn 
+:      018077 mouse_t_wheel_scan_judge31:
+0x4f7c 018078 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x4f7d 018079 beq 0 ,mouse_wheel_t_forward 
+0x4f7e 018080 rtn 
+:      018081 mouse_t_wheel_scan_judge32:
+0x4f7f 018082 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x4f80 018083 beq 3 ,mouse_wheel_t_back 
+0x4f81 018084 rtn 
+:      018085 mouse_t_wheel_scan_judge33:
+0x4f82 018086 fetch 1 ,mem_wheel_tb_new_pinlevel 
+0x4f83 018087 beq 0 ,mouse_wheel_t_back 
+0x4f84 018088 rtn 
+:      018089 mouse_wheel_t_forward:
+0x4f85 018090 fetch 1 ,mem_mouse_tz_data 
+0x4f86 018091 increase 1 ,pdata 
+0x4f87 018092 store 1 ,mem_mouse_tz_data 
+0x4f88 018093 rtn 
+:      018094 mouse_wheel_t_back:
+0x4f89 018095 fetch 1 ,mem_mouse_tz_data 
+0x4f8a 018096 increase -1 ,pdata 
+0x4f8b 018097 store 1 ,mem_mouse_tz_data 
+0x4f8c 018098 rtn 
+:      018101 mouse_wheel_scan:
+0x4f8d 018102 fetch 1 ,mem_whee_a_data_gpio 
+0x4f8e 018103 rtneq gpio_disable 
+0x4f8f 018104 arg 0 ,rega 
+0x4f90 018105 fetcht 1 ,mem_whee_a_data_gpio 
+0x4f91 018106 call gpio_get_bit 
+0x4f92 018107 setflag true ,0 ,rega 
+0x4f93 018108 fetcht 1 ,mem_whee_b_data_gpio 
+0x4f94 018109 call gpio_get_bit 
+0x4f95 018110 setflag true ,1 ,rega 
+0x4f96 018111 copy rega ,pdata 
+0x4f97 018112 store 1 ,mem_mwheel_b_new_pinlevel 
+0x4f98 018113 beq 0x01 ,mouse_wheel_scan_judge1 
+0x4f99 018114 beq 0x02 ,mouse_wheel_scan_judge2 
+0x4f9a 018115 fetch 1 ,mem_mwheel_tog 
+0x4f9b 018116 bbit1 7 ,mouse_wheel_scan_judge3 
+0x4f9c 018117 rtn 
+:      018119 mouse_wheel_scan_judge1:
+0x4f9d 018120 fetch 1 ,mem_mwheel_b_old_pinlevel 
+0x4f9e 018121 beq 0 ,mouse_wheel_scan_judge11 
+0x4f9f 018122 beq 3 ,mouse_wheel_scan_judge12 
+0x4fa0 018123 rtn 
+:      018124 mouse_wheel_scan_judge2:
+0x4fa1 018125 fetch 1 ,mem_mwheel_b_old_pinlevel 
+0x4fa2 018126 beq 0 ,mouse_wheel_scan_judge21 
+0x4fa3 018127 beq 3 ,mouse_wheel_scan_judge22 
+0x4fa4 018128 rtn 
+:      018129 mouse_wheel_scan_judge11:
+0x4fa5 018130 jam 0x82 ,mem_mwheel_tog 
+0x4fa6 018131 rtn 
+:      018132 mouse_wheel_scan_judge12:
+0x4fa7 018133 jam 0x81 ,mem_mwheel_tog 
+0x4fa8 018134 rtn 
+:      018135 mouse_wheel_scan_judge21:
+0x4fa9 018136 jam 0x80 ,mem_mwheel_tog 
+0x4faa 018137 rtn 
+:      018138 mouse_wheel_scan_judge22:
+0x4fab 018139 jam 0x83 ,mem_mwheel_tog 
+0x4fac 018140 rtn 
+:      018141 mouse_wheel_scan_judge3:
+0x4fad 018142 fetch 1 ,mem_mwheel_tog 
+0x4fae 018143 set0 7 ,pdata 
+0x4faf 018144 store 1 ,mem_mwheel_tog 
+0x4fb0 018145 beq 0 ,mouse_wheel_scan_judge30 
+0x4fb1 018146 beq 1 ,mouse_wheel_scan_judge31 
+0x4fb2 018147 beq 2 ,mouse_wheel_scan_judge32 
+0x4fb3 018148 beq 3 ,mouse_wheel_scan_judge33 
+0x4fb4 018149 rtn 
+:      018150 mouse_wheel_scan_judge30:
+0x4fb5 018151 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x4fb6 018152 beq 3 ,mouse_wheel_forward 
+0x4fb7 018153 rtn 
+:      018154 mouse_wheel_scan_judge31:
+0x4fb8 018155 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x4fb9 018156 beq 0 ,mouse_wheel_forward 
+0x4fba 018157 rtn 
+:      018158 mouse_wheel_scan_judge32:
+0x4fbb 018159 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x4fbc 018160 beq 3 ,mouse_wheel_back 
+0x4fbd 018161 rtn 
+:      018162 mouse_wheel_scan_judge33:
+0x4fbe 018163 fetch 1 ,mem_mwheel_b_new_pinlevel 
+0x4fbf 018164 beq 0 ,mouse_wheel_back 
+0x4fc0 018165 rtn 
+:      018166 mouse_wheel_forward:
+0x4fc1 018167 fetch 1 ,mem_mouse_z_data 
+0x4fc2 018168 increase 1 ,pdata 
+0x4fc3 018169 store 1 ,mem_mouse_z_data 
+0x4fc4 018170 rtn 
+:      018171 mouse_wheel_back:
+0x4fc5 018172 fetch 1 ,mem_mouse_z_data 
+0x4fc6 018173 increase -1 ,pdata 
+0x4fc7 018174 store 1 ,mem_mouse_z_data 
+0x4fc8 018175 rtn 
+:      018177 mouse_before_hibernate_wheel_gpio_set:
+0x4fc9 018178 fetcht 1 ,mem_whee_a_data_gpio 
+0x4fca 018179 call mouse_gpio_set_pupd_by_input 
+0x4fcb 018180 fetcht 1 ,mem_whee_b_data_gpio 
+0x4fcc 018181 call mouse_gpio_set_pupd_by_input 
+0x4fcd 018182 fetcht 1 ,mem_whee_ta_data_gpio 
+0x4fce 018183 call mouse_gpio_set_pupd_by_input 
+0x4fcf 018184 fetcht 1 ,mem_whee_tb_data_gpio 
+0x4fd0 018185 branch mouse_gpio_set_pupd_by_input 
+:      018187 mouse_wheel_trigger:
+0x4fd1 018188 fetch 2 ,mem_mouse_z 
+0x4fd2 018189 rtn blank 
+0x4fd3 018190 jam 1 ,mem_mouse_wheel_trigger 
+0x4fd4 018191 jam 10 ,mem_mouse_wheel_trigger_timer 
+0x4fd5 018192 rtn 
+:      018194 mouse_wheel_trigger_timer:
+0x4fd6 018195 arg mem_mouse_wheel_trigger_timer ,regc 
+0x4fd7 018196 arg mouse_wheel_trigger_disable ,regb 
+0x4fd8 018197 branch timer_single_step 
+:      018198 mouse_wheel_trigger_disable:
+0x4fd9 018199 jam 0 ,mem_mouse_wheel_trigger 
+0x4fda 018200 rtn 
+:      018208 mouse_dpi_check:
+0x4fdb 018209 fetch 1 ,mem_dpi_button_gpio 
+0x4fdc 018210 rtneq gpio_disable 
+0x4fdd 018211 arg 0 ,rega 
+0x4fde 018212 jam mouse_dpi_key ,mem_mouse_key_temp 
+0x4fdf 018213 fetcht 1 ,mem_dpi_button_gpio 
+0x4fe0 018214 call mouse_dpi_key_check 
+0x4fe1 018215 store 1 ,mem_mouse_dpikey_press_status 
+0x4fe2 018216 fetch 1 ,mem_matrix_public_gpio 
+0x4fe3 018217 beq gpio_disable ,mouse_3io6key_dpi_check_end 
+0x4fe4 018218 call mouse_matrix_public_gpio_reset 
+:      018219 mouse_dpi_check_exit:
+0x4fe5 018220 copy rega ,pdata 
+0x4fe6 018221 bbit1 mouse_dpi_key ,mouse_dpi_down 
+0x4fe7 018222 branch mouse_dpi_up 
+:      018224 mouse_dpi_key_check:
+0x4fe8 018225 fetch mouse_flag_len ,mem_mouse_flag 
+0x4fe9 018226 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+0x4fea 018227 fetch 1 ,mem_mouse_dpikey_press_status 
+0x4feb 018228 copy pdata ,regc 
+0x4fec 018229 fetch 1 ,mem_matrix_public_gpio 
+0x4fed 018230 beq gpio_disable ,mouse_dpi_3io6key_check 
+0x4fee 018231 fetch 1 ,mem_mouse_ghost_flag 
+0x4fef 018232 nbranch mouse_dpi_check_end ,blank 
+:      018233 mouse_dpi_key_connect_matrix:
+0x4ff0 018234 call gpio_get_bit 
+0x4ff1 018235 fetcht 1 ,mem_matrix_public_gpio 
+0x4ff2 018236 branch mouse_dpi_key_connect_gnd ,true 
+0x4ff3 018237 fetcht 1 ,mem_matrix_public_gpio 
+0x4ff4 018238 call gpio_out_active 
+0x4ff5 018239 fetcht 1 ,mem_dpi_button_gpio 
+0x4ff6 018240 fetch 1 ,mem_mouse_dpikey_press_status 
+0x4ff7 018241 branch mouse_check_key_connect_gnd 
+:      018243 mouse_dpi_3io6key_check:
+0x4ff8 018244 fetch 1 ,mem_dpi_button_gpio 
+0x4ff9 018245 call mouse_gpio_config_output_low 
+0x4ffa 018246 fetcht 1 ,mem_dpi_button_gpio 
+0x4ffb 018247 branch mouse_3io6key_check 
+:      018250 mouse_3io6key_dpi_check_end:
+0x4ffc 018251 fetcht 1 ,mem_dpi_button_gpio 
+0x4ffd 018252 call device_gpio_config_input_pu 
+0x4ffe 018253 branch mouse_dpi_check_exit 
+:      018255 mouse_dpi_check_end:
+0x4fff 018256 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x5000 018257 jam 0 ,mem_mouse_dpikey_press_status 
+0x5001 018258 rtn 
+:      018260 mouse_dpi_key_connect_gnd:
+0x5002 018261 fetch 1 ,mem_mouse_dpikey_press_status 
+0x5003 018262 branch mouse_check_key_connect_gnd 
+:      018264 mouse_dpi_down:
+0x5004 018265 fetch 1 ,mem_mouse_dpi_button_state 
+0x5005 018266 rtneq dpi_button_state_down 
+0x5006 018267 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+0x5007 018268 fetch mouse_flag_len ,mem_mouse_flag 
+0x5008 018269 rtnbit1 mouse_enable_select_device_by_dpi_button 
+0x5009 018270 rtnbit1 mouse_enable_dpi_key_long_press_disconvery 
+0x500a 018271 branch mouse_dpi_process 
+:      018273 mouse_dpi_up:
+0x500b 018274 fetch 1 ,mem_mouse_dpi_button_state 
+0x500c 018275 rtneq dpi_button_state_up 
+0x500d 018276 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+0x500e 018277 fetch mouse_flag_len ,mem_mouse_flag 
+0x500f 018278 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_dpi_up_next 
+0x5010 018279 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_dpi_up_next 
+0x5011 018280 rtn 
+:      018281 mouse_dpi_up_next:
+0x5012 018282 fetch 1 ,mem_mouse_dpi_long_press_flag 
+0x5013 018283 nbranch mouse_dpi_up_after_long_press ,blank 
+0x5014 018284 fetch 1 ,mem_select_device_count 
+0x5015 018285 ncall mouse_dpi_process ,blank 
+:      018286 mouse_dpi_up_after_long_press:
+0x5016 018287 jam 0 ,mem_mouse_dpi_long_press_flag 
+0x5017 018288 fetch 1 ,mem_ui_button_timeout 
+0x5018 018289 store 1 ,mem_select_device_count 
+0x5019 018290 store 1 ,mem_bt_discovery_count 
+0x501a 018291 rtn 
+:      018293 mouse_dpi_process:
+0x501b 018294 bpatch patch10_5 ,mem_patch10 
+0x501c 018295 call mouse_dpi_ghost_check 
+0x501d 018296 rtn user 
+:      018297 mouse_dpi_process_skip_ghost:
+0x501e 018298 fetch 1 ,mem_mouse_dpi 
+0x501f 018300 copy pdata ,temp 
+0x5020 018301 fetch mouse_flag_len ,mem_mouse_flag 
+0x5021 018302 bbit1 mouse_enable_double_dpi_key ,mouse_double_dpi_check 
+0x5022 018303 copy temp ,pdata 
+0x5023 018305 increase 1 ,pdata 
+0x5024 018306 and pdata ,0x03 ,pdata 
+:      018307 mouse_dpi_level_store:
+0x5025 018308 store 1 ,mem_mouse_dpi 
+0x5026 018309 call mouse_setting_dpi 
+0x5027 018310 branch mouse_store_dpi_info_check 
+:      018315 mouse_double_dpi_check:
+0x5028 018316 fetch 1 ,mem_dpi_another_button_down_enable 
+0x5029 018317 nbranch mouse_another_dpi_button_down ,blank 
+:      018318 mouse_dpi_increase:
+0x502a 018319 fetch mouse_flag_len ,mem_mouse_flag 
+0x502b 018320 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_increase_level_4 
+0x502c 018321 copy temp ,pdata 
+0x502d 018322 rtneq mouse_dpi_level2 
+:      018323 mouse_dpi_increase_level:
+0x502e 018324 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+0x502f 018325 beq mouse_dpi_level3 ,mouse_dpi_level_2 
+0x5030 018326 rtn 
+:      018328 mouse_dpi_level_1:
+0x5031 018329 setarg 2 
+0x5032 018330 branch mouse_dpi_level_store 
+:      018331 mouse_dpi_level_2:
+0x5033 018332 setarg 0 
+0x5034 018333 branch mouse_dpi_level_store 
+:      018334 mouse_dpi_level_3:
+0x5035 018335 setarg 1 
+0x5036 018336 branch mouse_dpi_level_store 
+:      018337 mouse_dpi_level_4:
+0x5037 018338 setarg 3 
+0x5038 018339 branch mouse_dpi_level_store 
+:      018341 mouse_dpi_increase_level_4:
+0x5039 018342 copy temp ,pdata 
+0x503a 018343 rtneq mouse_dpi_level2 
+0x503b 018344 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+0x503c 018345 beq mouse_dpi_level3 ,mouse_dpi_level_4 
+0x503d 018346 beq mouse_dpi_level4 ,mouse_dpi_level_2 
+0x503e 018347 rtn 
+:      018348 mouse_dpi_decrease_level_4:
+0x503f 018349 copy temp ,pdata 
+0x5040 018350 rtneq mouse_dpi_level3 
+0x5041 018351 beq mouse_dpi_level1 ,mouse_dpi_level_4 
+0x5042 018352 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+0x5043 018353 beq mouse_dpi_level4 ,mouse_dpi_level_1 
+0x5044 018354 rtn 
+:      018356 mouse_another_dpi_button_down:
+:      018357 mouse_dpi_decrease:
+0x5045 018358 fetch mouse_flag_len ,mem_mouse_flag 
+0x5046 018359 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_decrease_level_4 
+0x5047 018360 copy temp ,pdata 
+0x5048 018361 rtneq mouse_dpi_level3 
+:      018362 mouse_dpi_decrease_level:
+0x5049 018363 beq mouse_dpi_level1 ,mouse_dpi_level_1 
+0x504a 018364 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+0x504b 018365 rtn 
+:      018370 mouse_dpi_ghost_check:
+0x504c 018371 disable user 
+0x504d 018372 fetch mouse_flag_len ,mem_mouse_flag 
+0x504e 018373 rtnbit1 mouse_enable_dpi_key_connect_gnd 
+0x504f 018374 branch mouse_ghost_key_value_check 
+:      018376 mouse_dpi_key_check_long_press:
+0x5050 018377 fetch mouse_flag_len ,mem_mouse_flag 
+0x5051 018378 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_select_device_by_dpi_button 
+0x5052 018379 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_discovery_by_dpi_button 
+0x5053 018380 rtn 
+:      018382 mouse_select_device_by_dpi_button:
+0x5054 018383 fetch 1 ,mem_mouse_dpi_button_state 
+0x5055 018384 rtnne dpi_button_state_down 
+0x5056 018385 arg mem_select_device_count ,regc 
+0x5057 018386 arg mouse_ready_reconnection_by_dpi_button ,regb 
+0x5058 018387 branch timer_single_step 
+:      018389 mouse_ready_reconnection_by_dpi_button:
+0x5059 018390 jam 1 ,mem_mouse_dpi_long_press_flag 
+0x505a 018391 branch mouse_ready_reconnection_by_button 
+:      018393 mouse_discovery_by_dpi_button:
+0x505b 018394 fetch 1 ,mem_mouse_dpi_button_state 
+0x505c 018395 rtnne dpi_button_state_down 
+0x505d 018396 arg mem_bt_discovery_count ,regc 
+0x505e 018397 arg mouse_long_dpi_button_bt_discovery ,regb 
+0x505f 018398 branch timer_single_step 
+:      018400 mouse_long_dpi_button_bt_discovery:
+0x5060 018401 jam 1 ,mem_mouse_dpi_long_press_flag 
+0x5061 018402 branch mouse_long_button_bt_discovery 
+:      018404 mouse_setting_dpi_4_level:
+0x5062 018405 fetch mouse_flag_len ,mem_mouse_flag 
+0x5063 018406 rtnbit1 mouse_enable_dpi_level_4 
+0x5064 018407 fetch 1 ,mem_mouse_dpi 
+0x5065 018408 rtnne mouse_dpi_level4 
+0x5066 018409 jam mouse_dpi_level1 ,mem_mouse_dpi 
+0x5067 018410 rtn 
+:      018412 mouse_setting_dpi:
+0x5068 018413 bpatch patch10_6 ,mem_patch10 
+0x5069 018414 call mouse_setting_dpi_4_level 
+0x506a 018415 call mouse_dpi_led_blink_delay 
+:      018416 mouse_setting_sensor_type:
+0x506b 018417 bpatch patch10_7 ,mem_patch10 
+0x506c 018418 fetch 1 ,mem_config_sensor_type 
+0x506d 018419 beq s201x ,mouse_seting_s201_dpi 
+0x506e 018420 beq p3212 ,mouse_seting_3212_dpi 
+0x506f 018421 beq ka8g2 ,mouse_seting_ka8g2_dpi 
+0x5070 018422 fetch 1 ,mem_mouse_dpi 
+0x5071 018423 beq mouse_dpi_level1 ,mouse_set_cpi0 
+0x5072 018424 beq mouse_dpi_level2 ,mouse_set_cpi1 
+0x5073 018425 beq mouse_dpi_level3 ,mouse_set_cpi2 
+0x5074 018426 beq mouse_dpi_level4 ,mouse_set_cpi3 
+:      018427 mouse_set_cpi1:
+0x5075 018428 fetcht 1 ,mem_320x_dpi_1 
+0x5076 018429 branch mouse_dpi_store 
+:      018430 mouse_set_cpi0:
+0x5077 018431 fetcht 1 ,mem_320x_dpi_0 
+0x5078 018432 branch mouse_dpi_store 
+:      018433 mouse_set_cpi2:
+0x5079 018434 fetcht 1 ,mem_320x_dpi_2 
+0x507a 018435 branch mouse_dpi_store 
+:      018436 mouse_set_cpi3:
+0x507b 018437 fetcht 1 ,mem_320x_dpi_3 
+:      018438 mouse_dpi_store:
+0x507c 018439 fetch 1 ,mem_config_sensor_type 
+0x507d 018440 beq p3065_xy ,mouse_3065xy_set_dpi 
+0x507e 018441 beq mx8650 ,mouse_3065xy_set_dpi 
+0x507f 018442 beq ka8 ,mouse_ka8_set_dpi 
+0x5080 018443 beq p6520 ,mouse_ka8_set_dpi 
+0x5081 018444 beq p8009 ,mouse_3065xy_set_dpi 
+:      018445 mouse_dpi_write:
+0x5082 018446 storet 1 ,mem_mouse_cpi_count 
+0x5083 018447 setarg mouse_dpi_address 
+0x5084 018448 call twspi_read 
+0x5085 018449 and pdata ,0xf8 ,temp 
+0x5086 018450 fetch 1 ,mem_mouse_cpi_count 
+0x5087 018451 iadd temp ,pdata 
+0x5088 018452 lshift8 pdata ,pdata 
+0x5089 018453 add pdata ,mouse_dpi_address ,pdata 
+0x508a 018454 branch twspi_write 
+:      018456 mouse_3065xy_set_dpi:
+0x508b 018457 increase -1 ,temp 
+0x508c 018458 branch mouse_dpi_write 
+:      018460 mouse_ka8_set_dpi:
+0x508d 018461 increase 2 ,temp 
+0x508e 018462 branch mouse_dpi_write 
+:      018464 mouse_seting_s201_dpi:
+0x508f 018465 fetch 1 ,mem_mouse_dpi 
+0x5090 018466 beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
+0x5091 018467 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
+0x5092 018468 beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
+0x5093 018469 beq mouse_dpi_level4 ,mouse_set_s201_dpi_4 
+0x5094 018470 rtn 
+:      018471 mouse_set_s201_dpi_0:
+0x5095 018472 fetch 1 ,mem_sensor_s201_dpi_0 
+0x5096 018473 branch mouse_dpi_s201_store 
+:      018475 mouse_set_s201_dpi_1:
+0x5097 018476 fetch 1 ,mem_sensor_s201_dpi_1 
+0x5098 018477 branch mouse_dpi_s201_store 
+:      018479 mouse_set_s201_dpi_2:
+0x5099 018480 fetch 1 ,mem_sensor_s201_dpi_2 
+0x509a 018481 branch mouse_dpi_s201_store 
+:      018483 mouse_set_s201_dpi_3:
+0x509b 018484 fetch 1 ,mem_sensor_s201_dpi_3 
+0x509c 018485 branch mouse_dpi_s201_store 
+:      018487 mouse_set_s201_dpi_4:
+0x509d 018488 fetch 1 ,mem_sensor_s201_dpi_4 
+:      018489 mouse_dpi_s201_store:
+0x509e 018490 copy pdata ,rega 
+0x509f 018491 setarg 0xc309 
+0x50a0 018492 call twspi_write 
+0x50a1 018493 copy rega ,pdata 
+0x50a2 018494 lshift8 pdata ,pdata 
+0x50a3 018495 add pdata ,0x23 ,pdata 
+0x50a4 018496 call twspi_write 
+:      018497 mouse_sensor_enable_wp:
+0x50a5 018498 setarg 0x0009 
+0x50a6 018499 branch twspi_write 
+:      018500 mouse_sensor_disable_wp:
+0x50a7 018501 setarg 0x5a09 
+0x50a8 018502 branch twspi_write 
+:      018504 mouse_seting_3212_dpi:
+0x50a9 018505 fetch 1 ,mem_mouse_dpi 
+0x50aa 018506 beq mouse_dpi_level1 ,mouse_set_p3212_cpi0 
+0x50ab 018507 beq mouse_dpi_level2 ,mouse_set_p3212_cpi1 
+0x50ac 018508 beq mouse_dpi_level3 ,mouse_set_p3212_cpi2 
+0x50ad 018509 beq mouse_dpi_level4 ,mouse_set_p3212_cpi3 
+:      018510 mouse_set_p3212_cpi1:
+0x50ae 018511 fetch 1 ,mem_3212_dpi_1 
+0x50af 018512 branch mouse_p3212_dpi 
+:      018513 mouse_set_p3212_cpi0:
+0x50b0 018514 fetch 1 ,mem_3212_dpi_0 
+0x50b1 018515 branch mouse_p3212_dpi 
+:      018516 mouse_set_p3212_cpi2:
+0x50b2 018517 fetch 1 ,mem_3212_dpi_2 
+0x50b3 018518 branch mouse_p3212_dpi 
+:      018519 mouse_set_p3212_cpi3:
+0x50b4 018520 fetch 1 ,mem_3212_dpi_3 
+:      018521 mouse_p3212_dpi:
+0x50b5 018522 store 1 ,mem_mouse_cpi_count 
+0x50b6 018523 lshift8 pdata ,pdata 
+0x50b7 018524 copy pdata ,rega 
+0x50b8 018525 add pdata ,mouse_p3212_dpi_xaddress ,pdata 
+0x50b9 018526 call twspi_write 
+0x50ba 018527 copy rega ,pdata 
+0x50bb 018528 add pdata ,mouse_p3212_dpi_yaddress ,pdata 
+0x50bc 018529 branch twspi_write 
+:      018531 mouse_seting_ka8g2_dpi:
+0x50bd 018532 fetch 1 ,mem_mouse_dpi 
+0x50be 018533 beq mouse_dpi_level1 ,mouse_set_pka8g2_cpi0 
+0x50bf 018534 beq mouse_dpi_level2 ,mouse_set_pka8g2_cpi1 
+0x50c0 018535 beq mouse_dpi_level3 ,mouse_set_pka8g2_cpi2 
+0x50c1 018536 beq mouse_dpi_level4 ,mouse_set_pka8g2_cpi3 
+:      018537 mouse_set_pka8g2_cpi1:
+0x50c2 018538 fetch 1 ,mem_ka8g2_dpi_1 
+0x50c3 018539 branch mouse_p3212_dpi 
+:      018541 mouse_set_pka8g2_cpi0:
+0x50c4 018542 fetch 1 ,mem_ka8g2_dpi_0 
+0x50c5 018543 branch mouse_p3212_dpi 
+:      018545 mouse_set_pka8g2_cpi2:
+0x50c6 018546 fetch 1 ,mem_ka8g2_dpi_2 
+0x50c7 018547 branch mouse_p3212_dpi 
+:      018549 mouse_set_pka8g2_cpi3:
+0x50c8 018550 fetch 1 ,mem_ka8g2_dpi_3 
+0x50c9 018551 branch mouse_p3212_dpi 
+:      018559 mouse_key:
+0x50ca 018560 call mouse_check_firekey_gpio 
+0x50cb 018561 fetch 1 ,mem_fire_key_flag 
+0x50cc 018562 nbranch fire_key_press ,blank 
+0x50cd 018563 fetch 1 ,mem_fire_key_status 
+0x50ce 018564 nbranch fire_key_process ,blank 
+0x50cf 018566 call mouse_check_key_gpio 
+0x50d0 018567 call mouse_ghost_key_check 
+0x50d1 018568 call mouse_set_mult 
+0x50d2 018569 call mouse_24g_key 
+0x50d3 018570 copy rega ,pdata 
+0x50d4 018571 fetcht 1 ,mem_mouse_key_last 
+0x50d5 018572 store 1 ,mem_mouse_key_last 
+0x50d6 018573 store 1 ,mem_mouse_key 
+0x50d7 018574 ixor temp ,pdata 
+0x50d8 018575 sub pdata ,0 ,null 
+0x50d9 018576 rtn zero 
+0x50da 018577 branch enable_user 
+:      018579 mouse_24g_key:
+0x50db 018580 rtnmark0 mark_24g 
+0x50dc 018581 copy rega ,pdata 
+0x50dd 018582 rtn blank 
+0x50de 018583 store 1 ,mem_mouse_key 
+0x50df 018584 branch enable_user 
+:      018589 mouse_ghost_key_check:
+0x50e0 018590 jam 0 ,mem_mouse_matrix_key_cow_count 
+0x50e1 018591 jam 0 ,mem_mouse_matrix_key_row_count 
+0x50e2 018592 jam 0 ,mem_mouse_ghost_flag 
+0x50e3 018593 copy pdata ,regb 
+0x50e4 018594 fetcht 1 ,mem_lbutton_gpio 
+0x50e5 018595 fetch 1 ,mem_bk_button_gpio 
+0x50e6 018596 isub temp ,null 
+0x50e7 018597 branch mouse_matrix_ghost_key_l_bk ,zero 
+0x50e8 018598 fetch 1 ,mem_fw_button_gpio 
+0x50e9 018599 isub temp ,null 
+0x50ea 018600 branch mouse_matrix_ghost_key_l_fw ,zero 
+0x50eb 018601 fetcht 1 ,mem_mbutton_gpio 
+0x50ec 018602 fetch 1 ,mem_bk_button_gpio 
+0x50ed 018603 isub temp ,null 
+0x50ee 018604 branch mouse_ghost_key_mbk_rfw ,zero 
+0x50ef 018605 branch mouse_ghost_key_mfw_rbk 
+:      018607 mouse_matrix_ghost_key_l_bk:
+0x50f0 018608 fetcht 1 ,mem_mbutton_gpio 
+0x50f1 018609 fetch 1 ,mem_fw_button_gpio 
+0x50f2 018610 isub temp ,null 
+0x50f3 018611 branch mouse_ghost_key_lbk_mfw ,zero 
+0x50f4 018612 branch mouse_ghost_key_lbk_rfw 
+:      018614 mouse_matrix_ghost_key_l_fw:
+0x50f5 018615 fetcht 1 ,mem_mbutton_gpio 
+0x50f6 018616 fetch 1 ,mem_bk_button_gpio 
+0x50f7 018617 isub temp ,null 
+0x50f8 018618 branch mouse_ghost_key_lfw_mbk ,zero 
+0x50f9 018619 branch mouse_ghost_key_lfw_rbk 
+:      018621 mouse_ghost_key_lbk_mfw:
+0x50fa 018622 call mouse_ghost_key_check_l_bk 
+0x50fb 018623 call mouse_ghost_key_check_m_fw 
+0x50fc 018624 branch mouse_ghost_key_check_next 
+:      018626 mouse_ghost_key_lbk_rfw:
+0x50fd 018627 call mouse_ghost_key_check_l_bk 
+0x50fe 018628 branch mouse_ghost_key_rfw 
+:      018630 mouse_ghost_key_lfw_mbk:
+0x50ff 018631 call mouse_ghost_key_check_l_fw 
+0x5100 018632 call mouse_ghost_key_check_m_bk 
+0x5101 018633 branch mouse_ghost_key_check_next 
+:      018635 mouse_ghost_key_lfw_rbk:
+0x5102 018636 call mouse_ghost_key_check_l_fw 
+0x5103 018637 branch mouse_ghost_key_rbk 
+:      018639 mouse_ghost_key_mbk_rfw:
+0x5104 018640 call mouse_ghost_key_check_m_bk 
+:      018641 mouse_ghost_key_rfw:
+0x5105 018642 call mouse_ghost_key_check_r_fw 
+0x5106 018643 branch mouse_ghost_key_check_next 
+:      018645 mouse_ghost_key_mfw_rbk:
+0x5107 018646 call mouse_ghost_key_check_m_fw 
+:      018647 mouse_ghost_key_rbk:
+0x5108 018648 call mouse_ghost_key_check_r_bk 
+:      018649 mouse_ghost_key_check_next:
+0x5109 018650 call mouse_ghost_key_check_bk_fw 
+0x510a 018651 call mouse_ghost_key_check_lmr 
+0x510b 018652 fetch 1 ,mem_mouse_matrix_key_row_count 
+0x510c 018653 rtn blank 
+0x510d 018654 fetch 1 ,mem_mouse_matrix_key_cow_count 
+0x510e 018655 rtn blank 
+0x510f 018656 jam 1 ,mem_mouse_ghost_flag 
+0x5110 018657 fetch 1 ,mem_mouse_key_last 
+0x5111 018658 copy pdata ,rega 
+0x5112 018659 rtn 
+:      018661 mouse_ghost_key_check_l_bk:
+0x5113 018662 and regb ,mouse_l_bk_button ,pdata 
+0x5114 018663 beq mouse_l_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x5115 018664 rtn 
+:      018665 mouse_ghost_key_check_m_bk:
+0x5116 018666 and regb ,mouse_m_bk_button ,pdata 
+0x5117 018667 beq mouse_m_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x5118 018668 rtn 
+:      018669 mouse_ghost_key_check_r_bk:
+0x5119 018670 and regb ,mouse_r_bk_button ,pdata 
+0x511a 018671 beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
+0x511b 018672 rtn 
+:      018673 mouse_ghost_key_check_l_fw:
+0x511c 018674 and regb ,mouse_l_fw_button ,pdata 
+0x511d 018675 beq mouse_l_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x511e 018676 rtn 
+:      018677 mouse_ghost_key_check_m_fw:
+0x511f 018678 and regb ,mouse_m_fw_button ,pdata 
+0x5120 018679 beq mouse_m_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x5121 018680 rtn 
+:      018681 mouse_ghost_key_check_r_fw:
+0x5122 018682 and regb ,mouse_r_fw_button ,pdata 
+0x5123 018683 beq mouse_r_fw_button ,mouse_matrix_cow_more_than_one_key 
+0x5124 018684 rtn 
+:      018686 mouse_ghost_key_check_bk_fw:
+0x5125 018687 and regb ,mouse_bk_fw_button ,pdata 
+0x5126 018688 beq mouse_bk_fw_button ,mouse_matrix_row_more_than_one_key 
+0x5127 018689 rtn 
+:      018691 mouse_ghost_key_check_lmr:
+0x5128 018692 and temp ,mouse_lmr_button ,pdata 
+0x5129 018693 beq mouse_lr_button ,mouse_matrix_row_more_than_one_key 
+0x512a 018694 beq mouse_lm_button ,mouse_matrix_row_more_than_one_key 
+0x512b 018695 beq mouse_rm_button ,mouse_matrix_row_more_than_one_key 
+0x512c 018696 beq mouse_lmr_button ,mouse_matrix_row_more_than_one_key 
+0x512d 018697 rtn 
+:      018700 mouse_matrix_row_more_than_one_key:
+0x512e 018701 jam 1 ,mem_mouse_matrix_key_row_count 
+0x512f 018702 rtn 
+:      018704 mouse_matrix_cow_more_than_one_key:
+0x5130 018705 jam 1 ,mem_mouse_matrix_key_cow_count 
+0x5131 018706 rtn 
+:      018714 mouse_dpi_another_gpio_check:
+0x5132 018715 fetch mouse_flag_len ,mem_mouse_flag 
+0x5133 018716 rtnbit0 mouse_enable_double_dpi_key 
+0x5134 018717 bbit0 mouse_enable_another_dpi_key_connect_gnd ,mouse_dpi_another_gpio_connect_vin_check 
+:      018718 mouse_dpi_another_gpio_connect_gnd_check:
+0x5135 018719 fetch 1 ,mem_dpi_another_button_gpio 
+0x5136 018720 call mouse_gpio_config_output_high 
+0x5137 018721 call mouse_dpi_another_check 
+0x5138 018722 fetcht 1 ,mem_dpi_another_button_gpio 
+0x5139 018723 branch device_gpio_config_input_pu 
+:      018725 mouse_dpi_another_gpio_connect_vin_check:
+0x513a 018726 fetch 1 ,mem_dpi_another_button_gpio 
+0x513b 018727 call mouse_gpio_config_output_low 
+0x513c 018728 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0x513d 018729 fetcht 1 ,mem_dpi_another_button_gpio 
+0x513e 018730 fetch 1 ,mem_dpi_another_press_status 
+0x513f 018731 call mouse_check_key_connect_vin_new 
+0x5140 018732 call mouse_dpi_another_state_check 
+0x5141 018733 fetcht 1 ,mem_dpi_another_button_gpio 
+0x5142 018734 branch device_gpio_config_input_pu 
+:      018736 mouse_dpi_another_down_new:
+0x5143 018737 call device_gpio_config_input_pu 
+0x5144 018738 fetch 1 ,mem_dpi_another_button_state 
+0x5145 018739 rtneq dpi_button_state_down 
+0x5146 018740 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0x5147 018741 branch mouse_dpi_process 
+:      018743 mouse_dpi_another_check:
+0x5148 018744 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0x5149 018745 fetcht 1 ,mem_dpi_another_button_gpio 
+0x514a 018746 fetch 1 ,mem_dpi_another_press_status 
+0x514b 018747 call mouse_check_key_connect_gnd_new 
+:      018748 mouse_dpi_another_state_check:
+0x514c 018749 store 1 ,mem_dpi_another_press_status 
+0x514d 018750 fetch 1 ,mem_dpi_another_button_down_enable 
+0x514e 018751 branch mouse_dpi_another_up ,blank 
+:      018752 mouse_dpi_another_down:
+0x514f 018753 fetch 1 ,mem_dpi_another_button_state 
+0x5150 018754 rtneq dpi_button_state_down 
+0x5151 018755 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0x5152 018756 branch mouse_dpi_process 
+:      018758 mouse_dpi_another_up:
+0x5153 018759 fetch 1 ,mem_dpi_another_button_state 
+0x5154 018760 rtneq dpi_button_state_up 
+0x5155 018761 jam dpi_button_state_up ,mem_dpi_another_button_state 
+0x5156 018762 rtn 
+:      018764 mouse_check_key_connect_gnd_new:
+0x5157 018765 lshift pdata ,pdata 
+0x5158 018766 copy pdata ,regb 
+0x5159 018767 call gpio_get_bit 
+0x515a 018768 setflag true ,0 ,regb 
+0x515b 018769 and regb ,0x07 ,pdata 
+0x515c 018770 fetcht 1 ,mem_mouse_key_temp_patch 
+0x515d 018771 copy temp ,queue 
+0x515e 018772 beq 0x07 ,mouse_another_dpi_key_press 
+0x515f 018773 beq 0x00 ,mouse_another_dpi_key_release 
+0x5160 018774 rtn 
+:      018776 mouse_check_key_connect_vin_new:
+0x5161 018777 lshift pdata ,pdata 
+0x5162 018778 copy pdata ,regb 
+0x5163 018779 call device_gpio_config_input_pd 
+0x5164 018780 call gpio_get_bit 
+0x5165 018781 setflag true ,0 ,regb 
+0x5166 018782 and regb ,0x07 ,pdata 
+0x5167 018783 fetcht 1 ,mem_mouse_key_temp_patch 
+0x5168 018784 copy temp ,queue 
+0x5169 018785 beq 0x07 ,mouse_another_dpi_key_press 
+0x516a 018786 beq 0x00 ,mouse_another_dpi_key_release 
+0x516b 018787 rtn 
+:      018789 mouse_another_dpi_key_press:
+0x516c 018790 jam 1 ,mem_dpi_another_button_down_enable 
+0x516d 018791 rtn 
+:      018792 mouse_another_dpi_key_release:
+0x516e 018793 jam 0 ,mem_dpi_another_button_down_enable 
+0x516f 018794 rtn 
+:      018802 mouse_check_firekey_gpio:
+0x5170 018803 arg 0 ,regb 
+0x5171 018804 fetch 1 ,mem_firebutton_gpio 
+0x5172 018805 rtneq gpio_disable 
+0x5173 018806 fetch mouse_flag_len ,mem_mouse_flag 
+0x5174 018807 bbit0 mouse_enable_fire_key_connect_gnd ,mouse_check_firekey_connect_vin 
+:      018808 mouse_check_firekey_connect_gnd:
+0x5175 018809 fetcht 1 ,mem_firebutton_gpio 
+0x5176 018810 call device_gpio_config_input_pu 
+0x5177 018811 fetcht 1 ,mem_firebutton_gpio 
+0x5178 018812 call gpio_get_bit 
+0x5179 018813 setflag true ,0 ,regb 
+:      018814 mouse_firekey_state_store:
+0x517a 018815 copy regb ,pdata 
+0x517b 018816 store 1 ,mem_fire_key_flag 
+0x517c 018817 rtn 
+:      018819 mouse_check_firekey_connect_vin:
+0x517d 018820 fetcht 1 ,mem_firebutton_gpio 
+0x517e 018821 call device_gpio_config_input_pd 
+0x517f 018822 fetcht 1 ,mem_firebutton_gpio 
+0x5180 018823 call gpio_get_bit 
+0x5181 018824 nsetflag true ,0 ,regb 
+0x5182 018825 branch mouse_firekey_state_store 
+:      018827 fire_key_process:
+0x5183 018828 beq 4 ,fire_key_process_end 
+:      018829 fire_key_press:
+0x5184 018830 call firekey_clkn_bt_timer_check 
+0x5185 018831 fetch 4 ,mem_fire_key_delay 
+0x5186 018832 arg 0xa0 ,temp 
+0x5187 018833 iadd temp ,temp 
+0x5188 018834 copy clkn_bt ,pdata 
+0x5189 018835 isub temp ,null 
+0x518a 018836 nrtn positive 
+0x518b 018837 store 4 ,mem_fire_key_delay 
+0x518c 018838 fetch 1 ,mem_fire_key_status 
+0x518d 018839 beq 0 ,fire_key_process_start 
+0x518e 018840 beq 1 ,fire_key_process_release1 
+0x518f 018841 beq 2 ,fire_key_process_start2 
+0x5190 018842 beq 3 ,fire_key_process_release2 
+0x5191 018843 rtn 
+:      018845 fire_key_process_start:
+0x5192 018846 jam 1 ,mem_fire_key_status 
+:      018847 fire_key_down:
+0x5193 018848 jam 1 ,mem_mouse_key 
+0x5194 018849 branch enable_user 
+:      018851 fire_key_process_release1:
+0x5195 018852 jam 2 ,mem_fire_key_status 
+:      018853 fire_key_release:
+0x5196 018854 jam 0 ,mem_mouse_key 
+0x5197 018855 branch enable_user 
+:      018857 fire_key_process_start2:
+0x5198 018858 jam 3 ,mem_fire_key_status 
+0x5199 018859 branch fire_key_down 
+:      018861 fire_key_process_release2:
+0x519a 018862 jam 0 ,mem_fire_key_status 
+0x519b 018863 branch fire_key_release 
+:      018865 fire_key_process_end:
+0x519c 018866 jam 0 ,mem_fire_key_status 
+0x519d 018867 jam 0 ,mem_mouse_key 
+0x519e 018868 rtn 
+:      018870 firekey_clkn_bt_timer_check:
+0x519f 018871 fetcht 4 ,mem_fire_key_delay 
+0x51a0 018872 copy clkn_bt ,pdata 
+0x51a1 018873 isub temp ,null 
+0x51a2 018874 ncall firekey_clkn_bt_timer_timeout ,positive 
+0x51a3 018875 rtn 
+:      018876 firekey_clkn_bt_timer_timeout:
+0x51a4 018877 setarg 0 
+0x51a5 018878 store 4 ,mem_fire_key_delay 
+0x51a6 018879 rtn 
+:      018887 mouse_key_check_once:
+0x51a7 018888 call mouse_check_key_gpio_once 
+0x51a8 018889 call mouse_check_key_gpio 
+0x51a9 018890 setarg 0x00 
+0x51aa 018891 store 3 ,mem_mouse_lkey_press_status 
+0x51ab 018892 rtn 
+:      018894 mouse_check_key_gpio:
+0x51ac 018895 bpatch patch11_0 ,mem_patch11 
+0x51ad 018896 fetch 1 ,mem_24g_shutdown_flag 
+0x51ae 018897 ncall mouse_check_key_gpio_once ,blank 
+0x51af 018898 arg 0 ,rega 
+0x51b0 018899 call mouse_check_lkey_gpio 
+0x51b1 018900 call mouse_check_rkey_gpio 
+0x51b2 018901 call mouse_check_mkey_gpio 
+0x51b3 018902 call mouse_check_bkkey_gpio 
+0x51b4 018903 call mouse_check_fwkey_gpio 
+0x51b5 018904 call mouse_check_firekey_gpio 
+0x51b6 018905 call mouse_check_customerkey_gpio 
+0x51b7 018906 copy rega ,pdata 
+0x51b8 018907 rtn 
+:      018909 mouse_check_key_gpio_once:
+0x51b9 018910 setarg 0x030303 
+0x51ba 018911 store 3 ,mem_mouse_lkey_press_status 
+0x51bb 018912 rtn 
+:      018914 mouse_check_lkey_gpio:
+0x51bc 018915 fetch 1 ,mem_lbutton_gpio 
+0x51bd 018916 call mouse_gpio_config_output_high 
+0x51be 018917 jam mouse_l_key ,mem_mouse_key_temp 
+0x51bf 018918 fetcht 1 ,mem_lbutton_gpio 
+0x51c0 018919 fetch 1 ,mem_mouse_lkey_press_status 
+0x51c1 018920 call mouse_check_key_connect_gnd 
+0x51c2 018921 store 1 ,mem_mouse_lkey_press_status 
+0x51c3 018922 fetcht 1 ,mem_lbutton_gpio 
+0x51c4 018923 branch device_gpio_config_input_pu 
+:      018925 mouse_check_rkey_gpio:
+0x51c5 018926 fetch 1 ,mem_rbutton_gpio 
+0x51c6 018927 call mouse_gpio_config_output_high 
+0x51c7 018928 jam mouse_r_key ,mem_mouse_key_temp 
+0x51c8 018929 fetcht 1 ,mem_rbutton_gpio 
+0x51c9 018930 fetch 1 ,mem_mouse_rkey_press_status 
+0x51ca 018931 call mouse_check_key_connect_gnd 
+0x51cb 018932 store 1 ,mem_mouse_rkey_press_status 
+0x51cc 018933 fetcht 1 ,mem_rbutton_gpio 
+0x51cd 018934 branch device_gpio_config_input_pu 
+:      018936 mouse_check_mkey_gpio:
+0x51ce 018937 fetch 1 ,mem_mbutton_gpio 
+0x51cf 018938 call mouse_gpio_config_output_high 
+0x51d0 018939 jam mouse_m_key ,mem_mouse_key_temp 
+0x51d1 018940 fetcht 1 ,mem_mbutton_gpio 
+0x51d2 018941 fetch 1 ,mem_mouse_mkey_press_status 
+0x51d3 018942 call mouse_check_key_connect_gnd 
+0x51d4 018943 store 1 ,mem_mouse_mkey_press_status 
+0x51d5 018944 fetcht 1 ,mem_mbutton_gpio 
+0x51d6 018945 branch device_gpio_config_input_pu 
+:      018947 mouse_check_bkkey_gpio:
+0x51d7 018948 fetch 1 ,mem_bk_button_gpio 
+0x51d8 018949 rtneq gpio_disable 
+0x51d9 018950 jam mouse_bk_key ,mem_mouse_key_temp 
+0x51da 018951 fetch 1 ,mem_mouse_bkkey_press_status 
+0x51db 018952 copy pdata ,regc 
+0x51dc 018953 fetcht 1 ,mem_bk_button_gpio 
+0x51dd 018954 fetch 1 ,mem_matrix_public_gpio 
+0x51de 018955 beq gpio_disable ,mouse_3io6key_bk_check 
+0x51df 018956 call gpio_get_bit 
+0x51e0 018957 branch mouse_check_bk_button_connect_gnd ,true 
+0x51e1 018958 fetcht 1 ,mem_matrix_public_gpio 
+0x51e2 018959 call gpio_out_active 
+0x51e3 018960 fetcht 1 ,mem_bk_button_gpio 
+0x51e4 018961 fetch 1 ,mem_mouse_bkkey_press_status 
+0x51e5 018962 call mouse_check_key_connect_gnd 
+:      018963 mouse_check_bkkey_gpio_end:
+0x51e6 018964 store 1 ,mem_mouse_bkkey_press_status 
+0x51e7 018965 branch mouse_matrix_public_gpio_reset 
+:      018967 mouse_check_bk_button_connect_gnd:
+0x51e8 018968 fetcht 1 ,mem_matrix_public_gpio 
+0x51e9 018969 fetch 1 ,mem_mouse_bkkey_press_status 
+0x51ea 018970 call mouse_check_key_connect_gnd 
+0x51eb 018971 branch mouse_check_bkkey_gpio_end 
+:      018973 mouse_3io6key_bk_check:
+0x51ec 018974 fetch 1 ,mem_bk_button_gpio 
+0x51ed 018975 call mouse_gpio_config_output_low 
+0x51ee 018976 fetcht 1 ,mem_bk_button_gpio 
+0x51ef 018977 call mouse_3io6key_check 
+0x51f0 018978 store 1 ,mem_mouse_bkkey_press_status 
+0x51f1 018979 fetcht 1 ,mem_bk_button_gpio 
+0x51f2 018980 branch device_gpio_config_input_pu 
+:      018983 mouse_check_fwkey_gpio:
+0x51f3 018984 fetch 1 ,mem_fw_button_gpio 
+0x51f4 018985 rtneq gpio_disable 
+0x51f5 018986 jam mouse_fw_key ,mem_mouse_key_temp 
+0x51f6 018987 fetch 1 ,mem_mouse_fwkey_press_status 
+0x51f7 018988 copy pdata ,regc 
+0x51f8 018989 fetcht 1 ,mem_fw_button_gpio 
+0x51f9 018990 fetch 1 ,mem_matrix_public_gpio 
+0x51fa 018991 beq gpio_disable ,mouse_3io6key_fw_check 
+0x51fb 018992 call gpio_get_bit 
+0x51fc 018993 branch mouse_check_fw_button_connect_gnd ,true 
+0x51fd 018994 fetcht 1 ,mem_matrix_public_gpio 
+0x51fe 018995 call gpio_out_active 
+0x51ff 018996 fetcht 1 ,mem_fw_button_gpio 
+0x5200 018997 fetch 1 ,mem_mouse_fwkey_press_status 
+0x5201 018998 call mouse_check_key_connect_gnd 
+:      018999 mouse_check_fwkey_gpio_end:
+0x5202 019000 store 1 ,mem_mouse_fwkey_press_status 
+:      019001 mouse_matrix_public_gpio_reset:
+0x5203 019002 fetcht 1 ,mem_matrix_public_gpio 
+0x5204 019003 branch device_gpio_config_input_pu 
+:      019005 mouse_check_fw_button_connect_gnd:
+0x5205 019006 fetcht 1 ,mem_matrix_public_gpio 
+0x5206 019007 fetch 1 ,mem_mouse_fwkey_press_status 
+0x5207 019008 call mouse_check_key_connect_gnd 
+0x5208 019009 branch mouse_check_fwkey_gpio_end 
+:      019011 mouse_3io6key_fw_check:
+0x5209 019012 fetch 1 ,mem_fw_button_gpio 
+0x520a 019013 call mouse_gpio_config_output_low 
+0x520b 019014 fetcht 1 ,mem_fw_button_gpio 
+0x520c 019015 call mouse_3io6key_check 
+0x520d 019016 store 1 ,mem_mouse_fwkey_press_status 
+0x520e 019017 fetcht 1 ,mem_fw_button_gpio 
+0x520f 019018 branch device_gpio_config_input_pu 
+:      019020 mouse_check_customerkey_gpio:
+0x5210 019021 jam 0 ,mem_customer_key 
+0x5211 019022 fetch 1 ,mem_customer_key_gpio 
+0x5212 019023 rtneq gpio_disable 
+0x5213 019024 fetch mouse_flag_len ,mem_mouse_flag 
+0x5214 019025 rtnbit0 mouse_enable_keyboard 
+0x5215 019026 bbit1 mouse_enable_customer_key_connect_vin ,mouse_customer_key_connect_vin 
+:      019027 mouse_customer_key_connect_gnd:
+0x5216 019028 jam mouse_customer_key ,mem_mouse_key_temp 
+0x5217 019029 fetcht 1 ,mem_customer_key_gpio 
+0x5218 019030 fetch 1 ,mem_mouse_customerkey_press_status 
+0x5219 019031 call mouse_check_key_connect_gnd 
+0x521a 019032 store 1 ,mem_mouse_customerkey_press_status 
+:      019033 mouse_check_customerkey_state:
+0x521b 019034 copy rega ,pdata 
+0x521c 019035 bbit1 mouse_customer_key ,mouse_customerkey_press 
+0x521d 019036 call mouse_customerkey_release 
+:      019037 mouse_check_customerkey_gpio_exit:
+0x521e 019038 fetch 1 ,mem_customer_data_trigger 
+0x521f 019039 store 1 ,mem_customer_data_trigger_last 
+0x5220 019040 rtn 
+:      019042 mouse_customer_key_connect_vin:
+0x5221 019043 jam mouse_customer_key ,mem_mouse_key_temp 
+0x5222 019044 fetch 1 ,mem_mouse_customerkey_press_status 
+0x5223 019045 copy pdata ,regc 
+0x5224 019046 fetch 1 ,mem_customer_key_gpio 
+0x5225 019047 call mouse_gpio_config_output_low 
+0x5226 019048 fetcht 1 ,mem_customer_key_gpio 
+0x5227 019049 call mouse_3io6key_check 
+0x5228 019050 store 1 ,mem_mouse_customerkey_press_status 
+0x5229 019051 call mouse_check_customerkey_state 
+0x522a 019052 fetcht 1 ,mem_customer_key_gpio 
+0x522b 019053 branch device_gpio_config_input_pu 
+:      019055 mouse_customerkey_press:
+0x522c 019056 jam 1 ,mem_customer_data_trigger 
+0x522d 019057 call mouse_customer_key_need_send 
+0x522e 019058 branch mouse_check_customerkey_gpio_exit 
+:      019060 mouse_customerkey_release:
+0x522f 019061 jam 0 ,mem_customer_data_trigger 
+0x5230 019062 fetch 1 ,mem_customer_data_trigger_last 
+0x5231 019063 rtn blank 
+:      019064 mouse_customer_key_need_send:
+0x5232 019065 jam 1 ,mem_customer_key 
+0x5233 019066 rtn 
+:      019075 mouse_key_release:
+0x5234 019076 qset0 rega 
+0x5235 019077 rtn 
+:      019079 mouse_check_key_connect_gnd:
+0x5236 019080 lshift pdata ,pdata 
+0x5237 019081 copy pdata ,regb 
+0x5238 019082 call gpio_get_bit 
+0x5239 019083 setflag true ,0 ,regb 
+:      019084 mouse_check_key_connect_gnd_next:
+0x523a 019085 and regb ,0x07 ,pdata 
+0x523b 019086 fetcht 1 ,mem_mouse_key_temp 
+0x523c 019087 copy temp ,queue 
+0x523d 019088 beq 0x07 ,mouse_key_press 
+0x523e 019089 beq 0x00 ,mouse_key_release 
+0x523f 019090 rtn 
+:      019092 mouse_key_press:
+0x5240 019093 qset1 rega 
+0x5241 019094 rtn 
+:      019096 mouse_3io6key_check:
+0x5242 019097 bpatch patch11_1 ,mem_patch11 
+0x5243 019098 copy regc ,pdata 
+0x5244 019099 store 1 ,mem_mouse_key_status 
+0x5245 019100 lshift pdata ,pdata 
+0x5246 019101 copy pdata ,regb 
+0x5247 019102 copy temp ,regc 
+0x5248 019103 call device_gpio_config_input_pd 
+0x5249 019104 copy regc ,temp 
+0x524a 019105 call gpio_get_bit 
+0x524b 019106 nsetflag true ,0 ,regb 
+0x524c 019107 call mouse_check_press 
+0x524d 019108 branch mouse_check_key_connect_gnd_next 
+:      019110 mouse_check_press:
+0x524e 019111 fetcht 1 ,mem_mouse_key_status 
+0x524f 019112 and_into 0x01 ,temp 
+0x5250 019113 and regb ,0x01 ,pdata 
+0x5251 019114 isub temp ,null 
+0x5252 019115 nbranch mouse_current_mult_update ,zero 
+0x5253 019116 rtn 
+:      019120 mouse_gpio_config_output_high:
+0x5254 019121 arg gpcfg_output_high ,temp 
+0x5255 019122 branch gpio_config_function_int 
+:      019125 mouse_gpio_config_output_low:
+0x5256 019126 arg gpcfg_output_low ,temp 
+0x5257 019127 branch gpio_config_function_int 
+:      019130 mouse_gpio_config_pu_check:
+0x5258 019131 store 1 ,mem_device_temp_gpio 
+0x5259 019132 call mouse_gpio_config_output_high 
+0x525a 019133 fetcht 1 ,mem_device_temp_gpio 
+0x525b 019134 branch device_gpio_config_input_pu 
+:      019137 mouse_gpio_config_pd_check:
+0x525c 019138 store 1 ,mem_device_temp_gpio 
+0x525d 019139 call mouse_gpio_config_output_low 
+0x525e 019140 fetcht 1 ,mem_device_temp_gpio 
+0x525f 019141 branch device_gpio_config_input_pd 
+:      019146 mouse_init_sunt:
+0x5260 019147 bpatch patch11_2 ,mem_patch11 
+0x5261 019148 call mouse_sensor_spi_init 
+0x5262 019149 rtn wake 
+:      019150 mouse_init_sensor_wakeup:
+0x5263 019151 call mouse_sensor_poweron 
+:      019152 mouse_init_sensor:
+0x5264 019153 bpatch patch11_3 ,mem_patch11 
+0x5265 019154 call mouse_read_sensor_id 
+0x5266 019155 beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
+0x5267 019156 beq p3065_id1 ,mouse_init_p3065 
+0x5268 019157 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+0x5269 019158 call mouse_twspi_reset 
+0x526a 019159 nop 6900 
+0x526b 019160 branch mouse_init_sensor 
+:      019161 mouse_twspi_reset:
+0x526c 019162 fetcht 1 ,mem_mouse_sensor_sclk_gpio 
+0x526d 019163 call twspi_reset 
+0x526e 019164 branch mouse_spid_init_pin 
+:      019166 mouse_read_sensor_id:
+0x526f 019167 setarg pan_reg_pid_h 
+0x5270 019168 call twspi_read 
+0x5271 019169 store 1 ,mem_sensor_id2 
+0x5272 019170 setarg pan_reg_pid_l 
+0x5273 019171 call twspi_read 
+0x5274 019172 store 1 ,mem_sensor_id1 
+0x5275 019173 rtn 
+:      019175 mouse_init_p32xx_id2_judge:
+0x5276 019176 fetch 1 ,mem_sensor_id2 
+0x5277 019177 beq p_mx8650 ,mouse_mx8650_init_param 
+0x5278 019178 beq p8009_id2 ,mouse_8009_init_param 
+0x5279 019179 beq p3205_tj3t_id2 ,mouse_s210x_3205_3t_judge 
+0x527a 019180 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
+0x527b 019181 beq p3212_id2 ,mouse_3212_init_param 
+0x527c 019182 beq pka8_id2 ,mouse_ka8_init_param_check 
+0x527d 019183 beq p6520a_id2 ,mouse_p6520_init_param 
+0x527e 019184 branch mouse_init_sensor 
+:      019186 mouse_s210x_3205_3t_judge:
+0x527f 019187 setarg 0x49 
+0x5280 019188 call twspi_read 
+0x5281 019189 beq 0xa1 ,mouse_s201x_init_param 
+0x5282 019190 branch mouse_3205_3t_init_param 
+:      019192 mouse_s201x_init_param:
+0x5283 019193 jam s201x ,mem_config_sensor_type 
+0x5284 019194 rtn 
+:      019196 mouse_mx8650_init_param:
+0x5285 019197 jam mx8650 ,mem_config_sensor_type 
+0x5286 019198 call mouse_sensor_reset 
+0x5287 019199 call delay_10ms 
+0x5288 019200 arg mem_sensor_8650_init ,regc 
+0x5289 019201 branch mouse_sensor_poweron_end 
+:      019203 mouse_8009_init_param:
+0x528a 019204 setarg 0x16 
+0x528b 019205 call twspi_read 
+0x528c 019206 sub pdata ,0xbd ,null 
+0x528d 019207 nbranch mouse_init_sunt ,zero 
+0x528e 019208 setarg 0x19 
+0x528f 019209 call twspi_read 
+0x5290 019210 sub pdata ,0x55 ,null 
+0x5291 019211 nbranch mouse_init_sunt ,zero 
+0x5292 019212 setarg 0x1b 
+0x5293 019213 call twspi_read 
+0x5294 019214 sub pdata ,0x1d ,null 
+0x5295 019215 nbranch mouse_init_sunt ,zero 
+0x5296 019216 jam p8009 ,mem_config_sensor_type 
+0x5297 019217 arg mem_sensor_8009_init ,regc 
+0x5298 019218 branch mouse_sensor_wr_seq 
+:      019220 mouse_3205_3t_init_param:
+0x5299 019221 jam p3205 ,mem_config_sensor_type 
+0x529a 019222 arg mem_sensor_3205_init ,regc 
+0x529b 019223 call mouse_sensor_wr_seq 
+0x529c 019224 arg mem_sensor_32xx_init ,regc 
+0x529d 019225 call mouse_sensor_wr_seq 
+0x529e 019226 setarg 0x0943 
+0x529f 019227 call twspi_write 
+0x52a0 019228 arg mem_sensor_32xx_init_1 ,regc 
+0x52a1 019229 branch mouse_sensor_wr_seq 
+:      019231 mouse_3204_3l_init_param:
+0x52a2 019232 jam p3204 ,mem_config_sensor_type 
+0x52a3 019233 arg mem_sensor_3204_init ,regc 
+0x52a4 019234 call mouse_sensor_wr_seq 
+0x52a5 019235 arg mem_sensor_32xx_init ,regc 
+0x52a6 019236 call mouse_sensor_wr_seq 
+0x52a7 019237 arg mem_sensor_32xx_init_1 ,regc 
+0x52a8 019238 branch mouse_sensor_wr_seq 
+:      019240 mouse_3212_init_param:
+0x52a9 019241 jam p3212 ,mem_config_sensor_type 
+0x52aa 019242 arg mem_sensor_3212_init ,regc 
+:      019243 mouse_sensor_wr_seq:
+0x52ab 019244 ifetch 2 ,regc 
+0x52ac 019245 arg 0xffff ,temp 
+0x52ad 019246 isub temp ,null 
+0x52ae 019247 rtn zero 
+0x52af 019248 call twspi_write 
+0x52b0 019249 increase 2 ,regc 
+0x52b1 019250 branch mouse_sensor_wr_seq 
+:      019252 mouse_ka8_init_param_check:
+0x52b2 019253 call mouse_sensor_disable_wp 
+0x52b3 019254 setarg 0x9a5b 
+0x52b4 019255 call twspi_write 
+0x52b5 019256 setarg 0x0d 
+0x52b6 019257 call twspi_read 
+0x52b7 019258 sub pdata ,0x12 ,null 
+0x52b8 019259 branch mouse_ka8ul_init_param ,zero 
+0x52b9 019260 sub pdata ,0x0a ,null 
+0x52ba 019261 nbranch mouse_ka8hd_sensor_judge ,zero 
+0x52bb 019262 setarg 0x0e 
+0x52bc 019263 call twspi_read 
+0x52bd 019264 sub pdata ,0xe5 ,null 
+0x52be 019265 nbranch mouse_init_sensor ,zero 
+0x52bf 019266 setarg 0x10 
+0x52c0 019267 call twspi_read 
+0x52c1 019268 sub pdata ,0xa5 ,null 
+0x52c2 019269 branch mouse_ka8ul_init_param ,zero 
+0x52c3 019270 call mouse_enable_ka8_sensor_wp 
+:      019271 mouse_ka8_init_param:
+0x52c4 019272 jam ka8 ,mem_config_sensor_type 
+0x52c5 019273 rtn 
+:      019274 mouse_ka8ul_init_param:
+0x52c6 019275 jam ka8_ul ,mem_config_sensor_type 
+0x52c7 019276 arg mem_sensor_ka8ul_init ,regc 
+0x52c8 019277 branch mouse_sensor_wr_seq 
+:      019278 mouse_ka8hd_sensor_judge:
+0x52c9 019279 sub pdata ,0x10 ,null 
+0x52ca 019280 nbranch mouse_init_sensor ,zero 
+0x52cb 019281 setarg 0x0e 
+0x52cc 019282 call twspi_read 
+0x52cd 019283 sub pdata ,0xc5 ,null 
+0x52ce 019284 nbranch mouse_init_sensor ,zero 
+0x52cf 019285 setarg 0x10 
+0x52d0 019286 call twspi_read 
+0x52d1 019287 sub pdata ,0x38 ,null 
+0x52d2 019288 nbranch mouse_init_sensor ,zero 
+:      019289 mouse_ka8hd_init_param:
+0x52d3 019290 call mouse_enable_ka8_sensor_wp 
+0x52d4 019291 jam ka8_hd ,mem_config_sensor_type 
+0x52d5 019292 rtn 
+:      019293 mouse_enable_ka8_sensor_wp:
+0x52d6 019294 setarg 0x005b 
+0x52d7 019295 call twspi_write 
+0x52d8 019296 branch mouse_sensor_enable_wp 
+:      019298 mouse_p6520_init_param:
+0x52d9 019299 jam p6520 ,mem_config_sensor_type 
+0x52da 019300 arg mem_sensor_p6520_init ,regc 
+0x52db 019301 branch mouse_sensor_wr_seq 
+:      019303 mouse_init_p3065:
+0x52dc 019304 call mouse_sensor_poweron 
+0x52dd 019305 fetch 1 ,mem_sensor_id2 
+0x52de 019306 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+0x52df 019307 beq p3065_id2 ,mouse_p3065_init_param 
+0x52e0 019308 branch mouse_init_sensor 
+:      019310 mouse_p3065_init_param:
+0x52e1 019311 jam p3065 ,mem_config_sensor_type 
+0x52e2 019312 rtn 
+:      019314 mouse_p3065xy_init_param:
+0x52e3 019315 jam p3065_xy ,mem_config_sensor_type 
+0x52e4 019316 rtn 
+:      019318 mouse_ka8g2_id2_judge:
+0x52e5 019319 call mouse_sensor_poweron 
+0x52e6 019320 fetch 1 ,mem_sensor_id2 
+0x52e7 019321 beq ka5857_id2 ,mouse_ka5857_init_param 
+0x52e8 019322 beq pka8g2_id2 ,mouse_ka8g2_init_param 
+0x52e9 019323 branch mouse_init_p32xx_id2_judge 
+:      019324 mouse_ka8g2_init_param:
+0x52ea 019325 jam ka8g2 ,mem_config_sensor_type 
+0x52eb 019326 arg mem_sensor_ka8g2_init ,regc 
+0x52ec 019327 branch mouse_sensor_wr_seq 
+:      019329 mouse_ka5857_init_param:
+0x52ed 019330 jam ka5857 ,mem_config_sensor_type 
+0x52ee 019331 arg mem_sensor_ka5857_init ,regc 
+0x52ef 019332 branch mouse_sensor_poweron_end 
+:      019334 mouse_sensor_reset:
+0x52f0 019335 arg 0x8006 ,temp 
+0x52f1 019336 fetch 1 ,mem_config_sensor_type 
+0x52f2 019337 bne ka8g2 ,mouse_sensor_reset_end 
+0x52f3 019338 arg 0x9706 ,temp 
+:      019339 mouse_sensor_reset_end:
+0x52f4 019340 copy temp ,pdata 
+0x52f5 019341 call twspi_write 
+0x52f6 019342 nop 12000 
+0x52f7 019343 rtn 
+:      019345 mouse_sensor_poweron_init:
+0x52f8 019346 arg mem_sensor_poweron_init ,regc 
+0x52f9 019347 fetch 1 ,mem_config_sensor_type 
+0x52fa 019348 rtnne ka8g2 
+0x52fb 019349 arg mem_sensor_ka8g2_poweron_init ,regc 
+0x52fc 019350 rtn 
+:      019352 mouse_sensor_poweron:
+0x52fd 019353 bpatch patch11_4 ,mem_patch11 
+0x52fe 019354 call mouse_sensor_spi_init 
+0x52ff 019355 call mouse_sensor_reset 
+0x5300 019356 call mouse_sensor_poweron_init 
+:      019357 mouse_sensor_poweron_end:
+0x5301 019358 call mouse_sensor_wr_seq 
+0x5302 019359 branch mouse_setting_sensor_type 
+:      019361 mouse_sensor_powerdown:
+0x5303 019362 bpatch patch11_5 ,mem_patch11 
+0x5304 019363 call mouse_init_sunt 
+0x5305 019364 call mouse_sensor_spi_init 
+0x5306 019365 arg 0x0806 ,temp 
+0x5307 019366 fetch 1 ,mem_config_sensor_type 
+0x5308 019367 bne ka8g2 ,mouse_sensor_powerdown_end 
+0x5309 019368 arg 0x1f06 ,temp 
+:      019369 mouse_sensor_powerdown_end:
+0x530a 019370 copy temp ,pdata 
+0x530b 019371 branch twspi_write 
+:      019377 mouse_check_sensor_data:
+0x530c 019378 fetch 1 ,mem_spi_write_flash_sm 
+0x530d 019379 rtnne flash_sm_no_buys 
+0x530e 019380 fetch 1 ,mem_config_sensor_type 
+0x530f 019381 beq p3205 ,mouse_p32xx_sensor_motion 
+0x5310 019382 beq p3065 ,mouse_p32xx_sensor_motion 
+0x5311 019383 beq ka8 ,mouse_p32xx_sensor_motion 
+0x5312 019384 beq p3204 ,mouse_p32xx_sensor_motion 
+0x5313 019385 beq p3212 ,mouse_p3212_sensor_motion 
+0x5314 019386 beq p3065_xy ,mouse_p32xx_sensor_motion 
+0x5315 019387 beq p8009 ,mouse_p8009_sensor_motion 
+0x5316 019388 beq ka8g2 ,mouse_pka8g2_sensor_motion 
+0x5317 019389 beq ka5857 ,mouse_pka8g2_sensor_motion 
+0x5318 019390 branch mouse_p32xx_sensor_motion 
+:      019393 mouse_p32xx_sensor_motion:
+0x5319 019394 call mouse_clear_sensor_data 
+0x531a 019395 disable user 
+0x531b 019396 fetch 1 ,mem_sensor_motion_gpio 
+0x531c 019397 beq gpio_disable ,mouse_p32xx_sensor_motion_2 
+0x531d 019398 fetcht 1 ,mem_sensor_motion_gpio 
+0x531e 019399 call gpio_get_bit 
+0x531f 019400 nrtn true 
+:      019401 mouse_p32xx_sensor_motion_2:
+0x5320 019402 setarg pan_reg_pid_l 
+0x5321 019403 call twspi_read 
+0x5322 019404 bne p32xx_id1 ,mouse_p3065_judge 
+:      019405 mouse_p32xx_sensor_motion_1:
+0x5323 019406 setarg pan_reg_motion_staus 
+0x5324 019407 call twspi_read 
+0x5325 019408 rtnbit0 7 
+0x5326 019409 call mouse_read_sensor_common 
+0x5327 019410 fetch 1 ,mem_mouse_x 
+0x5328 019411 call mouse_data_extsign 
+0x5329 019412 store 2 ,mem_mouse_x 
+0x532a 019413 fetch 1 ,mem_mouse_y 
+0x532b 019414 call mouse_data_extsign 
+0x532c 019415 store 2 ,mem_mouse_y 
+0x532d 019416 fetch 1 ,mem_config_sensor_angle 
+0x532e 019417 beq mouse_6clk_angle ,mouse_motion32xx_6clk_direction_selection 
+0x532f 019418 beq mouse_9clk_angle ,mouse_motion32xx_9clk_direction_selection 
+0x5330 019419 beq mouse_12clk_angle ,mouse_motion32xx_12clk_direction_selection 
+0x5331 019420 beq mouse_3clk_angle ,mouse_motion32xx_3clk_direction_selection 
+0x5332 019421 rtn 
+:      019423 mouse_p3065_judge:
+0x5333 019424 beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
+0x5334 019425 branch mouse_twspi_reset 
+:      019427 mouse_motion32xx_6clk_direction_selection:
+0x5335 019428 call mouse_motion_6clk_direction_dispose 
+0x5336 019429 branch mouse_sensor_sdio_low 
+:      019430 mouse_motion32xx_9clk_direction_selection:
+0x5337 019431 call mouse_motion_9clk_direction_dispose 
+0x5338 019432 branch mouse_sensor_sdio_low 
+:      019433 mouse_motion32xx_12clk_direction_selection:
+0x5339 019434 call mouse_motion_12clk_direction_dispose 
+0x533a 019435 branch mouse_sensor_sdio_low 
+:      019436 mouse_motion32xx_3clk_direction_selection:
+0x533b 019437 call mouse_motion_3clk_direction_dispose 
+0x533c 019438 branch mouse_sensor_sdio_low 
+:      019442 mouse_p3212_sensor_motion:
+0x533d 019443 call mouse_clear_sensor_data 
+0x533e 019444 fetch 1 ,mem_sensor_motion_gpio 
+0x533f 019445 beq gpio_disable ,mouse_p3212_sensor_motion_1 
+0x5340 019446 fetcht 1 ,mem_sensor_motion_gpio 
+0x5341 019447 call gpio_get_bit 
+0x5342 019448 nrtn true 
+:      019449 mouse_p3212_sensor_motion_1:
+0x5343 019450 setarg pan_reg_pid_l 
+0x5344 019451 call twspi_read 
+0x5345 019452 bne p32xx_id1 ,mouse_twspi_reset 
+:      019453 mouse_p3212_sensor_motion_2:
+0x5346 019454 setarg pan_reg_motion_staus 
+0x5347 019455 call twspi_read 
+0x5348 019456 rtnbit0 7 
+0x5349 019457 call mouse_read_sensor_common 
+0x534a 019458 call mouse_read_3212sensor_xy_high 
+0x534b 019459 store 1 ,mem_mouse_xy_h 
+0x534c 019460 rshift4 pdata ,pdata 
+0x534d 019461 call mouse_data_extsign_bit3 
+0x534e 019462 store 1 ,mem_mouse_x + 1 
+0x534f 019463 fetch 1 ,mem_mouse_xy_h 
+0x5350 019464 and pdata ,0x0f ,pdata 
+0x5351 019465 call mouse_data_extsign_bit3 
+0x5352 019466 store 1 ,mem_mouse_y + 1 
+0x5353 019467 fetch 1 ,mem_config_sensor_angle 
+0x5354 019468 beq mouse_6clk_angle ,mouse_motion_6clk_direction_dispose 
+0x5355 019469 beq mouse_9clk_angle ,mouse_motion_9clk_direction_dispose 
+0x5356 019470 beq mouse_12clk_angle ,mouse_motion_12clk_direction_dispose 
+0x5357 019471 beq mouse_3clk_angle ,mouse_motion_3clk_direction_dispose 
+0x5358 019472 rtn 
+:      019474 mouse_read_3212sensor_xy_high:
+0x5359 019475 setarg 0x12 
+0x535a 019476 branch twspi_read 
+:      019478 mouse_pka8g2_sensor_motion:
+0x535b 019479 call mouse_clear_sensor_data 
+0x535c 019480 fetch 1 ,mem_sensor_motion_gpio 
+0x535d 019481 beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
+0x535e 019482 fetcht 1 ,mem_sensor_motion_gpio 
+0x535f 019483 call gpio_get_bit 
+0x5360 019484 nrtn true 
+:      019485 mouse_pka8g2_sensor_motion_1:
+0x5361 019486 setarg pan_reg_pid_l 
+0x5362 019487 call twspi_read 
+0x5363 019488 bne pka8g2_id1 ,mouse_twspi_reset 
+0x5364 019489 branch mouse_p3212_sensor_motion_2 
+:      019492 mouse_p8009_sensor_motion:
+0x5365 019493 call mouse_clear_sensor_data 
+0x5366 019494 disable user 
+0x5367 019495 setarg pan_reg_motion_staus 
+0x5368 019496 call twspi_read 
+0x5369 019497 rtnbit0 7 
+0x536a 019498 setarg pan_reg_opration_state 
+0x536b 019499 call twspi_read 
+0x536c 019500 branch mouse_p32xx_sensor_motion_1 + 3 ,blank 
+0x536d 019501 setarg 0 
+0x536e 019502 store 6 ,mem_mouse_x 
+0x536f 019503 rtn 
+:      019505 mouse_motion_6clk_direction_dispose:
+0x5370 019506 fetch 2 ,mem_mouse_x 
+0x5371 019507 sub pdata ,0 ,pdata 
+0x5372 019508 store 2 ,mem_mouse_x 
+0x5373 019509 branch enable_user 
+:      019510 mouse_motion_12clk_direction_dispose:
+0x5374 019511 fetch 2 ,mem_mouse_y 
+0x5375 019512 sub pdata ,0 ,pdata 
+0x5376 019513 store 2 ,mem_mouse_y 
+0x5377 019514 branch enable_user 
+:      019515 mouse_motion_9clk_direction_dispose:
+0x5378 019516 fetch 2 ,mem_mouse_y 
+0x5379 019517 sub pdata ,0 ,pdata 
+0x537a 019518 store 2 ,mem_mouse_y 
+0x537b 019519 fetch 2 ,mem_mouse_x 
+0x537c 019520 sub pdata ,0 ,pdata 
+0x537d 019521 store 2 ,mem_mouse_x 
+0x537e 019522 call mouse_sensor_data_swap_places 
+0x537f 019523 branch enable_user 
+:      019524 mouse_motion_3clk_direction_dispose:
+0x5380 019525 call mouse_sensor_data_swap_places 
+0x5381 019526 branch enable_user 
+:      019528 mouse_sensor_data_swap_places:
+0x5382 019529 fetch 2 ,mem_mouse_y 
+0x5383 019530 fetcht 2 ,mem_mouse_x 
+0x5384 019531 store 2 ,mem_mouse_x 
+0x5385 019532 storet 2 ,mem_mouse_y 
+0x5386 019533 rtn 
+:      019536 mouse_clear_sensor_data:
+0x5387 019537 fetch 1 ,mem_mouse_move_flag 
+0x5388 019538 call mouse_read_sensor_common ,blank 
+0x5389 019539 jam 1 ,mem_mouse_move_flag 
+0x538a 019540 rtn 
+:      019542 mouse_clear_sensor_data_by_reset:
+0x538b 019543 jam 1 ,mem_mouse_clear_sensor_data_flag 
+0x538c 019544 call le_set_config_more_data 
+:      019545 mouse_init_sensor_reset:
+0x538d 019546 branch mouse_init_sunt 
+:      019548 mouse_data_xy_release:
+0x538e 019549 fetch 1 ,mem_sensor_motion_gpio 
+0x538f 019550 rtnne gpio_disable 
+0x5390 019551 fetch 1 ,mem_mouse_long_mult_flag 
+0x5391 019552 rtn blank 
+0x5392 019553 increase -1 ,pdata 
+0x5393 019554 store 1 ,mem_mouse_long_mult_flag 
+0x5394 019555 setarg 0 
+0x5395 019556 store 4 ,mem_mouse_x 
+0x5396 019557 branch mouse_init_sensor_reset 
+:      019559 mouse_data_extsign:
+0x5397 019560 rtnbit0 7 
+0x5398 019561 arg 0xff00 ,temp 
+:      019562 mouse_data_ior:
+0x5399 019563 ior temp ,pdata 
+0x539a 019564 rtn 
+:      019566 mouse_data_extsign_bit3:
+0x539b 019567 rtnbit0 3 
+0x539c 019568 arg 0xf0 ,temp 
+0x539d 019569 branch mouse_data_ior 
+:      019571 mouse_read_sensor_common:
+0x539e 019572 arg pan_reg_delta_x ,pdata 
+0x539f 019573 call twspi_read 
+0x53a0 019574 store 2 ,mem_mouse_x 
+0x53a1 019575 arg pan_reg_delta_y ,pdata 
+0x53a2 019576 call twspi_read 
+0x53a3 019577 branch mouse_data_y_store 
+:      019580 mouse_sensor_sdio_low:
+0x53a4 019581 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+0x53a5 019582 call gpio_get_bit 
+0x53a6 019583 rtn true 
+0x53a7 019584 setarg 0x0a 
+0x53a8 019585 call twspi_read 
+0x53a9 019586 nop 1000 
+0x53aa 019587 branch mouse_sensor_sdio_low 
+:      019589 mouse_set_sdio_high:
+0x53ab 019590 setarg 0x8100 
+0x53ac 019591 branch twspi_write 
+:      019596 mouse_bluetooth_fast_conn_init:
+0x53ad 019597 jam 0xff ,mem_device_fast_conn_flag 
+:      019598 mouse_ble_fast_conn_init:
+0x53ae 019599 jam 0x34 ,mem_xrecord_mode 
+0x53af 019600 setarg 0x0f0f0f 
+0x53b0 019601 store 3 ,mem_le_lap 
+0x53b1 019602 store 3 ,mem_le_lap + 3 
+0x53b2 019603 branch mouse_start_reconnect 
+:      019605 mouse_buletooth_fast_conn_end:
+0x53b3 019606 bpatch patch11_6 ,mem_patch11 
+0x53b4 019607 call hid_device_select_reconn_device 
+0x53b5 019608 call mouse_bluetooth_fast_conn_disable 
+0x53b6 019609 fetch 1 ,mem_device_flag 
+0x53b7 019610 beq mode_bt_device1 ,mouse_device1_check_auto_discover 
+0x53b8 019611 beq mode_bt_device2 ,mouse_device2_check_auto_discover 
+0x53b9 019612 rtn 
+:      019613 mouse_device1_check_auto_discover:
+0x53ba 019614 fetch 6 ,mem_device1_addr 
+0x53bb 019615 branch mouse_device_check_auto_discover 
+:      019616 mouse_device2_check_auto_discover:
+0x53bc 019617 fetch 6 ,mem_device2_addr 
+:      019618 mouse_device_check_auto_discover:
+0x53bd 019619 fetcht 6 ,mem_device_compare_addr 
+0x53be 019620 isub temp ,null 
+0x53bf 019621 branch mouse_start_discovery ,zero 
+0x53c0 019622 branch mouse_start_reconnect_device 
+:      019624 mouse_bluetooth_fast_conn_disable:
+0x53c1 019625 jam 0x5a ,mem_device_fast_conn_flag 
+0x53c2 019626 rtn 
+:      019629 mouse_stop_bluetooth_mode:
+0x53c3 019630 fetch 2 ,mem_ui_state_map 
+0x53c4 019631 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x53c5 019632 branch mouse_stop_discovery 
+:      019633 mouse_disconnect:
+0x53c6 019634 setarg 0 
+0x53c7 019635 store 2 ,mem_device_no_data_timer 
+0x53c8 019636 fetch 2 ,mem_ui_state_map 
+0x53c9 019637 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x53ca 019638 rtn 
+:      019640 mouse_check_125hz:
+0x53cb 019641 fetch mouse_flag_len ,mem_mouse_flag 
+0x53cc 019642 rtnbit0 mouse_enable_bt_125hz 
+:      019643 mouse_bluetooth_125hz:
+0x53cd 019644 nbranch mouse_bluetooth_125hz_clear ,user 
+0x53ce 019645 fetch 1 ,mem_bluetooth_125hz_cnt 
+0x53cf 019646 increase 1 ,pdata 
+0x53d0 019647 and_into 0x0f ,pdata 
+0x53d1 019648 store 1 ,mem_bluetooth_125hz_cnt 
+0x53d2 019649 nrtn blank 
+:      019650 mouse_bluetooth_125hz_clear:
+0x53d3 019651 jam 0 ,mem_bluetooth_125hz_cnt 
+0x53d4 019652 branch disable_user 
+:      019654 mouse_current_mult_update:
+0x53d5 019655 fetch 1 ,mem_sensor_motion_gpio 
+0x53d6 019656 rtnne gpio_disable 
+0x53d7 019657 jam 0 ,mem_lpm_mult 
+0x53d8 019658 jam 30 ,mem_mouse_current_mult_timer 
+0x53d9 019659 rtn 
+:      019662 mouse_priority_bb_event:
+0x53da 019663 bpatch patch11_7 ,mem_patch11 
+0x53db 019664 copy regc ,pdata 
+0x53dc 019665 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
+0x53dd 019666 beq bt_evt_le_disconnected ,mouse_le_bb_disconnected 
+0x53de 019667 beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
+0x53df 019668 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+0x53e0 019669 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+0x53e1 019670 beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
+0x53e2 019671 beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+0x53e3 019672 beq bt_evt_le_parse_conn_papa_update_rsp ,mouse_le_conn_param_update_rsp_recieved 
+0x53e4 019673 beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
+0x53e5 019674 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
+0x53e6 019675 beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
+0x53e7 019676 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+0x53e8 019677 rtn 
+:      019680 mouse_le_bb_event_connected:
+0x53e9 019681 call mouse_device_poweron_led_config 
+0x53ea 019682 jam 0 ,mem_mouse_long_mult_flag 
+0x53eb 019683 call mouse_init_sensor_reset 
+0x53ec 019684 jam 1 ,mem_device_le_bb_connected_flag 
+0x53ed 019685 call mouse_24g_first_store_reconn_info 
+0x53ee 019686 fetch 1 ,mem_device_le_reconnect_flag 
+0x53ef 019687 nbranch mouse_le_bb_event_connected_next ,blank 
+0x53f0 019688 jam 0x14 ,mem_device_send_secutiry_request_timer 
+:      019689 mouse_le_bb_event_connected_next:
+0x53f1 019690 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x53f2 019691 set0 app_disc_by_button ,pdata 
+0x53f3 019692 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+0x53f4 019693 jam 0 ,mem_device_direct_timer 
+0x53f5 019694 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x53f6 019695 store 2 ,mem_le_battery_level_updata_timer 
+0x53f7 019696 call mouse_no_data_timer_init 
+0x53f8 019697 branch mouse_stop_discovery 
+:      019699 mouse_le_bb_disconnected:
+0x53f9 019700 setarg 0 
+0x53fa 019701 store 2 ,mem_le_battery_level_updata_timer 
+0x53fb 019702 jam 0 ,mem_device_le_bb_connected_flag 
+0x53fc 019703 arg le_interval_7_5ms ,temp 
+0x53fd 019704 fetch mouse_flag_len ,mem_mouse_flag 
+0x53fe 019705 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next 
+0x53ff 019706 arg le_interval_8_75ms ,temp 
+:      019707 mouse_le_bb_disconnected_next:
+0x5400 019708 storet 2 ,mem_le_interval_min 
+0x5401 019709 storet 2 ,mem_le_interval_min + 2 
+0x5402 019710 jam le_lpm_enable ,mem_le_conn_param_reject 
+0x5403 019711 jam 0 ,mem_mouse_clear_sensor_data_flag 
+0x5404 019712 call le_clr_config_more_data 
+0x5405 019713 branch mouse_bb_disconnected 
+:      019715 mouse_le_pairing_success:
+0x5406 019716 arg ll_pairing_success_flag ,queue 
+0x5407 019717 branch mouse_le_enable_connect_flag 
+:      019719 mouse_le_enc_info:
+:      019720 mouse_updata_le_param:
+0x5408 019721 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+0x5409 019722 branch ui_ipc_send_cmd 
+:      019724 mouse_le_ll_start_encryt:
+0x540a 019725 fetch 1 ,mem_device_le_reconnect_flag 
+0x540b 019726 beq 1 ,mouse_le_ll_reconn_start_encryt 
+0x540c 019727 branch mouse_le_ll_enable_start_enc_flag 
+:      019728 mouse_le_ll_reconn_start_encryt:
+0x540d 019729 call mouse_updata_le_param 
+0x540e 019730 jam 20 ,mem_le_start_encrypt_timer 
+:      019731 mouse_le_ll_enable_start_enc_flag:
+0x540f 019732 arg ll_start_enc_flag ,queue 
+0x5410 019733 branch mouse_le_enable_connect_flag 
+:      019735 mouse_le_enable_connect_flag:
+0x5411 019736 fetch 1 ,mem_le_connect_status_flag 
+0x5412 019737 qset1 pdata 
+0x5413 019738 store 1 ,mem_le_connect_status_flag 
+0x5414 019739 rtn 
+:      019741 mouse_le_conn_param_update_rsp_recieved:
+0x5415 019742 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x5416 019743 rtneq ble_signaling_connect_parameter_update_accepted 
+0x5417 019744 fetch 1 ,mem_le_tsniff 
+0x5418 019745 rshift2 pdata ,pdata 
+0x5419 019746 sub pdata ,le_interval_15ms ,null 
+0x541a 019747 rtn positive 
+0x541b 019748 setarg le_interval_11_25ms 
+0x541c 019749 call mouse_le_interval_store 
+0x541d 019750 call mouse_updata_le_param 
+:      019751 mouse_le_conn_param_lpm_disable:
+0x541e 019752 jam le_lpm_disable ,mem_le_conn_param_reject 
+0x541f 019753 rtn 
+:      019755 mouse_le_bb_event_connect_complete:
+0x5420 019756 fetch 1 ,mem_device_le_reconnect_flag 
+0x5421 019757 nrtn blank 
+0x5422 019758 fetch 1 ,mem_le_att_handle 
+0x5423 019759 sub pdata ,34 ,pdata 
+0x5424 019760 nrtn zero 
+0x5425 019761 jam 0 ,mem_le_start_encrypt_timer 
+:      019762 mouse_le_write_enable:
+0x5426 019763 arg write_req_enable_flag ,queue 
+0x5427 019764 branch mouse_le_enable_connect_flag 
+:      019766 mouse_le_parse_conn_param_accepted:
+0x5428 019767 fetch 1 ,mem_le_new_conninterval 
+0x5429 019768 sub pdata ,le_interval_15ms ,null 
+0x542a 019769 nbranch mouse_le_conn_param_lpm_disable ,positive 
+0x542b 019770 call mouse_le_interval_store 
+0x542c 019771 fetch 1 ,mem_le_new_connslavelatency 
+0x542d 019772 branch mouse_le_lpm_mult_reinit ,blank 
+0x542e 019773 fetcht 1 ,mem_lpm_mult_init 
+0x542f 019774 isub temp ,null 
+0x5430 019775 branch mouse_le_lpm_mult_reinit ,positive 
+0x5431 019776 fetch 1 ,mem_le_new_connslavelatency 
+0x5432 019777 store 1 ,mem_lpm_mult 
+0x5433 019778 branch mouse_le_conn_param_lpm_enable 
+:      019779 mouse_le_lpm_mult_reinit:
+0x5434 019780 fetch 1 ,mem_lpm_mult_init 
+0x5435 019781 store 1 ,mem_lpm_mult 
+:      019782 mouse_le_conn_param_lpm_enable:
+0x5436 019783 jam le_lpm_enable ,mem_le_conn_param_reject 
+0x5437 019784 rtn 
+:      019788 mouse_le:
+0x5438 019789 bpatch patch12_0 ,mem_patch12 
+0x5439 019790 call le_fifo_check_nearly_full 
+0x543a 019791 nrtn blank 
+0x543b 019792 fetch 1 ,mem_device_fast_conn_flag 
+0x543c 019793 beq 0xff ,mouse_le_next 
+0x543d 019794 fetch 1 ,mem_le_connect_status_flag 
+0x543e 019795 and pdata ,0x03 ,pdata 
+0x543f 019796 rtnne 0x03 
+:      019797 mouse_le_next:
+0x5440 019798 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+0x5441 019799 call mouse_clear_sensor_data_by_reset ,blank 
+0x5442 019800 fetch mouse_flag_len ,mem_mouse_flag 
+0x5443 019801 bbit1 mouse_24g_pairing_flag ,hid_device_le_send_empty_packet 
+0x5444 019802 bbit1 mouse_select_device_flag ,hid_device_le_send_empty_packet 
+0x5445 019803 bbit1 mouse_bt_discovery_button_down_flag ,hid_device_le_send_empty_packet 
+0x5446 019804 bbit1 mouse_bt_discovery_button_long_down_flag ,hid_device_le_send_empty_packet 
+0x5447 019805 call mouse_motion 
+0x5448 019806 call mouse_check_125hz 
+0x5449 019807 nrtn user 
+0x544a 019808 call mouse_current_mult_update 
+0x544b 019809 call mouse_data_xy_release 
+0x544c 019810 call mouse_wheel_trigger 
+0x544d 019811 fetch mouse_flag_len ,mem_mouse_flag 
+0x544e 019812 bbit0 mouse_enable_keyboard ,hid_device_le_send_mouse_data 
+0x544f 019813 branch hid_device_send_package_data_check 
+:      019815 mouse_fill_battery_level_le:
+0x5450 019816 arg 1 ,rega 
+0x5451 019817 fetcht 2 ,mem_le_battery_level_handle 
+0x5452 019818 call le_att_malloc_tx_notify 
+0x5453 019819 fetch 1 ,mem_le_battery_level_percentage 
+0x5454 019820 branch istore_1_contw_rtn 
+:      019823 mouse_check_51cmd_adv:
+0x5455 019824 jam 0 ,mem_device_le_reconnect_flag 
+0x5456 019825 fetch 3 ,mem_le_adv_ind 
+0x5457 019826 store 3 ,mem_le_adv_data + 4 
+0x5458 019827 call mouse_le_check_adv_flag 
+0x5459 019828 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+0x545a 019829 istore 1 ,contr 
+0x545b 019830 arg mem_le_adv_swift_pair ,contr 
+0x545c 019831 call mouse_le_adv_data_update 
+0x545d 019832 branch check_51cmd_adv 
+:      019834 mouse_le_check_adv_flag:
+0x545e 019835 arg mem_le_adv_data ,rega 
+:      019836 mouse_le_check_adv_flag_loop:
+0x545f 019837 ifetch 1 ,rega 
+0x5460 019838 rtn blank 
+0x5461 019839 iadd contr ,rega 
+0x5462 019840 ifetch 1 ,contr 
+0x5463 019841 rtneq 0x01 
+0x5464 019842 branch mouse_le_check_adv_flag_loop 
+:      019844 mouse_le_adv_data_update:
+0x5465 019845 arg mem_le_adv_data + 11 ,contw 
+0x5466 019846 arg 19 ,loopcnt 
+0x5467 019847 call memcpy 
+0x5468 019848 branch le_modified_name_adv 
+:      019851 mouse_le_parse_att:
+0x5469 019852 bpatch patch12_1 ,mem_patch12 
+0x546a 019853 copy rega ,contr 
+0x546b 019854 ifetch 3 ,contr 
+0x546c 019855 store 3 ,mem_le_att_opcode 
+0x546d 019856 beq attop_read_request ,mouse_le_parse_att_read_request 
+0x546e 019857 beq attop_write_request ,mouse_le_parse_att_write_request 
+0x546f 019858 branch le_parse_att2 
+:      019860 mouse_le_parse_att_read_request:
+0x5470 019861 fetch mouse_flag_len ,mem_mouse_flag 
+0x5471 019862 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
+0x5472 019863 call le_check_encrypt_state 
+0x5473 019864 fetcht 2 ,mem_le_att_handle 
+0x5474 019865 fetch 1 ,mem_le_configuration 
+0x5475 019866 bbit1 bit_ble_read_auth ,mouse_le_send_att_read_response_check_auth 
+:      019868 mouse_le_send_att_read_response:
+0x5476 019869 fetch 2 ,mem_le_att_handle 
+0x5477 019870 beq 0x30 ,le_send_att_error_response_notfound 
+0x5478 019871 fetcht 2 ,mem_le_att_handle 
+0x5479 019872 branch le_send_att_read_response 
+:      019874 mouse_le_send_att_read_response_check_auth:
+0x547a 019875 fetch 2 ,mem_le_pairing_handle 
+0x547b 019876 isub temp ,null 
+0x547c 019877 nbranch mouse_le_send_att_read_response ,zero 
+0x547d 019878 nbranch mouse_le_send_att_read_response ,user 
+0x547e 019879 branch le_send_att_read_response_error_insufficient_auth 
+:      019881 mouse_le_parse_att_write_request:
+0x547f 019882 copy contr ,rega 
+0x5480 019883 fetch 2 ,mem_le_l2cap_size 
+0x5481 019884 add pdata ,-3 ,regb 
+0x5482 019885 call le_writeatt_cb 
+0x5483 019886 branch hid_device_le_parse_att_write_request 
+:      019888 mouse_bb_disconnected:
+0x5484 019889 bpatch patch12_2 ,mem_patch12 
+0x5485 019890 call mouse_bb_discon_clear_stack 
+0x5486 019891 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x5487 019892 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+0x5488 019893 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x5489 019894 branch mouse_start_discovery 
+:      019896 mouse_bb_discon_clear_stack:
+0x548a 019897 setarg 0 
+0x548b 019898 store 8 ,mem_wheel_tb_old_pinlevel 
+0x548c 019899 istore 2 ,contw 
+0x548d 019900 jam 0 ,mem_mouse_move_flag 
+0x548e 019901 jam 0 ,mem_ltk_exists 
+0x548f 019902 rtn 
+:      019904 mouse4_0_event_bb_disconn:
+0x5490 019905 jam 0 ,mem_le_connect_status_flag 
+0x5491 019906 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+0x5492 019907 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+0x5493 019908 branch mouse_app_enter_hibernate 
+:      019912 mouse_bb_event_timer:
+0x5494 019913 bpatch patch12_3 ,mem_patch12 
+0x5495 019915 call mouse_low_voltage_led_timer 
+0x5496 019916 call mouse_adc_read 
+0x5497 019918 call mouse_logo_led_on_timer 
+0x5498 019919 call mouse_led_multi_timer 
+0x5499 019920 call mouse_dpi_led_blink_delay_timer 
+0x549a 019922 call mouse_dpi_key_check_long_press 
+0x549b 019923 call mouse_bt_discovery_check 
+0x549c 019924 call mouse_commbination_key_process 
+0x549d 019925 call mouse_commbination_dpi_check_timer 
+0x549e 019926 call mouse_commbination_key_select_device_timer 
+0x549f 019928 call mouse_current_mult_update_timer 
+0x54a0 019929 call mouse_wheel_trigger_timer 
+0x54a1 019930 call mouse_store_information_delay_timer 
+0x54a2 019931 call mouse_check_no_data_timeout_timer 
+0x54a3 019934 call mouse_24g_long_sleep_param_update_timer 
+0x54a4 019935 call g24_pair_timeout_timer 
+0x54a5 019936 call g24_reconn_timeout_timer 
+0x54a6 019939 call mouse_check_discovery_timeout_timer 
+0x54a7 019940 call mouse_check_direct_timeout_timer 
+0x54a8 019941 call mouse_le_enable_att_list_timer 
+0x54a9 019942 call mouse_le_battery_updata_timer 
+0x54aa 019943 branch mouse_le_send_smp_security_request_timer 
+:      019947 mouse_bt_discovery_check:
+0x54ab 019948 fetch mouse_flag_len ,mem_mouse_flag 
+0x54ac 019949 rtnbit0 mouse_enable_pb_button_long_press_disconvery 
+:      019950 mouse_bt_discovery_by_pb_button:
+0x54ad 019951 fetch 1 ,mem_select_device_button_statue 
+0x54ae 019952 rtnne pb_button_state_down 
+0x54af 019953 arg mem_bt_discovery_count ,regc 
+0x54b0 019954 arg mouse_long_button_bt_discovery ,regb 
+0x54b1 019955 branch timer_single_step 
+:      019957 mouse_long_button_bt_discovery:
+0x54b2 019958 fetch 1 ,mem_device_flag 
+0x54b3 019959 rtneq mode_24g_device 
+0x54b4 019960 fetch mouse_flag_len ,mem_mouse_flag 
+0x54b5 019961 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+0x54b6 019962 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x54b7 019963 call mouse_enable_function_flag 
+0x54b8 019964 call app_evt_button_long_pressed 
+0x54b9 019965 branch mouse_bb_event_discovery_btn 
+:      019967 mouse_commbination_dpi_check_timer:
+0x54ba 019968 fetch 1 ,mem_mouse_commbination_key_dpi 
+0x54bb 019969 rtneq gpio_disable 
+0x54bc 019970 fetch 1 ,mem_mouse_pair_flag 
+0x54bd 019971 rtn blank 
+0x54be 019972 call mouse_check_key_gpio 
+0x54bf 019973 and rega ,0x07 ,pdata 
+0x54c0 019974 fetcht 1 ,mem_mouse_commbination_key_dpi 
+0x54c1 019975 isub temp ,null 
+0x54c2 019976 branch mouse_commbination_dpi_check ,zero 
+0x54c3 019977 fetch 1 ,mem_mouse_commbination_dpi_timer 
+:      019978 mouse_commbination_key_count_init:
+0x54c4 019979 store 1 ,mem_mouse_commbination_key_count 
+0x54c5 019980 rtn 
+:      019982 mouse_commbination_dpi_check:
+0x54c6 019983 arg mem_mouse_commbination_key_count ,regc 
+0x54c7 019984 arg mouse_dpi_process_skip_ghost ,regb 
+0x54c8 019985 branch timer_single_step 
+:      019988 mouse_retransmit_commbination_key_check:
+0x54c9 019989 fetch 1 ,mem_24g_shutdown_flag 
+0x54ca 019990 rtn blank 
+:      019991 mouse_commbination_key_select_device_timer:
+0x54cb 019992 fetch 1 ,mem_mouse_commbination_key_select_device 
+0x54cc 019993 rtneq gpio_disable 
+0x54cd 019994 call mouse_check_key_gpio 
+0x54ce 019995 and rega ,0x07 ,pdata 
+0x54cf 019996 fetcht 1 ,mem_mouse_commbination_key_select_device 
+0x54d0 019997 isub temp ,null 
+0x54d1 019998 branch p_mouse_check_mouse_key_select_device_set ,zero 
+0x54d2 019999 fetch 1 ,mem_mouse_commbination_select_device_timer 
+0x54d3 020000 branch mouse_commbination_key_count_init 
+:      020002 p_mouse_check_mouse_key_select_device_set:
+0x54d4 020003 arg mem_mouse_commbination_key_count ,regc 
+0x54d5 020004 arg mouse_ready_reconnection_by_button ,regb 
+0x54d6 020005 branch timer_single_step 
+:      020007 mouse_commbination_key_process:
+0x54d7 020008 fetch 1 ,mem_device_flag 
+0x54d8 020009 beq mode_24g_device ,mouse_24g_commbination_key_process 
+0x54d9 020010 fetch mouse_flag_len ,mem_mouse_flag 
+0x54da 020011 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+0x54db 020012 fetcht 1 ,mem_mouse_commbination_key_bt 
+0x54dc 020013 branch mouse_commbination_key_start 
+:      020015 mouse_24g_commbination_key_process:
+0x54dd 020016 fetch mouse_flag_len ,mem_mouse_flag 
+0x54de 020017 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+0x54df 020018 fetcht 1 ,mem_mouse_commbination_key_24g 
+:      020019 mouse_commbination_key_start:
+0x54e0 020020 storet 1 ,mem_mouse_commbination_key 
+0x54e1 020021 call mouse_check_key_gpio 
+0x54e2 020022 and rega ,0x07 ,pdata 
+0x54e3 020023 fetcht 1 ,mem_mouse_commbination_key 
+0x54e4 020024 isub temp ,null 
+0x54e5 020025 branch mouse_commbination_key_down ,zero 
+:      020026 mouse_commbination_key_up:
+0x54e6 020027 fetch 1 ,mem_ui_button_timeout 
+0x54e7 020028 store 1 ,mem_combination_ui_button_count 
+0x54e8 020029 fetch 1 ,mem_commbination_key_statue 
+0x54e9 020030 rtneq commbination_key_state_up 
+0x54ea 020031 jam commbination_key_state_up ,mem_commbination_key_statue 
+0x54eb 020032 rtn 
+:      020034 mouse_commbination_key_down:
+0x54ec 020035 call mouse_combination_ui_timer 
+0x54ed 020036 fetch 1 ,mem_commbination_key_statue 
+0x54ee 020037 rtneq commbination_key_state_down 
+0x54ef 020038 jam commbination_key_state_down ,mem_commbination_key_statue 
+0x54f0 020039 rtn 
+:      020041 mouse_combination_ui_timer:
+0x54f1 020042 arg mouse_24g_start_pair_mode ,regb 
+0x54f2 020043 arg mem_combination_ui_button_count ,regc 
+0x54f3 020044 fetch 1 ,mem_device_flag 
+0x54f4 020045 beq mode_24g_device ,timer_single_step 
+0x54f5 020046 arg mouse_long_button_bt_discovery ,regb 
+0x54f6 020047 call timer_single_step 
+0x54f7 020048 fetch 1 ,mem_combination_ui_button_count 
+0x54f8 020049 beq 1 ,mouse_bt_discovery_button_down_enable 
+0x54f9 020050 rtn 
+:      020052 mouse_check_discovery_timeout_timer:
+0x54fa 020053 arg mem_device_discovery_timer ,regc 
+0x54fb 020054 arg mouse_check_discovery_timeout ,regb 
+0x54fc 020055 branch timer_single_step_2b 
+:      020057 mouse_check_discovery_timeout:
+0x54fd 020058 call mouse_stop_discovery 
+0x54fe 020059 branch mouse_app_enter_hibernate 
+:      020061 mouse_check_direct_timeout_timer:
+0x54ff 020062 arg mem_device_direct_timer ,regc 
+0x5500 020063 arg mouse_check_direct_timeout ,regb 
+0x5501 020064 call timer_single_step 
+0x5502 020065 fetch 1 ,mem_device_direct_timer 
+0x5503 020066 beq 1 ,app_ble_stop_direct_adv 
+0x5504 020067 rtn 
+:      020069 mouse_check_direct_timeout:
+0x5505 020070 fetch 1 ,mem_device_fast_conn_flag 
+0x5506 020071 beq 0xff ,mouse_buletooth_fast_conn_end 
+0x5507 020072 fetch 1 ,mem_reconn_times 
+0x5508 020073 nbranch mouse_polling_device ,blank 
+0x5509 020074 fetch mouse_flag_len ,mem_mouse_flag 
+0x550a 020075 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
+0x550b 020076 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
+0x550c 020077 branch mouse_app_enter_hibernate 
+:      020079 mouse_le_enable_att_list_timer:
+0x550d 020080 arg mem_le_start_encrypt_timer ,regc 
+0x550e 020081 arg mouse_le_write_enable ,regb 
+0x550f 020082 branch timer_single_step 
+:      020084 mouse_le_send_smp_security_request_timer:
+0x5510 020085 fetch 1 ,mem_device_le_bb_connected_flag 
+0x5511 020086 rtn blank 
+0x5512 020087 arg mem_device_send_secutiry_request_timer ,regc 
+0x5513 020088 arg mouse_le_pairing_sm_start_check ,regb 
+0x5514 020089 branch timer_single_step 
+:      020090 mouse_le_pairing_sm_start_check:
+0x5515 020091 fetch 1 ,mem_device_le_reconnect_flag 
+0x5516 020092 nrtn blank 
+0x5517 020093 fetch 1 ,mem_le_pairing_state 
+0x5518 020094 rtnne flag_le_pairing_null 
+0x5519 020095 branch le_pairing_sm_start 
+:      020097 mouse_le_battery_updata_timer:
+0x551a 020098 fetch mouse_flag_len ,mem_mouse_flag 
+0x551b 020099 rtnbit1 mouse_enable_le_battery_service_cancel 
+0x551c 020100 arg mem_le_battery_level_updata_timer ,regc 
+0x551d 020101 arg mouse_le_battery_level_updata ,regb 
+0x551e 020102 branch timer_single_step 
+:      020104 mouse_le_battery_level_updata:
+0x551f 020105 fetch 2 ,mem_le_battery_level_updata_timer_init 
+0x5520 020106 store 2 ,mem_le_battery_level_updata_timer 
+0x5521 020107 branch mouse_fill_battery_level_le 
+:      020109 mouse_le_enable_att_list:
+0x5522 020110 fetch 1 ,mem_le_connect_status_flag 
+0x5523 020111 rtnbit1 ll_pairing_success_flag 
+0x5524 020112 call mouse_updata_le_param 
+0x5525 020113 arg write_req_enable_flag ,queue 
+0x5526 020114 branch mouse_le_enable_connect_flag 
+:      020116 mouse_current_mult_update_timer:
+0x5527 020117 arg mem_mouse_current_mult_timer ,regc 
+0x5528 020118 arg mouse_current_mult_reinit ,regb 
+0x5529 020119 branch timer_single_step 
+:      020120 mouse_current_mult_reinit:
+0x552a 020121 fetch 1 ,mem_lpm_mult_init 
+0x552b 020122 store 1 ,mem_lpm_mult 
+:      020123 mouse_long_mult_init:
+0x552c 020124 fetch 1 ,mem_mouse_long_mult_count 
+0x552d 020125 store 1 ,mem_mouse_long_mult_flag 
+0x552e 020126 rtn 
+:      020128 mouse_check_no_data_timeout_timer:
+0x552f 020129 arg mem_device_no_data_timer ,regc 
+0x5530 020130 arg mouse_check_no_data_timeout ,regb 
+0x5531 020131 branch timer_single_step_2b 
+:      020133 mouse_check_no_data_timeout:
+0x5532 020134 fetch 1 ,mem_device_flag 
+0x5533 020135 beq mode_24g_device ,mouse_24g_hibernate_set 
+0x5534 020136 branch mouse_disconnect 
+:      020138 mouse_no_data_timer_init:
+0x5535 020139 fetch 2 ,mem_device_no_data_timeout 
+0x5536 020140 store 2 ,mem_device_no_data_timer 
+0x5537 020141 rtn 
+:      020143 mouse_store_information_delay_timer:
+0x5538 020144 arg mem_store_information_delay_timer ,regc 
+0x5539 020145 arg mouse_store_device_info_check ,regb 
+0x553a 020146 branch timer_single_step 
+:      020148 mouse_store_device_info_check:
+0x553b 020149 call mouse_store_device_info 
+0x553c 020150 fetch 1 ,mem_device_need_soft_reset 
+0x553d 020151 nbranch mouse_soft_reset ,blank 
+0x553e 020152 rtn 
+:      020156 mouse_bb_event_discovery_btn:
+0x553f 020157 isolate1 mark_24g ,mark 
+0x5540 020158 call mouse_24g_stop ,true 
+0x5541 020159 call mouse_disconnect 
+0x5542 020160 jam 0 ,mem_le_connect_status_flag 
+0x5543 020161 branch mouse_start_discovery 
+:      020163 mouse_start_discovery:
+0x5544 020164 bpatch patch12_4 ,mem_patch12 
+0x5545 020165 call mouse_device_discovery_led_config 
+0x5546 020166 fetch 2 ,mem_ui_state_map 
+0x5547 020167 isolate1 ui_state_ble_adv ,pdata 
+0x5548 020168 call mouse_stop_le_adv ,true 
+0x5549 020169 call mouse_bluetooth_fast_conn_disable 
+0x554a 020170 fetch 2 ,mem_ui_state_map 
+0x554b 020171 bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
+0x554c 020172 fetch mouse_flag_len ,mem_mouse_flag 
+0x554d 020173 bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
+0x554e 020174 fetcht 1 ,mem_random_addr_increase_count 
+0x554f 020175 increase 1 ,temp 
+0x5550 020176 storet 1 ,mem_random_addr_increase_count 
+0x5551 020177 storet 1 ,mem_le_lap + 2 
+0x5552 020178 random pdata 
+0x5553 020179 store 2 ,mem_le_lap 
+:      020180 mouse_start_discovery_norandom:
+0x5554 020181 fetch 3 ,mem_device_le_lap_temp 
+0x5555 020182 store 3 ,mem_le_lap + 3 
+0x5556 020183 call app_lpm_mult_disable 
+0x5557 020184 fetch 2 ,mem_device_discovery_timeout 
+0x5558 020185 store 2 ,mem_device_discovery_timer 
+0x5559 020186 setarg 0 
+0x555a 020187 store 2 ,mem_device_no_data_timer 
+0x555b 020188 store 2 ,mem_le_battery_level_updata_timer 
+0x555c 020189 store 1 ,mem_device_direct_timer 
+0x555d 020190 store 1 ,mem_mouse_clear_sensor_data_flag 
+0x555e 020191 arg mouse_store_eeprom_flag ,queue 
+0x555f 020192 call mouse_enable_function_flag 
+0x5560 020193 call mouse_bt_discovery_button_down_disable 
+0x5561 020194 branch mouse_check_51cmd_adv 
+:      020196 mouse_stop_discovery:
+0x5562 020197 bpatch patch12_5 ,mem_patch12 
+0x5563 020198 arg mouse_bt_discovery_button_long_down_flag ,queue 
+0x5564 020199 call mouse_disable_function_flag 
+:      020200 mouse_stop_le_adv:
+0x5565 020201 setarg 0 
+0x5566 020202 store 1 ,mem_device_direct_timer 
+0x5567 020203 store 2 ,mem_device_discovery_timer 
+0x5568 020204 branch check_51cmd_stop_adv 
+:      020206 mouse_store_remote_bdaddr:
+0x5569 020207 bpatch patch12_6 ,mem_patch12 
+0x556a 020208 fetch mouse_flag_len ,mem_mouse_flag 
+0x556b 020209 rtnbit0 mouse_store_eeprom_flag 
+0x556c 020210 arg mouse_store_eeprom_flag ,queue 
+0x556d 020211 call mouse_disable_function_flag 
+0x556e 020212 call hid_device_check_device_addr 
+:      020213 mouse_unplug_clean_bdaddr:
+0x556f 020214 call hid_device_before_store_reconn_info 
+0x5570 020215 branch mouse_store_device_info_delay 
+:      020219 mouse_store_device_info_delay:
+0x5571 020220 fetch 1 ,mem_store_information_delay_timer_init 
+0x5572 020221 store 1 ,mem_store_information_delay_timer 
+0x5573 020222 rtn 
+:      020224 mouse_store_device_info:
+0x5574 020225 bpatch patch12_7 ,mem_patch12 
+0x5575 020226 fetch mouse_flag_len ,mem_mouse_flag 
+0x5576 020227 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+0x5577 020228 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+0x5578 020229 bbit1 mouse_enable_otp ,mouse_store_otp_device_info 
+0x5579 020230 rtn 
+:      020232 mouse_store_dpi_info_check:
+0x557a 020233 bpatch patch13_0 ,mem_patch13 
+0x557b 020234 fetch mouse_flag_len ,mem_mouse_flag 
+0x557c 020235 bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
+0x557d 020236 bbit1 mouse_enable_otp ,mouse_store_otp_dpi 
+0x557e 020237 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+0x557f 020238 rtn 
+:      020242 mouse_store_eeprom_device_info:
+0x5580 020243 arg 128 ,temp 
+0x5581 020244 arg mem_device_flag ,rega 
+0x5582 020245 arg mouse_info_eeprom_offect ,regb 
+0x5583 020246 branch iicd_write_protect_eep_data 
+:      020248 mouse_store_eerpom_dpi:
+0x5584 020249 arg 1 ,temp 
+0x5585 020250 arg mem_mouse_dpi ,rega 
+0x5586 020251 arg mouse_dpi_eeprom_offect ,regb 
+0x5587 020252 branch iicd_write_protect_eep_data 
+:      020256 mouse_store_flash_device_info:
+0x5588 020257 call hid_device_store_flash_device_info 
+0x5589 020258 branch mouse_sensor_spi_init 
+:      020263 mouse_store_otp_device_info:
+0x558a 020264 call mouse_write_otp_app_initflag 
+0x558b 020265 call mouse_write_otp_device_flag 
+0x558c 020266 call mouse_write_otp_device_info 
+0x558d 020267 branch mouse_write_otp_le_addr_increase_count_info 
+:      020269 mouse_write_otp_app_initflag:
+0x558e 020270 call mouse_otp_load_app_initflag 
+0x558f 020271 fetch 2 ,mem_store_flag 
+0x5590 020272 arg eeprom_init_flag ,temp 
+0x5591 020273 isub temp ,null 
+0x5592 020274 rtn zero 
+0x5593 020275 branch mouse_otp_store_app_initflag 
+:      020278 mouse_write_otp_device_flag:
+0x5594 020279 fetchr regb ,2 ,mem_otp_offset_device_flag 
+0x5595 020280 copy regb ,regc 
+:      020281 mouse_write_otp_device_flag_loop:
+0x5596 020282 call mouse_read_otp_device_flag_common 
+0x5597 020283 fetch 1 ,mem_device_otp_flag_temp 
+0x5598 020284 branch mouse_device_flag_store ,blank 
+0x5599 020285 store 1 ,mem_device_flag_last 
+0x559a 020286 increase 1 ,regc 
+0x559b 020287 fetch 2 ,mem_otp_offset_device_flag_end 
+0x559c 020288 isub regc ,null 
+0x559d 020289 nrtn positive 
+0x559e 020290 copy regc ,regb 
+0x559f 020291 branch mouse_write_otp_device_flag_loop 
+:      020293 mouse_device_flag_store:
+0x55a0 020294 fetch 1 ,mem_device_flag_last 
+0x55a1 020295 and pdata ,0xf0 ,pdata 
+0x55a2 020296 branch mouse_device_flag_store_check ,blank 
+0x55a3 020298 fetch 1 ,mem_device_flag 
+0x55a4 020299 call mouse_device_flag_otp_store_judge 
+0x55a5 020300 store 1 ,mem_device_flag_value 
+:      020302 mouse_devoce_flag_store_end:
+0x55a6 020303 arg 1 ,loopcnt 
+0x55a7 020304 copy regc ,regb 
+0x55a8 020305 arg mem_device_flag_value ,rega 
+0x55a9 020306 branch otp_write 
+:      020308 mouse_device_flag_store_check:
+0x55aa 020309 fetcht 1 ,mem_device_flag_last 
+0x55ab 020310 fetch 1 ,mem_device_flag 
+0x55ac 020311 call mouse_device_flag_otp_store_judge 
+0x55ad 020313 isub temp ,null 
+0x55ae 020314 rtn zero 
+0x55af 020315 lshift4 pdata ,pdata 
+0x55b0 020316 iadd temp ,pdata 
+0x55b1 020317 store 1 ,mem_device_flag_value 
+0x55b2 020319 copy regc ,pdata 
+0x55b3 020320 fetcht 2 ,mem_otp_offset_device_flag 
+0x55b4 020321 isub temp ,null 
+0x55b5 020322 branch mouse_devoce_flag_store_end ,zero 
+0x55b6 020324 increase -1 ,regc 
+0x55b7 020325 branch mouse_devoce_flag_store_end 
+:      020327 mouse_device_flag_otp_store_judge:
+0x55b8 020328 rtnne mode_24g_device 
+0x55b9 020329 increase 4 ,pdata 
+0x55ba 020330 rtn 
+:      020333 mouse_write_otp_device_info:
+0x55bb 020334 fetch 1 ,mem_device_flag 
+0x55bc 020335 beq mode_24g_device ,mouse_write_otp_24g_addr 
+0x55bd 020336 beq mode_bt_device1 ,mouse_write_otp_le_device1 
+0x55be 020337 beq mode_bt_device2 ,mouse_write_otp_le_device2 
+0x55bf 020338 rtn 
+:      020340 mouse_write_otp_24g_addr:
+0x55c0 020341 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+0x55c1 020342 copy regb ,regc 
+:      020343 mouse_otp_store_24g_addr_loop:
+0x55c2 020344 call mouse_read_otp_24g_addr_common 
+0x55c3 020345 fetch 4 ,mem_mouse_24g_addr_temp 
+0x55c4 020346 branch mouse_24g_addr_store ,blank 
+0x55c5 020347 store 4 ,mem_mouse_24g_addr_last 
+0x55c6 020348 increase 4 ,regc 
+0x55c7 020349 fetch 2 ,mem_otp_offset_24g_addr_end 
+0x55c8 020350 isub regc ,null 
+0x55c9 020351 nrtn positive 
+0x55ca 020352 copy regc ,regb 
+0x55cb 020353 branch mouse_otp_store_24g_addr_loop 
+:      020355 mouse_24g_addr_store:
+0x55cc 020356 fetch 4 ,mem_mouse_24g_addr_last 
+0x55cd 020357 fetcht 4 ,mem_device_24g_addr 
+0x55ce 020358 isub temp ,null 
+0x55cf 020359 rtn zero 
+0x55d0 020360 arg 4 ,loopcnt 
+0x55d1 020361 arg mem_device_24g_addr ,rega 
+0x55d2 020362 copy regc ,regb 
+0x55d3 020363 branch otp_write 
+:      020365 mouse_write_otp_le_device1:
+0x55d4 020366 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+0x55d5 020367 copy regb ,regc 
+:      020368 mouse_otp_store_le_addr1_loop:
+0x55d6 020369 call mouse_read_otp_le_addr1_common 
+0x55d7 020370 fetch 6 ,mem_mouse_le_addr1_temp 
+0x55d8 020371 branch mouse_le_addr1_store ,blank 
+0x55d9 020372 store 6 ,mem_mouse_le_addr1_last 
+0x55da 020373 increase 6 ,regc 
+0x55db 020374 fetch 2 ,mem_otp_offset_le_addr1_end 
+0x55dc 020375 isub regc ,null 
+0x55dd 020376 nrtn positive 
+0x55de 020377 copy regc ,regb 
+0x55df 020378 branch mouse_otp_store_le_addr1_loop 
+:      020380 mouse_le_addr1_store:
+0x55e0 020381 fetch 6 ,mem_mouse_le_addr1_last 
+0x55e1 020382 fetcht 6 ,mem_device1_addr 
+0x55e2 020383 isub temp ,null 
+0x55e3 020384 rtn zero 
+0x55e4 020385 arg 6 ,loopcnt 
+0x55e5 020386 arg mem_device1_addr ,rega 
+0x55e6 020387 copy regc ,regb 
+0x55e7 020388 branch otp_write 
+:      020391 mouse_write_otp_le_device2:
+0x55e8 020392 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+0x55e9 020393 copy regb ,regc 
+:      020394 mouse_otp_store_le_addr2_loop:
+0x55ea 020395 call mouse_read_otp_le_addr2_common 
+0x55eb 020396 fetch 6 ,mem_mouse_le_addr2_temp 
+0x55ec 020397 branch mouse_le_addr2_store ,blank 
+0x55ed 020398 store 6 ,mem_mouse_le_addr2_last 
+0x55ee 020399 increase 6 ,regc 
+0x55ef 020400 fetch 2 ,mem_otp_offset_le_addr2_end 
+0x55f0 020401 isub regc ,null 
+0x55f1 020402 nrtn positive 
+0x55f2 020403 copy regc ,regb 
+0x55f3 020404 branch mouse_otp_store_le_addr2_loop 
+:      020406 mouse_le_addr2_store:
+0x55f4 020407 fetch 6 ,mem_mouse_le_addr2_last 
+0x55f5 020408 fetcht 6 ,mem_device2_addr 
+0x55f6 020409 isub temp ,null 
+0x55f7 020410 rtn zero 
+0x55f8 020411 arg 6 ,loopcnt 
+0x55f9 020412 arg mem_device2_addr ,rega 
+0x55fa 020413 copy regc ,regb 
+0x55fb 020414 branch otp_write 
+:      020418 mouse_write_otp_le_addr_increase_count_info:
+0x55fc 020419 fetch 1 ,mem_device_flag 
+0x55fd 020420 rtneq mode_24g_device 
+0x55fe 020421 fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+0x55ff 020422 copy regb ,regc 
+:      020423 mouse_otp_store_le_addr_increase_count_loop:
+0x5600 020424 call mouse_read_otp_le_addr_increase_count_common 
+0x5601 020425 fetch 1 ,mem_random_addr_increase_count_temp 
+0x5602 020426 branch mouse_le_addr_increase_count_store ,blank 
+0x5603 020427 store 1 ,mem_random_addr_increase_count_last 
+0x5604 020428 increase 1 ,regc 
+0x5605 020429 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+0x5606 020430 isub regc ,null 
+0x5607 020431 nrtn positive 
+0x5608 020432 copy regc ,regb 
+0x5609 020433 branch mouse_otp_store_le_addr_increase_count_loop 
+:      020435 mouse_le_addr_increase_count_store:
+0x560a 020436 fetch 1 ,mem_random_addr_increase_count_last 
+0x560b 020437 fetcht 1 ,mem_random_addr_increase_count 
+0x560c 020438 isub temp ,null 
+0x560d 020439 rtn zero 
+0x560e 020440 arg 1 ,loopcnt 
+0x560f 020441 arg mem_random_addr_increase_count ,rega 
+0x5610 020442 copy regc ,regb 
+0x5611 020443 branch otp_write 
+:      020447 mouse_store_otp_dpi:
+0x5612 020448 fetch mouse_flag_len ,mem_mouse_flag 
+0x5613 020449 rtnbit0 mouse_enable_load_and_store_dpi 
+0x5614 020450 fetchr regb ,2 ,mem_otp_offset_dpi 
+0x5615 020451 copy regb ,regc 
+:      020452 mouse_otp_store_dpi_loop:
+0x5616 020453 call mouse_read_otp_dpi_common 
+0x5617 020454 fetch 1 ,mem_mouse_dpi_temp 
+0x5618 020455 branch mouse_otp_dpi_store ,blank 
+0x5619 020456 store 1 ,mem_mouse_dpi_last 
+0x561a 020457 increase 1 ,regc 
+0x561b 020458 fetch 2 ,mem_otp_offset_dpi_end 
+0x561c 020459 isub regc ,null 
+0x561d 020460 nrtn positive 
+0x561e 020461 copy regc ,regb 
+0x561f 020462 branch mouse_otp_store_dpi_loop 
+:      020464 mouse_otp_dpi_store:
+0x5620 020465 fetch 1 ,mem_mouse_dpi_last 
+0x5621 020466 and pdata ,0xf0 ,pdata 
+0x5622 020467 branch mouse_dpi_store_last_check ,blank 
+0x5623 020468 fetch 1 ,mem_mouse_dpi 
+0x5624 020469 call mouse_dpi_otp_store_judge 
+0x5625 020470 store 1 ,mem_mouse_otp_dpi_value 
+:      020471 mouse_dpi_store_end:
+0x5626 020472 arg 1 ,loopcnt 
+0x5627 020473 copy regc ,regb 
+0x5628 020474 arg mem_mouse_otp_dpi_value ,rega 
+0x5629 020475 branch otp_write 
+:      020477 mouse_dpi_store_last_check:
+0x562a 020478 fetcht 1 ,mem_mouse_dpi_last 
+0x562b 020479 fetch 1 ,mem_mouse_dpi 
+0x562c 020480 call mouse_dpi_otp_store_judge 
+0x562d 020481 isub temp ,null 
+0x562e 020482 rtn zero 
+0x562f 020483 lshift4 pdata ,pdata 
+0x5630 020484 iadd temp ,pdata 
+0x5631 020485 store 1 ,mem_mouse_otp_dpi_value 
+0x5632 020487 copy regc ,pdata 
+0x5633 020488 fetcht 2 ,mem_otp_offset_dpi 
+0x5634 020489 isub temp ,null 
+0x5635 020490 branch mouse_dpi_store_end ,zero 
+0x5636 020492 increase -1 ,regc 
+0x5637 020493 branch mouse_dpi_store_end 
+:      020495 mouse_dpi_otp_store_judge:
+0x5638 020496 rtnne mouse_dpi_level1 
+0x5639 020497 increase 7 ,pdata 
+0x563a 020498 rtn 
+:      020506 mouse_device_flag_check:
+0x563b 020507 fetch 1 ,mem_device_flag 
+0x563c 020508 sub pdata ,4 ,null 
+0x563d 020509 rtn positive 
+0x563e 020510 call set_pdata_0 
+0x563f 020511 branch mouse_store_device_flag 
+:      020514 mouse_load_eeprom_info_check:
+0x5640 020515 call iicd_read_init_pin 
+0x5641 020516 fetch mouse_flag_len ,mem_mouse_flag 
+0x5642 020517 isolate1 mouse_enable_2k_eeprom ,pdata 
+0x5643 020518 ncall clear_eeprom_size_2k ,true 
+0x5644 020519 call set_eeprom_size_2k ,true 
+0x5645 020520 call mouse_eeprom_load_recon_info 
+0x5646 020521 call mouse_device_flag_check 
+0x5647 020522 branch mouse_app_initflag_load_check 
+:      020524 mouse_eeprom_load_recon_info:
+0x5648 020525 arg 128 ,temp 
+0x5649 020526 arg mem_device_flag ,rega 
+0x564a 020527 arg mouse_info_eeprom_offect ,regb 
+0x564b 020528 branch iicd_read_eep_data 
+:      020530 mouse_load_eeprom_dpi:
+0x564c 020531 arg 1 ,temp 
+0x564d 020532 arg mem_mouse_dpi ,rega 
+0x564e 020533 arg mouse_dpi_eeprom_offect ,regb 
+0x564f 020534 branch iicd_read_eep_data 
+:      020538 mouse_load_flash_info_check:
+0x5650 020539 call hid_device_load_flash_info_check 
+0x5651 020540 call mouse_device_flag_check 
+0x5652 020541 call mouse_app_initflag_load_check 
+0x5653 020542 branch mouse_sensor_spi_init 
+:      020544 mouse_information_flash_parameters:
+0x5654 020545 setarg mem_device_information_end 
+0x5655 020546 arg mem_device_information_start ,temp 
+0x5656 020547 isub temp ,temp 
+0x5657 020548 fetch 3 ,mem_flash_base 
+0x5658 020549 arg mem_device_information_start ,rega 
+0x5659 020550 rtn 
+:      020552 mouse_spid_flash_release_form_powerdown:
+0x565a 020553 jam flash_command_release_from_powerdown ,mem_temp 
+:      020554 mouse_spid_write_flash_cmd:
+0x565b 020555 call delay_nop100 
+0x565c 020556 call spid_unlock_flash 
+0x565d 020557 arg mem_write_flash_head_temp ,rega 
+0x565e 020558 fetcht 1 ,mem_temp 
+0x565f 020559 call mouse_spid_write_flash_cmd_common 
+0x5660 020560 branch delay_nop100 
+:      020562 mouse_spid_flash_powerdown:
+0x5661 020563 jam flash_command_powerdown ,mem_temp 
+0x5662 020564 branch mouse_spid_write_flash_cmd 
+:      020566 mouse_spid_write_flash_cmd_common:
+0x5663 020567 istoret 1 ,rega 
+0x5664 020568 rshift16 pdata ,temp 
+0x5665 020569 istoret 1 ,contw 
+0x5666 020570 rshift8 pdata ,temp 
+0x5667 020571 istoret 1 ,contw 
+0x5668 020572 istore 1 ,contw 
+0x5669 020573 deposit rega 
+0x566a 020574 store 2 ,core_spid_txaddr 
+0x566b 020575 setarg 0 
+0x566c 020576 store 2 ,core_spid_rxlen 
+0x566d 020577 jam spid_start ,core_misc_ctrl 
+0x566e 020578 branch wait_spid_done 
+:      020580 mouse_flash_erase_sector:
+0x566f 020581 fetch 3 ,mem_flash_base 
+0x5670 020582 store 3 ,mem_spi_write_addr 
+0x5671 020583 branch spid_flash_erase_sector + 2 
+:      020585 mouse_spid_write_flash:
+0x5672 020586 copy pdata ,regc 
+0x5673 020587 copy rega ,pdata 
+0x5674 020588 increase -4 ,pdata 
+0x5675 020589 copy pdata ,regb 
+0x5676 020590 ifetch 4 ,regb 
+0x5677 020591 store 4 ,mem_write_flash_head_temp 
+0x5678 020592 copy regc ,pdata 
+0x5679 020593 call spid_write_flash 
+0x567a 020594 fetch 4 ,mem_write_flash_head_temp 
+0x567b 020595 istore 4 ,regb 
+0x567c 020596 rtn 
+:      020598 mouse_flash_power_down:
+0x567d 020599 fetch mouse_flag_len ,mem_mouse_flag 
+0x567e 020600 rtnbit0 mouse_enable_flash 
+0x567f 020601 call mouse_spid_flash_powerdown 
+0x5680 020602 call twspi_enable 
+0x5681 020603 fetcht 1 ,mem_spi_cs_gpio 
+0x5682 020604 call gpio_out_inactive 
+0x5683 020605 fetcht 1 ,mem_spi_hold_gpio 
+0x5684 020606 branch device_gpio_config_input_pd 
+:      020610 mouse_load_otp_info_check:
+0x5685 020611 call mouse_read_otp_dpi 
+0x5686 020612 call mouse_read_otp_device_flag 
+0x5687 020613 call mouse_device_flag_check 
+0x5688 020614 call mouse_read_otp_device_info 
+:      020615 mouse_app_initflag_load_check:
+0x5689 020616 bpatch patch13_1 ,mem_patch13 
+0x568a 020617 fetch mouse_flag_len ,mem_mouse_flag 
+0x568b 020618 isolate1 mouse_enable_otp ,pdata 
+0x568c 020619 call mouse_otp_load_app_initflag ,true 
+0x568d 020620 fetch 2 ,mem_store_flag 
+0x568e 020621 arg eeprom_init_flag ,temp 
+0x568f 020622 isub temp ,null 
+0x5690 020623 branch hid_device_load_device_info ,zero 
+:      020624 mouse_app_initflag_load:
+0x5691 020625 storet 2 ,mem_store_flag 
+0x5692 020626 call hid_device_ble_init_address 
+0x5693 020627 fetch 1 ,mem_device_flag_temp 
+0x5694 020628 store 1 ,mem_device_flag 
+0x5695 020629 store 1 ,mem_random_addr_increase_count 
+:      020630 mouse_load_default_dpi:
+0x5696 020631 fetch 1 ,mem_config_sensor_dpi 
+:      020632 mouse_temp_store_dpi:
+0x5697 020633 store 1 ,mem_mouse_dpi 
+0x5698 020634 rtn 
+:      020636 mouse_otp_load_app_initflag:
+0x5699 020637 arg 2 ,loopcnt 
+0x569a 020638 fetchr regb ,2 ,mem_otp_offset_app_initflag 
+0x569b 020639 arg mem_store_flag ,rega 
+0x569c 020640 branch otp_read_data 
+:      020642 mouse_otp_store_app_initflag:
+0x569d 020643 arg 2 ,loopcnt 
+0x569e 020644 arg mem_store_flag ,rega 
+0x569f 020645 fetchr regb ,2 ,mem_otp_offset_app_initflag 
+0x56a0 020646 branch otp_write 
+:      020649 mouse_read_otp_device_flag:
+0x56a1 020650 fetchr regb ,2 ,mem_otp_offset_device_flag 
+0x56a2 020651 copy regb ,regc 
+:      020652 mouse_read_otp_device_flag_loop:
+0x56a3 020653 call mouse_read_otp_device_flag_common 
+0x56a4 020654 fetch 1 ,mem_device_otp_flag_temp 
+0x56a5 020655 branch mouse_device_flag_load ,blank 
+0x56a6 020656 store 1 ,mem_device_flag_last 
+0x56a7 020657 increase 1 ,regc 
+0x56a8 020658 fetch 2 ,mem_otp_offset_device_flag_end 
+0x56a9 020659 isub regc ,null 
+0x56aa 020660 nbranch mouse_device_flag_load ,positive 
+0x56ab 020661 copy regc ,regb 
+0x56ac 020662 branch mouse_read_otp_device_flag_loop 
+:      020664 mouse_read_otp_device_flag_common:
+0x56ad 020665 arg 1 ,loopcnt 
+0x56ae 020666 arg mem_device_otp_flag_temp ,rega 
+0x56af 020667 branch otp_read_data 
+:      020669 mouse_device_flag_load:
+0x56b0 020670 fetch 1 ,mem_device_flag_last 
+0x56b1 020671 copy pdata ,temp 
+0x56b2 020672 and pdata ,0xf0 ,pdata 
+0x56b3 020673 branch mouse_device_flag_load_last ,blank 
+0x56b4 020674 rshift4 pdata ,pdata 
+0x56b5 020675 branch mouse_device_flag_load_end 
+:      020677 mouse_device_flag_load_last:
+0x56b6 020678 copy temp ,pdata 
+:      020679 mouse_device_flag_load_end:
+0x56b7 020680 sub pdata ,0 ,null 
+0x56b8 020681 branch mouse_device_flag_temp_load ,zero 
+0x56b9 020682 sub pdata ,4 ,null 
+0x56ba 020683 call set_pdata_0 ,zero 
+:      020684 mouse_store_device_flag:
+0x56bb 020685 store 1 ,mem_device_flag 
+0x56bc 020686 rtn 
+:      020688 mouse_device_flag_temp_load:
+0x56bd 020689 fetch 1 ,mem_device_flag_temp 
+0x56be 020690 branch mouse_store_device_flag 
+:      020693 mouse_read_otp_device_info:
+0x56bf 020694 call mouse_read_otp_24g_addr 
+0x56c0 020695 call mouse_read_otp_le_device1 
+0x56c1 020696 call mouse_read_otp_le_device2 
+0x56c2 020697 branch mouse_read_otp_le_addr_increase_count_info 
+:      020699 mouse_read_otp_le_device1:
+0x56c3 020700 call mouse_read_otp_le_device1_addr 
+0x56c4 020701 branch mouse_read_otp_le_device1_locall_addr 
+:      020703 mouse_read_otp_le_device2:
+0x56c5 020704 call mouse_read_otp_le_device2_addr 
+0x56c6 020705 branch mouse_read_otp_le_device2_locall_addr 
+:      020708 mouse_read_otp_le_device1_addr:
+0x56c7 020709 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+0x56c8 020710 copy regb ,regc 
+:      020711 mouse_read_otp_le_device1_addr_loop:
+0x56c9 020712 call mouse_read_otp_le_addr1_common 
+0x56ca 020713 fetch 6 ,mem_mouse_le_addr1_temp 
+0x56cb 020714 branch mouse_le_addr1_load ,blank 
+0x56cc 020715 store 6 ,mem_mouse_le_addr1_last 
+0x56cd 020716 increase 6 ,regc 
+0x56ce 020717 fetch 2 ,mem_otp_offset_le_addr1_end 
+0x56cf 020718 isub regc ,null 
+0x56d0 020719 nbranch mouse_le_addr1_load ,positive 
+0x56d1 020720 copy regc ,regb 
+0x56d2 020721 branch mouse_read_otp_le_device1_addr_loop 
+:      020723 mouse_read_otp_le_addr1_common:
+0x56d3 020724 arg 6 ,loopcnt 
+0x56d4 020725 arg mem_mouse_le_addr1_temp ,rega 
+0x56d5 020726 branch otp_read_data 
+:      020728 mouse_le_addr1_load:
+0x56d6 020729 fetch 6 ,mem_mouse_le_addr1_last 
+0x56d7 020730 store 6 ,mem_device1_addr 
+0x56d8 020731 rtn 
+:      020734 mouse_read_otp_le_device1_locall_addr:
+0x56d9 020735 fetchr regb ,2 ,mem_otp_offset_le_locall_addr1 
+0x56da 020736 copy regb ,regc 
+:      020737 mouse_read_otp_le_device1_locall_addr_loop:
+0x56db 020738 call mouse_read_otp_le_locall_addr1_common 
+0x56dc 020739 fetch 6 ,mem_mouse_le_locall_addr1_temp 
+0x56dd 020740 branch mouse_le_locall_addr1_load ,blank 
+0x56de 020741 store 6 ,mem_mouse_le_locall_addr1_last 
+0x56df 020742 increase 6 ,regc 
+0x56e0 020743 fetch 2 ,mem_otp_offset_le_locall_addr1_end 
+0x56e1 020744 isub regc ,null 
+0x56e2 020745 nbranch mouse_le_locall_addr1_load ,positive 
+0x56e3 020746 copy regc ,regb 
+0x56e4 020747 branch mouse_read_otp_le_device1_locall_addr_loop 
+:      020749 mouse_read_otp_le_locall_addr1_common:
+0x56e5 020750 arg 6 ,loopcnt 
+0x56e6 020751 arg mem_mouse_le_locall_addr1_temp ,rega 
+0x56e7 020752 branch otp_read_data 
+:      020754 mouse_le_locall_addr1_load:
+0x56e8 020755 fetch 6 ,mem_mouse_le_locall_addr1_last 
+0x56e9 020756 fetcht 6 ,mem_device_compare_addr 
+0x56ea 020757 isub temp ,null 
+0x56eb 020758 call mouse_device_le_locall_addr1_init ,zero 
+0x56ec 020759 store 6 ,mem_device1_locall_addr 
+0x56ed 020760 rtn 
+:      020762 mouse_device_le_locall_addr1_init:
+0x56ee 020763 fetch 6 ,mem_le_lap 
+0x56ef 020764 rtn 
+:      020767 mouse_read_otp_le_device2_addr:
+0x56f0 020768 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+0x56f1 020769 copy regb ,regc 
+:      020770 mouse_read_otp_le_device2_addr_loop:
+0x56f2 020771 call mouse_read_otp_le_addr2_common 
+0x56f3 020772 fetch 6 ,mem_mouse_le_addr2_temp 
+0x56f4 020773 branch mouse_le_addr2_load ,blank 
+0x56f5 020774 store 6 ,mem_mouse_le_addr2_last 
+0x56f6 020775 increase 6 ,regc 
+0x56f7 020776 fetch 2 ,mem_otp_offset_le_addr2_end 
+0x56f8 020777 isub regc ,null 
+0x56f9 020778 nbranch mouse_le_addr2_load ,positive 
+0x56fa 020779 copy regc ,regb 
+0x56fb 020780 branch mouse_read_otp_le_device2_addr_loop 
+:      020782 mouse_read_otp_le_addr2_common:
+0x56fc 020783 arg 6 ,loopcnt 
+0x56fd 020784 arg mem_mouse_le_addr2_temp ,rega 
+0x56fe 020785 branch otp_read_data 
+:      020787 mouse_le_addr2_load:
+0x56ff 020788 fetch 6 ,mem_mouse_le_addr2_last 
+0x5700 020789 store 6 ,mem_device2_addr 
+0x5701 020790 rtn 
+:      020793 mouse_read_otp_le_device2_locall_addr:
+0x5702 020794 fetchr regb ,2 ,mem_otp_offset_le_locall_addr2 
+0x5703 020795 copy regb ,regc 
+:      020796 mouse_read_otp_le_device2_locall_addr_loop:
+0x5704 020797 call mouse_read_otp_le_locall_addr2_common 
+0x5705 020798 fetch 6 ,mem_mouse_le_locall_addr2_temp 
+0x5706 020799 branch mouse_le_locall_addr2_load ,blank 
+0x5707 020800 store 6 ,mem_mouse_le_locall_addr2_last 
+0x5708 020801 increase 6 ,regc 
+0x5709 020802 fetch 2 ,mem_otp_offset_le_locall_addr2_end 
+0x570a 020803 isub regc ,null 
+0x570b 020804 nbranch mouse_le_locall_addr2_load ,positive 
+0x570c 020805 copy regc ,regb 
+0x570d 020806 branch mouse_read_otp_le_device2_locall_addr_loop 
+:      020808 mouse_read_otp_le_locall_addr2_common:
+0x570e 020809 arg 6 ,loopcnt 
+0x570f 020810 arg mem_mouse_le_locall_addr2_temp ,rega 
+0x5710 020811 branch otp_read_data 
+:      020813 mouse_le_locall_addr2_load:
+0x5711 020814 fetch 6 ,mem_mouse_le_locall_addr2_last 
+0x5712 020815 fetcht 6 ,mem_device_compare_addr 
+0x5713 020816 isub temp ,null 
+0x5714 020817 call mouse_device_le_locall_addr2_init ,zero 
+0x5715 020818 store 6 ,mem_device2_locall_addr 
+0x5716 020819 rtn 
+:      020821 mouse_device_le_locall_addr2_init:
+0x5717 020822 fetch 6 ,mem_le_lap 
+0x5718 020823 add pdata ,0x0100 ,pdata 
+0x5719 020824 rtn 
+:      020827 mouse_read_otp_24g_addr:
+0x571a 020828 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+0x571b 020829 copy regb ,regc 
+:      020830 mouse_read_otp_24g_addr_loop:
+0x571c 020831 call mouse_read_otp_24g_addr_common 
+0x571d 020832 fetch 4 ,mem_mouse_24g_addr_temp 
+0x571e 020833 branch mouse_24g_addr_load ,blank 
+0x571f 020834 store 4 ,mem_mouse_24g_addr_last 
+0x5720 020835 increase 4 ,regc 
+0x5721 020836 fetch 2 ,mem_otp_offset_24g_addr_end 
+0x5722 020837 isub regc ,null 
+0x5723 020838 nbranch mouse_24g_addr_load ,positive 
+0x5724 020839 copy regc ,regb 
+0x5725 020840 branch mouse_read_otp_24g_addr_loop 
+:      020842 mouse_read_otp_24g_addr_common:
+0x5726 020843 arg 4 ,loopcnt 
+0x5727 020844 arg mem_mouse_24g_addr_temp ,rega 
+0x5728 020845 branch otp_read_data 
+:      020847 mouse_24g_addr_load:
+0x5729 020848 fetch 4 ,mem_mouse_24g_addr_last 
+0x572a 020849 store 4 ,mem_device_24g_addr 
+0x572b 020850 rtn 
+:      020853 mouse_read_otp_le_addr_increase_count_info:
+0x572c 020854 fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+0x572d 020855 copy regb ,regc 
+:      020856 mouse_read_otp_le_addr_increase_count_loop:
+0x572e 020857 call mouse_read_otp_le_addr_increase_count_common 
+0x572f 020858 fetch 1 ,mem_random_addr_increase_count_temp 
+0x5730 020859 branch mouse_le_addr_increase_count_load ,blank 
+0x5731 020860 store 1 ,mem_random_addr_increase_count_last 
+0x5732 020861 increase 1 ,regc 
+0x5733 020862 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+0x5734 020863 isub regc ,null 
+0x5735 020864 nbranch mouse_le_addr_increase_count_load ,positive 
+0x5736 020865 copy regc ,regb 
+0x5737 020866 branch mouse_read_otp_le_addr_increase_count_loop 
+:      020868 mouse_read_otp_le_addr_increase_count_common:
+0x5738 020869 arg 1 ,loopcnt 
+0x5739 020870 arg mem_random_addr_increase_count_temp ,rega 
+0x573a 020871 branch otp_read_data 
+:      020873 mouse_le_addr_increase_count_load:
+0x573b 020874 fetch 1 ,mem_random_addr_increase_count_last 
+0x573c 020875 store 1 ,mem_random_addr_increase_count 
+0x573d 020876 rtn 
+:      020879 mouse_read_otp_dpi:
+0x573e 020880 fetch mouse_flag_len ,mem_mouse_flag 
+0x573f 020881 bbit0 mouse_enable_load_and_store_dpi ,mouse_load_default_dpi 
+0x5740 020882 fetchr regb ,2 ,mem_otp_offset_dpi 
+0x5741 020883 copy regb ,regc 
+:      020884 mouse_read_otp_dpi_loop:
+0x5742 020885 call mouse_read_otp_dpi_common 
+0x5743 020886 fetch 1 ,mem_mouse_dpi_temp 
+0x5744 020887 branch mouse_dpi_load ,blank 
+0x5745 020888 store 1 ,mem_mouse_dpi_last 
+0x5746 020889 increase 1 ,regc 
+0x5747 020890 fetch 2 ,mem_otp_offset_dpi_end 
+0x5748 020891 isub regc ,null 
+0x5749 020892 nbranch mouse_dpi_load ,positive 
+0x574a 020893 copy regc ,regb 
+0x574b 020894 branch mouse_read_otp_dpi_loop 
+:      020896 mouse_read_otp_dpi_common:
+0x574c 020897 arg 1 ,loopcnt 
+0x574d 020898 arg mem_mouse_dpi_temp ,rega 
+0x574e 020899 branch otp_read_data 
+:      020901 mouse_dpi_load:
+0x574f 020902 fetch 1 ,mem_mouse_dpi_last 
+0x5750 020903 copy pdata ,temp 
+0x5751 020904 and pdata ,0xf0 ,pdata 
+0x5752 020905 branch mouse_dpi_load_last ,blank 
+0x5753 020906 rshift4 pdata ,pdata 
+0x5754 020907 branch mouse_dpi_load_end 
+:      020909 mouse_dpi_load_last:
+0x5755 020910 copy temp ,pdata 
+:      020911 mouse_dpi_load_end:
+0x5756 020912 sub pdata ,7 ,null 
+0x5757 020913 call set_pdata_0 ,zero 
+0x5758 020914 branch mouse_temp_store_dpi 
+:      020919 mouse_idle:
+0x5759 020920 bpatch patch13_2 ,mem_patch13 
+0x575a 020921 call mouse_low_voltage_led_no_enter_lpm 
+0x575b 020922 call ui_check_paring_button 
+0x575c 020923 call mouse_dpi_check 
+0x575d 020924 call mouse_dpi_another_gpio_check 
+0x575e 020925 call mouse_select_device_check 
+0x575f 020926 call mouse_check_select_device_by_switch 
+0x5760 020927 call mouse_bt_button_check 
+0x5761 020928 call mouse_wheel_check 
+0x5762 020929 fetch mouse_flag_len ,mem_mouse_flag 
+0x5763 020930 rtnbit0 mouse_enable_usb 
+0x5764 020931 bpatch patch13_3 ,mem_patch13 
+0x5765 020932 call mouse_usb_isr 
+0x5766 020933 branch mouse_usb_mode 
+:      020935 mouse_select_device_check:
+0x5767 020936 fetch mouse_flag_len ,mem_mouse_flag 
+0x5768 020937 bbit1 mouse_enable_select_device_by_pb_button ,mouse_select_device_by_pb_button 
+0x5769 020938 bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_select_device_by_pb_button 
+0x576a 020939 rtn 
+:      020941 mouse_select_device_by_pb_button:
+0x576b 020942 call mouse_select_device_by_pb_button_check 
+0x576c 020943 branch mouse_select_device_by_pb_button_exit 
+:      020945 mouse_select_device_by_pb_button_check:
+0x576d 020946 bpatch patch13_4 ,mem_patch13 
+0x576e 020947 arg 0 ,rega 
+0x576f 020948 jam mouse_pb_key ,mem_mouse_key_temp 
+0x5770 020949 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5771 020950 call mouse_pb_button_check 
+0x5772 020951 store 1 ,mem_mouse_pbkey_press_status 
+0x5773 020952 fetch 1 ,mem_matrix_public_gpio 
+0x5774 020953 beq gpio_disable ,mouse_3io6key_pb_button_check_end 
+0x5775 020954 branch mouse_matrix_public_gpio_reset 
+:      020956 mouse_retransmit_select_device_by_pb_button:
+0x5776 020957 fetch 1 ,mem_config_select_device_button_gpio 
+0x5777 020958 rtneq gpio_disable 
+0x5778 020959 call mouse_select_device_by_pb_button_check 
+0x5779 020960 copy rega ,pdata 
+0x577a 020961 bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
+0x577b 020962 branch mouse_select_device_button_up 
+:      020964 mouse_3io6key_pb_button_check_end:
+0x577c 020965 fetcht 1 ,mem_config_select_device_button_gpio 
+0x577d 020966 call device_gpio_config_input_pu 
+:      020967 mouse_select_device_by_pb_button_exit:
+0x577e 020968 copy rega ,pdata 
+0x577f 020969 bbit1 mouse_pb_key ,mouse_select_device_button_down 
+0x5780 020970 branch mouse_select_device_button_up 
+:      020972 mouse_pb_button_check:
+0x5781 020973 fetch mouse_flag_len ,mem_mouse_flag 
+0x5782 020974 bbit1 mouse_enable_pb_button_connect_gnd ,mouse_pb_button_connect_gnd 
+0x5783 020975 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5784 020976 copy pdata ,regc 
+0x5785 020977 fetch 1 ,mem_matrix_public_gpio 
+0x5786 020978 beq gpio_disable ,mouse_3io6key_check 
+0x5787 020979 fetch 1 ,mem_mouse_ghost_flag 
+0x5788 020980 nbranch mouse_select_device_by_pb_button_end ,blank 
+0x5789 020981 branch mouse_pb_button_connect_matrix 
+:      020983 mouse_select_device_by_pb_button_end:
+0x578a 020984 jam pb_button_state_up ,mem_select_device_button_statue 
+0x578b 020985 jam 0 ,mem_mouse_pbkey_press_status 
+0x578c 020986 rtn 
+:      020988 mouse_pb_button_connect_gnd:
+0x578d 020989 fetch 1 ,mem_mouse_pbkey_press_status 
+0x578e 020990 branch mouse_check_key_connect_gnd 
+:      020992 mouse_pb_button_connect_matrix:
+0x578f 020993 call gpio_get_bit 
+0x5790 020994 fetcht 1 ,mem_matrix_public_gpio 
+0x5791 020995 branch mouse_pb_button_connect_gnd ,true 
+0x5792 020996 fetcht 1 ,mem_matrix_public_gpio 
+0x5793 020997 call gpio_out_active 
+0x5794 020998 fetcht 1 ,mem_config_select_device_button_gpio 
+0x5795 020999 fetch 1 ,mem_mouse_pbkey_press_status 
+0x5796 021000 branch mouse_check_key_connect_gnd 
+:      021002 mouse_select_device_button_up:
+0x5797 021003 fetch 1 ,mem_select_device_button_statue 
+0x5798 021004 rtneq pb_button_state_up 
+0x5799 021005 jam pb_button_state_up ,mem_select_device_button_statue 
+0x579a 021006 fetch mouse_flag_len ,mem_mouse_flag 
+0x579b 021007 rtnbit1 mouse_enable_pb_button_short_press_enter_discovery 
+0x579c 021008 fetch 1 ,mem_bt_discovery_count 
+0x579d 021009 sub pdata ,20 ,null 
+0x579e 021010 ncall mouse_ready_reconnection_by_button ,positive 
+0x579f 021011 fetch 1 ,mem_ui_button_timeout 
+0x57a0 021012 store 1 ,mem_bt_discovery_count 
+0x57a1 021013 rtn 
+:      021015 mouse_select_device_button_down:
+0x57a2 021016 call mouse_select_device_ghost_check 
+0x57a3 021017 rtn user 
+0x57a4 021018 fetch 1 ,mem_select_device_button_statue 
+0x57a5 021019 rtneq pb_button_state_down 
+0x57a6 021020 jam pb_button_state_down ,mem_select_device_button_statue 
+0x57a7 021021 fetch mouse_flag_len ,mem_mouse_flag 
+0x57a8 021022 bbit1 mouse_enable_pb_button_short_press_enter_discovery ,mouse_long_button_bt_discovery 
+0x57a9 021023 fetch 1 ,mem_device_direct_timer 
+0x57aa 021024 rtn blank 
+0x57ab 021025 fetch 1 ,mem_device_direct_timeout 
+0x57ac 021026 store 1 ,mem_device_direct_timer 
+0x57ad 021027 rtn 
+:      021029 mouse_select_device_ghost_check:
+0x57ae 021030 disable user 
+0x57af 021031 fetch mouse_flag_len ,mem_mouse_flag 
+0x57b0 021032 rtnbit1 mouse_enable_pb_button_connect_gnd 
+:      021033 mouse_ghost_key_value_check:
+0x57b1 021034 fetch 1 ,mem_mouse_lkey_press_status 
+0x57b2 021035 rtn blank 
+0x57b3 021036 fetch 1 ,mem_mouse_rkey_press_status 
+0x57b4 021037 rtn blank 
+0x57b5 021038 fetch 1 ,mem_mouse_mkey_press_status 
+0x57b6 021039 rtn blank 
+0x57b7 021040 branch enable_user 
+:      021044 mouse_check_select_device_by_switch:
+0x57b8 021045 bpatch patch13_5 ,mem_patch13 
+0x57b9 021046 fetch mouse_flag_len ,mem_mouse_flag 
+0x57ba 021047 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+0x57bb 021048 bbit0 mouse_enable_switch_gpio_connect_vin ,mouse_switch_gpio_connect_gnd_check 
+:      021049 mouse_switch_gpio_connect_vin_check:
+0x57bc 021050 call mouse_switch_gpio_connect_vin 
+0x57bd 021051 fetch 1 ,mem_device_switch_gpio 
+0x57be 021052 branch mouse_gpio_config_pu_check 
+:      021054 mouse_switch_gpio_connect_gnd_check:
+0x57bf 021055 call mouse_switch_gpio_connect_gnd 
+0x57c0 021056 fetch 1 ,mem_device_switch_gpio 
+0x57c1 021057 branch mouse_gpio_config_pd_check 
+:      021059 mouse_switch_gpio_connect_vin:
+0x57c2 021060 fetch 1 ,mem_device_switch_gpio 
+0x57c3 021061 call mouse_gpio_config_pd_check 
+0x57c4 021062 fetcht 1 ,mem_device_switch_gpio 
+0x57c5 021063 call gpio_get_bit 
+0x57c6 021064 branch mouse_select_btdevice ,true 
+0x57c7 021065 branch mouse_select_24gdevice 
+:      021067 mouse_switch_gpio_connect_gnd:
+0x57c8 021068 fetch 1 ,mem_device_switch_gpio 
+0x57c9 021069 call mouse_gpio_config_pu_check 
+0x57ca 021070 fetcht 1 ,mem_device_switch_gpio 
+0x57cb 021071 call gpio_get_bit 
+0x57cc 021072 branch mouse_select_24gdevice ,true 
+0x57cd 021073 branch mouse_select_btdevice 
+:      021075 mouse_select_btdevice:
+0x57ce 021076 fetch 1 ,mem_device_flag 
+0x57cf 021077 rtneq mode_bt_device1 
+0x57d0 021078 jam mode_bt_device1 ,mem_device_flag 
+0x57d1 021079 branch mouse_select_device_set 
+:      021081 mouse_select_24gdevice:
+0x57d2 021082 fetch 1 ,mem_device_flag 
+0x57d3 021083 rtneq mode_24g_device 
+0x57d4 021084 jam mode_24g_device ,mem_device_flag 
+:      021085 mouse_select_device_set:
+0x57d5 021086 call mouse_select_device_stop_set 
+0x57d6 021087 branch mouse_soft_reset 
+:      021091 mouse_check_select_device_by_switch_once:
+0x57d7 021092 bpatch patch13_6 ,mem_patch13 
+0x57d8 021093 fetch mouse_flag_len ,mem_mouse_flag 
+0x57d9 021094 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+0x57da 021095 bbit0 mouse_enable_switch_gpio_connect_vin ,mouse_switch_gpio_connect_gnd_check_once 
+:      021096 mouse_switch_gpio_connect_vin_check_once:
+0x57db 021097 call mouse_switch_gpio_connect_vin_once 
+0x57dc 021098 fetch 1 ,mem_device_switch_gpio 
+0x57dd 021099 branch mouse_gpio_config_pu_check 
+:      021101 mouse_switch_gpio_connect_gnd_check_once:
+0x57de 021102 call mouse_switch_gpio_connect_gnd_once 
+0x57df 021103 fetch 1 ,mem_device_switch_gpio 
+0x57e0 021104 branch mouse_gpio_config_pd_check 
+:      021107 mouse_switch_gpio_connect_vin_once:
+0x57e1 021108 fetch 1 ,mem_device_switch_gpio 
+0x57e2 021109 call mouse_gpio_config_pd_check 
+0x57e3 021110 fetcht 1 ,mem_device_switch_gpio 
+0x57e4 021111 call gpio_get_bit 
+0x57e5 021112 branch mouse_check_select_btdevice ,true 
+0x57e6 021113 branch mouse_check_select_24g_device 
+:      021115 mouse_switch_gpio_connect_gnd_once:
+0x57e7 021117 fetch 1 ,mem_device_switch_gpio 
+0x57e8 021118 call mouse_gpio_config_pu_check 
+0x57e9 021119 fetcht 1 ,mem_device_switch_gpio 
+0x57ea 021120 call gpio_get_bit 
+0x57eb 021121 branch mouse_check_select_24g_device ,true 
+0x57ec 021122 branch mouse_check_select_btdevice 
+:      021124 mouse_check_select_24g_device:
+0x57ed 021125 fetch 1 ,mem_device_flag 
+0x57ee 021126 rtneq mode_24g_device 
+0x57ef 021127 jam mode_24g_device ,mem_device_flag 
+:      021128 mouse_select_device_stop_set:
+0x57f0 021129 call mouse_24g_stop 
+0x57f1 021130 branch mouse_stop_bluetooth_mode 
+:      021132 mouse_check_select_btdevice:
+0x57f2 021133 fetch 1 ,mem_device_flag 
+0x57f3 021134 rtneq mode_bt_device1 
+0x57f4 021135 jam mode_bt_device1 ,mem_device_flag 
+0x57f5 021136 branch mouse_select_device_stop_set 
+:      021141 mouse_ready_reconnection_by_button:
+0x57f6 021142 bpatch patch13_7 ,mem_patch13 
+0x57f7 021143 fetch 1 ,mem_device_number 
+0x57f8 021144 rtneq 1 
+0x57f9 021145 call mouse_select_device_number 
+0x57fa 021146 storet 1 ,mem_device_flag 
+:      021147 mouse_store_device_number_before_reset:
+0x57fb 021148 call mouse_select_device_enable 
+0x57fc 021149 call mouse_stop_bluetooth_mode 
+0x57fd 021150 call app_evt_button_long_pressed 
+0x57fe 021151 call mouse_select_device_disable 
+0x57ff 021152 jam 1 ,mem_device_need_soft_reset 
+0x5800 021153 branch mouse_store_device_info_delay 
+:      021155 mouse_soft_reset:
+0x5801 021156 call mouse_select_device_enable 
+0x5802 021157 branch soft_reset_chip 
+:      021159 mouse_select_device_number:
+0x5803 021160 fetcht 1 ,mem_device_flag 
+0x5804 021161 increase 1 ,temp 
+0x5805 021162 fetch mouse_flag_len ,mem_mouse_flag 
+0x5806 021163 bbit1 mouse_enable_24g ,mouse_select_device_number_24g 
+0x5807 021164 sub temp ,2 ,null 
+0x5808 021165 rtn positive 
+:      021166 mouse_select_device_count_clean_bt:
+0x5809 021167 arg 1 ,temp 
+0x580a 021168 rtn 
+:      021170 mouse_select_device_number_24g:
+0x580b 021171 fetch 1 ,mem_device_number 
+0x580c 021172 increase -1 ,pdata 
+0x580d 021173 isub temp ,null 
+0x580e 021174 rtn positive 
+:      021175 mouse_select_device_count_clean_24g:
+0x580f 021176 arg 0 ,temp 
+0x5810 021177 rtn 
+:      021179 mouse_store_device_number2eeprom:
+0x5811 021180 arg 1 ,temp 
+0x5812 021181 arg mem_device_flag ,rega 
+0x5813 021182 arg 0 ,regb 
+0x5814 021183 branch iicd_write_protect_eep_data 
+:      021185 mouse_bt_button_check:
+0x5815 021186 fetch mouse_flag_len ,mem_mouse_flag 
+0x5816 021187 rtnbit0 mouse_enable_pb_button_short_press_enter_discovery 
+0x5817 021188 branch mouse_select_device_by_pb_button 
+:      021190 mouse_select_device_enable:
+0x5818 021191 arg mouse_select_device_flag ,queue 
+0x5819 021192 branch mouse_enable_function_flag 
+:      021193 mouse_select_device_disable:
+0x581a 021194 arg mouse_select_device_flag ,queue 
+0x581b 021195 branch mouse_disable_function_flag 
+:      021196 mouse_bt_cannel_reconn_enable:
+0x581c 021197 arg mouse_bt_cannel_reconn_flag ,queue 
+0x581d 021198 branch mouse_enable_function_flag 
+:      021199 mouse_bt_cannel_reconn_disable:
+0x581e 021200 arg mouse_bt_cannel_reconn_flag ,queue 
+0x581f 021201 branch mouse_disable_function_flag 
+:      021202 mouse_bt_discovery_button_down_enable:
+0x5820 021203 arg mouse_bt_discovery_button_down_flag ,queue 
+0x5821 021204 branch mouse_enable_function_flag 
+:      021205 mouse_bt_discovery_button_down_disable:
+0x5822 021206 arg mouse_bt_discovery_button_down_flag ,queue 
+0x5823 021207 branch mouse_disable_function_flag 
+:      021209 mouse_adc_read_enable:
+0x5824 021210 arg mouse_enable_adc ,queue 
+0x5825 021211 branch mouse_enable_function_flag 
+:      021213 mouse_24g_set_250hz:
+0x5826 021214 arg mouse_enable_24g_250hz ,queue 
+0x5827 021215 branch mouse_enable_function_flag 
+:      021217 mouse_24g_search_dongle_enable:
+0x5828 021218 arg mouse_enable_24g_search_dongle ,queue 
+0x5829 021219 branch mouse_enable_function_flag 
+:      021221 mouse_16m_enable:
+0x582a 021222 arg mouse_enable_16m ,queue 
+0x582b 021223 branch mouse_enable_function_flag 
+:      021225 mouse_dpi_4level_enable:
+0x582c 021226 arg mouse_enable_dpi_level_4 ,queue 
+0x582d 021227 branch mouse_enable_function_flag 
+:      021229 mouse_enable_function_flag:
+0x582e 021230 fetch mouse_flag_len ,mem_mouse_flag 
+0x582f 021231 qset1 pdata 
+0x5830 021232 store mouse_flag_len ,mem_mouse_flag 
+0x5831 021233 rtn 
+:      021235 mouse_disable_function_flag:
+0x5832 021236 fetch mouse_flag_len ,mem_mouse_flag 
+0x5833 021237 qset0 pdata 
+0x5834 021238 store mouse_flag_len ,mem_mouse_flag 
+0x5835 021239 rtn 
+:      021241 mouse_polling_device:
+0x5836 021242 bpatch patch14_0 ,mem_patch14 
+0x5837 021243 fetch 1 ,mem_reconn_times 
+0x5838 021244 increase -1 ,pdata 
+0x5839 021245 store 1 ,mem_reconn_times 
+0x583a 021246 fetcht 1 ,mem_device_flag 
+0x583b 021247 sub temp ,1 ,null 
+0x583c 021248 ncall mouse_select_device_number ,zero 
+0x583d 021249 storet 1 ,mem_device_flag 
+0x583e 021250 call mouse_store_device_number2eeprom 
+0x583f 021251 call hid_device_before_store_reconn_info 
+0x5840 021252 branch mouse_start_reconnect_device 
+:      021256 mouse_drawing_optima:
+0x5841 021257 bpatch patch14_1 ,mem_patch14 
+0x5842 021258 fetch 1 ,mem_config_sensor_type 
+0x5843 021259 rtneq p3212 
+0x5844 021260 rtneq ka8g2 
+0x5845 021261 fetch mouse_flag_len ,mem_mouse_flag 
+0x5846 021262 rtnbit0 mouse_enable_smoother 
+0x5847 021263 fetch 4 ,mem_mouse_x 
+0x5848 021264 rtn blank 
+0x5849 021265 call mouse_data_abs_check 
+0x584a 021266 setarg 0x03 
+0x584b 021267 call mouse_pdata_greater_than_check 
+0x584c 021268 call mouse_disable_asm ,blank 
+0x584d 021269 ncall mouse_enable_asm ,blank 
+0x584e 021270 setarg 0x02 
+0x584f 021271 call mouse_data_less_than_check 
+0x5850 021272 call mouse_disable_asm ,blank 
+0x5851 021273 fetch 1 ,mem_mouse_asm_flag 
+0x5852 021274 beq 1 ,mouse_drawing_optima_modify 
+:      021275 mouse_drawing_optima_init:
+0x5853 021276 fetch mouse_flag_len ,mem_mouse_flag 
+0x5854 021277 rtnbit0 mouse_enable_smoother 
+0x5855 021278 arg 5 ,loopcnt 
+0x5856 021279 arg mem_mouse_asm_flag ,contw 
+0x5857 021280 branch clear_mem 
+:      021282 mouse_drawing_optima_modify:
+0x5858 021283 call mouse_drawing_optima_xy_offset_modify 
+0x5859 021284 fetch 2 ,mem_mouse_x_pre 
+0x585a 021285 store 2 ,mem_data_pre 
+0x585b 021286 fetch 2 ,mem_mouse_x 
+0x585c 021287 store 2 ,mem_data_current 
+0x585d 021288 call mouse_drawing_optima_data_x 
+0x585e 021289 fetch 2 ,mem_data_pre 
+0x585f 021290 store 2 ,mem_mouse_x_pre 
+0x5860 021291 fetch 2 ,mem_data_current 
+0x5861 021292 store 2 ,mem_mouse_x 
+0x5862 021294 fetch 2 ,mem_mouse_y_pre 
+0x5863 021295 store 2 ,mem_data_pre 
+0x5864 021296 fetch 2 ,mem_mouse_y 
+0x5865 021297 store 2 ,mem_data_current 
+0x5866 021298 call mouse_drawing_optima_data_y 
+0x5867 021299 fetch 2 ,mem_data_pre 
+0x5868 021300 store 2 ,mem_mouse_y_pre 
+0x5869 021301 fetch 2 ,mem_data_current 
+:      021302 mouse_data_y_store:
+0x586a 021303 store 2 ,mem_mouse_y 
+0x586b 021304 rtn 
+:      021306 mouse_drawing_optima_xy_offset_modify:
+0x586c 021307 fetch mouse_flag_len ,mem_mouse_flag 
+0x586d 021308 rtnbit0 mouse_enable_xy_offset 
+0x586e 021309 bpatch patch14_2 ,mem_patch14 
+0x586f 021310 fetch 2 ,mem_mouse_x_pre 
+0x5870 021311 store 2 ,mem_data_value 
+0x5871 021312 call mouse_pre_xy_data_judge 
+0x5872 021313 store 2 ,mem_mouse_x_pre 
+0x5873 021314 fetch 2 ,mem_mouse_x 
+0x5874 021315 store 2 ,mem_data_value 
+0x5875 021316 call mouse_current_xy_data_judge 
+0x5876 021317 store 2 ,mem_mouse_x 
+0x5877 021318 fetch 2 ,mem_mouse_y_pre 
+0x5878 021319 store 2 ,mem_data_value 
+0x5879 021320 call mouse_pre_xy_data_judge 
+0x587a 021321 store 2 ,mem_mouse_y_pre 
+0x587b 021322 fetch 2 ,mem_mouse_y 
+0x587c 021323 store 2 ,mem_data_value 
+0x587d 021324 call mouse_current_xy_data_judge 
+0x587e 021325 branch mouse_data_y_store 
+:      021327 mouse_pre_xy_data_judge:
+0x587f 021328 fetch 1 ,mem_data_value + 1 
+0x5880 021329 branch mouse_pre_xy_pdata_offset ,blank 
+0x5881 021330 branch mouse_pre_xy_ndata_offset 
+:      021332 mouse_pre_xy_pdata_offset:
+0x5882 021333 fetch 1 ,mem_data_value 
+0x5883 021334 call mouse_pre_xy_get_0_4_times 
+0x5884 021335 store 1 ,mem_data_value 
+:      021336 mouse_xy_data_offset_new:
+0x5885 021337 fetch 2 ,mem_data_value 
+0x5886 021338 rtn 
+:      021339 mouse_pre_xy_ndata_offset:
+0x5887 021340 fetch 1 ,mem_data_value 
+0x5888 021341 call mouse_pdata_invert 
+0x5889 021342 call mouse_pre_xy_get_0_4_times 
+0x588a 021343 call disable_blank ,blank 
+0x588b 021344 call mouse_pdata_get_new_value 
+0x588c 021345 branch mouse_xy_data_offset_new 
+:      021347 mouse_current_xy_data_judge:
+0x588d 021348 fetch 1 ,mem_data_value + 1 
+0x588e 021349 branch mouse_current_xy_pdata_offset ,blank 
+0x588f 021350 branch mouse_current_xy_ndata_offset 
+:      021351 mouse_current_xy_pdata_offset:
+0x5890 021352 fetch 1 ,mem_data_value 
+0x5891 021353 call mouse_current_xy_get_0_6_times 
+0x5892 021354 store 1 ,mem_data_value 
+0x5893 021355 branch mouse_xy_data_offset_new 
+:      021356 mouse_current_xy_ndata_offset:
+0x5894 021357 fetch 1 ,mem_data_value 
+0x5895 021358 call mouse_pdata_invert 
+0x5896 021359 call mouse_current_xy_get_0_6_times 
+0x5897 021360 call disable_blank ,blank 
+0x5898 021361 call mouse_pdata_get_new_value 
+0x5899 021362 branch mouse_xy_data_offset_new 
+:      021364 mouse_pre_xy_get_0_4_times:
+0x589a 021365 mul32 pdata ,4 ,pdata 
+0x589b 021366 div pdata ,5 
+0x589c 021367 branch mouse_div_end 
+:      021369 mouse_current_xy_get_0_6_times:
+0x589d 021370 mul32 pdata ,12 ,pdata 
+0x589e 021371 div pdata ,10 
+:      021372 mouse_div_end:
+0x589f 021373 call wait_div_end 
+0x58a0 021374 quotient pdata 
+0x58a1 021375 rtn 
+:      021377 mouse_drawing_optima_data_x:
+0x58a2 021378 fetch 2 ,mem_data_pre 
+0x58a3 021379 fetcht 2 ,mem_data_current 
+0x58a4 021380 iadd temp ,pdata 
+0x58a5 021381 fetcht 1 ,mem_mouse_data_xtemp 
+0x58a6 021382 iadd temp ,pdata 
+0x58a7 021383 and pdata ,0x01 ,temp 
+0x58a8 021384 storet 1 ,mem_mouse_data_xtemp 
+0x58a9 021385 branch mouse_drawing_optima_data 
+:      021387 mouse_drawing_optima_data_y:
+0x58aa 021388 fetch 2 ,mem_data_pre 
+0x58ab 021389 fetcht 2 ,mem_data_current 
+0x58ac 021390 iadd temp ,pdata 
+0x58ad 021391 fetcht 1 ,mem_mouse_data_ytemp 
+0x58ae 021392 iadd temp ,pdata 
+0x58af 021393 and pdata ,0x01 ,temp 
+0x58b0 021394 storet 1 ,mem_mouse_data_ytemp 
+0x58b1 021395 branch mouse_drawing_optima_data 
+:      021397 mouse_drawing_optima_data:
+0x58b2 021398 store 3 ,mem_data_sum 
+0x58b3 021399 isolate1 16 ,pdata 
+0x58b4 021400 branch mouse_data_sum_overflow ,true 
+0x58b5 021401 fetch 1 ,mem_data_sum + 1 
+0x58b6 021402 beq 0xff ,mouse_data_sum_n 
+0x58b7 021403 fetch 1 ,mem_data_sum 
+:      021404 mouse_data_store_pre:
+0x58b8 021405 rshift pdata ,pdata 
+0x58b9 021406 store 2 ,mem_data_pre 
+0x58ba 021407 store 2 ,mem_data_current 
+0x58bb 021408 rtn 
+:      021409 mouse_data_sum_overflow:
+0x58bc 021410 fetch 1 ,mem_data_sum + 1 
+0x58bd 021411 beq 0 ,mouse_data_sum_overflow_p 
+0x58be 021412 fetch 3 ,mem_data_sum 
+0x58bf 021413 branch mouse_data_store_pre 
+:      021414 mouse_data_sum_overflow_p:
+0x58c0 021415 jam 0 ,mem_data_sum + 2 
+0x58c1 021416 fetch 1 ,mem_data_sum 
+0x58c2 021417 branch mouse_data_store_pre 
+:      021419 mouse_data_sum_n:
+0x58c3 021420 fetch 1 ,mem_data_sum 
+0x58c4 021421 call mouse_pdata_get_half 
+0x58c5 021422 store 1 ,mem_data_pre 
+0x58c6 021423 store 1 ,mem_data_current 
+0x58c7 021424 branch mouse_data_zero ,blank 
+0x58c8 021425 setarg 0xff 
+:      021426 mouse_data_set_direction:
+0x58c9 021427 store 1 ,mem_data_pre + 1 
+0x58ca 021428 store 1 ,mem_data_current + 1 
+0x58cb 021429 rtn 
+:      021430 mouse_data_zero:
+0x58cc 021431 setarg 0 
+0x58cd 021432 branch mouse_data_set_direction 
+:      021434 mouse_pdata_get_half:
+0x58ce 021435 call mouse_pdata_invert 
+0x58cf 021436 rshift pdata ,pdata 
+:      021437 mouse_pdata_get_new_value:
+0x58d0 021438 call mouse_rega_in_out 
+0x58d1 021439 sub pdata ,0 ,pdata 
+0x58d2 021440 store 1 ,mem_data_value 
+0x58d3 021441 rtn 
+:      021443 mouse_pdata_invert:
+0x58d4 021444 sub pdata ,0 ,pdata 
+:      021445 mouse_rega_in_out:
+0x58d5 021446 store 1 ,mem_rega 
+0x58d6 021447 fetch 1 ,mem_rega 
+0x58d7 021448 rtn 
+:      021450 mouse_disable_asm:
+0x58d8 021451 jam 0 ,mem_mouse_asm_flag 
+0x58d9 021452 rtn 
+:      021453 mouse_enable_asm:
+0x58da 021454 jam 1 ,mem_mouse_asm_flag 
+0x58db 021455 rtn 
+:      021458 mouse_pdata_greater_than_check:
+0x58dc 021459 isub rega ,null 
+0x58dd 021460 nbranch disable_blank ,positive 
+0x58de 021461 isub regb ,null 
+0x58df 021462 nbranch disable_blank ,positive 
+0x58e0 021463 branch enable_blank 
+:      021464 mouse_data_less_than_check:
+0x58e1 021465 isub rega ,null 
+0x58e2 021466 nrtn positive 
+0x58e3 021467 isub regb ,null 
+0x58e4 021468 nrtn positive 
+0x58e5 021469 branch enable_blank 
+:      021471 mouse_data_abs_check:
+0x58e6 021472 fetch 2 ,mem_mouse_x 
+0x58e7 021473 call mouse_data_abs 
+0x58e8 021474 copy pdata ,rega 
+0x58e9 021475 fetch 2 ,mem_mouse_y 
+0x58ea 021476 call mouse_data_abs 
+0x58eb 021477 copy pdata ,regb 
+0x58ec 021478 rtn 
+:      021480 mouse_data_abs:
+0x58ed 021481 store 2 ,mem_data_current 
+0x58ee 021482 fetch 1 ,mem_data_current + 1 
+0x58ef 021483 beq 0xff ,mouse_data_reversal 
+0x58f0 021484 fetch 1 ,mem_data_current 
+:      021485 mouse_data_abs_store:
+0x58f1 021486 and_into 0xff ,pdata 
+0x58f2 021488 rtn 
+:      021489 mouse_data_reversal:
+0x58f3 021490 fetch 2 ,mem_data_current 
+0x58f4 021491 sub pdata ,0 ,pdata 
+0x58f5 021492 branch mouse_data_abs_store 
+:      021494 mouse_24g_long_sleep_param_update_timer:
+0x58f6 021495 arg mem_24g_long_sleep_param_update_timer ,regc 
+0x58f7 021496 arg mouse_24g_long_sleep_normal_param ,regb 
+0x58f8 021497 branch timer_single_step 
+:      021498 mouse_24g_long_sleep_normal_param:
+0x58f9 021499 fetch 4 ,mem_24g_long_sleep_set1 
+0x58fa 021500 store 4 ,mem_24g_enter_hibernate 
+0x58fb 021501 branch mouse_long_mult_init 
+:      021504 mouse_24g_long_sleep_set:
+0x58fc 021505 fetch 1 ,mem_24g_long_sleep_set_level 
+0x58fd 021506 beq 0x00 ,mouse_24g_long_sleep_set_30ms 
+0x58fe 021507 beq 0x01 ,mouse_24g_long_sleep_set_50ms 
+0x58ff 021508 beq 0x02 ,mouse_24g_long_sleep_set_80ms 
+0x5900 021509 beq 0x03 ,mouse_24g_long_sleep_set_100ms 
+:      021510 mouse_24g_long_sleep_set_80ms:
+0x5901 021511 setarg 0x0ea600 
+:      021512 mouse_24g_long_sleep_set_end:
+0x5902 021513 store 4 ,mem_24g_long_sleep_set1 
+0x5903 021514 rtn 
+:      021515 mouse_24g_long_sleep_set_30ms:
+0x5904 021516 setarg 0x05e740 
+0x5905 021517 branch mouse_24g_long_sleep_set_end 
+:      021518 mouse_24g_long_sleep_set_50ms:
+0x5906 021519 setarg 0x0927c0 
+0x5907 021520 branch mouse_24g_long_sleep_set_end 
+:      021521 mouse_24g_long_sleep_set_100ms:
+0x5908 021522 setarg 0x124f80 
+0x5909 021523 branch mouse_24g_long_sleep_set_end 
+:      021525 mouse_24g_hibernate_set:
+0x590a 021526 bpatch patch14_3 ,mem_patch14 
+0x590b 021527 jam 0 ,mem_mouse_pair_flag 
+0x590c 021528 jam 0 ,mem_24g_attempt_fail_flag 
+0x590d 021529 call g24_transmit_next_packet 
+0x590e 021530 setarg -1 
+0x590f 021531 store 8 ,mem_24g_enter_hibernate 
+0x5910 021532 setarg 0 
+0x5911 021533 store 7 ,mem_mouse_key 
+0x5912 021534 jam 1 ,mem_24g_shutdown_flag 
+0x5913 021535 call mouse_sensor_powerdown 
+0x5914 021536 call mouse_setgpio_hibernate 
+0x5915 021537 branch mouse_24g_long_sleep 
+:      021539 mouse_wakeup_24g:
+0x5916 021540 bpatch patch14_4 ,mem_patch14 
+0x5917 021541 fetch 1 ,mem_24g_shutdown_flag 
+0x5918 021542 ncall mouse_wakeup_24g_from_long_sleep ,blank 
+0x5919 021543 jam 0 ,mem_24g_shutdown_flag 
+0x591a 021544 rtn 
+:      021546 mouse_wakeup_24g_from_long_sleep:
+0x591b 021547 jam 1 ,mem_mouse_pair_flag 
+0x591c 021548 call mouse_init_sensor_wakeup 
+0x591d 021549 fetch mouse_flag_len ,mem_mouse_flag 
+0x591e 021550 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+:      021551 mouse_wheel_gpio_init:
+0x591f 021552 fetcht 1 ,mem_whee_a_data_gpio 
+0x5920 021553 call device_gpio_config_input_pu 
+0x5921 021554 fetcht 1 ,mem_whee_b_data_gpio 
+0x5922 021555 branch device_gpio_config_input_pu 
+:      021557 mouse_24g_transmit_start:
+0x5923 021558 call mouse_24g_fast_conn_mode_check 
+0x5924 021559 fetch 1 ,mem_24g_shutdown_flag 
+0x5925 021560 nbranch mouse_24g_short_sleep ,blank 
+0x5926 021561 branch g24_transmit_start_next 
+:      021563 mouse_24g_fast_conn_mode_check:
+0x5927 021564 fetch 4 ,mem_24g_receiver_addr 
+0x5928 021565 fetcht 4 ,mem_24g_fast_conn_addr 
+0x5929 021566 isub temp ,null 
+0x592a 021567 branch mouse_soft_agc_enable ,zero 
+:      021568 mouse_soft_agc_disable:
+0x592b 021569 jam 0xff ,mem_gain_fix 
+0x592c 021570 rtn 
+:      021572 mouse_soft_agc_enable:
+0x592d 021573 jam 0 ,mem_gain_fix 
+0x592e 021574 jam tx_power_factory ,mem_tx_power 
+0x592f 021575 rtn 
+:      021577 device_store_normal_tx_power:
+0x5930 021578 fetch 1 ,mem_tx_power 
+0x5931 021579 store 1 ,mem_device_normal_tx_power 
+0x5932 021580 rtn 
+:      021582 device_fetch_normal_tx_power:
+0x5933 021583 fetch 1 ,mem_device_normal_tx_power 
+0x5934 021584 store 1 ,mem_tx_power 
+0x5935 021585 rtn 
+:      021587 mouse_24g_stop:
+0x5936 021588 set0 mark_24g ,mark 
+0x5937 021589 jam state_24g_stop ,mem_24g_conn_sm 
+0x5938 021590 arg mouse_24g_pairing_flag ,queue 
+0x5939 021591 branch mouse_disable_function_flag 
+:      021593 mouse_24g_start_mode:
+0x593a 021594 fetch mouse_flag_len ,mem_mouse_flag 
+0x593b 021595 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+0x593c 021596 call mouse_device_24g_pair_led_config 
+0x593d 021597 call mouse_wakeup_from_power_check 
+0x593e 021598 branch mouse_24g_reconn_dongle_start ,user 
+0x593f 021599 fetch mouse_flag_len ,mem_mouse_flag 
+0x5940 021600 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+0x5941 021601 bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+0x5942 021602 call mouse_key_check_once 
+0x5943 021603 and rega ,0x07 ,pdata 
+0x5944 021604 fetcht 1 ,mem_mouse_commbination_key_24g 
+0x5945 021605 isub temp ,null 
+0x5946 021606 branch mouse_24g_start_pair_mode ,zero 
+0x5947 021607 branch mouse_24g_reconn_general_dongle 
+:      021609 mouse_24g_mode_setup_error:
+0x5948 021610 fetch 1 ,mem_reconn_times 
+0x5949 021611 nbranch mouse_polling_device ,blank 
+0x594a 021612 rtn 
+:      021614 mouse_24g_first_start_auto_pair_mode:
+0x594b 021615 call mouse_wakeup_from_power_check 
+0x594c 021616 branch mouse_24g_first_start_reconn ,user 
+:      021617 mouse_24g_reconn_general_dongle:
+0x594d 021618 jam mode_24g_device ,mem_device_flag 
+0x594e 021619 fetch 2 ,mem_device_24g_power_on_fast_conn_timer 
+0x594f 021620 store 2 ,mem_24g_reconn_timeout 
+0x5950 021621 jam fast_conn_and_receiver ,mem_24g_reconn_type 
+0x5951 021622 branch g24_reconn_start 
+:      021624 mouse_24g_start_auto_pair:
+0x5952 021625 fetch 2 ,mem_24g_pair_timeout_init 
+0x5953 021626 store 2 ,mem_24g_reconn_timeout 
+0x5954 021627 jam pair_and_3_0_addr ,mem_24g_reconn_type 
+0x5955 021628 branch g24_reconn_start 
+:      021630 mouse_24g_first_start_reconn:
+0x5956 021631 fetch 1 ,mem_device_flag 
+0x5957 021632 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
+0x5958 021633 call mouse_bluetooth_fast_conn_disable 
+:      021634 mouse_24g_first_bluetooth_reconnect:
+0x5959 021635 call mouse_24g_stop 
+0x595a 021636 jam mode_bt_device1 ,mem_device_flag 
+0x595b 021637 call hid_device_select_reconn_device 
+0x595c 021638 branch mouse_le_fast_conn_judge 
+:      021640 mouse_24g_first_bb_event_reconn_timeout:
+0x595d 021641 call mouse_wakeup_from_power_check 
+0x595e 021642 branch mouse_app_enter_hibernate ,user 
+0x595f 021643 branch mouse_start_discovery 
+:      021645 mouse_24g_first_store_reconn_info:
+0x5960 021646 call mouse_wakeup_from_power_check 
+0x5961 021647 rtn user 
+0x5962 021648 fetch mouse_flag_len ,mem_mouse_flag 
+0x5963 021649 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_store_device_info_delay 
+0x5964 021650 rtn 
+:      021652 mouse_24g_start_pair_mode:
+0x5965 021653 call mouse_device_24g_pair_led_config 
+0x5966 021654 jam 0 ,mem_24g_reconn_type 
+0x5967 021655 arg mouse_24g_pairing_flag ,queue 
+0x5968 021656 call mouse_enable_function_flag 
+0x5969 021657 setarg 0 
+0x596a 021658 store 2 ,mem_24g_reconn_timeout 
+0x596b 021659 call mouse_stop_discovery 
+:      021660 mouse_24g_pair_mode_check:
+0x596c 021661 jam type_ms ,mem_24g_data_type 
+0x596d 021662 fetch mouse_flag_len ,mem_mouse_flag 
+0x596e 021663 bbit0 mouse_enable_keyboard ,g24_pair_start 
+0x596f 021664 jam type_kb ,mem_24g_data_type 
+0x5970 021665 branch g24_pair_start 
+:      021667 mouse_24g_attempt_fail:
+0x5971 021668 call mouse_soft_agc_disable 
+0x5972 021669 call device_fetch_normal_tx_power 
+0x5973 021670 fetch 1 ,mem_24g_attempt_fail_flag 
+0x5974 021671 nbranch mouse_24g_hibernate_set ,blank 
+0x5975 021672 fetch 1 ,mem_24g_reconn_type 
+0x5976 021673 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
+0x5977 021674 beq fast_conn_and_receiver ,mouse_24g_fast_conn_attempt_fail 
+0x5978 021675 beq pair_and_3_0_addr ,mouse_24g_auto_pair_attempt_fail 
+0x5979 021676 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
+:      021677 mouse_24g_attempt_fail_enter_hibernate:
+0x597a 021678 call mouse_24g_stop 
+0x597b 021679 fetch 1 ,mem_reconn_times 
+0x597c 021680 nbranch mouse_polling_device ,blank 
+0x597d 021681 fetch 1 ,mem_device_flag 
+0x597e 021682 beq mode_24g_device ,mouse_app_enter_hibernate 
+0x597f 021683 rtn 
+:      021685 mouse_24g_fast_conn_attempt_fail:
+0x5980 021686 fetch mouse_flag_len ,mem_mouse_flag 
+0x5981 021687 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+0x5982 021688 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+0x5983 021689 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0x5984 021690 fetch 4 ,mem_device_24g_addr 
+0x5985 021691 fetcht 4 ,mem_device_compare_addr 
+0x5986 021692 isub temp ,null 
+0x5987 021693 branch mouse_24g_start_pair_mode ,zero 
+:      021694 mouse_24g_reconn_dongle_start:
+0x5988 021695 fetch 2 ,mem_24g_reconn_timeout_init 
+0x5989 021696 store 2 ,mem_24g_reconn_timeout 
+0x598a 021697 jam receiver_and_3_0_addr ,mem_24g_reconn_type 
+0x598b 021698 branch g24_reconn_start 
+:      021700 mouse_24g_auto_pair_attempt_fail:
+0x598c 021701 fetch mouse_flag_len ,mem_mouse_flag 
+0x598d 021702 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+0x598e 021703 fetch 1 ,mem_device_number 
+0x598f 021704 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
+0x5990 021705 branch mouse_24g_first_bluetooth_reconnect 
+:      021707 mouse_reconn_dongle_attempt_fail:
+0x5991 021708 fetch mouse_flag_len ,mem_mouse_flag 
+0x5992 021709 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+0x5993 021710 bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
+0x5994 021711 bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
+0x5995 021712 bbit1 mouse_enable_otp ,mouse_24g_attempt_fail_enter_hibernate 
+0x5996 021713 branch mouse_24g_start_auto_pair 
+:      021715 mouse_24g_attempt_success:
+0x5997 021716 fetch 4 ,mem_24g_addr 
+0x5998 021717 store 4 ,mem_24g_receiver_addr 
+0x5999 021718 store 4 ,mem_device_24g_addr 
+0x599a 021719 call g24_ch_syncword_crc8_init 
+0x599b 021720 call mouse_no_data_timer_init 
+0x599c 021721 call mouse_device_poweron_led_config 
+0x599d 021722 call mouse_init_sensor_reset 
+0x599e 021723 jam 0 ,mem_mouse_long_mult_flag 
+0x599f 021724 jam 0 ,mem_24g_conn_sm 
+0x59a0 021725 jam 0 ,mem_24g_reconn_type 
+0x59a1 021726 fetch 4 ,mem_24g_receiver_addr 
+0x59a2 021727 fetcht 4 ,mem_24g_fast_conn_addr 
+0x59a3 021728 isub temp ,null 
+0x59a4 021729 rtn zero 
+0x59a5 021730 call mouse_soft_agc_disable 
+0x59a6 021731 call device_fetch_normal_tx_power 
+0x59a7 021732 branch mouse_24g_first_store_reconn_info 
+:      021734 mouse_24g_pairing_complete:
+0x59a8 021735 call mouse_soft_agc_disable 
+0x59a9 021736 call device_fetch_normal_tx_power 
+0x59aa 021737 call mouse_init_sensor_reset 
+0x59ab 021738 call mouse_read_sensor_common 
+0x59ac 021739 call mouse_device_poweron_led_config 
+0x59ad 021740 call mouse_no_data_timer_init 
+0x59ae 021741 arg mouse_24g_pairing_flag ,queue 
+0x59af 021742 call mouse_disable_function_flag 
+0x59b0 021743 setarg 0 
+0x59b1 021744 store 2 ,mem_24g_pair_timeout 
+0x59b2 021745 store 2 ,mem_24g_reconn_timeout 
+0x59b3 021746 store 1 ,mem_24g_conn_sm 
+0x59b4 021747 store 1 ,mem_mouse_move_flag 
+0x59b5 021748 store 1 ,mem_24g_reconn_type 
+0x59b6 021751 fetch 4 ,mem_24g_addr 
+0x59b7 021752 store 4 ,mem_24g_receiver_addr 
+0x59b8 021753 store 4 ,mem_device_24g_addr 
+0x59b9 021754 branch mouse_store_device_info_delay 
+:      021756 mouse_24g_short_sleep_clear_wake:
+0x59ba 021757 call clear_wake 
+0x59bb 021758 branch lpm_write_gpio_wakeup 
+:      021760 mouse_24g_package_data:
+0x59bc 021761 bpatch patch14_5 ,mem_patch14 
+0x59bd 021762 rtnmark0 mark_24g 
+0x59be 021763 call mouse_motion 
+0x59bf 021764 nrtn user 
+0x59c0 021765 fetch 1 ,mem_mouse_24g_long_sleep_flag 
+0x59c1 021766 jam 0 ,mem_mouse_24g_long_sleep_flag 
+0x59c2 021767 ncall mouse_24g_short_sleep_clear_wake ,blank 
+0x59c3 021769 fetch mouse_flag_len ,mem_mouse_flag 
+0x59c4 021770 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+0x59c5 021771 fetch 1 ,mem_customer_key 
+0x59c6 021772 nbranch mouse_24g_keyboard_package_data ,blank 
+:      021773 mouse_24g_mouse_package_data:
+0x59c7 021774 call mouse_data_xy_release 
+0x59c8 021775 fetch 1 ,mem_24g_data_type 
+0x59c9 021776 bbit1 1 ,mouse_24g_mouse_package_data_now 
+0x59ca 021777 fetcht 1 ,mem_24g_txbuf + 1 
+0x59cb 021778 fetch 1 ,mem_mouse_key 
+0x59cc 021779 ior temp ,pdata 
+0x59cd 021780 store 1 ,mem_mouse_key 
+0x59ce 021781 fetcht 1 ,mem_24g_txbuf + 6 
+0x59cf 021782 fetch 1 ,mem_mouse_z 
+0x59d0 021783 iadd temp ,pdata 
+0x59d1 021784 store 1 ,mem_mouse_z 
+0x59d2 021785 fetcht 1 ,mem_24g_txbuf + 7 
+0x59d3 021786 fetch 1 ,mem_mouse_tz 
+0x59d4 021787 iadd temp ,pdata 
+0x59d5 021788 store 1 ,mem_mouse_tz 
+:      021789 mouse_24g_mouse_package_data_now:
+0x59d6 021790 jam type_ms ,mem_24g_data_type 
+0x59d7 021791 arg 7 ,rega 
+0x59d8 021792 arg mem_mouse_key ,regb 
+0x59d9 021793 fetch 2 ,mem_mouse_z 
+0x59da 021794 rtn blank 
+0x59db 021795 branch g24_transmit_by_interrupt_enable 
+:      021797 mouse_24g_keyboard_package_data:
+0x59dc 021798 jam type_kb ,mem_24g_data_type 
+0x59dd 021799 arg 9 ,rega 
+0x59de 021800 branch hid_device_24g_keyboard_package_data_set 
+:      021802 mouse_g24_retransmit:
+0x59df 021803 fetch 1 ,mem_device_need_soft_reset 
+0x59e0 021804 nrtn blank 
+0x59e1 021805 call mouse_g24_retransmit_100ms_timer 
+0x59e2 021806 branch g24_retransmit0 
+:      021808 mouse_g24_retransmit_100ms_timer:
+0x59e3 021809 arg 12 ,queue 
+0x59e4 021810 call timer_check 
+0x59e5 021811 nrtn blank 
+0x59e6 021812 call mouse_retransmit_select_device_by_pb_button 
+0x59e7 021813 call mouse_retransmit_commbination_key_check 
+0x59e8 021814 call mouse_dpi_check_once 
+0x59e9 021815 call mouse_dpi_key_check_long_press 
+:      021816 mouse_g24_retransmit_100ms_timer_init:
+0x59ea 021817 arg 12 ,queue 
+0x59eb 021818 setarg 160 
+0x59ec 021819 branch timer_init 
+:      021821 mouse_dpi_check_once:
+0x59ed 021822 fetch mouse_flag_len ,mem_mouse_flag 
+0x59ee 021823 rtnbit0 mouse_enable_select_device_by_dpi_button 
+0x59ef 021824 branch mouse_dpi_check 
+:      021827 mouse_24g_before_lpm_sleep:
+0x59f0 021828 call lpm_puchk_set_check 
+0x59f1 021829 branch hid_device_before_lpm_set 
+:      021834 mouse_logo_led_on_timer:
+0x59f2 021835 fetch 1 ,mem_mouse_logo_led_gpio 
+0x59f3 021836 rtneq gpio_disable 
+0x59f4 021837 fetch 2 ,mem_device_no_data_timer 
+0x59f5 021838 rtn blank 
+0x59f6 021839 fetch 2 ,mem_device_no_data_timeout 
+0x59f7 021840 fetcht 2 ,mem_device_no_data_timer 
+0x59f8 021841 isub temp ,temp 
+0x59f9 021842 fetch 2 ,mem_mouse_logo_led_on_time_init 
+0x59fa 021843 isub temp ,pdata 
+0x59fb 021844 branch mouse_logo_led_on ,positive 
+:      021845 mouse_logo_led_off:
+0x59fc 021846 fetcht 1 ,mem_mouse_logo_led_gpio 
+0x59fd 021847 branch mouse_led_off 
+:      021848 mouse_logo_led_on:
+0x59fe 021849 fetcht 1 ,mem_mouse_logo_led_gpio 
+0x59ff 021850 branch mouse_led_on 
+:      021857 mouse_dpi_led_blink_delay_timer:
+0x5a00 021858 arg mem_mouse_dpi_led_delay_count ,regc 
+0x5a01 021859 arg mouse_dpi_led_blink_init ,regb 
+0x5a02 021860 branch timer_single_step 
+:      021862 mouse_dpi_led_blink_init:
+0x5a03 021863 bpatch patch14_6 ,mem_patch14 
+0x5a04 021864 fetch mouse_flag_len ,mem_mouse_flag 
+0x5a05 021865 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_led_blink_set_4_level 
+:      021866 mouse_dpi_led_blink_set_3_level:
+0x5a06 021867 fetch 1 ,mem_mouse_dpi 
+0x5a07 021868 beq mouse_dpi_level1 ,mouse_dpi_level_2_blink 
+0x5a08 021869 beq mouse_dpi_level2 ,mouse_dpi_level_3_blink 
+0x5a09 021870 beq mouse_dpi_level3 ,mouse_dpi_level_1_blink 
+0x5a0a 021871 rtn 
+:      021873 mouse_dpi_led_blink_set_4_level:
+0x5a0b 021874 fetch 1 ,mem_mouse_dpi 
+0x5a0c 021875 beq mouse_dpi_level1 ,mouse_dpi_level_3_blink 
+0x5a0d 021876 beq mouse_dpi_level2 ,mouse_dpi_level_4_blink 
+0x5a0e 021877 beq mouse_dpi_level3 ,mouse_dpi_level_1_blink 
+0x5a0f 021878 beq mouse_dpi_level4 ,mouse_dpi_level_2_blink 
+0x5a10 021879 rtn 
+:      021881 mouse_dpi_level_1_blink:
+0x5a11 021882 setarg 2 
+0x5a12 021883 branch mouse_multi_dpi_led_blink_enable 
+:      021885 mouse_dpi_level_2_blink:
+0x5a13 021886 setarg 4 
+0x5a14 021887 branch mouse_multi_dpi_led_blink_enable 
+:      021889 mouse_dpi_level_3_blink:
+0x5a15 021890 setarg 6 
+0x5a16 021891 branch mouse_multi_dpi_led_blink_enable 
+:      021893 mouse_dpi_level_4_blink:
+0x5a17 021894 setarg 8 
+0x5a18 021895 branch mouse_multi_dpi_led_blink_enable 
+:      021897 mouse_multi_dpi_led_blink_enable:
+0x5a19 021898 store 1 ,mem_mouse_multi_led_blink_count 
+0x5a1a 021899 jam 4 ,mem_mouse_multi_led_blink_type 
+0x5a1b 021900 call mouse_multi_dpi_led_blink_timer_init 
+0x5a1c 021901 jam multi_led_blink ,mem_mouse_multi_led_type 
+0x5a1d 021902 branch mouse_multi_led_enable 
+:      021904 mouse_dpi_led_blink_delay:
+0x5a1e 021913 fetch 1 ,mem_mouse_pair_flag 
+0x5a1f 021914 rtn blank 
+0x5a20 021915 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+0x5a21 021916 branch mouse_dpi_led_blink_init ,blank 
+0x5a22 021917 store 1 ,mem_mouse_dpi_led_delay_count 
+0x5a23 021918 rtn 
+:      021926 mouse_check_dpi_blink:
+0x5a24 021927 disable user 
+0x5a25 021928 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x5a26 021929 sub pdata ,4 ,null 
+0x5a27 021930 nrtn zero 
+0x5a28 021931 branch enable_user 
+:      021933 mouse_low_voltage_led_timer:
+0x5a29 021934 fetch mouse_flag_len ,mem_mouse_flag 
+0x5a2a 021935 rtnbit0 mouse_enable_low_led 
+0x5a2b 021936 rtnbit0 mouse_low_voltage_flag 
+0x5a2c 021945 fetch 1 ,mem_mouse_pair_flag 
+0x5a2d 021946 rtn blank 
+0x5a2e 021947 call mouse_check_dpi_blink 
+0x5a2f 021948 rtn user 
+0x5a30 021950 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+0x5a31 021951 branch mouse_low_led_blink_count_init_judge ,blank 
+:      021952 mouse_low_led_blink_timer:
+0x5a32 021953 fetcht 1 ,mem_adc_low_volatage_led_timer_count 
+0x5a33 021954 increase 1 ,temp 
+0x5a34 021955 storet 1 ,mem_adc_low_volatage_led_timer_count 
+0x5a35 021956 fetch 1 ,mem_mouse_low_led_blink_timer 
+0x5a36 021957 isub temp ,null 
+0x5a37 021958 ncall mouse_low_led_timer_count_clean ,positive 
+0x5a38 021959 fetch 1 ,mem_mouse_low_led_blink_half_timer 
+0x5a39 021960 isub temp ,null 
+0x5a3a 021961 nbranch mouse_low_voltage_led_off_judge ,positive 
+:      021962 mouse_low_voltage_led_on_judge:
+0x5a3b 021963 fetch mouse_flag_len ,mem_mouse_flag 
+0x5a3c 021964 bbit1 mouse_enable_low_for_led ,mouse_device_led_on 
+:      021965 mouse_low_voltage_led_on:
+0x5a3d 021966 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+0x5a3e 021967 branch mouse_led_on 
+:      021969 mouse_low_led_timer_count_clean:
+0x5a3f 021970 jam 1 ,mem_adc_low_volatage_led_timer_count 
+0x5a40 021971 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+0x5a41 021972 increase -1 ,pdata 
+0x5a42 021973 store 1 ,mem_mouse_multi_low_led_blink_count 
+:      021974 mouse_low_voltage_led_off_judge:
+0x5a43 021975 fetch mouse_flag_len ,mem_mouse_flag 
+0x5a44 021976 bbit1 mouse_enable_low_for_led ,mouse_device_led_off 
+:      021977 mouse_low_voltage_led_off:
+0x5a45 021978 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+0x5a46 021979 branch mouse_led_off 
+:      021981 mouse_low_led_blink_count_init_judge:
+0x5a47 021982 fetch mouse_flag_len ,mem_mouse_flag 
+0x5a48 021983 bbit1 mouse_enable_low_led_blink_limit ,mouse_low_voltage_led_off_judge 
+0x5a49 021984 call mouse_multi_low_led_blink_count_init 
+0x5a4a 021985 branch mouse_low_led_blink_timer 
+:      021993 mouse_device_multi_led_parm_init:
+0x5a4b 021994 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x5a4c 021995 call mouse_device_multi_led_all_off 
+0x5a4d 021996 jam 0 ,mem_mouse_multi_led_blink_type 
+0x5a4e 021997 fetch 1 ,mem_mouse_low_led_blink_timer 
+0x5a4f 021998 rshift pdata ,pdata 
+0x5a50 021999 store 1 ,mem_mouse_low_led_blink_half_timer 
+0x5a51 022000 rtn 
+:      022001 mouse_multi_low_led_blink_count_init:
+0x5a52 022002 fetch 1 ,mem_mouse_multi_lowled_blink_count_init 
+0x5a53 022003 store 1 ,mem_mouse_multi_low_led_blink_count 
+0x5a54 022004 rtn 
+:      022006 mouse_multi_led_blink_timer_init:
+0x5a55 022007 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x5a56 022008 beq 1 ,mouse_device_24g_led_blink_timer_init 
+0x5a57 022009 beq 2 ,mouse_device_le_discovery_led_blink_timer_init 
+0x5a58 022010 beq 3 ,mouse_device_le_reconn_led_blink_timer_init 
+:      022011 mouse_multi_dpi_led_blink_timer_init:
+0x5a59 022012 fetch 1 ,mem_mouse_dpi_led_blink_timer_init 
+:      022013 mouse_store_multi_led_blink_timer:
+0x5a5a 022014 store 1 ,mem_mouse_multi_led_blink_timer 
+0x5a5b 022015 rtn 
+:      022016 mouse_device_24g_led_blink_timer_init:
+0x5a5c 022017 fetch 1 ,mem_mouse_multi_24gled_blink_timer_init 
+0x5a5d 022018 branch mouse_store_multi_led_blink_timer 
+:      022019 mouse_device_le_discovery_led_blink_timer_init:
+0x5a5e 022020 fetch 1 ,mem_mouse_multi_le_discovery_blink_timer_init 
+0x5a5f 022021 branch mouse_store_multi_led_blink_timer 
+:      022022 mouse_device_le_reconn_led_blink_timer_init:
+0x5a60 022023 fetch 1 ,mem_mouse_multi_le_reconn_blink_timer_init 
+0x5a61 022024 branch mouse_store_multi_led_blink_timer 
+:      022027 mouse_device_poweron_led_config:
+0x5a62 022028 bpatch patch14_7 ,mem_patch14 
+0x5a63 022029 fetch 1 ,mem_mouse_multi_led_powon_timer_init 
+0x5a64 022030 store 1 ,mem_mouse_multi_led_powon_timer 
+0x5a65 022031 jam multi_led_on ,mem_mouse_multi_led_type 
+:      022032 mouse_multi_led_enable:
+0x5a66 022033 jam off ,mem_mouse_multi_led_state 
+0x5a67 022034 jam on ,mem_mouse_multi_led_blink_enable 
+0x5a68 022035 rtn 
+:      022038 mouse_device_24g_pair_led_config:
+0x5a69 022039 bpatch patch15_0 ,mem_patch15 
+0x5a6a 022041 call mouse_multi_led_blink_enable_init 
+0x5a6b 022042 jam 1 ,mem_mouse_multi_led_blink_type 
+0x5a6c 022043 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x5a6d 022044 rtn blank 
+0x5a6e 022045 fetch 1 ,mem_mouse_multi_24gled_blink_count_init 
+0x5a6f 022046 branch mouse_device_led_blink_count_init 
+:      022048 mouse_device_le_reconn_led_config:
+0x5a70 022049 bpatchx patch3a_3 ,mem_patch3a 
+0x5a71 022050 fetch mouse_flag_len ,mem_mouse_flag 
+0x5a72 022051 rtnbit0 mouse_enable_bt_reconn_led_effect 
+0x5a73 022053 call mouse_multi_led_blink_enable_init 
+0x5a74 022054 jam 3 ,mem_mouse_multi_led_blink_type 
+0x5a75 022055 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x5a76 022056 rtn blank 
+0x5a77 022057 fetch 1 ,mem_mouse_multi_le_reconn_blink_count_init 
+:      022058 mouse_device_led_blink_count_init:
+0x5a78 022059 store 1 ,mem_mouse_multi_led_blink_count 
+0x5a79 022060 rtn 
+:      022062 mouse_device_discovery_led_config:
+0x5a7a 022064 jam 0 ,mem_mouse_le_reconn_blink_limit 
+0x5a7b 022065 jam 2 ,mem_mouse_multi_led_blink_type 
+:      022066 mouse_multi_led_blink_enable_init:
+0x5a7c 022067 bpatchx patch3a_4 ,mem_patch3a 
+0x5a7d 022068 jam 0x0a ,mem_mouse_multi_led_blink_timer 
+0x5a7e 022069 jam 1 ,mem_mouse_multi_led_blink_enable 
+0x5a7f 022070 jam multi_led_blink ,mem_mouse_multi_led_type 
+0x5a80 022071 branch mouse_device_multi_led_on 
+:      022075 mouse_led_multi_timer:
+0x5a81 022076 fetch 1 ,mem_mouse_multi_led_blink_enable 
+0x5a82 022077 rtn blank 
+0x5a83 022078 fetch 1 ,mem_mouse_multi_led_type 
+0x5a84 022079 beq multi_led_blink ,mouse_multi_led_type_blink 
+:      022080 mouse_device_multi_led_type_on:
+0x5a85 022081 fetch 1 ,mem_mouse_multi_led_powon_timer 
+0x5a86 022082 branch mouse_device_poweron_led_off ,blank 
+0x5a87 022083 increase -1 ,pdata 
+0x5a88 022084 store 1 ,mem_mouse_multi_led_powon_timer 
+0x5a89 022085 branch mouse_device_led_on 
+:      022087 mouse_device_poweron_led_off:
+0x5a8a 022088 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x5a8b 022089 jam 1 ,mem_mouse_pair_flag 
+0x5a8c 022090 call mouse_multi_low_led_blink_count_init 
+0x5a8d 022091 branch mouse_device_led_off 
+:      022093 mouse_multi_led_type_blink:
+0x5a8e 022094 bpatch patch15_1 ,mem_patch15 
+0x5a8f 022095 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x5a90 022096 rtn blank 
+0x5a91 022097 beq 4 ,mouse_device_led_blink_limit 
+0x5a92 022098 branch mouse_device_led_blink_judge 
+:      022100 mouse_device_led_blink_judge:
+0x5a93 022101 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x5a94 022102 beq 1 ,mouse_device_led_blink_limit 
+0x5a95 022103 branch mouse_multi_led_type_blink_next 
+:      022105 mouse_device_led_blink_limit:
+0x5a96 022106 fetch 1 ,mem_mouse_multi_led_blink_count 
+0x5a97 022107 branch mouse_multi_led_off_judge ,blank 
+:      022108 mouse_multi_led_type_blink_next:
+0x5a98 022109 arg mem_mouse_multi_led_blink_timer ,regc 
+0x5a99 022110 arg mouse_multi_led_type_blink_start ,regb 
+0x5a9a 022111 branch timer_single_step 
+:      022113 mouse_multi_led_type_blink_start:
+0x5a9b 022114 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x5a9c 022115 beq 4 ,mouse_multi_led_blink_count_decrease 
+0x5a9d 022116 fetch 1 ,mem_mouse_le_reconn_blink_limit 
+0x5a9e 022117 beq 1 ,mouse_multi_led_blink_count_decrease 
+:      022118 mouse_multi_led_blink:
+0x5a9f 022119 call mouse_multi_led_blink_timer_init 
+0x5aa0 022120 fetch 1 ,mem_mouse_multi_led_state 
+0x5aa1 022121 beq on ,mouse_multi_led_off_judge_next 
+0x5aa2 022122 branch mouse_multi_led_on_judge 
+:      022124 mouse_multi_led_blink_count_decrease:
+0x5aa3 022125 fetch 1 ,mem_mouse_multi_led_blink_count 
+0x5aa4 022126 increase -1 ,pdata 
+0x5aa5 022127 store 1 ,mem_mouse_multi_led_blink_count 
+0x5aa6 022128 branch mouse_multi_led_blink 
+:      022131 mouse_multi_led_on_judge:
+0x5aa7 022132 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x5aa8 022133 beq 4 ,mouse_multi_dpi_led_on_judge 
+:      022134 mouse_device_multi_led_on:
+0x5aa9 022135 jam on ,mem_mouse_multi_led_state 
+:      022136 mouse_device_led_on:
+0x5aaa 022137 bpatch patch15_2 ,mem_patch15 
+0x5aab 022138 fetch 1 ,mem_device_flag 
+0x5aac 022139 beq mode_24g_device ,mouse_device_24g_led_on 
+0x5aad 022140 beq mode_bt_device1 ,mouse_device_bt1_led_on 
+0x5aae 022141 beq mode_bt_device2 ,mouse_device_bt2_led_on 
+0x5aaf 022142 rtn 
+:      022143 mouse_device_24g_led_on:
+0x5ab0 022144 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0x5ab1 022145 branch mouse_led_on 
+:      022146 mouse_device_bt1_led_on:
+0x5ab2 022147 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0x5ab3 022148 branch mouse_led_on 
+:      022149 mouse_device_bt2_led_on:
+0x5ab4 022150 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+:      022151 mouse_led_on:
+0x5ab5 022152 branch gpio_out_active 
+:      022154 mouse_led_off:
+0x5ab6 022155 branch gpio_out_inactive 
+:      022157 mouse_multi_led_off_judge:
+0x5ab7 022158 jam 0 ,mem_mouse_multi_led_blink_enable 
+0x5ab8 022159 jam 0 ,mem_mouse_multi_led_blink_type 
+:      022160 mouse_multi_led_off_judge_next:
+0x5ab9 022161 fetch 1 ,mem_mouse_multi_led_blink_type 
+0x5aba 022162 beq 4 ,mouse_multi_dpi_led_off_judge 
+:      022163 mouse_device_multi_led_off:
+0x5abb 022164 jam off ,mem_mouse_multi_led_state 
+:      022165 mouse_device_led_off:
+0x5abc 022166 bpatch patch15_3 ,mem_patch15 
+0x5abd 022167 fetch 1 ,mem_device_flag 
+0x5abe 022168 beq mode_24g_device ,mouse_device_24g_led_off 
+0x5abf 022169 beq mode_bt_device1 ,mouse_device_bt1_led_off 
+0x5ac0 022170 beq mode_bt_device2 ,mouse_device_bt2_led_off 
+0x5ac1 022171 rtn 
+:      022172 mouse_device_24g_led_off:
+0x5ac2 022173 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0x5ac3 022174 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ac4 022175 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x5ac5 022176 branch gpio_set_analog 
+:      022177 mouse_device_bt1_led_off:
+0x5ac6 022178 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0x5ac7 022179 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ac8 022180 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x5ac9 022181 branch gpio_set_analog 
+:      022182 mouse_device_bt2_led_off:
+0x5aca 022183 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+0x5acb 022184 fetch mouse_flag_len ,mem_mouse_flag 
+0x5acc 022185 bbit0 mouse_enable_1io2led ,mouse_led_off 
+0x5acd 022186 branch gpio_set_analog 
+:      022188 mouse_device_multi_led_all_off:
+0x5ace 022189 call mouse_device_24g_led_off 
+0x5acf 022190 call mouse_device_bt1_led_off 
+0x5ad0 022191 call mouse_device_bt2_led_off 
+0x5ad1 022192 call mouse_low_voltage_led_off_judge 
+0x5ad2 022193 branch mouse_multi_dpi_led_off_judge 
+:      022195 mouse_multi_dpi_led_off_judge:
+0x5ad3 022196 jam off ,mem_mouse_multi_led_state 
+0x5ad4 022197 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ad5 022198 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_off 
+:      022199 mouse_multi_dpi_led_off:
+0x5ad6 022200 fetcht 1 ,mem_mouse_dpi_gpio 
+0x5ad7 022201 branch mouse_led_off 
+:      022203 mouse_multi_dpi_led_on_judge:
+0x5ad8 022204 jam on ,mem_mouse_multi_led_state 
+0x5ad9 022205 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ada 022206 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_on 
+:      022207 mouse_multi_dpi_led_on:
+0x5adb 022208 fetcht 1 ,mem_mouse_dpi_gpio 
+0x5adc 022209 branch mouse_led_on 
+:      022213 mouse_low_voltage_led_no_enter_lpm:
+0x5add 022214 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ade 022215 rtnbit0 mouse_low_voltage_flag 
+0x5adf 022216 fetch 1 ,mem_adc_low_volatage_led_timer_count 
+0x5ae0 022217 fetcht 1 ,mem_mouse_low_led_blink_half_timer 
+0x5ae1 022218 sub pdata ,temp ,null 
+0x5ae2 022219 branch mouse_lpm_mode_clear ,positive 
+:      022220 mouse_low_voltage_led_no_enter_lpm_next:
+0x5ae3 022221 fetch 1 ,mem_device_flag 
+0x5ae4 022222 beq mode_24g_device ,g24_transmit_by_interrupt_exit_check 
+0x5ae5 022223 branch hid_device_enable_lpm 
+:      022225 g24_transmit_by_interrupt_exit_check:
+0x5ae6 022226 fetch mouse_flag_len ,mem_mouse_flag 
+0x5ae7 022227 rtnbit1 mouse_enable_24g_250hz 
+0x5ae8 022228 branch g24_transmit_by_interrupt_exit 
+:      022230 mouse_lpm_mode_clear:
+0x5ae9 022231 fetch 1 ,mem_device_flag 
+0x5aea 022232 beq mode_24g_device ,g24_transmit_by_interrupt_enable 
+0x5aeb 022233 branch hid_device_disable_lpm 
+:      022236 mouse_store_signal_rssi:
+0x5aec 022238 fetch 1 ,mem_rssi 
+0x5aed 022239 branch rssi_signal 
+:      022241 mouse_le_transmit:
+0x5aee 022242 call mouse_store_signal_rssi 
+0x5aef 022243 branch power_ctrl_start 
+:      022245 mouse_set_lpm_mult:
+0x5af0 022246 fetch 2 ,mem_ui_state_map 
+0x5af1 022247 rtnbit0 ui_state_ble_connected 
+:      022248 mouse_le_set_lpm_mult:
+0x5af2 022249 fetch 1 ,mem_le_connect_status_flag 
+0x5af3 022250 compare 3 ,pdata ,3 
+0x5af4 022251 nbranch disable_blank ,true 
+0x5af5 022252 call app_lpm_mult_enable 
+0x5af6 022253 branch enable_blank 
+:      022255 mouse_24g_long_sleep:
+0x5af7 022256 bpatch patch15_4 ,mem_patch15 
+0x5af8 022257 call g24_lpm_wait 
+0x5af9 022258 nrtn user 
+0x5afa 022259 jam 1 ,mem_mouse_24g_long_sleep_flag 
+0x5afb 022260 call g24_setgpio_lpm_before 
+0x5afc 022261 jam 0 ,mem_mouse_24g_sleep_miss 
+0x5afd 022262 call mouse_24g_send_time_long_wake 
+0x5afe 022263 fetch 1 ,mem_24g_shutdown_flag 
+0x5aff 022264 ncall mouse_setgpio_hibernate ,blank 
+0x5b00 022265 fetch 8 ,mem_24g_enter_hibernate 
+0x5b01 022266 branch g24_long_seep2 
+:      022268 mouse_24g_short_sleep:
+0x5b02 022269 fetch 1 ,mem_mouse_sleep_deal_type 
+0x5b03 022270 branch g24_short_sleep ,blank 
+0x5b04 022271 call g24_lpm_wait 
+0x5b05 022272 nrtn user 
+0x5b06 022273 fetch 1 ,mem_mouse_24g_sleep_miss 
+0x5b07 022274 jam 0 ,mem_mouse_24g_sleep_miss 
+0x5b08 022275 sub pdata ,0 ,null 
+0x5b09 022276 nbranch mouse_24g_short_sleep_last_miss ,zero 
+0x5b0a 022277 fetcht 2 ,mem_24g_retransmit 
+0x5b0b 022278 sub temp ,0 ,null 
+0x5b0c 022279 branch mouse_24g_short_sleep_default ,zero 
+0x5b0d 022281 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x5b0e 022282 branch mouse_24g_short_sleep_default ,blank 
+:      022283 mouse_24g_short_sleep_last_miss:
+0x5b0f 022284 fetcht 4 ,mem_mouse_24g_sleep_miss_temp 
+0x5b10 022285 isolate1 31 ,temp 
+0x5b11 022286 branch mouse_24g_sub_miss_temp ,true 
+0x5b12 022287 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x5b13 022288 iadd temp ,pdata 
+:      022289 mouse_24g_short_sleep_notify:
+0x5b14 022290 fetcht 4 ,mem_mouse_24g_tsniff 
+0x5b15 022291 isub temp ,temp 
+0x5b16 022292 storet 4 ,mem_mouse_24g_sleep_miss_temp 
+0x5b17 022293 nbranch mouse_24g_short_sleep_long ,positive 
+0x5b18 022294 fetch 3 ,mem_24g_short_sleep_set 
+0x5b19 022295 isub temp ,pdata 
+0x5b1a 022296 nbranch mouse_24g_short_sleep_2 ,positive 
+0x5b1b 022297 arg 0x600 ,temp 
+0x5b1c 022298 isub temp ,null 
+0x5b1d 022299 nbranch mouse_24g_short_sleep_2 ,positive 
+:      022300 mouse_24g_short_sleep2:
+0x5b1e 022301 jam 250 ,mem_mouse_24g_tx_time_offset 
+:      022302 mouse_24g_short_sleep3:
+0x5b1f 022303 call clk2lpo 
+0x5b20 022304 storet 4 ,mem_sleep_counter 
+0x5b21 022305 branch lpm_sleep 
+:      022307 mouse_24g_short_sleep_default:
+0x5b22 022308 call mouse_24g_miss_temp_clear 
+0x5b23 022309 fetch 3 ,mem_24g_short_sleep_set 
+0x5b24 022310 branch mouse_24g_short_sleep2 
+:      022312 mouse_24g_short_sleep_long:
+0x5b25 022313 sub temp ,0 ,temp 
+0x5b26 022314 fetch 3 ,mem_24g_short_sleep_set 
+0x5b27 022315 iadd temp ,pdata 
+0x5b28 022316 branch mouse_24g_short_sleep2 
+:      022318 mouse_24g_miss_temp_clear:
+0x5b29 022319 setarg 0 
+0x5b2a 022320 store 4 ,mem_mouse_24g_sleep_miss_temp 
+0x5b2b 022321 rtn 
+:      022323 mouse_24g_short_sleep_2:
+0x5b2c 022324 jam 1 ,mem_mouse_24g_sleep_miss 
+0x5b2d 022325 rtn 
+:      022327 mouse_24g_sub_miss_temp:
+0x5b2e 022328 arg -1 ,pdata 
+0x5b2f 022329 isub temp ,regext 
+0x5b30 022330 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x5b31 022331 isub regext ,pdata 
+0x5b32 022332 branch mouse_24g_short_sleep_notify 
+:      022334 mouse_24g_transmit_callback:
+0x5b33 022335 call mouse_24g_send_time_check 
+0x5b34 022336 branch mouse_wakeup_24g 
+:      022338 mouse_24g_send_time_check:
+0x5b35 022339 fetch 1 ,mem_mouse_sleep_deal_type 
+0x5b36 022340 rtn blank 
+0x5b37 022341 fetch 1 ,mem_24g_transmit_by_interrupt 
+0x5b38 022342 beq g24_tx_timer_int_enable ,mouse_24g_send_timer_first 
+0x5b39 022343 fetch 1 ,mem_mouse_24g_tx_count 
+0x5b3a 022344 branch mouse_24g_send_timer_first ,blank 
+0x5b3b 022345 copy clkn ,pdata 
+0x5b3c 022346 fetcht 6 ,mem_mouse_24g_tx_time_last 
+0x5b3d 022347 store 6 ,mem_mouse_24g_tx_time_last 
+0x5b3e 022348 call clk_diff_rt 
+0x5b3f 022349 store 4 ,mem_mouse_24g_tx_time_last_delt 
+0x5b40 022351 fetch 1 ,mem_mouse_24g_sleep_miss 
+0x5b41 022352 nrtn blank 
+0x5b42 022353 fetch 2 ,mem_24g_retransmit 
+0x5b43 022354 nrtn blank 
+0x5b44 022355 fetch 4 ,mem_mouse_24g_sleep_miss_temp 
+0x5b45 022356 nrtn blank 
+0x5b46 022358 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+0x5b47 022359 fetcht 4 ,mem_mouse_24g_tsniff 
+0x5b48 022360 lshift temp ,temp 
+0x5b49 022361 isub temp ,null 
+0x5b4a 022362 branch mouse_24g_send_time_long_wake ,positive 
+0x5b4b 022364 fetcht 5 ,mem_mouse_24g_tx_time_sum 
+0x5b4c 022365 iadd temp ,pdata 
+0x5b4d 022366 store 5 ,mem_mouse_24g_tx_time_sum 
+0x5b4e 022367 fetcht 1 ,mem_mouse_24g_tx_count 
+0x5b4f 022368 fetch 1 ,mem_mouse_24g_tx_time_sum_count 
+0x5b50 022369 isub temp ,null 
+0x5b51 022370 branch mouse_24g_send_time_check_average ,zero 
+0x5b52 022371 increase 1 ,temp 
+0x5b53 022372 storet 1 ,mem_mouse_24g_tx_count 
+0x5b54 022373 rtn 
+:      022375 mouse_24g_send_time_check_average:
+0x5b55 022376 jam 1 ,mem_mouse_24g_tx_count 
+0x5b56 022377 arg 0 ,temp 
+0x5b57 022378 fetch 5 ,mem_mouse_24g_tx_time_sum 
+0x5b58 022379 storet 5 ,mem_mouse_24g_tx_time_sum 
+0x5b59 022380 fetcht 1 ,mem_mouse_24g_tx_time_sum_count 
+0x5b5a 022381 idiv temp 
+0x5b5b 022382 call wait_div_end 
+0x5b5c 022383 quotient rega 
+0x5b5d 022385 fetch 4 ,mem_mouse_24g_tsniff 
+0x5b5e 022386 fetcht 1 ,mem_mouse_24g_tx_time_offset 
+0x5b5f 022387 isub temp ,temp 
+0x5b60 022389 copy rega ,pdata 
+0x5b61 022390 isub temp ,pdata 
+0x5b62 022391 branch mouse_24g_send_time_check_average_late ,positive 
+0x5b63 022392 sub pdata ,0 ,pdata 
+0x5b64 022394 rshift2 pdata ,pdata 
+0x5b65 022395 fetcht 3 ,mem_24g_short_sleep_set 
+0x5b66 022396 iadd temp ,temp 
+0x5b67 022397 bpatch patch15_5 ,mem_patch15 
+0x5b68 022398 fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+0x5b69 022399 arg 0x1800 ,rega 
+0x5b6a 022400 iadd rega ,pdata 
+0x5b6b 022401 isub temp ,null 
+0x5b6c 022402 nbranch mouse_24g_send_time_check_average_min ,positive 
+:      022403 mouse_24g_short_sleep_storet:
+0x5b6d 022404 storet 3 ,mem_24g_short_sleep_set 
+0x5b6e 022405 rtn 
+:      022407 mouse_24g_send_time_check_average_late:
+0x5b6f 022408 rshift2 pdata ,temp 
+0x5b70 022409 fetch 3 ,mem_24g_short_sleep_set 
+0x5b71 022410 isub temp ,temp 
+0x5b72 022411 bpatch patch15_6 ,mem_patch15 
+0x5b73 022412 fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+0x5b74 022413 arg 0x1800 ,rega 
+0x5b75 022414 isub rega ,pdata 
+0x5b76 022415 isub temp ,null 
+0x5b77 022416 branch mouse_24g_send_time_check_average_min ,positive 
+0x5b78 022417 branch mouse_24g_short_sleep_storet 
+:      022419 mouse_24g_send_time_check_average_min:
+0x5b79 022420 store 3 ,mem_24g_short_sleep_set 
+0x5b7a 022421 rtn 
+:      022423 mouse_24g_send_timer_first:
+0x5b7b 022424 jam 1 ,mem_mouse_24g_tx_count 
+0x5b7c 022425 copy clkn ,pdata 
+0x5b7d 022426 store 6 ,mem_mouse_24g_tx_time_last 
+0x5b7e 022427 rtn 
+:      022429 mouse_24g_send_time_long_wake:
+0x5b7f 022430 setarg 0 
+0x5b80 022431 store 1 ,mem_mouse_24g_tx_count 
+0x5b81 022432 store 5 ,mem_mouse_24g_tx_time_sum 
+0x5b82 022433 rtn 
+:      022436 mouse_usb_check_enable:
+0x5b83 022437 fetch mouse_flag_len ,mem_mouse_flag 
+0x5b84 022438 rtnbit0 mouse_enable_usb 
+0x5b85 022439 jam usb_interface_remove ,mem_usb_vdd_status 
+0x5b86 022440 rtn 
+:      022442 mouse_usb_isr:
+0x5b87 022443 call mouse_usb_interface_check 
+0x5b88 022444 fetch 1 ,mem_usb_vdd_status 
+0x5b89 022445 rtnne usb_interface_insert 
+0x5b8a 022446 branch usb_isr 
+:      022448 mouse_usb_interface_check:
+0x5b8b 022449 bpatch patch15_7 ,mem_patch15 
+0x5b8c 022450 fetcht 1 ,mem_usb_offline_check_gpio 
+0x5b8d 022451 call gpio_get_bit 
+0x5b8e 022452 nbranch mouse_usb_mode_disable ,true 
+:      022453 mouse_usb_mode_enable:
+0x5b8f 022454 fetch 1 ,mem_usb_vdd_status 
+0x5b90 022455 rtneq usb_interface_insert 
+0x5b91 022456 jam usb_interface_insert ,mem_usb_vdd_status 
+0x5b92 022457 setarg 0 
+0x5b93 022458 store 2 ,mem_24g_pair_timeout 
+0x5b94 022459 store 2 ,mem_24g_reconn_timeout 
+0x5b95 022460 jam 0 ,mem_lpm_mode 
+0x5b96 022461 call select_system_clk_12m_dpll 
+0x5b97 022462 call mouse_24g_stop 
+0x5b98 022463 call mouse_stop_bluetooth_mode 
+0x5b99 022464 disable wake 
+0x5b9a 022465 call mouse_init_sensor_reset 
+0x5b9b 022467 setarg mouse_usb_config_param 
+0x5b9c 022468 store 2 ,mem_cb_usb_config 
+0x5b9d 022469 fetch 1 ,mem_usb_tx_interval_retention 
+0x5b9e 022470 store 1 ,mem_usb_tx_interval 
+0x5b9f 022471 arg mem_usb_vid_pid_retention ,contr 
+0x5ba0 022472 arg mem_usb_vid_pid ,contw 
+0x5ba1 022473 arg 9 ,loopcnt 
+0x5ba2 022474 call memcpy 
+0x5ba3 022475 branch usb_init 
+:      022477 mouse_usb_mode_disable:
+0x5ba4 022478 fetch 1 ,mem_usb_keyboard_flag 
+0x5ba5 022479 rtneq usb_interface_remove 
+0x5ba6 022480 jam usb_interface_remove ,mem_usb_vdd_status 
+0x5ba7 022481 jam 0 ,mem_usb_device_enumeration_endflag 
+0x5ba8 022482 jam 0 ,mem_usb_status 
+0x5ba9 022483 jam 0 ,mem_usb_state 
+0x5baa 022484 fetch 2 ,core_clkoff 
+0x5bab 022485 set1 clock_off_usb ,pdata 
+0x5bac 022486 store 2 ,core_clkoff 
+0x5bad 022487 jam 1 ,mem_lpm_mode 
+0x5bae 022488 call select_system_clk_12m_dpll 
+0x5baf 022489 branch mouse_soft_reset 
+:      022491 mouse_usb_mode:
+0x5bb0 022492 fetch 1 ,core_usb_addr 
+0x5bb1 022493 store 1 ,mem_usb_addr 
+0x5bb2 022494 rtnbit0 7 
+0x5bb3 022495 call mouse_usb_timer_check 
+0x5bb4 022496 nrtn user 
+0x5bb5 022497 call mouse_motion 
+0x5bb6 022498 nrtn user 
+0x5bb7 022499 fetch 1 ,core_usb_txbusy 
+0x5bb8 022500 rtnbit1 2 
+0x5bb9 022501 branch mouse_push_data_to_usb 
+:      022503 mouse_push_data_to_usb:
+0x5bba 022504 fetch 1 ,core_usb_addr 
+0x5bbb 022505 rtnbit0 7 
+0x5bbc 022506 bpatch patch16_0 ,mem_patch16 
+0x5bbd 022507 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bbe 022508 bbit0 mouse_enable_keyboard ,hid_device_push_mouse_data_to_usb 
+0x5bbf 022509 fetch 1 ,mem_customer_key 
+0x5bc0 022510 beq 1 ,hid_device_push_keyboard_data_to_usb 
+0x5bc1 022511 branch hid_device_push_mouse_data_to_usb 
+:      022513 mouse_usb_timer_check:
+0x5bc2 022514 call disable_user 
+0x5bc3 022515 fetcht 4 ,mem_btclk_sensor 
+0x5bc4 022516 copy clkn_bt ,pdata 
+0x5bc5 022517 isub temp ,null 
+0x5bc6 022518 ncall mouse_usb_timer_timeout ,positive 
+0x5bc7 022519 copy pdata ,regb 
+0x5bc8 022520 fetch 4 ,mem_btclk_sensor 
+0x5bc9 022521 fetcht 1 ,mem_wire_usb_interval 
+0x5bca 022522 iadd temp ,temp 
+0x5bcb 022523 copy regb ,pdata 
+0x5bcc 022524 isub temp ,null 
+0x5bcd 022525 nrtn positive 
+0x5bce 022526 set0 28 ,pdata 
+0x5bcf 022527 store 4 ,mem_btclk_sensor 
+0x5bd0 022528 branch enable_user 
+:      022530 mouse_usb_timer_timeout:
+0x5bd1 022531 rtn zero 
+0x5bd2 022532 set1 28 ,pdata 
+0x5bd3 022533 rtn 
+:      022535 mouse_usb_timer_init:
+0x5bd4 022536 setarg 0 
+0x5bd5 022537 store 4 ,mem_btclk_sensor 
+0x5bd6 022538 rtn 
+:      022540 mouse_usb_config_param:
+0x5bd7 022541 bpatch patch16_1 ,mem_patch16 
+0x5bd8 022542 call mouse_usb_config_kb_check 
+0x5bd9 022543 call mouse_usb_report_rate_set 
+0x5bda 022544 call mouse_usb_config_param_setup 
+:      022545 mouse_usb_device_name_config:
+0x5bdb 022546 fetch 1 ,mem_usb_device_name_retention 
+0x5bdc 022547 rtn blank 
+0x5bdd 022548 arg mem_usb_device_name_retention ,contr 
+0x5bde 022549 arg mem_string2 ,contw 
+0x5bdf 022550 arg 30 ,loopcnt 
+0x5be0 022551 branch memcpy 
+:      022553 mouse_usb_config_kb_check:
+0x5be1 022554 jam dongle_kb_bind_otp_offect ,mem_usb_keyboard_flag 
+0x5be2 022555 fetch mouse_flag_len ,mem_mouse_flag 
+0x5be3 022556 rtnbit0 mouse_enable_keyboard 
+0x5be4 022557 jam dongle_kb_bind_success ,mem_usb_keyboard_flag 
+0x5be5 022558 rtn 
+:      022560 mouse_usb_config_param_setup:
+0x5be6 022561 call usb_tx_interval_config 
+0x5be7 022562 call dongle_usb_vid_pid_config 
+:      022563 mouse_usb_hid_icon_config:
+0x5be8 022564 fetch 1 ,mem_usb_keyboard_flag 
+0x5be9 022565 branch dongle_usb_hid_icon_config + 1 
+:      022567 mouse_usb_report_rate_set:
+0x5bea 022568 call mouse_usb_timer_init 
+0x5beb 022569 fetch mouse_flag_len ,mem_mouse_flag 
+0x5bec 022570 bbit1 mouse_enable_usb_250 ,mouse_usb_report_rate_set_250hz 
+0x5bed 022571 bbit1 mouse_enable_usb_500 ,mouse_usb_report_rate_set_500hz 
+0x5bee 022572 bbit1 mouse_enable_usb_1000 ,mouse_usb_report_rate_set_1000hz 
+:      022573 mouse_usb_report_rate_set_125hz:
+0x5bef 022574 jam 32 ,mem_wire_usb_interval 
+0x5bf0 022575 rtn 
+:      022576 mouse_usb_report_rate_set_250hz:
+0x5bf1 022577 jam 16 ,mem_wire_usb_interval 
+0x5bf2 022578 rtn 
+:      022579 mouse_usb_report_rate_set_500hz:
+0x5bf3 022580 jam 8 ,mem_wire_usb_interval 
+0x5bf4 022581 rtn 
+:      022582 mouse_usb_report_rate_set_1000hz:
+0x5bf5 022583 jam 4 ,mem_wire_usb_interval 
+0x5bf6 022584 rtn 
+:      022593 rec_cb_function:
+0x5bf7 022594 setarg rec_process_idle 
+0x5bf8 022595 store 2 ,mem_cb_idle_process 
+0x5bf9 022599 rtn 
+:      022602 rec_process_idle:
+0x5bfa 022603 call rec_ui_timer_check 
+0x5bfb 022604 rtn 
+:      022606 rec_ui_timer_check:
+0x5bfc 022607 bpatch patch16_2 ,mem_patch16 
+0x5bfd 022608 arg 0 ,rega 
+0x5bfe 022609 fetcht 4 ,mem_rec_ui_timer_btclk 
+0x5bff 022610 copy clkn_bt ,regb 
+0x5c00 022611 copy regb ,pdata 
+0x5c01 022612 isub temp ,null 
+0x5c02 022613 ncall ui_timer_timeout ,positive 
+:      022614 rec_ui_timer_check_loop:
+0x5c03 022615 copy regb ,pdata 
+0x5c04 022616 increase 8 ,temp 
+0x5c05 022617 isub temp ,null 
+0x5c06 022618 nbranch rec_ui_timer_check_end ,positive 
+0x5c07 022619 increase 1 ,rega 
+0x5c08 022620 and rega ,0x0f ,pdata 
+0x5c09 022621 nbranch rec_ui_timer_check_loop ,blank 
+0x5c0a 022622 arg 0 ,rega 
+0x5c0b 022623 call rec_ui_timer_check_send_evt 
+:      022624 rec_ui_timer_init:
+0x5c0c 022625 storer clkn_bt ,4 ,mem_rec_ui_timer_btclk 
+0x5c0d 022626 rtn 
+:      022627 rec_ui_timer_check_end:
+0x5c0e 022628 copy rega ,pdata 
+0x5c0f 022629 rtn blank 
+0x5c10 022630 increase -8 ,temp 
+0x5c11 022631 set0 28 ,temp 
+0x5c12 022632 storet 4 ,mem_rec_ui_timer_btclk 
+:      022633 rec_ui_timer_check_send_evt:
+0x5c13 022634 store 1 ,mem_rec_ui_timer_count 
+:      022635 rec_evt_timer_loop:
+0x5c14 022636 fetch 1 ,mem_rec_ui_timer_count 
+0x5c15 022637 rtn blank 
+0x5c16 022638 increase -1 ,pdata 
+0x5c17 022639 store 1 ,mem_rec_ui_timer_count 
+0x5c18 022640 fetch 2 ,mem_rec_cb_timer 
+0x5c19 022641 call callback_func 
+0x5c1a 022642 branch rec_evt_timer_loop 
+:      022648 rec_tscan:
+0x5c1b 022649 bpatch patch16_3 ,mem_patch16 
+0x5c1c 022650 fetch 1 ,mem_rec_tscan_row_nums 
+0x5c1d 022651 rtn blank 
+0x5c1e 022652 jam 0 ,mem_rec_tscan_col_scanned 
+0x5c1f 022653 jam 0 ,mem_rec_tscan_sequence 
+0x5c20 022654 call rec_gpio_wakeup_disable 
+:      022655 rec_tscan_gnd_process:
+0x5c21 022656 call rec_tscan_get_gndkey_state 
+0x5c22 022657 fetch 1 ,mem_rec_tscan_gndkey_need_send_flag 
+0x5c23 022658 nrtn blank 
+0x5c24 022659 call rec_tscan_gpio_set_before_lpm 
+0x5c25 022660 call lpm_write_gpio_wakeup 
+:      022661 rec_tscan_process:
+0x5c26 022662 bpatch patch16_4 ,mem_patch16 
+0x5c27 022663 call rec_tscan_col_state_init 
+0x5c28 022664 call rec_tscan_row_state_init 
+0x5c29 022665 call rec_tscan_get_row_state 
+0x5c2a 022666 call rec_tscan_pull_up_current_col_gpio 
+0x5c2b 022667 branch rec_tscan_col_state_next_gpio_check 
+:      022669 rec_tscan_col_state_init:
+0x5c2c 022670 arg mem_rec_tscan_col_gpio ,rega 
+0x5c2d 022671 fetch 1 ,mem_rec_tscan_col_scanned 
+0x5c2e 022672 iadd rega ,rega 
+0x5c2f 022673 storer rega ,2 ,mem_rec_tscan_col_gpio_ptr 
+0x5c30 022674 ifetcht 1 ,rega 
+0x5c31 022675 branch gpio_config_output 
+:      022677 rec_tscan_row_state_init:
+0x5c32 022678 fetch 1 ,mem_rec_tscan_row_nums 
+0x5c33 022679 rtn blank 
+0x5c34 022680 fetcht 1 ,mem_rec_tscan_col_scanned 
+0x5c35 022681 isub temp ,pdata 
+0x5c36 022682 iforce loopcnt 
+0x5c37 022683 arg mem_rec_tscan_row_gpio ,rega 
+0x5c38 022684 fetch 1 ,mem_rec_tscan_col_scanned 
+0x5c39 022685 iadd rega ,rega 
+:      022686 rec_tscan_row_gpio_config_input_pull_up:
+0x5c3a 022687 ifetch 1 ,rega 
+0x5c3b 022688 call rec_gpio_weak_pullup 
+0x5c3c 022689 increase 1 ,rega 
+0x5c3d 022690 loop rec_tscan_row_gpio_config_input_pull_up 
+0x5c3e 022691 rtn 
+:      022694 rec_tscan_get_row_state:
+0x5c3f 022695 jam 0 ,mem_rec_tscan_row_scanned 
+0x5c40 022696 fetch 1 ,mem_rec_tscan_row_nums 
+0x5c41 022697 fetcht 1 ,mem_rec_tscan_col_scanned 
+0x5c42 022698 isub temp ,pdata 
+0x5c43 022699 store 1 ,mem_rec_tscan_row_scan_loop_count 
+0x5c44 022701 arg mem_rec_tscan_row_gpio ,rega 
+0x5c45 022702 fetch 1 ,mem_rec_tscan_col_scanned 
+0x5c46 022703 iadd rega ,rega 
+:      022704 rec_tscan_get_row_state_loop:
+0x5c47 022705 ifetcht 1 ,rega 
+0x5c48 022706 storet 1 ,mem_rec_gpio_bit_check 
+0x5c49 022707 call rec_tscan_debounce 
+0x5c4a 022708 nrtn user 
+0x5c4b 022710 call rec_tscan_record_key_coord ,true 
+0x5c4c 022711 increase 1 ,rega 
+0x5c4d 022712 fetch 1 ,mem_rec_tscan_row_scanned 
+0x5c4e 022713 increase 1 ,pdata 
+0x5c4f 022714 store 1 ,mem_rec_tscan_row_scanned 
+0x5c50 022716 fetcht 1 ,mem_rec_tscan_sequence 
+0x5c51 022717 increase 1 ,temp 
+0x5c52 022718 storet 1 ,mem_rec_tscan_sequence 
+0x5c53 022720 fetcht 1 ,mem_rec_tscan_row_scan_loop_count 
+0x5c54 022721 isub temp ,null 
+0x5c55 022722 nbranch rec_tscan_get_row_state_loop ,positive 
+0x5c56 022724 fetch 2 ,mem_rec_tscan_record_row 
+0x5c57 022725 rtn blank 
+0x5c58 022726 store 2 ,mem_rec_tscan_record_now 
+0x5c59 022728 setarg 0 
+0x5c5a 022729 store 2 ,mem_rec_tscan_record_row 
+0x5c5b 022730 rtn 
+:      022732 rec_tscan_record_key_coord:
+0x5c5c 022733 storer rega ,2 ,mem_rec_tscan_current_gpio_ptr 
+0x5c5d 022739 fetch 1 ,mem_rec_tscan_row_scanned 
+0x5c5e 022740 copy pdata ,queue 
+0x5c5f 022741 fetcht 1 ,mem_rec_tscan_record_row 
+0x5c60 022742 qset1 temp 
+0x5c61 022743 storet 1 ,mem_rec_tscan_record_row 
+0x5c62 022745 fetch 1 ,mem_rec_tscan_col_scanned 
+0x5c63 022746 copy pdata ,queue 
+0x5c64 022747 fetcht 1 ,mem_rec_tscan_record_col 
+0x5c65 022748 qset1 temp 
+0x5c66 022749 storet 1 ,mem_rec_tscan_record_col 
+0x5c67 022751 call rec_tscan_combin_key_num_output 
+0x5c68 022753 fetchr rega ,2 ,mem_rec_tscan_current_gpio_ptr 
+0x5c69 022754 rtn 
+:      022756 rec_tscan_combin_key_num_output:
+0x5c6a 022757 fetcht 2 ,mem_rec_tscan_record_row 
+0x5c6b 022758 arg mem_rec_tscan_key_nums_list ,rega 
+:      022759 rec_tscan_combin_key_num_loop:
+0x5c6c 022760 ifetch 2 ,rega 
+0x5c6d 022761 rtn blank 
+0x5c6e 022762 isub temp ,null 
+0x5c6f 022763 call rec_tscan_output_combin_key_num ,zero 
+0x5c70 022764 increase 2 ,rega 
+0x5c71 022765 branch rec_tscan_combin_key_num_loop 
+:      022767 rec_tscan_output_combin_key_num:
+0x5c72 022768 fetchr queue ,1 ,mem_rec_tscan_sequence 
+0x5c73 022769 fetch 8 ,mem_rec_tscan_key_num_bit 
+0x5c74 022770 qset1 pdata 
+0x5c75 022771 store 8 ,mem_rec_tscan_key_num_bit 
+0x5c76 022772 rtn 
+:      022774 rec_tscan_pull_up_current_col_gpio:
+0x5c77 022775 fetch 2 ,mem_rec_tscan_col_gpio_ptr 
+0x5c78 022776 ifetch 1 ,pdata 
+0x5c79 022777 branch rec_gpio_weak_pullup 
+:      022779 rec_tscan_col_state_next_gpio_check:
+0x5c7a 022780 fetch 1 ,mem_rec_tscan_col_scanned 
+0x5c7b 022781 increase 1 ,pdata 
+0x5c7c 022782 store 1 ,mem_rec_tscan_col_scanned 
+0x5c7d 022783 fetcht 1 ,mem_rec_tscan_col_nums 
+0x5c7e 022784 isub temp ,null 
+0x5c7f 022785 nbranch rec_tscan_process ,positive 
+0x5c80 022786 fetch 2 ,mem_rec_tscan_record_now 
+0x5c81 022787 branch rec_tscan_key_up ,blank 
+:      022788 rec_tscan_key_down:
+0x5c82 022789 store 2 ,mem_rec_tscan_record_temp 
+0x5c83 022790 fetch 1 ,mem_rec_tscan_key_need_send_flag 
+0x5c84 022791 nbranch rec_tscan_key_value_clear ,blank 
+0x5c85 022792 fetch 1 ,mem_rec_tscan_key_state 
+0x5c86 022793 rtneq key_down 
+0x5c87 022794 jam key_down ,mem_rec_tscan_key_state 
+0x5c88 022795 jam 1 ,mem_rec_tscan_key_need_send_flag 
+0x5c89 022796 bpatch patch16_5 ,mem_patch16 
+0x5c8a 022797 call rec_tscan_key_num_output 
+0x5c8b 022798 fetch 2 ,mem_ui_state_map 
+0x5c8c 022799 rtnbit1 ui_state_ble_adv 
+0x5c8d 022800 branch rec_led_start_on 
+:      022802 rec_tscan_key_up:
+0x5c8e 022803 fetch 1 ,mem_rec_tscan_key_state 
+0x5c8f 022804 rtneq key_up 
+0x5c90 022805 jam key_up ,mem_rec_tscan_key_state 
+0x5c91 022806 fetch 2 ,mem_ui_state_map 
+0x5c92 022807 bbit1 ui_state_ble_adv ,rec_tscan_key_up_send 
+0x5c93 022808 fetch 1 ,mem_rec_nec_learn_state 
+0x5c94 022809 nbranch rec_tscan_key_up_send ,blank 
+0x5c95 022810 call rec_led_start_off 
+:      022811 rec_tscan_key_up_send:
+0x5c96 022812 setarg 0 
+0x5c97 022813 store 8 ,mem_rec_tscan_key_num_bit 
+0x5c98 022814 store 1 ,mem_rec_tscan_key_need_send_flag 
+:      022815 rec_tscan_key_up_config:
+0x5c99 022816 jam 0 ,mem_rec_tscan_current_key_num 
+0x5c9a 022817 arg mem_rec_key_release_le ,regc 
+0x5c9b 022818 branch push_buffer_in_queue 
+:      022820 rec_tscan_key_num_output:
+0x5c9c 022821 call rec_tscan_key_num_check 
+:      022822 rec_tscan_record_init:
+0x5c9d 022823 setarg 0 
+0x5c9e 022824 store 2 ,mem_rec_tscan_record_temp 
+0x5c9f 022825 rtn 
+:      022827 rec_tscan_key_value_clear:
+0x5ca0 022828 setarg 0 
+0x5ca1 022829 store 2 ,mem_rec_tscan_record_now 
+0x5ca2 022830 rtn 
+:      022832 rec_tscan_get_gndkey_state:
+0x5ca3 022833 arg 0 ,rega 
+0x5ca4 022834 arg 0 ,regb 
+0x5ca5 022835 force 0 ,regext_index 
+0x5ca6 022836 fetch 1 ,mem_rec_tscan_gpio_nums 
+0x5ca7 022837 iforce loopcnt 
+0x5ca8 022838 arg mem_rec_tscan_col_gpio ,regc 
+:      022839 rec_tscan_get_gndkey_loop:
+0x5ca9 022840 call rec_save_regc 
+0x5caa 022841 call rec_save_rega 
+0x5cab 022842 ifetch 1 ,regc 
+0x5cac 022843 call rec_gpio_weak_pullup 
+0x5cad 022844 call rec_rescue_rega 
+0x5cae 022845 call rec_rescue_regc 
+0x5caf 022846 ifetcht 1 ,regc 
+0x5cb0 022847 storet 1 ,mem_rec_gpio_bit_check 
+0x5cb1 022848 call rec_tscan_debounce 
+0x5cb2 022849 nrtn user 
+0x5cb3 022851 copy regb ,queue 
+0x5cb4 022852 call rec_tscan_store_gndkey_press_state ,true 
+0x5cb5 022853 ncall rec_tscan_store_gndkey_release_state ,true 
+0x5cb6 022854 increase 1 ,regc 
+0x5cb7 022855 increase 1 ,regb 
+0x5cb8 022856 loop rec_tscan_get_gndkey_loop 
+0x5cb9 022857 copy rega ,pdata 
+0x5cba 022858 branch rec_tscan_gndkey_up ,blank 
+:      022859 rec_tscan_gndkey_down:
+0x5cbb 022860 store 1 ,mem_rec_tscan_gndkey_record_temp 
+0x5cbc 022861 fetch 1 ,mem_rec_tscan_gndkey_state 
+0x5cbd 022862 rtneq key_down 
+0x5cbe 022863 jam key_down ,mem_rec_tscan_gndkey_state 
+0x5cbf 022864 jam 1 ,mem_rec_tscan_gndkey_need_send_flag 
+0x5cc0 022865 bpatch patch16_6 ,mem_patch16 
+0x5cc1 022866 call rec_tscan_gndkey_num_output 
+0x5cc2 022867 fetch 2 ,mem_ui_state_map 
+0x5cc3 022868 rtnbit1 ui_state_ble_adv 
+0x5cc4 022869 branch rec_led_start_on 
+:      022871 rec_tscan_gndkey_up:
+0x5cc5 022872 fetch 1 ,mem_rec_tscan_gndkey_state 
+0x5cc6 022873 rtneq key_up 
+0x5cc7 022874 jam key_up ,mem_rec_tscan_gndkey_state 
+0x5cc8 022875 fetch 2 ,mem_ui_state_map 
+0x5cc9 022876 bbit1 ui_state_ble_adv ,rec_tscan_gndkey_up_send 
+0x5cca 022877 fetch 1 ,mem_rec_nec_learn_state 
+0x5ccb 022878 nbranch rec_tscan_gndkey_up_send ,blank 
+0x5ccc 022879 call rec_led_start_off 
+:      022880 rec_tscan_gndkey_up_send:
+0x5ccd 022881 jam 0 ,mem_rec_tscan_gndkey_need_send_flag 
+0x5cce 022882 branch rec_tscan_key_up_config 
+:      022884 rec_tscan_gndkey_num_output:
+0x5ccf 022885 call rec_tscan_gndkey_num_check 
+:      022886 rec_tscan_gndkey_record_param_init:
+0x5cd0 022887 jam 0 ,mem_rec_tscan_gndkey_record_temp 
+0x5cd1 022888 rtn 
+:      022890 rec_tscan_gndkey_num_check:
+0x5cd2 022891 fetcht 1 ,mem_rec_tscan_gndkey_record_temp 
+0x5cd3 022892 arg mem_rec_tscan_gndkey_nums_list ,rega 
+0x5cd4 022893 arg 0 ,regb 
+:      022894 rec_tscan_gndkey_num_loop:
+0x5cd5 022895 ifetch 1 ,rega 
+0x5cd6 022896 rtn blank 
+0x5cd7 022897 isub temp ,null 
+0x5cd8 022898 branch rec_tscan_output_gndkey_num ,zero 
+0x5cd9 022899 increase 1 ,rega 
+0x5cda 022900 increase 1 ,regb 
+0x5cdb 022901 branch rec_tscan_gndkey_num_loop 
+:      022903 rec_tscan_store_gndkey_press_state:
+0x5cdc 022904 qset1 rega 
+0x5cdd 022905 rtn 
+:      022907 rec_tscan_store_gndkey_release_state:
+0x5cde 022908 qset0 rega 
+0x5cdf 022909 rtn 
+:      022912 rec_gpio_bit_first_set:
+0x5ce0 022913 jam 1 ,mem_rec_gpio_bit_first 
+0x5ce1 022914 rtn 
+:      022915 rec_gpio_bit_second_set:
+0x5ce2 022916 jam 1 ,mem_rec_gpio_bit_second 
+0x5ce3 022917 rtn 
+:      022918 rec_tscan_debounce:
+0x5ce4 022919 call disable_user 
+0x5ce5 022920 jam 0 ,mem_rec_gpio_bit_first 
+0x5ce6 022921 jam 0 ,mem_rec_gpio_bit_second 
+0x5ce7 022922 fetcht 1 ,mem_rec_gpio_bit_check 
+0x5ce8 022923 call gpio_get_bit 
+0x5ce9 022924 call rec_gpio_bit_first_set ,true 
+0x5cea 022925 nop 1200 
+0x5ceb 022926 fetcht 1 ,mem_rec_gpio_bit_check 
+0x5cec 022927 call gpio_get_bit 
+0x5ced 022928 call rec_gpio_bit_second_set ,true 
+0x5cee 022929 fetch 1 ,mem_rec_gpio_bit_first 
+0x5cef 022930 fetcht 1 ,mem_rec_gpio_bit_second 
+0x5cf0 022931 isub temp ,null 
+0x5cf1 022932 nrtn zero 
+0x5cf2 022933 branch enable_user 
+:      022937 rec_gpio_weak_pullup:
+0x5cf3 022938 store 1 ,mem_rec_gpio_for_wake_pullup 
+0x5cf4 022939 call rec_gpio_set_input 
+0x5cf5 022940 fetch 1 ,mem_rec_gpio_for_wake_pullup 
+:      022941 rec_gpio_set_lpm_weak_pullup:
+0x5cf6 022942 arg 0x01 ,regc 
+0x5cf7 022943 div pdata ,2 
+0x5cf8 022944 call wait_div_end 
+0x5cf9 022945 quotient temp 
+0x5cfa 022946 remainder pdata 
+0x5cfb 022947 ncall rec_gpio_set_0x10_regc ,blank 
+0x5cfc 022948 copy temp ,pdata 
+0x5cfd 022949 arg core_gpio_wakeup_cfg ,contw 
+0x5cfe 022950 until null ,lpo_edge 
+0x5cff 022951 until null ,lpo_edge 
+0x5d00 022952 iadd contw ,contw 
+0x5d01 022953 ifetch 1 ,contw 
+0x5d02 022954 ior regc ,pdata 
+0x5d03 022955 istore 1 ,contw 
+0x5d04 022956 branch lpm_write_wait 
+:      022958 rec_gpio_set_0x10_regc:
+0x5d05 022959 arg 0x10 ,regc 
+0x5d06 022960 rtn 
+:      022963 rec_gpio_set_input:
+0x5d07 022964 or pdata ,0x80 ,pdata 
+0x5d08 022965 arg gpcfg_input ,temp 
+0x5d09 022966 branch gpio_config_function 
+:      022968 rec_gpio_wakeup_disable:
+0x5d0a 022969 branch lpm_config_puchk_disable 
+:      022971 rec_save_regc:
+0x5d0b 022972 copy regc ,pdata 
+0x5d0c 022973 branch rec_save_reg 
+:      022975 rec_rescue_regc:
+0x5d0d 022976 call rec_rescue_reg 
+0x5d0e 022977 copy pdata ,regc 
+0x5d0f 022978 rtn 
+:      022980 rec_save_rega:
+0x5d10 022981 copy rega ,pdata 
+0x5d11 022982 branch rec_save_reg 
+:      022984 rec_rescue_rega:
+0x5d12 022985 call rec_rescue_reg 
+0x5d13 022986 copy pdata ,rega 
+0x5d14 022987 rtn 
+:      022989 rec_save_reg:
+0x5d15 022990 increase 1 ,regext_index 
+0x5d16 022991 copy pdata ,regext 
+0x5d17 022992 rtn 
+:      022994 rec_rescue_reg:
+0x5d18 022995 copy regext ,pdata 
+0x5d19 022996 increase -1 ,regext_index 
+0x5d1a 022997 rtn 
+:      022999 rec_tscan_gpio_set_before_lpm:
+0x5d1b 023000 call rec_tscan_gpio_config_high_impedance 
+0x5d1c 023001 call rec_tscan_gpio_config_tri_angle_wakeup 
+0x5d1d 023002 call rec_gpio_wakeup_disable 
+:      023003 rec_gpio_wakeup_enable:
+0x5d1e 023004 setarg 0xf0 
+0x5d1f 023005 store 1 ,core_puwakeup 
+0x5d20 023006 branch lpm_write_wait 
+:      023008 rec_tscan_gpio_config_high_impedance:
+0x5d21 023009 fetch 1 ,mem_rec_tscan_gpio_nums 
+0x5d22 023010 arg mem_rec_tscan_col_gpio ,rega 
+0x5d23 023011 branch rec_gpio_config_high_impedance 
+:      023013 rec_tscan_gpio_config_tri_angle_wakeup:
+0x5d24 023014 fetchr regb ,1 ,mem_rec_gpio_wakeup_source 
+0x5d25 023015 fetch 1 ,mem_rec_tscan_gpio_nums 
+0x5d26 023016 arg mem_rec_tscan_col_gpio ,rega 
+0x5d27 023017 branch rec_gpio_wakeup_config 
+:      023019 rec_gpio_config_high_impedance:
+0x5d28 023020 copy pdata ,loopcnt 
+:      023021 rec_high_impedance_loop:
+0x5d29 023022 ifetcht 1 ,rega 
+0x5d2a 023023 call gpio_set_high_impedance 
+0x5d2b 023024 increase 1 ,rega 
+0x5d2c 023025 loop rec_high_impedance_loop 
+0x5d2d 023026 rtn 
+:      023029 rec_gpio_wakeup_config:
+0x5d2e 023030 copy pdata ,loopcnt 
+:      023031 rec_gpio_wakeup_config_loop:
+0x5d2f 023032 ifetcht 1 ,rega 
+0x5d30 023033 rshift temp ,pdata 
+0x5d31 023034 arg mem_gpio_wakeup_cfg ,contw 
+0x5d32 023035 iadd contw ,contw 
+0x5d33 023036 call rec_gpio_wakeup_addr_search 
+0x5d34 023037 ifetcht 1 ,contw 
+0x5d35 023038 ior temp ,pdata 
+0x5d36 023039 istore 1 ,contw 
+0x5d37 023040 increase 1 ,rega 
+0x5d38 023041 loop rec_gpio_wakeup_config_loop 
+0x5d39 023042 rtn 
+:      023044 rec_gpio_wakeup_addr_search:
+0x5d3a 023045 copy regb ,pdata 
+0x5d3b 023046 isolate0 0 ,temp 
+0x5d3c 023047 rtn true 
+0x5d3d 023048 lshift4 pdata ,pdata 
+0x5d3e 023049 rtn 
+:      023051 rec_tscan_output_gndkey_num:
+0x5d3f 023052 bpatch patch16_7 ,mem_patch16 
+0x5d40 023053 copy regb ,pdata 
+0x5d41 023054 fetcht 1 ,mem_rec_gnd_key_offset 
+0x5d42 023055 iadd temp ,pdata 
+:      023056 rec_tscan_output_key_map:
+0x5d43 023057 arg mem_rec_key_map ,regc 
+0x5d44 023058 iadd regc ,regc 
+0x5d45 023059 ifetch 1 ,regc 
+0x5d46 023060 store 1 ,mem_rec_tscan_current_key_num 
+0x5d47 023061 increase -1 ,pdata 
+0x5d48 023062 mul32 pdata ,max_queue_unit ,pdata 
+0x5d49 023063 arg mem_rec_key_press_le ,regc 
+0x5d4a 023064 iadd regc ,regc 
+0x5d4b 023065 branch rec_push_buffer_in_queue 
+:      023067 rec_tscan_key_num_check:
+0x5d4c 023068 fetcht 2 ,mem_rec_tscan_record_temp 
+0x5d4d 023069 arg mem_rec_tscan_key_nums_list ,rega 
+0x5d4e 023070 arg 0 ,regb 
+:      023071 rec_tscan_key_num_loop:
+0x5d4f 023072 ifetch 2 ,rega 
+0x5d50 023073 rtn blank 
+0x5d51 023074 isub temp ,null 
+0x5d52 023075 branch rec_tscan_output_key_num ,zero 
+0x5d53 023076 increase 2 ,rega 
+0x5d54 023077 increase 1 ,regb 
+0x5d55 023078 branch rec_tscan_key_num_loop 
+:      023080 rec_tscan_output_key_num:
+0x5d56 023081 bpatch patch17_0 ,mem_patch17 
+0x5d57 023082 copy regb ,pdata 
+0x5d58 023083 branch rec_tscan_output_key_map 
+:      023085 rec_push_buffer_in_queue:
+0x5d59 023086 bpatch patch17_1 ,mem_patch17 
+0x5d5a 023087 fetch 1 ,mem_rec_le_connect_state 
+0x5d5b 023088 nbranch rec_puch_buffer_in_queue_check ,blank 
+:      023089 rec_push_buffer_in_queue_end:
+0x5d5c 023090 call rec_key_type_select 
+0x5d5d 023091 branch push_buffer_in_queue 
+:      023093 rec_puch_buffer_in_queue_check:
+0x5d5e 023094 fetch 1 ,mem_rec_le_enable_notify 
+0x5d5f 023095 rtn blank 
+0x5d60 023096 branch rec_push_buffer_in_queue_end 
+:      023098 rec_key_type_select:
+0x5d61 023099 ifetch 1 ,regc 
+0x5d62 023100 increase 1 ,regc 
+0x5d63 023101 beq keypad_type_consumer ,rec_set_key_type_consumer 
+0x5d64 023102 beq keypad_type_mouse ,rec_set_key_type_mouse 
+0x5d65 023103 beq keypad_type_keypad ,rec_set_key_type_keypad 
+0x5d66 023104 beq keypad_type_nec ,rec_set_key_type_nec 
+0x5d67 023105 rtn 
+:      023106 rec_set_key_type_consumer:
+0x5d68 023107 jam keypad_type_consumer ,mem_rec_keypad_type 
+0x5d69 023108 rtn 
+:      023109 rec_set_key_type_mouse:
+0x5d6a 023110 jam keypad_type_mouse ,mem_rec_keypad_type 
+0x5d6b 023111 rtn 
+:      023112 rec_set_key_type_keypad:
+0x5d6c 023113 jam keypad_type_keypad ,mem_rec_keypad_type 
+0x5d6d 023114 rtn 
+:      023115 rec_set_key_type_nec:
+0x5d6e 023116 jam keypad_type_nec ,mem_rec_keypad_type 
+0x5d6f 023117 rtn 
+:      023119 rec_tscan_key_send:
+0x5d70 023120 bpatch patch17_2 ,mem_patch17 
+0x5d71 023121 call queue_pop_one_byte 
+0x5d72 023122 nrtn user 
+0x5d73 023123 store 1 ,mem_rec_keypad_fun 
+0x5d74 023124 fetch 1 ,mem_rec_tscan_current_key_num 
+0x5d75 023125 call rec_nec_disable ,blank 
+:      023126 rec_tscan_send_keypad:
+0x5d76 023127 fetch 2 ,mem_ui_state_map 
+0x5d77 023128 bbit0 ui_state_ble_connected ,rec_send_nec_keypad 
+0x5d78 023129 fetch 1 ,mem_rec_keypad_type 
+0x5d79 023130 beq keypad_type_consumer ,rec_le_send_consumer 
+0x5d7a 023131 beq keypad_type_mouse ,rec_le_send_mouse 
+0x5d7b 023132 beq keypad_type_keypad ,rec_le_send_keyboard 
+0x5d7c 023133 beq keypad_type_nec ,rec_send_nec_keypad 
+0x5d7d 023134 rtn 
+:      023136 rec_send_nec_keypad:
+0x5d7e 023137 fetch 1 ,mem_rec_tscan_current_key_num 
+0x5d7f 023138 beq 0x00 ,rec_nec_disable 
+0x5d80 023139 fetch 1 ,mem_rec_keypad_fun 
+0x5d81 023140 pincrease -1 
+0x5d82 023141 mul32 pdata ,3 ,pdata 
+0x5d83 023142 arg mem_rec_key_nec_value_list ,temp 
+0x5d84 023143 iadd temp ,contr 
+0x5d85 023144 ifetch 2 ,contr 
+0x5d86 023145 ifetcht 1 ,contr 
+0x5d87 023146 branch rec_nec_6122_start 
+:      023148 rec_le_send_consumer:
+0x5d88 023149 call le_fifo_check_nearly_full 
+0x5d89 023150 nrtn blank 
+0x5d8a 023151 fetch 1 ,mem_rec_keypad_fun 
+0x5d8b 023152 pincrease -1 
+0x5d8c 023153 mul32 pdata ,3 ,pdata 
+0x5d8d 023154 arg mem_rec_key_consumer_value_list ,temp 
+0x5d8e 023155 iadd temp ,contr 
+0x5d8f 023156 arg 3 ,loopcnt 
+0x5d90 023157 arg mem_pdatatemp ,contw 
+0x5d91 023158 call memcpy 
+0x5d92 023159 jam 3 ,mem_rec_le_data_len 
+0x5d93 023160 fetcht 2 ,mem_rec_report_id2_handle 
+:      023161 rec_le_send_data:
+0x5d94 023162 fetch 1 ,mem_rec_le_enable_notify 
+0x5d95 023163 rtn blank 
+0x5d96 023164 fetchr rega ,1 ,mem_rec_le_data_len 
+0x5d97 023165 call le_att_malloc_tx_notify 
+0x5d98 023166 fetcht 1 ,mem_rec_le_data_len 
+0x5d99 023167 copy temp ,loopcnt 
+0x5d9a 023168 arg mem_pdatatemp ,contr 
+0x5d9b 023169 branch memcpy 
+:      023172 rec_le_send_mouse:
+0x5d9c 023173 call le_fifo_check_nearly_full 
+0x5d9d 023174 nrtn blank 
+0x5d9e 023175 fetch 1 ,mem_rec_keypad_fun 
+0x5d9f 023176 pincrease -1 
+0x5da0 023177 mul32 pdata ,4 ,pdata 
+0x5da1 023178 arg mem_rec_key_mouse_value_list ,temp 
+0x5da2 023179 iadd temp ,contr 
+0x5da3 023180 arg 4 ,loopcnt 
+0x5da4 023181 arg mem_pdatatemp ,contw 
+0x5da5 023182 call memcpy 
+0x5da6 023183 jam 4 ,mem_rec_le_data_len 
+0x5da7 023184 fetcht 2 ,mem_rec_report_id4_handle 
+0x5da8 023185 branch rec_le_send_data 
+:      023187 rec_le_send_keyboard:
+0x5da9 023188 call le_fifo_check_nearly_full 
+0x5daa 023189 nrtn blank 
+0x5dab 023190 fetch 1 ,mem_rec_keypad_fun 
+0x5dac 023191 pincrease -1 
+0x5dad 023192 mul32 pdata ,10 ,pdata 
+0x5dae 023193 arg mem_rec_key_keyboard_value_list ,temp 
+0x5daf 023194 iadd temp ,contr 
+0x5db0 023195 ifetch 2 ,contr 
+:      023196 rec_le_fill_standard_key_data:
+0x5db1 023197 arg 8 ,loopcnt 
+0x5db2 023198 arg mem_pdatatemp ,contw 
+0x5db3 023199 call memcpy 
+0x5db4 023200 jam 8 ,mem_rec_le_data_len 
+0x5db5 023201 fetcht 2 ,mem_rec_report_id1_handle 
+0x5db6 023202 branch rec_le_send_data 
+:      023210 rec_led_start_on:
+0x5db7 023211 arg 0 ,rega 
+0x5db8 023212 branch ui_led_on_global 
+:      023214 rec_led_start_off:
+0x5db9 023215 arg 0 ,rega 
+0x5dba 023216 branch ui_led_off_global 
+:      023223 rec_nec_send_userdata_6122:
+0x5dbb 023224 store 2 ,mem_rec_nec_usercode 
+0x5dbc 023225 storet 1 ,mem_rec_nec_datacode 
+0x5dbd 023226 force 0 ,regext_index 
+0x5dbe 023227 call rec_nec_init_6122 
+0x5dbf 023228 call rec_nec_send_boot_6122 
+0x5dc0 023229 fetch 1 ,mem_rec_nec_usercode 
+0x5dc1 023230 call rec_nec_send_byte_6122 
+0x5dc2 023231 fetch 1 ,mem_rec_nec_usercode + 1 
+0x5dc3 023232 call rec_nec_send_byte_6122 
+0x5dc4 023233 fetch 1 ,mem_rec_nec_datacode 
+0x5dc5 023234 call rec_nec_send_byte_6122 
+0x5dc6 023235 fetch 1 ,mem_rec_nec_datacode 
+0x5dc7 023236 invert pdata ,pdata 
+0x5dc8 023237 call rec_nec_send_byte_6122 
+0x5dc9 023238 setarg 570 
+0x5dca 023239 call rec_nec_carrier 
+0x5dcb 023240 setarg 1 
+0x5dcc 023241 branch rec_nec_empty 
+:      023243 rec_nec_init_6122:
+0x5dcd 023244 setarg 0 
+0x5dce 023245 call pwm_init + 3 
+0x5dcf 023246 call pwm_disable 
+0x5dd0 023247 call rec_pwm_duty_cycle_set 
+0x5dd1 023248 fetch 1 ,mem_rec_nec_send_gpio 
+0x5dd2 023249 branch pwm_enable 
+:      023252 rec_pwm_duty_cycle_set:
+0x5dd3 023253 arg 157 ,rega 
+0x5dd4 023254 arg 157 ,regb 
+0x5dd5 023255 arg 0 ,pdata 
+0x5dd6 023256 call pwm_duty_cycle_set 
+0x5dd7 023257 jam 0 ,core_pwm_en 
+0x5dd8 023258 rtn 
+:      023261 rec_nec_send_boot_6122:
+0x5dd9 023262 setarg 9000 
+0x5dda 023263 call rec_nec_carrier 
+0x5ddb 023264 setarg 4500 
+:      023265 rec_nec_empty:
+0x5ddc 023266 jam 0 ,core_pwm_en 
+0x5ddd 023267 branch rec_nec_delay_us 
+:      023270 rec_nec_carrier:
+0x5dde 023271 jam 1 ,core_pwm_en 
+0x5ddf 023272 branch rec_nec_delay_us 
+:      023275 rec_nec_delay_us:
+0x5de0 023276 rtn blank 
+:      023277 rec_nec_delay_us_loop:
+0x5de1 023278 increase -1 ,pdata 
+0x5de2 023279 nop 8 
+0x5de3 023280 nbranch rec_nec_delay_us_loop ,blank 
+0x5de4 023281 rtn 
+:      023284 rec_nec_send_byte_6122:
+0x5de5 023285 arg 8 ,loopcnt 
+:      023286 rec_nec_send_byte_loop_6122:
+0x5de6 023287 call rec_save_reg 
+0x5de7 023288 call rec_nec_send_bit_6122 
+0x5de8 023289 call rec_rescue_reg 
+0x5de9 023290 rshift pdata ,pdata 
+0x5dea 023291 loop rec_nec_send_byte_loop_6122 
+0x5deb 023292 rtn 
+:      023294 rec_nec_send_bit_6122:
+0x5dec 023295 bbit0 0 ,rec_nec_send_bit0_6122 
+0x5ded 023296 bbit1 0 ,rec_nec_send_bit1_6122 
+0x5dee 023297 rtn 
+:      023299 rec_nec_send_bit0_6122:
+0x5def 023300 arg 570 ,rega 
+0x5df0 023301 arg 550 ,regb 
+0x5df1 023302 branch rec_nec_send_bit 
+:      023304 rec_nec_send_bit1_6122:
+0x5df2 023305 arg 570 ,rega 
+0x5df3 023306 arg 1680 ,regb 
+0x5df4 023307 branch rec_nec_send_bit 
+:      023310 rec_nec_send_bit:
+0x5df5 023311 copy rega ,pdata 
+0x5df6 023312 call rec_nec_carrier 
+0x5df7 023313 copy regb ,pdata 
+0x5df8 023314 branch rec_nec_empty 
+:      023317 rec_nec_send_repeat_6122:
+0x5df9 023318 setarg 9000 
+0x5dfa 023319 call rec_nec_carrier 
+0x5dfb 023320 setarg 2250 
+0x5dfc 023321 call rec_nec_empty 
+0x5dfd 023322 setarg 560 
+0x5dfe 023323 call rec_nec_carrier 
+0x5dff 023324 setarg 1 
+0x5e00 023325 branch rec_nec_empty 
+:      023328 rec_nec_6122_start:
+0x5e01 023329 call rec_nec_send_userdata_6122 
+0x5e02 023330 call rec_nec_send_repeat_6122_timer_init 
+0x5e03 023331 jam 16 ,mem_rec_nec_timer 
+0x5e04 023332 rtn 
+:      023334 rec_nec_disable:
+0x5e05 023335 call rec_nec_send_repeat_6122_timer_clear 
+:      023336 rec_nec_6122_stop:
+0x5e06 023337 call pwm_disable 
+:      023338 rec_nec_io_disable:
+0x5e07 023339 fetch 1 ,mem_rec_nec_send_gpio 
+:      023340 rec_gpio_config_output_low:
+0x5e08 023341 arg gpcfg_output_low ,temp 
+0x5e09 023342 branch gpio_config_function_int 
+:      023344 rec_gpio_config_output_high:
+0x5e0a 023345 arg gpcfg_output_high ,temp 
+0x5e0b 023346 branch gpio_config_function_int 
+:      023348 rec_nec_send_repeat_6122_timer_init:
+0x5e0c 023349 setarg 43 
+:      023350 rec_nec_timer_set:
+0x5e0d 023351 store 1 ,mem_rec_nec_timeout 
+0x5e0e 023352 store 1 ,mem_rec_nec_timer 
+0x5e0f 023353 rtn 
+:      023355 rec_nec_send_repeat_6122_timer_clear:
+0x5e10 023356 setarg 0 
+0x5e11 023357 branch rec_nec_timer_set 
+:      023366 rec_nec_rx_num:
+0x5e12 023367 fetch 2 ,core_nec_wptr 
+0x5e13 023368 fetcht 2 ,core_nec_rptr 
+0x5e14 023369 isub temp ,pdata 
+0x5e15 023370 nbranch rec_nec_rptr_big_wptr ,positive 
+0x5e16 023371 rtn 
+:      023372 rec_nec_rptr_big_wptr:
+0x5e17 023373 fetcht 2 ,core_nec_wptr 
+0x5e18 023374 fetch 2 ,core_nec_rptr 
+0x5e19 023375 isub temp ,temp 
+0x5e1a 023376 setarg nec_store_buf_size 
+0x5e1b 023377 isub temp ,pdata 
+0x5e1c 023378 rtn 
+:      023380 rec_nec_receive_data:
+0x5e1d 023381 fetch 2 ,core_nec_rptr 
+0x5e1e 023382 ifetcht 3 ,pdata 
+0x5e1f 023383 storet 1 ,mem_rec_nec_receive_data0 
+0x5e20 023384 rshift8 temp ,temp 
+0x5e21 023385 storet 1 ,mem_rec_nec_receive_data1 
+0x5e22 023386 rshift8 temp ,temp 
+0x5e23 023387 storet 1 ,mem_rec_nec_receive_data2 
+0x5e24 023389 fetch 1 ,mem_rec_nec_receive_data0 
+0x5e25 023390 and_into 0x80 ,pdata 
+0x5e26 023391 bne 0x80 ,rec_nec_receive_one_data 
+0x5e27 023392 branch rec_nec_receive_two_data 
+:      023394 rec_nec_receive_one_data:
+0x5e28 023395 fetch 1 ,mem_rec_nec_receive_data0 
+0x5e29 023396 store 1 ,mem_rec_nec_receive_data 
+0x5e2a 023397 fetch 2 ,core_nec_rptr 
+0x5e2b 023398 fetcht 2 ,core_nec_end_addr 
+0x5e2c 023399 isub temp ,pdata 
+0x5e2d 023400 branch rec_nec_rptr_reset ,positive 
+0x5e2e 023401 fetch 2 ,core_nec_rptr 
+0x5e2f 023402 increase 1 ,pdata 
+0x5e30 023403 store 2 ,core_nec_rptr 
+0x5e31 023404 jam 1 ,mem_rec_nec_data 
+0x5e32 023405 rtn 
+:      023407 rec_nec_receive_two_data:
+0x5e33 023408 fetch 1 ,mem_rec_nec_receive_data2 
+0x5e34 023409 and_into 0x80 ,pdata 
+0x5e35 023410 beq 0x80 ,rec_nec_receive_three_data 
+0x5e36 023411 fetch 1 ,mem_rec_nec_receive_data1 
+0x5e37 023412 lshift8 pdata ,pdata 
+0x5e38 023413 rshift pdata ,pdata 
+0x5e39 023414 fetcht 1 ,mem_rec_nec_receive_data0 
+0x5e3a 023415 and_into 0x7f ,temp 
+0x5e3b 023416 ior temp ,pdata 
+0x5e3c 023417 store 2 ,mem_rec_nec_receive_data 
+0x5e3d 023418 fetch 2 ,core_nec_rptr 
+0x5e3e 023419 fetcht 2 ,core_nec_end_addr 
+0x5e3f 023420 isub temp ,pdata 
+0x5e40 023421 branch rec_nec_rptr_reset ,positive 
+0x5e41 023422 fetch 2 ,core_nec_rptr 
+0x5e42 023423 increase 2 ,pdata 
+0x5e43 023424 store 2 ,core_nec_rptr 
+0x5e44 023425 jam 2 ,mem_rec_nec_data 
+0x5e45 023426 rtn 
+:      023428 rec_nec_receive_three_data:
+0x5e46 023429 fetch 1 ,mem_rec_nec_receive_data2 
+0x5e47 023430 and_into 0x7f ,pdata 
+0x5e48 023431 lshift16 pdata ,pdata 
+0x5e49 023432 rshift pdata ,rega 
+0x5e4a 023433 fetch 1 ,mem_rec_nec_receive_data1 
+0x5e4b 023434 lshift8 pdata ,pdata 
+0x5e4c 023435 rshift pdata ,pdata 
+0x5e4d 023436 fetcht 1 ,mem_rec_nec_receive_data0 
+0x5e4e 023437 and_into 0x7f ,temp 
+0x5e4f 023438 ior temp ,pdata 
+0x5e50 023439 ior rega ,pdata 
+0x5e51 023440 store 3 ,mem_rec_nec_receive_data 
+0x5e52 023442 fetch 2 ,core_nec_rptr 
+0x5e53 023443 fetcht 2 ,core_nec_end_addr 
+0x5e54 023444 isub temp ,pdata 
+0x5e55 023445 branch rec_nec_rptr_reset ,positive 
+0x5e56 023447 fetch 2 ,core_nec_rptr 
+0x5e57 023448 increase 3 ,pdata 
+0x5e58 023449 store 2 ,core_nec_rptr 
+0x5e59 023450 jam 3 ,mem_rec_nec_data 
+0x5e5a 023451 rtn 
+:      023453 rec_nec_rptr_reset:
+0x5e5b 023454 arg mem_rec_nec_rx_start ,temp 
+0x5e5c 023455 iadd temp ,pdata 
+0x5e5d 023456 store 2 ,core_nec_rptr 
+0x5e5e 023457 rtn 
+:      023458 rec_nec_receiver_init_wtr:
+0x5e5f 023459 setarg mem_rec_nec_rx_store_start 
+0x5e60 023460 store 2 ,mem_rec_nec_store_sptr 
+0x5e61 023461 store 2 ,mem_rec_nec_store_wptr 
+0x5e62 023462 rtn 
+:      023464 rec_nec_carry_time:
+0x5e63 023465 call rec_nec_carry_store 
+0x5e64 023466 fetch 1 ,mem_rec_nec_receive_data 
+0x5e65 023467 fetcht 2 ,mem_rec_nec_carry_time 
+0x5e66 023468 iadd temp ,pdata 
+0x5e67 023469 store 2 ,mem_rec_nec_carry_time 
+0x5e68 023470 setarg 0 
+0x5e69 023471 store 3 ,mem_rec_nec_receive_data 
+0x5e6a 023472 store 1 ,mem_rec_nec_data 
+0x5e6b 023473 rtn 
+:      023475 rec_nec_carry_store:
+0x5e6c 023476 fetch 1 ,mem_rec_period_cal_count 
+0x5e6d 023477 sub pdata ,20 ,null 
+0x5e6e 023478 rtn zero 
+0x5e6f 023479 increase 1 ,pdata 
+0x5e70 023480 store 1 ,mem_rec_period_cal_count 
+0x5e71 023481 fetch 1 ,mem_rec_nec_receive_data 
+0x5e72 023482 fetcht 2 ,mem_rec_period_cal_ptr 
+0x5e73 023483 istore 1 ,temp 
+0x5e74 023484 increase 1 ,temp 
+0x5e75 023485 storet 2 ,mem_rec_period_cal_ptr 
+0x5e76 023486 rtn 
+:      023489 rec_nec_receive_run_time:
+0x5e77 023490 fetch 4 ,core_clkn 
+0x5e78 023491 fetcht 4 ,mem_rec_nec_learn_stime 
+0x5e79 023492 isub temp ,pdata 
+0x5e7a 023493 rtn 
+:      023496 rec_nec_receive_timeout:
+0x5e7b 023497 fetcht 4 ,mem_rec_nec_learn_outtime 
+0x5e7c 023498 isub temp ,null 
+0x5e7d 023499 rtn 
+:      023501 rec_nec_update_timeout:
+0x5e7e 023502 fetch 4 ,core_clkn 
+0x5e7f 023503 store 4 ,mem_rec_nec_learn_stime 
+0x5e80 023504 setarg 620 
+0x5e81 023505 store 4 ,mem_rec_nec_learn_outtime 
+0x5e82 023506 rtn 
+:      023508 rec_nec_learn_analysis:
+0x5e83 023509 fetch 1 ,mem_rec_nec_rx_count 
+0x5e84 023510 rtn blank 
+0x5e85 023511 mul32 pdata ,4 ,pdata 
+0x5e86 023512 increase -10 ,pdata 
+0x5e87 023513 copy pdata ,loopcnt 
+0x5e88 023514 store 1 ,mem_rec_nec_rx_len 
+0x5e89 023515 arg mem_rec_nec_rx_store_start ,contr 
+0x5e8a 023516 increase 6 ,contr 
+0x5e8b 023517 arg mem_rec_nec_rx_data ,contw 
+0x5e8c 023518 branch memcpy 
+:      023526 rec_audio_adpcm_encode:
+0x5e8d 023527 jam 40 ,mem_rec_ad_in_numsamples1 
+0x5e8e 023528 fetch 2 ,mem_rec_adc_dma_rptr 
+0x5e8f 023529 store 2 ,mem_rec_ad_in_ptr1 
+0x5e90 023530 setarg mem_rec_adpcm 
+0x5e91 023531 store 2 ,mem_rec_ad_out_ptr1 
+:      023532 rec_adpcm_encode:
+0x5e92 023533 fetch 4 ,mem_rec_ad_state_valpred1 
+0x5e93 023534 store 4 ,mem_rec_ad_valpred1 
+0x5e94 023536 fetch 4 ,mem_rec_ad_state_index1 
+0x5e95 023537 store 4 ,mem_rec_ad_index1 
+0x5e96 023539 fetch 1 ,mem_rec_ad_index1 
+0x5e97 023540 lshift2 pdata ,pdata 
+0x5e98 023541 arg mem_rec_ad_stepsizetable1 ,temp 
+0x5e99 023542 iadd temp ,temp 
+0x5e9a 023543 ifetch 4 ,temp 
+0x5e9b 023544 store 4 ,mem_rec_ad_step1 
+0x5e9c 023546 jam 1 ,mem_rec_ad_bufferstep1 
+:      023547 rec_adpcm_encode_loop:
+0x5e9d 023548 call rec_adpcm_get_val_from_inp 
+0x5e9e 023550 fetch 4 ,mem_rec_ad_val1 
+0x5e9f 023551 fetcht 4 ,mem_rec_ad_valpred1 
+0x5ea0 023552 isub temp ,pdata 
+0x5ea1 023553 store 4 ,mem_rec_ad_diff1 
+0x5ea2 023555 call rec_adpcm_encode_cal_delta 
+0x5ea3 023556 call rec_adpcm_set_diff_by_sign 
+0x5ea4 023558 jam 0 ,mem_rec_ad_delta1 
+0x5ea5 023560 fetch 4 ,mem_rec_ad_step1 
+0x5ea6 023561 rshift3 pdata ,pdata 
+0x5ea7 023562 store 4 ,mem_rec_ad_vpdiff1 
+0x5ea8 023564 call rec_check_diff_big_step1 
+0x5ea9 023566 fetch 4 ,mem_rec_ad_step1 
+0x5eaa 023567 rshift pdata ,pdata 
+0x5eab 023568 store 4 ,mem_rec_ad_step1 
+0x5eac 023570 call rec_check_diff_big_step2 
+0x5ead 023572 fetch 4 ,mem_rec_ad_step1 
+0x5eae 023573 rshift pdata ,pdata 
+0x5eaf 023574 store 4 ,mem_rec_ad_step1 
+0x5eb0 023576 call rec_check_diff_big_step3 
+0x5eb1 023578 call rec_check_sign_deal1 
+0x5eb2 023580 call rec_adpcm_check_valpred_more_32767 
+0x5eb3 023582 fetch 1 ,mem_rec_ad_delta1 
+0x5eb4 023583 fetcht 1 ,mem_rec_ad_sign1 
+0x5eb5 023584 ior temp ,pdata 
+0x5eb6 023585 store 1 ,mem_rec_ad_delta1 
+0x5eb7 023587 fetch 1 ,mem_rec_ad_delta1 
+0x5eb8 023588 arg mem_rec_ad_indextable1 ,temp 
+0x5eb9 023589 iadd temp ,temp 
+0x5eba 023590 ifetch 1 ,temp 
+0x5ebb 023591 call rec_char_2_int32 
+0x5ebc 023592 fetcht 4 ,mem_rec_ad_index1 
+0x5ebd 023593 iadd temp ,pdata 
+0x5ebe 023594 store 4 ,mem_rec_ad_index1 
+0x5ebf 023596 call rec_adpcm_check_index_less_0 
+0x5ec0 023597 call rec_adpcm_check_index_big_88 
+0x5ec1 023599 fetch 4 ,mem_rec_ad_index1 
+0x5ec2 023600 lshift2 pdata ,pdata 
+0x5ec3 023601 arg mem_rec_ad_stepsizetable1 ,temp 
+0x5ec4 023602 iadd temp ,temp 
+0x5ec5 023603 ifetch 4 ,temp 
+0x5ec6 023604 store 4 ,mem_rec_ad_step1 
+0x5ec7 023606 call rec_adpcm_check_bufferstep 
+0x5ec8 023608 fetch 1 ,mem_rec_ad_bufferstep1 
+0x5ec9 023609 arg 0x01 ,temp 
+0x5eca 023610 ixor temp ,pdata 
+0x5ecb 023611 store 1 ,mem_rec_ad_bufferstep1 
+0x5ecc 023613 fetch 1 ,mem_rec_ad_in_numsamples1 
+0x5ecd 023614 increase -1 ,pdata 
+0x5ece 023615 store 1 ,mem_rec_ad_in_numsamples1 
+0x5ecf 023616 nbranch rec_adpcm_encode_loop ,blank 
+0x5ed0 023619 fetch 1 ,mem_rec_ad_bufferstep1 
+0x5ed1 023620 call rec_adpcm_set_bufferstep_to_outp ,blank 
+0x5ed2 023622 fetch 4 ,mem_rec_ad_valpred1 
+0x5ed3 023623 store 4 ,mem_rec_ad_state_valpred1 
+0x5ed4 023625 fetch 4 ,mem_rec_ad_index1 
+0x5ed5 023626 store 4 ,mem_rec_ad_state_index1 
+0x5ed6 023627 rtn 
+:      023630 rec_adpcm_encode_cal_delta:
+0x5ed7 023631 fetch 4 ,mem_rec_ad_diff1 
+0x5ed8 023632 bbit1 31 ,rec_adpcm_encode_cal_smaller_zero 
+0x5ed9 023633 setarg 0 
+:      023634 rec_adpcm_encode_store_sign1:
+0x5eda 023635 store 1 ,mem_rec_ad_sign1 
+0x5edb 023636 rtn 
+:      023638 rec_adpcm_encode_cal_smaller_zero:
+0x5edc 023639 setarg 8 
+0x5edd 023640 branch rec_adpcm_encode_store_sign1 
+:      023642 rec_adpcm_set_diff_by_sign:
+0x5ede 023643 fetch 1 ,mem_rec_ad_sign1 
+0x5edf 023644 nbranch rec_adpcm_diff_negation ,blank 
+0x5ee0 023645 rtn 
+:      023647 rec_adpcm_diff_negation:
+0x5ee1 023648 fetch 4 ,mem_rec_ad_diff1 
+0x5ee2 023649 sub pdata ,0 ,pdata 
+0x5ee3 023650 store 4 ,mem_rec_ad_diff1 
+0x5ee4 023651 rtn 
+:      023653 rec_check_diff_big_step1:
+0x5ee5 023654 fetch 4 ,mem_rec_ad_diff1 
+0x5ee6 023655 fetcht 4 ,mem_rec_ad_step1 
+0x5ee7 023656 isub temp ,pdata 
+0x5ee8 023657 rtnbit1 31 
+0x5ee9 023658 jam 4 ,mem_rec_ad_delta1 
+:      023659 rec_check_diff_big_common:
+0x5eea 023660 fetch 4 ,mem_rec_ad_diff1 
+0x5eeb 023661 fetcht 4 ,mem_rec_ad_step1 
+0x5eec 023662 isub temp ,pdata 
+0x5eed 023663 store 4 ,mem_rec_ad_diff1 
+:      023664 rec_check_diff_big_common_next:
+0x5eee 023665 fetch 4 ,mem_rec_ad_vpdiff1 
+0x5eef 023666 fetcht 4 ,mem_rec_ad_step1 
+0x5ef0 023667 iadd temp ,pdata 
+0x5ef1 023668 store 4 ,mem_rec_ad_vpdiff1 
+0x5ef2 023669 rtn 
+:      023671 rec_check_diff_big_step2:
+0x5ef3 023672 fetch 4 ,mem_rec_ad_diff1 
+0x5ef4 023673 fetcht 4 ,mem_rec_ad_step1 
+0x5ef5 023674 isub temp ,pdata 
+0x5ef6 023675 rtnbit1 31 
+0x5ef7 023676 fetch 1 ,mem_rec_ad_delta1 
+0x5ef8 023677 or pdata ,2 ,pdata 
+0x5ef9 023678 store 1 ,mem_rec_ad_delta1 
+0x5efa 023679 branch rec_check_diff_big_common 
+:      023681 rec_check_diff_big_step3:
+0x5efb 023682 fetch 4 ,mem_rec_ad_diff1 
+0x5efc 023683 fetcht 4 ,mem_rec_ad_step1 
+0x5efd 023684 isub temp ,pdata 
+0x5efe 023685 rtnbit1 31 
+0x5eff 023686 fetch 1 ,mem_rec_ad_delta1 
+0x5f00 023687 or pdata ,1 ,pdata 
+0x5f01 023688 store 1 ,mem_rec_ad_delta1 
+0x5f02 023689 branch rec_check_diff_big_common_next 
+:      023691 rec_check_sign_deal1:
+0x5f03 023692 fetch 1 ,mem_rec_ad_sign1 
+0x5f04 023693 branch rec_valpred_add_vpdiff ,blank 
+:      023694 rec_valpred_sub_vpdiff:
+0x5f05 023695 fetch 4 ,mem_rec_ad_valpred1 
+0x5f06 023696 fetcht 4 ,mem_rec_ad_vpdiff1 
+0x5f07 023697 isub temp ,pdata 
+:      023698 rec_valpred1_store:
+0x5f08 023699 store 4 ,mem_rec_ad_valpred1 
+0x5f09 023700 rtn 
+:      023702 rec_valpred_add_vpdiff:
+0x5f0a 023703 fetch 4 ,mem_rec_ad_valpred1 
+0x5f0b 023704 fetcht 4 ,mem_rec_ad_vpdiff1 
+0x5f0c 023705 iadd temp ,pdata 
+0x5f0d 023706 branch rec_valpred1_store 
+:      023708 rec_adpcm_check_valpred_more_32767:
+0x5f0e 023709 fetch 4 ,mem_rec_ad_valpred1 
+0x5f0f 023710 arg 32767 ,temp 
+0x5f10 023711 isub temp ,pdata 
+0x5f11 023712 bbit0 31 ,rec_adpcm_valpred_more_32767 
+:      023713 rec_adpcm_check_valpred_less_f32767:
+0x5f12 023714 fetch 4 ,mem_rec_ad_valpred1 
+0x5f13 023715 arg -32767 ,temp 
+0x5f14 023716 isub temp ,pdata 
+0x5f15 023717 bbit1 31 ,rec_adpcm_valpred_less_f32767 
+0x5f16 023718 rtn 
+:      023720 rec_adpcm_valpred_more_32767:
+0x5f17 023721 setarg 32767 
+0x5f18 023722 branch rec_valpred1_store 
+:      023724 rec_adpcm_valpred_less_f32767:
+0x5f19 023725 setarg -32767 
+0x5f1a 023726 branch rec_valpred1_store 
+:      023728 rec_adpcm_check_index_less_0:
+0x5f1b 023729 fetch 4 ,mem_rec_ad_index1 
+0x5f1c 023730 arg 0 ,temp 
+0x5f1d 023731 isub temp ,pdata 
+0x5f1e 023732 bbit1 31 ,rec_adpcm_set_0_index 
+0x5f1f 023733 rtn 
+:      023735 rec_adpcm_check_index_big_88:
+0x5f20 023736 fetch 4 ,mem_rec_ad_index1 
+0x5f21 023737 arg 88 ,temp 
+0x5f22 023738 isub temp ,pdata 
+0x5f23 023739 bbit0 31 ,rec_adpcm_set_88_index 
+0x5f24 023740 rtn 
+:      023742 rec_adpcm_set_0_index:
+0x5f25 023743 setarg 0 
+:      023744 rec_adpcm_store_index1:
+0x5f26 023745 store 4 ,mem_rec_ad_index1 
+0x5f27 023746 rtn 
+:      023748 rec_adpcm_set_88_index:
+0x5f28 023749 setarg 88 
+0x5f29 023750 branch rec_adpcm_store_index1 
+:      023752 rec_adpcm_check_bufferstep:
+0x5f2a 023753 fetch 1 ,mem_rec_ad_bufferstep1 
+0x5f2b 023754 branch rec_adpcm_bufferstep_eque_0 ,blank 
+:      023755 rec_adpcm_bufferstep_neque_0:
+0x5f2c 023756 fetch 1 ,mem_rec_ad_delta1 
+0x5f2d 023757 and pdata ,0x0f ,pdata 
+0x5f2e 023758 store 4 ,mem_rec_ad_outputbuffer1 
+0x5f2f 023759 rtn 
+:      023762 rec_adpcm_bufferstep_eque_0:
+0x5f30 023763 fetch 1 ,mem_rec_ad_delta1 
+0x5f31 023764 lshift4 ,pdata ,pdata 
+0x5f32 023765 and pdata ,0xf0 ,pdata 
+0x5f33 023766 fetcht 4 ,mem_rec_ad_outputbuffer1 
+0x5f34 023767 ior temp ,pdata 
+:      023768 rec_adpcm_bufferstep_increase_out_ptr1:
+0x5f35 023769 fetcht 2 ,mem_rec_ad_out_ptr1 
+0x5f36 023770 istore 1 ,temp 
+0x5f37 023771 increase 1 ,temp 
+0x5f38 023772 storet 2 ,mem_rec_ad_out_ptr1 
+0x5f39 023773 rtn 
+:      023775 rec_adpcm_set_bufferstep_to_outp:
+0x5f3a 023776 fetch 4 ,mem_rec_ad_outputbuffer1 
+0x5f3b 023777 branch rec_adpcm_bufferstep_increase_out_ptr1 
+:      023783 rec_adpcm_get_val_from_inp:
+0x5f3c 023784 fetcht 2 ,mem_rec_ad_in_ptr1 
+0x5f3d 023785 ifetch 2 ,temp 
+0x5f3e 023786 increase 2 ,temp 
+0x5f3f 023787 storet 2 ,mem_rec_ad_in_ptr1 
+0x5f40 023788 call rec_int16_2_int32 
+0x5f41 023789 store 4 ,mem_rec_ad_val1 
+0x5f42 023790 rtn 
+:      023792 rec_int16_2_int32:
+0x5f43 023793 bbit1 15 ,rec_int16_2_int32_less_0 
+0x5f44 023794 rtn 
+:      023796 rec_int16_2_int32_less_0:
+0x5f45 023797 arg 0xffff ,temp 
+0x5f46 023798 lshift16 temp ,temp 
+:      023799 rec_calca_ixor:
+0x5f47 023800 ixor temp ,pdata 
+0x5f48 023801 rtn 
+:      023804 rec_char_2_int32:
+0x5f49 023805 bbit1 7 ,rec_char_2_int32_less_0 
+0x5f4a 023806 rtn 
+:      023807 rec_char_2_int32_less_0:
+0x5f4b 023808 arg 0xffffff ,temp 
+0x5f4c 023809 lshift8 temp ,temp 
+0x5f4d 023810 branch rec_calca_ixor 
+:      023817 rec_voice_notify_apk:
+0x5f4e 023818 arg 20 ,rega 
+0x5f4f 023819 fetcht 2 ,mem_rec_voice_notify_apk_handle 
+:      023820 rec_le_notify_data:
+0x5f50 023821 call le_att_malloc_tx_notify 
+0x5f51 023822 arg mem_rec_voice_notify ,contr 
+0x5f52 023823 arg 20 ,loopcnt 
+0x5f53 023824 branch memcpy 
+:      023826 rec_voice_start_apk:
+0x5f54 023827 jam 0x01 ,mem_pdatatemp 
+:      023828 rec_voice_notify_apk_data:
+0x5f55 023829 jam 1 ,mem_rec_le_data_len 
+0x5f56 023830 fetcht 2 ,mem_rec_control_notify_apk_handle 
+0x5f57 023831 branch rec_le_send_data 
+:      023833 rec_voice_end_apk:
+0x5f58 023834 jam 0x00 ,mem_pdatatemp 
+0x5f59 023835 branch rec_voice_notify_apk_data 
+:      023838 rec_voice_notify_box:
+0x5f5a 023839 arg 20 ,rega 
+0x5f5b 023840 fetcht 2 ,mem_rec_voice_notify_box_handle 
+0x5f5c 023841 branch rec_le_notify_data 
+:      023843 rec_voice_start_box:
+0x5f5d 023844 setarg 0x221 
+:      023845 rec_voice_notify_box_data:
+0x5f5e 023846 store 3 ,mem_pdatatemp 
+0x5f5f 023847 jam 3 ,mem_rec_le_data_len 
+0x5f60 023848 fetcht 2 ,mem_rec_control_notify_box_handle 
+0x5f61 023849 branch rec_le_send_data 
+:      023851 rec_voice_end_box:
+0x5f62 023852 setarg 0xcccc 
+0x5f63 023853 branch rec_voice_notify_box_data 
+:      023867 rec_ota_process:
+0x5f64 023868 bpatch patch17_3 ,mem_patch17 
+0x5f65 023869 copy rega ,contr 
+0x5f66 023870 ifetch 1 ,contr 
+0x5f67 023871 rtnne ota_command 
+0x5f68 023872 ifetch 1 ,contr 
+0x5f69 023873 store 1 ,mem_rec_ota_notify_opcode 
+0x5f6a 023874 beq ota_portocol_version_request ,rec_ota_parse_protocol_version_req 
+0x5f6b 023875 beq ota_buck_size_request ,rec_ota_parse_buck_size_req 
+0x5f6c 023876 beq ota_start_request ,rec_ota_parse_start_req 
+0x5f6d 023877 beq ota_data_write_cmd ,rec_ota_parse_data_write_cmd 
+0x5f6e 023878 beq ota_data_write_request ,rec_ota_prep_data_write_rsp 
+0x5f6f 023879 beq ota_end_request ,rec_ota_parse_end_req 
+:      023880 rec_ota_init:
+0x5f70 023881 setarg -1 
+0x5f71 023882 store 2 ,mem_rec_ota_write_index 
+0x5f72 023883 setarg 0 
+0x5f73 023884 store 4 ,mem_rec_ota_total_sum 
+0x5f74 023885 store 2 ,mem_rec_ota_write_length 
+0x5f75 023886 jam ota_result_success ,mem_rec_ota_notify_result 
+0x5f76 023887 rtn 
+:      023889 rec_ota_parse_protocol_version_req:
+0x5f77 023890 arg 5 ,rega 
+0x5f78 023891 call rec_ota_tx_notify_success 
+0x5f79 023892 fetch 2 ,mem_rec_ota_version 
+0x5f7a 023893 istore 2 ,contw 
+0x5f7b 023894 jam ota_le_conn_param_update_enable ,mem_rec_ota_le_conn_param_update 
+0x5f7c 023895 fetch 8 ,mem_rec_ota_le_conn_update_param 
+0x5f7d 023896 store 8 ,mem_le_interval_min 
+0x5f7e 023897 branch le_l2cap_tx_update_req 
+:      023899 rec_ota_parse_buck_size_req:
+0x5f7f 023900 arg 7 ,rega 
+0x5f80 023901 call rec_ota_tx_notify_success 
+0x5f81 023902 fetch 2 ,mem_rec_ota_buck_size 
+0x5f82 023903 istore 2 ,contw 
+0x5f83 023904 fetch 2 ,mem_rec_ota_packet_max_len 
+0x5f84 023905 istore 2 ,contw 
+0x5f85 023906 rtn 
+:      023908 rec_ota_parse_start_req:
+0x5f86 023909 ifetch 1 ,contr 
+0x5f87 023910 store 1 ,mem_rec_ota_update_flash_mode 
+0x5f88 023911 beq ota_update_flash_normal ,rec_ota_parse_start_req_update_normal 
+:      023912 rec_ota_tx_flashmode_not_support:
+0x5f89 023913 arg 4 ,rega 
+0x5f8a 023914 jam ota_result_flashmode_not_support ,mem_rec_ota_notify_result 
+0x5f8b 023915 call rec_ota_tx_notify_common 
+0x5f8c 023916 fetch 1 ,mem_rec_ota_update_flash_mode 
+0x5f8d 023917 branch istore_1_contw_rtn 
+:      023920 rec_ota_tx_start_req_success:
+0x5f8e 023921 arg 4 ,rega 
+0x5f8f 023922 call rec_ota_tx_notify_success 
+0x5f90 023923 fetch 1 ,mem_rec_ota_update_flash_mode 
+0x5f91 023924 branch istore_1_contw_rtn 
+:      023927 rec_ota_parse_start_req_update_normal:
+0x5f92 023928 call rec_ota_tx_start_req_success 
+0x5f93 023929 call rec_ota_init 
+0x5f94 023930 setarg 0 
+0x5f95 023931 store 3 ,mem_rec_ota_flash_offset_addr 
+0x5f96 023932 jam 1 ,mem_rec_ota_enable 
+0x5f97 023933 setarg 0 
+0x5f98 023934 arg 0x10 ,temp 
+0x5f99 023935 arg mem_rec_ota_flash_buf ,rega 
+0x5f9a 023936 call spid_read_flash 
+0x5f9b 023937 call rec_ota_set_flash_start_addr 
+0x5f9c 023938 fetchr rega ,3 ,mem_rec_ota_flash_base_addr 
+0x5f9d 023939 arg 9 ,loopcnt 
+:      023940 rec_erase_num_sector_flash:
+0x5f9e 023941 force 0 ,regext_index 
+:      023942 rec_erase_num_sector_flash_loop:
+0x5f9f 023943 call rec_spi_wait_flash 
+0x5fa0 023944 storer rega ,3 ,mem_spi_write_addr 
+0x5fa1 023945 call rec_save_loopcnt_rega 
+0x5fa2 023946 call spid_flash_erase_sector 
+0x5fa3 023947 call rec_rescue_rega_loopcnt 
+0x5fa4 023948 setarg 4096 
+0x5fa5 023949 iadd rega ,rega 
+0x5fa6 023950 loop rec_erase_num_sector_flash_loop 
+0x5fa7 023951 rtn 
+:      023953 rec_ota_set_flash_start_addr:
+0x5fa8 023954 bpatchx patch3e_1 ,mem_patch3e 
+0x5fa9 023955 fetcht 3 ,mem_rec_code_b_flash_addr 
+0x5faa 023956 storet 3 ,mem_rec_ota_flash_base_addr 
+0x5fab 023957 storet 3 ,mem_rec_ota_write_flash_addr_start 
+0x5fac 023958 fetch 1 ,mem_rec_ota_flash_buf 
+0x5fad 023959 rtneq 0x60 
+0x5fae 023960 fetcht 3 ,mem_rec_code_a_flash_addr 
+0x5faf 023961 storet 3 ,mem_rec_ota_flash_base_addr 
+0x5fb0 023962 storet 3 ,mem_rec_ota_write_flash_addr_start 
+0x5fb1 023963 rtn 
+:      023965 rec_ota_parse_data_write_cmd:
+:      023966 rec_ota_parse_data_write_req:
+:      023967 rec_ota_parse_data_write_data_store:
+0x5fb2 023968 fetcht 2 ,mem_le_l2cap_size 
+0x5fb3 023969 increase -8 ,temp 
+0x5fb4 023970 fetch 2 ,mem_rec_ota_write_length 
+0x5fb5 023971 iadd temp ,pdata 
+0x5fb6 023972 store 2 ,mem_rec_ota_write_length 
+0x5fb7 023973 copy temp ,loopcnt 
+0x5fb8 023974 copy rega ,contr 
+0x5fb9 023975 increase 5 ,contr 
+0x5fba 023976 call rec_queue_ota_push 
+0x5fbb 023977 fetch 2 ,mem_rec_ota_write_index 
+0x5fbc 023978 increase 1 ,pdata 
+0x5fbd 023979 store 2 ,mem_rec_ota_write_index 
+0x5fbe 023980 rtn 
+:      023982 rec_ota_prep_data_write_rsp:
+0x5fbf 023983 call rec_ota_parse_data_write_req 
+0x5fc0 023984 jam ota_result_success ,mem_rec_ota_notify_result 
+0x5fc1 023985 jam ota_data_write_request ,mem_rec_ota_notify_opcode 
+0x5fc2 023986 arg 3 ,rega 
+0x5fc3 023987 branch rec_ota_tx_notify_common 
+:      023989 rec_ota_tx_notify_success:
+0x5fc4 023990 jam ota_result_success ,mem_rec_ota_notify_result 
+:      023992 rec_ota_tx_notify_common:
+0x5fc5 023993 fetcht 2 ,mem_rec_ota_notify_handle 
+0x5fc6 023994 call le_att_malloc_tx_notify 
+0x5fc7 023995 setarg ota_event 
+0x5fc8 023996 istore 1 ,contw 
+0x5fc9 023997 fetch 1 ,mem_rec_ota_notify_result 
+0x5fca 023998 istore 1 ,contw 
+0x5fcb 023999 fetch 1 ,mem_rec_ota_notify_opcode 
+0x5fcc 024000 branch istore_1_contw_rtn 
+:      024002 rec_ota_parse_end_req:
+0x5fcd 024003 force 0 ,regext_index 
+0x5fce 024004 call rec_save_contr 
+0x5fcf 024005 call rec_ota_data2flash_remain 
+0x5fd0 024006 jam 0 ,mem_rec_ota_enable 
+0x5fd1 024007 setarg 0 
+0x5fd2 024008 store 3 ,mem_rec_ota_flash_offset_addr 
+0x5fd3 024009 store 4 ,mem_rec_ota_total_sum 
+0x5fd4 024010 call rec_ota_sum_all 
+0x5fd5 024011 call rec_rescue_contr 
+0x5fd6 024012 increase 1 ,contr 
+0x5fd7 024013 ifetch 4 ,contr 
+0x5fd8 024014 store 4 ,mem_pdatatemp 
+0x5fd9 024015 ifetch 4 ,contr 
+0x5fda 024016 store 4 ,mem_pdatatemp + 4 
+0x5fdb 024018 fetch 4 ,mem_pdatatemp 
+0x5fdc 024019 fetcht 4 ,mem_rec_ota_write_length 
+0x5fdd 024020 isub temp ,null 
+0x5fde 024021 nbranch rec_ota_tx_length_error ,zero 
+0x5fdf 024023 fetch 4 ,mem_rec_ota_total_sum 
+0x5fe0 024024 fetcht 4 ,mem_pdatatemp + 4 
+0x5fe1 024025 isub temp ,null 
+0x5fe2 024026 nbranch rec_ota_result_error_write_flash ,zero 
+0x5fe3 024027 call rec_ota_updata_head 
+0x5fe4 024028 jam 2 ,mem_rec_ota_reset_timeout 
+:      024029 rec_ota_tx_end_req_return:
+0x5fe5 024030 arg 0x0c ,rega 
+0x5fe6 024031 call rec_ota_tx_notify_common 
+0x5fe7 024032 fetch 1 ,mem_rec_ota_update_flash_mode 
+0x5fe8 024033 istore 1 ,contw 
+0x5fe9 024034 fetch 4 ,mem_rec_ota_write_length 
+0x5fea 024035 istore 4 ,contw 
+0x5feb 024036 fetch 4 ,mem_rec_ota_total_sum 
+0x5fec 024037 istore 4 ,contw 
+0x5fed 024038 rtn 
+:      024040 rec_ota_tx_length_error:
+0x5fee 024041 jam ota_result_length_error ,mem_rec_ota_notify_result 
+0x5fef 024042 branch rec_ota_tx_end_req_return 
+:      024044 rec_ota_result_error_write_flash:
+0x5ff0 024045 jam ota_result_write_flash_error ,mem_rec_ota_notify_result 
+0x5ff1 024046 rtn 
+:      024048 rec_ota_data2flash_remain:
+0x5ff2 024049 fetch 1 ,mem_rec_ota_enable 
+0x5ff3 024050 rtn blank 
+0x5ff4 024051 call rec_ota_queue_count_256 
+0x5ff5 024052 rtn positive 
+0x5ff6 024053 fetcht 2 ,mem_rec_queue_ota_count 
+0x5ff7 024054 call rec_save_temp 
+0x5ff8 024055 copy temp ,loopcnt 
+0x5ff9 024056 arg mem_rec_ota_flash_buf ,contw 
+0x5ffa 024057 call rec_queue_ota_pop 
+0x5ffb 024058 call rec_spi_wait_flash 
+0x5ffc 024059 call rec_rescue_temp 
+0x5ffd 024060 call rec_save_temp 
+0x5ffe 024061 call rec_ota_data2flash 
+0x5fff 024062 call rec_rescue_temp 
+0x6000 024063 branch rec_ota_increase_flash_offset_addr 
+:      024065 rec_ota_queue_count_256:
+0x6001 024066 fetch 2 ,mem_rec_queue_ota_count 
+0x6002 024067 arg 256 ,temp 
+0x6003 024068 isub temp ,null 
+0x6004 024069 rtn 
+:      024072 rec_ota_sum_page:
+0x6005 024073 arg 0x100 ,loopcnt 
+0x6006 024074 branch rec_ota_sum 
+:      024076 rec_ota_sum_all:
+0x6007 024077 fetch 2 ,mem_rec_ota_write_length 
+0x6008 024078 fetcht 2 ,mem_rec_ota_flash_offset_addr 
+0x6009 024079 isub temp ,pdata 
+0x600a 024080 rtn zero 
+0x600b 024081 call rec_save_reg 
+0x600c 024082 call rec_ota_data_from_flash_len 
+0x600d 024083 call rec_rescue_reg 
+0x600e 024084 call rec_ota_sum_len 
+0x600f 024085 fetch 4 ,mem_rec_ota_total_sum 
+0x6010 024086 iadd temp ,pdata 
+0x6011 024087 store 4 ,mem_rec_ota_total_sum 
+0x6012 024088 branch rec_ota_sum_all 
+:      024090 rec_ota_sum_len:
+0x6013 024091 arg 0x100 ,temp 
+0x6014 024092 isub temp ,null 
+0x6015 024093 branch rec_ota_sum_page ,positive 
+0x6016 024094 copy pdata ,loopcnt 
+:      024095 rec_ota_sum:
+0x6017 024096 arg mem_rec_ota_flash_buf ,contr 
+0x6018 024097 arg 0 ,temp 
+:      024098 rec_ota_sum_loop:
+0x6019 024099 ifetch 1 ,contr 
+0x601a 024100 iadd temp ,temp 
+0x601b 024101 loop rec_ota_sum_loop 
+0x601c 024102 rtn 
+:      024104 rec_ota_data_from_flash_len:
+0x601d 024105 arg 0x100 ,temp 
+0x601e 024106 isub temp ,null 
+0x601f 024107 branch rec_ota_data_from_flash_page ,positive 
+0x6020 024108 call rec_save_reg 
+0x6021 024109 copy pdata ,loopcnt 
+0x6022 024110 call rec_ota_data_from_flash 
+0x6023 024111 call rec_rescue_reg 
+0x6024 024112 copy pdata ,temp 
+0x6025 024113 branch rec_ota_increase_flash_offset_addr 
+:      024115 rec_ota_data_from_flash:
+0x6026 024116 fetch 3 ,mem_rec_ota_flash_base_addr 
+0x6027 024117 fetchr regb ,3 ,mem_rec_ota_flash_offset_addr 
+0x6028 024118 iadd regb ,pdata 
+0x6029 024119 arg mem_rec_ota_flash_buf ,rega 
+0x602a 024120 branch spid_read_flash 
+:      024122 rec_ota_data_from_flash_page:
+0x602b 024123 arg 0x100 ,temp 
+0x602c 024124 call rec_ota_data_from_flash 
+0x602d 024125 arg 0x100 ,temp 
+0x602e 024126 branch rec_ota_increase_flash_offset_addr 
+:      024129 rec_ota_polling:
+0x602f 024130 fetch 1 ,mem_rec_ota_enable 
+0x6030 024131 ncall rec_ota_data2flash_page ,blank 
+0x6031 024132 rtn 
+:      024134 rec_ota_data2flash_page:
+0x6032 024135 fetch 1 ,mem_rec_ota_enable 
+0x6033 024136 rtn blank 
+0x6034 024137 call rec_ota_queue_count_256 
+0x6035 024138 nrtn positive 
+0x6036 024139 arg 256 ,loopcnt 
+0x6037 024140 arg mem_rec_ota_flash_buf ,contw 
+0x6038 024141 call rec_queue_ota_pop 
+0x6039 024142 call rec_spi_wait_flash 
+0x603a 024143 arg 256 ,temp 
+0x603b 024144 call rec_ota_data2flash 
+0x603c 024145 arg 256 ,temp 
+:      024146 rec_ota_increase_flash_offset_addr:
+0x603d 024147 fetch 2 ,mem_rec_ota_flash_offset_addr 
+0x603e 024148 iadd temp ,pdata 
+0x603f 024149 store 2 ,mem_rec_ota_flash_offset_addr 
+0x6040 024150 rtn 
+:      024152 rec_ota_data2flash:
+0x6041 024153 fetch 3 ,mem_rec_ota_flash_base_addr 
+0x6042 024154 fetchr regb ,3 ,mem_rec_ota_flash_offset_addr 
+0x6043 024155 iadd regb ,pdata 
+0x6044 024156 arg mem_rec_ota_flash_buf ,rega 
+0x6045 024157 branch spid_write_flash_data 
+:      024160 rec_queue_ota_init:
+0x6046 024161 setarg mem_rec_queue_ota_buf 
+0x6047 024162 fetcht 2 ,mem_rec_ota_queue_size 
+:      024163 rec_queue_init_config:
+0x6048 024164 increase -1 ,temp 
+0x6049 024165 copy pdata ,contw 
+0x604a 024166 increase -8 ,contw 
+0x604b 024167 istore 2 ,contw 
+0x604c 024168 iadd temp ,pdata 
+0x604d 024169 istore 2 ,contw 
+0x604e 024170 isub temp ,pdata 
+0x604f 024171 istore 2 ,contw 
+0x6050 024172 istore 2 ,contw 
+0x6051 024173 rtn 
+:      024175 rec_queue_ota_push:
+0x6052 024176 call rec_save_contr 
+0x6053 024177 bpatch patch17_4 ,mem_patch17 
+0x6054 024178 fetch 2 ,mem_rec_queue_ota_count 
+0x6055 024179 iadd loopcnt ,pdata 
+0x6056 024180 store 2 ,mem_rec_queue_ota_count 
+0x6057 024181 setarg mem_rec_queue_ota_buf 
+0x6058 024182 call rec_queue_enter_config 
+0x6059 024183 call rec_rescue_contr 
+0x605a 024184 call rec_enter_queue 
+0x605b 024185 fetch 2 ,mem_rec_queue_ota_count 
+0x605c 024186 fetcht 2 ,mem_rec_ota_queue_size 
+0x605d 024187 isub temp ,null 
+0x605e 024188 call rec_queue_ota_data_loss ,positive 
+0x605f 024189 rtn 
+:      024190 rec_queue_ota_data_loss:
+0x6060 024191 rtn 
+:      024193 rec_queue_ota_pop:
+0x6061 024194 call rec_save_contw 
+0x6062 024195 fetch 2 ,mem_rec_queue_ota_count 
+0x6063 024196 isub loopcnt ,pdata 
+0x6064 024197 store 2 ,mem_rec_queue_ota_count 
+0x6065 024198 setarg mem_rec_queue_ota_buf 
+0x6066 024199 call rec_queue_out_config 
+0x6067 024200 call rec_rescue_contw 
+:      024201 rec_out_queue:
+0x6068 024202 copy contu ,pdata 
+0x6069 024203 isub temp ,null 
+0x606a 024204 branch assert ,zero 
+:      024205 rec_out_queue_loop:
+0x606b 024206 ifetch 1 ,contru 
+0x606c 024207 istore 1 ,contw 
+0x606d 024208 loop rec_out_queue_loop 
+0x606e 024209 istorer contru ,2 ,rega 
+0x606f 024210 rtn 
+:      024212 rec_ota_updata_head:
+0x6070 024213 call rec_ota_read_head 
+0x6071 024214 setarg 0 
+0x6072 024215 call rec_spid_flash_erase_page 
+:      024216 rec_ota_write_head_check:
+0x6073 024217 bpatch patch17_5 ,mem_patch17 
+0x6074 024218 fetch 1 ,mem_rec_ota_flash_buf 
+0x6075 024219 beq 0x60 ,rec_ota_write_head_b 
+0x6076 024220 beq 0xf0 ,rec_ota_write_head_a 
+:      024221 rec_ota_write_head_a:
+0x6077 024222 fetch 3 ,mem_rec_code_a_flash_addr 
+0x6078 024223 branch rec_ota_write_head 
+:      024225 rec_ota_read_head:
+0x6079 024226 setarg 0 
+0x607a 024227 arg 0x100 ,temp 
+0x607b 024228 arg mem_rec_ota_flash_buf ,rega 
+0x607c 024229 branch spid_read_flash 
+:      024231 rec_ota_write_head_b:
+0x607d 024232 fetch 3 ,mem_rec_code_b_flash_addr 
+:      024233 rec_ota_write_head:
+0x607e 024234 increase 2 ,pdata 
+0x607f 024235 byteswap pdata ,pdata 
+0x6080 024236 store 2 ,mem_rec_ota_flash_buf 
+0x6081 024237 arg 0x100 ,temp 
+0x6082 024238 arg mem_rec_ota_flash_buf ,rega 
+0x6083 024239 setarg 0 
+0x6084 024240 branch spid_write_flash_data 
+:      024243 rec_spid_flash_erase_page:
+0x6085 024244 store 3 ,mem_spi_write_addr 
+0x6086 024245 call rec_spi_wait_flash 
+0x6087 024246 call spid_init_flash 
+0x6088 024247 call spid_unlock_flash 
+0x6089 024248 arg mem_spid_tbuf ,rega 
+0x608a 024249 jam 4 ,core_spid_txlen 
+0x608b 024250 fetch 3 ,mem_spi_write_addr 
+0x608c 024251 arg flash_command_page_erase ,temp 
+0x608d 024252 branch spid_write_flash_common 
+:      024254 rec_spi_wait_flash:
+0x608e 024255 setarg mem_spid_tbuf 
+0x608f 024256 store 2 ,core_spid_txaddr 
+0x6090 024257 setarg mem_spid_rbuf 
+0x6091 024258 store 2 ,core_spid_rxaddr 
+0x6092 024259 jam 0 ,core_spid_txlen + 1 
+0x6093 024260 setarg flash_read_satus 
+0x6094 024261 call spid_read_reg 
+0x6095 024262 bbit1 flash_status_wip ,rec_spi_wait_flash 
+0x6096 024263 rtn 
+:      024265 rec_save_contr:
+0x6097 024266 copy contr ,pdata 
+0x6098 024267 branch rec_save_reg 
+:      024269 rec_rescue_contr:
+0x6099 024270 call rec_rescue_reg 
+0x609a 024271 branch get_contr_end 
+:      024273 rec_save_contw:
+0x609b 024274 copy contw ,pdata 
+0x609c 024275 branch rec_save_reg 
+:      024277 rec_rescue_contw:
+0x609d 024278 call rec_rescue_reg 
+0x609e 024279 branch get_contw_end 
+:      024281 rec_save_loopcnt_rega:
+0x609f 024282 call rec_save_loopcnt 
+0x60a0 024283 branch rec_save_rega 
+:      024285 rec_rescue_rega_loopcnt:
+0x60a1 024286 call rec_rescue_rega 
+:      024287 rec_rescue_loopcnt:
+0x60a2 024288 call rec_rescue_reg 
+0x60a3 024289 copy pdata ,loopcnt 
+0x60a4 024290 rtn 
+:      024292 rec_save_loopcnt:
+0x60a5 024293 copy loopcnt ,pdata 
+0x60a6 024294 branch rec_save_reg 
+:      024296 rec_save_temp:
+0x60a7 024297 copy temp ,pdata 
+0x60a8 024298 branch rec_save_reg 
+:      024300 rec_rescue_temp:
+0x60a9 024301 call rec_rescue_reg 
+0x60aa 024302 copy pdata ,temp 
+0x60ab 024303 rtn 
+:      024309 rec_queue_enter_config:
+0x60ac 024310 increase -8 ,pdata 
+0x60ad 024311 ifetchr contus ,2 ,pdata 
+0x60ae 024312 increase 2 ,pdata 
+0x60af 024313 ifetchr contue ,2 ,pdata 
+0x60b0 024314 increase 2 ,pdata 
+0x60b1 024315 ifetchr temp ,2 ,pdata 
+0x60b2 024316 increase 2 ,pdata 
+0x60b3 024317 ifetchr contu ,2 ,pdata 
+0x60b4 024318 copy pdata ,rega 
+0x60b5 024319 rtn 
+:      024322 rec_queue_out_config:
+0x60b6 024323 increase -8 ,pdata 
+0x60b7 024324 ifetchr contus ,2 ,pdata 
+0x60b8 024325 increase 2 ,pdata 
+0x60b9 024326 ifetchr contue ,2 ,pdata 
+0x60ba 024327 increase 2 ,pdata 
+0x60bb 024328 ifetchr contu ,2 ,pdata 
+0x60bc 024329 copy pdata ,rega 
+0x60bd 024330 increase 2 ,pdata 
+0x60be 024331 ifetchr temp ,2 ,pdata 
+0x60bf 024332 rtn 
+:      024335 rec_enter_queue:
+:      024336 rec_enter_queue_loop:
+0x60c0 024337 ifetch 1 ,contr 
+0x60c1 024338 istore 1 ,contwu 
+0x60c2 024339 loop rec_enter_queue_loop 
+0x60c3 024340 istorer contwu ,2 ,rega 
+0x60c4 024341 copy contwu ,pdata 
+0x60c5 024342 isub temp ,null 
+0x60c6 024343 branch assert ,zero 
+0x60c7 024344 rtn 
+:      024352 shutter_init:
+0x60c8 024353 call enable_authrom 
+0x60c9 024354 rtn wake 
+0x60ca 024356 setarg shutter_process_idle 
+0x60cb 024357 store 2 ,mem_cb_idle_process 
+0x60cc 024359 setarg shutter_process_bb_event 
+0x60cd 024360 store 2 ,mem_cb_bb_event_process 
+0x60ce 024362 setarg ble_shutter_receive_data 
+0x60cf 024363 store 2 ,mem_cb_att_write 
+0x60d0 024365 setarg shutter_le_bb_event_timer 
+0x60d1 024366 store 2 ,mem_cb_event_timer 
+0x60d2 024368 setarg shutter_key_change 
+0x60d3 024369 store 2 ,mem_cb_shutter_keycan 
+0x60d4 024371 call shutter_common_init 
+0x60d5 024373 bpatch patch17_6 ,mem_patch17 
+0x60d6 024374 call shutter_load_buffer_config_form_datarom 
+:      024376 shutter_power_switch:
+0x60d7 024377 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x60d8 024378 beq hard_switch ,shutter_hart_swtich_power_on 
+0x60d9 024379 fetch 1 ,mem_shutter_soft_switch_button_gpio 
+0x60da 024380 store 1 ,mem_ui_button_gpio 
+0x60db 024381 branch ui_soft_swtich_init 
+:      024384 shutter_common_init:
+0x60dc 024385 setarg shutter_le_before_hibernate 
+0x60dd 024386 store 2 ,mem_cb_before_hibernate 
+0x60de 024388 setarg shutter_process_lpm_before 
+0x60df 024389 store 2 ,mem_cb_before_lpm 
+0x60e0 024391 setarg shutter_soft_swtich_power_on 
+0x60e1 024392 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+0x60e2 024394 setarg shutter_soft_swtich_power_off 
+0x60e3 024395 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+0x60e4 024397 jam 7 ,mem_version 
+0x60e5 024398 call le_modified_name_adv 
+0x60e6 024399 call shutter_init_param 
+0x60e7 024400 call keyscan_key_init 
+0x60e8 024401 call queue_init 
+0x60e9 024402 branch ui_led_init_global 
+:      024406 shutter_hart_swtich_power_on:
+0x60ea 024407 jam ui_button_gpio_disable ,mem_ui_button_gpio 
+0x60eb 024408 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
+0x60ec 024409 branch shutter_start_reconnect 
+:      024413 shutter_le_scale_lpm_lock:
+0x60ed 024414 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x60ee 024415 beq ss_state_power_off ,app_get_lpm_wake_lock 
+0x60ef 024416 call l2cap_malloc_get_full_map 
+0x60f0 024417 fetch 1 ,mem_used_map 
+0x60f1 024418 nbranch app_get_lpm_wake_lock ,blank 
+0x60f2 024419 branch app_put_lpm_wake_lock 
+:      024423 shutter_process_bb_event:
+0x60f3 024424 copy regc ,pdata 
+0x60f4 024427 beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
+0x60f5 024428 beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
+0x60f6 024429 beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
+0x60f7 024430 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
+0x60f8 024432 beq bt_evt_button_long_pressed ,ui_soft_switch_botton_long_press 
+0x60f9 024433 beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
+0x60fa 024434 beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
+0x60fb 024435 rtn 
+:      024440 ble_shutter_process_baseband_connect:
+0x60fc 024441 call shutter_stop_bluetooth_discovery 
+0x60fd 024442 setarg 0 
+0x60fe 024443 store 2 ,mem_ble_shutter_reconn_timer 
+0x60ff 024444 branch app_led_off 
+:      024446 ble_shutter_process_baseband_disconnect:
+0x6100 024447 call queue_init 
+0x6101 024448 jam 0 ,mem_ble_shutter_enable_notify 
+0x6102 024449 branch shutter_start_reconnect 
+:      024451 ble_shutter_process_reconnect_complete:
+0x6103 024452 call queue_init 
+0x6104 024453 jam 1 ,mem_ble_shutter_enable_notify 
+0x6105 024454 call shutter_dy_check_iphone 
+0x6106 024455 call app_lpm_mult_enable 
+0x6107 024456 nbranch ble_parameter_updata_response_ios ,blank 
+0x6108 024457 fetch 8 ,mem_ble_shutter_dy_interval_min_android 
+0x6109 024458 store 8 ,mem_le_interval_min 
+0x610a 024459 branch le_l2cap_tx_update_req 
+:      024462 ble_shutter_process_parse_connect_parameter_update_response:
+0x610b 024463 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x610c 024464 rtneq ble_signaling_connect_parameter_update_accepted 
+0x610d 024465 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x610e 024466 rtn blank 
+0x610f 024467 store 8 ,mem_le_interval_min 
+0x6110 024468 branch le_l2cap_tx_update_req 
+:      024471 shutter_process_soft_swtich_button_down:
+0x6111 024472 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x6112 024473 rtneq hard_switch 
+0x6113 024474 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x6114 024475 rtnne ss_state_power_on 
+0x6115 024476 call shutter_store_currenct_led_state 
+0x6116 024477 branch app_led_on 
+:      024479 shutter_store_currenct_led_state:
+0x6117 024480 jam 1 ,mem_shutter_soft_swtich_botton_down 
+0x6118 024481 arg 11 ,loopcnt 
+0x6119 024482 arg mem_shutter_soft_swtich_led_struct_temp ,contw 
+0x611a 024483 arg mem_shutter_led_struct_app_led ,contr 
+0x611b 024484 branch memcpy 
+:      024486 shutter_process_soft_swtich_button_up:
+0x611c 024487 fetch 1 ,mem_shutter_hard_soft_switch_case 
+0x611d 024488 rtneq hard_switch 
+0x611e 024489 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x611f 024490 beq ss_state_power_on ,shutter_load_currenct_led_state 
+0x6120 024491 branch ui_soft_switch_botton_up 
+:      024493 shutter_load_currenct_led_state:
+0x6121 024494 fetch 1 ,mem_shutter_soft_swtich_botton_down 
+0x6122 024495 rtnne 1 
+0x6123 024496 jam 0 ,mem_shutter_soft_swtich_botton_down 
+0x6124 024497 fetch 2 ,mem_ui_state_map 
+0x6125 024498 bbit1 ui_state_ble_connected ,app_led_off 
+0x6126 024499 arg 11 ,loopcnt 
+0x6127 024500 arg mem_shutter_soft_swtich_led_struct_temp ,contr 
+0x6128 024501 arg mem_shutter_led_struct_app_led ,contw 
+0x6129 024502 branch memcpy 
+:      024507 shutter_le_bb_event_timer:
+0x612a 024509 call shutter_check_sleep_timer 
+0x612b 024512 call shutter_check_power_off_timer 
+0x612c 024516 branch ble_shutter_reconn_timer 
+:      024520 shutter_check_sleep_timer:
+0x612d 024521 arg mem_shutter_sleep_timer ,regc 
+0x612e 024522 arg shutter_sleep_timeout ,regb 
+0x612f 024523 branch timer_single_step_2b 
+:      024524 shutter_sleep_timeout:
+0x6130 024525 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+0x6131 024526 call app_led_off 
+0x6132 024527 call shutter_disconnect_current_connection 
+0x6133 024528 branch shutter_wait_power_off 
+:      024531 shutter_check_power_off_timer:
+0x6134 024532 arg mem_shutter_power_off_timer ,regc 
+0x6135 024533 arg shutter_check_power_off_timeout ,regb 
+0x6136 024534 branch timer_single_step 
+:      024536 shutter_check_power_off_timeout:
+0x6137 024537 fetch 2 ,mem_ui_state_map 
+0x6138 024538 bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+0x6139 024539 fetch 1 ,mem_shutter_led_struct_app_led_type 
+0x613a 024540 beq ui_led_state_blink_start ,shutter_wait_power_off 
+0x613b 024541 beq ui_led_state_blink_lighting ,shutter_wait_power_off 
+0x613c 024542 beq ui_led_state_blink_darking ,shutter_wait_power_off 
+0x613d 024543 branch app_enter_hibernate 
+:      024547 ble_shutter_reconn_timer:
+0x613e 024548 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x613f 024549 rtnne ss_state_power_on 
+0x6140 024550 arg mem_ble_shutter_reconn_timer ,regc 
+0x6141 024551 arg shutter_start_bluetooth_discovery ,regb 
+0x6142 024552 branch timer_single_step_2b 
+:      024555 shutter_process_idle:
+0x6143 024556 call shutter_send_data_to_master 
+0x6144 024557 branch keyscan_key_process 
+:      024560 shutter_process_lpm_before:
+0x6145 024561 call gpio_set_before_lpm 
+0x6146 024562 branch keyscan_process_lpm_before 
+:      024564 shutter_le_before_hibernate:
+0x6147 024565 jam ui_button_gpio_disable ,mem_ui_button_gpio 
+0x6148 024566 call gpio_set_before_lpm 
+0x6149 024567 branch disable_authrom 
+:      024573 shutter_stop_bluetooth_discovery:
+:      024577 ble_shutter_stop_bluetooth_discovery:
+0x614a 024578 fetch 2 ,mem_ble_shutter_connect_timeout 
+0x614b 024579 store 2 ,mem_shutter_sleep_timeout 
+0x614c 024580 store 2 ,mem_shutter_sleep_timer 
+0x614d 024581 branch app_ble_stop_adv 
+:      024584 shutter_start_bluetooth_discovery:
+0x614e 024585 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x614f 024586 rtnne ss_state_power_on 
+:      024590 ble_shutter_start_discovery:
+0x6150 024591 fetch 2 ,mem_ui_state_map 
+0x6151 024592 rtnbit1 ui_state_ble_connected 
+0x6152 024593 fetch 2 ,mem_ble_shutter_discovery_timeout 
+0x6153 024594 store 2 ,mem_shutter_sleep_timeout 
+0x6154 024595 store 2 ,mem_shutter_sleep_timer 
+0x6155 024596 fetch 2 ,mem_ble_shutter_discovery_adv_interval 
+0x6156 024597 call shutter_ble_adv_interval_set 
+0x6157 024598 call app_led_start_blink 
+0x6158 024599 fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
+0x6159 024600 store 4 ,mem_shutter_led_struct_app_led_on_time 
+0x615a 024601 fetch 2 ,mem_ui_state_map 
+0x615b 024602 rtnbit1 ui_state_ble_adv 
+0x615c 024603 branch app_ble_start_adv 
+:      024605 shutter_soft_swtich_power_on:
+:      024606 shutter_start_reconnect:
+0x615d 024607 fetch 1 ,mem_shutter_soft_switch_power_state 
+0x615e 024608 rtnne ss_state_power_on 
+:      024612 ble_shutter_start_reconnect:
+0x615f 024613 fetch 2 ,mem_ble_shutter_reconn_timer 
+0x6160 024614 fetcht 2 ,mem_ble_shutter_reconn_timeout 
+0x6161 024615 storet 2 ,mem_ble_shutter_reconn_timer 
+0x6162 024616 nrtn blank 
+0x6163 024617 fetch 2 ,mem_ble_shutter_reconn_adv_interval 
+0x6164 024618 call shutter_ble_adv_interval_set 
+0x6165 024619 call app_led_start_blink 
+0x6166 024620 fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
+0x6167 024621 store 4 ,mem_shutter_led_struct_app_led_on_time 
+0x6168 024622 fetch 2 ,mem_ui_state_map 
+0x6169 024623 rtnbit1 ui_state_ble_adv 
+0x616a 024624 branch app_ble_start_adv 
+:      024626 shutter_disconnect_current_connection:
+0x616b 024627 fetch 2 ,mem_ui_state_map 
+0x616c 024628 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+0x616d 024629 branch shutter_stop_bluetooth_discovery 
+:      024633 shutter_check_data_enable:
+0x616e 024634 call disable_user 
+0x616f 024635 fetch 2 ,mem_ui_state_map 
+0x6170 024636 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
+0x6171 024637 rtn 
+:      024639 shutter_check_ble_data_enable:
+0x6172 024640 fetch 1 ,mem_ble_shutter_enable_notify 
+0x6173 024641 rtn blank 
+0x6174 024642 branch enable_user 
+:      024647 shutter_check_bluetooth_conn:
+0x6175 024648 call disable_user 
+0x6176 024649 fetch 2 ,mem_ui_state_map 
+0x6177 024650 rtnbit1 ui_state_ble_connected 
+0x6178 024651 branch enable_user 
+:      024655 shutter_change_bluetooth_status_bt_disconn:
+:      024659 ble_shutter_change_bluetooth_status_bt_disconn:
+0x6179 024660 branch shutter_start_reconnect 
+:      024664 shutter_check_send_data:
+0x617a 024665 disable user2 
+0x617b 024666 fetch 2 ,mem_shutter_sleep_timeout 
+0x617c 024667 store 2 ,mem_shutter_sleep_timer 
+0x617d 024669 call shutter_check_bluetooth_conn 
+0x617e 024670 branch shutter_change_bluetooth_status_bt_disconn ,user 
+0x617f 024672 call shutter_check_data_enable 
+0x6180 024673 nrtn user 
+0x6181 024674 branch enable_user2 
+:      024678 shutter_key_change:
+0x6182 024679 call shutter_check_send_data 
+0x6183 024680 nrtn user2 
+0x6184 024681 deposit rega 
+0x6185 024682 branch shutter_key_release ,blank 
+:      024683 shutter_key_press:
+0x6186 024684 call app_led_on 
+0x6187 024685 arg mem_key0_press ,regc 
+0x6188 024686 branch push_queue_press_or_release 
+:      024688 shutter_key_release:
+0x6189 024689 call app_led_off 
+0x618a 024690 arg mem_key0_release ,regc 
+:      024692 push_queue_press_or_release:
+0x618b 024693 arg max_queue_num ,pdata 
+0x618c 024694 imul32 queue ,pdata 
+0x618d 024695 iadd regc ,regc 
+:      024698 push_buffer_in_queue:
+0x618e 024699 ifetch 1 ,regc 
+0x618f 024700 rtn blank 
+0x6190 024701 call queue_push_one_byte 
+0x6191 024702 increase 1 ,regc 
+0x6192 024703 branch push_buffer_in_queue 
+:      024706 shutter_send_data_to_master:
+0x6193 024707 fetch 2 ,mem_ui_state_map 
+0x6194 024708 bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
+0x6195 024709 rtn 
+:      024711 pop_queue_to_ble_data:
+0x6196 024712 call le_fifo_check_nearly_full 
+0x6197 024713 nrtn blank 
+0x6198 024714 call queue_pop_one_byte 
+0x6199 024715 nrtn user 
+0x619a 024716 pincrease -1 
+0x619b 024717 mul32 pdata ,shutter_ble_data_buffer ,pdata 
+0x619c 024718 arg mem_ble_data_buffer1 ,temp 
+0x619d 024719 iadd temp ,contr 
+0x619e 024720 branch le_send_notify_from_list 
+:      024724 queue_push_one_byte:
+0x619f 024725 store 1 ,mem_pdatatemp 
+0x61a0 024726 arg mem_pdatatemp ,rega 
+0x61a1 024727 branch queue_push 
+:      024729 queue_pop_one_byte:
+0x61a2 024730 arg mem_pdatatemp ,rega 
+0x61a3 024731 call queue_pop 
+0x61a4 024732 nrtn user 
+0x61a5 024733 fetch 1 ,mem_pdatatemp 
+0x61a6 024734 rtn 
+:      024737 ble_shutter_receive_data:
+0x61a7 024738 fetch 2 ,mem_le_att_handle 
+0x61a8 024739 beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
+0x61a9 024740 rtn 
+:      024742 shutter_init_param:
+0x61aa 024743 jam 0x02 ,mem_shutter_power_off_timeout 
+0x61ab 024745 setarg 0x00200008 
+0x61ac 024746 store 4 ,mem_ble_shutter_interval_min 
+0x61ad 024747 setarg 0x012c0005 
+0x61ae 024748 istore 4 ,contw 
+0x61af 024751 jam 0x17 ,mem_le_local_mtu 
+0x61b0 024754 setarg 0x1b 
+0x61b1 024755 store 2 ,mem_le_pairing_handle 
+0x61b2 024756 branch le_set_fixed_ltk_justwork 
+:      024759 shutter_load_buffer_config_form_datarom:
+0x61b3 024761 arg ble_key_value_list_size ,loopcnt 
+0x61b4 024762 arg mem_ble_data_buffer1 ,contw 
+0x61b5 024763 arg ble_shutter_key_value_list_addr ,contr 
+0x61b6 024764 branch memcpy_fast 
+:      024766 shutter_soft_swtich_power_off:
+0x61b7 024767 arg 0 ,rega 
+0x61b8 024768 arg mem_shutter_power_off_led_style ,regc 
+0x61b9 024769 call ui_led_set_style_global 
+0x61ba 024770 call shutter_disconnect_current_connection 
+:      024771 shutter_wait_power_off:
+0x61bb 024772 fetch 1 ,mem_shutter_power_off_timeout 
+0x61bc 024773 store 1 ,mem_shutter_power_off_timer 
+0x61bd 024774 rtn 
+:      024778 ui_soft_swtich_init:
+0x61be 024779 setarg ss_state_power_up 
+0x61bf 024780 call ui_soft_swtich_init_power_on_time 
+0x61c0 024781 jam ui_button_state_up ,mem_ui_button_last_state 
+0x61c1 024782 call ui_button_init 
+0x61c2 024783 call ui_button_polling 
+:      024784 ui_soft_switch_first_power_on:
+0x61c3 024785 fetch 1 ,mem_shutter_soft_switch_first_power_on 
+0x61c4 024786 branch ui_soft_swtich_init_next ,blank 
+0x61c5 024787 fetch 1 ,core_lpm_isogate 
+0x61c6 024788 bbit1 cold_wake ,ui_soft_switch_power_on 
+:      024789 ui_soft_swtich_init_next:
+0x61c7 024790 fetch 2 ,mem_ui_state_map 
+0x61c8 024791 rtnbit1 ui_state_btn_down 
+0x61c9 024792 branch app_enter_hibernate 
+:      024794 ui_soft_swtich_init_power_on_time:
+0x61ca 024795 fetcht 2 ,mem_power_param_ptr 
+0x61cb 024796 istore 1 ,temp 
+0x61cc 024797 ifetch 1 ,contw 
+0x61cd 024798 store 1 ,mem_ui_button_timeout 
+0x61ce 024799 rtn 
+:      024802 ui_soft_switch_botton_up:
+0x61cf 024803 fetch 2 ,mem_power_param_ptr 
+0x61d0 024804 ifetch 1 ,pdata 
+0x61d1 024805 rtnne ss_state_power_up 
+0x61d2 024806 branch app_enter_hibernate 
+:      024809 ui_soft_switch_botton_long_press:
+0x61d3 024810 fetcht 2 ,mem_power_param_ptr 
+0x61d4 024811 ifetch 1 ,temp 
+0x61d5 024812 beq ss_state_power_on ,ui_soft_switch_power_off 
+:      024813 ui_soft_switch_power_on:
+0x61d6 024814 setarg ss_state_power_on 
+0x61d7 024815 fetcht 2 ,mem_power_param_ptr 
+0x61d8 024816 istore 1 ,temp 
+0x61d9 024817 add temp ,ss_power_off_time ,contr 
+0x61da 024818 ifetch 1 ,contr 
+0x61db 024819 istore 1 ,mem_ui_button_timeout 
+0x61dc 024820 ifetch 2 ,contr 
+0x61dd 024821 branch callback_func 
+:      024823 ui_soft_switch_power_off:
+0x61de 024824 setarg ss_state_power_off 
+0x61df 024825 call ui_soft_swtich_init_power_on_time 
+0x61e0 024826 add temp ,ss_power_off_cb ,contr 
+0x61e1 024827 ifetch 2 ,contr 
+0x61e2 024828 branch app_enter_hibernate ,blank 
+0x61e3 024829 branch callback_func 
+:      024834 shutter_ble_adv_interval_set:
+0x61e4 024835 store 2 ,mem_lpm_interval 
+0x61e5 024836 increase -4 ,pdata 
+0x61e6 024837 store 2 ,mem_le_adv_interval 
+0x61e7 024838 rtn 
+:      024840 le_send_notify_from_list:
+0x61e8 024841 ifetch 1 ,contr 
+0x61e9 024842 copy pdata ,rega 
+0x61ea 024843 ifetcht 2 ,contr 
+0x61eb 024844 call store_contr 
+0x61ec 024845 call le_att_malloc_tx_notify 
+0x61ed 024846 copy rega ,loopcnt 
+0x61ee 024847 call get_contr 
+0x61ef 024848 branch memcpy 
+:      024850 shutter_le_uuid_table_conf:
+0x61f0 024851 setarg ble_shutter_gatt_list_addr 
+0x61f1 024852 store 2 ,mem_ui_le_uuid_table 
+0x61f2 024853 rtn 
+:      024857 shutter_default_init:
+0x61f3 024858 fetch 2 ,mem_shutter_key_conf0_temp 
+0x61f4 024859 store 2 ,mem_shutter_key_conf0 
+0x61f5 024860 fetch 1 ,mem_shutter_led_struct_app_led_gpio_temp 
+0x61f6 024861 store 1 ,mem_shutter_led_struct_app_led_gpio 
+0x61f7 024862 store 1 ,mem_shutter_power_off_led_style_gpio 
+0x61f8 024863 fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+0x61f9 024864 store 1 ,mem_shutter_hard_soft_switch_case 
+0x61fa 024865 fetch 1 ,mem_shutter_soft_switch_button_gpio_temp 
+0x61fb 024866 store 1 ,mem_shutter_soft_switch_button_gpio 
+0x61fc 024868 setarg 0x0002 
+0x61fd 024869 store 2 ,mem_key0_press 
+0x61fe 024870 setarg 0x0001 
+0x61ff 024871 store 2 ,mem_key1_press 
+0x6200 024872 setarg 0x0006 
+0x6201 024873 store 2 ,mem_key0_release 
+0x6202 024874 store 2 ,mem_key1_release 
+0x6203 024875 setarg mem_shutter_soft_switch_power_state 
+0x6204 024876 store 2 ,mem_power_param_ptr 
+0x6205 024877 setarg 0x201400 
+0x6206 024878 store 3 ,mem_shutter_soft_switch_power_state 
+0x6207 024879 jam 0x01 ,mem_lpm_mode 
+0x6208 024880 setarg 0x0100 
+0x6209 024881 store 2 ,mem_lpm_interval 
+0x620a 024882 jam 0x08 ,mem_lpm_overhead 
+0x620b 024883 jam 0x05 ,mem_lpm_mult 
+0x620c 024884 jam 0x02 ,mem_lpm_mult_timeout 
+0x620d 024885 setarg 0x0096 
+0x620e 024886 store 2 ,mem_ble_shutter_reconn_blink_on_time 
+0x620f 024887 istore 2 ,contw 
+0x6210 024888 setarg 0x0296 
+0x6211 024889 store 2 ,mem_ble_shutter_discovery_blink_on_time 
+0x6212 024890 istore 2 ,contw 
+0x6213 024891 setsect 0 ,0x10 
+0x6214 024892 setsect 1 ,0x8008 
+0x6215 024893 setsect 2 ,0x2c000 
+0x6216 024894 setsect 3 ,0x04 
+0x6217 024895 store 8 ,mem_ble_shutter_interval_min_new 
+0x6218 024896 jam 0x01 ,mem_ui_led_struct_num 
+0x6219 024897 setarg mem_shutter_led_struct_app_led 
+0x621a 024898 store 2 ,mem_ui_led_struct_ptr 
+0x621b 024899 setarg 0x0000 
+0x621c 024900 store 2 ,mem_shutter_led_struct_app_led 
+0x621d 024901 setsect 0 ,0x1a0 
+0x621e 024902 setsect 1 ,0x68 
+0x621f 024903 setsect 2 ,0x00 
+0x6220 024904 setsect 3 ,0x00 
+0x6221 024905 store 8 ,mem_shutter_led_struct_app_led_on_time 
+0x6222 024906 setarg 0x0301 
+0x6223 024907 store 2 ,mem_shutter_power_off_led_style 
+0x6224 024908 setsect 0 ,0x1a0 
+0x6225 024909 setsect 1 ,0xe8 
+0x6226 024910 setsect 2 ,0x00 
+0x6227 024911 setsect 3 ,0x00 
+0x6228 024912 store 8 ,mem_shutter_power_off_led_style_on_time 
+0x6229 024913 setarg 0x000e 
+0x622a 024914 store 2 ,mem_ble_shutter_reconn_adv_interval 
+0x622b 024915 setarg 0x0140 
+0x622c 024916 store 2 ,mem_ble_shutter_discovery_adv_interval 
+0x622d 024917 store 2 ,mem_le_adv_interval 
+0x622e 024918 setarg 0x0050 
+0x622f 024919 store 2 ,mem_ble_shutter_reconn_timeout 
+0x6230 024920 jam 0x07 ,mem_le_adv_channel_map 
+0x6231 024921 jam 0x00 ,mem_le_adv_enable 
+0x6232 024922 setsect 0 ,0xfb 
+0x6233 024923 setsect 1 ,0x2c212 
+0x6234 024924 setsect 2 ,0x800f 
+0x6235 024925 setsect 3 ,0x21 
+0x6236 024926 store 8 ,mem_local_rx_max_octets 
+0x6237 024927 setsect 0 ,0x0bb8 
+0x6238 024928 setsect 1 ,0x02ee 
+0x6239 024929 store 4 ,mem_ble_shutter_discovery_timeout 
+0x623a 024930 setarg mem_queue_each_size 
+0x623b 024931 store 2 ,mem_queue_ptr 
+0x623c 024932 setarg 0x2001 
+0x623d 024933 store 2 ,mem_queue_each_size 
+0x623e 024934 jam 0x1f ,mem_le_adv_data_len 
+0x623f 024935 setsect 0 ,0x10102 
+0x6240 024936 setsect 1 ,0x80c1 
+0x6241 024937 setsect 2 ,0x18120 
+0x6242 024938 setsect 3 ,0x640c 
+0x6243 024939 store 9 ,mem_le_adv_data 
+0x6244 024940 setsect 0 ,0x3c1 
+0x6245 024941 istore 2 ,contw 
+0x6246 024942 jam 0x1f ,mem_le_scan_data_len 
+0x6247 024943 setsect 0 ,0x2090d 
+0x6248 024944 setsect 1 ,0x34c15 
+0x6249 024945 setsect 2 ,0x28532 
+0x624a 024946 setsect 3 ,0x1d1d5 
+0x624b 024947 store 9 ,mem_le_scan_data 
+0x624c 024948 setsect 0 ,0x26574 
+0x624d 024949 setsect 1 ,0x1c 
+0x624e 024950 istore 3 ,contw 
+0x624f 024951 setarg mem_shutter_keyscan 
+0x6250 024952 store 2 ,mem_keyscan_ptr 
+0x6251 024953 jam 0x02 ,mem_shutter_key_num 
+0x6252 024954 setarg mem_shutter_nv_data 
+0x6253 024955 store 2 ,mem_nv_data_ptr 
+0x6254 024956 jam 0x05 ,mem_nv_data_number 
+0x6255 024957 fetch 1 ,mem_shutter_dy_conf 
+0x6256 024958 beq shutter_type ,shutter_le_uuid_table_conf 
+0x6257 024959 beq shutter_dy_type ,shutter_dy_le_uuid_table_conf 
+0x6258 024960 rtn 
+:      024972 shutter_dy_6_key_conf:
+0x6259 024974 fetch shutter_six_key ,mem_shutter_dy_key_conf 
+0x625a 024975 store shutter_six_key ,mem_shutter_key_conf0 
+0x625b 024976 jam shutter_six_key ,mem_shutter_key_num 
+0x625c 024977 setarg mem_shutter_key_num 
+0x625d 024978 store 2 ,mem_keyscan_ptr 
+0x625e 024979 rtn 
+:      024981 shutter_dy_7_key_conf:
+0x625f 024983 fetch shutter_seven_key ,mem_shutter_dy_key_conf 
+0x6260 024984 store shutter_seven_key ,mem_shutter_key_conf0 
+0x6261 024985 jam shutter_seven_key ,mem_shutter_key_num 
+0x6262 024986 setarg mem_shutter_key_num 
+0x6263 024987 store 2 ,mem_keyscan_ptr 
+0x6264 024988 rtn 
+:      024990 shutter_dy_8_key_conf:
+0x6265 024992 fetch shutter_eight_key ,mem_shutter_dy_key_conf 
+0x6266 024993 store shutter_eight_key ,mem_shutter_key_conf0 
+0x6267 024994 jam shutter_eight_key ,mem_shutter_key_num 
+0x6268 024995 setarg mem_shutter_key_num 
+0x6269 024996 store 2 ,mem_keyscan_ptr 
+0x626a 024997 rtn 
+:      024999 shutter_dy_key_conf:
+0x626b 025000 fetch 1 ,mem_shutter_key_num_conf 
+0x626c 025001 beq shutter_six_key ,shutter_dy_6_key_conf 
+0x626d 025002 beq shutter_seven_key ,shutter_dy_7_key_conf 
+0x626e 025003 beq shutter_eight_key ,shutter_dy_8_key_conf 
+0x626f 025004 rtn 
+:      025006 shutter_dy_adv_conf:
+0x6270 025007 bpatch patch17_7 ,mem_patch17 
+0x6271 025009 fetch 8 ,mem_shutter_ble_discovery_time_conf 
+0x6272 025010 store 8 ,mem_ble_shutter_discovery_timeout 
+0x6273 025011 setarg 0x0096 
+0x6274 025012 store 2 ,mem_ble_shutter_reconn_timeout 
+0x6275 025014 fetch 7 ,mem_shutter_led_on_light_dark_led_conf 
+0x6276 025015 store 7 ,mem_shutter_led_struct_app_led 
+0x6277 025016 fetch 7 ,mem_shutter_led_off_light_dark_led_conf 
+0x6278 025017 store 7 ,mem_shutter_power_off_led_style 
+0x6279 025019 fetch 4 ,mem_shutter_reconn_blink_on_time_conf 
+0x627a 025020 store 4 ,mem_ble_shutter_reconn_blink_on_time 
+0x627b 025021 fetch 4 ,mem_shutter_discovery_blink_on_time_conf 
+0x627c 025022 store 4 ,mem_ble_shutter_discovery_blink_on_time 
+0x627d 025024 setarg 0x000e 
+0x627e 025025 store 2 ,mem_ble_shutter_reconn_adv_interval 
+0x627f 025026 setarg 0x0140 
+0x6280 025027 store 2 ,mem_ble_shutter_discovery_adv_interval 
+0x6281 025028 store 2 ,mem_le_adv_interval 
+0x6282 025034 rtn 
+:      025036 shutter_dy_le_uuid_table_conf:
+0x6283 025037 setarg mem_shutter_le_uuid_sup 
+0x6284 025038 store 2 ,mem_ui_le_uuid_table 
+0x6285 025039 rtn 
+:      025041 shutter_dy_init:
+0x6286 025042 call enable_authrom 
+0x6287 025043 rtn wake 
+0x6288 025045 call shutter_dy_key_conf 
+0x6289 025046 call shutter_dy_adv_conf 
+0x628a 025048 setarg shutter_dy_process_idle 
+0x628b 025049 store 2 ,mem_cb_idle_process 
+0x628c 025051 setarg shutter_dy_process_bb_event 
+0x628d 025052 store 2 ,mem_cb_bb_event_process 
+0x628e 025054 setarg ble_shutter_dy_receive_data 
+0x628f 025055 store 2 ,mem_cb_att_write 
+0x6290 025057 setarg shutter_dy_le_bb_event_timer 
+0x6291 025058 store 2 ,mem_cb_event_timer 
+0x6292 025060 setarg shutter_dy_key_change 
+0x6293 025061 store 2 ,mem_cb_shutter_keycan 
+0x6294 025063 setarg shutter_dy_le_before_hibernate 
+0x6295 025064 store 2 ,mem_cb_before_hibernate 
+0x6296 025066 setarg shutter_dy_process_lpm_before 
+0x6297 025067 store 2 ,mem_cb_before_lpm 
+0x6298 025069 setarg shutter_soft_swtich_power_on 
+0x6299 025070 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+0x629a 025072 setarg shutter_soft_swtich_power_off 
+0x629b 025073 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+0x629c 025075 jam 7 ,mem_version 
+0x629d 025076 call le_modified_name_adv 
+0x629e 025077 call shutter_init_param 
+0x629f 025078 call keyscan_key_init 
+0x62a0 025079 call queue_init 
+0x62a1 025080 call ui_led_init_global 
+0x62a2 025082 fetch 2 ,mem_shutter_le_pairing_handle 
+0x62a3 025083 store 2 ,mem_le_pairing_handle 
+0x62a4 025084 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x62a5 025085 store 8 ,mem_ble_shutter_interval_min 
+0x62a6 025086 call shutter_dy_iphone_every_move_max_set 
+0x62a7 025087 bpatch patch18_0 ,mem_patch18 
+0x62a8 025088 branch shutter_power_switch 
+:      025090 shutter_dy_process_lpm_before:
+0x62a9 025091 call gpio_set_before_lpm 
+0x62aa 025092 branch keyscan_process_lpm_before 
+:      025094 shutter_dy_le_before_hibernate:
+0x62ab 025095 jam ui_button_gpio_disable ,mem_ui_button_gpio 
+0x62ac 025096 call gpio_set_before_lpm 
+0x62ad 025097 call dy_set_key_gpio_before_hiernate 
+0x62ae 025098 branch disable_authrom 
+:      025100 dy_set_key_gpio_before_hiernate:
+0x62af 025101 fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+0x62b0 025102 rtn blank 
+0x62b1 025103 fetch 1 ,mem_shutter_key_num_conf 
+0x62b2 025104 copy pdata ,loopcnt 
+0x62b3 025105 arg mem_shutter_key_conf0 ,rega 
+:      025106 dy_set_key_gpio_loop:
+0x62b4 025107 ifetch 1 ,rega 
+0x62b5 025108 fetcht 1 ,mem_shutter_soft_switch_button_gpio_temp 
+0x62b6 025109 isub temp ,null 
+0x62b7 025110 branch dy_set_key_gpio_loop_end ,zero 
+0x62b8 025111 sub pdata ,0xff ,null 
+0x62b9 025112 branch dy_set_key_gpio_loop_end ,zero 
+0x62ba 025113 copy pdata ,temp 
+0x62bb 025114 call dy_shutter_gpio_config_input_pd 
+:      025115 dy_set_key_gpio_loop_end:
+0x62bc 025116 increase 1 ,rega 
+0x62bd 025117 loop dy_set_key_gpio_loop 
+0x62be 025118 rtn 
+:      025120 dy_shutter_gpio_config_input_pd:
+0x62bf 025121 set1 gpio_active_bit ,temp 
+0x62c0 025122 branch gpio_config_input 
+:      025124 shutter_dy_process_idle:
+0x62c1 025125 call shutter_dy_shutter_send_data_to_master 
+0x62c2 025126 arg key_scan_timer ,queue 
+0x62c3 025127 call timer_check 
+0x62c4 025128 nrtn blank 
+0x62c5 025129 setarg 0x20 
+0x62c6 025130 arg key_scan_timer ,queue 
+0x62c7 025131 call timer_init 
+0x62c8 025132 disable user 
+0x62c9 025133 call keyscan_process_lpm_before 
+0x62ca 025134 branch shutter_dy_keyscan_key_process 
+:      025136 shutter_dy_iphone_every_move_max_set:
+0x62cb 025137 setarg 0x2b 
+0x62cc 025138 mul32 pdata ,every_payload_len ,pdata 
+0x62cd 025139 arg mem_shutter_mousekey_value_list ,temp 
+0x62ce 025140 iadd temp ,rega 
+0x62cf 025141 increase 3 ,rega 
+0x62d0 025142 arg iphone_once_max_move_value ,temp 
+0x62d1 025143 istoret 1 ,rega 
+0x62d2 025144 increase 11 ,rega 
+0x62d3 025145 arg 0xfff ,pdata 
+0x62d4 025146 isub temp ,pdata 
+0x62d5 025147 lshift4 pdata ,pdata 
+0x62d6 025148 istore 2 ,rega 
+0x62d7 025149 rtn 
+:      025151 shutter_dy_shutter_send_data_to_master:
+0x62d8 025152 fetch 2 ,mem_ui_state_map 
+0x62d9 025153 bbit1 ui_state_ble_connected ,shutter_dy_pop_queue_to_ble_data 
+0x62da 025154 arg mem_queue_curr_num ,contw 
+0x62db 025155 arg 35 ,loopcnt 
+0x62dc 025156 branch clear_mem 
+:      025158 shutter_dy_pop_queue_to_ble_data:
+0x62dd 025159 call le_fifo_check_nearly_full 
+0x62de 025160 nrtn blank 
+0x62df 025161 call queue_empty 
+0x62e0 025162 rtn blank 
+0x62e1 025163 fetcht 4 ,mem_key_send_clk 
+0x62e2 025164 copy clkn_bt ,pdata 
+0x62e3 025165 isub temp ,temp 
+0x62e4 025166 rtn zero 
+0x62e5 025167 nbranch shutter_dy_pop_queue_to_ble_data2 ,positive 
+0x62e6 025168 fetch 1 ,mem_send_data_delay 
+0x62e7 025169 isub temp ,null 
+0x62e8 025170 rtn positive 
+:      025171 shutter_dy_pop_queue_to_ble_data2:
+0x62e9 025172 copy clkn_bt ,pdata 
+0x62ea 025173 store 4 ,mem_key_send_clk 
+0x62eb 025174 call queue_pop_one_byte 
+0x62ec 025175 nrtn user 
+0x62ed 025176 pincrease -1 
+0x62ee 025177 mul32 pdata ,10 ,pdata 
+0x62ef 025178 arg mem_shutter_mousekey_value_list ,temp 
+0x62f0 025179 iadd temp ,contr 
+0x62f1 025180 branch le_send_notify_from_list 
+:      025183 shutter_dy_le_bb_event_timer:
+0x62f2 025184 call shutter_dy_shutter_1s_timer 
+0x62f3 025185 call shutter_dy_link_key_loop_timer 
+0x62f4 025186 call shutter_dy_long_key_volume_timer 
+0x62f5 025187 call shutter_dy_iphone_move_mid_timer 
+0x62f6 025188 call shutter_dy_clear_key_state_timer 
+0x62f7 025189 call shutter_check_sleep_timer 
+0x62f8 025190 branch shutter_dy_check_power_off_timer 
+:      025192 shutter_dy_iphone_move_mid_timer:
+0x62f9 025193 arg mem_shutter_move_mid_timer ,regc 
+0x62fa 025194 arg shutter_dy_iphone_move_mid_timeout ,regb 
+0x62fb 025195 branch timer_single_step 
+:      025197 shutter_dy_iphone_move_mid_timeout:
+0x62fc 025198 call queue_empty 
+0x62fd 025199 nrtn blank 
+0x62fe 025200 fetch 2 ,mem_key_value_xmem 
+0x62ff 025201 nrtn blank 
+:      025202 shutter_dy_iphone_move_mid:
+0x6300 025203 call shutter_dy_check_iphone 
+0x6301 025204 rtn blank 
+0x6302 025205 copy queue ,pdata 
+0x6303 025206 compare 0x04 ,pdata ,0x07 
+0x6304 025207 branch shutter_dy_iphone_up_mid ,true 
+0x6305 025209 copy queue ,pdata 
+0x6306 025210 compare 0x01 ,pdata ,0x07 
+0x6307 025211 branch shutter_dy_iphone_like_mid ,true 
+0x6308 025212 arg mem_shutter_iphone_move_mid ,regc 
+0x6309 025213 branch push_buffer_in_queue 
+:      025215 shutter_dy_iphone_up_mid:
+0x630a 025216 arg mem_shutter_iphone_up_mid ,regc 
+0x630b 025217 branch push_buffer_in_queue 
+:      025219 shutter_dy_iphone_like_mid:
+0x630c 025220 arg mem_shutter_iphone_like_mid ,regc 
+0x630d 025221 branch push_buffer_in_queue 
+:      025223 shutter_dy_clear_key_state_timer:
+0x630e 025224 arg mem_shutter_like_timeout ,regc 
+0x630f 025225 arg shutter_dy_clear_key_state_timeout ,regb 
+0x6310 025226 branch timer_single_step 
+:      025228 shutter_dy_clear_key_state_timeout:
+0x6311 025229 arg shutter_key_conf_sate_bytes ,loopcnt 
+0x6312 025230 arg mem_shutter_key_state1 ,contw 
+0x6313 025231 branch clear_mem 
+:      025234 shutter_dy_check_power_off_timer:
+0x6314 025235 arg mem_shutter_power_off_timer ,regc 
+0x6315 025236 arg shutter_dy_check_power_off_timeout ,regb 
+0x6316 025237 branch timer_single_step 
+:      025238 shutter_dy_check_power_off_timeout:
+0x6317 025239 fetch 2 ,mem_ui_state_map 
+0x6318 025240 bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+0x6319 025241 branch app_enter_hibernate 
+:      025243 shutter_dy_process_bb_event:
+0x631a 025244 copy regc ,pdata 
+0x631b 025245 beq bt_evt_le_connected ,ble_shutter_dy_process_baseband_connect 
+0x631c 025246 beq bt_evt_le_disconnected ,ble_shutter_dy_process_baseband_disconnect 
+0x631d 025247 beq bt_evt_le_pairing_success ,ble_shutter_dy_pairing_success 
+0x631e 025248 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_dy_shutter_process_parse_connect_parameter_update_response 
+0x631f 025249 rtneq bt_evt_le_parse_conn_papa_update_rsp 
+0x6320 025250 beq bt_evt_le_start_enc ,shutter_dy_le_find_service_hand_by_uuid 
+0x6321 025251 branch shutter_process_bb_event 
+:      025253 ble_dy_shutter_process_parse_connect_parameter_update_response:
+0x6322 025254 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+0x6323 025255 rtneq ble_signaling_connect_parameter_update_accepted 
+0x6324 025256 fetch 8 ,mem_ble_shutter_interval_min_new 
+0x6325 025257 rtn blank 
+0x6326 025258 call shutter_dy_check_iphone 
+0x6327 025259 nbranch ble_parameter_updata_response_ios ,blank 
+0x6328 025260 fetch 8 ,mem_ble_shutter_dy_interval_min_android 
+0x6329 025261 store 8 ,mem_le_interval_min 
+0x632a 025262 branch le_l2cap_tx_update_req 
+:      025264 ble_parameter_updata_response_ios:
+0x632b 025265 fetch 8 ,mem_ble_shutter_dy_interval_min_ios 
+0x632c 025266 store 8 ,mem_le_interval_min 
+0x632d 025267 branch le_l2cap_tx_update_req 
+:      025269 ble_shutter_dy_pairing_success:
+0x632e 025270 jam 1 ,mem_shutter_pairing_success 
+0x632f 025271 call shutter_dy_clear_move_config 
+0x6330 025273 fetch 2 ,mem_android_initial_move_x 
+0x6331 025274 store 2 ,mem_shutter_move_data_x 
+0x6332 025276 fetcht 2 ,mem_android_initial_move_y 
+0x6333 025277 setarg 0xfff 
+0x6334 025278 isub temp ,pdata 
+0x6335 025279 store 2 ,mem_shutter_move_data_y 
+0x6336 025280 rtn 
+:      025282 ble_shutter_dy_process_baseband_disconnect:
+0x6337 025283 jam 0 ,mem_shutter_le_conned 
+0x6338 025284 jam 0 ,mem_shutter_pairing_success 
+0x6339 025285 call shutter_dy_move_mode_disable 
+0x633a 025286 call shutter_dy_over_clear 
+0x633b 025287 branch ble_shutter_process_baseband_disconnect 
+:      025289 ble_shutter_dy_process_baseband_connect:
+0x633c 025290 copy clkn_bt ,pdata 
+0x633d 025291 store 4 ,mem_key_send_clk 
+0x633e 025292 call shutter_dy_remote_not_iphone 
+0x633f 025293 branch ble_shutter_process_baseband_connect 
+:      025296 shutter_dy_check_send_data:
+0x6340 025297 disable user2 
+0x6341 025298 fetch 2 ,mem_shutter_sleep_timeout 
+0x6342 025299 store 2 ,mem_shutter_sleep_timer 
+0x6343 025300 call shutter_check_bluetooth_conn 
+0x6344 025301 branch shutter_change_bluetooth_status_bt_disconn ,user 
+0x6345 025302 call shutter_check_data_enable 
+0x6346 025303 nrtn user 
+0x6347 025304 branch enable_user2 
+:      025306 shutter_dy_over_clear:
+0x6348 025307 jam 0 ,mem_last_press_key_value 
+0x6349 025308 rtn 
+:      025310 shutter_dy_key_value_filter:
+0x634a 025311 copy queue ,pdata 
+0x634b 025312 rtnne shutter_like_key_num 
+0x634c 025313 branch shutter_dy_key_press_next 
+:      025315 shutter_dy_key_change:
+0x634d 025316 call shutter_dy_check_send_data 
+0x634e 025317 nrtn user2 
+0x634f 025318 deposit rega 
+0x6350 025319 branch shutter_dy_shutter_key_release ,blank 
+:      025320 shutter_dy_key_press:
+0x6351 025321 bpatch patch18_1 ,mem_patch18 
+0x6352 025322 fetch 1 ,mem_shutter_link_loop_flag 
+0x6353 025323 nbranch shutter_dy_key_value_filter ,blank 
+:      025324 shutter_dy_key_press_next:
+0x6354 025325 jam 1 ,mem_shutter_key_pressed 
+0x6355 025326 call app_led_on 
+0x6356 025327 call shutter_dy_key_press_clk 
+0x6357 025328 call shutter_dy_jude_queue_size 
+0x6358 025329 branch shutter_dy_over_clear ,positive 
+0x6359 025330 copy queue ,pdata 
+0x635a 025331 fetcht 1 ,mem_last_press_key_value 
+0x635b 025332 isub temp ,null 
+0x635c 025333 ncall shutter_dy_iphone_check_move_mid ,zero 
+0x635d 025334 copy queue ,pdata 
+0x635e 025335 store 1 ,mem_last_press_key_value 
+0x635f 025336 fetcht 1 ,mem_move_mode_key_index 
+0x6360 025337 isub temp ,null 
+0x6361 025338 branch shutter_dy_key_move_to_specify_location ,zero 
+0x6362 025339 fetch 1 ,mem_move_mode_trigger_enable 
+0x6363 025340 nbranch shutter_dy_move_set ,blank 
+:      025341 shutter_dy_page_set:
+0x6364 025342 call shutter_dy_le_get_press_ptr 
+0x6365 025343 arg max_queue_new_press ,pdata 
+0x6366 025344 branch shutter_dy_push_queue_press_or_release 
+:      025346 shutter_dy_move_set:
+0x6367 025347 call shutter_dy_jude_clear_move_config 
+0x6368 025348 copy queue ,pdata 
+0x6369 025349 beq shutter_like_key_num ,shutter_dy_page_set 
+0x636a 025350 call shutter_dy_check_move_data 
+0x636b 025351 branch shutter_dy_move_to_specify_location 
+:      025353 shutter_dy_key_move_to_specify_location:
+0x636c 025354 jam 1 ,mem_shutter_first_move 
+0x636d 025355 branch shutter_dy_move_to_specify_location 
+:      025357 shutter_dy_iphone_check_move_mid:
+0x636e 025358 bpatch patch18_2 ,mem_patch18 
+0x636f 025359 fetch 1 ,mem_move_mode_trigger_enable 
+0x6370 025360 branch shutter_dy_iphone_move_mid ,blank 
+0x6371 025361 copy queue ,pdata 
+0x6372 025362 beq shutter_like_key_num ,shutter_dy_iphone_move_mid 
+0x6373 025363 rtn 
+:      025364 shutter_dy_key_press_clk:
+0x6374 025365 arg shutter_key_conf_sate_bytes ,pdata 
+0x6375 025366 imul32 queue ,pdata 
+0x6376 025367 arg mem_shutter_key_state0 ,regc 
+0x6377 025368 iadd regc ,regc 
+0x6378 025369 copy clkn_bt ,pdata 
+0x6379 025370 istore key_state_press_clk_length ,regc 
+0x637a 025371 increase key_state_press_count_offset ,regc 
+0x637b 025372 ifetch 1 ,regc 
+0x637c 025373 increase 1 ,pdata 
+0x637d 025374 istore 1 ,regc 
+0x637e 025375 rtn 
+:      025376 shutter_dy_shutter_key_release:
+0x637f 025377 bpatch patch18_3 ,mem_patch18 
+0x6380 025378 fetch 1 ,mem_move_mode_trigger_enable 
+0x6381 025379 call shutter_dy_key_release_led ,blank 
+:      025380 shutter_dy_shutter_key_release_time:
+0x6382 025381 arg shutter_key_conf_sate_bytes ,pdata 
+0x6383 025382 imul32 queue ,pdata 
+0x6384 025383 arg mem_shutter_key_state0 ,regc 
+0x6385 025384 iadd regc ,regc 
+0x6386 025385 ifetcht 4 ,regc 
+0x6387 025386 sub temp ,0 ,null 
+0x6388 025387 rtn zero 
+0x6389 025388 copy clkn_bt ,pdata 
+0x638a 025389 isub temp ,temp 
+0x638b 025390 ncall ui_timer_timeout ,positive 
+0x638c 025391 add regc ,key_state_longpress_offset ,contr 
+0x638d 025392 ifetch 1 ,contr 
+0x638e 025393 nbranch shutter_dy_push_queue_long_release ,blank 
+0x638f 025394 increase key_state_release_clk_offset ,regc 
+0x6390 025395 copy clkn_bt ,pdata 
+0x6391 025396 istore key_state_release_clk_length ,regc 
+0x6392 025397 rtn 
+:      025399 shutter_dy_key_release_led:
+0x6393 025400 fetch 1 ,mem_shutter_link_loop_flag 
+0x6394 025401 nbranch app_led_on ,blank 
+0x6395 025402 branch app_led_off 
+:      025404 shutter_dy_push_queue_release:
+0x6396 025405 add regc ,4 ,contr 
+0x6397 025406 ifetch 1 ,contr 
+0x6398 025407 branch shutter_dy_push_queue_release1 
+:      025409 shutter_dy_push_queue_release1:
+0x6399 025410 call shutter_clear_dy_key_state 
+0x639a 025411 fetch 1 ,mem_move_mode_trigger_enable 
+0x639b 025412 nbranch shutter_dy_move_mode_queue_release ,blank 
+:      025413 shutter_dy_push_queue_release1_next:
+0x639c 025414 call shutter_dy_jude_queue_size 
+0x639d 025415 branch shutter_dy_over_clear ,positive 
+0x639e 025416 call shutter_dy_le_get_release_ptr 
+0x639f 025417 copy queue ,pdata 
+0x63a0 025418 beq shutter_photo_key_num ,shutter_dy_le_get_release_ptr_volume 
+0x63a1 025419 arg max_queue_num_release ,pdata 
+:      025420 shutter_dy_push_queue_press_or_release:
+0x63a2 025421 imul32 queue ,pdata 
+0x63a3 025422 iadd regc ,regc 
+0x63a4 025423 branch push_buffer_in_queue 
+:      025425 shutter_dy_move_mode_queue_release:
+0x63a5 025426 copy queue ,pdata 
+0x63a6 025427 beq shutter_like_key_num ,shutter_dy_push_queue_release1_next 
+0x63a7 025428 beq shutter_photo_key_num ,shutter_dy_push_queue_release1_next 
+0x63a8 025429 rtn 
+:      025431 shutter_dy_jude_queue_size:
+0x63a9 025432 call queue_get_size 
+0x63aa 025433 ifetcht 1 ,contr 
+0x63ab 025434 isub temp ,pdata 
+0x63ac 025435 sub pdata ,max_queue_new_press ,null 
+0x63ad 025436 rtn 
+:      025438 shutter_dy_push_queue_long_release:
+0x63ae 025439 jam 1 ,mem_shutter_long_key_released_flag 
+0x63af 025440 call shutter_clear_dy_key_state 
+0x63b0 025441 call shutter_dy_clear_volume_timer 
+0x63b1 025442 arg mem_key0_long_release ,regc 
+0x63b2 025443 arg max_queue_num_long_release ,pdata 
+0x63b3 025444 branch shutter_dy_push_queue_press_or_release 
+:      025446 shutter_clear_dy_key_state:
+0x63b4 025447 arg shutter_key_conf_sate_bytes ,loopcnt 
+0x63b5 025448 copy regc ,contw 
+0x63b6 025449 branch clear_mem 
+:      025451 shutter_dy_keyscan_key_process:
+0x63b7 025452 fetch 2 ,mem_key_value_xmem 
+0x63b8 025453 store 2 ,mem_key_value_retention 
+0x63b9 025454 call shutter_dy_keyscan_key_process_next 
+0x63ba 025455 fetch 2 ,mem_key_value_retention 
+0x63bb 025456 store 2 ,mem_key_value_xmem 
+0x63bc 025458 arg 0 ,queue 
+0x63bd 025459 fetch 1 ,mem_shutter_key_num 
+0x63be 025460 copy pdata ,loopcnt 
+0x63bf 025461 arg mem_shutter_key_state0 ,regc 
+:      025462 shutter_dy_keyscan_key_check_release_loop:
+0x63c0 025463 copy loopcnt ,pdata 
+0x63c1 025464 store 2 ,mem_temp 
+0x63c2 025465 copy regc ,pdata 
+0x63c3 025466 store 2 ,mem_regc 
+0x63c4 025467 copy queue ,pdata 
+0x63c5 025468 store 2 ,mem_temp + 2 
+0x63c6 025469 call shutter_dy_keyscan_key_check_release 
+0x63c7 025471 fetch 2 ,mem_regc 
+0x63c8 025472 copy pdata ,regc 
+0x63c9 025473 fetch 2 ,mem_temp + 2 
+0x63ca 025474 copy pdata ,queue 
+0x63cb 025475 call shutter_dy_keyscan_key_check_long_press 
+0x63cc 025477 fetch 2 ,mem_temp + 2 
+0x63cd 025478 add pdata ,1 ,queue 
+0x63ce 025479 fetch 2 ,mem_regc 
+0x63cf 025480 add pdata ,shutter_key_conf_sate_bytes ,regc 
+0x63d0 025481 fetch 2 ,mem_temp 
+0x63d1 025482 copy pdata ,loopcnt 
+0x63d2 025483 loop shutter_dy_keyscan_key_check_release_loop 
+0x63d3 025484 rtn 
+:      025486 shutter_dy_keyscan_key_check_long_press:
+0x63d4 025487 ifetch key_state_press_clk_length ,regc 
+0x63d5 025488 rtn blank 
+0x63d6 025489 copy pdata ,temp 
+0x63d7 025490 copy clkn_bt ,pdata 
+0x63d8 025491 isub temp ,temp 
+0x63d9 025492 nrtn positive 
+0x63da 025493 setarg 2500 
+0x63db 025494 isub temp ,null 
+0x63dc 025495 rtn positive 
+0x63dd 025496 copy clkn_bt ,pdata 
+0x63de 025497 istore 4 ,regc 
+0x63df 025498 increase key_state_longpress_offset ,regc 
+0x63e0 025499 setarg 1 
+0x63e1 025500 istore key_state_longpress_length ,regc 
+0x63e2 025501 fetch 1 ,mem_shutter_long_key_released_flag 
+0x63e3 025502 rtn blank 
+0x63e4 025503 jam 0 ,mem_shutter_long_key_released_flag 
+0x63e5 025504 bpatch patch18_4 ,mem_patch18 
+0x63e6 025505 call shutter_dy_long_key_function 
+0x63e7 025506 fetch 1 ,mem_move_mode_set 
+0x63e8 025507 beq move_combine_key ,shutter_dy_key_long_press_set_key_normal 
+0x63e9 025508 beq move_single_key ,shutter_dy_key_long_press_set_move_trigger 
+0x63ea 025509 rtn 
+:      025511 shutter_dy_key_long_press_set_key_normal:
+0x63eb 025512 call shutter_dy_long_press_android_or_ios 
+0x63ec 025513 arg max_queue_num_long ,pdata 
+0x63ed 025514 branch shutter_dy_push_queue_press_or_release 
+:      025516 shutter_dy_key_long_press_set_move_trigger:
+0x63ee 025517 copy queue ,pdata 
+0x63ef 025518 fetcht 1 ,mem_move_mode_key_index 
+0x63f0 025519 isub temp ,null 
+0x63f1 025520 nbranch shutter_dy_key_long_press_set_key_normal ,zero 
+0x63f2 025521 fetch 1 ,mem_move_mode_trigger_enable 
+0x63f3 025522 setflip 0 ,pdata 
+0x63f4 025523 store 1 ,mem_move_mode_trigger_enable 
+0x63f5 025524 nrtn blank 
+:      025525 shutter_dy_move_mode_disable:
+0x63f6 025526 jam 0 ,mem_move_mode_trigger_enable 
+0x63f7 025527 branch app_led_off 
+:      025529 shutter_dy_long_press_android_or_ios:
+0x63f8 025530 arg mem_key0_long_press ,regc 
+0x63f9 025531 call shutter_dy_check_iphone 
+0x63fa 025532 rtn blank 
+0x63fb 025533 arg mem_key0_long_press_i ,regc 
+0x63fc 025534 rtn 
+:      025536 shutter_dy_keyscan_key_check_release:
+0x63fd 025537 add regc ,key_state_release_clk_offset ,regb 
+0x63fe 025538 ifetch key_state_release_clk_length ,regb 
+0x63ff 025539 rtn blank 
+0x6400 025540 copy pdata ,temp 
+0x6401 025541 copy clkn_bt ,pdata 
+0x6402 025542 isub temp ,temp 
+0x6403 025543 ncall ui_timer_timeout ,positive 
+0x6404 025544 setarg 1000 
+0x6405 025545 isub temp ,null 
+0x6406 025546 branch shutter_dy_push_queue_release 
+:      025547 shutter_dy_keyscan_key_process_next:
+0x6407 025548 fetch 2 ,mem_key_num_ptr 
+0x6408 025549 ifetch 1 ,pdata 
+0x6409 025550 rtn blank 
+0x640a 025552 setarg 0 
+0x640b 025553 store 2 ,mem_key_value_temp 
+0x640c 025554 call keyscan_scan_key 
+0x640d 025555 nbranch lpm_button_clean_wake_lock ,user 
+0x640e 025556 call lpm_button_get_wake_lock 
+0x640f 025557 disable user 
+0x6410 025558 fetch 1 ,mem_le_adv_enable 
+0x6411 025559 nrtn blank 
+0x6412 025560 bpatch patch18_5 ,mem_patch18 
+0x6413 025561 fetch 1 ,mem_move_mode_set 
+0x6414 025562 beq move_single_key ,shutter_dy_skip_check_combine_key 
+0x6415 025563 call shutter_dy_check_combine_key_release 
+0x6416 025564 call shutter_dy_check_combine_key 
+0x6417 025565 rtn user 
+:      025566 shutter_dy_skip_check_combine_key:
+0x6418 025567 call shutter_dy_single_key_led 
+0x6419 025568 fetch 2 ,mem_key_value_temp 
+0x641a 025569 store 2 ,mem_key_value_temp4 
+0x641b 025570 jam 0 ,mem_key_value_temp6 
+0x641c 025571 force 0 ,queue 
+0x641d 025572 branch keyscan_key_lp1 
+:      025574 shutter_dy_single_key_led:
+0x641e 025575 fetch 1 ,mem_last_press_key_value 
+0x641f 025576 fetcht 1 ,mem_move_mode_key_index 
+0x6420 025577 isub temp ,null 
+0x6421 025578 branch app_led_on ,zero 
+0x6422 025579 fetch 1 ,mem_move_mode_trigger_enable 
+0x6423 025580 nbranch app_led_off ,blank 
+0x6424 025581 rtn 
+:      025583 shutter_dy_check_combine_key:
+0x6425 025584 arg 0 ,queue 
+:      025585 shutter_dy_check_combine_key_loop:
+0x6426 025586 arg mem_combine_key0 ,regb 
+0x6427 025587 arg 2 ,pdata 
+0x6428 025588 imul32 queue ,pdata 
+0x6429 025589 iadd regb ,regb 
+0x642a 025590 ifetch 2 ,regb 
+0x642b 025592 rtn blank 
+0x642c 025593 fetcht 2 ,mem_key_value_temp 
+0x642d 025594 ixor temp ,null 
+0x642e 025595 branch shutter_dy_check_combine_key_parse ,zero 
+0x642f 025596 increase 1 ,queue 
+0x6430 025597 branch shutter_dy_check_combine_key_loop 
+:      025599 shutter_dy_check_combine_key_parse:
+0x6431 025600 store 2 ,mem_combine_key_state0 
+0x6432 025601 call app_led_on 
+0x6433 025602 arg mem_combine_key0_press ,regc 
+0x6434 025603 arg max_queue_num_combinekey ,pdata 
+0x6435 025604 imul32 queue ,pdata 
+0x6436 025605 iadd regc ,regc 
+0x6437 025606 call shutter_dy_push_buffer_in_queue 
+0x6438 025607 branch shutter_dy_combine_key_enableuser 
+:      025609 shutter_dy_push_buffer_in_queue:
+0x6439 025610 call shutter_dy_jude_clear_move_config 
+0x643a 025611 ifetch 1 ,regc 
+0x643b 025612 rtn blank 
+0x643c 025613 call shutter_dy_check_move_data 
+:      025614 shutter_dy_move_to_specify_location:
+0x643d 025615 call shutter_dy_jude_clear_move_config 
+0x643e 025616 call shutter_dy_check_iphone 
+0x643f 025617 nbranch shutter_dy_move_ios_to_specify_location ,blank 
+0x6440 025618 arg 0x1c ,pdata 
+0x6441 025619 call queue_push_one_byte 
+0x6442 025620 arg 0x1d ,pdata 
+0x6443 025621 branch queue_push_one_byte 
+:      025623 shutter_dy_move_ios_to_specify_location:
+0x6444 025624 call shutter_dy_move_down_left_corner 
+0x6445 025625 call shutter_dy_move_x_max 
+0x6446 025626 call shutter_dy_move_y_max 
+0x6447 025627 arg 0x29 ,pdata 
+0x6448 025628 branch queue_push_one_byte 
+:      025630 shutter_dy_move_down_left_corner_count_set:
+0x6449 025631 fetcht 1 ,mem_shutter_back_count 
+0x644a 025632 call shutter_dy_check_iphone 
+0x644b 025633 rtn blank 
+0x644c 025634 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+0x644d 025635 increase 1 ,temp 
+0x644e 025636 fetch 1 ,mem_shutter_first_move 
+0x644f 025637 rtn blank 
+0x6450 025638 fetcht 1 ,mem_shutter_back_count 
+0x6451 025639 jam 0 ,mem_shutter_first_move 
+0x6452 025640 rtn 
+:      025642 shutter_dy_move_down_left_corner:
+0x6453 025643 call shutter_dy_move_down_left_corner_count_set 
+0x6454 025644 copy temp ,pdata 
+0x6455 025645 rtn blank 
+0x6456 025646 store 1 ,mem_shutter_back_count_cache 
+:      025647 shutter_dy_move_down_left_corner_loop:
+0x6457 025648 arg 0x2b ,pdata 
+0x6458 025649 call queue_push_one_byte 
+0x6459 025650 fetch 1 ,mem_shutter_back_count_cache 
+0x645a 025651 increase -1 ,pdata 
+0x645b 025652 store 1 ,mem_shutter_back_count_cache 
+0x645c 025653 rtn blank 
+0x645d 025654 branch shutter_dy_move_down_left_corner_loop 
+:      025656 shutter_dy_move_x_max:
+0x645e 025657 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x645f 025658 rtn blank 
+0x6460 025659 store 1 ,mem_shutter_iphone_beyond_x_cache 
+:      025660 shutter_dy_move_x_max_number:
+0x6461 025661 arg 0x2c ,pdata 
+0x6462 025662 call queue_push_one_byte 
+0x6463 025663 fetch 1 ,mem_shutter_iphone_beyond_x_cache 
+0x6464 025664 increase -1 ,pdata 
+0x6465 025665 store 1 ,mem_shutter_iphone_beyond_x_cache 
+0x6466 025666 rtn blank 
+0x6467 025667 branch shutter_dy_move_x_max_number 
+:      025669 shutter_dy_move_y_max:
+0x6468 025670 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x6469 025671 rtn blank 
+0x646a 025672 store 1 ,mem_shutter_iphone_beyond_y_cache 
+:      025673 shutter_dy_move_y_max_number:
+0x646b 025674 arg 0x2d ,pdata 
+0x646c 025675 call queue_push_one_byte 
+0x646d 025676 fetch 1 ,mem_shutter_iphone_beyond_y_cache 
+0x646e 025677 increase -1 ,pdata 
+0x646f 025678 store 1 ,mem_shutter_iphone_beyond_y_cache 
+0x6470 025679 rtn blank 
+0x6471 025680 branch shutter_dy_move_y_max_number 
+:      025682 shutter_dy_check_combine_key_release:
+0x6472 025683 fetch 2 ,mem_combine_key_state0 
+0x6473 025684 rtn blank 
+0x6474 025685 fetcht 2 ,mem_key_value_temp 
+0x6475 025686 sub temp ,0 ,null 
+0x6476 025687 branch shutter_dy_check_combine_key_release_all ,zero 
+0x6477 025688 isub temp ,null 
+0x6478 025689 rtn zero 
+0x6479 025690 storet 2 ,mem_combine_key_state0 
+0x647a 025691 fetch 2 ,mem_combine_key_release_value 
+0x647b 025692 isub temp ,null 
+0x647c 025693 call app_led_off ,zero 
+:      025694 shutter_dy_combine_key_enableuser:
+0x647d 025695 fetch 2 ,mem_key_value_temp 
+0x647e 025696 store 2 ,mem_key_value_retention 
+0x647f 025697 branch enable_user 
+:      025698 shutter_dy_check_combine_key_release_all:
+0x6480 025699 jam 1 ,mem_shutter_long_key_released_flag 
+0x6481 025700 call app_led_off 
+0x6482 025701 arg mem_combine_key_release ,regc 
+0x6483 025702 call shutter_dy_push_buffer_in_queue 
+0x6484 025703 setarg 0 
+0x6485 025704 store 2 ,mem_combine_key_state0 
+0x6486 025705 jam 50 ,mem_shutter_1s_timer 
+0x6487 025706 call shutter_dy_combine_key_enableuser 
+0x6488 025707 fetch 1 ,mem_shutter_key_num 
+0x6489 025708 mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
+0x648a 025709 arg mem_shutter_key_state0 ,contw 
+0x648b 025710 branch clear_mem 
+:      025711 shutter_dy_check_move_data:
+0x648c 025712 bpatch patch18_6 ,mem_patch18 
+0x648d 025713 fetch 1 ,mem_move_mode_set 
+0x648e 025714 beq move_single_key ,shutter_dy_check_move_data_single_key 
+0x648f 025715 beq move_combine_key ,shutter_dy_check_move_data_combine_key 
+0x6490 025716 rtn 
+:      025717 shutter_dy_check_move_data_single_key:
+0x6491 025718 copy queue ,pdata 
+0x6492 025719 beq shutter_left_key_num ,shutter_dy_move_left 
+0x6493 025720 beq shutter_right_key_num ,shutter_dy_move_right 
+0x6494 025721 beq shutter_up_key_num ,shutter_dy_move_up 
+0x6495 025722 beq shutter_down_key_num ,shutter_dy_move_down 
+0x6496 025723 rtn 
+:      025724 shutter_dy_check_move_data_combine_key:
+0x6497 025725 ifetch 1 ,regc 
+0x6498 025726 beq 0x01 ,shutter_dy_move_left 
+0x6499 025727 beq 0x02 ,shutter_dy_move_right 
+0x649a 025728 beq 0x03 ,shutter_dy_move_up 
+0x649b 025729 beq 0x04 ,shutter_dy_move_down 
+0x649c 025730 beq 0x05 ,shutter_dy_get_move_data 
+0x649d 025731 rtn 
+:      025733 shutter_dy_get_move_data:
+0x649e 025734 call shutter_dy_check_iphone 
+0x649f 025735 nbranch shutter_dy_get_move_data_iphone ,blank 
+0x64a0 025736 setarg 0x1b 
+0x64a1 025737 mul32 pdata ,every_payload_len ,pdata 
+0x64a2 025738 arg mem_shutter_mousekey_value_list ,temp 
+0x64a3 025739 iadd temp ,contw 
+0x64a4 025740 increase 5 ,contw 
+0x64a5 025741 fetch 4 ,mem_shutter_move_data 
+0x64a6 025742 istore 4 ,contw 
+0x64a7 025743 rtn 
+:      025745 shutter_dy_get_move_data_iphone:
+0x64a8 025746 setarg 0x29 
+0x64a9 025747 mul32 pdata ,every_payload_len ,pdata 
+0x64aa 025748 arg mem_shutter_mousekey_value_list ,temp 
+0x64ab 025749 iadd temp ,contw 
+0x64ac 025750 increase 3 ,contw 
+0x64ad 025751 fetch 2 ,mem_shutter_move_data_x 
+0x64ae 025752 istore 3 ,contw 
+0x64af 025753 increase 7 ,contw 
+0x64b0 025754 fetch 2 ,mem_shutter_move_data_y 
+0x64b1 025755 lshift4 pdata ,pdata 
+0x64b2 025756 lshift8 pdata ,pdata 
+0x64b3 025757 istore 3 ,contw 
+0x64b4 025758 rtn 
+:      025760 shutter_dy_move_x_empty_check:
+0x64b5 025761 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x64b6 025762 rtn blank 
+0x64b7 025763 increase -1 ,pdata 
+0x64b8 025764 store 1 ,mem_shutter_iphone_beyond_x_count 
+0x64b9 025765 arg iphone_once_max_move_value ,pdata 
+0x64ba 025766 rtn 
+:      025767 shutter_dy_every_move_size_set:
+0x64bb 025768 arg android_every_move_size ,temp 
+0x64bc 025769 call shutter_dy_check_iphone 
+0x64bd 025770 rtn blank 
+0x64be 025771 arg iphone_every_move_size ,temp 
+0x64bf 025772 rtn 
+:      025773 shutter_dy_move_left:
+0x64c0 025774 call shutter_dy_every_move_size_set 
+0x64c1 025775 fetch 2 ,mem_shutter_move_data_x 
+0x64c2 025776 isub temp ,null 
+0x64c3 025777 ncall shutter_dy_move_x_empty_check ,positive 
+0x64c4 025778 nrtn positive 
+0x64c5 025779 isub temp ,pdata 
+:      025780 shutter_dy_move_store_x:
+0x64c6 025781 store 2 ,mem_shutter_move_data_x 
+:      025782 shutter_dy_move_data_store:
+0x64c7 025783 bpatch patch18_7 ,mem_patch18 
+0x64c8 025784 call shutter_dy_check_iphone 
+0x64c9 025785 branch shutter_dy_move_android_data_store ,blank 
+0x64ca 025787 fetch 2 ,mem_shutter_move_data_x 
+0x64cb 025788 fetcht 2 ,mem_shutter_move_data_y 
+0x64cc 025789 lshift8 temp ,temp 
+0x64cd 025790 lshift4 temp ,temp 
+0x64ce 025791 iadd temp ,pdata 
+0x64cf 025792 store 3 ,mem_shutter_move_data 
+0x64d0 025793 call shutter_dy_get_ios_move_data 
+0x64d1 025794 branch shutter_dy_move_ios_release_data 
+:      025796 shutter_dy_get_ios_move_data:
+0x64d2 025797 setarg 0x28 
+0x64d3 025798 mul32 pdata ,every_payload_len ,pdata 
+0x64d4 025799 arg mem_shutter_mousekey_value_list ,temp 
+0x64d5 025800 iadd temp ,contw 
+0x64d6 025801 increase 3 ,contw 
+0x64d7 025802 fetch 3 ,mem_shutter_move_data 
+0x64d8 025803 istore 3 ,contw 
+0x64d9 025804 rtn 
+:      025806 shutter_dy_move_ios_release_data:
+0x64da 025807 setarg 0x29 
+0x64db 025808 mul32 pdata ,every_payload_len ,pdata 
+0x64dc 025809 arg mem_shutter_mousekey_value_list ,temp 
+0x64dd 025810 iadd temp ,contw 
+0x64de 025811 increase 3 ,contw 
+0x64df 025812 fetch 3 ,mem_shutter_move_data 
+0x64e0 025813 istore 3 ,contw 
+0x64e1 025814 rtn 
+:      025816 shutter_dy_move_android_data_store:
+0x64e2 025817 fetch 2 ,mem_shutter_move_data_x 
+0x64e3 025818 fetcht 2 ,mem_shutter_move_data_y 
+0x64e4 025819 lshift16 temp ,temp 
+0x64e5 025820 iadd temp ,pdata 
+0x64e6 025821 store 4 ,mem_shutter_move_data 
+0x64e7 025822 call shutter_dy_move_android_release_data 
+0x64e8 025823 branch shutter_dy_data_android_xy_data 
+:      025825 shutter_dy_move_android_release_data:
+0x64e9 025826 setarg 0x1b 
+0x64ea 025827 mul32 pdata ,every_payload_len ,pdata 
+0x64eb 025828 arg mem_shutter_mousekey_value_list ,temp 
+0x64ec 025829 iadd temp ,contw 
+0x64ed 025830 increase 5 ,contw 
+0x64ee 025831 fetch 4 ,mem_shutter_move_data 
+0x64ef 025832 istore 4 ,contw 
+0x64f0 025833 rtn 
+:      025835 shutter_dy_data_android_xy_data:
+0x64f1 025836 setarg 0x1c 
+0x64f2 025837 mul32 pdata ,every_payload_len ,pdata 
+0x64f3 025838 arg mem_shutter_mousekey_value_list ,temp 
+0x64f4 025839 iadd temp ,contw 
+0x64f5 025840 increase 5 ,contw 
+0x64f6 025841 fetch 4 ,mem_shutter_move_data 
+0x64f7 025842 istore 4 ,contw 
+0x64f8 025843 rtn 
+:      025845 shutter_dy_move_x_check_max:
+0x64f9 025846 fetch 2 ,mem_shutter_move_data_x 
+0x64fa 025847 arg iphone_once_max_move_value ,temp 
+0x64fb 025848 isub temp ,temp 
+0x64fc 025849 nrtn positive 
+0x64fd 025850 copy temp ,pdata 
+0x64fe 025851 fetcht 1 ,mem_shutter_iphone_beyond_x_count 
+0x64ff 025852 sub temp ,0x03 ,null 
+0x6500 025853 branch shutter_dy_clear_move_x ,zero 
+0x6501 025854 increase 1 ,temp 
+0x6502 025855 storet 1 ,mem_shutter_iphone_beyond_x_count 
+0x6503 025856 branch shutter_dy_move_store_x 
+:      025857 shutter_dy_clear_move_x:
+0x6504 025858 jam 0 ,mem_shutter_iphone_beyond_x_count 
+0x6505 025859 arg 0 ,pdata 
+0x6506 025860 branch shutter_dy_move_store_x 
+:      025861 shutter_dy_move_right:
+0x6507 025862 call shutter_dy_check_iphone 
+0x6508 025863 ncall shutter_dy_move_x_check_max ,blank 
+0x6509 025864 call shutter_dy_every_move_size_set 
+0x650a 025865 fetch 2 ,mem_shutter_move_data_x 
+:      025866 shutter_dy_move_right_next:
+0x650b 025867 iadd temp ,pdata 
+0x650c 025868 arg 0xfff ,temp 
+0x650d 025869 call ceiling 
+0x650e 025870 branch shutter_dy_move_store_x 
+:      025872 shutter_dy_move_up:
+0x650f 025873 call shutter_dy_check_iphone 
+0x6510 025874 branch shutter_dy_dnroid_up_check_y ,blank 
+:      025875 shutter_dy_move_y_check_max:
+0x6511 025876 call shutter_dy_every_move_size_set 
+0x6512 025877 fetch 2 ,mem_shutter_move_data_y 
+0x6513 025878 isub temp ,pdata 
+0x6514 025879 store 2 ,mem_shutter_move_data_y 
+0x6515 025880 fetcht 2 ,mem_shutter_move_data_y 
+0x6516 025881 setarg 0xfff 
+0x6517 025882 isub temp ,pdata 
+0x6518 025883 arg iphone_once_max_move_value ,temp 
+0x6519 025884 isub temp ,temp 
+0x651a 025885 nbranch shutter_dy_move_data_store ,positive 
+0x651b 025886 setarg 0xfff 
+0x651c 025887 isub temp ,pdata 
+0x651d 025888 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+0x651e 025889 sub temp ,0x05 ,null 
+0x651f 025890 branch shutter_dy_clear_move_y ,zero 
+0x6520 025891 increase 1 ,temp 
+0x6521 025892 storet 1 ,mem_shutter_iphone_beyond_y_count 
+0x6522 025893 branch shutter_dy_move_store_y 
+:      025895 shutter_dy_dnroid_up_check_y:
+0x6523 025896 call shutter_dy_every_move_size_set 
+0x6524 025897 fetch 2 ,mem_shutter_move_data_y 
+0x6525 025898 isub temp ,null 
+0x6526 025899 nrtn positive 
+0x6527 025900 isub temp ,pdata 
+0x6528 025901 store 2 ,mem_shutter_move_data_y 
+0x6529 025902 branch shutter_dy_move_data_store 
+:      025905 shutter_dy_clear_move_y:
+0x652a 025906 jam 0 ,mem_shutter_iphone_beyond_y_count 
+:      025907 shutter_dy_android_move_y_empty_check:
+0x652b 025908 setarg 0xfff 
+0x652c 025909 branch shutter_dy_move_store_y 
+:      025911 shutter_dy_move_y_empty_check:
+0x652d 025912 call shutter_dy_check_iphone 
+0x652e 025913 branch shutter_dy_android_move_y_empty_check ,blank 
+0x652f 025914 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x6530 025915 branch shutter_dy_android_move_y_empty_check ,blank 
+0x6531 025916 increase -1 ,pdata 
+0x6532 025917 store 1 ,mem_shutter_iphone_beyond_y_count 
+0x6533 025918 setarg 0xffff 
+0x6534 025919 arg iphone_once_max_move_value ,temp 
+0x6535 025920 isub temp ,pdata 
+0x6536 025921 iadd rega ,pdata 
+:      025922 shutter_dy_move_store_y:
+0x6537 025923 store 2 ,mem_shutter_move_data_y 
+0x6538 025924 branch shutter_dy_move_data_store 
+:      025926 shutter_dy_move_down:
+0x6539 025927 call shutter_dy_check_iphone 
+0x653a 025928 branch shutter_dy_move_android_down ,blank 
+:      025929 shutter_dy_move_down_next:
+0x653b 025930 call shutter_dy_every_move_size_set 
+0x653c 025931 fetch 2 ,mem_shutter_move_data_y 
+0x653d 025932 iadd temp ,pdata 
+0x653e 025933 arg 0xfff ,temp 
+0x653f 025934 isub temp ,rega 
+0x6540 025935 call shutter_dy_move_y_empty_check ,positive 
+0x6541 025936 branch shutter_dy_move_store_y 
+:      025938 shutter_dy_move_android_down:
+0x6542 025939 call shutter_dy_every_move_size_set 
+0x6543 025940 fetch 2 ,mem_shutter_move_data_y 
+0x6544 025941 iadd temp ,pdata 
+0x6545 025942 arg 0xfff ,temp 
+0x6546 025943 call ceiling 
+0x6547 025944 branch shutter_dy_move_store_y 
+:      025946 ble_shutter_dy_receive_data:
+0x6548 025947 fetch 2 ,mem_le_att_handle 
+0x6549 025948 beq gatt_keyboard_write_handle_new ,ble_shutter_process_reconnect_complete 
+0x654a 025949 rtn 
+:      025951 shutter_dy_le_find_service_hand_by_uuid:
+0x654b 025952 arg 23 ,rega 
+0x654c 025953 arg le_l2cap_cid_att ,regb 
+0x654d 025954 call le_fifo_malloc_tx_l2cap 
+0x654e 025955 setarg attop_find_by_type_value_request 
+0x654f 025956 istore 1 ,contw 
+0x6550 025957 setarg 0x0001 
+0x6551 025958 istore 2 ,contw 
+0x6552 025959 setarg 0xffff 
+0x6553 025960 istore 2 ,contw 
+0x6554 025961 setarg 0x2800 
+0x6555 025962 istore 2 ,contw 
+0x6556 025963 arg mem_dy_le_search_service_uuid ,contr 
+0x6557 025964 branch memcpy16 
+:      025967 shutter_dy_le_parse_att:
+0x6558 025968 bpatch patch19_0 ,mem_patch19 
+0x6559 025969 copy rega ,contr 
+0x655a 025970 ifetch 3 ,contr 
+0x655b 025971 store 3 ,mem_le_att_opcode 
+0x655c 025972 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
+0x655d 025973 beq attop_error_response ,shutter_dy_le_parse_error_rsp 
+0x655e 025974 beq attop_read_request ,shutter_dy_le_parse_att_read_request 
+0x655f 025975 beq attop_read_blob_request ,shutter_dy_le_parse_att_read_blob_request 
+0x6560 025976 branch le_parse_att2 
+:      025978 shutter_dy_le_parse_att_read_blob_request:
+0x6561 025979 ifetch 2 ,contr 
+0x6562 025980 store 2 ,mem_le_att_offset 
+0x6563 025981 iforce rega 
+0x6564 025982 fetcht 2 ,mem_le_att_handle 
+0x6565 025983 fetch 2 ,mem_le_pairing_handle 
+0x6566 025984 isub temp ,null 
+0x6567 025985 nbranch le_send_att_read_blob_response ,zero 
+0x6568 025986 call shutter_dy_check_iphone 
+0x6569 025987 nbranch shutter_dy_le_parse_att_read_blob_request_ios ,blank 
+0x656a 025988 fetcht 2 ,mem_shutter_le_map_len_android 
+0x656b 025989 branch shutter_dy_le_parse_att_read_blob_request2 
+:      025991 shutter_dy_le_parse_att_read_blob_request_ios:
+0x656c 025992 fetcht 2 ,mem_shutter_le_map_len_ios 
+:      025993 shutter_dy_le_parse_att_read_blob_request2:
+0x656d 025994 arg mem_shutter_le_hid_map ,contr 
+0x656e 025995 call store_contr 
+0x656f 025996 copy temp ,pdata 
+0x6570 025997 isub rega ,pdata 
+0x6571 025998 nbranch le_send_att_error_response_notfound ,positive 
+0x6572 025999 increase 1 ,pdata 
+0x6573 026000 sub pdata ,23 ,null 
+0x6574 026001 branch le_send_att_read_blob_response_less ,positive 
+0x6575 026002 force 23 ,pdata 
+0x6576 026003 branch le_send_att_read_blob_response_less 
+:      026005 shutter_dy_le_parse_att_read_request:
+0x6577 026006 fetcht 2 ,mem_le_att_handle 
+0x6578 026007 fetch 1 ,mem_le_configuration 
+0x6579 026008 bbit1 bit_ble_read_auth ,shutter_dy_le_send_att_read_response_check_auth 
+0x657a 026009 branch le_send_att_read_response 
+:      026010 shutter_dy_le_send_att_read_response_check_auth:
+0x657b 026011 fetch 2 ,mem_le_pairing_handle 
+0x657c 026012 isub temp ,null 
+0x657d 026013 nbranch le_send_att_read_response ,zero 
+0x657e 026014 call le_check_encrypt_state 
+0x657f 026015 nbranch shutter_dy_le_send_att_read_response ,user 
+0x6580 026016 branch le_send_att_read_response_error_insufficient_auth 
+:      026018 shutter_dy_le_send_att_read_response:
+0x6581 026019 fetch 2 ,mem_le_pairing_handle 
+0x6582 026020 isub temp ,null 
+0x6583 026021 nbranch le_send_att_read_response ,zero 
+0x6584 026022 arg mem_shutter_le_hid_map ,contr 
+0x6585 026023 force 23 ,pdata 
+0x6586 026024 branch le_send_att_read_response_less 
+:      026026 shutter_dy_le_parse_att_find_by_type_value_rsp:
+:      026027 shutter_dy_le_remote_iphone:
+0x6587 026028 bpatch patch19_1 ,mem_patch19 
+0x6588 026029 jam 5 ,mem_shutter_back_count 
+0x6589 026030 jam 1 ,mem_iphone_flag 
+0x658a 026031 jam 1 ,mem_last_shutter_le_iphone_flag 
+0x658b 026032 jam 240 ,mem_send_data_delay 
+0x658c 026033 jam 10 ,mem_shutter_move_mid_timer 
+0x658d 026034 jam 1 ,mem_shutter_first_move 
+0x658e 026035 call shutter_dy_load_move_config_info 
+0x658f 026036 fetch 1 ,mem_shutter_pairing_success 
+0x6590 026037 rtn blank 
+0x6591 026038 call shutter_dy_clear_move_config 
+0x6592 026039 arg iphone_once_max_move_value ,temp 
+0x6593 026041 fetch 2 ,mem_iphone_initial_move_x 
+0x6594 026042 arg mem_shutter_move_data_x ,rega 
+0x6595 026043 arg mem_shutter_iphone_beyond_x_count ,regb 
+0x6596 026044 call shutter_dy_iphone_move_initial_set 
+0x6597 026045 arg iphone_once_max_move_value ,temp 
+0x6598 026047 fetch 2 ,mem_iphone_initial_move_y 
+0x6599 026048 arg mem_shutter_move_data_y ,rega 
+0x659a 026049 arg mem_shutter_iphone_beyond_y_count ,regb 
+0x659b 026050 call shutter_dy_iphone_move_initial_set 
+0x659c 026051 setarg 0xfff 
+0x659d 026052 fetcht 2 ,mem_shutter_move_data_y 
+0x659e 026053 isub temp ,pdata 
+0x659f 026054 store 2 ,mem_shutter_move_data_y 
+0x65a0 026055 rtn 
+:      026057 shutter_dy_iphone_move_initial_set:
+0x65a1 026058 idiv temp 
+0x65a2 026059 call wait_div_end 
+0x65a3 026060 quotient pdata 
+0x65a4 026061 remainder temp 
+0x65a5 026062 istore 1 ,regb 
+0x65a6 026063 istoret 2 ,rega 
+0x65a7 026064 rtn 
+:      026065 shutter_dy_le_parse_error_rsp:
+0x65a8 026066 increase -2 ,contr 
+0x65a9 026067 ifetch 1 ,contr 
+0x65aa 026068 beq attop_find_by_type_value_request ,shutter_dy_not_iphone_read_conf 
+0x65ab 026069 rtn 
+:      026070 shutter_dy_remote_not_iphone:
+0x65ac 026071 jam 1 ,mem_shutter_back_count 
+0x65ad 026072 jam 0 ,mem_iphone_flag 
+0x65ae 026073 jam 0 ,mem_last_shutter_le_iphone_flag 
+0x65af 026074 jam 10 ,mem_send_data_delay 
+0x65b0 026075 rtn 
+:      026077 shutter_dy_not_iphone_read_conf:
+0x65b1 026078 call shutter_dy_remote_not_iphone 
+0x65b2 026079 branch shutter_dy_load_move_config_info 
+:      026081 shutter_dy_check_iphone:
+0x65b3 026082 fetch 1 ,mem_iphone_flag 
+0x65b4 026083 rtn 
+:      026086 shutter_dy_le_get_press_ptr:
+0x65b5 026087 arg mem_dy_key0_press ,regc 
+0x65b6 026088 call shutter_dy_check_iphone 
+0x65b7 026089 rtn blank 
+0x65b8 026090 jam 120 ,mem_send_data_delay 
+0x65b9 026091 arg mem_key0_press_i ,regc 
+0x65ba 026092 rtn 
+:      026093 shutter_dy_le_get_release_ptr:
+:      026094 shutter_dy_le_get_release_ptr_set:
+0x65bb 026095 arg mem_key0_release_new ,regc 
+0x65bc 026096 call shutter_dy_check_iphone 
+0x65bd 026097 rtn blank 
+0x65be 026098 arg mem_key0_release_new_i ,regc 
+0x65bf 026099 jam 12 ,mem_send_data_delay 
+0x65c0 026100 copy queue ,pdata 
+0x65c1 026101 rtneq shutter_like_key_num 
+0x65c2 026102 rtn 
+:      026103 shutter_dy_le_get_release_ptr_volume:
+0x65c3 026104 bpatch patch19_2 ,mem_patch19 
+0x65c4 026105 fetch 1 ,mem_key3_press_count 
+0x65c5 026106 setflip 0 ,pdata 
+0x65c6 026107 store 1 ,mem_key3_press_count 
+0x65c7 026108 beq 0 ,shutter_dy_le_get_release_ptr_set_volume_inc 
+0x65c8 026109 beq 1 ,shutter_dy_le_get_release_ptr_set_volume_dec 
+0x65c9 026110 rtn 
+:      026111 shutter_dy_le_get_release_ptr_set_volume_dec:
+0x65ca 026112 call shutter_dy_le_get_vol_dec_ptr 
+0x65cb 026113 branch push_buffer_in_queue 
+:      026114 shutter_dy_le_get_release_ptr_set_volume_inc:
+0x65cc 026115 call shutter_dy_le_get_vol_inc_ptr 
+0x65cd 026116 branch push_buffer_in_queue 
+:      026117 shutter_dy_le_get_vol_inc_ptr:
+0x65ce 026118 arg mem_key3_release_new ,regc 
+0x65cf 026119 call shutter_dy_check_iphone 
+0x65d0 026120 rtn blank 
+0x65d1 026121 arg mem_key3_release_new_i ,regc 
+0x65d2 026122 rtn 
+:      026123 shutter_dy_le_get_vol_dec_ptr:
+0x65d3 026124 arg mem_key3_release_new_t ,regc 
+0x65d4 026125 call shutter_dy_check_iphone 
+0x65d5 026126 rtn blank 
+0x65d6 026127 arg mem_key3_release_new_i_t ,regc 
+0x65d7 026128 rtn 
+:      026131 shutter_dy_long_key_function:
+0x65d8 026132 copy queue ,pdata 
+0x65d9 026133 beq shutter_like_key_num ,shutter_dy_link_key_long_press 
+0x65da 026134 beq shutter_down_key_num ,shutter_dy_loop_send_volume_dec_page 
+0x65db 026135 beq shutter_up_key_num ,shutter_dy_loop_send_volume_inc_page 
+0x65dc 026136 rtn 
+:      026139 shutter_dy_long_key_volume_timer:
+0x65dd 026140 arg mem_shutter_volume_timer ,regc 
+0x65de 026141 arg shutter_dy_long_key_volume_timeout ,regb 
+0x65df 026142 branch timer_single_step 
+:      026143 shutter_dy_long_key_volume_timeout:
+0x65e0 026144 jam 4 ,mem_shutter_volume_timer 
+0x65e1 026145 fetch 1 ,mem_key3_press_count 
+0x65e2 026146 branch shutter_dy_loop_send_volume_inc_page ,blank 
+0x65e3 026147 branch shutter_dy_loop_send_volume_dec_page 
+:      026150 shutter_dy_loop_send_volume_inc_page:
+0x65e4 026151 jam 0 ,mem_key3_press_count 
+0x65e5 026152 jam 4 ,mem_shutter_volume_timer 
+0x65e6 026153 arg mem_key4_long_press ,regc 
+0x65e7 026154 branch push_buffer_in_queue 
+:      026156 shutter_dy_loop_send_volume_dec_page:
+0x65e8 026157 jam 1 ,mem_key3_press_count 
+0x65e9 026158 jam 4 ,mem_shutter_volume_timer 
+0x65ea 026159 arg mem_key2_long_press ,regc 
+0x65eb 026160 branch push_buffer_in_queue 
+:      026161 shutter_dy_clear_volume_timer:
+0x65ec 026162 jam 0 ,mem_key3_press_count 
+0x65ed 026163 jam 0 ,mem_shutter_volume_timer 
+0x65ee 026164 rtn 
+:      026167 shutter_dy_link_key_loop_timer:
+0x65ef 026168 arg mem_shutter_link_timer ,regc 
+0x65f0 026169 arg shutter_dy_link_key_loop_timeout ,regb 
+0x65f1 026170 branch timer_single_step 
+:      026171 shutter_dy_link_key_loop_timeout:
+0x65f2 026172 jam 2 ,mem_shutter_link_timer 
+0x65f3 026173 call shutter_dy_link_data_android_or_ios 
+0x65f4 026174 branch push_buffer_in_queue 
+:      026176 shutter_dy_link_data_android_or_ios:
+0x65f5 026177 arg mem_shutter_link_data ,regc 
+0x65f6 026178 call shutter_dy_check_iphone 
+0x65f7 026179 rtn blank 
+0x65f8 026180 arg mem_shutter_link_data_i ,regc 
+0x65f9 026181 rtn 
+:      026183 shutter_dy_link_key_long_press:
+0x65fa 026184 fetch 1 ,mem_shutter_link_loop_flag 
+0x65fb 026185 nbranch shutter_dy_clear_link_key_timer ,blank 
+0x65fc 026186 jam 1 ,mem_shutter_link_loop_flag 
+0x65fd 026187 jam 2 ,mem_shutter_link_timer 
+0x65fe 026188 rtn 
+:      026190 shutter_dy_clear_link_key_timer:
+0x65ff 026191 jam 0 ,mem_shutter_link_loop_flag 
+0x6600 026192 jam 0 ,mem_shutter_link_timer 
+0x6601 026193 rtn 
+:      026195 shutter_dy_jude_clear_move_config:
+0x6602 026196 fetch 1 ,mem_shutter_le_conned 
+0x6603 026197 nrtn blank 
+0x6604 026198 jam 1 ,mem_shutter_le_conned 
+0x6605 026199 branch shutter_dy_move_data_store 
+:      026201 shutter_dy_clear_move_config:
+0x6606 026202 setarg 0 
+0x6607 026203 store 7 ,mem_move_config 
+0x6608 026204 rtn 
+:      026206 shutter_dy_write_otp_convert_data:
+0x6609 026207 call shutter_dy_check_iphone 
+0x660a 026208 beq 0x01 ,shutter_dy_store_ios_config_data 
+0x660b 026209 beq 0x00 ,shutter_dy_store_android_config 
+0x660c 026210 rtn 
+:      026212 shutter_dy_read_otp_convert_data:
+0x660d 026213 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x660e 026214 beq 0x01 ,shutter_dy_get_ios_config 
+0x660f 026215 beq 0x00 ,shutter_dy_get_android_config 
+0x6610 026216 rtn 
+:      026218 shutter_dy_store_ios_config_data:
+0x6611 026219 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+0x6612 026220 mul32 pdata ,iphone_once_max_move_value ,pdata 
+0x6613 026221 copy pdata ,temp 
+0x6614 026222 fetch 2 ,mem_shutter_move_data_x 
+0x6615 026223 iadd temp ,pdata 
+0x6616 026224 store 2 ,mem_otp_shutter_move_data_x 
+0x6617 026226 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+0x6618 026227 mul32 pdata ,iphone_once_max_move_value ,pdata 
+0x6619 026228 copy pdata ,temp 
+0x661a 026229 fetch 2 ,mem_shutter_move_data_y 
+0x661b 026230 copy pdata ,rega 
+0x661c 026231 setarg 0xfff 
+0x661d 026232 isub rega ,pdata 
+0x661e 026233 iadd temp ,pdata 
+0x661f 026234 store 2 ,mem_otp_shutter_move_data_y 
+0x6620 026236 call shutter_dy_check_iphone 
+0x6621 026238 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x6622 026239 rtn 
+:      026241 shutter_dy_store_android_config:
+0x6623 026242 fetch 2 ,mem_shutter_move_data_x 
+0x6624 026243 store 2 ,mem_otp_shutter_move_data_x 
+0x6625 026244 fetch 2 ,mem_shutter_move_data_y 
+0x6626 026245 store 2 ,mem_otp_shutter_move_data_y 
+0x6627 026246 call shutter_dy_check_iphone 
+0x6628 026247 store 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x6629 026248 rtn 
+:      026249 shutter_dy_get_ios_config:
+0x662a 026250 fetch 2 ,mem_otp_shutter_move_data_x 
+0x662b 026251 div pdata ,iphone_once_max_move_value 
+0x662c 026252 call wait_div_end 
+0x662d 026253 quotient pdata 
+0x662e 026254 remainder temp 
+0x662f 026255 store 1 ,mem_shutter_iphone_beyond_x_count 
+0x6630 026256 copy temp ,pdata 
+0x6631 026257 store 2 ,mem_shutter_move_data_x 
+0x6632 026258 fetch 2 ,mem_otp_shutter_move_data_y 
+0x6633 026259 div pdata ,iphone_once_max_move_value 
+0x6634 026260 call wait_div_end 
+0x6635 026261 quotient pdata 
+0x6636 026262 remainder temp 
+0x6637 026263 store 1 ,mem_shutter_iphone_beyond_y_count 
+0x6638 026265 setarg 0xfff 
+0x6639 026266 isub temp ,pdata 
+0x663a 026267 store 2 ,mem_shutter_move_data_y 
+0x663b 026270 rtn 
+:      026271 shutter_dy_get_android_config:
+0x663c 026272 fetch 2 ,mem_otp_shutter_move_data_x 
+0x663d 026273 store 2 ,mem_shutter_move_data_x 
+0x663e 026274 fetch 2 ,mem_otp_shutter_move_data_y 
+0x663f 026275 store 2 ,mem_shutter_move_data_y 
+0x6640 026278 rtn 
+:      026280 shutter_dy_store_move_config_info:
+0x6641 026281 branch shutter_dy_campare_effective_addr_write_otp 
+:      026283 shutter_dy_load_move_config_info:
+0x6642 026284 branch shutter_dy_campare_effective_addr_read_otp 
+:      026287 shutter_dy_shutter_uart_config_loop:
+0x6643 026288 call shutter_dy_update_read_check_addr 
+0x6644 026289 fetch 2 ,mem_otp_read_offset_addr 
+0x6645 026290 call shutter_dy_shutter_read_move_config_from_otp_addr 
+0x6646 026291 jam 0 ,mem_shutter_first_read_flag 
+0x6647 026292 fetch 5 ,mem_otp_move_config 
+0x6648 026293 jam 0 ,mem_shutter_valid_data_flag 
+0x6649 026294 jam 0 ,mem_shutter_temp_count 
+0x664a 026295 call shutter_dy_campare_otp_data 
+0x664b 026296 fetch 1 ,mem_shutter_temp_count 
+0x664c 026297 rtneq 0 
+0x664d 026298 branch shutter_dy_shutter_uart_config_loop 
+:      026301 shutter_dy_shutter_get_first_read_addr:
+0x664e 026303 fetch 2 ,mem_shutter_efuse_start_offset 
+0x664f 026304 increase -5 ,pdata 
+0x6650 026305 store 2 ,mem_otp_read_offset_addr 
+0x6651 026306 rtn 
+:      026309 shutter_dy_shutter_next_read_addr:
+0x6652 026310 fetch 2 ,mem_otp_read_offset_addr 
+0x6653 026311 increase -5 ,pdata 
+0x6654 026312 store 2 ,mem_otp_read_offset_addr 
+0x6655 026313 rtn 
+:      026316 shutter_dy_shutter_last_read_addr:
+0x6656 026317 fetch 2 ,mem_otp_read_offset_addr 
+0x6657 026318 pincrease 5 
+0x6658 026319 store 2 ,mem_otp_read_offset_addr 
+0x6659 026320 rtn 
+:      026322 shutter_dy_shutter_read_ios_android_addr:
+0x665a 026323 fetch 2 ,mem_otp_read_ios_android_addr 
+0x665b 026324 pincrease 5 
+0x665c 026325 store 2 ,mem_otp_read_ios_android_addr 
+0x665d 026327 fetch 2 ,mem_otp_read_ios_android_addr 
+0x665e 026328 copy pdata ,temp 
+0x665f 026330 fetch 2 ,mem_shutter_efuse_start_offset 
+0x6660 026331 isub temp ,pdata 
+0x6661 026332 arg shutter_para_total_num ,temp 
+0x6662 026333 isub temp ,null 
+0x6663 026335 nbranch shutter_dy_shutter_not_find_ios_or_android ,positive 
+0x6664 026336 rtn 
+:      026338 shutter_dy_update_read_check_addr:
+0x6665 026339 fetch 1 ,mem_shutter_first_read_flag 
+0x6666 026340 beq 0x01 ,shutter_dy_shutter_get_first_read_addr 
+0x6667 026341 beq 0x00 ,shutter_dy_shutter_next_read_addr 
+0x6668 026342 rtn 
+:      026345 shutter_dy_campare_otp_data:
+0x6669 026346 arg 0x0 ,regb 
+0x666a 026347 copy regb ,temp 
+0x666b 026348 fetch 2 ,mem_otp_shutter_move_data_x 
+0x666c 026349 icompare 0xffff ,temp 
+0x666d 026351 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x666e 026352 arg 0x0 ,regb 
+0x666f 026353 copy regb ,temp 
+0x6670 026354 fetch 2 ,mem_otp_shutter_move_data_y 
+0x6671 026355 icompare 0xffff ,temp 
+0x6672 026356 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x6673 026357 arg 0x0 ,regb 
+0x6674 026358 copy regb ,temp 
+0x6675 026359 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x6676 026360 icompare 0xff ,temp 
+0x6677 026361 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+0x6678 026362 rtn 
+:      026365 shutter_dy_set_shutter_valid_data_flag:
+0x6679 026366 fetch 1 ,mem_shutter_temp_count 
+0x667a 026367 pincrease 1 
+0x667b 026368 store 1 ,mem_shutter_temp_count 
+0x667c 026369 rtn 
+:      026370 shutter_dy_shutter_judge_ios_or_android:
+0x667d 026371 jam 1 ,mem_shutter_temp_count 
+0x667e 026372 call shutter_dy_shutter_read_ios_android_addr 
+0x667f 026373 fetch 2 ,mem_otp_read_ios_android_addr 
+0x6680 026374 call shutter_dy_shutter_read_move_config_from_otp_addr 
+0x6681 026375 call shutter_dy_check_iphone 
+0x6682 026376 copy pdata ,temp 
+0x6683 026377 fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+0x6684 026378 icompare 0xff ,temp 
+0x6685 026379 call shutter_dy_clear_temp_count ,true 
+0x6686 026381 fetch 1 ,mem_shutter_temp_count 
+0x6687 026382 rtneq 0 
+0x6688 026383 branch shutter_dy_shutter_judge_ios_or_android 
+:      026386 shutter_dy_shutter_not_find_ios_or_android:
+0x6689 026387 bpatch patch19_3 ,mem_patch19 
+0x668a 026388 call shutter_dy_clear_temp_count 
+0x668b 026389 call shutter_dy_check_iphone 
+0x668c 026390 branch shutter_dy_shutter_android_save_init_loaction ,blank 
+0x668d 026391 branch shutter_dy_shutter_ios_save_init_loaction 
+:      026392 shutter_dy_shutter_android_save_init_loaction:
+0x668e 026393 fetch 2 ,mem_android_initial_move_x 
+0x668f 026394 store 2 ,mem_shutter_move_data_x 
+0x6690 026395 fetch 2 ,mem_android_initial_move_y 
+0x6691 026396 store 2 ,mem_shutter_move_data_y 
+0x6692 026397 branch shutter_dy_store_move_config_info 
+:      026399 shutter_dy_shutter_ios_save_init_loaction:
+0x6693 026400 arg iphone_once_max_move_value ,temp 
+0x6694 026402 fetch 2 ,mem_iphone_initial_move_x 
+0x6695 026403 arg mem_shutter_move_data_x ,rega 
+0x6696 026404 arg mem_shutter_iphone_beyond_x_count ,regb 
+0x6697 026405 call shutter_dy_iphone_move_initial_set 
+0x6698 026406 arg iphone_once_max_move_value ,temp 
+0x6699 026408 fetch 2 ,mem_iphone_initial_move_y 
+0x669a 026409 arg mem_shutter_move_data_y ,rega 
+0x669b 026410 arg mem_shutter_iphone_beyond_y_count ,regb 
+0x669c 026411 call shutter_dy_iphone_move_initial_set 
+0x669d 026412 setarg 0xfff 
+0x669e 026413 fetcht 2 ,mem_shutter_move_data_y 
+0x669f 026414 isub temp ,pdata 
+0x66a0 026415 store 2 ,mem_shutter_move_data_y 
+0x66a1 026416 branch shutter_dy_store_move_config_info 
+:      026418 shutter_dy_clear_temp_count:
+0x66a2 026419 jam 0 ,mem_shutter_temp_count 
+0x66a3 026420 rtn 
+:      026422 shutter_dy_campare_effective_addr_read_otp:
+0x66a4 026423 bpatch patch19_4 ,mem_patch19 
+0x66a5 026424 jam 1 ,mem_shutter_first_read_flag 
+0x66a6 026425 call shutter_dy_shutter_uart_config_loop 
+0x66a7 026429 fetch 2 ,mem_shutter_efuse_end_offset 
+0x66a8 026430 copy pdata ,temp 
+0x66a9 026431 fetch 2 ,mem_otp_read_offset_addr 
+0x66aa 026432 isub temp ,pdata 
+0x66ab 026433 arg 0x0 ,temp 
+0x66ac 026434 isub temp ,null 
+0x66ad 026435 nrtn positive 
+0x66ae 026436 fetch 2 ,mem_otp_read_offset_addr 
+0x66af 026437 copy pdata ,temp 
+0x66b0 026439 fetch 2 ,mem_shutter_efuse_start_offset 
+0x66b1 026440 increase -5 ,pdata 
+0x66b2 026441 isub temp ,pdata 
+0x66b3 026444 fetch 2 ,mem_otp_read_offset_addr 
+0x66b4 026445 store 2 ,mem_otp_read_ios_android_addr 
+0x66b5 026446 call shutter_dy_shutter_judge_ios_or_android 
+0x66b6 026447 fetch 2 ,mem_otp_read_ios_android_addr 
+0x66b7 026448 ncall shutter_dy_shutter_read_move_config_from_otp_addr ,zero 
+0x66b8 026451 jam 0 ,mem_shutter_temp_count 
+0x66b9 026452 call shutter_dy_campare_otp_data 
+0x66ba 026453 fetch 1 ,mem_shutter_temp_count 
+0x66bb 026454 rtneq 0 
+0x66bc 026455 branch shutter_dy_read_otp_convert_data 
+:      026458 shutter_dy_campare_effective_addr_write_otp:
+0x66bd 026459 bpatch patch19_5 ,mem_patch19 
+0x66be 026460 jam 1 ,mem_shutter_first_read_flag 
+0x66bf 026461 call shutter_dy_shutter_uart_config_loop 
+0x66c0 026465 fetcht 2 ,mem_shutter_efuse_end_offset 
+0x66c1 026467 fetch 2 ,mem_otp_read_offset_addr 
+0x66c2 026468 isub temp ,pdata 
+0x66c3 026469 arg 0x0 ,temp 
+0x66c4 026470 isub temp ,null 
+0x66c5 026471 nrtn positive 
+0x66c6 026473 fetcht 2 ,mem_otp_read_offset_addr 
+0x66c7 026475 fetch 2 ,mem_shutter_efuse_start_offset 
+0x66c8 026476 isub temp ,pdata 
+0x66c9 026477 arg 0x0 ,temp 
+0x66ca 026478 isub temp ,null 
+0x66cb 026479 nrtn positive 
+0x66cc 026480 fetch 2 ,mem_otp_read_offset_addr 
+0x66cd 026481 store 2 ,mem_otp_write_offset_addr 
+0x66ce 026482 call shutter_dy_write_otp_convert_data 
+0x66cf 026484 branch shutter_dy_shutter_write_move_config_to_otp_addr 
+:      026487 shutter_dy_shutter_read_move_config_from_otp_addr:
+0x66d0 026488 copy pdata ,regb 
+0x66d1 026489 bpatch patch19_6 ,mem_patch19 
+0x66d2 026490 arg shutter_para_total_num ,loopcnt 
+0x66d3 026491 arg mem_otp_move_config ,rega 
+0x66d4 026492 branch otp_read_data 
+:      026495 shutter_dy_shutter_write_move_config_to_otp_addr:
+0x66d5 026496 arg shutter_para_total_num ,loopcnt 
+0x66d6 026497 arg mem_otp_move_config ,rega 
+0x66d7 026498 fetchr regb ,2 ,mem_otp_write_offset_addr 
+0x66d8 026499 branch otp_write 
+:      026501 shutter_dy_shutter_1s_timer:
+0x66d9 026502 arg mem_shutter_1s_timer ,regc 
+0x66da 026503 arg shutter_dy_store_move_config_info ,regb 
+0x66db 026504 branch timer_single_step 
+:      026515 rf_debug_rx_gpio_low:
+0x66dc 026516 fetch 1 ,mem_rf_debug_rx_gpio 
+:      026517 rf_debug_gpio_low:
+0x66dd 026518 arg gpcfg_output_low ,temp 
+0x66de 026519 branch gpio_config_function 
+:      026521 rf_debug_rx_on_line:
+:      026522 rf_debug_rx_gpio_high:
+0x66df 026523 fetch 1 ,mem_rf_debug_rx_gpio 
+:      026524 rf_debug_gpio_high:
+0x66e0 026525 arg gpcfg_output_high ,temp 
+0x66e1 026526 branch gpio_config_function 
+:      026528 rf_debug_rx_gpio_h_l_h:
+0x66e2 026529 call rf_debug_rx_gpio_high 
+:      026530 rf_debug_rx_gpio_l_h:
+0x66e3 026531 call rf_debug_rx_gpio_low 
+0x66e4 026532 branch rf_debug_rx_gpio_high 
+:      026534 rf_debug_rx_gpio_l_h_l:
+:      026535 rf_debug_shutdown_radio_line:
+0x66e5 026536 call rf_debug_rx_gpio_l_h 
+:      026537 rf_debug_rx_crc_line:
+0x66e6 026538 branch rf_debug_rx_gpio_low 
+:      026540 rf_debug_rx_sync_line:
+0x66e7 026541 branch rf_debug_rx_gpio_l_h 
+:      026543 rf_debug_rx_crc_fail_line:
+0x66e8 026544 call rf_debug_rx_gpio_l_h 
+0x66e9 026545 branch rf_debug_rx_gpio_l_h_l 
+:      026547 rf_debug_rx_match_line:
+:      026548 rf_debug_rx_crc_error_line:
+:      026549 rf_debug_rx_sync_timeout_line:
+0x66ea 026550 branch rf_debug_rx_gpio_low 
+:      026553 rf_debug_tx_off_line:
+:      026554 rf_debug_tx_gpio_low:
+0x66eb 026555 fetch 1 ,mem_rf_debug_tx_gpio 
+0x66ec 026556 branch rf_debug_gpio_low 
+:      026558 rf_debug_tx_on_line:
+:      026559 rf_debug_tx_gpio_high:
+0x66ed 026560 fetch 1 ,mem_rf_debug_tx_gpio 
+0x66ee 026561 branch rf_debug_gpio_high 
+:      026563 rf_debug_tx_gpio_l_h_l:
+0x66ef 026564 call rf_debug_tx_gpio_low 
+0x66f0 026565 call rf_debug_tx_gpio_high 
+0x66f1 026566 branch rf_debug_tx_gpio_low 
+:      026573 hci_init:
+0x66f2 026574 clear_stack 
+0x66f3 026575 call wdt_set_disable 
+0x66f4 026576 call hci_init_clksel_xtal 
+0x66f5 026577 call hci_init_uart_default_config 
+0x66f6 026578 call hci_init_uart_config 
+0x66f7 026579 call hci_init_pwm_default_config 
+0x66f8 026580 call hci_init_pwm 
+0x66f9 026582 jam 1 ,mem_hci_command_complete_num_hci_command_packet 
+0x66fa 026583 jam hci_h4_type_event ,mem_hci_event_head_type 
+:      026585 hci_process_loop:
+0x66fb 026586 call hci_process_check_uart_rx 
+0x66fc 026587 branch hci_process_loop 
+:      026589 hci_init_clksel_xtal:
+0x66fd 026590 jam clksel_xtal ,core_clksel 
+0x66fe 026591 rtn 
+:      026593 hci_init_uart_default_config:
+0x66ff 026594 call hci_init_uart_default_config_tx 
+0x6700 026595 call hci_init_uart_default_config_rx 
+0x6701 026596 call hci_init_uart_default_config_rts 
+0x6702 026597 branch hci_init_uart_default_config_cts 
+:      026599 hci_init_uart_default_config_tx:
+0x6703 026600 fetch 1 ,mem_hci_uart_tx_gpio 
+0x6704 026601 nrtn blank 
+0x6705 026602 jam hci_uart_tx_gpio_num ,mem_hci_uart_tx_gpio 
+0x6706 026603 rtn 
+:      026605 hci_init_uart_default_config_rx:
+0x6707 026606 fetch 1 ,mem_hci_uart_rx_gpio 
+0x6708 026607 nrtn blank 
+0x6709 026608 jam hci_uart_rx_gpio_num ,mem_hci_uart_rx_gpio 
+0x670a 026609 rtn 
+:      026610 hci_init_uart_default_config_rts:
+0x670b 026611 fetch 1 ,mem_hci_uart_rts_gpio 
+0x670c 026612 nrtn blank 
+0x670d 026613 jam hci_uart_rts_gpio_num ,mem_hci_uart_rts_gpio 
+0x670e 026614 rtn 
+:      026615 hci_init_uart_default_config_cts:
+0x670f 026616 fetch 1 ,mem_hci_uart_cts_gpio 
+0x6710 026617 nrtn blank 
+0x6711 026618 jam hci_uart_cts_gpio_num ,mem_hci_uart_cts_gpio 
+0x6712 026619 rtn 
+:      026622 hci_init_uart_config:
+0x6713 026623 setarg mem_h5rx_buf 
+0x6714 026624 store 2 ,mem_pdatatemp 
+0x6715 026625 setarg mem_h5rx_buf_end 
+0x6716 026626 istore 2 ,contw 
+0x6717 026627 setarg mem_h5tx_buf 
+0x6718 026628 istore 2 ,contw 
+0x6719 026629 setarg mem_h5tx_buf_end 
+0x671a 026630 istore 2 ,contw 
+0x671b 026631 fetch 8 ,mem_pdatatemp 
+0x671c 026632 call uarta_init_dma_mem 
+0x671d 026633 call uart_clock_select_main_freq_crystal 
+0x671e 026634 arg 115200 ,temp 
+0x671f 026635 call uarta_calc_baud_rate_config 
+0x6720 026636 fetch 1 ,mem_hci_uart_tx_gpio 
+0x6721 026637 arg gpcfg_uart_txd ,temp 
+0x6722 026638 call gpio_config_function_int 
+0x6723 026639 fetch 1 ,mem_hci_uart_rx_gpio 
+0x6724 026640 arg gpcfg_uart_rxd | gpcfg_pullup ,temp 
+0x6725 026641 call gpio_config_function_int 
+0x6726 026642 fetch 1 ,mem_hci_uart_rts_gpio 
+0x6727 026643 arg gpcfg_uart_rts ,temp 
+0x6728 026644 call gpio_config_function_int 
+0x6729 026645 fetch 1 ,mem_hci_uart_cts_gpio 
+0x672a 026646 arg gpcfg_uart_cts ,temp 
+0x672b 026647 call gpio_config_function_int 
+0x672c 026649 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+0x672d 026650 storet 1 ,core_uart_ctrl 
+0x672e 026651 branch clean_xmem 
+:      026653 hci_init_pwm_default_config:
+0x672f 026654 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+0x6730 026655 nrtn blank 
+0x6731 026656 jam hci_pmw_12mhz_gpio_num ,mem_hci_pwm_12mhz_gpio 
+0x6732 026657 rtn 
+:      026659 hci_init_pwm:
+0x6733 026660 fetch 1 ,mem_hci_pwm_12mhz_gpio 
+0x6734 026661 arg gpcfg_pwm_out0 ,temp 
+0x6735 026662 call gpio_config_function_int 
+0x6736 026663 arg 0x40 ,rega 
+0x6737 026664 call pwm_init 
+0x6738 026665 arg 0 ,rega 
+0x6739 026666 arg 0 ,regb 
+0x673a 026667 setarg 0 
+0x673b 026668 call pwm_duty_cycle_set 
+0x673c 026669 arg 0 ,queue 
+0x673d 026670 branch pwm_set_select 
+:      026673 hci_process_check_uart_rx:
+0x673e 026674 fetch 2 ,core_uart_rxitems 
+0x673f 026675 add pdata ,-4 ,rega 
+0x6740 026676 nrtn positive 
+0x6741 026677 call uarta_prepare_rx 
+0x6742 026678 ifetch 1 ,contru 
+0x6743 026679 beq hci_h4_type_cmd ,hci_parse_packet_cmd 
+0x6744 026681 call delay_10ms 
+0x6745 026682 branch uarta_clear_current_rx 
+:      026686 hci_parse_packet_cmd:
+0x6746 026687 ifetch 2 ,contru 
+0x6747 026688 store 2 ,mem_hci_opcode 
+0x6748 026689 arg 0x3ff ,temp 
+0x6749 026690 iand temp ,temp 
+0x674a 026691 storet 2 ,mem_hci_opcode_ocf 
+0x674b 026692 rshift2 pdata ,pdata 
+0x674c 026693 rshift8 pdata ,pdata 
+0x674d 026694 store 1 ,mem_hci_opcode_ogf 
+0x674e 026695 ifetch 1 ,contru 
+0x674f 026696 pincrease -1 
+0x6750 026697 isub rega ,null 
+0x6751 026698 rtn positive 
+0x6752 026699 call hci_parse_complete_packet 
+0x6753 026700 branch hci_drop_current_packet 
+:      026702 hci_parse_complete_packet:
+0x6754 026703 fetch 1 ,mem_hci_opcode_ogf 
+0x6755 026711 beq hci_ogf_vendor_specific_debug ,hci_parse_packet_cmd_ogf_vendorspecific_debug 
+0x6756 026712 branch hci_send_event_command_complete_error_command_nuknown 
+:      026722 hci_parse_packet_cmd_ogf_vendorspecific_debug:
+0x6757 026723 bpatch patch1a_2 ,mem_patch1a 
+0x6758 026724 fetch 1 ,mem_hci_opcode_ocf 
+0x6759 026725 beq hci_vendor_cmd_reset ,hci_normal_reply 
+0x675a 026726 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
+0x675b 026727 beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
+0x675c 026728 beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
+0x675d 026729 beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
+0x675e 026730 beq hci_vendor_cmd_echo ,hci_normal_reply 
+0x675f 026731 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
+0x6760 026732 beq hci_vendor_cmd_set_flow_control ,phci_grp_vendor_flow_control 
+0x6761 026733 branch hci_normal_reply 
+:      026736 phci_grp_vendor_chipid:
+0x6762 026737 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+0x6763 026738 fetch 2 ,core_chipid 
+0x6764 026739 store 2 ,mem_hci_command_complete_return_parameter_chip_id 
+0x6765 026740 arg 3 ,loopcnt 
+0x6766 026741 branch hci_send_event_command_complete 
+:      026743 phci_grp_vendor_baud:
+0x6767 026744 ifetch 2 ,contu 
+0x6768 026745 store 2 ,core_uart_baud 
+0x6769 026746 rtn 
+:      026749 phci_grp_vendor_patch_common:
+0x676a 026750 ifetch 1 ,contu 
+0x676b 026751 copy pdata ,temp 
+0x676c 026752 store 1 ,core_ucode_low 
+0x676d 026753 ifetch 1 ,contu 
+0x676e 026754 iadd temp ,temp 
+0x676f 026755 set1 7 ,pdata 
+0x6770 026756 store 1 ,core_ucode_ctrl 
+0x6771 026757 ifetch 1 ,contu 
+0x6772 026758 iadd temp ,temp 
+0x6773 026759 copy pdata ,loopcnt 
+0x6774 026760 rtn 
+:      026762 phci_grp_vendor_patch:
+0x6775 026763 call phci_grp_vendor_patch_common 
+:      026764 phci_grp_vendor_patch_loop:
+0x6776 026765 ifetch 1 ,contu 
+0x6777 026766 store 1 ,core_ucode_data 
+0x6778 026767 iadd temp ,temp 
+0x6779 026768 loop phci_grp_vendor_patch_loop 
+:      026769 phci_grp_vendor_patch_check_sum:
+0x677a 026770 and temp ,0xff ,temp 
+0x677b 026771 ifetch 1 ,contu 
+0x677c 026772 isub temp ,null 
+0x677d 026773 nbranch phci_grp_vendor_patch_bad ,zero 
+0x677e 026774 branch hci_normal_reply 
+:      026776 phci_grp_vendor_done:
+0x677f 026777 arg 0x20 ,loopcnt 
+0x6780 026778 arg mem_patch00 ,contw 
+0x6781 026779 arg 0 ,temp 
+:      026780 phci_grp_vendor_done_loop:
+0x6782 026781 ifetch 1 ,contu 
+0x6783 026782 istore 1 ,contw 
+0x6784 026783 iadd temp ,temp 
+0x6785 026784 loop phci_grp_vendor_done_loop 
+0x6786 026785 and temp ,0xff ,temp 
+0x6787 026786 ifetch 1 ,contu 
+0x6788 026787 isub temp ,null 
+0x6789 026788 nbranch phci_grp_vendor_patch_bad ,zero 
+0x678a 026789 jam 0 ,core_ucode_ctrl 
+0x678b 026790 call hci_normal_reply 
+0x678c 026791 call wait_uarttx 
+0x678d 026792 branch soft_reset 
+:      026794 phci_grp_vendor_patch_bad:
+0x678e 026795 jam 0 ,core_ucode_ctrl 
+0x678f 026796 branch hci_send_event_command_complete_error_command_nuknown 
+:      026799 phci_grp_vendor_mem:
+0x6790 026800 ifetch 1 ,contu 
+0x6791 026801 copy pdata ,loopcnt 
+0x6792 026802 ifetch 2 ,contu 
+0x6793 026803 copy pdata ,contw 
+0x6794 026804 call uart_copy_rx_bytes 
+0x6795 026805 branch hci_normal_reply 
+:      026807 phci_grp_vendor_flow_control:
+0x6796 026808 fetch 1 ,core_uart_ctrl 
+0x6797 026809 set1 bit_uart_control_flow_control ,pdata 
+0x6798 026810 store 1 ,core_uart_ctrl 
+0x6799 026811 branch hci_normal_reply 
+:      026814 hci_normal_reply:
+0x679a 026815 branch hci_send_event_command_complete_without_payload 
+:      026817 hci_send_event_command_complete_error_command_nuknown:
+0x679b 026818 jam command_unknown ,mem_hci_command_complete_return_parameter 
+0x679c 026819 branch hci_send_event_command_complete_without_payload + 1 
+:      026820 hci_send_event_command_complete_error_command_disallowed:
+0x679d 026821 jam command_disallowed ,mem_hci_command_complete_return_parameter 
+0x679e 026822 branch hci_send_event_command_complete_without_payload + 1 
+:      026823 hci_send_event_command_complete_without_payload:
+0x679f 026824 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+0x67a0 026825 arg 1 ,loopcnt 
+0x67a1 026826 branch hci_send_event_command_complete 
+:      026828 hci_send_event_command_complete:
+0x67a2 026829 jam hci_event_command_complete ,mem_hci_event_head_event_code 
+0x67a3 026830 add loopcnt ,3 ,pdata 
+0x67a4 026831 store 1 ,mem_hci_event_para_total_length 
+0x67a5 026832 call hci_prepare_send_event 
+0x67a6 026833 fetch 3 ,mem_hci_command_complete_num_hci_command_packet 
+0x67a7 026834 istore 3 ,contwu 
+0x67a8 026836 arg mem_hci_command_complete_return_parameter ,contr 
+0x67a9 026837 call uart_copy_tx_bytes 
+0x67aa 026838 branch uarta_send_register_pop 
+:      026842 hci_prepare_send_event:
+0x67ab 026843 call uarta_prepare_tx_register_push 
+0x67ac 026844 fetch 3 ,mem_hci_event_head_type 
+0x67ad 026845 istore 3 ,contwu 
+0x67ae 026846 rtn 
+:      026848 hci_drop_current_packet:
+0x67af 026849 call uarta_prepare_rx 
+0x67b0 026850 increase 3 ,contru 
+0x67b1 026851 ifetch 1 ,contru 
+0x67b2 026852 iadd contru ,contru 
+0x67b3 026853 branch uarta_rxdone 
+:      026855 cmd_exit:
+0x67b4 026856 jam 0 ,mem_hci_cmd 
+0x67b5 026857 rtn 
+:      026864 hid_device_load_flash_info_check:
+0x67b6 026865 call spid_init_flash 
+0x67b7 026866 call mouse_spid_flash_release_form_powerdown 
+0x67b8 026867 call mouse_information_flash_parameters 
+0x67b9 026868 call spid_read_flash 
+0x67ba 026869 branch mouse_spid_flash_powerdown 
+:      026871 hid_device_store_flash_device_info:
+0x67bb 026872 call spid_init_flash 
+0x67bc 026873 call mouse_spid_flash_release_form_powerdown 
+0x67bd 026874 call mouse_flash_erase_sector 
+0x67be 026876 call mouse_information_flash_parameters 
+0x67bf 026877 call mouse_spid_write_flash 
+0x67c0 026878 branch mouse_spid_flash_powerdown 
+:      026880 hid_device_before_store_reconn_info:
+0x67c1 026881 arg mem_device1_type ,rega 
+0x67c2 026882 fetch 1 ,mem_device_flag 
+0x67c3 026883 increase -1 ,pdata 
+0x67c4 026884 mul32 pdata ,13 ,pdata 
+0x67c5 026885 iadd rega ,rega 
+0x67c6 026886 fetch 1 ,mem_record_bt_mode 
+0x67c7 026887 istore 1 ,rega 
+0x67c8 026888 beq rec_4_mode ,hid_device_store_le_device 
+0x67c9 026889 rtn 
+:      026891 hid_device_store_le_device:
+0x67ca 026892 fetch 6 ,mem_le_plap 
+0x67cb 026893 istore 6 ,contw 
+0x67cc 026894 fetch 6 ,mem_le_lap 
+0x67cd 026895 istore 6 ,contw 
+0x67ce 026896 rtn 
+:      026899 hid_device_load_device_info:
+0x67cf 026900 bpatch patch1a_3 ,mem_patch1a 
+0x67d0 026901 call hid_device_select_reconn_device 
+0x67d1 026902 fetch 4 ,mem_device_24g_addr 
+0x67d2 026903 store 4 ,mem_24g_receiver_addr 
+0x67d3 026904 store 4 ,mem_24g_addr 
+0x67d4 026905 rtn 
+:      026907 hid_device_select_reconn_device:
+0x67d5 026908 bpatch patch1a_4 ,mem_patch1a 
+0x67d6 026909 arg mem_device1_type ,rega 
+0x67d7 026910 fetch 1 ,mem_device_flag 
+0x67d8 026911 rtneq mode_24g_device 
+0x67d9 026912 increase -1 ,pdata 
+0x67da 026913 mul32 pdata ,13 ,pdata 
+0x67db 026914 iadd rega ,rega 
+0x67dc 026915 ifetch 1 ,rega 
+0x67dd 026916 store 1 ,mem_xrecord_mode 
+0x67de 026917 rtnne rec_4_mode 
+:      026918 hid_device_load_le_device:
+0x67df 026919 ifetch 6 ,contr 
+0x67e0 026920 store 6 ,mem_hci_plap 
+0x67e1 026921 ifetch 6 ,contr 
+0x67e2 026922 store 6 ,mem_le_lap 
+0x67e3 026923 rtn 
+:      026925 hid_device_check_device_addr:
+0x67e4 026926 fetch 1 ,mem_record_bt_mode 
+0x67e5 026927 rtnne rec_4_mode 
+:      026928 hid_device_check_le_device_addr:
+0x67e6 026929 store 1 ,mem_device_addr_temp 
+0x67e7 026930 fetch 6 ,mem_le_plap 
+:      026931 hid_device_check_bt_device_addr_common:
+0x67e8 026932 store 6 ,mem_device_addr_temp + 1 
+0x67e9 026933 fetch 7 ,mem_device_addr_temp 
+0x67ea 026934 arg mem_device1_type ,contr 
+0x67eb 026935 arg 3 ,loopcnt 
+:      026936 hid_device_check_device_addr_end:
+0x67ec 026937 ifetcht 7 ,contr 
+0x67ed 026938 isub temp ,null 
+0x67ee 026939 branch hid_device_clean_addr ,zero 
+0x67ef 026940 increase 7 ,contr 
+0x67f0 026941 loop hid_device_check_device_addr_end 
+0x67f1 026942 rtn 
+:      026944 hid_device_clean_addr:
+0x67f2 026945 increase -6 ,contr 
+0x67f3 026946 copy contr ,contw 
+0x67f4 026947 fetcht 6 ,mem_device_addr_temp + 1 
+0x67f5 026948 increase 3 ,temp 
+0x67f6 026949 istoret 6 ,contw 
+0x67f7 026950 rtn 
+:      026952 hid_device_ble_init_address:
+0x67f8 026953 fetch 6 ,mem_le_lap 
+0x67f9 026954 store 6 ,mem_device1_locall_addr 
+0x67fa 026955 add pdata ,0x0100 ,pdata 
+0x67fb 026956 store 6 ,mem_device2_locall_addr 
+0x67fc 026957 add pdata ,0x0100 ,pdata 
+0x67fd 026958 store 6 ,mem_device3_locall_addr 
+0x67fe 026959 rtn 
+:      026961 hid_device_default_parm_init:
+0x67ff 026962 jam 0xff ,mem_ui_button_gpio 
+0x6800 026963 jam 0 ,mem_ui_led_struct_num 
+0x6801 026965 fetch 2 ,mem_device_24g_pair_timeout_init 
+0x6802 026966 store 2 ,mem_24g_pair_timeout_init 
+0x6803 026968 fetch 1 ,mem_device_24g_reconn_timeout_init 
+0x6804 026969 store 2 ,mem_24g_reconn_timeout_init 
+0x6805 026971 fetch 5 ,mem_rssi_dis_min_24g_init 
+0x6806 026972 store 5 ,mem_rssi_dis_min_24g 
+0x6807 026974 fetch 1 ,mem_device_24g_pair_tx_power 
+0x6808 026975 store 1 ,mem_24g_pair_tx_power 
+0x6809 026977 fetch 1 ,mem_24g_ch_map_update 
+0x680a 026978 ncall g24_chamap_param_update ,blank 
+0x680b 026979 rtn 
+:      026981 hid_device_param_common_init:
+0x680c 026982 jam 3 ,mem_lpm_mult_timeout 
+0x680d 026983 jam 8 ,mem_lpm_overhead 
+0x680e 026984 jam pb_button_state_up ,mem_select_device_button_statue 
+0x680f 026985 jam commbination_key_state_up ,mem_commbination_key_statue 
+0x6810 026986 setarg 0x0200 
+0x6811 026987 store 2 ,mem_lpm_interval 
+0x6812 026988 jam 0x17 ,mem_le_local_mtu 
+0x6813 026989 jam 0x17 ,mem_le_remote_mtu 
+0x6814 026991 fetch 1 ,mem_device_flag 
+0x6815 026992 store 1 ,mem_device_flag_temp 
+0x6816 026993 fetch 3 ,mem_le_lap + 3 
+0x6817 026994 store 3 ,mem_device_le_lap_temp 
+0x6818 026996 setarg mem_le_tx_buffer0_omemalloc 
+0x6819 026997 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x681a 026998 setarg mouse_ble_l2cap_txbuff_size 
+0x681b 026999 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x681c 027000 branch device_store_normal_tx_power 
+:      027002 hid_device_compare_addr_store:
+0x681d 027003 storet 3 ,mem_device_compare_addr 
+0x681e 027004 storet 3 ,mem_device_compare_addr + 3 
+0x681f 027005 rtn 
+:      027007 hid_device_enable_lpm:
+0x6820 027008 jam 1 ,mem_lpm_mode 
+0x6821 027009 rtn 
+:      027011 hid_device_disable_lpm:
+0x6822 027012 jam 0 ,mem_lpm_mode 
+0x6823 027013 rtn 
+:      027016 hid_device_le_send_empty_packet:
+0x6824 027017 jam 0 ,mem_customer_data_trigger 
+:      027018 hid_device_le_send_package_data:
+0x6825 027019 bpatch patch1a_5 ,mem_patch1a 
+0x6826 027020 fetch 1 ,mem_customer_data_trigger 
+0x6827 027021 call hid_device_clear_key_data ,blank 
+:      027022 hid_device_le_fill_package_data:
+0x6828 027023 fetch 1 ,mem_customer_key_press 
+0x6829 027024 beq hid_reportid_key_standard ,hid_device_le_fill_standard_key_data 
+0x682a 027025 beq hid_reportid_bit_consumer_key ,hid_device_le_fill_bit_consumer_key_data 
+0x682b 027026 beq hid_reportid_consumer_key ,hid_device_le_fill_multimedia_key_data 
+0x682c 027027 beq hid_reportid_system_ctrl ,hid_device_le_fill_systemctrl_key_data 
+0x682d 027028 beq hid_reportid_n_key_rollover ,keyboard_le_fill_n_key_rollover_key_data 
+:      027029 hid_device_le_fill_standard_key_data:
+0x682e 027030 fetch 1 ,mem_device_option 
+0x682f 027031 beq dvc_op_keyboard ,keyboard_le_fill_standard_key_data 
+:      027032 mouse_le_fill_standard_key_data:
+0x6830 027033 jam 8 ,mem_le_data_len 
+:      027034 keyoard_le_fill_standard_key_data_send:
+0x6831 027035 fetcht 2 ,mem_le_keyboard_handle 
+0x6832 027036 branch hid_device_le_fill_data 
+:      027038 hid_device_le_fill_bit_consumer_key_data:
+0x6833 027039 jam 4 ,mem_le_data_len 
+0x6834 027040 fetcht 2 ,mem_le_multimedia_handle 
+0x6835 027041 branch hid_device_le_fill_data 
+:      027043 hid_device_le_fill_multimedia_key_data:
+0x6836 027044 jam 3 ,mem_le_data_len 
+0x6837 027045 fetcht 2 ,mem_le_multimedia_handle 
+0x6838 027046 branch hid_device_le_fill_data 
+:      027048 hid_device_le_fill_systemctrl_key_data:
+0x6839 027049 jam 2 ,mem_le_data_len 
+0x683a 027050 fetcht 2 ,mem_le_systemctrl_handle 
+0x683b 027051 branch hid_device_le_fill_data 
+:      027053 hid_device_send_package_data_check:
+0x683c 027054 fetch 1 ,mem_customer_key 
+0x683d 027055 beq 1 ,hid_device_le_send_package_data 
+:      027056 hid_device_le_send_mouse_data:
+0x683e 027057 jam 7 ,mem_le_data_len 
+0x683f 027058 fetch 7 ,mem_mouse_key 
+0x6840 027059 store 7 ,mem_customer_key_press + 1 
+0x6841 027060 fetcht 2 ,mem_le_notify_handle 
+0x6842 027061 branch hid_device_le_fill_data 
+:      027063 hid_device_le_fill_data:
+0x6843 027064 bpatch patch1a_6 ,mem_patch1a 
+0x6844 027065 fetch 1 ,mem_le_data_len 
+0x6845 027066 copy pdata ,rega 
+0x6846 027067 call le_att_malloc_tx_notify 
+0x6847 027068 fetcht 1 ,mem_le_data_len 
+0x6848 027069 copy temp ,loopcnt 
+0x6849 027070 arg mem_customer_key_press + 1 ,contr 
+0x684a 027071 branch memcpy 
+:      027073 hid_device_clear_key_data:
+0x684b 027074 arg 9 ,loopcnt 
+0x684c 027075 arg mem_customer_key_press + 1 ,contw 
+0x684d 027076 branch clear_mem 
+:      027078 hid_device_copy_key_data:
+0x684e 027079 arg 10 ,loopcnt 
+0x684f 027080 arg mem_customer_key_press_init ,contr 
+0x6850 027081 arg mem_customer_key_press ,contw 
+0x6851 027082 branch memcpy 
+:      027084 hid_device_24g_keyboard_package_data_set:
+0x6852 027085 fetch 1 ,mem_customer_data_trigger 
+0x6853 027086 call hid_device_clear_key_data ,blank 
+0x6854 027087 arg mem_customer_key_press ,regb 
+0x6855 027088 rtn 
+:      027093 hid_device_push_mouse_data_to_usb:
+0x6856 027094 setarg ms_report_id 
+0x6857 027095 store 1 ,mem_usb_mouse_data 
+0x6858 027096 fetch 7 ,mem_mouse_key 
+0x6859 027097 istore 7 ,contw 
+0x685a 027098 branch dongle_usb_tx_ms_data 
+:      027100 hid_device_push_keyboard_data_to_usb:
+0x685b 027101 fetch 1 ,mem_customer_data_trigger 
+0x685c 027102 call hid_device_clear_key_data ,blank 
+:      027103 hid_device_push_keyboard_package_data_to_usb:
+0x685d 027104 bpatch patch0d_3 ,mem_patch0d 
+0x685e 027105 fetch 1 ,mem_customer_key_press 
+0x685f 027106 beq hid_reportid_key_standard ,hid_device_push_standard_keyboard_data_to_usb 
+0x6860 027107 beq kb_system_conctrl_report_id ,hid_device_push_systemctrl_key_data_to_usb 
+0x6861 027108 beq kb_multikey_report_id ,hid_device_push_multimedia_key_data_to_usb 
+0x6862 027109 beq hid_reportid_bit_consumer_key ,hid_device_push_bit_consumer_key_data_to_usb 
+0x6863 027110 beq hid_reportid_n_key_rollover ,keyboard_push_n_key_rollover_key_data_to_usb 
+:      027111 hid_device_push_standard_keyboard_data_to_usb:
+0x6864 027112 call dongle_usb_tx_kb_data 
+0x6865 027113 arg mem_customer_key_press + 1 ,contr 
+0x6866 027114 arg mem_usb_kb_data ,contw 
+0x6867 027115 arg 9 ,loopcnt 
+0x6868 027116 branch memcpy 
+:      027118 hid_device_push_systemctrl_key_data_to_usb:
+0x6869 027119 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x686a 027120 setarg kb_system_conctrl_report_id 
+0x686b 027121 store 1 ,mem_usb_kb_system 
+0x686c 027122 fetch 1 ,mem_customer_key_press + 1 
+0x686d 027123 istore 1 ,contw 
+0x686e 027124 branch dongle_usb_tx_enable_ep2 
+:      027126 hid_device_push_multimedia_key_data_to_usb:
+0x686f 027127 jam usb_ep2_multikey ,mem_usb_ep2_data 
+0x6870 027128 setarg kb_multikey_report_id 
+0x6871 027129 store 1 ,mem_usb_kb_multikey 
+0x6872 027130 fetch 3 ,mem_customer_key_press + 1 
+0x6873 027131 istore 3 ,contw 
+0x6874 027132 branch dongle_usb_tx_enable_ep2 
+:      027134 hid_device_push_bit_consumer_key_data_to_usb:
+0x6875 027135 jam usb_ep2_bit_consumer ,mem_usb_ep2_data 
+0x6876 027136 setarg kb_bit_consumer_report_id 
+0x6877 027137 branch hid_device_push_multimedia_key_data_to_usb + 2 
+:      027141 hid_device_le_parse_att_write_request:
+0x6878 027142 fetch 1 ,mem_device_fast_conn_flag 
+0x6879 027143 beq 0xff ,le_send_att_write_response_check_auth 
+0x687a 027144 fetch 1 ,mem_device_fast_conn_flag 
+0x687b 027145 branch le_send_att_write_response_check_auth ,blank 
+0x687c 027146 fetch 1 ,mem_le_connect_status_flag 
+0x687d 027147 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+0x687e 027148 setarg 0x001a 
+0x687f 027149 fetcht 2 ,mem_le_att_handle 
+0x6880 027150 isub temp ,null 
+0x6881 027151 nbranch le_send_att_write_response_check_auth ,zero 
+0x6882 027152 branch le_send_att_read_response_error_insufficient_auth 
+:      027156 hid_device_24g_search_dongle_init:
+0x6883 027157 setarg 0 
+0x6884 027158 store 3 ,mem_device_search_dongle_action 
+0x6885 027159 rtn 
+:      027161 mouse_24g_search_dongle:
+0x6886 027162 fetch mouse_flag_len ,mem_mouse_flag 
+0x6887 027163 rtnbit0 mouse_enable_24g_search_dongle 
+:      027164 hid_device_24g_search_dongle:
+0x6888 027165 fetch 1 ,mem_mouse_long_mult_flag 
+0x6889 027166 rtn blank 
+0x688a 027167 fetch 1 ,mem_24g_abort_pac 
+0x688b 027168 rtn blank 
+0x688c 027169 fetch 1 ,mem_device_search_dongle_interval 
+0x688d 027170 increase 1 ,pdata 
+0x688e 027171 and_into 3 ,pdata 
+0x688f 027172 store 1 ,mem_device_search_dongle_interval 
+0x6890 027173 nrtn blank 
+0x6891 027174 jam 0 ,mem_device_search_dongle_ch 
+:      027175 hid_device_24g_search_dongle_loop:
+0x6892 027176 bpatch patch1a_7 ,mem_patch1a 
+0x6893 027177 fetch 1 ,mem_device_search_dongle_ch 
+0x6894 027178 increase 1 ,pdata 
+0x6895 027179 store 1 ,mem_device_search_dongle_ch 
+0x6896 027180 sub pdata ,g24_ch_number ,null 
+0x6897 027181 nbranch hid_device_24g_search_dongle_loop_end ,positive 
+0x6898 027182 call g24_reconn_data_prep 
+0x6899 027183 call g24_transmit_receive_ack 
+0x689a 027184 nbranch hid_device_24g_search_dongle_loop_retry ,sync 
+0x689b 027185 nbranch hid_device_24g_search_dongle_loop_retry ,user3 
+0x689c 027186 call hid_device_g24_ackpayload_parse 
+0x689d 027187 call hid_device_24g_search_dongle_success 
+:      027188 hid_device_24g_search_dongle_loop_end:
+0x689e 027189 call g24_txbuf_clear 
+0x689f 027190 fetch 1 ,mem_device_search_dongle_count 
+0x68a0 027191 increase 1 ,pdata 
+0x68a1 027192 store 1 ,mem_device_search_dongle_count 
+0x68a2 027193 beq g24_ch_poll_count ,hid_device_24g_search_dongle_check 
+0x68a3 027194 rtn 
+:      027196 hid_device_24g_search_dongle_loop_retry:
+0x68a4 027197 call g24_ch 
+0x68a5 027198 branch hid_device_24g_search_dongle_loop 
+:      027200 hid_device_24g_search_dongle_check:
+0x68a6 027201 bpatch patch1b_0 ,mem_patch1b 
+0x68a7 027202 jam 0 ,mem_device_search_dongle_count 
+0x68a8 027203 fetch 1 ,mem_device_search_dongle_action 
+0x68a9 027204 rtnbit1 g24_disconn_state 
+0x68aa 027205 set1 g24_disconn_state ,pdata 
+0x68ab 027206 store 1 ,mem_device_search_dongle_action 
+0x68ac 027207 fetch 2 ,mem_device_24g_search_dongle_time_init 
+0x68ad 027208 store 2 ,mem_device_no_data_timer 
+0x68ae 027209 fetch 1 ,mem_device_option 
+0x68af 027210 beq dvc_op_mouse ,mouse_sensor_powerdown 
+0x68b0 027211 rtn 
+:      027213 hid_device_24g_search_dongle_success:
+0x68b1 027214 fetch 1 ,mem_24g_abort_pac 
+0x68b2 027215 branch hid_device_24g_search_dongle_init ,blank 
+0x68b3 027216 jam 0 ,mem_device_search_dongle_count 
+0x68b4 027217 fetch 1 ,mem_device_search_dongle_action 
+0x68b5 027218 rtnbit0 g24_disconn_state 
+0x68b6 027219 set0 g24_disconn_state ,pdata 
+0x68b7 027220 store 1 ,mem_device_search_dongle_action 
+0x68b8 027221 call mouse_no_data_timer_init 
+0x68b9 027222 fetch 1 ,mem_device_option 
+0x68ba 027223 beq dvc_op_mouse ,mouse_init_sensor_wakeup 
+0x68bb 027224 rtn 
+:      027226 hid_device_g24_ackpayload_parse:
+0x68bc 027227 call g24_ackpayload_parse 
+0x68bd 027228 fetch 1 ,mem_24g_rxbuf + 1 
+0x68be 027229 compare 0x08 ,pdata ,0xf8 
+0x68bf 027230 nrtn true 
+0x68c0 027231 fetch 1 ,mem_24g_rxbuf + 2 
+0x68c1 027232 beq 0xff ,mouse_24g_hibernate_set 
+0x68c2 027233 store 1 ,mem_keyboard_led_status 
+0x68c3 027234 rtn 
+:      027236 hid_device_before_lpm_set:
+0x68c4 027237 fetch 1 ,mem_device_flag 
+0x68c5 027238 rtnne mode_24g_device 
+0x68c6 027239 fetch 1 ,mem_24g_disable_fec1 
+0x68c7 027240 rtn blank 
+:      027241 hid_device_peripheral_clock_off:
+0x68c8 027242 jam 2 ,core_clksel 
+0x68c9 027243 jam 0xf8 ,core_lpm_ctrl 
+0x68ca 027244 rtn 
+:      027246 hid_device_cb_fuction:
+0x68cb 027247 setarg mouse_spi_write_flash_cb 
+0x68cc 027248 store 2 ,mem_cb_spi_flash_write_complate 
+0x68cd 027249 setarg mouse_le_transmit 
+0x68ce 027250 store 2 ,mem_cb_ble_transmit 
+0x68cf 027251 setarg mouse_set_lpm_mult 
+0x68d0 027252 store 2 ,mem_cb_bt_set_mult 
+0x68d1 027253 rtn 
+:      027259 l2cap_init:
+0x68d2 027260 branch l2cap_init_wake ,wake 
+0x68d3 027261 setarg mem_l2cap_xmem_end 
+0x68d4 027262 arg mem_l2cap_xmem_start ,contw 
+0x68d5 027263 isub contw ,loopcnt 
+0x68d6 027264 call clear_mem 
+:      027265 l2cap_init_wake:
+0x68d7 027267 rtn 
+:      027271 check_l2cap_map:
+0x68d8 027272 arg 0 ,queue 
+0x68d9 027273 arg 0 ,regb 
+:      027275 check_l2cap_map_loop:
+0x68da 027276 sub queue ,7 ,null 
+0x68db 027277 nrtn positive 
+0x68dc 027278 qisolate1 rega 
+0x68dd 027279 branch check_l2cap_map_used ,true 
+0x68de 027280 branch check_l2cap_map_used2 
+:      027282 check_l2cap_map_used:
+0x68df 027283 copy temp ,pdata 
+0x68e0 027284 branch check_l2cap_map_used2 ,blank 
+0x68e1 027285 qset1 regb 
+0x68e2 027286 increase -1 ,temp 
+:      027288 check_l2cap_map_used2:
+0x68e3 027289 increase 1 ,queue 
+0x68e4 027290 branch check_l2cap_map_loop 
+:      027303 ble_l2cap_malloc:
+0x68e5 027304 fetchr regd ,2 ,mem_ble_l2cap_tx_buff0_ptr 
+0x68e6 027305 fetchr rege ,2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0x68e7 027306 call disable_user 
+0x68e8 027307 branch host_l2cap_malloc 
+:      027309 host_l2cap_malloc:
+0x68e9 027310 bpatch patch1b_2 ,mem_patch1b 
+0x68ea 027311 call l2cap_malloc_is_fifo_full 
+0x68eb 027312 nbranch assert ,blank 
+0x68ec 027313 call l2cap_malloc_get_full_map 
+0x68ed 027314 arg 8 ,loopcnt 
+:      027315 host_l2cap_malloc_loop:
+0x68ee 027316 fetcht 1 ,mem_used_map 
+0x68ef 027317 sub loopcnt ,8 ,queue 
+0x68f0 027318 qisolate1 temp 
+0x68f1 027319 branch host_l2cap_malloc_next_buffer ,true 
+0x68f2 027320 call host_l2cap_malloc_check_buffer_enough 
+0x68f3 027321 nbranch host_l2cap_malloc_next_buffer ,positive 
+0x68f4 027322 call host_l2cap_malloc_into_fifo 
+0x68f5 027323 branch host_l2cap_malloc_succ 
+:      027324 host_l2cap_malloc_next_buffer:
+0x68f6 027325 copy rege ,pdata 
+0x68f7 027326 iadd regd ,regd 
+0x68f8 027327 loop host_l2cap_malloc_loop 
+0x68f9 027328 branch assert 
+:      027329 host_l2cap_malloc_succ:
+0x68fa 027330 copy regd ,pdata 
+0x68fb 027331 copy regd ,contw 
+0x68fc 027332 rtn 
+:      027341 host_l2cap_malloc_check_buffer_enough:
+0x68fd 027342 bpatch patch1b_3 ,mem_patch1b 
+0x68fe 027343 sub loopcnt ,8 ,queue 
+0x68ff 027344 arg 0 ,temp 
+0x6900 027345 arg 0 ,timeup 
+:      027346 host_l2cap_malloc_check_buffer_enough_loop:
+0x6901 027347 copy queue ,pdata 
+0x6902 027348 beq 8 ,host_l2cap_malloc_check_buffer_enough_end 
+0x6903 027349 fetch 1 ,mem_used_map 
+0x6904 027350 qisolate1 pdata 
+0x6905 027351 branch host_l2cap_malloc_check_buffer_enough_end ,true 
+0x6906 027352 qset1 timeup 
+0x6907 027353 copy rege ,pdata 
+0x6908 027354 iadd temp ,temp 
+0x6909 027355 increase 1 ,queue 
+0x690a 027356 copy rega ,pdata 
+0x690b 027357 isub temp ,null 
+0x690c 027358 branch host_l2cap_malloc_check_buffer_enough_end ,zero 
+0x690d 027359 branch host_l2cap_malloc_check_buffer_enough_loop ,positive 
+:      027360 host_l2cap_malloc_check_buffer_enough_end:
+0x690e 027361 copy temp ,pdata 
+0x690f 027362 isub rega ,null 
+0x6910 027363 nrtn zero 
+0x6911 027364 qset1 timeup 
+0x6912 027365 rtn 
+:      027374 host_l2cap_malloc_into_fifo:
+0x6913 027375 bpatch patch1b_4 ,mem_patch1b 
+0x6914 027376 call l2cap_malloc_is_fifo_full 
+0x6915 027377 nbranch assert ,blank 
+0x6916 027378 call l2cap_malloc_is_fifo_empty 
+0x6917 027379 branch host_l2cap_malloc_into_fifo_no_push ,blank 
+0x6918 027380 fetch 9 ,mem_tx_fifo1 
+0x6919 027381 store 9 ,mem_tx_fifo0 
+0x691a 027382 setarg 0 
+0x691b 027383 istore 3 ,contw 
+:      027384 host_l2cap_malloc_into_fifo_no_push:
+0x691c 027385 storer timeup ,1 ,mem_tx_fifo3_map 
+0x691d 027386 storer regd ,2 ,mem_tx_fifo3_ptr 
+0x691e 027387 rtn 
+:      027396 l2cap_malloc_fifo_out:
+0x691f 027397 bpatch patch1b_5 ,mem_patch1b 
+0x6920 027398 call l2cap_malloc_fifo_get_first_ptr 
+0x6921 027399 increase 1 ,contr 
+0x6922 027400 ifetch 2 ,contr 
+0x6923 027401 rtn 
+:      027408 l2cap_malloc_free:
+0x6924 027409 bpatch patch1b_6 ,mem_patch1b 
+0x6925 027410 call l2cap_malloc_fifo_get_first_ptr 
+0x6926 027411 copy contr ,contw 
+0x6927 027412 copy contr ,temp 
+0x6928 027413 setarg 0 
+0x6929 027414 istore 3 ,contw 
+0x692a 027415 rtn 
+:      027422 l2cap_malloc_discard:
+0x692b 027423 bpatch patch1b_7 ,mem_patch1b 
+0x692c 027424 call l2cap_malloc_is_fifo_empty 
+0x692d 027425 branch assert ,blank 
+0x692e 027426 fetch 3 ,mem_tx_fifo2 
+0x692f 027427 store 3 ,mem_tx_fifo3 
+0x6930 027428 fetch 3 ,mem_tx_fifo1 
+0x6931 027429 store 3 ,mem_tx_fifo2 
+0x6932 027430 fetch 3 ,mem_tx_fifo0 
+0x6933 027431 store 3 ,mem_tx_fifo1 
+0x6934 027432 rtn 
+:      027440 l2cap_malloc_is_fifo_full:
+0x6935 027441 bpatch patch1c_0 ,mem_patch1c 
+0x6936 027442 fetch 3 ,mem_tx_fifo0 
+0x6937 027443 rtn 
+:      027451 l2cap_malloc_is_fifo_nearly_full:
+0x6938 027452 bpatch patch1c_1 ,mem_patch1c 
+0x6939 027453 fetch 3 ,mem_tx_fifo1 
+0x693a 027454 rtn 
+:      027462 l2cap_malloc_is_fifo_empty:
+0x693b 027463 bpatch patch1c_2 ,mem_patch1c 
+0x693c 027464 fetch 3 ,mem_tx_fifo3 
+0x693d 027465 rtn 
+:      027472 l2cap_malloc_fifo_get_first_ptr:
+0x693e 027473 call l2cap_malloc_is_fifo_empty 
+0x693f 027474 branch l2cap_malloc_fifo_get_first_ptr_empty ,blank 
+0x6940 027475 arg mem_tx_fifo0 ,contr 
+:      027476 l2cap_malloc_free_loop:
+0x6941 027477 ifetch 3 ,contr 
+0x6942 027478 branch l2cap_malloc_free_loop ,blank 
+:      027479 l2cap_malloc_fifo_get_first_ptr_empty:
+0x6943 027480 increase -3 ,contr 
+0x6944 027481 rtn 
+:      027489 l2cap_malloc_get_full_map:
+0x6945 027490 bpatch patch1c_3 ,mem_patch1c 
+0x6946 027491 arg 4 ,loopcnt 
+0x6947 027492 arg mem_tx_fifo0_map ,contr 
+0x6948 027493 arg 0 ,temp 
+:      027494 l2cap_malloc_get_full_map_loop:
+0x6949 027495 ifetch 3 ,contr 
+0x694a 027496 and pdata ,0xff ,pdata 
+0x694b 027497 ior temp ,temp 
+0x694c 027498 loop l2cap_malloc_get_full_map_loop 
+0x694d 027499 storet 1 ,mem_used_map 
+0x694e 027500 rtn 
+:      027503 l2cap_lpm_get_wake_lock:
+0x694f 027504 arg wake_lock_l2cap_tx ,queue 
+0x6950 027505 branch lpm_get_wake_lock 
+:      027507 l2cap_lpm_put_wake_lock:
+0x6951 027508 arg wake_lock_l2cap_tx ,queue 
+0x6952 027509 branch lpm_put_wake_lock 
+:      027520 twspi_reset:
+0x6953 027521 bpatch patch1c_5 ,mem_patch1c 
+0x6954 027522 sub temp ,ui_button_gpio_disable ,null 
+0x6955 027523 rtn zero 
+0x6956 027524 copy temp ,pdata 
+0x6957 027525 and_into 0xff ,pdata 
+0x6958 027526 sub pdata ,gpio_number + -1 ,null 
+0x6959 027527 nbranch twspi_reset_ext ,positive 
+0x695a 027528 arg core_gpio_conf ,contw 
+:      027529 twspi_reset_next:
+0x695b 027530 iadd contw ,contw 
+0x695c 027531 copy contw ,rega 
+0x695d 027532 arg gpcfg_output_low ,temp 
+0x695e 027533 istoret 1 ,contw 
+0x695f 027534 call twspi_disable 
+0x6960 027535 nop 30 
+0x6961 027536 copy rega ,contw 
+0x6962 027537 arg gpcfg_output_high ,temp 
+0x6963 027538 istoret 1 ,contw 
+0x6964 027539 branch twspi_enable 
+:      027541 twspi_reset_ext:
+0x6965 027542 arg core_gpio_conf_hi ,contw 
+0x6966 027543 increase -16 ,pdata 
+0x6967 027544 branch twspi_reset_next 
+:      027547 twspi_disable:
+0x6968 027548 fetch 1 ,core_spid_delay 
+0x6969 027549 and_into 0x7f ,pdata 
+0x696a 027550 store 1 ,core_spid_delay 
+0x696b 027551 rtn 
+:      027553 twspi_enable:
+0x696c 027554 fetch 1 ,core_spid_delay 
+0x696d 027555 or_into 0x80 ,pdata 
+0x696e 027556 store 1 ,core_spid_delay 
+0x696f 027557 rtn 
+:      027559 twspi_write:
+0x6970 027560 branch spid_write_reg 
+:      027562 twspi_read:
+0x6971 027563 branch spid_read_reg 
+:      027567 aes_disable:
+0x6972 027568 fetch 1 ,core_bist_ctrl 
+0x6973 027569 set0 aes_en ,pdata 
+0x6974 027570 store 1 ,core_bist_ctrl 
+0x6975 027571 rtn 
+:      027573 read_function_aes:
+0x6976 027574 nbranch read_function ,user 
+0x6977 027575 fetch 1 ,core_bist_ctrl 
+0x6978 027576 set1 aes_en ,pdata 
+0x6979 027577 store 1 ,core_bist_ctrl 
+:      027578 read_function:
+0x697a 027579 copy temp ,null 
+0x697b 027580 branch read_fuction_zero ,zero 
+0x697c 027581 copy regc ,pc 
+:      027583 read_fuction_zero:
+0x697d 027584 isolate0 0 ,null 
+0x697e 027585 branch set_ucode_status 
+:      027588 get_block_header:
+0x697f 027589 force 4 ,temp 
+:      027590 get_block_header0:
+0x6980 027591 arg mem_ucode_buf ,rega 
+0x6981 027592 call aes_disable 
+0x6982 027593 call read_function 
+0x6983 027594 arg 0x55aa ,rega 
+0x6984 027595 fetch 2 ,mem_ucode_buf 
+0x6985 027596 ifetcht 2 ,contr 
+0x6986 027597 isub rega ,null 
+0x6987 027598 rtn 
+:      027601 read_first_block:
+0x6988 027602 call load_aes_reinit ,user 
+0x6989 027603 arg 2 ,temp 
+0x698a 027604 arg mem_ucode_ptr ,rega 
+0x698b 027605 call read_function 
+0x698c 027606 fetch 2 ,mem_ucode_ptr 
+:      027607 read_first_block_cont:
+0x698d 027608 store 2 ,mem_addr_mi 
+0x698e 027609 call get_iv ,user 
+0x698f 027610 rtn 
+:      027612 get_iv:
+0x6990 027613 arg 16 ,temp 
+0x6991 027614 arg mem_ucode_keybuf ,rega 
+0x6992 027615 call aes_disable 
+0x6993 027616 call read_function 
+:      027617 set_iv:
+0x6994 027618 arg mem_ucode_keybuf ,contr 
+0x6995 027619 arg 16 ,loopcnt 
+0x6996 027620 call aes_load_data 
+0x6997 027621 call aes_init 
+0x6998 027622 call aes_clear_data 
+0x6999 027623 branch do_aes_cbc 
+:      027625 load_aes_reinit:
+0x699a 027626 jam 0x0 ,core_ucode_ctrl 
+0x699b 027627 call aes_disable 
+0x699c 027628 branch aes_clear_data 
+:      027630 load_storage:
+0x699d 027631 setarg 0 
+0x699e 027632 store 2 ,mem_queue 
+0x699f 027633 disable match 
+0x69a0 027634 call get_block_header 
+0x69a1 027635 nrtn zero 
+0x69a2 027636 enable match 
+0x69a3 027637 setarg 0x8000 
+0x69a4 027638 store 3 ,core_ucode_hi 
+0x69a5 027639 arg core_ucode_data ,rega 
+0x69a6 027640 call read_function_aes 
+0x69a7 027641 jam 0x0 ,core_ucode_ctrl 
+0x69a8 027642 fetch 1 ,mem_ucode_status 
+0x69a9 027643 rtnbit0 0 
+:      027644 load_storage_loop:
+0x69aa 027645 arg 6 ,temp 
+0x69ab 027646 call get_block_header0 
+0x69ac 027647 nbranch load_data_checksum_compare ,zero 
+0x69ad 027648 ifetchr rega ,2 ,contr 
+0x69ae 027649 call read_function 
+0x69af 027650 call load_data_checksum_calc 
+0x69b0 027651 branch load_storage_loop 
+:      027654 load_data_checksum_calc:
+0x69b1 027655 fetch 2 ,mem_queue 
+0x69b2 027656 arg 6 ,loopcnt 
+0x69b3 027657 arg mem_ucode_buf ,contr 
+0x69b4 027658 call cal_sum 
+0x69b5 027659 fetchr loopcnt ,2 ,mem_ucode_len 
+0x69b6 027660 copy rega ,contr 
+0x69b7 027661 call cal_sum 
+0x69b8 027662 store 2 ,mem_queue 
+0x69b9 027663 rtn 
+:      027665 load_data_checksum_compare:
+0x69ba 027666 fetch 1 ,mem_otp_load_check_sum 
+0x69bb 027667 beq 0x5a ,load_data_checksum_ok 
+0x69bc 027668 arg 0xaa55 ,rega 
+0x69bd 027669 fetch 2 ,mem_ucode_buf 
+0x69be 027670 isub rega ,null 
+0x69bf 027671 nbranch load_data_checksum_compare_fail ,zero 
+0x69c0 027672 arg 0x55aa ,rega 
+0x69c1 027673 fetch 2 ,mem_ucode_len 
+0x69c2 027674 isub rega ,null 
+0x69c3 027675 nbranch load_data_checksum_compare_fail ,zero 
+0x69c4 027676 fetch 2 ,mem_sched_addr 
+0x69c5 027677 fetcht 2 ,mem_queue 
+0x69c6 027678 isub temp ,null 
+0x69c7 027679 nbranch load_data_checksum_compare_fail ,zero 
+:      027680 load_data_checksum_ok:
+0x69c8 027681 set1 15 ,rega 
+0x69c9 027682 branch read_fuction_zero 
+:      027684 load_data_checksum_compare_fail:
+0x69ca 027685 jam 0 ,mem_ucode_status 
+0x69cb 027686 rtn 
+:      027689 loadcode_lock_load_ucode:
+0x69cc 027692 and pdata ,0xff ,pdata 
+0x69cd 027693 rshift4 pdata ,pdata 
+0x69ce 027694 store 1 ,mem_device_option 
+0x69cf 027695 branch loadcode_load_key 
+:      027697 loadcode_lock:
+0x69d0 027698 fetch 2 ,core_ucode_flag 
+0x69d1 027699 nbranch loadcode_lock_load_ucode ,blank 
+0x69d2 027700 call loadcode_load_key 
+0x69d3 027701 fetch 2 ,mem_device_option 
+0x69d4 027702 rtn blank 
+0x69d5 027703 call loadcode_set_lock 
+0x69d6 027704 branch lpm_write_lock 
+:      027706 loadcode_set_lock:
+0x69d7 027707 fetch 1 ,mem_device_option 
+0x69d8 027708 rtn blank 
+0x69d9 027709 and pdata ,0xf ,temp 
+0x69da 027710 storet 1 ,mem_device_option 
+0x69db 027711 rshift4 pdata ,pdata 
+0x69dc 027712 ixor temp ,pdata 
+0x69dd 027713 bne 0xf ,app_lpm_mpu_lock_24g_ble 
+0x69de 027714 branch app_lpm_lock_check 
+:      027716 load_otp_hv_vsel:
+0x69df 027717 fetch 1 ,mem_otp_hv_sel 
+0x69e0 027718 ncall lpm_save_sel_hv ,blank 
+0x69e1 027719 fetch 1 ,mem_otp_ldo_vsel 
+0x69e2 027720 rtn blank 
+0x69e3 027721 branch lpm_write_io_vsel 
+:      027724 load_otp_set_init:
+0x69e4 027725 bpatch patch1c_6 ,mem_patch1c 
+0x69e5 027726 nrtn wake 
+0x69e6 027727 fetch 2 ,mem_otp_charge_pump_x 
+0x69e7 027728 rtn blank 
+0x69e8 027729 store 2 ,mem_otp_charge_pump 
+0x69e9 027730 branch set_otp_config2 
+:      027732 set_otp_config:
+0x69ea 027733 call load_otp_hv_vsel 
+0x69eb 027734 fetch 4 ,mem_otp_core_ldo 
+0x69ec 027735 rtn blank 
+0x69ed 027736 until null ,lpo_edge 
+0x69ee 027737 fetch 1 ,0x8136 
+0x69ef 027738 and pdata ,0xf0 ,pdata 
+0x69f0 027739 fetcht 1 ,mem_otp_core_ldo 
+0x69f1 027740 ior temp ,pdata 
+0x69f2 027741 store 1 ,0x8136 
+0x69f3 027742 until null ,lpo_edge 
+0x69f4 027744 fetch 1 ,0x8138 
+0x69f5 027745 and pdata ,0x7 ,pdata 
+0x69f6 027746 fetcht 1 ,mem_otp_verf_bg 
+0x69f7 027747 lshift3 temp ,temp 
+0x69f8 027748 ior temp ,pdata 
+0x69f9 027749 store 1 ,0x8138 
+0x69fa 027750 until null ,lpo_edge 
+:      027751 set_otp_config2:
+0x69fb 027752 fetch 1 ,0x8acb 
+0x69fc 027753 and pdata ,0xf0 ,pdata 
+0x69fd 027754 fetcht 1 ,mem_otp_charge_pump 
+0x69fe 027755 storet 1 ,mem_otp_charge_pump_x 
+0x69ff 027756 ior temp ,pdata 
+0x6a00 027757 store 1 ,0x8acb 
+0x6a01 027759 fetch 1 ,mem_otp_dpll_ibais 
+0x6a02 027760 store 1 ,mem_otp_dpll_ibais_x 
+0x6a03 027761 isolate1 3 ,pdata 
+0x6a04 027762 fetch 1 ,0x8a06 
+0x6a05 027763 setflag true ,7 ,pdata 
+0x6a06 027764 store 1 ,0x8a06 
+0x6a07 027766 fetch 1 ,mem_otp_dpll_ibais 
+0x6a08 027767 and pdata ,7 ,temp 
+0x6a09 027768 lshift4 temp ,temp 
+0x6a0a 027769 lshift temp ,temp 
+0x6a0b 027770 storet 1 ,mem_ring_ibias_trim 
+0x6a0c 027771 fetch 1 ,0x8a02 
+0x6a0d 027772 and pdata ,0x1f ,pdata 
+0x6a0e 027773 ior temp ,pdata 
+0x6a0f 027774 store 1 ,0x8a02 
+0x6a10 027775 rtn 
+:      027778 loadcode_load_key:
+0x6a11 027779 disable user 
+0x6a12 027780 fetch 1 ,mem_ucode_flag 
+0x6a13 027781 rtnbit0 otp_uflag_aes 
+0x6a14 027782 call loadcode_check_otp_lock 
+0x6a15 027783 arg otp_offset_ucode_key_l ,pdata 
+0x6a16 027784 iadd regb ,regb 
+0x6a17 027785 force 16 ,loopcnt 
+0x6a18 027786 arg mem_ucode_keybuf ,rega 
+0x6a19 027787 call otp_read_data 
+0x6a1a 027788 jam otp_key_lock ,core_misc_ctrl 
+0x6a1b 027789 arg mem_ucode_keybuf ,contr 
+0x6a1c 027790 call load_key 
+0x6a1d 027792 arg mem_ucode_keybuf ,contw 
+0x6a1e 027793 call memset0_16 
+0x6a1f 027794 branch enable_user 
+:      027797 loadcode:
+0x6a20 027798 jam 0x25 ,core_clkoff 
+0x6a21 027799 call enable_otp_read 
+0x6a22 027800 arg otp_offset_patch_ptr ,regb 
+0x6a23 027801 force 11 ,loopcnt 
+0x6a24 027802 arg mem_ucode_ptr ,rega 
+0x6a25 027803 call otp_read_data1 
+0x6a26 027804 fetchr regf ,5 ,mem_ucode_ptr 
+0x6a27 027805 fetchr rege ,6 ,mem_bistfix_val 
+0x6a28 027806 fetch 1 ,mem_ucode_flag 
+0x6a29 027807 bbit0 otp_uflag_bist ,loadcode_nobist 
+0x6a2a 027808 jam 0x7 ,core_bist_ctrl 
+:      027809 loadcode_bistwait:
+0x6a2b 027810 fetch 1 ,core_bist_done 
+0x6a2c 027811 bne 7 ,loadcode_bistwait 
+0x6a2d 027812 fetch 1 ,core_bist_fail 
+0x6a2e 027813 lshift4 pdata ,pdata 
+0x6a2f 027814 store 1 ,core_bist_ctrl 
+0x6a30 027815 branch loadcode_otp 
+:      027817 loadcode_nobist:
+0x6a31 027818 call set_bistfix 
+0x6a32 027819 call clean_xmem 
+0x6a33 027820 call clean_smem 
+:      027821 loadcode_otp:
+0x6a34 027822 storer regf ,5 ,mem_ucode_ptr 
+0x6a35 027823 storer rege ,6 ,mem_bistfix_val 
+0x6a36 027824 call loadcode_check_otp_lock 
+0x6a37 027825 arg otp_offset_adc_param_l ,pdata 
+0x6a38 027826 iadd regb ,regb 
+0x6a39 027827 arg 32 ,loopcnt 
+0x6a3a 027828 arg mem_otp_temp ,rega 
+0x6a3b 027829 call otp_read_data 
+0x6a3c 027831 call set_otp_config 
+0x6a3d 027832 call loadcode_lock 
+0x6a3e 027834 fetch 1 ,mem_ucode_flag 
+0x6a3f 027835 bbit0 otp_uflag_aes ,loadcode_unenc 
+0x6a40 027836 fetcht 1 ,mem_peripheral_lock_flag 
+0x6a41 027837 arg 0 ,pdata 
+0x6a42 027838 set1 otp_not_limit ,pdata 
+0x6a43 027839 set1 otp_limit ,pdata 
+0x6a44 027840 iand temp ,rega 
+0x6a45 027841 sub rega ,0 ,null 
+0x6a46 027842 branch loadcode_error ,zero 
+0x6a47 027843 isub rega ,null 
+0x6a48 027844 branch loadcode_error ,zero 
+:      027845 loadcode_unenc:
+0x6a49 027846 jam 0 ,mem_loadcode_times 
+0x6a4a 027847 arg otp_load_code ,regc 
+:      027848 loadcode_otp_loop:
+0x6a4b 027849 call loadcode_timeout 
+0x6a4c 027850 nbranch loadcode_error ,positive 
+0x6a4d 027851 fetch 2 ,mem_ucode_ptr 
+0x6a4e 027852 branch loadcode_otp_end ,blank 
+0x6a4f 027853 call read_first_block_cont 
+0x6a50 027854 call load_storage 
+0x6a51 027855 nbranch loadcode_otp_end ,match 
+0x6a52 027856 fetch 1 ,mem_ucode_status 
+0x6a53 027857 compare 3 ,pdata ,3 
+0x6a54 027858 nbranch loadcode_otp_loop ,true 
+0x6a55 027859 call run_otp_code 
+:      027860 loadcode_otp_end:
+0x6a56 027861 call disable_otp 
+0x6a57 027862 jam 0 ,mem_loadcode_times 
+:      027863 loadcode_iic_loop:
+0x6a58 027864 call loadcode_timeout 
+0x6a59 027865 nbranch loadcode_error ,positive 
+0x6a5a 027866 fetch 1 ,mem_ucode_flag 
+0x6a5b 027867 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+0x6a5c 027868 call iicd_load_gpio_init 
+0x6a5d 027869 call clear_eeprom_size_2k 
+0x6a5e 027870 call loadcode_iic_by_eeprom 
+0x6a5f 027871 nbranch loadcode_iic_eeprom_2k ,match 
+0x6a60 027872 fetch 1 ,mem_ucode_status 
+0x6a61 027873 compare 3 ,pdata ,3 
+0x6a62 027874 nbranch loadcode_iic_loop ,true 
+0x6a63 027875 branch loadcode_spi 
+:      027877 run_otp_code:
+0x6a64 027878 setarg 0x1ff 
+0x6a65 027879 arg 0 ,pc 
+0x6a66 027880 rtn 
+:      027882 loadcode_check_otp_lock:
+0x6a67 027883 arg otp_offset_h ,regb 
+0x6a68 027884 fetch 1 ,core_peripheral_lock 
+0x6a69 027885 bbit1 otp_limit ,loadcode_otp_lock 
+0x6a6a 027886 fetch 1 ,mem_peripheral_lock_flag 
+0x6a6b 027887 rtnbit0 otp_limit 
+:      027888 loadcode_otp_lock:
+0x6a6c 027889 arg 0 ,regb 
+0x6a6d 027890 rtn 
+:      027893 loadcode_iic_eeprom_2k:
+0x6a6e 027894 call set_eeprom_size_2k 
+0x6a6f 027895 fetch 1 ,mem_ucode_flag 
+0x6a70 027896 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+0x6a71 027897 call loadcode_iic_by_eeprom 
+0x6a72 027898 nbranch loadcode_spi ,match 
+0x6a73 027899 fetch 1 ,mem_ucode_status 
+0x6a74 027900 compare 3 ,pdata ,3 
+0x6a75 027901 nbranch loadcode_iic_loop ,true 
+0x6a76 027902 branch loadcode_hci 
+:      027904 loadcode_spi:
+0x6a77 027905 jam 0 ,mem_loadcode_times 
+:      027906 loadcode_spi_loop:
+0x6a78 027907 call loadcode_timeout 
+0x6a79 027908 nbranch loadcode_error ,positive 
+0x6a7a 027909 fetch 1 ,mem_ucode_flag 
+0x6a7b 027910 bbit1 otp_uflag_skip_flash ,loadcode_hci 
+0x6a7c 027911 call spid_init_flash 
+0x6a7d 027912 nop 200 
+0x6a7e 027913 call spid_flash_release_form_powerdown 
+0x6a7f 027914 nop 100 
+0x6a80 027915 arg spid_load_flash ,regc 
+0x6a81 027916 call read_first_block 
+0x6a82 027917 call load_storage 
+0x6a83 027918 nbranch loadcode_hci ,match 
+0x6a84 027919 fetch 1 ,mem_ucode_status 
+0x6a85 027920 compare 3 ,pdata ,3 
+0x6a86 027921 nbranch loadcode_spi_loop ,true 
+:      027923 loadcode_hci:
+0x6a87 027924 call clear_key_buf 
+0x6a88 027925 fetch 1 ,mem_ucode_flag 
+0x6a89 027926 rtnbit0 otp_uflag_hci 
+0x6a8a 027927 branch hci_init 
+:      027929 clear_key_buf:
+0x6a8b 027930 arg mem_ucode_keybuf ,contw 
+0x6a8c 027931 call memset0_16 
+0x6a8d 027932 force regidx_key ,regext_index 
+0x6a8e 027933 call aes_clear 
+0x6a8f 027934 jam 0x21 ,core_clkoff 
+0x6a90 027935 rtn 
+:      027937 iicd_load_gpio_init:
+0x6a91 027938 fetch 1 ,mem_eeprom_sda_gpio 
+0x6a92 027939 fetcht 1 ,mem_eeprom_scl_gpio 
+0x6a93 027940 isub temp ,null 
+0x6a94 027941 nbranch iicd_read_init_pin ,zero 
+:      027942 iicd_load_default_gpio:
+0x6a95 027943 jam 4 ,mem_eeprom_wp_gpio 
+0x6a96 027944 jam 8 ,mem_eeprom_scl_gpio 
+0x6a97 027945 jam 7 ,mem_eeprom_sda_gpio 
+0x6a98 027946 branch iicd_read_init_pin 
+:      027950 loadcode_iic_by_eeprom:
+0x6a99 027951 setarg 0x0 
+0x6a9a 027952 store 2 ,mem_addr_mi 
+0x6a9b 027953 arg iicd_read_eep ,regc 
+0x6a9c 027954 call iic_init_600khz 
+0x6a9d 027955 call read_first_block 
+0x6a9e 027956 branch load_storage 
+:      027961 loadcode_timeout:
+0x6a9f 027962 call loadcode_error_delay 
+0x6aa0 027963 fetch 1 ,mem_loadcode_times 
+0x6aa1 027964 increase 1 ,pdata 
+0x6aa2 027965 sub pdata ,3 ,null 
+0x6aa3 027966 store 1 ,mem_loadcode_times 
+0x6aa4 027967 rtn 
+:      027969 loadcode_error_delay:
+0x6aa5 027970 fetch 1 ,mem_loadcode_times 
+0x6aa6 027971 rtn blank 
+0x6aa7 027972 fetch 1 ,mem_otp_load_delay 
+0x6aa8 027973 rtn blank 
+0x6aa9 027974 copy pdata ,loopcnt 
+0x6aaa 027975 branch delay_ms_wait 
+:      027978 loadcode_error:
+0x6aab 027979 call clear_key_buf 
+0x6aac 027980 call aes_disable 
+0x6aad 027982 call ice_break 
+0x6aae 027983 rtn 
+:      027985 set_bistfix_wake:
+0x6aaf 027986 call set_bistfix 
+0x6ab0 027987 call set_bistfix_wake_xram 
+:      027989 set_bistfix_wake_patchram:
+0x6ab1 027990 fetch 1 ,core_bist_ctrl 
+0x6ab2 027991 rtnbit0 bist_ctrl_fix_patch_ram 
+0x6ab3 027993 call set_bistfix_set_patchram_addr 
+0x6ab4 027994 arg 4 ,loopcnt 
+0x6ab5 027995 arg mem_bistfix_val_patchram ,contr 
+0x6ab6 027996 branch load_ucode_loop 
+:      027999 set_bistfix_wake_xram:
+0x6ab7 028000 fetch 1 ,core_bist_ctrl 
+0x6ab8 028001 rtnbit0 bist_ctrl_fix_xram 
+0x6ab9 028002 fetcht 2 ,mem_bistfix_addr_x 
+0x6aba 028003 rshift3 temp ,temp 
+0x6abb 028004 arg 0x4000 ,pdata 
+0x6abc 028005 iadd temp ,contw 
+0x6abd 028006 fetch 1 ,mem_bistfix_val_xram 
+0x6abe 028007 branch istore_1_contw_rtn 
+:      028010 set_bistfix_save_xram:
+0x6abf 028011 bpatchx patch3e_2 ,mem_patch3e 
+0x6ac0 028012 fetch 1 ,core_bist_ctrl 
+0x6ac1 028013 rtnbit0 bist_ctrl_fix_xram 
+0x6ac2 028014 fetchr rega ,2 ,mem_bistfix_addr_x 
+0x6ac3 028015 rshift3 rega ,rega 
+0x6ac4 028016 arg 0x4000 ,pdata 
+0x6ac5 028017 iadd rega ,contr 
+0x6ac6 028018 ifetch 1 ,contr 
+0x6ac7 028019 store 1 ,mem_bistfix_val_xram 
+0x6ac8 028020 rtn 
+:      028022 set_bistfix_save_patchram:
+0x6ac9 028023 rtn wake 
+0x6aca 028024 fetch 1 ,core_bist_ctrl 
+0x6acb 028025 rtnbit0 bist_ctrl_fix_patch_ram 
+0x6acc 028026 call set_bistfix_set_patchram_addr 
+0x6acd 028027 nop 10 
+0x6ace 028028 arg 4 ,loopcnt 
+0x6acf 028029 arg mem_bistfix_val_patchram ,contw 
+0x6ad0 028030 branch save_ucode_loop 
+:      028032 set_bistfix_set_patchram_addr:
+0x6ad1 028033 jam 0 ,core_ucode_hi 
+0x6ad2 028034 fetch 2 ,mem_bistfix_addr_patch 
+0x6ad3 028035 rshift4 pdata ,pdata 
+0x6ad4 028036 rshift pdata ,pdata 
+0x6ad5 028037 rshift4 pdata ,temp 
+0x6ad6 028038 rshift2 temp ,temp 
+0x6ad7 028039 set1 7 ,temp 
+0x6ad8 028040 storet 1 ,core_ucode_ctrl 
+0x6ad9 028041 lshift2 pdata ,pdata 
+0x6ada 028042 store 1 ,core_ucode_low 
+0x6adb 028043 rtn 
+:      028046 set_bistfix:
+0x6adc 028047 fetch 1 ,mem_ucode_flag 
+0x6add 028048 and_into 0xe0 ,pdata 
+0x6ade 028049 rtn blank 
+0x6adf 028050 rshift pdata ,pdata 
+0x6ae0 028051 store 1 ,core_bist_ctrl 
+0x6ae1 028052 setarg 1 
+0x6ae2 028053 arg mem_bistfix_val ,contr 
+:      028054 set_bistfix_loop:
+0x6ae3 028055 ifetcht 2 ,contr 
+0x6ae4 028056 storet 2 ,core_lpm_reg 
+0x6ae5 028057 store 1 ,core_set_bistfix 
+0x6ae6 028058 lshift pdata ,pdata 
+0x6ae7 028059 bbit0 3 ,set_bistfix_loop 
+0x6ae8 028060 rtn 
+:      028063 set_ucode_status:
+0x6ae9 028064 fetch 1 ,mem_ucode_status 
+0x6aea 028065 lshift pdata ,pdata 
+0x6aeb 028066 setflag true ,0 ,pdata 
+0x6aec 028067 isolate0 15 ,rega 
+0x6aed 028068 rtn true 
+0x6aee 028069 store 1 ,mem_ucode_status 
+0x6aef 028070 rtn 
+:      028073 decrypt_code:
+0x6af0 028074 fetch 1 ,core_bist_ctrl 
+0x6af1 028075 rtnbit0 aes_en 
+0x6af2 028076 branch decrypt_code_skip 
+:      028077 decrypt_code_loop:
+0x6af3 028078 fetch 1 ,core_dma_status 
+0x6af4 028079 qisolate1 pdata 
+0x6af5 028080 rtn true 
+:      028081 decrypt_code_skip:
+0x6af6 028082 fetch 1 ,core_misc_status 
+0x6af7 028083 bbit0 1 ,decrypt_code_loop 
+0x6af8 028084 call do_aes_cbc 
+0x6af9 028085 branch decrypt_code_loop 
+:      028097 save_ucode_loop:
+0x6afa 028098 fetch 1 ,core_ucode_data 
+0x6afb 028099 istore 1 ,contw 
+0x6afc 028100 loop save_ucode_loop 
+0x6afd 028101 jam 0x0 ,core_ucode_ctrl 
+0x6afe 028102 rtn 
+:      028105 load_ucode:
+0x6aff 028106 fetch 2 ,mem_patch_ptr 
+0x6b00 028107 rtn blank 
+0x6b01 028108 jam 0x80 ,core_ucode_ctrl 
+0x6b02 028109 jam 0 ,core_ucode_hi 
+0x6b03 028110 jam 0 ,core_ucode_low 
+0x6b04 028111 fetcht 2 ,mem_patch_len 
+0x6b05 028112 lshift2 temp ,loopcnt 
+0x6b06 028113 iforce contr 
+:      028114 load_ucode_loop:
+0x6b07 028115 ifetch 1 ,contr 
+0x6b08 028116 store 1 ,core_ucode_data 
+0x6b09 028117 loop load_ucode_loop 
+0x6b0a 028118 jam 0x0 ,core_ucode_ctrl 
+0x6b0b 028119 rtn 
+:      028126 otp_load_code:
+0x6b0c 028127 copy temp ,loopcnt 
+0x6b0d 028128 fetch 2 ,mem_addr_mi 
+0x6b0e 028129 iadd temp ,temp 
+0x6b0f 028130 storet 2 ,mem_addr_mi 
+0x6b10 028131 iforce regb 
+0x6b11 028132 copy rega ,nap 
+0x6b12 028133 jam init_key ,core_misc_ctrl 
+0x6b13 028134 call otp_read_data 
+0x6b14 028135 copy nap ,rega 
+0x6b15 028136 isolate0 15 ,rega 
+0x6b16 028137 rtn true 
+0x6b17 028138 call enable_true ,blank 
+0x6b18 028139 branch set_ucode_status 
+:      028142 otp_enable_chgpump25:
+0x6b19 028143 jam 0x1 ,core_chgpump_ctrl 
+0x6b1a 028144 nop 300 
+0x6b1b 028145 jam 0x5 ,core_chgpump_ctrl 
+0x6b1c 028146 nop 100 
+0x6b1d 028147 jam 0x25 ,core_chgpump_ctrl 
+0x6b1e 028148 nop 1000 
+0x6b1f 028149 jam 0x27 ,core_chgpump_ctrl 
+0x6b20 028150 nop 300 
+0x6b21 028151 rtn 
+:      028153 otp_enable_chgpump65:
+0x6b22 028154 call otp_enable_chgpump25 
+0x6b23 028155 jam 0x3f ,core_chgpump_ctrl 
+0x6b24 028156 rtn 
+:      028158 disable_otp:
+0x6b25 028159 jam 0x83 ,core_otp_ctrl 
+:      028160 otp_disable_chgpump:
+0x6b26 028161 jam 0 ,core_chgpump_ctrl 
+0x6b27 028162 rtn 
+:      028164 enable_otp_read:
+0x6b28 028165 call otp_enable_chgpump25 
+:      028167 otp_reset:
+0x6b29 028168 jam 0x82 ,core_otp_ctrl 
+0x6b2a 028169 nop 12 
+0x6b2b 028170 jam 0x80 ,core_otp_ctrl 
+0x6b2c 028171 jam 0x82 ,core_otp_ctrl 
+0x6b2d 028172 nop 150 
+0x6b2e 028173 rtn 
+:      028176 otp_set_addr:
+0x6b2f 028177 lshift3 regb ,regb 
+0x6b30 028178 storer regb ,2 ,core_otp_addr 
+0x6b31 028179 jam 0 ,core_otp_din 
+0x6b32 028180 rtn 
+:      028183 otp_write:
+0x6b33 028184 bpatch patch1d_1 ,mem_patch1d 
+0x6b34 028185 call otp_enable_chgpump65 
+0x6b35 028186 call otp_set_addr 
+0x6b36 028187 call otp_reset 
+:      028188 otp_program:
+0x6b37 028189 ifetcht 1 ,rega 
+0x6b38 028190 increase 1 ,rega 
+0x6b39 028191 force 0 ,queue 
+:      028192 otp_program_bit:
+0x6b3a 028193 qisolate0 temp 
+0x6b3b 028194 branch otp_skip_0 ,true 
+0x6b3c 028195 fetch 1 ,core_otp_din 
+0x6b3d 028196 set1 6 ,pdata 
+0x6b3e 028197 set1 7 ,pdata 
+0x6b3f 028198 store 1 ,core_otp_din 
+0x6b40 028199 jam 0x02 ,core_otp_ctrl 
+0x6b41 028200 jam 0x82 ,core_otp_ctrl 
+0x6b42 028201 set0 7 ,pdata 
+0x6b43 028202 store 1 ,core_otp_din 
+0x6b44 028203 jam 0x8a ,core_otp_ctrl 
+0x6b45 028204 nop 11 
+0x6b46 028205 jam 0xca ,core_otp_ctrl 
+0x6b47 028206 nop 33 
+0x6b48 028207 jam 0x4a ,core_otp_ctrl 
+0x6b49 028208 nop 44 
+0x6b4a 028209 jam 0xca ,core_otp_ctrl 
+0x6b4b 028210 nop 22 
+0x6b4c 028211 jam 0x8a ,core_otp_ctrl 
+0x6b4d 028212 nop 33 
+0x6b4e 028213 jam 0x82 ,core_otp_ctrl 
+0x6b4f 028214 nop 1 
+0x6b50 028215 jam 0x92 ,core_otp_ctrl 
+0x6b51 028216 nop 10 
+0x6b52 028217 jam 0xb2 ,core_otp_ctrl 
+0x6b53 028218 fetch 1 ,core_otp_rdata 
+0x6b54 028219 jam 0x92 ,core_otp_ctrl 
+0x6b55 028220 nop 1 
+0x6b56 028221 jam 0x82 ,core_otp_ctrl 
+0x6b57 028222 nop 1 
+0x6b58 028223 qisolate0 pdata 
+0x6b59 028224 branch otp_program_bit ,true 
+:      028225 otp_skip_0:
+0x6b5a 028226 fetch 2 ,core_otp_addr 
+0x6b5b 028227 increase 1 ,pdata 
+0x6b5c 028228 store 2 ,core_otp_addr 
+0x6b5d 028229 increase 1 ,queue 
+0x6b5e 028230 compare 8 ,queue ,0xf 
+0x6b5f 028231 nbranch otp_program_bit ,true 
+0x6b60 028232 loop otp_program 
+0x6b61 028233 branch otp_disable_chgpump 
+:      028239 otp_read_data:
+0x6b62 028240 bpatch patch1d_2 ,mem_patch1d 
+:      028241 otp_read_data1:
+0x6b63 028242 call otp_set_addr 
+0x6b64 028243 jam 0xa2 ,core_otp_ctrl 
+0x6b65 028244 increase 8 ,regb 
+0x6b66 028245 arg 0 ,queue 
+0x6b67 028246 setarg -1 
+:      028247 otp_read_data_loop:
+0x6b68 028248 fetcht 1 ,core_otp_rdata 
+0x6b69 028249 istoret 1 ,rega 
+0x6b6a 028250 bcrc temp 
+0x6b6b 028251 jam shift_key ,core_misc_ctrl 
+0x6b6c 028252 storer regb ,2 ,core_otp_addr 
+0x6b6d 028253 isolate1 15 ,rega 
+0x6b6e 028254 branch otp_read_noinc ,true 
+0x6b6f 028255 increase 1 ,rega 
+0x6b70 028256 branch otp_read_unenc 
+:      028258 otp_read_noinc:
+0x6b71 028259 nbranch otp_read_unenc ,user 
+0x6b72 028260 increase 1 ,queue 
+0x6b73 028261 compare 0 ,queue ,0xf 
+0x6b74 028262 nbranch otp_read_unenc ,true 
+0x6b75 028263 call do_aes_cbc 
+0x6b76 028264 jam init_key ,core_misc_ctrl 
+:      028265 otp_read_unenc:
+0x6b77 028266 increase 8 ,regb 
+0x6b78 028267 loop otp_read_data_loop 
+0x6b79 028268 jam 0x82 ,core_otp_ctrl 
+0x6b7a 028269 rtn 
+:      028280 app_lpm_lock_check:
+0x6b7b 028281 fetch 1 ,mem_device_option 
+0x6b7c 028282 beq dvc_op_module ,app_lpm_module_lock 
+0x6b7d 028283 beq dvc_op_dongle ,app_lpm_dongle_lock 
+0x6b7e 028285 beq dvc_op_mouse ,app_lpm_mouse_lock 
+0x6b7f 028286 beq dvc_op_shutter ,app_lpm_shutter_lock 
+0x6b80 028287 beq dvc_op_shutter_dy ,app_lpm_shutter_lock 
+0x6b81 028288 beq dvc_op_hci_boot ,app_lpm_hciboot_lock 
+0x6b82 028289 beq dvc_op_remote_car ,app_lpm_car_lock_application_and_ble 
+0x6b83 028290 beq dvc_op_car ,app_lpm_car_lock 
+0x6b84 028291 beq dvc_op_keyboard ,app_lpm_kb_lock 
+0x6b85 028292 beq dvc_op_2g4 ,app_lpm_mpu_lock_ble 
+0x6b86 028293 beq dvc_op_ble ,app_lpm_mpu_lock_24g 
+0x6b87 028294 beq dvc_op_mouse_2g4 ,app_lpm_mouse_lock_24g 
+0x6b88 028295 branch app_lpm_mpu_lock_24g_ble 
+:      028298 app_lpm_kb_lock:
+0x6b89 028299 arg module_init ,pdata 
+0x6b8a 028300 arg shutter_dy_shutter_1s_timer ,temp 
+0x6b8b 028301 branch app_mpu_s0_lock 
+:      028303 app_lpm_module_lock:
+:      028304 app_lpm_hciboot_lock:
+0x6b8c 028305 arg car_init ,pdata 
+0x6b8d 028306 arg keyboard_bt_discovery_button_down_disable ,temp 
+0x6b8e 028307 call app_mpu_s0_lock 
+0x6b8f 028308 branch app_lpm_mpu_lock_24g 
+:      028310 app_lpm_dongle_lock:
+0x6b90 028311 arg keyboard_softreset_process ,pdata 
+0x6b91 028312 arg shutter_dy_shutter_1s_timer ,temp 
+0x6b92 028313 call app_mpu_s0_lock 
+0x6b93 028314 arg car_init ,pdata 
+0x6b94 028315 arg remote_car_wakeup_config_loop ,temp 
+0x6b95 028316 branch app_mpu_s1_lock 
+:      028319 app_lpm_mouse_lock:
+0x6b96 028320 arg car_init ,pdata 
+0x6b97 028321 arg module_set_state ,temp 
+0x6b98 028322 call app_mpu_s0_lock 
+0x6b99 028323 arg rec_cb_function ,pdata 
+0x6b9a 028324 arg shutter_dy_shutter_1s_timer ,temp 
+0x6b9b 028325 branch app_mpu_s1_lock 
+:      028327 app_lpm_mouse_lock_24g:
+0x6b9c 028328 arg car_init ,pdata 
+0x6b9d 028329 arg module_set_state ,temp 
+0x6b9e 028330 call app_mpu_s0_lock 
+0x6b9f 028331 branch app_lpm_mpu_lock_ble 
+:      028333 app_lpm_shutter_lock:
+0x6ba0 028334 arg car_init ,pdata 
+0x6ba1 028335 arg rec_enter_queue ,temp 
+0x6ba2 028336 call app_mpu_s0_lock 
+0x6ba3 028337 branch app_lpm_mpu_lock_24g 
+:      028339 app_lpm_car_lock:
+0x6ba4 028340 arg dongle_init ,pdata 
+0x6ba5 028341 arg shutter_dy_shutter_1s_timer ,temp 
+0x6ba6 028342 branch app_mpu_s0_lock 
+:      028345 app_lpm_car_lock_application_and_ble:
+0x6ba7 028346 arg dongle_init ,pdata 
+0x6ba8 028347 arg shutter_dy_shutter_1s_timer ,temp 
+0x6ba9 028348 call app_mpu_s0_lock 
+0x6baa 028349 arg le_send_adv_ind ,pdata 
+0x6bab 028350 arg le_send_ll_one_lenth ,temp 
+0x6bac 028351 branch app_mpu_s1_lock 
+:      028354 app_mpu_s0_lock:
+0x6bad 028355 lshift16 temp ,temp 
+0x6bae 028356 ior temp ,pdata 
+0x6baf 028357 branch lpm_write_mpu_s0 
+:      028360 app_lpm_mpu_lock_ble:
+0x6bb0 028361 arg le_parse_att ,pdata 
+0x6bb1 028362 arg le_send_ll_one_lenth ,temp 
+:      028363 app_mpu_s1_lock:
+0x6bb2 028364 lshift16 temp ,temp 
+0x6bb3 028365 ior temp ,pdata 
+0x6bb4 028366 branch lpm_write_mpu_s1 
+:      028368 app_lpm_mpu_lock_24g:
+0x6bb5 028369 arg g24_prep ,pdata 
+0x6bb6 028370 arg g24_factory_check ,temp 
+0x6bb7 028371 branch app_mpu_s1_lock 
+:      028373 app_lpm_mpu_lock_24g_ble:
+0x6bb8 028374 call app_lpm_mpu_lock_24g 
+0x6bb9 028375 arg le_parse_att ,pdata 
+0x6bba 028376 arg le_send_ll_one_lenth ,temp 
+0x6bbb 028377 branch app_mpu_s0_lock 
+:      028383 spid_init:
+0x6bbc 028384 bpatch patch1d_3 ,mem_patch1d 
+:      028385 spid_init_common:
+0x6bbd 028386 fetch 1 ,mem_spi_init_clk 
+0x6bbe 028387 store 1 ,core_spid_ctrl 
+0x6bbf 028388 fetch 1 ,mem_spi_init_delay_time 
+0x6bc0 028389 store 1 ,core_spid_delay 
+0x6bc1 028390 setarg mem_spid_tbuf 
+0x6bc2 028391 store 2 ,core_spid_txaddr 
+0x6bc3 028392 setarg mem_spid_rbuf 
+0x6bc4 028393 store 2 ,core_spid_rxaddr 
+0x6bc5 028394 branch twspi_disable 
+:      028399 spid_write_reg:
+0x6bc6 028400 set1 7 ,pdata 
+0x6bc7 028401 store 2 ,mem_spid_tbuf 
+0x6bc8 028402 bpatch patch1d_4 ,mem_patch1d 
+0x6bc9 028403 jam 2 ,core_spid_txlen 
+0x6bca 028404 jam 0 ,core_spid_rxlen 
+0x6bcb 028405 jam spid_start ,core_misc_ctrl 
+0x6bcc 028406 branch wait_spid_done 
+:      028409 spid_read_reg:
+0x6bcd 028410 force 1 ,temp 
+:      028411 spid_read_regs:
+0x6bce 028412 store 1 ,mem_spid_tbuf 
+0x6bcf 028413 bpatch patch1d_5 ,mem_patch1d 
+0x6bd0 028414 jam 1 ,core_spid_txlen 
+0x6bd1 028415 storet 2 ,core_spid_rxlen 
+0x6bd2 028416 jam spid_start ,core_misc_ctrl 
+0x6bd3 028417 call wait_spid_done 
+0x6bd4 028418 fetch 1 ,mem_spid_rbuf 
+0x6bd5 028419 rtn 
+:      028422 wait_spid_done:
+0x6bd6 028426 nop 5 
+0x6bd7 028427 fetch 1 ,core_dma_status 
+0x6bd8 028428 bbit0 spid_done ,wait_spid_done 
+0x6bd9 028429 rtn 
+:      028437 flash_write:
+0x6bda 028438 disable user 
+0x6bdb 028439 copy pdata ,regb 
+0x6bdc 028440 fetch 1 ,mem_spi_write_flash_sm 
+0x6bdd 028441 rtnne flash_sm_no_buys 
+0x6bde 028442 enable user 
+0x6bdf 028443 copy regb ,pdata 
+0x6be0 028444 branch spid_flash_write_start 
+:      028447 flash_write_spi_sm_timer:
+0x6be1 028448 fetch 1 ,mem_spi_write_flash_sm 
+0x6be2 028449 beq flash_sm_start ,spid_flash_write_start 
+0x6be3 028450 beq flash_sm_erase_sector ,spid_flash_erase_sector 
+0x6be4 028451 beq flash_sm_wait_erase_sector ,spid_flash_wait_erase_sector 
+0x6be5 028452 beq flash_sm_write_data ,spid_flash_write_data 
+0x6be6 028453 beq flash_sm_wait_write_data ,spid_flash_wait_write_data 
+0x6be7 028454 rtn 
+:      028456 spid_flash_write_start:
+0x6be8 028457 store 3 ,mem_spi_write_addr 
+0x6be9 028458 copy rega ,pdata 
+0x6bea 028459 store 2 ,mem_spi_write_ptr 
+0x6beb 028460 storet 2 ,mem_spi_write_len 
+0x6bec 028461 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
+0x6bed 028462 branch spid_init_flash 
+:      028464 spid_flash_erase_sector:
+0x6bee 028465 call spid_init_flash 
+0x6bef 028466 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
+0x6bf0 028467 call spid_unlock_flash 
+0x6bf1 028468 arg mem_spid_tbuf ,rega 
+0x6bf2 028469 jam 4 ,core_spid_txlen 
+0x6bf3 028470 fetch 3 ,mem_spi_write_addr 
+0x6bf4 028471 arg flash_command_sector_erase ,temp 
+0x6bf5 028472 branch spid_write_flash_common 
+:      028474 spid_flash_wait_erase_sector:
+0x6bf6 028475 call spid_init_flash 
+0x6bf7 028476 call wait_spid_flash_done 
+0x6bf8 028477 jam flash_sm_write_data ,mem_spi_write_flash_sm 
+0x6bf9 028478 rtn 
+:      028481 spid_flash_write_data:
+0x6bfa 028482 bpatch patch1d_6 ,mem_patch1d 
+0x6bfb 028483 call spid_init_flash 
+0x6bfc 028484 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
+0x6bfd 028485 call spid_unlock_flash 
+0x6bfe 028486 call spid_flash_data_preserve 
+0x6bff 028487 call spid_write_flash 
+0x6c00 028488 branch spid_flash_data_recover 
+:      028489 spid_flash_wait_write_data:
+0x6c01 028490 call spid_init_flash 
+0x6c02 028491 call spid_unlock_flash 
+0x6c03 028492 setarg flash_read_satus 
+0x6c04 028493 call spid_read_reg 
+0x6c05 028494 rtnbit1 flash_status_wip 
+0x6c06 028495 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
+0x6c07 028496 fetch 2 ,mem_cb_spi_flash_write_complate 
+0x6c08 028497 branch callback_func 
+:      028498 spid_flash_data_recover:
+0x6c09 028499 fetch 4 ,mem_temp 
+0x6c0a 028500 fetcht 2 ,mem_spi_write_ptr 
+:      028501 spid_flash_data_recover_comm:
+0x6c0b 028502 increase -4 ,temp 
+0x6c0c 028503 istore 4 ,temp 
+0x6c0d 028504 rtn 
+:      028506 spid_flash_data_preserve:
+0x6c0e 028507 fetcht 2 ,mem_spi_write_ptr 
+0x6c0f 028508 copy temp ,rega 
+0x6c10 028509 increase -4 ,temp 
+0x6c11 028510 ifetch 4 ,temp 
+0x6c12 028511 store 4 ,mem_temp 
+0x6c13 028512 fetcht 2 ,mem_spi_write_len 
+0x6c14 028513 fetch 3 ,mem_spi_write_addr 
+0x6c15 028514 rtn 
+:      028516 spid_init_flash:
+0x6c16 028517 bpatch patch1d_7 ,mem_patch1d 
+0x6c17 028518 call spi_gpio_init 
+0x6c18 028519 call twspi_disable 
+0x6c19 028520 setarg 0 
+0x6c1a 028521 store 4 ,mem_spid_tbuf 
+0x6c1b 028522 rtn 
+:      028524 spid_unlock_flash:
+0x6c1c 028525 jam flash_command_write_enable ,mem_spid_tbuf 
+:      028526 spid_sendcmd_common:
+0x6c1d 028527 setarg 0 
+0x6c1e 028528 store 2 ,core_spid_rxlen 
+0x6c1f 028529 setarg 1 
+0x6c20 028530 store 2 ,core_spid_txlen 
+0x6c21 028531 setarg mem_spid_tbuf 
+0x6c22 028532 store 2 ,core_spid_txaddr 
+0x6c23 028533 jam spid_start ,core_misc_ctrl 
+0x6c24 028534 branch wait_spid_done 
+:      028536 spid_flash_release_form_powerdown:
+0x6c25 028537 jam flash_command_release_from_powerdown ,mem_spid_tbuf 
+0x6c26 028538 branch spid_sendcmd_common 
+:      028540 spid_flash_powerdown:
+0x6c27 028541 jam flash_command_powerdown ,mem_spid_tbuf 
+0x6c28 028542 branch spid_sendcmd_common 
+:      028544 spid_write_flash_data:
+0x6c29 028545 store 3 ,mem_pdatatemp 
+0x6c2a 028546 storet 2 ,mem_temp 
+0x6c2b 028547 storer rega ,2 ,mem_rega 
+0x6c2c 028548 bpatch patch1e_0 ,mem_patch1e 
+0x6c2d 028549 call spid_unlock_flash 
+0x6c2e 028550 fetch 3 ,mem_pdatatemp 
+0x6c2f 028551 fetcht 2 ,mem_temp 
+0x6c30 028552 fetchr rega ,2 ,mem_rega 
+0x6c31 028553 branch spid_write_flash 
+:      028556 spid_write_flash:
+0x6c32 028557 increase 4 ,temp 
+0x6c33 028558 storet 2 ,core_spid_txlen 
+0x6c34 028559 arg flash_command_write_data ,temp 
+0x6c35 028560 increase -4 ,rega 
+:      028562 spid_write_flash_common:
+0x6c36 028563 istoret 1 ,rega 
+0x6c37 028564 rshift16 pdata ,temp 
+0x6c38 028565 istoret 1 ,contw 
+0x6c39 028566 rshift8 pdata ,temp 
+0x6c3a 028567 istoret 1 ,contw 
+0x6c3b 028568 istore 1 ,contw 
+0x6c3c 028569 deposit rega 
+0x6c3d 028570 store 2 ,core_spid_txaddr 
+0x6c3e 028571 setarg 0 
+0x6c3f 028572 store 2 ,core_spid_rxlen 
+0x6c40 028573 jam spid_start ,core_misc_ctrl 
+0x6c41 028574 call wait_spid_done 
+0x6c42 028575 branch wait_spid_flash_done 
+:      028579 spid_read_flash:
+0x6c43 028580 storet 2 ,core_spid_rxlen 
+0x6c44 028581 rshift16 pdata ,temp 
+0x6c45 028582 storet 1 ,mem_addr_hi 
+0x6c46 028583 rshift8 pdata ,temp 
+0x6c47 028584 storet 1 ,mem_addr_mi 
+0x6c48 028585 store 1 ,mem_addr_lo 
+0x6c49 028586 setarg 4 
+0x6c4a 028587 store 2 ,core_spid_txlen 
+0x6c4b 028588 jam flash_command_read_data ,mem_spid_tbuf 
+0x6c4c 028589 setarg mem_spid_tbuf 
+0x6c4d 028590 store 2 ,core_spid_txaddr 
+0x6c4e 028591 deposit rega 
+0x6c4f 028592 store 2 ,core_spid_rxaddr 
+0x6c50 028593 fetch 1 ,core_spid_ctrl 
+0x6c51 028594 isolate0 15 ,rega 
+0x6c52 028595 setflag true ,6 ,pdata 
+0x6c53 028596 store 1 ,core_spid_ctrl 
+0x6c54 028597 jam spid_start ,core_misc_ctrl 
+:      028598 spid_read_flash_wait:
+0x6c55 028599 fetch 1 ,core_dma_status 
+0x6c56 028600 bbit1 7 ,spid_read_flash_wait 
+0x6c57 028601 arg spid_done ,queue 
+0x6c58 028602 branch wait_spid_done 
+:      028604 wait_spid_flash_done:
+0x6c59 028605 setarg 2000 
+0x6c5a 028606 call sleep 
+0x6c5b 028607 call spid_unlock_flash 
+0x6c5c 028608 setarg mem_spid_rbuf 
+0x6c5d 028609 store 2 ,core_spid_rxaddr 
+0x6c5e 028610 setarg flash_read_satus 
+0x6c5f 028611 call spid_read_reg 
+0x6c60 028612 bbit1 flash_status_wip ,wait_spid_flash_done 
+0x6c61 028613 rtn 
+:      028619 spid_load_flash:
+0x6c62 028620 storet 2 ,core_spid_rxlen 
+0x6c63 028621 setarg 4 
+0x6c64 028622 store 2 ,core_spid_txlen 
+0x6c65 028623 jam 3 ,mem_spid_tbuf 
+0x6c66 028624 setarg mem_spid_tbuf 
+0x6c67 028625 store 2 ,core_spid_txaddr 
+0x6c68 028626 deposit rega 
+0x6c69 028627 store 2 ,core_spid_rxaddr 
+0x6c6a 028628 fetch 1 ,core_spid_ctrl 
+0x6c6b 028629 isolate0 15 ,rega 
+0x6c6c 028630 setflag true ,6 ,pdata 
+0x6c6d 028631 store 1 ,core_spid_ctrl 
+0x6c6e 028632 jam spid_start ,core_misc_ctrl 
+:      028633 spi_load_flash_wait:
+0x6c6f 028634 fetch 1 ,core_dma_status 
+0x6c70 028635 bbit1 7 ,spi_load_flash_wait 
+0x6c71 028636 arg spid_done ,queue 
+0x6c72 028637 call decrypt_code 
+0x6c73 028638 call wait_spid_done 
+0x6c74 028639 isolate1 spid_crcok ,pdata 
+0x6c75 028640 call set_ucode_status 
+0x6c76 028641 fetch 1 ,mem_addr_hi 
+0x6c77 028642 lshift16 pdata ,regb 
+0x6c78 028643 fetch 2 ,mem_addr_mi 
+0x6c79 028644 byteswap pdata ,pdata 
+0x6c7a 028645 ior regb ,pdata 
+0x6c7b 028646 iadd temp ,pdata 
+0x6c7c 028647 store 1 ,mem_addr_lo 
+0x6c7d 028648 rshift8 pdata ,pdata 
+0x6c7e 028649 byteswap pdata ,pdata 
+0x6c7f 028650 store 2 ,mem_addr_hi 
+0x6c80 028651 rtn 
+:      028653 spi_gpio_init:
+0x6c81 028654 fetch 1 ,mem_spi_cs_gpio 
+0x6c82 028655 fetcht 1 ,mem_spi_so_gpio 
+0x6c83 028656 isub temp ,null 
+0x6c84 028657 nbranch spi_pin_set ,zero 
+0x6c85 028658 call spi_gpio_default_init 
+:      028660 spi_pin_set:
+0x6c86 028661 fetch 1 ,mem_spi_cs_gpio 
+0x6c87 028662 arg gpcfg_spid_ncs ,temp 
+0x6c88 028663 call gpio_config_function_int 
+0x6c89 028664 fetch 1 ,mem_spi_sclk_gpio 
+0x6c8a 028665 arg gpcfg_spid_sck ,temp 
+0x6c8b 028666 call gpio_config_function_int 
+0x6c8c 028667 fetch 1 ,mem_spi_si_gpio 
+0x6c8d 028668 arg gpcfg_spid_mosi ,temp 
+0x6c8e 028669 call gpio_config_function_int 
+0x6c8f 028670 fetch 1 ,mem_spi_so_gpio 
+0x6c90 028671 arg gpcfg_spid_miso ,temp 
+0x6c91 028672 branch gpio_config_function_int 
+:      028674 spi_gpio_default_init:
+0x6c92 028675 jam 1 ,mem_spi_cs_gpio 
+0x6c93 028676 jam 3 ,mem_spi_si_gpio 
+0x6c94 028677 jam 0 ,mem_spi_so_gpio 
+0x6c95 028678 jam 2 ,mem_spi_sclk_gpio 
+0x6c96 028679 jam 11 ,mem_spi_wp_gpio 
+0x6c97 028680 jam 10 ,mem_spi_hold_gpio 
+0x6c98 028681 rtn 
+:      028684 soft_reset_chip:
+0x6c99 028685 jam 1 ,core_reset 
+0x6c9a 028686 rtn 
+:      028692 iic_init_600khz:
+0x6c9b 028693 jam 5 ,core_iicd_scl_low 
+0x6c9c 028694 jam 7 ,core_iicd_scl_high 
+0x6c9d 028695 jam 7 ,core_iicd_start_setup 
+0x6c9e 028696 jam 7 ,core_iicd_start_hold 
+0x6c9f 028697 jam 7 ,core_iicd_stop_setup 
+0x6ca0 028698 jam 5 ,core_iicd_data_setup 
+0x6ca1 028699 jam 0 ,core_iicd_data_hold 
+0x6ca2 028700 rtn 
+:      028702 iic_init_360khz:
+0x6ca3 028703 jam 12 ,core_iicd_scl_low 
+0x6ca4 028704 jam 13 ,core_iicd_scl_high 
+0x6ca5 028705 jam 13 ,core_iicd_start_setup 
+0x6ca6 028706 jam 13 ,core_iicd_start_hold 
+0x6ca7 028707 jam 13 ,core_iicd_stop_setup 
+0x6ca8 028708 jam 12 ,core_iicd_data_setup 
+0x6ca9 028709 jam 0 ,core_iicd_data_hold 
+0x6caa 028710 rtn 
+:      028712 iicd_init_pin:
+0x6cab 028713 call iicd_eeprom_write_enable 
+:      028714 iicd_init_pin_scl_sda:
+0x6cac 028715 fetch 1 ,mem_eeprom_scl_gpio 
+0x6cad 028716 arg gpcfg_iic_scl | gpcfg_pullup ,temp 
+0x6cae 028717 call gpio_config_function_int 
+0x6caf 028718 fetch 1 ,mem_eeprom_sda_gpio 
+0x6cb0 028719 arg gpcfg_iic_sda | gpcfg_pullup ,temp 
+0x6cb1 028720 branch gpio_config_function_int 
+:      028722 iicd_read_init_pin:
+0x6cb2 028723 call iicd_eeprom_write_disable 
+0x6cb3 028724 branch iicd_init_pin_scl_sda 
+:      028726 wait_iicd_done:
+0x6cb4 028727 fetch 1 ,core_dma_status 
+0x6cb5 028728 bbit0 iicd_done ,wait_iicd_done 
+0x6cb6 028729 rtn 
+:      028755 set_eeprom_size_2k:
+0x6cb7 028756 set1 mark_eeprom_size ,mark 
+0x6cb8 028757 jam 0x08 ,mem_eeprom_block_size 
+0x6cb9 028758 rtn 
+:      028760 clear_eeprom_size_2k:
+0x6cba 028761 set0 mark_eeprom_size ,mark 
+0x6cbb 028762 jam 0x20 ,mem_eeprom_block_size 
+0x6cbc 028763 rtn 
+:      028766 iicd_read_eep_data_size_2k:
+0x6cbd 028767 fetch 1 ,mem_eeprom_base 
+0x6cbe 028768 iadd regb ,pdata 
+0x6cbf 028769 store 1 ,mem_addr_mi 
+0x6cc0 028770 branch iicd_read_eep_size_2k 
+:      028772 iicd_read_eep_size_2k_lcadcode:
+0x6cc1 028773 fetch 2 ,mem_addr_mi 
+0x6cc2 028774 byteswap pdata ,pdata 
+0x6cc3 028775 store 1 ,mem_addr_mi 
+:      028780 iicd_read_eep_size_2k:
+0x6cc4 028781 setarg 3 
+0x6cc5 028782 store 2 ,core_iicd_txlen 
+0x6cc6 028783 jam 0xa0 ,mem_iicd_tbuf 
+0x6cc7 028784 jam 0xa1 ,mem_iicd_tbuf + 2 
+0x6cc8 028785 branch iicd_read_eep_common 
+:      028791 iicd_write_protect_eep_data:
+0x6cc9 028792 storet 2 ,mem_temp 
+0x6cca 028793 call iicd_eeprom_write_enable 
+0x6ccb 028794 fetcht 2 ,mem_temp 
+0x6ccc 028795 call iicd_write_eep_data 
+0x6ccd 028796 branch iicd_eeprom_write_disable 
+:      028798 iicd_eeprom_write_enable:
+0x6cce 028799 fetch 1 ,mem_eeprom_wp_gpio 
+0x6ccf 028800 rtneq gpio_disable 
+0x6cd0 028801 bbit0 6 ,iicd_wp_gpio_output_low 
+0x6cd1 028802 setarg 150000 
+0x6cd2 028803 call sleep 
+:      028804 iicd_wp_gpio_output_low:
+0x6cd3 028805 fetcht 1 ,mem_eeprom_wp_gpio 
+0x6cd4 028806 branch gpio_out_active 
+:      028808 iicd_eeprom_write_disable:
+0x6cd5 028809 fetcht 1 ,mem_eeprom_wp_gpio 
+0x6cd6 028810 branch gpio_out_inactive 
+:      028815 iicd_read_eep_data:
+0x6cd7 028816 bpatch patch1e_1 ,mem_patch1e 
+0x6cd8 028817 bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
+0x6cd9 028818 fetch 2 ,mem_eeprom_base 
+0x6cda 028819 iadd regb ,pdata 
+0x6cdb 028820 byteswap pdata ,pdata 
+0x6cdc 028821 store 2 ,mem_addr_mi 
+:      028824 iicd_read_eep:
+0x6cdd 028825 bpatch patch1e_2 ,mem_patch1e 
+0x6cde 028826 bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
+0x6cdf 028827 setarg 4 
+0x6ce0 028828 store 2 ,core_iicd_txlen 
+0x6ce1 028829 jam 0xa0 ,mem_iicd_tbuf 
+0x6ce2 028830 jam 0xa1 ,mem_iicd_tbuf + 3 
+:      028831 iicd_read_eep_common:
+0x6ce3 028832 setarg mem_iicd_tbuf 
+0x6ce4 028833 store 2 ,core_iicd_txaddr 
+0x6ce5 028834 storet 2 ,core_iicd_rxlen 
+0x6ce6 028835 storer rega ,2 ,core_iicd_rxaddr 
+0x6ce7 028836 setarg 2 
+0x6ce8 028837 isolate0 15 ,rega 
+0x6ce9 028838 setflag true ,0 ,pdata 
+0x6cea 028839 store 1 ,core_iicd_ctrl 
+0x6ceb 028840 jam iicd_start ,core_misc_ctrl 
+0x6cec 028841 arg iicd_done ,queue 
+0x6ced 028842 call decrypt_code 
+0x6cee 028843 call wait_iicd_done 
+0x6cef 028844 isolate1 iicd_crcok ,pdata 
+0x6cf0 028845 call set_ucode_status 
+0x6cf1 028846 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
+:      028847 iicd_inc_addr:
+0x6cf2 028848 fetch 2 ,mem_addr_mi 
+0x6cf3 028849 byteswap pdata ,pdata 
+0x6cf4 028850 branch iicd_set_addr 
+:      028852 iicd_read_eep_load_code_size_2k:
+0x6cf5 028853 fetch 1 ,mem_addr_mi 
+:      028854 iicd_set_addr:
+0x6cf6 028855 iadd temp ,pdata 
+0x6cf7 028856 byteswap pdata ,pdata 
+0x6cf8 028857 store 2 ,mem_addr_mi 
+0x6cf9 028858 rtn 
+:      028864 iicd_write_eep_data:
+0x6cfa 028865 fetch 2 ,mem_eeprom_base 
+0x6cfb 028866 iadd regb ,pdata 
+0x6cfc 028869 store 2 ,mem_pdatatemp 
+0x6cfd 028870 bpatch patch1e_3 ,mem_patch1e 
+0x6cfe 028871 storet 2 ,mem_temp 
+0x6cff 028872 storer rega ,2 ,mem_contr 
+:      028873 iicd_write_eep_loop:
+0x6d00 028874 call iicd_eep_transparency 
+0x6d01 028876 fetcht 2 ,mem_regb 
+0x6d02 028877 fetchr rega ,2 ,mem_contr 
+0x6d03 028878 fetch 2 ,mem_pdatatemp 
+0x6d04 028880 call iicd_write_eep 
+0x6d05 028882 fetch 2 ,mem_regb 
+0x6d06 028883 fetcht 2 ,mem_contr 
+0x6d07 028884 iadd temp ,temp 
+0x6d08 028885 storet 2 ,mem_contr 
+0x6d09 028886 fetcht 2 ,mem_pdatatemp 
+0x6d0a 028887 iadd temp ,temp 
+0x6d0b 028888 storet 2 ,mem_pdatatemp 
+0x6d0c 028889 fetch 2 ,mem_temp 
+0x6d0d 028890 nbranch iicd_write_eep_loop ,blank 
+0x6d0e 028891 rtn 
+:      028899 iicd_eep_transparency:
+0x6d0f 028900 bpatch patch1e_4 ,mem_patch1e 
+0x6d10 028901 fetch 1 ,mem_eeprom_block_size 
+0x6d11 028902 increase -1 ,pdata 
+0x6d12 028903 fetcht 2 ,mem_pdatatemp 
+0x6d13 028904 ior temp ,pdata 
+0x6d14 028905 increase 1 ,pdata 
+0x6d15 028906 store 3 ,mem_regc 
+0x6d16 028908 fetch 2 ,mem_temp 
+0x6d17 028909 iadd temp ,pdata 
+0x6d18 028911 fetcht 3 ,mem_regc 
+0x6d19 028912 isub temp ,pdata 
+0x6d1a 028913 nbranch iicd_eep_deal_short_packet ,positive 
+0x6d1b 028914 store 2 ,mem_temp 
+0x6d1c 028915 fetch 3 ,mem_regc 
+0x6d1d 028916 fetcht 2 ,mem_pdatatemp 
+0x6d1e 028917 isub temp ,pdata 
+0x6d1f 028918 store 2 ,mem_regb 
+0x6d20 028919 rtn 
+:      028921 iicd_eep_deal_short_packet:
+0x6d21 028922 fetch 2 ,mem_temp 
+0x6d22 028923 store 2 ,mem_regb 
+0x6d23 028924 setarg 0 
+0x6d24 028925 store 2 ,mem_temp 
+0x6d25 028926 rtn 
+:      028928 iicd_write_eep_size_2k:
+0x6d26 028929 copy regb ,pdata 
+0x6d27 028930 increase 2 ,temp 
+0x6d28 028931 storet 2 ,core_iicd_txlen 
+0x6d29 028932 increase -2 ,rega 
+0x6d2a 028933 ifetcht 3 ,rega 
+0x6d2b 028934 copy temp ,regb 
+0x6d2c 028935 arg 0xa0 ,temp 
+0x6d2d 028936 istoret 1 ,rega 
+0x6d2e 028937 istore 1 ,contw 
+0x6d2f 028938 branch iicd_write_eep_common 
+:      028941 iicd_write_eep:
+0x6d30 028942 copy pdata ,regb 
+0x6d31 028943 bpatch patch1e_5 ,mem_patch1e 
+0x6d32 028944 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
+0x6d33 028945 copy regb ,pdata 
+0x6d34 028946 increase 3 ,temp 
+0x6d35 028947 storet 2 ,core_iicd_txlen 
+0x6d36 028948 increase -3 ,rega 
+0x6d37 028949 ifetcht 3 ,rega 
+0x6d38 028950 copy temp ,regb 
+0x6d39 028951 arg 0xa0 ,temp 
+0x6d3a 028952 istoret 1 ,rega 
+0x6d3b 028953 byteswap pdata ,pdata 
+0x6d3c 028954 istore 2 ,contw 
+:      028955 iicd_write_eep_common:
+0x6d3d 028956 storer rega ,2 ,core_iicd_txaddr 
+0x6d3e 028957 setarg 0 
+0x6d3f 028958 store 2 ,core_iicd_rxlen 
+0x6d40 028959 jam 1 ,core_iicd_ctrl 
+0x6d41 028960 jam iicd_start ,core_misc_ctrl 
+0x6d42 028961 call wait_iicd_done 
+0x6d43 028962 istorer regb ,3 ,rega 
+:      028963 iic_check_eeprom_standby:
+0x6d44 028964 bpatch patch1e_6 ,mem_patch1e 
+0x6d45 028965 jam 0 ,mem_iicd_tbuf + 3 
+:      028966 iic_check_eeprom_standby_wait:
+0x6d46 028967 setarg 1 
+0x6d47 028968 store 2 ,core_iicd_txlen 
+0x6d48 028969 jam 0xa0 ,mem_iicd_tbuf 
+0x6d49 028970 setarg mem_iicd_tbuf 
+0x6d4a 028971 store 2 ,core_iicd_txaddr 
+0x6d4b 028972 setarg 0 
+0x6d4c 028973 store 2 ,core_iicd_rxlen 
+0x6d4d 028974 store 2 ,core_iicd_rxaddr 
+0x6d4e 028975 setarg 3 
+0x6d4f 028976 store 1 ,core_iicd_ctrl 
+0x6d50 028977 jam iicd_start ,core_misc_ctrl 
+0x6d51 028978 call wait_iicd_done 
+0x6d52 028979 fetch 1 ,core_dma_status 
+0x6d53 028980 rtnbit0 iicd_ack 
+0x6d54 028981 nop 1500 
+0x6d55 028982 fetch 1 ,mem_iicd_tbuf + 3 
+0x6d56 028983 increase 1 ,pdata 
+0x6d57 028984 store 1 ,mem_iicd_tbuf + 3 
+0x6d58 028985 sub pdata ,40 ,null 
+0x6d59 028986 nrtn positive 
+0x6d5a 028987 branch iic_check_eeprom_standby_wait 
+:      028991 uarta_init_dma_mem:
+0x6d5b 028992 call enable_user 
+0x6d5c 028993 branch uart_init_dma_mem 
+:      028995 uart_init_dma_mem:
+0x6d5d 028996 rshift16 pdata ,temp 
+0x6d5e 028997 call uarta_init_rx ,user 
+0x6d5f 028998 rshift32 pdata ,pdata 
+0x6d60 028999 rshift16 pdata ,temp 
+0x6d61 029000 call uarta_init_tx ,user 
+0x6d62 029001 fetch 2 ,core_clkoff 
+0x6d63 029002 set0 clock_off_uart ,pdata 
+0x6d64 029003 store 2 ,core_clkoff 
+0x6d65 029004 rtn 
+:      029007 uarta_init_baud_rate:
+0x6d66 029008 store uart_baud_len ,core_uart_baud 
+0x6d67 029009 rtn 
+:      029012 uarta_calc_baud_rate_config:
+0x6d68 029013 call uart_calc_baud_rate_config 
+0x6d69 029014 branch uarta_init_baud_rate 
+:      029017 uart_calc_baud_rate_config:
+0x6d6a 029018 call uart_calc_baud_rate_config_choice_uart_clock 
+0x6d6b 029019 idiv temp 
+0x6d6c 029020 call wait_div_end 
+0x6d6d 029021 quotient pdata 
+0x6d6e 029022 rtn 
+:      029024 uart_calc_baud_rate_config_choice_uart_clock:
+0x6d6f 029025 fetch 1 ,core_uart_clksel 
+0x6d70 029026 bbit0 uart_clock_select_bit ,uart_calc_baud_rate_config_choice_uart_clock_crystal 
+0x6d71 029027 setarg uart_clock_freq_48m 
+0x6d72 029028 rtn 
+:      029029 uart_calc_baud_rate_config_choice_uart_clock_crystal:
+0x6d73 029030 setarg uart_clock_freq_24m 
+0x6d74 029031 rtn 
+:      029033 uart_clock_select_main_freq_crystal:
+0x6d75 029034 fetch 1 ,core_uart_clksel 
+0x6d76 029035 and pdata ,uart_clock_select_crystal ,pdata 
+0x6d77 029036 store 1 ,core_uart_clksel 
+0x6d78 029037 rtn 
+:      029039 uart_clock_select_main_freq_dpll:
+0x6d79 029040 fetch 1 ,core_uart_clksel 
+0x6d7a 029041 or pdata ,uart_clock_select_dpll ,pdata 
+0x6d7b 029042 store 1 ,core_uart_clksel 
+0x6d7c 029043 rtn 
+:      029047 uarta_init_tx:
+0x6d7d 029048 store 2 ,core_uart_tsaddr 
+0x6d7e 029049 store 2 ,core_uart_twptr 
+0x6d7f 029050 storet 2 ,core_uart_teaddr 
+0x6d80 029051 rtn 
+:      029054 uarta_init_rx:
+0x6d81 029055 store 2 ,core_uart_rsaddr 
+0x6d82 029056 store 2 ,core_uart_rrptr 
+0x6d83 029057 storet 2 ,core_uart_readdr 
+0x6d84 029058 rtn 
+:      029060 uarta_prepare_tx:
+0x6d85 029061 fetchr contus ,2 ,core_uart_tsaddr 
+0x6d86 029062 fetchr contue ,2 ,core_uart_teaddr 
+0x6d87 029063 fetchr contu ,2 ,core_uart_twptr 
+0x6d88 029064 rtn 
+:      029066 uarta_prepare_rx:
+0x6d89 029067 fetchr contus ,2 ,core_uart_rsaddr 
+0x6d8a 029068 fetchr contue ,2 ,core_uart_readdr 
+0x6d8b 029069 fetchr contu ,2 ,core_uart_rrptr 
+0x6d8c 029070 rtn 
+:      029072 uarta_send:
+0x6d8d 029073 storer contu ,2 ,core_uart_twptr 
+0x6d8e 029074 rtn 
+:      029076 uarta_rxdone:
+0x6d8f 029077 storer contu ,2 ,core_uart_rrptr 
+0x6d90 029078 rtn 
+:      029080 uarta_clear_current_rx:
+0x6d91 029081 call uarta_prepare_rx 
+0x6d92 029082 fetch 2 ,core_uart_rxitems 
+0x6d93 029083 iadd contu ,contu 
+0x6d94 029084 branch uarta_rxdone 
+:      029086 uarta_prepare_tx_register_push:
+0x6d95 029087 call uart_register_push 
+0x6d96 029088 branch uarta_prepare_tx 
+:      029090 uarta_send_register_pop:
+0x6d97 029091 call uarta_send 
+0x6d98 029092 branch uart_register_pop 
+:      029095 uart_register_push:
+0x6d99 029096 storer contu ,2 ,mem_contu 
+0x6d9a 029097 storer contus ,2 ,mem_contue 
+0x6d9b 029098 storer contue ,2 ,mem_contus 
+0x6d9c 029099 rtn 
+:      029101 uart_register_pop:
+0x6d9d 029102 fetchr contu ,2 ,mem_contu 
+0x6d9e 029103 fetchr contus ,2 ,mem_contue 
+0x6d9f 029104 fetchr contue ,2 ,mem_contus 
+0x6da0 029105 rtn 
+:      029107 wait_uarttx:
+0x6da1 029108 fetch 2 ,core_uart_txitems 
+0x6da2 029109 nbranch wait_uarttx ,blank 
+0x6da3 029110 rtn 
+:      029112 uart_copy_tx_bytes_fast:
+0x6da4 029113 deposit loopcnt 
+0x6da5 029114 rtn blank 
+:      029115 uart_copy_tx_bytes_fast_loop:
+0x6da6 029116 increase -8 ,loopcnt 
+0x6da7 029117 call uart_tx_8_bytes ,positive 
+0x6da8 029118 rtn zero 
+0x6da9 029119 branch uart_copy_tx_bytes_fast_loop ,positive 
+0x6daa 029120 increase 8 ,loopcnt 
+:      029121 uart_copy_tx_bytes_fast_loop_four:
+0x6dab 029122 increase -4 ,loopcnt 
+0x6dac 029123 call uart_tx_4_bytes ,positive 
+0x6dad 029124 rtn zero 
+0x6dae 029125 branch uart_copy_tx_bytes_fast_loop_four ,positive 
+0x6daf 029126 increase 4 ,loopcnt 
+0x6db0 029127 branch uart_copy_tx_bytes 
+:      029129 uart_tx_8_bytes:
+0x6db1 029130 ifetch 8 ,contr 
+0x6db2 029131 istore 8 ,contu 
+0x6db3 029132 rtn 
+:      029134 uart_tx_4_bytes:
+0x6db4 029135 ifetch 4 ,contr 
+0x6db5 029136 istore 4 ,contu 
+0x6db6 029137 rtn 
+:      029139 uart_copy_tx_bytes:
+0x6db7 029140 deposit loopcnt 
+0x6db8 029141 rtn blank 
+:      029142 uart_copy_tx_bytes_loop:
+0x6db9 029143 ifetch 1 ,contr 
+0x6dba 029144 istore 1 ,contu 
+0x6dbb 029145 loop uart_copy_tx_bytes_loop 
+0x6dbc 029146 rtn 
+:      029148 uart_copy_rx_bytes_fast:
+0x6dbd 029149 deposit loopcnt 
+0x6dbe 029150 rtn blank 
+:      029151 uart_copy_rx_bytes_fast_loop:
+0x6dbf 029152 increase -8 ,loopcnt 
+0x6dc0 029153 call uart_rx_8_bytes ,positive 
+0x6dc1 029154 rtn zero 
+0x6dc2 029155 branch uart_copy_rx_bytes_fast_loop ,positive 
+0x6dc3 029156 increase 8 ,loopcnt 
+:      029157 uart_copy_rx_bytes_fast_loop_four:
+0x6dc4 029158 increase -4 ,loopcnt 
+0x6dc5 029159 call uart_rx_4_bytes ,positive 
+0x6dc6 029160 rtn zero 
+0x6dc7 029161 branch uart_copy_rx_bytes_fast_loop_four ,positive 
+0x6dc8 029162 increase 4 ,loopcnt 
+0x6dc9 029163 branch uart_copy_rx_bytes 
+:      029166 uart_rx_8_bytes:
+0x6dca 029167 ifetch 8 ,contu 
+0x6dcb 029168 istore 8 ,contw 
+0x6dcc 029169 rtn 
+:      029171 uart_rx_4_bytes:
+0x6dcd 029172 ifetch 4 ,contu 
+0x6dce 029173 istore 4 ,contw 
+0x6dcf 029174 rtn 
+:      029177 uart_copy_rx_bytes:
+0x6dd0 029178 deposit loopcnt 
+0x6dd1 029179 rtn blank 
+:      029180 uart_copy_rx_bytes_loop:
+0x6dd2 029181 ifetch 1 ,contu 
+0x6dd3 029182 istore 1 ,contw 
+0x6dd4 029183 loop uart_copy_rx_bytes_loop 
+0x6dd5 029184 rtn 
+:      029189 app_store_nvram_event:
+0x6dd6 029190 jam bt_evt_store_nvram ,mem_fifo_temp 
+0x6dd7 029191 branch ui_ipc_send_event 
+:      029193 check_51cmd_update_device_record:
+0x6dd8 029194 bpatch patch1e_7 ,mem_patch1e 
+0x6dd9 029195 fetch 1 ,mem_nv_data_number 
+0x6dda 029196 rtn blank 
+0x6ddb 029197 call check_nvram 
+0x6ddc 029198 call init_device_list ,zero 
+0x6ddd 029199 call disable_user2 
+0x6dde 029200 call nvram_find_addr_from_bd_list 
+:      029201 write_device_record:
+0x6ddf 029202 fetch 1 ,mem_nv_data_number 
+0x6de0 029203 icopy regc 
+0x6de1 029204 fetcht 2 ,mem_nv_data_ptr 
+0x6de2 029205 storet 2 ,mem_list_item_ptr 
+:      029206 write_device_loop_find:
+0x6de3 029207 copy regc ,pdata 
+0x6de4 029208 branch app_store_nvram_event ,blank 
+0x6de5 029209 increase -1 ,regc 
+0x6de6 029210 copy temp ,rega 
+0x6de7 029211 ifetch 1 ,rega 
+0x6de8 029212 fetcht 1 ,mem_select_list_item 
+0x6de9 029213 isub temp ,null 
+0x6dea 029214 call set_index_finded_device ,zero 
+0x6deb 029215 branch write_device_loop_find0 ,positive 
+0x6dec 029216 ifetch 1 ,rega 
+0x6ded 029217 increase 1 ,pdata 
+0x6dee 029218 istore 1 ,rega 
+:      029219 write_device_loop_find0:
+0x6def 029220 fetcht 2 ,mem_list_item_ptr 
+0x6df0 029221 increase nv_data_len ,temp 
+0x6df1 029222 storet 2 ,mem_list_item_ptr 
+0x6df2 029223 branch write_device_loop_find 
+:      029225 set_index_finded_device:
+0x6df3 029226 setarg 0 
+0x6df4 029227 istore 1 ,rega 
+0x6df5 029228 fetch 1 ,mem_temp_reconn_record 
+0x6df6 029229 istore 1 ,contw 
+0x6df7 029230 bne rec_3_mode ,set_index_finded_device_ble_mode 
+:      029232 set_index_find_device_master_addr:
+0x6df8 029233 ifetch 6 ,contr 
+0x6df9 029234 istore 8 ,contw 
+0x6dfa 029235 setarg 0 
+0x6dfb 029236 istore 8 ,contw 
+0x6dfc 029237 copy regb ,contr 
+:      029238 store_rec_data_common:
+0x6dfd 029239 call memcpy16 
+0x6dfe 029240 force 1 ,null 
+0x6dff 029241 rtn 
+:      029243 set_index_finded_device_ble_mode:
+0x6e00 029244 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
+0x6e01 029245 beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
+0x6e02 029246 arg mem_le_ltk ,regb 
+0x6e03 029247 branch set_index_find_device_master_addr 
+:      029249 set_index_finded_device_irk:
+0x6e04 029250 arg mem_le_irk ,contr 
+0x6e05 029251 call memcpy16 
+:      029252 store_ble_rec_data_common:
+0x6e06 029253 arg mem_le_ltk ,contr 
+0x6e07 029254 branch store_rec_data_common 
+:      029256 set_index_finded_device_ediv:
+0x6e08 029257 arg mem_le_rand ,contr 
+0x6e09 029258 call memcpy16 
+0x6e0a 029259 branch store_ble_rec_data_common 
+:      029264 nvram_find_addr_from_bd_list:
+0x6e0b 029265 bpatch patch1f_0 ,mem_patch1f 
+0x6e0c 029266 call disable_user 
+0x6e0d 029267 fetch 1 ,mem_nv_data_number 
+0x6e0e 029268 rtn blank 
+0x6e0f 029269 fetch 2 ,mem_ui_state_map 
+0x6e10 029270 rtnbit0 ui_state_ble_connected 
+:      029271 find_addr_from_bd_list_ble_mode:
+0x6e11 029272 fetch 1 ,mem_le_conn_peer_addr_type 
+0x6e12 029273 beq master_public_addr ,find_addr_from_bd_list_public_device_addr 
+0x6e13 029274 fetch 1 ,mem_le_plap + 5 
+0x6e14 029275 compare 0xc0 ,pdata ,0xc0 
+0x6e15 029276 branch find_addr_from_bd_list_static_addr ,true 
+0x6e16 029277 compare 0x40 ,pdata ,0xc0 
+0x6e17 029278 branch find_addr_from_bd_list_random_addr ,true 
+0x6e18 029279 branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy 
+:      029281 find_addr_from_bd_list_static_addr:
+0x6e19 029282 branch find_addr_from_bd_list_static_addr_reconnect ,user2 
+0x6e1a 029283 fetch 1 ,mem_le_preq_init_key_distribution 
+0x6e1b 029284 bbit0 le_initator_irk_bit ,find_addr_from_bd_list_public_device_addr 
+0x6e1c 029285 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+:      029287 find_addr_from_bd_list_static_addr_reconnect:
+0x6e1d 029288 call find_addr_from_bd_list_public_device_addr 
+0x6e1e 029289 rtn user 
+0x6e1f 029290 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+:      029293 find_addr_from_bd_list_static_addr_sc_or_legacy:
+:      029294 find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy:
+0x6e20 029295 fetch 1 ,mem_le_pairing_mode 
+0x6e21 029296 bbit1 le_pairing_mode_secure_connect_bit ,find_addr_from_bd_list_random_non_resolvable_private_address_sc 
+0x6e22 029297 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+:      029299 find_addr_from_bd_list_static_addr_sc:
+:      029300 find_addr_from_bd_list_random_non_resolvable_private_address_sc:
+0x6e23 029301 fetch 6 ,mem_le_plap 
+0x6e24 029302 store 8 ,mem_le_rand 
+0x6e25 029303 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+:      029306 find_addr_from_bd_list_public_device_addr:
+0x6e26 029307 jam rec_4_mode_static_address ,mem_temp_reconn_record 
+0x6e27 029308 fetch 6 ,mem_le_plap 
+0x6e28 029309 branch find_addr_from_bd_list_common 
+:      029311 find_addr_from_bd_list_random_non_resolvable_private_address:
+0x6e29 029312 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
+0x6e2a 029313 branch find_addr_from_bd_list_common 
+:      029316 find_addr_from_bd_list_random_addr:
+0x6e2b 029317 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
+0x6e2c 029318 branch find_addr_from_bd_list_common 
+:      029320 find_addr_from_bd_list_common:
+0x6e2d 029321 bpatch patch1f_1 ,mem_patch1f 
+0x6e2e 029323 fetch 2 ,mem_nv_data_ptr 
+0x6e2f 029324 ifetcht 1 ,pdata 
+0x6e30 029325 pincrease 1 
+0x6e31 029326 store 2 ,mem_list_item_ptr 
+0x6e32 029327 storet 1 ,mem_select_list_item 
+0x6e33 029328 fetch 1 ,mem_nv_data_number 
+0x6e34 029329 icopy regc 
+:      029330 nvram_find_addr_from_list:
+0x6e35 029331 fetch 2 ,mem_list_item_ptr 
+0x6e36 029332 copy pdata ,rega 
+0x6e37 029333 call nvram_find_addr_from_list_compare 
+0x6e38 029334 rtn user 
+0x6e39 029335 fetcht 2 ,mem_list_item_ptr 
+0x6e3a 029336 increase nv_data_len ,temp 
+0x6e3b 029337 storet 2 ,mem_list_item_ptr 
+0x6e3c 029338 increase -1 ,temp 
+0x6e3d 029339 ifetch 1 ,temp 
+0x6e3e 029340 store 1 ,mem_select_list_item 
+0x6e3f 029341 increase -1 ,regc 
+0x6e40 029342 nbranch nvram_find_addr_from_list ,zero 
+0x6e41 029343 fetch 1 ,mem_nv_data_number 
+0x6e42 029344 pincrease decreased_one 
+0x6e43 029345 store 1 ,mem_select_list_item 
+0x6e44 029346 rtn 
+:      029347 nvram_find_addr_from_list_compare:
+0x6e45 029348 fetch 1 ,mem_temp_reconn_record 
+0x6e46 029349 bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
+:      029350 find_master_addr_from_list_compare:
+0x6e47 029351 arg mem_temp_reconn_record ,regb 
+0x6e48 029352 arg 7 ,loopcnt 
+0x6e49 029353 call string_compare 
+0x6e4a 029354 branch enable_user ,zero 
+0x6e4b 029355 rtn 
+:      029357 find_addr_from_list_compare_ble_mode:
+0x6e4c 029358 beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
+0x6e4d 029359 beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
+0x6e4e 029360 branch find_master_addr_from_list_compare 
+:      029362 find_irk_form_list_compare:
+0x6e4f 029363 ifetcht 1 ,rega 
+0x6e50 029364 isub temp ,null 
+0x6e51 029365 nrtn zero 
+0x6e52 029366 arg mem_le_prand ,contw 
+0x6e53 029367 arg 16 ,loopcnt 
+0x6e54 029368 call clear_mem 
+0x6e55 029369 fetch 3 ,mem_le_plap + 3 
+0x6e56 029370 store 3 ,mem_le_prand 
+0x6e57 029371 call genernate_master_macaddress 
+0x6e58 029372 fetch 2 ,mem_le_aes_128 + 13 
+0x6e59 029373 byteswap pdata ,pdata 
+0x6e5a 029374 lshift8 pdata ,temp 
+0x6e5b 029375 ifetch 1 ,contr 
+0x6e5c 029376 iadd temp ,pdata 
+0x6e5d 029377 fetcht 3 ,mem_le_plap 
+0x6e5e 029378 isub temp ,null 
+0x6e5f 029379 branch enable_user ,zero 
+0x6e60 029380 rtn 
+:      029383 genernate_master_macaddress:
+0x6e61 029384 arg mem_le_prand ,contr 
+0x6e62 029385 call load_data128 
+0x6e63 029387 ifetch 1 ,rega 
+0x6e64 029388 call load_regext 
+0x6e65 029389 force 0x38 ,aes_ctrl 
+0x6e66 029390 force 0x0 ,aes_ctrl 
+0x6e67 029391 call wait_aes 
+0x6e68 029392 arg mem_le_aes_128 ,contw 
+0x6e69 029393 branch store_aes_result 
+:      029395 find_ediv_form_list_compare:
+0x6e6a 029396 ifetcht 1 ,rega 
+0x6e6b 029397 isub temp ,null 
+0x6e6c 029398 nrtn zero 
+0x6e6d 029399 copy contr ,rega 
+0x6e6e 029400 add contr ,8 ,regc 
+0x6e6f 029401 arg mem_le_rand ,regb 
+0x6e70 029402 arg 8 ,loopcnt 
+0x6e71 029403 call string_compare 
+0x6e72 029404 branch enable_user ,zero 
+0x6e73 029405 copy regc ,rega 
+0x6e74 029406 arg mem_le_irk ,regb 
+0x6e75 029407 arg 8 ,loopcnt 
+0x6e76 029408 call string_compare 
+0x6e77 029409 branch enable_user ,zero 
+0x6e78 029410 rtn 
+:      029412 check_nvram:
+0x6e79 029413 fetch 2 ,mem_nv_data_ptr 
+0x6e7a 029414 ifetcht 1 ,pdata 
+0x6e7b 029415 pincrease nv_data_len 
+0x6e7c 029416 ifetch 1 ,pdata 
+0x6e7d 029417 isub temp ,null 
+0x6e7e 029418 rtn 
+:      029420 init_device_list:
+0x6e7f 029421 fetch 1 ,mem_nv_data_number 
+0x6e80 029422 icopy loopcnt 
+0x6e81 029423 fetcht 2 ,mem_nv_data_ptr 
+0x6e82 029424 setarg 0 
+:      029425 init_device_list_loop:
+0x6e83 029426 istore 1 ,temp 
+0x6e84 029427 increase nv_data_len ,temp 
+0x6e85 029428 pincrease 1 
+0x6e86 029429 loop init_device_list_loop 
+0x6e87 029430 rtn 
+:      029432 load_device_list_mode_4:
+0x6e88 029435 call enable_user2 
+0x6e89 029436 call nvram_find_addr_from_bd_list 
+0x6e8a 029437 nbranch clear_ltk_exists ,user 
+0x6e8b 029438 fetch 2 ,mem_list_item_ptr 
+0x6e8c 029439 add pdata ,1 ,contr 
+0x6e8d 029440 arg mem_le_irk ,contw 
+0x6e8e 029441 call memcpy16 
+0x6e8f 029442 arg mem_le_ltk ,contw 
+0x6e90 029443 call memcpy16 
+0x6e91 029444 jam 1 ,mem_ltk_exists 
+0x6e92 029445 rtn 
+:      029447 clear_ltk_exists:
+0x6e93 029448 jam 0 ,mem_ltk_exists 
+0x6e94 029449 rtn 
+:      029452 eeprom_store_le_reconn_info:
+0x6e95 029453 jam rec_4_mode ,mem_record_bt_mode 
+0x6e96 029454 branch eeprom_store_reconn_info 
+:      029456 eeprom_store_reconn_info:
+0x6e97 029457 fetch 1 ,mem_device_option 
+0x6e98 029458 beq dvc_op_module ,check_51cmd_update_device_record 
+0x6e99 029459 beq dvc_op_mouse ,mouse_store_remote_bdaddr 
+0x6e9a 029460 beq dvc_op_keyboard ,keyboard_store_remote_bdaddr 
+0x6e9b 029461 rtn 
+:      029467 get_gpio_wakeup_index:
+0x6e9c 029468 and temp ,0x1f ,pdata 
+0x6e9d 029469 rshift pdata ,pdata 
+0x6e9e 029470 arg mem_gpio_wakeup_cfg ,contw 
+0x6e9f 029471 iadd contw ,contw 
+0x6ea0 029472 arg 0xf0 ,alarm 
+0x6ea1 029473 isolate0 0 ,temp 
+0x6ea2 029474 rtn true 
+0x6ea3 029475 arg 0xf ,alarm 
+0x6ea4 029476 rtn 
+:      029479 gpio_set_wake_by_current_state:
+0x6ea5 029480 bpatch patch1f_2 ,mem_patch1f 
+0x6ea6 029481 sub temp ,gpio_disable ,null 
+0x6ea7 029482 rtn zero 
+0x6ea8 029483 set1 gpio_active_bit ,temp 
+0x6ea9 029484 call gpio_get_bit 
+0x6eaa 029485 nbranch gpio_set_qdec_mode ,true 
+0x6eab 029486 nsetflag true ,gpio_active_bit ,temp 
+:      029489 gpio_set_wake:
+0x6eac 029490 bpatch patch1f_3 ,mem_patch1f 
+0x6ead 029491 sub temp ,ui_button_gpio_disable ,null 
+0x6eae 029492 rtn zero 
+0x6eaf 029493 arg 4 ,debug 
+0x6eb0 029494 isolate1 gpio_active_bit ,temp 
+0x6eb1 029495 branch gpio_set_wake_high ,true 
+0x6eb2 029496 arg 2 ,debug 
+:      029497 gpio_set_wake_high:
+0x6eb3 029498 call get_gpio_wakeup_index 
+0x6eb4 029499 isolate0 0 ,temp 
+0x6eb5 029500 branch gpio_set_wake_low4bit ,true 
+0x6eb6 029501 lshift4 debug ,debug 
+:      029502 gpio_set_wake_low4bit:
+0x6eb7 029503 ifetch 1 ,contw 
+0x6eb8 029504 iand alarm ,pdata 
+0x6eb9 029505 ior debug ,pdata 
+0x6eba 029506 istore 1 ,contw 
+0x6ebb 029507 rtn 
+:      029509 gpio_set_qdec_mode:
+0x6ebc 029510 jam 1 ,mem_qdec_set_flag 
+0x6ebd 029511 call gpio_set_high_impedance 
+0x6ebe 029512 arg 6 ,debug 
+0x6ebf 029513 branch gpio_set_wake_high 
+:      029516 gpio_set_low_pullup:
+0x6ec0 029517 bpatch patch1f_4 ,mem_patch1f 
+0x6ec1 029518 sub temp ,ui_button_gpio_disable ,null 
+0x6ec2 029519 rtn zero 
+0x6ec3 029520 arg 1 ,debug 
+0x6ec4 029521 call get_gpio_wakeup_index 
+0x6ec5 029522 isolate0 0 ,temp 
+0x6ec6 029523 branch gpio_set_low_pullup_low4bit ,true 
+0x6ec7 029524 lshift4 debug ,debug 
+:      029525 gpio_set_low_pullup_low4bit:
+0x6ec8 029526 ifetch 1 ,contw 
+0x6ec9 029527 iand alarm ,pdata 
+0x6eca 029528 ior debug ,pdata 
+0x6ecb 029529 istore 1 ,contw 
+0x6ecc 029530 rtn 
+:      029535 gpio_clr_wake:
+0x6ecd 029536 bpatch patch1f_5 ,mem_patch1f 
+0x6ece 029537 sub temp ,ui_button_gpio_disable ,null 
+0x6ecf 029538 rtn zero 
+0x6ed0 029539 call get_gpio_wakeup_index 
+0x6ed1 029540 ifetch 1 ,contw 
+0x6ed2 029541 iand alarm ,pdata 
+0x6ed3 029542 istore 1 ,contw 
+0x6ed4 029543 rtn 
+:      029545 gpio_config_input_nowake:
+0x6ed5 029546 call gpio_clr_wake 
+0x6ed6 029547 branch gpio_config_input_without_wake 
+:      029550 gpio_config_input:
+0x6ed7 029551 sub temp ,ui_button_gpio_disable ,null 
+0x6ed8 029552 rtn zero 
+0x6ed9 029553 ncall gpio_set_wake ,wake 
+:      029554 gpio_config_input_without_wake:
+0x6eda 029555 call gpio_addr 
+0x6edb 029556 setarg 0 
+0x6edc 029557 isolate1 gpio_active_bit ,temp 
+0x6edd 029558 nsetflag true ,6 ,pdata 
+0x6ede 029559 setflag true ,7 ,pdata 
+0x6edf 029560 branch gpio_write 
+:      029563 gpio_get_bit:
+0x6ee0 029564 bpatch patch1f_6 ,mem_patch1f 
+0x6ee1 029565 arg core_gpio_in ,contw 
+0x6ee2 029566 and temp ,0x07 ,queue 
+0x6ee3 029567 rshift3 temp ,pdata 
+0x6ee4 029568 and_into 3 ,pdata 
+0x6ee5 029569 iadd contw ,contw 
+0x6ee6 029570 ifetch 1 ,contw 
+0x6ee7 029571 isolate1 gpio_active_bit ,temp 
+0x6ee8 029572 branch gpio_get_bit_reverse ,true 
+0x6ee9 029573 qisolate0 pdata 
+0x6eea 029574 rtn 
+:      029575 gpio_get_bit_reverse:
+0x6eeb 029576 qisolate1 pdata 
+0x6eec 029577 rtn 
+:      029580 gpio_out_inactive:
+0x6eed 029581 sub temp ,ui_button_gpio_disable ,null 
+0x6eee 029582 rtn zero 
+0x6eef 029583 isolate1 gpio_active_bit ,null 
+0x6ef0 029584 branch gpio_out_flag 
+:      029586 gpio_config_output:
+:      029587 gpio_out_active:
+0x6ef1 029588 sub temp ,ui_button_gpio_disable ,null 
+0x6ef2 029589 rtn zero 
+0x6ef3 029590 isolate0 gpio_active_bit ,null 
+:      029593 gpio_out_flag:
+0x6ef4 029594 setarg 0 
+0x6ef5 029595 nsetflag true ,gpio_active_bit ,pdata 
+0x6ef6 029596 ixor temp ,temp 
+:      029599 gpio_out:
+0x6ef7 029600 call gpio_addr 
+0x6ef8 029601 setarg gpcfg_output_high 
+0x6ef9 029602 isolate1 gpio_active_bit ,temp 
+0x6efa 029603 setflag true ,0 ,pdata 
+0x6efb 029604 branch gpio_write 
+:      029607 gpio_check_active:
+0x6efc 029608 sub temp ,ui_button_gpio_disable ,null 
+0x6efd 029609 branch disable_true ,zero 
+0x6efe 029610 call gpio_addr 
+0x6eff 029611 ifetch 1 ,contw 
+0x6f00 029612 bbit1 0 ,gpio_check_active_high 
+0x6f01 029613 isolate0 gpio_active_bit ,temp 
+0x6f02 029614 rtn 
+:      029615 gpio_check_active_high:
+0x6f03 029616 isolate1 gpio_active_bit ,temp 
+0x6f04 029617 rtn 
+:      029619 gpio_set_analog:
+0x6f05 029620 sub temp ,ui_button_gpio_disable ,null 
+0x6f06 029621 rtn zero 
+0x6f07 029622 call gpio_addr 
+0x6f08 029623 setarg gpcfg_no_ie 
+:      029624 gpio_write:
+0x6f09 029625 istore 1 ,contw 
+0x6f0a 029626 rtn 
+:      029628 gpio_set_high_impedance:
+0x6f0b 029629 sub temp ,ui_button_gpio_disable ,null 
+0x6f0c 029630 rtn zero 
+0x6f0d 029631 call gpio_addr 
+0x6f0e 029632 setarg gpcfg_high_impedance 
+0x6f0f 029633 branch gpio_write 
+:      029635 gpio_addr:
+0x6f10 029636 and temp ,0x3f ,pdata 
+0x6f11 029637 sub pdata ,gpio_number + -1 ,null 
+0x6f12 029638 nbranch gpio_addr_ext ,positive 
+0x6f13 029639 arg core_gpio_conf ,contw 
+:      029640 gpio_addr_next:
+0x6f14 029641 iadd contw ,contw 
+0x6f15 029642 rtn 
+:      029643 gpio_addr_ext:
+0x6f16 029644 arg core_gpio_conf_hi ,contw 
+0x6f17 029645 increase -16 ,pdata 
+0x6f18 029646 branch gpio_addr_next 
+:      029649 gpio_config_param:
+0x6f19 029650 and pdata ,0xff ,temp 
+0x6f1a 029651 rshift8 pdata ,pdata 
+0x6f1b 029652 branch gpio_config_function_int 
+:      029655 gpio_config_function:
+0x6f1c 029656 rtnbit0 gpio_active_bit 
+:      029657 gpio_config_function_int:
+0x6f1d 029658 rtneq gpio_disable 
+0x6f1e 029659 and_into 0x3f ,pdata 
+0x6f1f 029660 sub pdata ,gpio_number + -1 ,null 
+0x6f20 029661 nbranch gpio_config_function_int_ext ,positive 
+0x6f21 029662 arg core_gpio_conf ,contw 
+:      029663 gpio_config_function_int_next:
+0x6f22 029664 iadd contw ,contw 
+0x6f23 029665 istoret 1 ,contw 
+0x6f24 029666 rtn 
+:      029667 gpio_config_function_int_ext:
+0x6f25 029668 arg core_gpio_conf_hi ,contw 
+0x6f26 029669 increase -16 ,pdata 
+0x6f27 029670 branch gpio_config_function_int_next 
+:      029674 gpio_get_config:
+0x6f28 029675 and_into 0x3f ,temp 
+0x6f29 029676 sub temp ,gpio_number + -1 ,null 
+0x6f2a 029677 nbranch gpio_get_config_ext ,positive 
+0x6f2b 029678 setarg core_gpio_conf 
+:      029679 gpio_get_config_next:
+0x6f2c 029680 iadd temp ,contr 
+0x6f2d 029681 ifetch 1 ,contr 
+0x6f2e 029682 rtn 
+:      029683 gpio_get_config_ext:
+0x6f2f 029684 setarg core_gpio_conf_hi 
+0x6f30 029685 increase -16 ,temp 
+0x6f31 029686 branch gpio_get_config_next 
+:      029690 gpio_set_before_lpm:
+0x6f32 029691 arg gpio_number ,loopcnt 
+0x6f33 029692 arg core_gpio_conf ,contr 
+:      029693 setgpio_loop:
+0x6f34 029694 copy contr ,contw 
+0x6f35 029695 ifetch 1 ,contr 
+0x6f36 029696 beq gpcfg_spid_miso ,setgpio_pullup 
+0x6f37 029697 beq gpcfg_spid_ncs ,setgpio_pullup 
+0x6f38 029698 beq gpcfg_spid_sck ,setgpio_pullup 
+0x6f39 029699 beq gpcfg_spid_mosi ,setgpio_pullup 
+0x6f3a 029700 beq gpcfg_spid_sdio ,setgpio_pullup 
+0x6f3b 029701 beq gpcfg_iic_scl ,setgpio_pullup 
+0x6f3c 029702 beq gpcfg_iic_sda ,setgpio_pullup 
+0x6f3d 029703 beq gpcfg_input ,setgpio_pullup 
+:      029704 setgpio_loop_end:
+0x6f3e 029705 loop setgpio_loop 
+0x6f3f 029706 arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+0x6f40 029707 isub contr ,null 
+0x6f41 029708 rtn zero 
+:      029709 gpio_set_before_lpm_ext:
+0x6f42 029710 arg gpio_number_ext ,loopcnt 
+0x6f43 029711 arg core_gpio_conf_hi ,contr 
+0x6f44 029712 branch setgpio_loop 
+:      029715 setgpio_pullup:
+0x6f45 029716 setarg gpcfg_pullup 
+0x6f46 029717 istore 1 ,contw 
+0x6f47 029718 branch setgpio_loop_end 
+:      029719 setgpio_pulldown:
+0x6f48 029720 setarg gpcfg_pulldown 
+0x6f49 029721 istore 1 ,contw 
+0x6f4a 029722 branch setgpio_loop_end 
+:      029726 lpm_puchk_set_check:
+0x6f4b 029727 fetch 1 ,mem_qdec_set_flag 
+0x6f4c 029728 branch lpm_config_puchk_disable ,blank 
+0x6f4d 029729 branch lpm_config_puchk_enable 
+:      029731 lpm_config_puchk_disable:
+0x6f4e 029732 setarg 0x10 
+:      029733 lpm_config_puchk_set:
+0x6f4f 029734 store 1 ,core_puwakeup 
+0x6f50 029735 branch lpm_write_wait 
+:      029737 lpm_config_puchk_enable:
+0x6f51 029738 setarg 0x80 
+0x6f52 029739 branch lpm_config_puchk_set 
+:      029743 sadc_calibration:
+0x6f53 029744 bpatch patch1f_7 ,mem_patch1f 
+0x6f54 029745 rtn wake 
+0x6f55 029746 jam 0x77 ,core_gpadc_ctrl 
+0x6f56 029747 jam 0xc9 ,core_gpadc_cfg0 
+0x6f57 029748 jam 0x01 ,core_gpadc_cfg3 
+0x6f58 029749 fetch 1 ,mem_adc_clkdiv 
+0x6f59 029750 store 1 ,core_sadc_clkdiv 
+0x6f5a 029751 jam 0x03 ,core_sadc_ctrl 
+0x6f5b 029752 call sar_adc_read_wait 
+0x6f5c 029753 fetcht 2 ,core_sadc_data 
+0x6f5d 029755 jam 0x00 ,core_sadc_ctrl 
+0x6f5e 029756 jam 0xc1 ,core_gpadc_cfg0 
+:      029757 sadc_cal_read:
+0x6f5f 029758 arg 8 ,loopcnt 
+0x6f60 029759 arg mem_adc_cal_c0 ,rega 
+0x6f61 029760 jam 0x05 ,core_gpadc_cfg2 
+:      029761 sadc_cal_read_loop:
+0x6f62 029762 fetch 1 ,core_gpadc_status 
+0x6f63 029763 istore 1 ,rega 
+0x6f64 029764 increase 1 ,rega 
+0x6f65 029765 fetch 1 ,core_gpadc_cfg2 
+0x6f66 029766 increase 0x20 ,pdata 
+0x6f67 029767 store 1 ,core_gpadc_cfg2 
+0x6f68 029768 loop sadc_cal_read_loop 
+0x6f69 029769 jam 0x00 ,core_gpadc_ctrl 
+0x6f6a 029770 rtn 
+:      029772 sadc_cal_write:
+0x6f6b 029773 fetch 1 ,core_sadc_ctrl 
+0x6f6c 029774 set1 1 ,pdata 
+0x6f6d 029775 store 1 ,core_sadc_ctrl 
+0x6f6e 029776 arg 8 ,loopcnt 
+0x6f6f 029777 arg mem_adc_cal_c0 ,rega 
+0x6f70 029778 jam 0x15 ,core_gpadc_cfg2 
+:      029779 sadc_cal_write_loop:
+0x6f71 029780 ifetch 1 ,rega 
+0x6f72 029781 store 1 ,core_gpadc_cfg1 
+0x6f73 029782 increase 1 ,rega 
+0x6f74 029783 fetch 1 ,core_gpadc_cfg2 
+0x6f75 029784 increase 0x20 ,pdata 
+0x6f76 029785 store 1 ,core_gpadc_cfg2 
+0x6f77 029786 loop sadc_cal_write_loop 
+0x6f78 029787 fetch 1 ,core_sadc_ctrl 
+0x6f79 029788 set0 1 ,pdata 
+0x6f7a 029789 store 1 ,core_sadc_ctrl 
+0x6f7b 029790 rtn 
+:      029794 adc_init_data:
+0x6f7c 029795 bpatchx patch20_0 ,mem_patch20 
+0x6f7d 029796 fetch 8 ,mem_otp_adc 
+0x6f7e 029797 rtn blank 
+0x6f7f 029798 store 8 ,mem_reference_inter1p8v_2v_adc_io_data 
+0x6f80 029799 call enable_otp_read 
+0x6f81 029800 call loadcode_check_otp_lock 
+0x6f82 029801 arg otp_offset_adc_param_l_c0 ,pdata 
+0x6f83 029802 iadd regb ,regb 
+0x6f84 029803 arg 10 ,loopcnt 
+0x6f85 029804 arg mem_otp_temp ,rega 
+0x6f86 029805 call otp_read_data 
+0x6f87 029806 call disable_otp 
+0x6f88 029807 fetch 8 ,mem_otp_temp 
+0x6f89 029808 rtn blank 
+0x6f8a 029809 store 8 ,mem_adc_reference3v_gpio1v_ft_data 
+0x6f8b 029810 ifetch 2 ,contr 
+0x6f8c 029811 istore 2 ,contw 
+0x6f8d 029812 rtn 
+:      029815 vdd_calculate_by_mode:
+0x6f8e 029816 bpatchx patch20_1 ,mem_patch20 
+0x6f8f 029817 fetch 1 ,mem_adc_reference_mode 
+0x6f90 029818 beq sadc_reference_inter3v ,vdd_reference_inter3v_calculate 
+0x6f91 029819 beq sadc_reference_inter1p8v_div2 ,vdd_reference_inter1p8v_calculate 
+0x6f92 029820 branch vdd_reference_inter3v_calculate 
+:      029822 vdd_reference_inter3v_calculate:
+0x6f93 029823 fetch 1 ,mem_adc_config_flag 
+0x6f94 029824 beq adc_config_hvin ,vdd_reference_inter3v_calculate_by_mode_vdcdc 
+0x6f95 029825 beq adc_config_gpio ,vdd_reference_inter3v_calculate_by_mode_gpio 
+0x6f96 029826 rtn 
+:      029828 vdd_reference_inter3v_calculate_by_mode_vdcdc:
+0x6f97 029829 setarg 1000 
+0x6f98 029830 store 2 ,mem_reference_voltage 
+0x6f99 029831 fetcht 2 ,mem_adc_reference3v_vdcdc3p6v_ft_data 
+0x6f9a 029832 fetch 2 ,mem_adc_reference3v_vdcdc4p6v_ft_data 
+0x6f9b 029833 arg 3600 ,regc 
+0x6f9c 029834 call vdd_calculate 
+0x6f9d 029835 branch mul1v_div1v_to_cal 
+:      029837 vdd_reference_inter3v_calculate_by_mode_gpio:
+0x6f9e 029838 setarg 1000 
+0x6f9f 029839 store 2 ,mem_reference_voltage 
+0x6fa0 029840 fetcht 2 ,mem_adc_reference3v_gpio1v_ft_data 
+0x6fa1 029841 fetch 2 ,mem_adc_reference3v_gpio2v_ft_data 
+0x6fa2 029842 arg 1000 ,regc 
+0x6fa3 029843 call vdd_calculate 
+:      029844 mul1v_div1v_to_cal:
+0x6fa4 029845 fetcht 2 ,mem_adc_reference3v_inter1v_ft_data 
+0x6fa5 029846 imul32 temp ,pdata 
+0x6fa6 029847 fetcht 2 ,mem_adc_reference3v_inter1v_now_data 
+0x6fa7 029848 idiv temp 
+0x6fa8 029849 branch get_div_result 
+:      029851 enable_adc_init_config:
+0x6fa9 029852 call sadc_cal_write 
+0x6faa 029853 fetch 1 ,core_gpadc_cfg1 
+0x6fab 029854 set0 7 ,pdata 
+0x6fac 029855 store 1 ,core_gpadc_cfg1 
+0x6fad 029856 jam 0x77 ,core_gpadc_ctrl 
+0x6fae 029857 jam 0xc1 ,core_gpadc_cfg0 
+0x6faf 029858 jam 0x61 ,core_vtest_ctrl0 
+0x6fb0 029859 jam 0x00 ,core_gpadc_cfg3 
+0x6fb1 029860 rtn 
+:      029863 enable_adc:
+0x6fb2 029864 bpatchx patch20_2 ,mem_patch20 
+0x6fb3 029865 fetch 1 ,mem_adc_reference_mode 
+0x6fb4 029866 beq sadc_reference_inter3v ,enable_adc_reference_source_inter3v 
+0x6fb5 029867 beq sadc_reference_inter1p8v_div2 ,enable_adc_reference_source_inter1p8v 
+0x6fb6 029868 branch enable_adc_reference_source_inter3v 
+:      029870 enable_adc_reference_source_inter3v:
+0x6fb7 029871 call enable_adc_init_config 
+0x6fb8 029872 call sadc_channel 
+0x6fb9 029873 fetch 1 ,mem_adc_clkdiv 
+0x6fba 029874 store 1 ,core_sadc_clkdiv 
+0x6fbb 029875 call sadc_read 
+0x6fbc 029876 jam 0x60 ,core_vtest_ctrl0 
+0x6fbd 029877 jam 0x00 ,core_sadc_clkdiv 
+:      029880 read_adc_inter1v:
+0x6fbe 029881 call enable_adc_init_config 
+0x6fbf 029882 fetch 1 ,mem_adc_clkdiv 
+0x6fc0 029883 store 1 ,core_sadc_clkdiv 
+0x6fc1 029884 jam 0x50 ,core_gpadc_cfg3 
+0x6fc2 029885 jam 0xc0 ,core_vtest_ctrl1 
+0x6fc3 029887 arg 0xb ,regext_index 
+0x6fc4 029888 fetchr regext ,2 ,mem_adc_current_value 
+0x6fc5 029890 jam 0x03 ,core_sadc_ctrl 
+0x6fc6 029891 call sar_adc_read_wait 
+0x6fc7 029892 fetcht 2 ,core_sadc_data 
+0x6fc8 029893 storet 2 ,mem_adc_reference3v_inter1v_now_data 
+0x6fc9 029895 jam 0x06 ,core_sadc_ctrl 
+0x6fca 029896 call sadc_read_wait2 
+0x6fcb 029898 arg 0xb ,regext_index 
+0x6fcc 029899 storer regext ,2 ,mem_adc_current_value 
+0x6fcd 029901 jam 0x60 ,core_vtest_ctrl0 
+0x6fce 029902 jam 0x00 ,core_sadc_clkdiv 
+0x6fcf 029903 jam 0x00 ,core_sadc_ctrl 
+0x6fd0 029904 rtn 
+:      029907 vdd_reference_inter1p8v_calculate:
+0x6fd1 029908 fetch 1 ,mem_adc_config_flag 
+0x6fd2 029909 beq adc_config_hvin ,vdd_reference_inter1p8v_calculate_by_mode_vdcdc 
+0x6fd3 029910 beq adc_config_gpio ,vdd_reference_inter1p8v_div2_calculate_by_mode_gpio 
+0x6fd4 029911 rtn 
+:      029913 vdd_reference_inter1p8v_calculate_by_mode_vdcdc:
+0x6fd5 029914 setarg 2000 
+0x6fd6 029915 store 2 ,mem_reference_voltage 
+0x6fd7 029916 fetcht 2 ,mem_reference_inter1p8v_2p6v_adc_vdcdc_data 
+0x6fd8 029917 fetch 2 ,mem_reference_inter1p8v_4p6v_adc_vdcdc_data 
+0x6fd9 029918 arg 2600 ,regc 
+0x6fda 029919 branch vdd_calculate 
+:      029921 vdd_reference_inter1p8v_div2_calculate_by_mode_gpio:
+0x6fdb 029922 setarg 1000 
+0x6fdc 029923 store 2 ,mem_reference_voltage 
+0x6fdd 029924 fetcht 2 ,mem_reference_inter1p8v_2v_adc_io_data 
+0x6fde 029925 fetch 2 ,mem_reference_inter1p8v_1v_adc_io_data 
+0x6fdf 029926 arg 2000 ,regc 
+:      029929 vdd_calculate00:
+0x6fe0 029930 isub temp ,rega 
+0x6fe1 029931 fetch 2 ,mem_adc_current_value 
+0x6fe2 029932 isub temp ,pdata 
+0x6fe3 029933 nbranch vdd_calculate11 ,positive 
+0x6fe4 029934 call vdd_calculate_common 
+0x6fe5 029935 isub regb ,pdata 
+0x6fe6 029936 nbranch set_pdata_0 ,positive 
+0x6fe7 029937 branch vdd_calculate2 
+:      029939 vdd_calculate11:
+0x6fe8 029940 copy temp ,pdata 
+0x6fe9 029941 fetcht 2 ,mem_adc_current_value 
+0x6fea 029942 isub temp ,pdata 
+0x6feb 029943 call vdd_calculate_common 
+0x6fec 029944 iadd regb ,pdata 
+0x6fed 029945 branch vdd_calculate2 
+:      029948 enable_adc_reference_source_inter1p8v:
+0x6fee 029949 fetch 1 ,mem_adc_config_flag 
+0x6fef 029950 beq adc_config_hvin ,enable_adc_reference_source_inter1p8v_vdcdc 
+:      029951 enable_adc_reference_source_inter1p8v_div2_gpio:
+0x6ff0 029952 call sadc_cal_write 
+0x6ff1 029953 fetch 1 ,core_gpadc_cfg1 
+0x6ff2 029954 set0 7 ,pdata 
+0x6ff3 029955 store 1 ,core_gpadc_cfg1 
+0x6ff4 029956 jam 0x77 ,core_gpadc_ctrl 
+0x6ff5 029957 jam 0x41 ,core_gpadc_cfg0 
+0x6ff6 029958 jam 0x14 ,0x8ac6 
+0x6ff7 029959 branch enable_adc_reference_source_inter1p8v_common 
+:      029961 enable_adc_reference_source_inter1p8v_vdcdc:
+0x6ff8 029962 call sadc_cal_write 
+0x6ff9 029963 fetch 1 ,core_gpadc_cfg1 
+0x6ffa 029964 set0 7 ,pdata 
+0x6ffb 029965 store 1 ,core_gpadc_cfg1 
+0x6ffc 029966 jam 0x77 ,core_gpadc_ctrl 
+0x6ffd 029967 jam 0x41 ,core_gpadc_cfg0 
+0x6ffe 029968 jam 0x10 ,0x8ac6 
+:      029969 enable_adc_reference_source_inter1p8v_common:
+0x6fff 029970 jam 0x00 ,core_gpadc_cfg3 
+0x7000 029971 call sadc_channel 
+0x7001 029972 fetch 1 ,mem_adc_clkdiv 
+0x7002 029973 store 1 ,core_sadc_clkdiv 
+0x7003 029974 call sadc_read 
+0x7004 029976 jam 0x00 ,core_sadc_clkdiv 
+0x7005 029977 jam 0x00 ,0x8ac6 
+0x7006 029978 rtn 
+:      029980 sadc_channel:
+0x7007 029981 fetch 1 ,mem_adc_channel 
+0x7008 029982 lshift4 pdata ,pdata 
+0x7009 029983 fetcht 1 ,core_gpadc_cfg3 
+0x700a 029984 and_into 0x0f ,temp 
+0x700b 029985 ior temp ,temp 
+0x700c 029986 storet 1 ,core_gpadc_cfg3 
+0x700d 029987 rtn 
+:      029989 sar_adc_read_wait:
+0x700e 029990 fetch 1 ,core_perf_status 
+0x700f 029991 bbit0 saradc_done ,sar_adc_read_wait 
+0x7010 029992 rtn 
+:      029995 sadc_read:
+0x7011 029996 bpatchx patch20_3 ,mem_patch20 
+0x7012 029997 jam 0x03 ,core_sadc_ctrl 
+0x7013 029998 call sar_adc_read_wait 
+0x7014 029999 fetcht 2 ,core_sadc_data 
+0x7015 030000 storet 2 ,mem_adc_current_value 
+0x7016 030001 jam 0x06 ,core_sadc_ctrl 
+:      030002 sadc_read_wait2:
+0x7017 030003 fetch 1 ,core_perf_status 
+0x7018 030004 bbit1 saradc_done ,sadc_read_wait2 
+0x7019 030005 jam 0x00 ,core_sadc_ctrl 
+0x701a 030006 rtn 
+:      030008 sadc_dma:
+0x701b 030009 fetch 1 ,mem_adc_dma_enable 
+0x701c 030010 rtn blank 
+0x701d 030011 fetch 1 ,core_gpadc_cfg1 
+0x701e 030012 set1 7 ,pdata 
+0x701f 030013 store 1 ,core_gpadc_cfg1 
+0x7020 030014 fetch 1 ,mem_adc_clkdiv 
+0x7021 030015 store 1 ,core_sadc_clkdiv 
+0x7022 030016 fetch 2 ,mem_adc_saddr_ptr 
+0x7023 030017 store 2 ,core_sadc_saddr 
+0x7024 030018 fetch 2 ,mem_adc_eaddr_ptr 
+0x7025 030019 store 2 ,core_sadc_eaddr 
+0x7026 030020 jam 0x0b ,core_sadc_ctrl 
+0x7027 030021 nop 1000 
+0x7028 030022 jam 0x03 ,core_sadc_ctrl 
+0x7029 030023 rtn 
+:      030026 vdd_calculate:
+0x702a 030027 isub temp ,rega 
+0x702b 030028 fetch 2 ,mem_adc_current_value 
+0x702c 030029 isub temp ,pdata 
+0x702d 030030 nbranch vdd_calculate1 ,positive 
+0x702e 030031 call vdd_calculate_common 
+0x702f 030032 iadd regb ,pdata 
+:      030033 vdd_calculate2:
+0x7030 030034 idiv rega 
+0x7031 030035 branch get_div_result 
+:      030037 vdd_calculate1:
+0x7032 030038 copy temp ,pdata 
+0x7033 030039 fetcht 2 ,mem_adc_current_value 
+0x7034 030040 isub temp ,pdata 
+0x7035 030041 call vdd_calculate_common 
+0x7036 030042 isub regb ,pdata 
+0x7037 030043 nbranch set_pdata_0 ,positive 
+0x7038 030044 branch vdd_calculate2 
+:      030047 vdd_calculate_common:
+0x7039 030048 fetcht 2 ,mem_reference_voltage 
+0x703a 030049 imul32 temp ,regb 
+0x703b 030050 copy regc ,pdata 
+0x703c 030051 imul32 rega ,pdata 
+0x703d 030052 rtn 
+:      030057 adc_bat_percent_lowpower_out:
+0x703e 030058 ifetch 8 ,rega 
+0x703f 030059 store 8 ,mem_pdatatemp 
+0x7040 030060 fetch 2 ,mem_pdatatemp 
+0x7041 030061 fetcht 2 ,mem_pdatatemp + 2 
+0x7042 030062 isub temp ,rega 
+0x7043 030063 fetch 2 ,mem_pdatatemp + 6 
+0x7044 030064 isub temp ,regb 
+0x7045 030065 fetcht 2 ,mem_pdatatemp + 4 
+0x7046 030066 isub temp ,null 
+0x7047 030067 ncall adc_set_low_power_flag ,positive 
+0x7048 030068 mul32 regb ,100 ,pdata 
+0x7049 030069 idiv rega 
+0x704a 030070 call wait_div_end 
+0x704b 030071 quotient pdata 
+0x704c 030072 call adc_set_no_power_flag ,blank 
+0x704d 030073 rtn 
+:      030075 adc_set_low_power_flag:
+0x704e 030076 fetch 1 ,mem_adc_power_flag 
+0x704f 030077 set1 0 ,pdata 
+0x7050 030078 branch adc_set_power_flag 
+:      030080 adc_clear_low_power_flag:
+0x7051 030081 fetch 1 ,mem_adc_power_flag 
+0x7052 030082 set0 0 ,pdata 
+0x7053 030083 branch adc_set_power_flag 
+:      030085 adc_set_no_power_flag:
+0x7054 030086 fetcht 1 ,mem_adc_power_flag 
+0x7055 030087 set1 1 ,temp 
+0x7056 030088 branch adc_set_power_flag 
+:      030090 adc_clear_no_power_flag:
+0x7057 030091 fetcht 1 ,mem_adc_power_flag 
+0x7058 030092 set0 1 ,temp 
+:      030093 adc_set_power_flag:
+0x7059 030094 storet 1 ,mem_adc_power_flag 
+0x705a 030095 rtn 
+:      030100 keyscan_key_init:
+0x705b 030101 fetch 2 ,mem_key_num_ptr 
+0x705c 030102 ifetch 1 ,pdata 
+:      030103 keyscan_key_init_next:
+0x705d 030104 rtn blank 
+0x705e 030105 copy pdata ,loopcnt 
+0x705f 030107 fetch 2 ,mem_keyscan_ptr 
+0x7060 030108 increase 3 ,pdata 
+0x7061 030109 copy pdata ,rega 
+:      030110 keyscan_key_init_lp1:
+0x7062 030111 ifetcht 1 ,rega 
+0x7063 030112 call gpio_config_input 
+0x7064 030113 increase key_conf_struct_len ,rega 
+0x7065 030114 loop keyscan_key_init_lp1 
+:      030115 keyscan_key_init_end:
+0x7066 030116 rtn 
+:      030118 keyscan_scan_key:
+0x7067 030119 fetch 2 ,mem_keyscan_ptr 
+0x7068 030120 increase 3 ,pdata 
+0x7069 030121 copy pdata ,rega 
+0x706a 030123 force 0 ,regb 
+0x706b 030124 setarg 0 
+0x706c 030125 store 2 ,mem_key_value_temp 
+:      030126 keyscan_scan_key_lp1:
+0x706d 030127 ifetcht 1 ,rega 
+0x706e 030128 call gpio_get_bit 
+0x706f 030129 bpatchx patch20_4 ,mem_patch20 
+0x7070 030130 fetch 2 ,mem_key_value_temp 
+0x7071 030131 copy regb ,queue 
+0x7072 030132 qsetflag true ,pdata 
+0x7073 030133 store 2 ,mem_key_value_temp 
+0x7074 030134 increase key_conf_struct_len ,rega 
+0x7075 030135 increase 1 ,regb 
+0x7076 030136 fetch 2 ,mem_key_num_ptr 
+0x7077 030137 ifetch 1 ,pdata 
+:      030138 keyscan_scan_key_lp1_next:
+0x7078 030139 ixor regb ,null 
+0x7079 030140 nbranch keyscan_scan_key_lp1 ,zero 
+0x707a 030141 fetch 2 ,mem_key_value_temp 
+0x707b 030142 fetcht 2 ,mem_key_value_retention 
+0x707c 030143 ixor temp ,null 
+0x707d 030144 rtn zero 
+0x707e 030145 branch enable_user 
+:      030147 keyscan_process_lpm_before:
+0x707f 030148 fetch 2 ,mem_key_num_ptr 
+0x7080 030149 ifetch 1 ,pdata 
+:      030150 keyscan_process_lpm_before_next:
+0x7081 030151 rtn blank 
+0x7082 030152 copy pdata ,loopcnt 
+0x7083 030153 fetch 2 ,mem_keyscan_ptr 
+0x7084 030154 increase 3 ,pdata 
+0x7085 030155 copy pdata ,rega 
+:      030156 keyscan_process_lpm_before_lp1:
+0x7086 030157 ifetcht 1 ,rega 
+0x7087 030158 call gpio_set_wake_by_current_state 
+0x7088 030159 increase key_conf_struct_len ,rega 
+0x7089 030160 loop keyscan_process_lpm_before_lp1 
+:      030161 keyscan_process_lpm_before_end:
+0x708a 030162 rtn 
+:      030164 keyscan_key_process:
+0x708b 030165 arg key_scan_timer ,queue 
+0x708c 030166 call timer_check 
+0x708d 030167 nrtn blank 
+0x708e 030168 setarg 0x20 
+0x708f 030169 arg key_scan_timer ,queue 
+0x7090 030170 call timer_init 
+0x7091 030171 disable user 
+0x7092 030172 call keyscan_process_lpm_before 
+0x7093 030173 bpatchx patch20_5 ,mem_patch20 
+0x7094 030174 fetch 2 ,mem_key_num_ptr 
+0x7095 030175 ifetch 1 ,pdata 
+:      030176 keyscan_key_process_next:
+0x7096 030177 rtn blank 
+0x7097 030178 call keyscan_scan_key 
+0x7098 030179 nbranch lpm_button_clean_wake_lock ,user 
+0x7099 030180 call lpm_button_get_wake_lock 
+0x709a 030181 disable user 
+0x709b 030182 fetch 2 ,mem_key_value_temp 
+0x709c 030183 store 2 ,mem_key_value_temp4 
+0x709d 030184 jam 0 ,mem_key_value_temp6 
+0x709e 030185 force 0 ,queue 
+:      030186 keyscan_key_lp1:
+0x709f 030187 fetch 2 ,mem_key_value_retention 
+0x70a0 030188 rshift pdata ,temp 
+0x70a1 030189 storet 2 ,mem_key_value_retention 
+0x70a2 030190 and pdata ,0x01 ,pdata 
+0x70a3 030191 fetcht 2 ,mem_key_value_temp4 
+0x70a4 030192 and temp ,0x01 ,rega 
+0x70a5 030193 rshift temp ,temp 
+0x70a6 030194 storet 2 ,mem_key_value_temp4 
+0x70a7 030195 ixor rega ,null 
+0x70a8 030196 ncall keyscan_send_key_data ,zero 
+0x70a9 030197 fetch 2 ,mem_key_num_ptr 
+0x70aa 030198 ifetch 1 ,pdata 
+:      030199 keyscan_key_lp1_next:
+0x70ab 030200 fetcht 1 ,mem_key_value_temp6 
+0x70ac 030201 increase 1 ,temp 
+0x70ad 030202 storet 1 ,mem_key_value_temp6 
+0x70ae 030203 copy temp ,queue 
+0x70af 030204 ixor queue ,null 
+0x70b0 030205 nbranch keyscan_key_lp1 ,zero 
+0x70b1 030206 fetch 2 ,mem_key_value_temp 
+0x70b2 030207 store 2 ,mem_key_value_retention 
+0x70b3 030208 rtn 
+:      030209 keyscan_send_key_data:
+0x70b4 030210 bpatchx patch20_6 ,mem_patch20 
+0x70b5 030211 fetch 2 ,mem_keyscan_ptr 
+0x70b6 030212 increase 1 ,pdata 
+0x70b7 030213 ifetch 2 ,pdata 
+0x70b8 030214 branch callback_func 
+:      030220 pwm_init:
+0x70b9 030221 fetch 1 ,core_clksel 
+0x70ba 030222 ior rega ,pdata 
+0x70bb 030223 store 1 ,core_clksel 
+0x70bc 030224 fetch 2 ,core_clkoff 
+0x70bd 030225 set0 clock_off_pwm ,pdata 
+0x70be 030226 store 2 ,core_clkoff 
+:      030227 delay_nop100:
+0x70bf 030228 nop 100 
+0x70c0 030229 rtn 
+:      030231 pwm_clk_set:
+0x70c1 030232 fetch 1 ,core_clksel 
+0x70c2 030233 bbit1 6 ,pwm_24m_clk_set 
+0x70c3 030234 bbit1 7 ,pwm_33k_clk_set 
+:      030235 pwm_12m_clk_set:
+0x70c4 030236 setarg pwm_12mhz 
+0x70c5 030237 rtn 
+:      030238 pwm_24m_clk_set:
+0x70c6 030239 setarg pwm_24mhz 
+0x70c7 030240 rtn 
+:      030241 pwm_33k_clk_set:
+0x70c8 030242 setarg pwm_33khz 
+0x70c9 030243 rtn 
+:      030246 pwm_out_set:
+0x70ca 030247 fetcht 3 ,mem_pdatatemp + 2 
+0x70cb 030248 call pwm_clk_set 
+0x70cc 030249 idiv temp 
+0x70cd 030250 call wait_div_end 
+0x70ce 030251 quotient temp 
+0x70cf 030252 fetch 1 ,mem_pdatatemp + 5 
+0x70d0 030253 imul32 temp ,pdata 
+0x70d1 030254 div pdata ,100 
+0x70d2 030255 call wait_div_end 
+0x70d3 030256 quotient rega 
+0x70d4 030257 copy temp ,pdata 
+0x70d5 030258 isub rega ,regb 
+0x70d6 030260 fetch 1 ,mem_pdatatemp + 1 
+0x70d7 030261 call pwm_duty_cycle_set 
+0x70d8 030262 fetch 1 ,mem_pdatatemp 
+0x70d9 030263 fetcht 1 ,mem_pdatatemp + 1 
+0x70da 030264 and_into 0x0f ,temp 
+0x70db 030265 lshift8 temp ,temp 
+0x70dc 030266 ior temp ,pdata 
+0x70dd 030267 branch pwm_enable 
+:      030269 pwm_duty_cycle_set:
+0x70de 030270 iforce queue 
+0x70df 030271 call pwm_duty_cycle_set_without_autoload 
+0x70e0 030272 branch pwm_autoload_set 
+:      030274 pwm_autoload_set:
+0x70e1 030275 fetch 1 ,core_pwm_autoload 
+0x70e2 030276 qset1 pdata 
+0x70e3 030277 store 1 ,core_pwm_autoload 
+0x70e4 030278 fetcht 1 ,core_clksel 
+0x70e5 030279 isolate1 7 ,temp 
+0x70e6 030280 call delay_1clk_of_33k ,true 
+0x70e7 030281 qset0 pdata 
+0x70e8 030282 store 1 ,core_pwm_autoload 
+0x70e9 030283 rtn 
+:      030286 delay_1clk_of_33k:
+0x70ea 030287 nop 480 
+0x70eb 030288 rtn 
+:      030290 pwm_duty_cycle_set_without_autoload:
+0x70ec 030291 and_into 0x0f ,pdata 
+0x70ed 030292 arg core_pwm_pcnt0 ,contw 
+0x70ee 030293 mul32 pdata ,4 ,pdata 
+0x70ef 030294 iadd contw ,contw 
+0x70f0 030295 copy rega ,pdata 
+0x70f1 030296 istore 2 ,contw 
+0x70f2 030297 copy regb ,pdata 
+0x70f3 030298 istore 2 ,contw 
+0x70f4 030299 rtn 
+:      030307 pwm_init_bit_set:
+0x70f5 030308 isolate1 6 ,queue 
+:      030309 pwm_init_bit_set_process:
+0x70f6 030310 and queue ,0x0f ,queue 
+0x70f7 030311 fetch 1 ,core_pwm_init 
+0x70f8 030312 qsetflag true ,pdata 
+0x70f9 030313 store 1 ,core_pwm_init 
+0x70fa 030314 rtn 
+:      030315 pwm_gpio_select:
+0x70fb 030316 call pwm_select_channel 
+:      030317 pwm_gpio_select_process:
+0x70fc 030318 lshift8 pdata ,pdata 
+0x70fd 030319 add queue ,gpcfg_pwm_out0 ,temp 
+0x70fe 030320 ior temp ,pdata 
+0x70ff 030321 branch gpio_config_param 
+:      030323 pwm_enable:
+0x7100 030324 enable user 
+0x7101 030325 call pwm_gpio_select 
+0x7102 030326 branch pwm_set_select 
+:      030328 pwm_disable:
+0x7103 030329 disable user 
+0x7104 030330 call pwm_select_channel 
+0x7105 030331 branch pwm_set_select 
+:      030333 pwm_set_select:
+0x7106 030334 and queue ,0x0f ,queue 
+0x7107 030335 fetch 1 ,core_pwm_en 
+0x7108 030336 qsetflag user ,pdata 
+0x7109 030337 store 1 ,core_pwm_en 
+0x710a 030338 rtn 
+:      030339 pwm_select_channel:
+0x710b 030340 rshift8 pdata ,queue 
+0x710c 030341 and queue ,0x0f ,queue 
+0x710d 030342 rtn 
+:      030346 wdt_init_config:
+0x710e 030347 copy pdata ,temp 
+0x710f 030348 bpatchx patch20_7 ,mem_patch20 
+0x7110 030349 call wdt_set_enable 
+0x7111 030350 setarg 2048 
+0x7112 030351 isub temp ,pdata 
+0x7113 030352 copy pdata ,temp 
+0x7114 030353 rshift4 temp ,temp 
+0x7115 030354 storet 1 ,core_write_wdt 
+0x7116 030355 nop 1400 
+0x7117 030356 copy pdata ,temp 
+0x7118 030357 and_into 0x0f ,temp 
+0x7119 030358 storet 1 ,core_write_wdt2 
+0x711a 030359 rtn 
+:      030362 wdt_set_enable:
+0x711b 030363 enable user2 
+0x711c 030364 branch wdt_init_set 
+:      030367 wdt_set_disable:
+0x711d 030368 bpatchx patch21_0 ,mem_patch21 
+0x711e 030369 disable user2 
+:      030370 wdt_init_set:
+0x711f 030371 fetch 1 ,core_config 
+0x7120 030372 setflag user2 ,3 ,pdata 
+0x7121 030373 store 1 ,core_config 
+0x7122 030374 rtn 
+:      030379 nec_init_config:
+0x7123 030380 store 4 ,core_nec_start_addr 
+0x7124 030381 store 2 ,core_nec_rptr 
+0x7125 030382 storet 1 ,core_nec_ctrl 
+0x7126 030383 rtn 
+:      030387 select_system_clk_12m_xtal:
+0x7127 030388 jam clksel_xtal ,core_clksel 
+:      030389 select_system_clk_12m_common:
+0x7128 030390 jam system_clk_12m ,mem_system_clk 
+0x7129 030391 setarg 3749 
+0x712a 030392 store 2 ,core_halfslot 
+0x712b 030393 rtn 
+:      030395 select_system_clk_12m_dpll:
+0x712c 030396 jam clksel_dpll ,core_clksel 
+0x712d 030397 branch select_system_clk_12m_common 
+:      030405 function_g2:
+0x712e 030406 bpatchx patch21_1 ,mem_patch21 
+0x712f 030407 jam 80 ,mem_aes_cmac_data_length 
+0x7130 030408 arg mem_dat ,contw 
+0x7131 030409 arg mem_le_srand ,contr 
+0x7132 030410 call memcpy16 
+0x7133 030411 arg mem_sc_pubkey_local_x_256 ,contr 
+0x7134 030412 call memcpy32 
+0x7135 030413 arg mem_le_pubkey_remote_x_256 ,contr 
+0x7136 030414 call memcpy32 
+0x7137 030415 call inverse_memdat 
+0x7138 030416 arg mem_le_mrand ,contr 
+0x7139 030417 call store_inverse_k 
+0x713a 030418 call function_aes_cmac 
+0x713b 030420 arg mem_aes_cmac_temp ,contw 
+0x713c 030421 call load_inverse_result 
+0x713d 030422 setarg 1000000 
+0x713e 030423 copy pdata ,rega 
+0x713f 030424 fetch 4 ,mem_aes_cmac_temp 
+0x7140 030425 idiv rega 
+0x7141 030426 call wait_div_end 
+0x7142 030427 remainder pdata 
+0x7143 030428 store 4 ,mem_gkey 
+0x7144 030430 rtn 
+:      030432 function_f6_eb:
+0x7145 030433 jam 65 ,mem_aes_cmac_data_length 
+0x7146 030434 arg mem_dat ,contw 
+0x7147 030435 call store_addr_common_a 
+0x7148 030436 call store_addr_common_b 
+0x7149 030437 fetch 3 ,mem_le_pres + 1 
+0x714a 030438 istore 3 ,contw 
+0x714b 030441 call get_r 
+0x714c 030443 arg mem_le_mrand ,contr 
+0x714d 030444 call memcpy16 
+0x714e 030445 arg mem_le_srand ,contr 
+0x714f 030446 call memcpy16 
+0x7150 030447 call inverse_memdat 
+0x7151 030448 arg mem_le_mackey ,contr 
+0x7152 030449 arg mem_aes_cmac_k ,contw 
+0x7153 030450 call memcpy16 
+0x7154 030452 branch function_aes_cmac 
+:      030456 get_r:
+0x7155 030457 fetch 4 ,mem_le_tk 
+0x7156 030458 istore 4 ,contw 
+0x7157 030459 call memset0_4 
+0x7158 030460 branch memset0_8 
+:      030462 function_f6_ea:
+0x7159 030463 bpatchx patch21_2 ,mem_patch21 
+0x715a 030464 jam 65 ,mem_aes_cmac_data_length 
+0x715b 030465 arg mem_dat ,contw 
+0x715c 030466 call store_addr_common_b 
+0x715d 030467 call store_addr_common_a 
+0x715e 030468 fetch 3 ,mem_le_preq + 1 
+0x715f 030469 istore 3 ,contw 
+0x7160 030472 call get_r 
+0x7161 030473 arg mem_le_srand ,contr 
+0x7162 030474 call memcpy16 
+0x7163 030475 arg mem_le_mrand ,contr 
+0x7164 030476 call memcpy16 
+0x7165 030477 call inverse_memdat 
+0x7166 030478 arg mem_le_mackey ,contr 
+0x7167 030479 arg mem_aes_cmac_k ,contw 
+0x7168 030480 call memcpy16 
+0x7169 030482 call function_aes_cmac 
+0x716a 030483 arg mem_aes_cmac_temp ,contw 
+0x716b 030484 branch load_inverse_result 
+:      030486 function_f5:
+0x716c 030487 jam 32 ,mem_aes_cmac_data_length 
+0x716d 030488 arg mem_le_dhkey_256 ,contr 
+0x716e 030489 arg mem_dat ,contw 
+0x716f 030490 call memcpy32 
+0x7170 030491 call inverse_memdat 
+0x7171 030492 arg mem_le_slat ,contr 
+0x7172 030493 call store_inverse_k 
+0x7173 030494 call function_aes_cmac 
+0x7174 030495 arg mem_aes_cmac_k ,contw 
+0x7175 030496 call store_aes_result 
+0x7176 030497 arg 1 ,temp 
+0x7177 030498 call function_f5_common 
+0x7178 030499 arg mem_le_ltk ,contw 
+0x7179 030500 call load_inverse_result 
+0x717a 030501 arg 0 ,temp 
+0x717b 030502 call function_f5_common 
+0x717c 030503 arg mem_le_mackey ,contw 
+0x717d 030505 branch store_aes_result 
+:      030508 function_f5_common:
+0x717e 030509 bpatchx patch21_3 ,mem_patch21 
+0x717f 030510 jam 53 ,mem_aes_cmac_data_length 
+0x7180 030511 setarg 0x100 
+0x7181 030512 store 2 ,mem_dat 
+0x7182 030513 call store_addr_common_b 
+0x7183 030514 call store_addr_common_a 
+0x7184 030515 arg mem_le_srand ,contr 
+0x7185 030516 call memcpy16 
+0x7186 030517 arg mem_le_mrand ,contr 
+0x7187 030518 call memcpy16 
+0x7188 030520 setarg 0x6c65 
+0x7189 030521 istore 2 ,contw 
+0x718a 030522 setarg 0x6274 
+0x718b 030523 istore 2 ,contw 
+0x718c 030524 istoret 1 ,contw 
+0x718d 030525 call inverse_memdat 
+0x718e 030526 branch function_aes_cmac 
+:      030528 store_addr_common_b:
+0x718f 030529 fetch 6 ,mem_le_lap 
+0x7190 030530 istore 6 ,contw 
+0x7191 030531 fetch 1 ,mem_le_conn_own_addr_type 
+0x7192 030532 istore 1 ,contw 
+0x7193 030533 rtn 
+:      030535 store_addr_common_a:
+0x7194 030536 fetch 6 ,mem_le_plap 
+0x7195 030537 istore 6 ,contw 
+0x7196 030542 fetch 1 ,mem_le_conn_peer_addr_type 
+0x7197 030543 istore 1 ,contw 
+0x7198 030544 rtn 
+:      030546 function_f4_ca:
+0x7199 030547 jam 65 ,mem_aes_cmac_data_length 
+0x719a 030548 fetch 1 ,mem_passkey_1bit 
+0x719b 030549 store 1 ,mem_dat 
+0x719c 030550 arg mem_sc_pubkey_local_x_256 ,contr 
+0x719d 030551 call memcpy32 
+0x719e 030552 arg mem_le_pubkey_remote_x_256 ,contr 
+0x719f 030553 call memcpy32 
+0x71a0 030554 call inverse_memdat 
+0x71a1 030555 arg mem_le_mrand ,contr 
+0x71a2 030556 call store_inverse_k 
+0x71a3 030557 branch function_aes_cmac 
+:      030560 function_f4_cb:
+0x71a4 030561 jam 65 ,mem_aes_cmac_data_length 
+0x71a5 030562 fetch 1 ,mem_passkey_1bit 
+0x71a6 030563 store 1 ,mem_dat 
+0x71a7 030564 arg mem_le_pubkey_remote_x_256 ,contr 
+0x71a8 030565 call memcpy32 
+0x71a9 030566 arg mem_sc_pubkey_local_x_256 ,contr 
+0x71aa 030567 call memcpy32 
+0x71ab 030568 call inverse_memdat 
+0x71ac 030569 arg mem_le_srand ,contr 
+0x71ad 030570 call store_inverse_k 
+0x71ae 030571 branch function_aes_cmac 
+:      030573 function_aes_cmac:
+0x71af 030574 bpatchx patch21_4 ,mem_patch21 
+0x71b0 030575 call function_aes_cmac_generate_subkey 
+0x71b1 030579 fetch 1 ,mem_aes_cmac_data_length 
+0x71b2 030580 copy pdata ,temp 
+:      030581 function_ceil16:
+0x71b3 030582 increase 15 ,pdata 
+0x71b4 030583 rshift4 pdata ,pdata 
+0x71b5 030584 copy pdata ,regb 
+0x71b6 030585 branch function_aes_cmac_set_flag_0_balnk ,blank 
+0x71b7 030586 and temp ,0x0f ,pdata 
+0x71b8 030587 nbranch function_aes_cmac_set_flag_0 ,blank 
+0x71b9 030589 arg mem_aes_cmac_k1 ,regc 
+0x71ba 030590 arg mem_dat ,pdata 
+0x71bb 030591 increase -16 ,pdata 
+0x71bc 030594 iadd temp ,rega 
+0x71bd 030595 arg mem_aes_cmac_m_last ,contw 
+0x71be 030596 arg 4 ,loopcnt 
+0x71bf 030597 call xor_loop 
+0x71c0 030601 branch function_aes_cmac_aes 
+:      030603 function_aes_cmac_set_flag_0_balnk:
+0x71c1 030604 arg 1 ,regb 
+0x71c2 030605 arg 0 ,rega 
+0x71c3 030607 branch function_aes_cmac_set_flag_0_common 
+:      030610 function_aes_cmac_set_flag_0:
+0x71c4 030612 and temp ,0x0f ,rega 
+:      030613 function_aes_cmac_set_flag_0_common:
+0x71c5 030614 arg mem_dat ,pdata 
+0x71c6 030615 iadd temp ,pdata 
+0x71c7 030616 isub rega ,contr 
+0x71c8 030618 arg mem_aes_cmac_temp ,contw 
+0x71c9 030619 call function_aes_cmac_padding 
+0x71ca 030621 arg mem_aes_cmac_k2 ,regc 
+0x71cb 030622 arg mem_aes_cmac_temp ,rega 
+0x71cc 030623 arg mem_aes_cmac_m_last ,contw 
+0x71cd 030624 arg 4 ,loopcnt 
+0x71ce 030625 call xor_loop 
+:      030632 function_aes_cmac_aes:
+0x71cf 030637 call aes_clear_data 
+0x71d0 030638 call aes_init 
+0x71d1 030641 arg mem_dat ,contr 
+:      030642 function_aes_cmac_aes_loop:
+0x71d2 030644 increase -1 ,regb 
+0x71d3 030645 deposit regb 
+0x71d4 030646 branch function_aes_cmac_aes_loop_end ,blank 
+0x71d5 030647 call load_data128 
+0x71d6 030648 call do_aes_cbc 
+0x71d7 030649 branch function_aes_cmac_aes_loop 
+:      030651 function_aes_cmac_aes_loop_end:
+0x71d8 030652 arg mem_aes_cmac_temp ,contw 
+0x71d9 030653 call store_aes_result 
+0x71da 030654 arg mem_aes_cmac_m_last ,contr 
+0x71db 030655 call load_data128 
+0x71dc 030656 call aes_init 
+0x71dd 030657 arg mem_aes_cmac_temp ,contr 
+0x71de 030658 call load_data128 
+0x71df 030659 branch do_aes_cbc 
+:      030663 load_inverse_result:
+0x71e0 030665 copy contw ,rega 
+0x71e1 030666 call store_aes_result 
+0x71e2 030668 arg 16 ,loopcnt 
+0x71e3 030669 branch inverse_data 
+:      030671 store_inverse_k:
+0x71e4 030672 arg mem_aes_cmac_k ,contw 
+0x71e5 030673 call memcpy16 
+:      030674 inverse_k:
+0x71e6 030675 arg 16 ,loopcnt 
+0x71e7 030676 arg mem_aes_cmac_k ,rega 
+0x71e8 030677 branch inverse_data 
+:      030679 inverse_memdat:
+0x71e9 030680 fetch 1 ,mem_aes_cmac_data_length 
+0x71ea 030681 copy pdata ,loopcnt 
+0x71eb 030682 arg mem_dat ,rega 
+0x71ec 030683 branch inverse_data 
+:      030685 bn_lshift_0_inverse:
+0x71ed 030686 ifetch 1 ,rega 
+0x71ee 030687 lshift pdata ,pdata 
+0x71ef 030688 isolate1 0 ,regc 
+0x71f0 030689 setflag true ,0 ,pdata 
+0x71f1 030690 isolate1 8 ,pdata 
+0x71f2 030691 setflag true ,0 ,regc 
+0x71f3 030692 istore 1 ,rega 
+0x71f4 030693 increase -1 ,rega 
+0x71f5 030694 loop bn_lshift_0_inverse 
+0x71f6 030695 rtn 
+:      030697 function_aes_cmac_k1_inverse:
+0x71f7 030698 arg mem_aes_cmac_k1 ,rega 
+:      030699 function_aes_cmac_inverse_common:
+0x71f8 030700 increase 15 ,rega 
+0x71f9 030701 force 16 ,loopcnt 
+0x71fa 030702 force 0 ,regc 
+0x71fb 030703 branch bn_lshift_0_inverse 
+:      030705 function_aes_cmac_k2_inverse:
+0x71fc 030706 arg mem_aes_cmac_k2 ,rega 
+0x71fd 030707 branch function_aes_cmac_inverse_common 
+:      030710 function_aes_cmac_generate_subkey:
+0x71fe 030711 arg mem_aes_cmac_k ,contr 
+0x71ff 030712 call load_key 
+0x7200 030715 force regidx_xor ,regext_index 
+0x7201 030716 call aes_clear 
+0x7202 030717 call aes_clear_data 
+0x7203 030718 call do_aes_ocb 
+0x7204 030723 arg mem_aes_cmac_k1 ,contw 
+0x7205 030724 call store_aes_result 
+:      030725 function_aes_cmac_k1:
+0x7206 030726 bpatchx patch21_5 ,mem_patch21 
+0x7207 030727 fetch 1 ,mem_aes_cmac_k1 
+0x7208 030728 isolate1 7 ,pdata 
+0x7209 030729 nbranch function_aes_cmac_k1_0 ,true 
+0x720a 030730 call function_aes_cmac_k1_inverse 
+0x720b 030733 arg mem_aes_cmac_k1 ,regc 
+0x720c 030735 arg mem_aes_cmac_k1 ,contw 
+0x720d 030738 call function_aes_cmac_xor_rb 
+0x720e 030739 branch function_aes_cmac_k2 
+:      030740 function_aes_cmac_k1_0:
+0x720f 030741 call function_aes_cmac_k1_inverse 
+:      030742 function_aes_cmac_k2:
+0x7210 030744 arg mem_aes_cmac_k1 ,contr 
+0x7211 030745 arg mem_aes_cmac_k2 ,contw 
+0x7212 030746 call memcpy16 
+0x7213 030747 fetch 1 ,mem_aes_cmac_k2 
+0x7214 030748 isolate1 7 ,pdata 
+0x7215 030749 nbranch function_aes_cmac_k2_inverse ,true 
+0x7216 030750 call function_aes_cmac_k2_inverse 
+0x7217 030752 arg mem_aes_cmac_k2 ,regc 
+0x7218 030754 arg mem_aes_cmac_k2 ,contw 
+:      030760 function_aes_cmac_xor_rb:
+0x7219 030761 arg 3 ,loopcnt 
+:      030762 function_aes_cmac_xor_rb_loop:
+0x721a 030763 arg 0 ,temp 
+0x721b 030764 call function_aes_cmac_xor_loop_common 
+0x721c 030765 increase 4 ,regc 
+0x721d 030766 loop function_aes_cmac_xor_rb_loop 
+0x721e 030767 arg 0x8700 ,temp 
+0x721f 030768 lshift16 temp ,temp 
+:      030769 function_aes_cmac_xor_loop_common:
+0x7220 030770 ifetch 4 ,regc 
+0x7221 030771 ixor temp ,pdata 
+0x7222 030772 istore 4 ,contw 
+0x7223 030773 rtn 
+:      030779 function_aes_cmac_padding:
+0x7224 030780 bpatchx patch21_6 ,mem_patch21 
+0x7225 030781 arg 16 ,loopcnt 
+0x7226 030782 arg 0 ,pdata 
+:      030783 function_aes_cmac_padding_loop:
+0x7227 030784 isub rega ,null 
+0x7228 030785 branch function_aes_cmac_padding_beq_length ,zero 
+0x7229 030786 branch function_aes_cmac_padding_big_length ,positive 
+0x722a 030787 ifetcht 1 ,contr 
+0x722b 030788 istoret 1 ,contw 
+:      030789 function_aes_cmac_padding_loop2:
+0x722c 030790 increase 1 ,pdata 
+0x722d 030791 loop function_aes_cmac_padding_loop 
+0x722e 030792 rtn 
+:      030793 function_aes_cmac_padding_beq_length:
+0x722f 030794 arg 0x80 ,temp 
+:      030795 function_aes_cmac_padding_common:
+0x7230 030796 istoret 1 ,contw 
+0x7231 030797 branch function_aes_cmac_padding_loop2 
+:      030799 function_aes_cmac_padding_big_length:
+0x7232 030800 arg 0 ,temp 
+0x7233 030801 branch function_aes_cmac_padding_common 
+:      030806 concatenate_temp24:
+0x7234 030807 lshift8 temp ,temp 
+:      030808 concatenate_temp16:
+0x7235 030809 lshift16 temp ,temp 
+0x7236 030810 ior temp ,temp 
+0x7237 030811 rtn 
+:      030816 generate_stk:
+0x7238 030817 bpatchx patch21_7 ,mem_patch21 
+0x7239 030818 call function_s1 
+0x723a 030819 arg mem_le_ltk ,contw 
+0x723b 030820 branch store_aes_result 
+:      030823 authenticate_rconfirm:
+0x723c 030824 arg mem_le_srand ,contw 
+0x723d 030825 branch authenticate_mconfirm ,master 
+0x723e 030826 arg mem_le_mrand ,contw 
+:      030827 authenticate_mconfirm:
+0x723f 030828 copy contr ,rega 
+0x7240 030829 call memcpy16 
+0x7241 030830 call function_c1 
+0x7242 030831 arg mem_le_rconfirm ,contr 
+0x7243 030832 branch compare_res 
+:      030834 generate_confirm:
+0x7244 030835 arg mem_le_mrand ,rega 
+0x7245 030836 branch generate_mrand ,master 
+0x7246 030837 arg mem_le_srand ,rega 
+:      030838 generate_mrand:
+0x7247 030839 copy rega ,contw 
+0x7248 030840 call generate_random 
+0x7249 030841 branch function_c1 
+:      030843 generate_sk:
+0x724a 030844 arg mem_le_skdm ,contr 
+0x724b 030845 call load_data128 
+0x724c 030846 arg mem_le_ltk ,contr 
+0x724d 030847 call load_regext 
+0x724e 030848 force 0x38 ,aes_ctrl 
+0x724f 030849 force 0x0 ,aes_ctrl 
+0x7250 030850 call wait_aes 
+0x7251 030851 arg mem_le_sk ,contw 
+0x7252 030852 branch store_aes_result 
+:      030856 ccm_b0:
+0x7253 030857 force regidx_xor ,regext_index 
+0x7254 030858 force 0x49 ,pdata 
+0x7255 030859 branch iv_common 
+:      030862 first_block_counter:
+0x7256 030863 force 0x49 ,pdata 
+0x7257 030864 branch first_block 
+:      030865 first_block_data:
+0x7258 030866 force 1 ,pdata 
+:      030867 first_block:
+0x7259 030868 force regidx_data ,regext_index 
+:      030869 iv_common:
+0x725a 030870 lshift8 temp ,regext 
+0x725b 030871 ior regext ,regext 
+0x725c 030872 increase 1 ,regext_index 
+0x725d 030873 rshift8 temp ,regext 
+0x725e 030874 rshift16 regext ,regext 
+0x725f 030875 fetch 2 ,mem_ccm_iv 
+0x7260 030876 lshift16 pdata ,pdata 
+0x7261 030877 ior regext ,regext 
+0x7262 030878 increase 1 ,regext_index 
+0x7263 030879 ifetchr regext ,4 ,contr 
+0x7264 030880 increase 1 ,regext_index 
+0x7265 030881 ifetch 2 ,contr 
+0x7266 030882 byteswap rega ,regext 
+0x7267 030883 lshift16 regext ,regext 
+0x7268 030884 ior regext ,regext 
+0x7269 030885 increase 1 ,regext_index 
+0x726a 030886 rtn 
+:      030890 generate_mic:
+0x726b 030891 add regc ,1 ,contr 
+0x726c 030892 ifetch 1 ,contr 
+0x726d 030893 iforce rega 
+0x726e 030894 call first_block_counter 
+0x726f 030895 call do_aes_ocb 
+0x7270 030897 force regidx_data ,regext_index 
+0x7271 030898 ifetch 1 ,regc 
+0x7272 030899 and_into 0x3 ,pdata 
+0x7273 030900 lshift16 pdata ,regext 
+0x7274 030901 set1 8 ,regext 
+0x7275 030902 call clear_hidata 
+0x7276 030903 call do_aes_cbc 
+0x7277 030905 copy rega ,loopcnt 
+0x7278 030906 add regc ,2 ,contr 
+0x7279 030907 call padding_data 
+:      030908 generate_mic_loop:
+0x727a 030909 call aes_load_data 
+0x727b 030910 call do_aes_cbc 
+0x727c 030911 deposit loopcnt 
+0x727d 030912 branch generate_mic_end ,blank 
+0x727e 030913 branch generate_mic_loop 
+:      030914 generate_mic_end:
+0x727f 030915 force regidx_result ,regext_index 
+0x7280 030916 deposit regext 
+0x7281 030917 store 4 ,mem_le_mic 
+0x7282 030918 rtn 
+:      030920 aes_crypt_data:
+0x7283 030921 increase 1 ,rega 
+0x7284 030922 call first_block_data 
+0x7285 030923 copy regc ,contr 
+0x7286 030924 call aes_load_xor 
+0x7287 030925 call do_aes_ctr 
+0x7288 030926 call store_enc_data 
+0x7289 030927 increase 16 ,regc 
+0x728a 030928 increase -16 ,regb 
+0x728b 030929 branch aes_crypt_data ,positive 
+0x728c 030930 rtn 
+:      030935 le_encrypt_new_start:
+0x728d 030936 call ccm_init_common 
+0x728e 030937 bpatchx patch22_0 ,mem_patch22 
+0x728f 030938 jam 0 ,core_ccm_aad0 
+0x7290 030939 jam 1 ,core_ccm_aad1 
+0x7291 030940 fetch 1 ,mem_le_txheader 
+0x7292 030941 and_into 0x3 ,pdata 
+0x7293 030942 store 1 ,core_ccm_aad2 
+0x7294 030943 fetch 2 ,mem_contr 
+0x7295 030944 store 2 ,core_ccm_input_playload_addr 
+0x7296 030945 setarg mem_le_txpayload 
+0x7297 030946 store 2 ,core_ccm_output_playload_addr 
+0x7298 030948 fetchr rega ,1 ,mem_le_txlen 
+0x7299 030949 fetcht 5 ,mem_ccm_pcnt_tx 
+0x729a 030950 call ccm_b0 
+0x729b 030951 jam 2 ,core_ccm_ctrl 
+0x729c 030952 jam 3 ,core_ccm_ctrl 
+0x729d 030954 fetch 1 ,mem_le_txlen 
+0x729e 030955 store 2 ,core_ccm_inptr 
+0x729f 030956 increase 4 ,pdata 
+0x72a0 030957 store 1 ,mem_le_txlen 
+0x72a1 030958 fetch 5 ,mem_ccm_pcnt_tx 
+0x72a2 030959 increase 1 ,pdata 
+0x72a3 030960 set0 le_ccm_directionbit ,pdata 
+0x72a4 030961 store 5 ,mem_ccm_pcnt_tx 
+0x72a5 030962 rtn 
+:      030965 ccm_wait_enc:
+0x72a6 030966 fetch 2 ,core_ccm_outptr 
+0x72a7 030967 isub temp ,null 
+0x72a8 030968 rtn zero 
+0x72a9 030969 nrtn blank 
+0x72aa 030971 branch ccm_wait_enc 
+:      030973 ccm_check_enc_done:
+0x72ab 030974 fetch 1 ,core_misc_status 
+0x72ac 030975 bbit0 6 ,assert 
+:      030976 ccm_enc_done:
+0x72ad 030977 setarg mem_le_txpayload 
+0x72ae 030978 iadd temp ,contw 
+0x72af 030979 arg regidx_result ,regext_index 
+0x72b0 030980 istorer regext ,4 ,contw 
+0x72b1 030981 branch ccm_ctrl_clr 
+:      030983 ccm_init_common:
+0x72b2 030984 bpatchx patch22_1 ,mem_patch22 
+0x72b3 030985 force regidx_result ,regext_index 
+0x72b4 030986 call aes_clear 
+0x72b5 030987 call aes_clear_data 
+0x72b6 030988 setarg 0 
+0x72b7 030989 store 2 ,core_ccm_inptr 
+0x72b8 030990 rtn 
+:      030992 wait_ccm_done:
+0x72b9 030993 fetch 1 ,core_misc_status 
+0x72ba 030994 bbit0 6 ,wait_ccm_done 
+:      030995 ccm_ctrl_clr:
+0x72bb 030996 jam 0 ,core_ccm_ctrl 
+0x72bc 030997 rtn 
+:      031000 wait_aes:
+0x72bd 031001 nbranch wait_aes ,aes_ready 
+0x72be 031002 rtn 
+:      031004 do_aes_ocb:
+0x72bf 031005 force 0x30 ,aes_ctrl 
+0x72c0 031006 force 0x0 ,aes_ctrl 
+0x72c1 031007 branch wait_aes 
+:      031009 do_aes_cbc:
+0x72c2 031010 force 0x32 ,aes_ctrl 
+0x72c3 031011 force 0x2 ,aes_ctrl 
+0x72c4 031012 branch wait_aes 
+:      031014 do_aes_ctr:
+0x72c5 031015 force 0x34 ,aes_ctrl 
+0x72c6 031016 force 0x4 ,aes_ctrl 
+0x72c7 031017 branch wait_aes 
+:      031020 aes_init:
+0x72c8 031021 force 1 ,aes_ctrl 
+0x72c9 031022 force 0 ,aes_ctrl 
+0x72ca 031023 rtn 
+:      031026 wait_keyinit_done:
+0x72cb 031027 fetch 1 ,core_aes_decode_key_init 
+0x72cc 031028 bbit0 2 ,wait_keyinit_done 
+0x72cd 031029 rtn 
+:      031032 dec_key_initial:
+0x72ce 031033 store 2 ,core_keybuf_saddr 
+0x72cf 031034 force 0xc0 ,aes_ctrl 
+0x72d0 031035 force 0x80 ,aes_ctrl 
+0x72d1 031036 branch wait_keyinit_done 
+:      031038 do_aes_ecb_dec:
+0x72d2 031039 force regidx_data ,regext_index 
+0x72d3 031040 copy regb ,contr 
+0x72d4 031041 force 4 ,loopcnt 
+0x72d5 031042 call aes_ecb_dec_loop 
+0x72d6 031044 force 0x180 ,aes_ctrl 
+0x72d7 031045 force 0x80 ,aes_ctrl 
+0x72d8 031046 call wait_aes 
+:      031047 ecb_dec_generate:
+0x72d9 031048 force regidx_result ,regext_index 
+0x72da 031049 copy regc ,contw 
+0x72db 031050 force 4 ,loopcnt 
+:      031051 ecb_dec_generate_loop:
+0x72dc 031052 copy regext ,pdata 
+0x72dd 031053 istore 4 ,contw 
+0x72de 031054 increase 1 ,regext_index 
+0x72df 031055 loop ecb_dec_generate_loop 
+0x72e0 031056 rtn 
+:      031058 aes_ecb_dec_loop:
+0x72e1 031059 ifetch 2 ,contr 
+0x72e2 031060 ifetcht 2 ,contr 
+0x72e3 031061 lshift16 temp ,temp 
+0x72e4 031062 ior temp ,regext 
+0x72e5 031063 increase 1 ,regext_index 
+0x72e6 031064 loop aes_ecb_dec_loop 
+0x72e7 031065 rtn 
+:      031068 do_aes_cbc_dec:
+0x72e8 031069 force regidx_xor ,regext_index 
+0x72e9 031070 copy rega ,contr 
+0x72ea 031071 force 4 ,loopcnt 
+0x72eb 031072 call aes_ecb_dec_loop 
+0x72ec 031074 force regidx_data ,regext_index 
+0x72ed 031075 copy regb ,contr 
+0x72ee 031076 force 4 ,loopcnt 
+0x72ef 031077 call aes_ecb_dec_loop 
+0x72f0 031078 force 0x182 ,aes_ctrl 
+0x72f1 031079 force 0x82 ,aes_ctrl 
+0x72f2 031080 call wait_aes 
+0x72f3 031081 branch ecb_dec_generate 
+:      031084 function_s1:
+0x72f4 031085 force regidx_data ,regext_index 
+0x72f5 031086 fetch 4 ,mem_le_mrand 
+0x72f6 031087 iforce regext 
+0x72f7 031088 increase 1 ,regext_index 
+0x72f8 031089 ifetch 4 ,contr 
+0x72f9 031090 iforce regext 
+0x72fa 031091 increase 1 ,regext_index 
+0x72fb 031092 fetch 4 ,mem_le_srand 
+0x72fc 031093 iforce regext 
+0x72fd 031094 increase 1 ,regext_index 
+0x72fe 031095 ifetch 4 ,contr 
+0x72ff 031096 iforce regext 
+0x7300 031097 increase 1 ,regext_index 
+0x7301 031098 call aes_clear 
+0x7302 031099 increase -4 ,regext_index 
+0x7303 031100 fetch 4 ,mem_le_tk 
+0x7304 031101 copy pdata ,regext 
+0x7305 031102 increase 4 ,regext_index 
+0x7306 031103 force 0x38 ,aes_ctrl 
+0x7307 031104 force 0x8 ,aes_ctrl 
+0x7308 031105 branch wait_aes 
+:      031108 function_c1:
+0x7309 031109 bpatchx patch22_2 ,mem_patch22 
+0x730a 031110 fetch 6 ,mem_le_lap 
+0x730b 031111 fetcht 6 ,mem_le_plap 
+0x730c 031112 branch function_c1_master ,master 
+0x730d 031113 fetch 6 ,mem_le_plap 
+0x730e 031114 fetcht 6 ,mem_le_lap 
+:      031115 function_c1_master:
+0x730f 031116 force regidx_xor ,regext_index 
+0x7310 031117 copy temp ,regext 
+0x7311 031118 increase 1 ,regext_index 
+0x7312 031119 rshift32 temp ,regext 
+0x7313 031120 lshift16 pdata ,pdata 
+0x7314 031121 ior regext ,regext 
+0x7315 031122 increase 1 ,regext_index 
+0x7316 031123 rshift32 pdata ,regext 
+0x7317 031124 increase 1 ,regext_index 
+0x7318 031125 force 0 ,regext 
+0x7319 031126 force 0 ,pdata 
+0x731a 031127 fetch 1 ,mem_le_conn_peer_addr_type 
+0x731b 031128 fetcht 1 ,mem_le_adv_own_addr_type 
+0x731c 031129 nbranch function_c1_irat ,master 
+0x731d 031131 fetch 1 ,mem_le_conn_own_addr_type 
+0x731e 031132 fetcht 1 ,mem_le_conn_peer_addr_type 
+:      031133 function_c1_irat:
+0x731f 031134 store 1 ,mem_le_iat 
+0x7320 031135 storet 1 ,mem_le_rat 
+0x7321 031136 force regidx_data ,regext_index 
+0x7322 031137 arg mem_le_iat ,regb 
+0x7323 031138 force 4 ,loopcnt 
+:      031139 function_c1_loop1:
+0x7324 031140 ifetch 4 ,rega 
+0x7325 031141 ifetcht 4 ,regb 
+0x7326 031142 ixor temp ,regext 
+0x7327 031143 increase 1 ,regext_index 
+0x7328 031144 increase 4 ,rega 
+0x7329 031145 increase 4 ,regb 
+0x732a 031146 loop function_c1_loop1 
+0x732b 031147 call aes_clear 
+0x732c 031148 increase -4 ,regext_index 
+0x732d 031149 fetch 4 ,mem_le_tk 
+0x732e 031150 copy pdata ,regext 
+0x732f 031151 increase 4 ,regext_index 
+0x7330 031152 force 0x38 ,aes_ctrl 
+0x7331 031153 force 0xc ,aes_ctrl 
+0x7332 031154 call wait_aes 
+0x7333 031156 call aes_clear_data 
+0x7334 031157 force 0x3a ,aes_ctrl 
+0x7335 031158 force 0x8 ,aes_ctrl 
+0x7336 031159 branch wait_aes 
+:      031161 padding_data:
+0x7337 031162 compare 0 ,loopcnt ,3 
+0x7338 031163 rtn true 
+0x7339 031164 deposit contr 
+0x733a 031165 iadd loopcnt ,contw 
+0x733b 031166 force 0 ,pdata 
+:      031167 padding_loop:
+0x733c 031168 istore 1 ,contw 
+0x733d 031169 increase 1 ,loopcnt 
+0x733e 031170 compare 0 ,loopcnt ,3 
+0x733f 031171 rtn true 
+0x7340 031172 branch padding_loop 
+:      031174 aes_load_data:
+0x7341 031175 force regidx_data ,regext_index 
+:      031176 load_data_loop:
+0x7342 031177 deposit loopcnt 
+0x7343 031178 branch load_data_padding ,blank 
+0x7344 031179 ifetch 4 ,contr 
+0x7345 031180 increase -4 ,loopcnt 
+:      031181 load_data_padding:
+0x7346 031182 iforce regext 
+0x7347 031183 increase 1 ,regext_index 
+0x7348 031184 compare regidx_key ,regext_index ,0xf 
+0x7349 031185 rtn true 
+0x734a 031186 branch load_data_loop 
+:      031188 aes_load_xor:
+0x734b 031189 force regidx_xor ,regext_index 
+0x734c 031190 branch load_regext 
+:      031191 load_key:
+0x734d 031192 force regidx_key ,regext_index 
+0x734e 031193 branch load_regext 
+:      031194 load_data128:
+0x734f 031195 force regidx_data ,regext_index 
+:      031196 load_regext:
+0x7350 031197 force 4 ,loopcnt 
+:      031198 load_regext_loop:
+0x7351 031199 ifetch 4 ,contr 
+0x7352 031200 iforce regext 
+0x7353 031201 increase 1 ,regext_index 
+0x7354 031202 loop load_regext_loop 
+0x7355 031203 rtn 
+:      031205 load_sk:
+0x7356 031206 arg mem_le_sk ,contr 
+0x7357 031207 branch load_key 
+:      031209 clear_hidata:
+0x7358 031210 force 4 ,loopcnt 
+0x7359 031211 branch clear_data_rest 
+:      031213 regext_clear:
+0x735a 031214 force 0 ,regext_index 
+0x735b 031215 force 16 ,loopcnt 
+0x735c 031216 branch clear_loop 
+:      031218 aes_clear_data:
+0x735d 031219 force regidx_data ,regext_index 
+:      031220 aes_clear:
+0x735e 031221 force 4 ,loopcnt 
+:      031222 clear_loop:
+0x735f 031223 force 0 ,regext 
+:      031224 clear_data_rest:
+0x7360 031225 increase 1 ,regext_index 
+0x7361 031226 loop clear_loop 
+0x7362 031227 rtn 
+:      031229 store_aes_result:
+0x7363 031230 force regidx_result ,regext_index 
+0x7364 031231 force 4 ,loopcnt 
+:      031232 send_aes_result_loop:
+0x7365 031233 deposit regext 
+0x7366 031234 istore 4 ,contw 
+0x7367 031235 increase 1 ,regext_index 
+0x7368 031236 loop send_aes_result_loop 
+0x7369 031237 rtn 
+:      031239 store_enc_data:
+0x736a 031240 force regidx_result ,regext_index 
+0x736b 031241 copy regc ,contw 
+0x736c 031242 add regb ,1 ,loopcnt 
+0x736d 031243 sub loopcnt ,15 ,null 
+0x736e 031244 branch store_enc_loop ,positive 
+0x736f 031245 force 16 ,loopcnt 
+:      031246 store_enc_loop:
+0x7370 031247 deposit regext 
+0x7371 031248 sub loopcnt ,3 ,null 
+0x7372 031249 branch store_enc_byte ,positive 
+0x7373 031250 istore 4 ,contw 
+0x7374 031251 increase -4 ,loopcnt 
+0x7375 031252 rtn zero 
+0x7376 031253 increase 1 ,regext_index 
+0x7377 031254 branch store_enc_loop 
+:      031255 store_enc_byte:
+0x7378 031256 istore 1 ,contw 
+0x7379 031257 rshift8 pdata ,pdata 
+0x737a 031258 loop store_enc_byte 
+0x737b 031259 rtn 
+:      031262 compare_res:
+0x737c 031263 force regidx_result ,regext_index 
+0x737d 031264 force 4 ,loopcnt 
+:      031265 compare_res_loop:
+0x737e 031266 ifetch 4 ,contr 
+0x737f 031267 isub regext ,null 
+0x7380 031268 nrtn zero 
+0x7381 031269 increase 1 ,regext_index 
+0x7382 031270 loop compare_res_loop 
+0x7383 031271 branch enable_zero 
+:      031273 enable_authrom:
+0x7384 031274 fetch 1 ,core_clkoff 
+0x7385 031275 set0 clock_off_auth_rom ,pdata 
+0x7386 031276 store 1 ,core_clkoff 
+0x7387 031277 rtn 
+:      031279 disable_authrom:
+0x7388 031280 fetch 1 ,core_clkoff 
+0x7389 031281 set1 clock_off_auth_rom ,pdata 
+0x738a 031282 store 1 ,core_clkoff 
+0x738b 031283 rtn 
+:      031291 init_memp:
+0x738c 031292 arg mem_p ,contw 
+0x738d 031293 setsect 0 ,0x3ffff 
+0x738e 031294 setsect 1 ,0x3ffff 
+0x738f 031295 setsect 2 ,0x3ffff 
+0x7390 031296 setsect 3 ,0x3fbff 
+0x7391 031297 istore 9 ,contw 
+0x7392 031298 setsect 0 ,0x3ffff 
+0x7393 031299 setsect 1 ,0x3ffff 
+0x7394 031300 setsect 2 ,0x3ffff 
+0x7395 031301 setsect 3 ,0x3ffff 
+0x7396 031302 istore 9 ,contw 
+0x7397 031303 setsect 0 ,0x3ffff 
+0x7398 031304 setsect 1 ,0x3ffff 
+0x7399 031305 setsect 2 ,0x3cfff 
+0x739a 031306 setsect 3 ,0x3ffff 
+0x739b 031307 istore 9 ,contw 
+0x739c 031308 setsect 0 ,0x3ffff 
+0x739d 031309 setsect 1 ,0x3ffff 
+0x739e 031310 setsect 2 ,0x3ffef 
+0x739f 031311 setsect 3 ,0x3ffff 
+0x73a0 031312 istore 9 ,contw 
+0x73a1 031313 setsect 0 ,0x3ffff 
+0x73a2 031314 setsect 1 ,0x3ffff 
+0x73a3 031315 setsect 2 ,0x3ffff 
+0x73a4 031316 setsect 3 ,0x3ffff 
+0x73a5 031317 istore 9 ,contw 
+0x73a6 031318 setsect 0 ,0x3ffff 
+0x73a7 031319 setsect 1 ,0x26c7f 
+0x73a8 031320 setsect 2 ,0x146b 
+0x73a9 031321 setsect 3 ,0x37bb3 
+0x73aa 031322 istore 9 ,contw 
+0x73ab 031323 setsect 0 ,0x1feb8 
+0x73ac 031324 setsect 1 ,0x10c12 
+0x73ad 031325 setsect 2 ,0x2b722 
+0x73ae 031326 setsect 3 ,0x29fa6 
+0x73af 031327 istore 9 ,contw 
+0x73b0 031328 setsect 0 ,0xe70f 
+0x73b1 031329 setsect 1 ,0x16720 
+0x73b2 031330 setsect 2 ,0x519e 
+0x73b3 031331 setsect 3 ,0x19084 
+0x73b4 031332 istore 9 ,contw 
+0x73b5 031333 setsect 0 ,0x31012 
+0x73b6 031334 setsect 1 ,0x360bf 
+0x73b7 031335 setsect 2 ,0x3f0af 
+0x73b8 031336 setsect 3 ,0x3d3 
+0x73b9 031337 istore 9 ,contw 
+0x73ba 031338 setsect 0 ,0x3a188 
+0x73bb 031339 setsect 1 ,0x3ad0 
+0x73bc 031340 setsect 2 ,0x3cbf2 
+0x73bd 031341 setsect 3 ,0x243d9 
+0x73be 031342 istore 9 ,contw 
+0x73bf 031343 setsect 0 ,0x2b030 
+0x73c0 031344 setsect 1 ,0x36a03 
+0x73c1 031345 setsect 2 ,0x11188 
+0x73c2 031346 setsect 3 ,0x1e520 
+0x73c3 031347 istore 9 ,contw 
+0x73c4 031348 setsect 0 ,0x3a11e 
+0x73c5 031349 setsect 1 ,0xfe5d 
+0x73c6 031350 setsect 2 ,0xdd57 
+0x73c7 031351 setsect 3 ,0x1ac93 
+0x73c8 031352 istore 9 ,contw 
+0x73c9 031353 setsect 0 ,0x11ed 
+0x73ca 031354 setsect 1 ,0x218c4 
+0x73cb 031355 setsect 2 ,0x8da7 
+0x73cc 031356 setsect 3 ,0x257ff 
+0x73cd 031357 istore 9 ,contw 
+0x73ce 031358 setsect 0 ,0x3192b 
+0x73cf 031359 setsect 1 ,0x34641 
+0x73d0 031360 setsect 2 ,0x1be0c 
+0x73d1 031361 setsect 3 ,0x366ad 
+0x73d2 031362 istore 9 ,contw 
+0x73d3 031363 setsect 0 ,0x1f83 
+0x73d4 031364 setsect 1 ,0x15a23 
+0x73d5 031365 setsect 2 ,0x3f9b0 
+0x73d6 031366 setsect 3 ,0x3949 
+0x73d7 031367 istore 9 ,contw 
+0x73d8 031368 setsect 0 ,0x13a51 
+0x73d9 031369 setsect 1 ,0x153fd 
+0x73da 031370 setsect 2 ,0x3372a 
+0x73db 031371 setsect 3 ,0xf1bb 
+0x73dc 031372 istore 9 ,contw 
+0x73dd 031373 setsect 0 ,0x3ae85 
+0x73de 031374 setsect 1 ,0x1eed9 
+0x73df 031375 setsect 2 ,0x9e66 
+0x73e0 031376 setsect 3 ,0x1a8 
+0x73e1 031377 istore 8 ,contw 
+0x73e2 031378 rtn 
+:      031386 init_memp_256:
+0x73e3 031387 arg mem_p_256 ,contw 
+0x73e4 031388 setsect 0 ,0x3ffff 
+0x73e5 031389 setsect 1 ,0x3ffff 
+0x73e6 031390 setsect 2 ,0x3ffff 
+0x73e7 031391 setsect 3 ,0x3ffff 
+0x73e8 031392 istore 9 ,contw 
+0x73e9 031393 setsect 0 ,0x3ffff 
+0x73ea 031394 setsect 1 ,0x3f 
+0x73eb 031395 setsect 2 ,0x0 
+0x73ec 031396 setsect 3 ,0x0 
+0x73ed 031397 istore 9 ,contw 
+0x73ee 031398 setsect 0 ,0x0 
+0x73ef 031399 setsect 1 ,0x0 
+0x73f0 031400 setsect 2 ,0x1000 
+0x73f1 031401 setsect 3 ,0x0 
+0x73f2 031402 istore 9 ,contw 
+0x73f3 031403 setsect 0 ,0x3ff00 
+0x73f4 031404 setsect 1 ,0x3ffff 
+0x73f5 031405 setsect 2 ,0x3ffcf 
+0x73f6 031406 setsect 3 ,0x3ffff 
+0x73f7 031407 istore 9 ,contw 
+0x73f8 031408 setsect 0 ,0x3ffff 
+0x73f9 031409 setsect 1 ,0x3ffff 
+0x73fa 031410 setsect 2 ,0x3ffff 
+0x73fb 031411 setsect 3 ,0x3ff 
+0x73fc 031412 istore 9 ,contw 
+0x73fd 031413 setsect 0 ,0x0 
+0x73fe 031414 setsect 1 ,0x0 
+0x73ff 031415 setsect 2 ,0x0 
+0x7400 031416 setsect 3 ,0x0 
+0x7401 031417 istore 9 ,contw 
+0x7402 031418 setsect 0 ,0x10000 
+0x7403 031419 setsect 1 ,0x0 
+0x7404 031420 setsect 2 ,0x3f000 
+0x7405 031421 setsect 3 ,0x3ffff 
+0x7406 031422 istore 9 ,contw 
+0x7407 031423 setsect 0 ,0x296ff 
+0x7408 031424 setsect 1 ,0x22630 
+0x7409 031425 setsect 2 ,0x3945d 
+0x740a 031426 setsect 3 ,0x3d284 
+0x740b 031427 istore 9 ,contw 
+0x740c 031428 setsect 0 ,0x333a0 
+0x740d 031429 setsect 1 ,0x4b7a 
+0x740e 031430 setsect 2 ,0x37d8 
+0x740f 031431 setsect 3 ,0x3c9dc 
+0x7410 031432 istore 9 ,contw 
+0x7411 031433 setsect 0 ,0x3a440 
+0x7412 031434 setsect 1 ,0x1b958 
+0x7413 031435 setsect 2 ,0x38bce 
+0x7414 031436 setsect 3 ,0x1091f 
+0x7415 031437 istore 9 ,contw 
+0x7416 031438 setsect 0 ,0x2e12c 
+0x7417 031439 setsect 1 ,0x1f47c 
+0x7418 031440 setsect 2 ,0x356b1 
+0x7419 031441 setsect 3 ,0x2fd47 
+0x741a 031442 istore 9 ,contw 
+0x741b 031443 setsect 0 ,0x6837 
+0x741c 031444 setsect 1 ,0x2ed90 
+0x741d 031445 setsect 2 ,0x1ecec 
+0x741e 031446 setsect 3 ,0x1acc5 
+0x741f 031447 istore 9 ,contw 
+0x7420 031448 setsect 0 ,0x23357 
+0x7421 031449 setsect 1 ,0x18af3 
+0x7422 031450 setsect 2 ,0xf9e1 
+0x7423 031451 setsect 3 ,0x129f0 
+0x7424 031452 istore 9 ,contw 
+0x7425 031453 setsect 0 ,0x2e7eb 
+0x7426 031454 setsect 1 ,0x3e6e3 
+0x7427 031455 setsect 2 ,0x3e1a7 
+0x7428 031456 setsect 3 ,0x10b8b 
+0x7429 031457 istore 9 ,contw 
+0x742a 031458 setsect 0 ,0x24fe3 
+0x742b 031459 setsect 1 ,0x20ef 
+0x742c 031460 setsect 2 ,0x1b5a6 
+0x742d 031461 setsect 3 ,0xdc2f 
+0x742e 031462 istore 9 ,contw 
+0x742f 031463 setsect 0 ,0x13860 
+0x7430 031464 setsect 1 ,0x2bd69 
+0x7431 031465 setsect 2 ,0x391a 
+0x7432 031466 setsect 3 ,0x1b222 
+0x7433 031467 istore 9 ,contw 
+0x7434 031468 rtn 
+:      031474 publickey_init:
+0x7435 031477 branch sp_initialize_256 
+:      031479 sp_calc_sequence_256_check:
+0x7436 031480 bpatchx patch22_3 ,mem_patch22 
+0x7437 031485 fetch 1 ,mem_secure_connections_enable 
+0x7438 031486 rtn blank 
+0x7439 031487 fetch 1 ,mem_sc_local_key_invalid 
+0x743a 031488 rtneq sp_key_valid_256 
+0x743b 031491 fetch 1 ,mem_sc_calc 
+0x743c 031492 beq sp_calc_standby ,sp_initialize_256 
+0x743d 031493 rtn 
+:      031494 stop_publickey_calc_256:
+0x743e 031495 jam sp_calc_standby ,mem_sc_calc 
+0x743f 031496 rtn 
+:      031501 sp_clear_flags:
+0x7440 031502 bpatchx patch22_4 ,mem_patch22 
+0x7441 031503 setarg mem_sp_state_end 
+0x7442 031504 arg mem_sp_state_start ,contw 
+0x7443 031505 isub contw ,loopcnt 
+0x7444 031506 call clear_mem 
+0x7445 031507 setarg mem_sp_state_xmem_end 
+0x7446 031508 arg mem_sp_state_xmem ,contw 
+0x7447 031509 isub contw ,loopcnt 
+0x7448 031510 branch clear_mem 
+:      031514 sp_calc_check_publickey_256:
+0x7449 031515 call sp_calc_b256 
+0x744a 031516 arg mem_le_pubkey_remote_y_256 ,rega 
+0x744b 031517 arg mem_t7_256 ,contw 
+0x744c 031518 call bn_sqrmod_256 
+0x744d 031519 arg mem_le_pubkey_remote_x_256 ,rega 
+0x744e 031520 arg mem_t2_256 ,contw 
+0x744f 031521 call bn_sqrmod_256 
+0x7450 031522 arg mem_t2_256 ,rega 
+0x7451 031523 arg mem_le_pubkey_remote_x_256 ,regb 
+0x7452 031524 arg mem_t2_256 ,contw 
+0x7453 031525 call bn_mulmod_256 
+0x7454 031526 arg mem_a_256 ,rega 
+0x7455 031527 arg mem_le_pubkey_remote_x_256 ,regb 
+0x7456 031528 arg mem_t3_256 ,contw 
+0x7457 031529 call bn_mulmod_256 
+0x7458 031530 arg mem_t3_256 ,rega 
+0x7459 031531 arg mem_t2_256 ,regb 
+0x745a 031532 arg mem_t2_256 ,contw 
+0x745b 031533 call bn_addmod_256 
+0x745c 031534 arg mem_t0_256 ,rega 
+0x745d 031535 arg mem_t2_256 ,regb 
+0x745e 031536 arg mem_t0_256 ,contw 
+0x745f 031537 call bn_addmod_256 
+0x7460 031538 arg 32 ,loopcnt 
+0x7461 031539 arg mem_t7_256 ,rega 
+0x7462 031540 arg mem_t0_256 ,regb 
+0x7463 031541 branch string_compare 
+:      031543 sp_calc_b256:
+0x7464 031544 arg mem_gy_256 ,rega 
+0x7465 031545 arg mem_t0_256 ,contw 
+0x7466 031546 call bn_sqrmod_256 
+0x7467 031547 arg mem_gx_256 ,rega 
+0x7468 031548 arg mem_t2_256 ,contw 
+0x7469 031549 call bn_sqrmod_256 
+0x746a 031550 arg mem_t2_256 ,rega 
+0x746b 031551 arg mem_gx_256 ,regb 
+0x746c 031552 arg mem_t2_256 ,contw 
+0x746d 031553 call bn_mulmod_256 
+0x746e 031554 arg mem_a_256 ,rega 
+0x746f 031555 arg mem_gx_256 ,regb 
+0x7470 031556 arg mem_t3_256 ,contw 
+0x7471 031557 call bn_mulmod_256 
+0x7472 031558 arg mem_t3_256 ,rega 
+0x7473 031559 arg mem_t2_256 ,regb 
+0x7474 031560 arg mem_t2_256 ,contw 
+0x7475 031561 call bn_addmod_256 
+0x7476 031562 arg mem_t0_256 ,rega 
+0x7477 031563 arg mem_t2_256 ,regb 
+0x7478 031564 arg mem_t0_256 ,contw 
+0x7479 031565 branch bn_submod_256 
+:      031570 random_generator:
+0x747a 031571 increase -1 ,queue 
+0x747b 031572 nrtn positive 
+0x747c 031573 random pdata 
+0x747d 031574 istore 2 ,contw 
+0x747e 031575 branch random_generator 
+:      031576 compare4:
+0x747f 031577 increase -1 ,queue 
+0x7480 031578 nbranch compare4_success ,positive 
+0x7481 031579 ifetch 4 ,rega 
+0x7482 031580 copy pdata ,temp 
+0x7483 031581 ifetch 4 ,regb 
+0x7484 031582 iflip temp ,pdata 
+0x7485 031583 nbranch compare4_failed ,zero 
+0x7486 031584 increase 4 ,rega 
+0x7487 031585 increase 4 ,regb 
+0x7488 031586 branch compare4 
+:      031587 compare4_failed:
+0x7489 031588 branch disable_true 
+:      031590 compare4_success:
+0x748a 031591 branch enable_true 
+:      031596 bn_testbit:
+0x748b 031597 and pdata ,7 ,queue 
+0x748c 031598 rshift3 pdata ,pdata 
+0x748d 031599 iadd contr ,contr 
+0x748e 031600 ifetch 1 ,contr 
+0x748f 031601 qisolate0 pdata 
+0x7490 031602 rtn 
+:      031605 bn_eq_zero:
+0x7491 031606 ifetch 8 ,contr 
+0x7492 031607 nrtn blank 
+0x7493 031608 ifetch 8 ,contr 
+0x7494 031609 nrtn blank 
+0x7495 031610 ifetch 8 ,contr 
+0x7496 031611 rtn 
+:      031616 bn_eq_0:
+0x7497 031617 ifetch 4 ,rega 
+0x7498 031618 iforce temp 
+0x7499 031619 ifetch 4 ,regb 
+0x749a 031620 isub temp ,null 
+0x749b 031621 nrtn zero 
+0x749c 031622 increase 4 ,rega 
+0x749d 031623 increase 4 ,regb 
+0x749e 031624 loop bn_eq_0 
+0x749f 031625 rtn 
+:      031627 bn_bigeq:
+0x74a0 031628 force 6 ,loopcnt 
+0x74a1 031629 increase 20 ,rega 
+0x74a2 031630 increase 20 ,regb 
+:      031631 bn_bigeq_0:
+0x74a3 031632 ifetch 4 ,regb 
+0x74a4 031633 iforce temp 
+0x74a5 031634 ifetch 4 ,rega 
+0x74a6 031635 isub temp ,pdata 
+0x74a7 031636 nrtn positive 
+0x74a8 031637 nrtn blank 
+0x74a9 031638 increase -4 ,rega 
+0x74aa 031639 increase -4 ,regb 
+0x74ab 031640 loop bn_bigeq_0 
+0x74ac 031641 rtn 
+:      031642 bn_add:
+0x74ad 031643 force 6 ,loopcnt 
+0x74ae 031644 force 0 ,regc 
+:      031645 bn_add_0:
+0x74af 031646 ifetch 4 ,rega 
+0x74b0 031647 iforce temp 
+0x74b1 031648 ifetch 4 ,regb 
+0x74b2 031649 iadd temp ,pdata 
+0x74b3 031650 iadd regc ,pdata 
+0x74b4 031651 istore 4 ,contw 
+0x74b5 031652 isolate1 32 ,pdata 
+0x74b6 031653 setflag true ,0 ,regc 
+0x74b7 031654 increase 4 ,rega 
+0x74b8 031655 increase 4 ,regb 
+0x74b9 031656 loop bn_add_0 
+0x74ba 031657 rtn 
+:      031659 bn_sub:
+0x74bb 031660 force 6 ,loopcnt 
+0x74bc 031661 force 0 ,regc 
+:      031662 bn_sub_0:
+0x74bd 031663 ifetch 4 ,regb 
+0x74be 031664 iforce temp 
+0x74bf 031665 ifetch 4 ,rega 
+0x74c0 031666 isub temp ,pdata 
+0x74c1 031667 isub regc ,pdata 
+0x74c2 031668 istore 4 ,contw 
+0x74c3 031669 isolate1 32 ,pdata 
+0x74c4 031670 setflag true ,0 ,regc 
+0x74c5 031671 increase 4 ,rega 
+0x74c6 031672 increase 4 ,regb 
+0x74c7 031673 loop bn_sub_0 
+0x74c8 031674 rtn 
+:      031676 bn_rshift6:
+0x74c9 031677 force 6 ,loopcnt 
+0x74ca 031678 increase 20 ,rega 
+:      031679 bn_rshift:
+0x74cb 031680 force 0 ,regc 
+:      031681 bn_rshift_0:
+0x74cc 031682 ifetch 4 ,rega 
+0x74cd 031683 isolate1 0 ,pdata 
+0x74ce 031684 setflag true ,1 ,regc 
+0x74cf 031685 rshift pdata ,pdata 
+0x74d0 031686 isolate1 0 ,regc 
+0x74d1 031687 setflag true ,31 ,pdata 
+0x74d2 031688 istore 4 ,rega 
+0x74d3 031689 increase -4 ,rega 
+0x74d4 031690 rshift regc ,regc 
+0x74d5 031691 loop bn_rshift_0 
+0x74d6 031692 rtn 
+:      031693 bn_lshift:
+0x74d7 031694 force 6 ,loopcnt 
+0x74d8 031695 force 0 ,regc 
+:      031696 bn_lshift_0:
+0x74d9 031697 ifetch 4 ,rega 
+0x74da 031698 isolate1 31 ,pdata 
+0x74db 031699 setflag true ,1 ,regc 
+0x74dc 031700 lshift pdata ,pdata 
+0x74dd 031701 isolate1 0 ,regc 
+0x74de 031702 setflag true ,0 ,pdata 
+0x74df 031703 istore 4 ,rega 
+0x74e0 031704 increase 4 ,rega 
+0x74e1 031705 rshift regc ,regc 
+0x74e2 031706 loop bn_lshift_0 
+0x74e3 031707 rtn 
+:      031710 bn_load:
+0x74e4 031711 force 6 ,loopcnt 
+:      031712 bn_load_0:
+0x74e5 031713 ifetch 4 ,contr 
+0x74e6 031714 iforce regext 
+0x74e7 031715 increase 1 ,regext_index 
+0x74e8 031716 loop bn_load_0 
+0x74e9 031717 rtn 
+:      031721 sp_initialize_256:
+0x74ea 031722 bpatchx patch22_5 ,mem_patch22 
+0x74eb 031723 fetch 1 ,mem_secure_connections_enable 
+0x74ec 031724 nbranch sp_pubkey_calc_256 ,blank 
+:      031726 sc_reset:
+0x74ed 031727 jam sp_calc_standby ,mem_sc_calc 
+0x74ee 031728 jam sp_key_invalid ,mem_sc_local_key_invalid 
+0x74ef 031729 rtn 
+:      031733 sp_wait_pubkey_calc_256_done:
+0x74f0 031734 fetch 1 ,mem_secure_connections_enable 
+0x74f1 031735 rtn blank 
+0x74f2 031736 fetch 1 ,mem_sc_local_key_invalid 
+0x74f3 031737 rtneq sp_key_valid_256 
+0x74f4 031738 call sp_calc_sequence_256 
+0x74f5 031739 branch sp_wait_pubkey_calc_256_done 
+:      031743 sp_debug_private_256:
+0x74f6 031744 arg mem_sc_private_key_256 ,contw 
+0x74f7 031745 setsect 0 ,0x1abd 
+0x74f8 031746 setsect 1 ,0x1b34f 
+0x74f9 031747 setsect 2 ,0x19b8a 
+0x74fa 031748 setsect 3 ,0x26562 
+0x74fb 031749 istore 9 ,contw 
+0x74fc 031750 setsect 0 ,0x340b7 
+0x74fd 031751 setsect 1 ,0x1efa 
+0x74fe 031752 setsect 2 ,0xaff6 
+0x74ff 031753 setsect 3 ,0xfd41 
+0x7500 031754 istore 9 ,contw 
+0x7501 031755 setsect 0 ,0x3d210 
+0x7502 031756 setsect 1 ,0x26cf8 
+0x7503 031757 setsect 2 ,0x3874c 
+0x7504 031758 setsect 3 ,0x3157c 
+0x7505 031759 istore 9 ,contw 
+0x7506 031760 setsect 0 ,0x2d4a3 
+0x7507 031761 setsect 1 ,0x3d27d 
+0x7508 031762 setsect 2 ,0x3 
+0x7509 031763 istore 5 ,contw 
+0x750a 031764 rtn 
+:      031767 sp_pubkey_calc_256:
+0x750b 031768 fetch 1 ,mem_sc_local_key_invalid 
+0x750c 031769 rtnne sp_key_invalid 
+0x750d 031770 fetch 1 ,mem_sc_calc 
+0x750e 031771 rtnne sp_calc_standby 
+0x750f 031772 call init_memp_256 
+0x7510 031773 arg mem_sc_private_key_256 ,contw 
+0x7511 031774 force 15 ,queue 
+0x7512 031775 call random_generator 
+0x7513 031776 random pdata 
+0x7514 031777 rshift pdata ,pdata 
+0x7515 031778 istore 2 ,contw 
+0x7516 031780 fetch 1 ,mem_sp_debug_mode 
+0x7517 031781 ncall sp_debug_private_256 ,blank 
+0x7518 031783 arg mem_k_256 ,contw 
+0x7519 031784 arg mem_sc_private_key_256 ,contr 
+0x751a 031785 call memcpy32 
+0x751b 031787 arg mem_ax_256 ,contw 
+0x751c 031788 arg mem_gx_256 ,contr 
+0x751d 031789 call memcpy64 
+0x751e 031791 arg mem_az_256 ,contw 
+0x751f 031792 call clear_mem_256 
+0x7520 031793 jam 1 ,mem_az_256 
+0x7521 031795 call eckp_calc_init_256 
+0x7522 031796 jam sp_calc_pubkey_256 ,mem_sc_calc 
+0x7523 031797 rtn 
+:      031799 sp_pubkey_generated_256:
+0x7524 031800 arg mem_sc_pubkey_local_x_256 ,contw 
+0x7525 031801 arg mem_bx_256 ,contr 
+0x7526 031802 call memcpy64 
+0x7527 031803 jam sp_key_valid_256 ,mem_sc_local_key_invalid 
+0x7528 031804 jam sp_calc_standby ,mem_sc_calc 
+0x7529 031805 rtn 
+:      031809 sp_dhkey_calc_256:
+0x752a 031810 fetch 1 ,mem_sp_dhkey_invalid 
+0x752b 031811 rtnne sp_key_invalid 
+0x752c 031812 fetch 1 ,mem_sc_calc 
+0x752d 031813 rtnne sp_calc_standby 
+0x752e 031815 arg mem_k_256 ,contw 
+0x752f 031816 arg mem_sc_private_key_256 ,contr 
+0x7530 031817 call memcpy32 
+0x7531 031819 arg mem_ax_256 ,contw 
+0x7532 031820 arg mem_le_pubkey_remote_x_256 ,contr 
+0x7533 031821 call memcpy64 
+0x7534 031823 arg mem_az_256 ,contw 
+0x7535 031824 call clear_mem_256 
+0x7536 031825 jam 1 ,mem_az_256 
+0x7537 031827 call eckp_calc_init_256 
+0x7538 031828 jam sp_calc_dhkey_256 ,mem_sc_calc 
+0x7539 031829 rtn 
+:      031832 sp_dhkey_generated_256:
+0x753a 031834 arg mem_le_dhkey_256 ,contw 
+0x753b 031835 arg mem_bx_256 ,contr 
+0x753c 031836 call memcpy32 
+0x753d 031837 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
+0x753e 031838 jam sp_calc_standby ,mem_sc_calc 
+0x753f 031839 rtn 
+:      031843 sp_calc_sequence_256:
+0x7540 031844 fetch 1 ,mem_secure_connections_enable 
+0x7541 031845 rtn blank 
+0x7542 031846 fetch 1 ,mem_sc_calc 
+0x7543 031847 rtn blank 
+0x7544 031848 increase 0x80 ,pdata 
+0x7545 031849 store 1 ,mem_sc_calc 
+0x7546 031850 rtnbit1 7 
+0x7547 031851 fetch 2 ,mem_ec_loopc 
+0x7548 031852 branch sp_calc_sequence_done_256 ,blank 
+0x7549 031853 branch eckp_calc_256 
+:      031855 sp_calc_sequence_done_256:
+0x754a 031856 bpatchx patch22_6 ,mem_patch22 
+0x754b 031857 call ecunmapz_256 
+0x754c 031858 fetch 1 ,mem_sc_calc 
+0x754d 031859 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
+0x754e 031860 beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
+0x754f 031861 rtn 
+:      031864 eckp_calc_256:
+0x7550 031865 call ecdbl_256 
+0x7551 031866 fetch 2 ,mem_ec_loopc 
+0x7552 031867 increase -1 ,pdata 
+0x7553 031868 store 2 ,mem_ec_loopc 
+0x7554 031869 arg mem_k_256 ,contr 
+0x7555 031870 call bn_testbit 
+0x7556 031871 rtn true 
+0x7557 031872 branch ecadd_256 
+:      031874 eckp_calc_init_256:
+0x7558 031875 bpatchx patch22_7 ,mem_patch22 
+0x7559 031876 setarg 256 
+0x755a 031877 store 2 ,mem_ec_loopc 
+:      031878 eckp_calc_init_256_1:
+0x755b 031879 fetch 2 ,mem_ec_loopc 
+0x755c 031880 rtn blank 
+0x755d 031881 increase -1 ,pdata 
+0x755e 031882 store 2 ,mem_ec_loopc 
+0x755f 031883 arg mem_k_256 ,contr 
+0x7560 031884 call bn_testbit 
+0x7561 031885 branch eckp_calc_init_256_1 ,true 
+0x7562 031886 arg mem_ax_256 ,contr 
+0x7563 031887 arg mem_cx_256 ,contw 
+0x7564 031888 branch memcpy96 
+:      031891 ecunmapz_256:
+0x7565 031892 arg mem_cz_256 ,rega 
+0x7566 031893 arg mem_t3_256 ,contw 
+0x7567 031894 call bn_invmod_256 
+0x7568 031895 arg mem_t3_256 ,rega 
+0x7569 031896 arg mem_t1_256 ,contw 
+0x756a 031897 call bn_sqrmod_256 
+0x756b 031898 arg mem_cx_256 ,rega 
+0x756c 031899 arg mem_t1_256 ,regb 
+0x756d 031900 arg mem_bx_256 ,contw 
+0x756e 031901 call bn_mulmod_256 
+0x756f 031902 arg mem_t3_256 ,rega 
+0x7570 031903 arg mem_t1_256 ,regb 
+0x7571 031904 arg mem_t2_256 ,contw 
+0x7572 031905 call bn_mulmod_256 
+0x7573 031906 arg mem_cy_256 ,rega 
+0x7574 031907 arg mem_t2_256 ,regb 
+0x7575 031908 arg mem_by_256 ,contw 
+0x7576 031909 branch bn_mulmod_256 
+:      031911 ecdbl_256:
+0x7577 031912 arg mem_cz_256 ,rega 
+0x7578 031913 arg mem_t2_256 ,contw 
+0x7579 031914 call bn_sqrmod_256 
+0x757a 031915 arg mem_t2_256 ,rega 
+0x757b 031916 arg mem_t3_256 ,contw 
+0x757c 031917 call bn_sqrmod_256 
+0x757d 031919 arg mem_a_256 ,rega 
+0x757e 031920 arg mem_t3_256 ,regb 
+0x757f 031921 arg mem_t3_256 ,contw 
+0x7580 031922 call bn_mulmod_256 
+0x7581 031923 arg mem_cx_256 ,rega 
+0x7582 031924 arg mem_t2_256 ,contw 
+0x7583 031925 call bn_sqrmod_256 
+0x7584 031927 arg mem_t2_256 ,contr 
+0x7585 031928 arg mem_t1_256 ,contw 
+0x7586 031929 call memcpy32 
+0x7587 031930 arg mem_t1_256 ,rega 
+0x7588 031931 call bn_lshiftmod_256 
+0x7589 031932 arg mem_t2_256 ,rega 
+0x758a 031933 arg mem_t1_256 ,regb 
+0x758b 031934 arg mem_t2_256 ,contw 
+0x758c 031935 call bn_addmod_256 
+0x758d 031937 arg mem_t2_256 ,rega 
+0x758e 031938 arg mem_t3_256 ,regb 
+0x758f 031939 arg mem_t2_256 ,contw 
+0x7590 031940 call bn_addmod_256 
+0x7591 031942 arg mem_cx_256 ,contr 
+0x7592 031943 arg mem_t1_256 ,contw 
+0x7593 031944 call memcpy32 
+0x7594 031945 arg mem_cy_256 ,rega 
+0x7595 031946 arg mem_t3_256 ,contw 
+0x7596 031947 call bn_sqrmod_256 
+0x7597 031948 arg mem_t1_256 ,rega 
+0x7598 031949 call bn_lshiftmod_256 
+0x7599 031950 arg mem_t1_256 ,rega 
+0x759a 031951 call bn_lshiftmod_256 
+0x759b 031952 arg mem_t1_256 ,rega 
+0x759c 031953 arg mem_t3_256 ,regb 
+0x759d 031954 arg mem_t1_256 ,contw 
+0x759e 031955 call bn_mulmod_256 
+0x759f 031956 arg mem_t3_256 ,rega 
+0x75a0 031957 arg mem_t0_256 ,contw 
+0x75a1 031958 call bn_sqrmod_256 
+0x75a2 031959 arg mem_t0_256 ,rega 
+0x75a3 031960 call bn_lshiftmod_256 
+0x75a4 031961 arg mem_t0_256 ,rega 
+0x75a5 031962 call bn_lshiftmod_256 
+0x75a6 031963 arg mem_t0_256 ,rega 
+0x75a7 031964 call bn_lshiftmod_256 
+0x75a8 031965 arg mem_cy_256 ,contr 
+0x75a9 031966 arg mem_t3_256 ,contw 
+0x75aa 031967 call memcpy32 
+0x75ab 031968 arg mem_t3_256 ,rega 
+0x75ac 031969 call bn_lshiftmod_256 
+0x75ad 031970 arg mem_t3_256 ,rega 
+0x75ae 031971 arg mem_cz_256 ,regb 
+0x75af 031972 arg mem_cz_256 ,contw 
+0x75b0 031973 call bn_mulmod_256 
+0x75b1 031976 arg mem_t2_256 ,rega 
+0x75b2 031977 arg mem_t3_256 ,contw 
+0x75b3 031978 call bn_sqrmod_256 
+0x75b4 031980 arg mem_t3_256 ,rega 
+0x75b5 031981 arg mem_t1_256 ,regb 
+0x75b6 031982 arg mem_t3_256 ,contw 
+0x75b7 031983 call bn_submod_256 
+0x75b8 031984 arg mem_t3_256 ,rega 
+0x75b9 031985 arg mem_t1_256 ,regb 
+0x75ba 031986 arg mem_cx_256 ,contw 
+0x75bb 031987 call bn_submod_256 
+0x75bc 031988 arg mem_t1_256 ,rega 
+0x75bd 031989 arg mem_cx_256 ,regb 
+0x75be 031990 arg mem_t3_256 ,contw 
+0x75bf 031991 call bn_submod_256 
+0x75c0 031992 arg mem_t3_256 ,rega 
+0x75c1 031993 arg mem_t2_256 ,regb 
+0x75c2 031994 arg mem_t3_256 ,contw 
+0x75c3 031995 call bn_mulmod_256 
+0x75c4 031996 arg mem_t3_256 ,rega 
+0x75c5 031997 arg mem_t0_256 ,regb 
+0x75c6 031998 arg mem_cy_256 ,contw 
+0x75c7 031999 branch bn_submod_256 
+:      032001 ecadd_256:
+0x75c8 032003 arg mem_az_256 ,rega 
+0x75c9 032004 arg mem_t7_256 ,contw 
+0x75ca 032005 call bn_sqrmod_256 
+0x75cb 032006 arg mem_cx_256 ,rega 
+0x75cc 032007 arg mem_t7_256 ,regb 
+0x75cd 032008 arg mem_t0_256 ,contw 
+0x75ce 032009 call bn_mulmod_256 
+0x75cf 032012 arg mem_az_256 ,rega 
+0x75d0 032013 arg mem_t7_256 ,regb 
+0x75d1 032014 arg mem_t7_256 ,contw 
+0x75d2 032015 call bn_mulmod_256 
+0x75d3 032016 arg mem_cy_256 ,rega 
+0x75d4 032017 arg mem_t7_256 ,regb 
+0x75d5 032018 arg mem_t1_256 ,contw 
+0x75d6 032019 call bn_mulmod_256 
+0x75d7 032022 arg mem_cz_256 ,rega 
+0x75d8 032023 arg mem_t7_256 ,contw 
+0x75d9 032024 call bn_sqrmod_256 
+0x75da 032025 arg mem_ax_256 ,rega 
+0x75db 032026 arg mem_t7_256 ,regb 
+0x75dc 032027 arg mem_t2_256 ,contw 
+0x75dd 032028 call bn_mulmod_256 
+0x75de 032030 arg mem_cz_256 ,rega 
+0x75df 032031 arg mem_t7_256 ,regb 
+0x75e0 032032 arg mem_t7_256 ,contw 
+0x75e1 032033 call bn_mulmod_256 
+0x75e2 032034 arg mem_ay_256 ,rega 
+0x75e3 032035 arg mem_t7_256 ,regb 
+0x75e4 032036 arg mem_t3_256 ,contw 
+0x75e5 032037 call bn_mulmod_256 
+0x75e6 032042 arg mem_t0_256 ,regb 
+0x75e7 032043 arg mem_t2_256 ,rega 
+0x75e8 032044 arg mem_t7_256 ,contw 
+0x75e9 032045 call bn_submod_256 
+0x75ea 032046 arg mem_t0_256 ,rega 
+0x75eb 032047 arg mem_t2_256 ,regb 
+0x75ec 032048 arg mem_t0_256 ,contw 
+0x75ed 032049 call bn_addmod_256 
+0x75ee 032052 arg mem_t1_256 ,regb 
+0x75ef 032053 arg mem_t3_256 ,rega 
+0x75f0 032054 arg mem_t2_256 ,contw 
+0x75f1 032055 call bn_submod_256 
+0x75f2 032056 arg mem_t1_256 ,rega 
+0x75f3 032057 arg mem_t3_256 ,regb 
+0x75f4 032058 arg mem_t1_256 ,contw 
+0x75f5 032059 call bn_addmod_256 
+0x75f6 032060 arg mem_t1_256 ,rega 
+0x75f7 032061 arg mem_t7_256 ,regb 
+0x75f8 032062 arg mem_t1_256 ,contw 
+0x75f9 032063 call bn_mulmod_256 
+0x75fa 032064 arg mem_cz_256 ,rega 
+0x75fb 032065 arg mem_az_256 ,regb 
+0x75fc 032066 arg mem_t3_256 ,contw 
+0x75fd 032067 call bn_mulmod_256 
+0x75fe 032068 arg mem_t3_256 ,rega 
+0x75ff 032069 arg mem_t7_256 ,regb 
+0x7600 032070 arg mem_cz_256 ,contw 
+0x7601 032071 call bn_mulmod_256 
+0x7602 032073 arg mem_t7_256 ,rega 
+0x7603 032074 arg mem_t7_256 ,contw 
+0x7604 032075 call bn_sqrmod_256 
+0x7605 032076 arg mem_t7_256 ,rega 
+0x7606 032077 arg mem_t0_256 ,regb 
+0x7607 032078 arg mem_t3_256 ,contw 
+0x7608 032079 call bn_mulmod_256 
+0x7609 032080 arg mem_t7_256 ,rega 
+0x760a 032081 arg mem_t1_256 ,regb 
+0x760b 032082 arg mem_t1_256 ,contw 
+0x760c 032083 call bn_mulmod_256 
+0x760d 032084 arg mem_t2_256 ,rega 
+0x760e 032085 arg mem_cx_256 ,contw 
+0x760f 032086 call bn_sqrmod_256 
+0x7610 032087 arg mem_cx_256 ,rega 
+0x7611 032088 arg mem_t3_256 ,regb 
+0x7612 032089 arg mem_cx_256 ,contw 
+0x7613 032090 call bn_submod_256 
+0x7614 032091 arg mem_cx_256 ,contr 
+0x7615 032092 arg mem_t7_256 ,contw 
+0x7616 032093 call memcpy32 
+0x7617 032094 arg mem_t7_256 ,rega 
+0x7618 032095 call bn_lshiftmod_256 
+0x7619 032096 arg mem_t3_256 ,rega 
+0x761a 032097 arg mem_t7_256 ,regb 
+0x761b 032098 arg mem_t3_256 ,contw 
+0x761c 032099 call bn_submod_256 
+0x761d 032100 arg mem_t3_256 ,rega 
+0x761e 032101 arg mem_t2_256 ,regb 
+0x761f 032102 arg mem_t2_256 ,contw 
+0x7620 032103 call bn_mulmod_256 
+0x7621 032104 arg mem_t2_256 ,rega 
+0x7622 032105 arg mem_t1_256 ,regb 
+0x7623 032106 arg mem_cy_256 ,contw 
+0x7624 032107 call bn_submod_256 
+0x7625 032108 arg mem_cy_256 ,rega 
+0x7626 032109 arg mem_p_256 ,regb 
+0x7627 032110 arg mem_cy_256 ,contw 
+0x7628 032111 force 0 ,regc 
+0x7629 032112 fetch 1 ,mem_cy_256 
+0x762a 032113 isolate1 0 ,pdata 
+0x762b 032114 call bn_add_256 ,true 
+0x762c 032115 copy regc ,alarm 
+0x762d 032116 arg mem_cy_256 ,rega 
+0x762e 032117 call bn_rshift_256 
+0x762f 032118 fetch 1 ,mem_cy5_256 
+0x7630 032119 isolate1 0 ,alarm 
+0x7631 032120 setflag true ,7 ,pdata 
+0x7632 032121 store 1 ,mem_cy5_256 
+0x7633 032122 rtn 
+:      032124 bn_invmod_256:
+0x7634 032125 copy contw ,timeup 
+0x7635 032126 arg mem_tmp0_256 ,contw 
+0x7636 032127 call clear_mem_256 
+0x7637 032128 force 0 ,pdata 
+0x7638 032130 store 4 ,mem_t2_256 
+0x7639 032131 jam 1 ,mem_tmp0_256 
+0x763a 032132 arg mem_tmp1_256 ,contw 
+0x763b 032133 call clear_mem_512 
+0x763c 032134 arg mem_p_256 ,contr 
+0x763d 032135 arg mem_tmp2_256 ,contw 
+0x763e 032136 call memcpy32 
+0x763f 032137 copy rega ,contr 
+0x7640 032138 arg mem_tmp3_256 ,contw 
+0x7641 032139 call memcpy32 
+:      032145 bn_invmod_256_2:
+0x7642 032146 arg mem_tmp3_256 ,contr 
+0x7643 032147 call bn_eq_zero_256 
+0x7644 032148 branch bn_invmod_256_0 ,blank 
+0x7645 032153 arg mem_tmp3_256 ,rega 
+0x7646 032154 arg mem_tmp0_256 ,regb 
+0x7647 032155 call bn_rshifteven_256 
+0x7648 032156 arg mem_tmp2_256 ,rega 
+0x7649 032157 arg mem_tmp1_256 ,regb 
+0x764a 032158 call bn_rshifteven_256 
+0x764b 032160 arg mem_tmp3_256 ,rega 
+0x764c 032161 arg mem_tmp2_256 ,regb 
+0x764d 032162 call bn_bigeq_256 
+0x764e 032163 branch bn_invmod_256_1 ,positive 
+0x764f 032164 arg mem_tmp2_256 ,rega 
+0x7650 032165 arg mem_tmp3_256 ,regb 
+0x7651 032166 copy rega ,contw 
+0x7652 032167 call bn_sub_256 
+0x7653 032168 arg mem_tmp0_256 ,rega 
+0x7654 032169 arg mem_tmp1_256 ,regb 
+0x7655 032170 copy regb ,contw 
+0x7656 032171 call bn_add_256 
+0x7657 032172 ifetch 1 ,rega 
+0x7658 032173 iadd regc ,regc 
+0x7659 032174 ifetch 1 ,regb 
+0x765a 032175 iadd regc ,pdata 
+0x765b 032176 istore 1 ,regb 
+0x765c 032177 branch bn_invmod_256_2 
+:      032178 bn_invmod_256_1:
+0x765d 032179 arg mem_tmp3_256 ,rega 
+0x765e 032180 arg mem_tmp2_256 ,regb 
+0x765f 032181 copy rega ,contw 
+0x7660 032182 call bn_sub_256 
+0x7661 032183 arg mem_tmp1_256 ,rega 
+0x7662 032184 arg mem_tmp0_256 ,regb 
+0x7663 032185 copy regb ,contw 
+0x7664 032186 call bn_add_256 
+0x7665 032187 ifetch 1 ,rega 
+0x7666 032188 iadd regc ,regc 
+0x7667 032189 ifetch 1 ,regb 
+0x7668 032190 iadd regc ,pdata 
+0x7669 032191 istore 1 ,regb 
+0x766a 032192 branch bn_invmod_256_2 
+:      032193 bn_invmod_256_0:
+0x766b 032195 arg mem_tmp1_256 ,rega 
+0x766c 032196 copy timeup ,contw 
+0x766d 032197 call bn_p256mod 
+0x766e 032199 arg mem_p_256 ,rega 
+0x766f 032200 copy timeup ,regb 
+0x7670 032201 copy timeup ,contw 
+0x7671 032202 branch bn_submod_256 
+:      032205 bn_mulmod_256:
+0x7672 032206 copy contw ,timeup 
+0x7673 032208 force 0 ,regext_index 
+0x7674 032210 arg mem_tmp1_256 ,contw 
+0x7675 032211 call clear_mem_512 
+0x7676 032212 arg mem_regext ,contw 
+0x7677 032213 call clear_mem_512 
+0x7678 032217 copy rega ,contr 
+0x7679 032219 jam 0 ,mem_regext 
+0x767a 032220 setarg 0 
+0x767b 032221 call bn_load_mem 
+0x767c 032222 copy regb ,contr 
+0x767d 032223 call bn_load_256 
+0x767e 032226 force 0 ,queue 
+0x767f 032227 arg mem_tmp1_256 ,contw 
+:      032228 bn_mulmod_256_1:
+0x7680 032231 arg mem_regext ,temp 
+0x7681 032232 copy queue ,regb 
+0x7682 032233 lshift2 regb ,pdata 
+0x7683 032235 iadd temp ,regb 
+0x7684 032236 force 0 ,temp 
+0x7685 032237 force 0 ,regc 
+:      032238 bn_mulmod_256_0:
+0x7686 032243 ifetch 4 ,contw 
+0x7687 032244 iforce rega 
+0x7688 032247 ifetch 4 ,regb 
+0x7689 032248 copy regc ,regext_index 
+0x768a 032249 imul32 regext ,pdata 
+0x768b 032250 iadd rega ,pdata 
+0x768c 032251 iadd temp ,pdata 
+0x768d 032252 istore 4 ,contw 
+0x768e 032253 rshift32 pdata ,temp 
+0x768f 032254 increase 1 ,regc 
+0x7690 032255 compare 8 ,regc ,0xff 
+0x7691 032256 nbranch bn_mulmod_256_0 ,true 
+0x7692 032258 deposit temp 
+0x7693 032259 istore 4 ,contw 
+0x7694 032260 increase -32 ,contw 
+0x7695 032263 increase 1 ,queue 
+0x7696 032264 compare 8 ,queue ,0xff 
+0x7697 032265 nbranch bn_mulmod_256_1 ,true 
+0x7698 032266 arg mem_tmp1_256 ,rega 
+0x7699 032267 copy timeup ,contw 
+0x769a 032268 branch bn_p256mod 
+:      032270 bn_p256mod:
+0x769b 032271 bpatchx patch23_0 ,mem_patch23 
+0x769c 032272 copy contw ,timeup 
+0x769d 032273 copy rega ,alarm 
+0x769e 032274 arg mem_tmp2_256 ,regb 
+0x769f 032275 copy regb ,contw 
+0x76a0 032276 call memset0_4 
+0x76a1 032277 istore 8 ,contw 
+0x76a2 032278 add rega ,44 ,contr 
+0x76a3 032279 call memcpy8 
+0x76a4 032280 call memcpy12 
+0x76a5 032281 copy regb ,rega 
+0x76a6 032282 call bn_lshiftmod_256 
+0x76a7 032283 arg mem_tmp2_256 ,regb 
+0x76a8 032284 copy alarm ,rega 
+0x76a9 032285 copy timeup ,contw 
+0x76aa 032286 call bn_addmod_256 
+0x76ab 032288 arg mem_tmp2_256 ,regb 
+0x76ac 032289 copy regb ,contw 
+0x76ad 032290 call memset0_4 
+0x76ae 032291 istore 8 ,contw 
+0x76af 032292 add alarm ,48 ,contr 
+0x76b0 032293 call memcpy16 
+0x76b1 032294 call memset0_4 
+0x76b2 032295 copy regb ,rega 
+0x76b3 032296 call bn_lshiftmod_256 
+0x76b4 032300 arg mem_tmp2_256 ,regb 
+0x76b5 032301 copy timeup ,rega 
+0x76b6 032302 copy rega ,contw 
+0x76b7 032303 call bn_addmod_256 
+0x76b8 032307 arg mem_tmp2_256 ,regb 
+0x76b9 032308 copy regb ,contw 
+0x76ba 032309 add alarm ,32 ,contr 
+0x76bb 032310 call memcpy12 
+0x76bc 032311 call memset0_4 
+0x76bd 032312 istore 8 ,contw 
+0x76be 032313 add alarm ,56 ,contr 
+0x76bf 032314 call memcpy8 
+0x76c0 032315 copy timeup ,rega 
+0x76c1 032316 copy rega ,contw 
+0x76c2 032317 call bn_addmod_256 
+0x76c3 032321 arg mem_tmp2_256 ,regb 
+0x76c4 032322 copy regb ,contw 
+0x76c5 032323 add alarm ,36 ,contr 
+0x76c6 032324 call memcpy12 
+0x76c7 032325 add alarm ,52 ,contr 
+0x76c8 032326 call memcpy12 
+0x76c9 032327 add alarm ,52 ,contr 
+0x76ca 032328 call memcpy4 
+0x76cb 032329 add alarm ,32 ,contr 
+0x76cc 032330 call memcpy4 
+0x76cd 032331 copy timeup ,rega 
+0x76ce 032332 copy rega ,contw 
+0x76cf 032333 call bn_addmod_256 
+0x76d0 032336 arg mem_tmp2_256 ,regb 
+0x76d1 032337 copy regb ,contw 
+0x76d2 032338 add alarm ,44 ,contr 
+0x76d3 032339 call memcpy12 
+0x76d4 032340 call memset0_4 
+0x76d5 032341 istore 8 ,contw 
+0x76d6 032342 add alarm ,32 ,contr 
+0x76d7 032343 call memcpy4 
+0x76d8 032344 add alarm ,40 ,contr 
+0x76d9 032345 call memcpy4 
+0x76da 032346 copy timeup ,rega 
+0x76db 032347 copy rega ,contw 
+0x76dc 032348 call bn_submod_256 
+0x76dd 032351 arg mem_tmp2_256 ,regb 
+0x76de 032352 copy regb ,contw 
+0x76df 032353 add alarm ,48 ,contr 
+0x76e0 032354 call memcpy8 
+0x76e1 032355 call memcpy8 
+0x76e2 032356 force 0 ,pdata 
+0x76e3 032357 istore 8 ,contw 
+0x76e4 032358 add alarm ,36 ,contr 
+0x76e5 032359 call memcpy4 
+0x76e6 032360 add alarm ,44 ,contr 
+0x76e7 032361 call memcpy4 
+0x76e8 032362 copy timeup ,rega 
+0x76e9 032363 copy rega ,contw 
+0x76ea 032364 call bn_submod_256 
+0x76eb 032367 arg mem_tmp2_256 ,regb 
+0x76ec 032368 copy regb ,contw 
+0x76ed 032369 add alarm ,52 ,contr 
+0x76ee 032370 call memcpy12 
+0x76ef 032371 add alarm ,32 ,contr 
+0x76f0 032372 call memcpy12 
+0x76f1 032373 call memset0_4 
+0x76f2 032374 add alarm ,48 ,contr 
+0x76f3 032375 call memcpy4 
+0x76f4 032376 copy timeup ,rega 
+0x76f5 032377 copy rega ,contw 
+0x76f6 032378 call bn_submod_256 
+0x76f7 032381 arg mem_tmp2_256 ,regb 
+0x76f8 032382 copy regb ,contw 
+0x76f9 032383 add alarm ,56 ,contr 
+0x76fa 032384 call memcpy8 
+0x76fb 032385 call memset0_4 
+0x76fc 032386 add alarm ,36 ,contr 
+0x76fd 032387 call memcpy12 
+0x76fe 032388 call memset0_4 
+0x76ff 032389 add alarm ,52 ,contr 
+0x7700 032390 call memcpy4 
+0x7701 032391 copy timeup ,rega 
+0x7702 032392 copy rega ,contw 
+0x7703 032393 branch bn_submod_256 
+:      032396 bn_load_mem:
+0x7704 032397 force 32 ,loopcnt 
+0x7705 032398 arg mem_regext ,contw 
+0x7706 032399 iadd contw ,contw 
+0x7707 032400 branch memcpy 
+:      032402 bn_load_256:
+0x7708 032403 force 8 ,loopcnt 
+0x7709 032404 branch bn_load_0 
+:      032406 bn_sqrmod_256:
+0x770a 032407 copy rega ,regb 
+0x770b 032408 branch bn_mulmod_256 
+:      032410 bn_add_256:
+0x770c 032411 force 8 ,loopcnt 
+0x770d 032412 branch bn_add + 1 
+:      032414 bn_addmod_256:
+0x770e 032415 call bn_add_256 
+0x770f 032416 copy contw ,rega 
+0x7710 032417 branch bn_lshiftmod_ismod_256 
+:      032419 bn_lshiftmod_256:
+0x7711 032420 call bn_lshift_256 
+:      032421 bn_lshiftmod_ismod_256:
+0x7712 032422 isolate1 0 ,regc 
+0x7713 032423 branch bn_lshiftmod_p_256 ,true 
+0x7714 032424 arg mem_p_256 ,regb 
+0x7715 032425 copy rega ,regc 
+0x7716 032426 increase -32 ,rega 
+0x7717 032427 call bn_bigeq_256 
+0x7718 032428 nrtn positive 
+0x7719 032429 copy regc ,rega 
+0x771a 032430 branch sub_p2_256 
+:      032432 bn_lshiftmod_p_256:
+0x771b 032433 call sub_p2_256 
+0x771c 032435 copy rega ,regc 
+0x771d 032436 increase -32 ,rega 
+0x771e 032437 arg mem_p_256 ,regb 
+0x771f 032438 call bn_bigeq_256 
+0x7720 032439 nrtn positive 
+0x7721 032440 copy regc ,rega 
+0x7722 032441 branch sub_p2_256 
+:      032444 sub_p2_256:
+0x7723 032445 increase -32 ,rega 
+0x7724 032446 arg mem_p_256 ,regb 
+0x7725 032447 copy rega ,contw 
+0x7726 032448 branch bn_sub_256 
+:      032453 bn_submod_256:
+0x7727 032454 call bn_sub_256 
+0x7728 032456 branch bn_submod_256_np ,true 
+0x7729 032459 add contw ,-32 ,rega 
+0x772a 032460 arg mem_p_256 ,regb 
+0x772b 032461 call bn_bigeq_256 
+0x772c 032462 nrtn positive 
+0x772d 032463 arg mem_p_256 ,regb 
+0x772e 032464 add contw ,-32 ,rega 
+0x772f 032466 copy rega ,contw 
+0x7730 032467 branch bn_sub_256 
+:      032468 bn_submod_256_np:
+0x7731 032469 add contw ,-32 ,rega 
+0x7732 032470 arg mem_p_256 ,regb 
+0x7733 032471 copy rega ,contw 
+0x7734 032472 call bn_add_256 
+0x7735 032474 rtn true 
+0x7736 032475 add contw ,-32 ,rega 
+0x7737 032476 arg mem_p_256 ,regb 
+0x7738 032477 copy rega ,contw 
+0x7739 032478 branch bn_add_256 
+:      032482 bn_sub_256:
+0x773a 032483 force 8 ,loopcnt 
+0x773b 032484 branch bn_sub + 1 
+:      032486 bn_rshift_256:
+0x773c 032487 force 8 ,loopcnt 
+0x773d 032488 increase 28 ,rega 
+0x773e 032489 branch bn_rshift 
+:      032491 bn_lshift_256:
+0x773f 032492 force 8 ,loopcnt 
+0x7740 032493 force 0 ,regc 
+0x7741 032494 branch bn_lshift_0 
+:      032496 bn_bigeq_256:
+0x7742 032497 force 8 ,loopcnt 
+0x7743 032498 increase 28 ,rega 
+0x7744 032499 increase 28 ,regb 
+0x7745 032500 branch bn_bigeq_0 
+:      032503 bn_eq_zero_256:
+0x7746 032504 ifetch 8 ,contr 
+0x7747 032505 nrtn blank 
+0x7748 032506 branch bn_eq_zero 
+:      032511 bn_rshifteven_256:
+0x7749 032512 copy rega ,alarm 
+:      032513 bn_rshifteven_256_1:
+0x774a 032514 copy alarm ,rega 
+0x774b 032515 ifetch 1 ,rega 
+0x774c 032516 isolate1 0 ,pdata 
+0x774d 032517 rtn true 
+0x774e 032518 call bn_rshift_256 
+0x774f 032519 ifetch 1 ,regb 
+0x7750 032520 isolate0 0 ,pdata 
+0x7751 032521 branch bn_rshifteven_256_0 ,true 
+0x7752 032522 arg mem_p_256 ,rega 
+0x7753 032523 copy regb ,contw 
+0x7754 032524 call bn_add_256 
+0x7755 032525 ifetch 1 ,regb 
+0x7756 032526 iadd regc ,pdata 
+0x7757 032527 istore 1 ,regb 
+0x7758 032528 increase -32 ,regb 
+:      032529 bn_rshifteven_256_0:
+0x7759 032530 add regb ,32 ,rega 
+0x775a 032531 force 9 ,loopcnt 
+0x775b 032532 call bn_rshift 
+0x775c 032533 branch bn_rshifteven_256_1 
+:      032536 ui_init:
+0x775d 032537 rtn wake 
+0x775e 032538 call lpm_disable_exen_output 
+0x775f 032539 call ui_button_init 
+0x7760 032540 call ui_timer_init 
+0x7761 032541 branch ui_led_init_global 
+:      032543 ui_dispatch:
+0x7762 032544 call ui_led_dispatch 
+0x7763 032545 branch ui_timer_check 
+:      032547 ui_button_init:
+0x7764 032548 fetch 1 ,mem_ui_button_gpio 
+0x7765 032549 rtneq ui_button_gpio_disable 
+0x7766 032550 iforce temp 
+0x7767 032551 call gpio_config_output 
+0x7768 032552 fetcht 1 ,mem_ui_button_gpio 
+0x7769 032553 call gpio_out_inactive 
+0x776a 032554 nop 100 
+0x776b 032555 fetcht 1 ,mem_ui_button_gpio 
+0x776c 032556 call gpio_config_input 
+0x776d 032557 branch ui_button_polling 
+:      032561 ui_button_polling:
+0x776e 032562 bpatchx patch23_1 ,mem_patch23 
+0x776f 032563 fetch 1 ,mem_ui_button_gpio 
+0x7770 032564 rtneq ui_button_gpio_disable 
+0x7771 032565 copy pdata ,temp 
+0x7772 032566 call gpio_get_bit 
+0x7773 032567 nbranch ui_button_up ,true 
+:      032569 ui_button_down:
+0x7774 032570 call ui_button_check_long_press 
+0x7775 032571 fetch 2 ,mem_ui_state_map 
+0x7776 032572 set1 ui_state_btn_down ,pdata 
+0x7777 032573 store 2 ,mem_ui_state_map 
+0x7778 032574 fetch 1 ,mem_ui_button_last_state 
+0x7779 032575 rtneq ui_button_state_down 
+0x777a 032576 jam ui_button_state_down ,mem_ui_button_last_state 
+0x777b 032578 fetch 1 ,mem_ui_button_timeout 
+0x777c 032579 store 1 ,mem_ui_button_timer 
+0x777d 032580 call lpm_button_get_wake_lock 
+0x777e 032581 jam bt_evt_button_down ,mem_fifo_temp 
+0x777f 032582 branch ui_ipc_send_event 
+:      032583 ui_button_up:
+0x7780 032584 fetch 2 ,mem_ui_state_map 
+0x7781 032585 set0 ui_state_btn_down ,pdata 
+0x7782 032586 store 2 ,mem_ui_state_map 
+0x7783 032587 fetch 1 ,mem_ui_button_last_state 
+0x7784 032588 rtneq ui_button_state_up 
+0x7785 032589 jam ui_button_state_up ,mem_ui_button_last_state 
+0x7786 032591 jam 0 ,mem_ui_button_timer 
+0x7787 032592 call lpm_button_clean_wake_lock 
+0x7788 032593 jam bt_evt_button_up ,mem_fifo_temp 
+0x7789 032594 branch ui_ipc_send_event 
+:      032596 ui_button_check_long_press:
+0x778a 032597 fetch 1 ,mem_ui_button_timer 
+0x778b 032598 rtn blank 
+0x778c 032599 increase -1 ,pdata 
+0x778d 032600 store 1 ,mem_ui_button_timer 
+0x778e 032601 nrtn blank 
+0x778f 032603 jam bt_evt_button_long_pressed ,mem_fifo_temp 
+0x7790 032604 branch ui_ipc_send_event 
+:      032606 lpm_button_get_wake_lock:
+0x7791 032607 arg wake_lock_button ,queue 
+0x7792 032608 branch lpm_get_wake_lock 
+:      032610 lpm_button_clean_wake_lock:
+0x7793 032611 arg wake_lock_button ,queue 
+0x7794 032612 branch lpm_put_wake_lock 
+:      032619 calc_curr_struct_prt:
+0x7795 032620 bpatchx patch23_2 ,mem_patch23 
+0x7796 032621 fetch 2 ,mem_ui_led_struct_ptr 
+0x7797 032622 mul32 rega ,led_offset_length ,regb 
+0x7798 032623 iadd regb ,regb 
+0x7799 032624 rtn 
+:      032627 ui_led_init_global:
+0x779a 032628 fetch 1 ,mem_ui_led_struct_num 
+0x779b 032629 rtn blank 
+0x779c 032630 copy pdata ,loopcnt 
+0x779d 032631 fetch 2 ,mem_ui_led_struct_ptr 
+0x779e 032632 copy pdata ,regb 
+:      032633 ui_led_init_loop:
+0x779f 032634 add regb ,led_offset_led_gpio ,regc 
+0x77a0 032635 ifetcht 1 ,regc 
+0x77a1 032636 call ui_led_init_set 
+0x77a2 032637 increase led_offset_length ,regb 
+0x77a3 032638 loop ui_led_init_loop 
+0x77a4 032639 rtn 
+:      032642 ui_led_init_set:
+0x77a5 032643 fetch 1 ,mem_ui_led_init_state_set 
+0x77a6 032644 branch gpio_out_inactive ,blank 
+0x77a7 032645 branch gpio_out_active 
+:      032648 ui_led_on_global:
+0x77a8 032649 call calc_curr_struct_prt 
+0x77a9 032650 setarg ui_led_state_lighting 
+0x77aa 032651 istore 1 ,regb 
+0x77ab 032652 call ui_led_stop_timer 
+0x77ac 032653 branch ui_led_on_static 
+:      032657 ui_led_blink_stop_global:
+:      032658 ui_led_off_global:
+0x77ad 032660 call calc_curr_struct_prt 
+0x77ae 032661 setarg ui_led_state_darking 
+0x77af 032662 istore 1 ,regb 
+0x77b0 032664 call ui_led_stop_timer 
+0x77b1 032665 branch ui_led_off_static 
+:      032669 ui_led_blink_start_global:
+0x77b2 032670 call calc_curr_struct_prt 
+0x77b3 032671 setarg ui_led_state_blink_start 
+0x77b4 032672 istore 1 ,regb 
+0x77b5 032673 setarg led_infinite_flash_num 
+0x77b6 032674 istore 1 ,contw 
+0x77b7 032675 branch ui_led_off_static 
+:      032680 ui_led_set_style_global:
+0x77b8 032681 call calc_curr_struct_prt 
+0x77b9 032682 arg led_offset_length ,loopcnt 
+0x77ba 032683 copy regc ,contr 
+0x77bb 032684 copy regb ,contw 
+0x77bc 032685 branch memcpy_fast 
+:      032689 ui_led_dispatch:
+0x77bd 032690 fetch 1 ,mem_ui_led_struct_num 
+0x77be 032691 rtn blank 
+0x77bf 032692 arg 0 ,rega 
+:      032693 ui_led_blink_polling:
+0x77c0 032694 call ui_led_change_style_by_type 
+0x77c1 032695 increase 1 ,rega 
+0x77c2 032696 fetch 1 ,mem_ui_led_struct_num 
+0x77c3 032697 isub rega ,null 
+0x77c4 032698 rtn zero 
+0x77c5 032699 branch ui_led_blink_polling 
+:      032702 ui_led_off_static:
+0x77c6 032703 add regb ,led_offset_led_gpio ,regc 
+0x77c7 032704 ifetcht 1 ,regc 
+0x77c8 032705 branch gpio_out_inactive 
+:      032708 ui_led_on_static:
+0x77c9 032709 add regb ,led_offset_led_gpio ,regc 
+0x77ca 032710 ifetcht 1 ,regc 
+0x77cb 032711 branch gpio_out_active 
+:      032715 ui_led_change_style_by_type:
+0x77cc 032716 add rega ,ui_led_blink ,queue 
+0x77cd 032717 call timer_check 
+0x77ce 032718 nrtn blank 
+0x77cf 032720 call calc_curr_struct_prt 
+0x77d0 032722 ifetch 1 ,regb 
+0x77d1 032724 beq ui_led_state_lighting ,ui_led_on_static 
+0x77d2 032725 beq ui_led_state_darking ,ui_led_off_static 
+0x77d3 032726 beq ui_led_state_blink_stop ,ui_led_off_static 
+0x77d4 032727 beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
+:      032728 ui_led_blink_state_lighting:
+0x77d5 032729 call ui_led_on_static 
+0x77d6 032730 add regb ,led_offset_cb_ledon ,regc 
+0x77d7 032731 call push_stack 
+0x77d8 032732 ifetch 2 ,regc 
+0x77d9 032733 call callback_func 
+0x77da 032734 call pop_stack 
+0x77db 032735 setarg ui_led_state_blink_darking 
+0x77dc 032736 istore 1 ,regb 
+0x77dd 032737 add regb ,led_offset_on_time ,regc 
+0x77de 032738 ifetch 2 ,regc 
+0x77df 032739 branch ui_led_blink_timer_start 
+:      032742 ui_led_blink_state_darking:
+0x77e0 032743 call ui_led_off_static 
+0x77e1 032744 add regb ,led_offset_cb_ledoff ,regc 
+0x77e2 032745 call push_stack 
+0x77e3 032746 ifetch 2 ,regc 
+0x77e4 032747 call callback_func 
+0x77e5 032748 call pop_stack 
+0x77e6 032750 add regb ,led_offset_blink_count ,regc 
+0x77e7 032751 ifetch 1 ,regc 
+0x77e8 032752 beq led_infinite_flash_num ,ui_led_blink_infinite 
+0x77e9 032753 increase -1 ,pdata 
+0x77ea 032754 istore 1 ,regc 
+0x77eb 032755 branch ui_led_blink_stop_global ,blank 
+:      032756 ui_led_blink_infinite:
+0x77ec 032757 setarg ui_led_state_blink_lighting 
+0x77ed 032758 istore 1 ,regb 
+0x77ee 032759 add regb ,led_offset_off_time ,regc 
+0x77ef 032760 ifetch 2 ,regc 
+:      032761 ui_led_blink_timer_start:
+0x77f0 032762 add rega ,ui_led_blink ,queue 
+0x77f1 032763 branch timer_init 
+:      032765 ui_led_stop_timer:
+0x77f2 032766 setarg 0 
+0x77f3 032767 branch ui_led_blink_timer_start 
+:      032773 ui_timer_timeout:
+0x77f4 032774 setarg 0x1000 
+0x77f5 032775 lshift16 pdata ,pdata 
+0x77f6 032776 iadd regb ,regb 
+0x77f7 032777 rtn 
+:      032779 ui_timer_check:
+0x77f8 032780 bpatchx patch23_3 ,mem_patch23 
+0x77f9 032781 arg 0 ,rega 
+0x77fa 032782 fetcht 4 ,mem_ui_timer_last_btclk 
+0x77fb 032783 copy clkn_bt ,regb 
+0x77fc 032784 copy regb ,pdata 
+0x77fd 032785 isub temp ,null 
+0x77fe 032786 ncall ui_timer_timeout ,positive 
+:      032787 ui_timer_check_loop:
+0x77ff 032788 copy regb ,pdata 
+0x7800 032789 increase 160 ,temp 
+0x7801 032790 increase 160 ,temp 
+0x7802 032791 isub temp ,null 
+0x7803 032792 nbranch ui_timer_check_end ,positive 
+0x7804 032793 increase 1 ,rega 
+0x7805 032794 and rega ,0x0f ,pdata 
+0x7806 032795 nbranch ui_timer_check_loop ,blank 
+0x7807 032796 arg 0 ,rega 
+0x7808 032797 call ui_timer_check_send_evt 
+:      032798 ui_timer_init:
+0x7809 032799 copy clkn_bt ,pdata 
+0x780a 032800 store 4 ,mem_ui_timer_last_btclk 
+0x780b 032801 rtn 
+:      032802 ui_timer_check_end:
+0x780c 032803 copy rega ,pdata 
+0x780d 032804 rtn blank 
+0x780e 032805 increase -160 ,temp 
+0x780f 032806 increase -160 ,temp 
+0x7810 032807 set0 28 ,temp 
+0x7811 032808 storet 4 ,mem_ui_timer_last_btclk 
+:      032809 ui_timer_check_send_evt:
+0x7812 032810 branch app_evt_timer 
+:      032817 ui_ipc_get_lock:
+0x7813 032818 jam 1 ,mem_ipc_lock_bt 
+:      032819 ui_ipc_get_lock_wait:
+0x7814 032820 fetch 1 ,mem_ipc_lock_c51 
+0x7815 032821 nbranch ui_ipc_get_lock_wait ,blank 
+0x7816 032822 rtn 
+:      032824 ui_ipc_put_lock:
+0x7817 032825 jam 0 ,mem_ipc_lock_bt 
+0x7818 032826 rtn 
+:      032830 ui_ipc_send_event:
+0x7819 032831 bpatchx patch23_4 ,mem_patch23 
+0x781a 032832 fetch 1 ,mem_device_option 
+0x781b 032833 beq dvc_op_keyboard ,keyboard_ui_ipc_send_event 
+0x781c 032834 call ui_ipc_get_lock 
+0x781d 032835 copy rega ,pdata 
+0x781e 032836 store 4 ,mem_rega 
+0x781f 032837 arg mem_ipc_fifo_bt2c51 ,rega 
+0x7820 032838 call fifo_in 
+0x7821 032839 fetch 4 ,mem_rega 
+0x7822 032840 copy pdata ,rega 
+0x7823 032841 branch ui_ipc_put_lock 
+:      032843 ui_ipc_send_cmd:
+0x7824 032844 bpatchx patch23_5 ,mem_patch23 
+0x7825 032845 call ui_ipc_get_lock 
+0x7826 032846 copy rega ,pdata 
+0x7827 032847 store 4 ,mem_rega 
+0x7828 032848 arg mem_ipc_fifo_c512bt ,rega 
+0x7829 032849 call fifo_in 
+0x782a 032850 fetch 4 ,mem_rega 
+0x782b 032851 copy pdata ,rega 
+0x782c 032852 branch ui_ipc_put_lock 
+:      032854 ui_ipc_clean_all_fifo:
+0x782d 032855 setarg 0 
+0x782e 032856 store util_fifo_len ,mem_ipc_fifo_c512bt 
+0x782f 032857 store util_fifo_len ,mem_ipc_fifo_bt2c51 
+0x7830 032858 rtn 
+:      032860 check_51cmd:
+0x7831 032861 bpatchx patch23_6 ,mem_patch23 
+0x7832 032862 fetch 1 ,mem_hci_cmd 
+0x7833 032863 nrtn blank 
+0x7834 032864 arg mem_ipc_fifo_c512bt ,rega 
+0x7835 032865 call fifo_is_empty 
+0x7836 032866 rtn blank 
+0x7837 032867 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
+0x7838 032868 call check_51cmd_once 
+0x7839 032869 fetch 1 ,mem_ipc_skip_continue_proc 
+0x783a 032870 branch check_51cmd ,blank 
+0x783b 032871 rtn 
+:      032873 check_51cmd_once:
+0x783c 032874 call ui_ipc_get_lock 
+0x783d 032875 arg mem_ipc_fifo_c512bt ,rega 
+0x783e 032876 call fifo_out 
+0x783f 032877 copy pdata ,temp 
+0x7840 032878 call ui_ipc_put_lock 
+0x7841 032879 bpatchx patch23_7 ,mem_patch23 
+0x7842 032880 copy temp ,pdata 
+0x7843 032881 rtn blank 
+0x7844 032882 beq bt_cmd_start_adv ,check_51cmd_adv 
+0x7845 032883 beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
+0x7846 032884 beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
+0x7847 032885 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
+0x7848 032886 beq bt_cmd_led_off ,check_51cmd_led_off 
+0x7849 032887 beq bt_cmd_led_on ,check_51cmd_led_on 
+0x784a 032888 beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
+0x784b 032889 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
+0x784c 032890 beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
+0x784d 032891 beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
+0x784e 032892 beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
+0x784f 032894 store 1 ,mem_fifo_temp 
+:      032897 check_51cmd_once_continue:
+0x7850 032898 fetch 1 ,mem_fifo_temp 
+0x7851 032899 bmark0 mark_context ,check_51cmd_check_idle 
+0x7852 032900 bpatchx patch24_0 ,mem_patch24 
+0x7853 032901 fetch 1 ,mem_fifo_temp 
+0x7854 032902 beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
+0x7855 032903 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
+0x7856 032904 beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
+0x7857 032905 beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
+0x7858 032906 rtn 
+:      032908 check_51cmd_check_idle:
+0x7859 032909 store 1 ,mem_fifo_temp 
+0x785a 032910 call context_check_idle 
+0x785b 032911 branch check_51cmd_restore ,zero 
+0x785c 032912 call context_search_plap 
+0x785d 032913 nrtn zero 
+:      032914 check_51cmd_restore:
+0x785e 032915 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
+0x785f 032916 branch ui_ipc_send_cmd 
+:      032923 check_51cmd_adv:
+0x7860 032924 jam on ,mem_le_adv_enable 
+0x7861 032925 jam adv_ind ,mem_le_adv_type 
+0x7862 032926 fetch 2 ,mem_ui_state_map 
+0x7863 032927 set1 ui_state_ble_adv ,pdata 
+0x7864 032928 store 2 ,mem_ui_state_map 
+0x7865 032929 rtn 
+:      032933 check_51cmd_stop_adv:
+0x7866 032934 fetch 2 ,mem_ui_state_map 
+0x7867 032935 set0 ui_state_ble_adv ,pdata 
+0x7868 032936 store 2 ,mem_ui_state_map 
+0x7869 032937 jam off ,mem_le_adv_enable 
+0x786a 032938 rtn 
+:      032942 check_51cmd_direct_adv:
+0x786b 032943 jam on ,mem_le_adv_enable 
+0x786c 032944 jam adv_direct_ind ,mem_le_adv_type 
+0x786d 032945 fetch 2 ,mem_ui_state_map 
+0x786e 032946 set1 ui_state_ble_adv ,pdata 
+0x786f 032947 store 2 ,mem_ui_state_map 
+0x7870 032948 rtn 
+:      032952 check_51cmd_stop_direct_adv:
+0x7871 032953 fetch 2 ,mem_ui_state_map 
+0x7872 032954 set0 ui_state_ble_adv ,pdata 
+0x7873 032955 store 2 ,mem_ui_state_map 
+0x7874 032956 jam off ,mem_le_adv_enable 
+0x7875 032957 rtn 
+:      032961 check_51cmd_le_disconnect:
+0x7876 032962 setarg 20 
+0x7877 032963 store 2 ,mem_le_superto 
+0x7878 032964 store 2 ,mem_le_init_superto 
+0x7879 032965 branch le_send_terminate_ind_user_terminated 
+:      032969 check_51cmd_ble_update_connect_param:
+0x787a 032970 branch le_l2cap_tx_update_req 
+:      032974 check_51cmd_led_off:
+0x787b 032975 arg 0 ,rega 
+0x787c 032976 branch ui_led_off_global 
+:      032980 check_51cmd_led_on:
+0x787d 032981 arg 0 ,rega 
+0x787e 032982 branch ui_led_on_global 
+:      032986 check_51cmd_led_start_blink:
+0x787f 032987 arg 0 ,rega 
+0x7880 032988 call calc_curr_struct_prt 
+0x7881 032989 ifetch 1 ,regb 
+0x7882 032990 beq ui_led_state_blink_start ,check_51cmd_led_start_blink_in_blink 
+0x7883 032991 beq ui_led_state_blink_lighting ,check_51cmd_led_start_blink_in_blink 
+0x7884 032992 beq ui_led_state_blink_darking ,check_51cmd_led_start_blink_in_blink 
+0x7885 032993 branch ui_led_blink_start_global 
+:      032995 check_51cmd_led_start_blink_in_blink:
+0x7886 032996 ifetch 1 ,contr 
+0x7887 032997 rtneq led_infinite_flash_num 
+0x7888 032998 branch ui_led_blink_start_global 
+:      033002 check_51cmd_le_start_con:
+0x7889 033003 jam on ,mem_le_scan_enable 
+0x788a 033004 jam hci_cmd_le_create_conn ,mem_hci_cmd 
+0x788b 033007 rtn 
+:      033011 check_51cmd_start_scan:
+0x788c 033012 jam on ,mem_le_scan_enable 
+0x788d 033013 rtn 
+:      033017 check_51cmd_stop_scan:
+0x788e 033018 jam off ,mem_le_scan_enable 
+0x788f 033019 jam 0 ,mem_hci_cmd 
+0x7890 033020 rtn 
+:      033024 check_51cmd_hibernate:
+0x7891 033025 fetch 2 ,mem_cb_before_hibernate 
+0x7892 033026 call callback_func 
+0x7893 033027 fetch 1 ,mem_ui_button_gpio 
+0x7894 033028 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
+0x7895 033029 copy pdata ,temp 
+0x7896 033030 call gpio_config_input 
+:      033031 check_51cmd_hibernate_btn_disabled:
+0x7897 033032 call ui_ipc_clean_all_fifo 
+0x7898 033033 branch lpm_hibernate 
+:      033037 check_51cmd_le_smp_sec_req:
+0x7899 033038 branch le_send_smp_security_request 
+:      033043 ui_check_paring_button:
+0x789a 033044 fetch 1 ,mem_ui_state_map 
+0x789b 033045 rtnbit0 ui_state_btn_down 
+0x789c 033046 rtn 
+:      033051 queue_init:
+0x789d 033052 fetch 2 ,mem_queue_ptr 
+0x789e 033053 add pdata ,queue_offset_curr_num ,contw 
+0x789f 033054 setarg 0 
+0x78a0 033055 istore 3 ,contw 
+0x78a1 033056 rtn 
+:      033060 queue_push:
+0x78a2 033061 bpatchx patch24_1 ,mem_patch24 
+0x78a3 033062 call disable_user 
+0x78a4 033063 call queue_full 
+0x78a5 033064 rtn blank 
+0x78a6 033065 fetch 2 ,mem_queue_ptr 
+0x78a7 033066 add pdata ,queue_offset_curr_num ,regb 
+0x78a8 033067 ifetcht 1 ,regb 
+0x78a9 033068 increase 1 ,temp 
+0x78aa 033069 istoret 1 ,regb 
+0x78ab 033071 ifetcht 1 ,pdata 
+0x78ac 033072 copy temp ,loopcnt 
+0x78ad 033073 add pdata ,queue_offset_write_ptr ,regb 
+0x78ae 033074 ifetch 1 ,regb 
+0x78af 033075 imul32 temp ,pdata 
+0x78b0 033076 iadd contr ,contw 
+0x78b1 033077 copy rega ,contr 
+:      033078 calc_queue_next_ptr:
+0x78b2 033079 call memcpy 
+0x78b3 033080 call queue_get_size 
+0x78b4 033081 pincrease -1 
+0x78b5 033082 ifetcht 1 ,regb 
+0x78b6 033083 increase 1 ,temp 
+0x78b7 033084 iand temp ,temp 
+0x78b8 033085 istoret 1 ,regb 
+0x78b9 033086 branch enable_user 
+:      033091 queue_pop:
+0x78ba 033092 bpatchx patch24_2 ,mem_patch24 
+0x78bb 033093 call disable_user 
+0x78bc 033094 call queue_empty 
+0x78bd 033095 rtn blank 
+0x78be 033096 fetch 2 ,mem_queue_ptr 
+0x78bf 033097 add pdata ,queue_offset_curr_num ,regb 
+0x78c0 033098 ifetcht 1 ,regb 
+0x78c1 033099 increase -1 ,temp 
+0x78c2 033100 istoret 1 ,regb 
+0x78c3 033101 ifetcht 1 ,pdata 
+0x78c4 033102 copy temp ,loopcnt 
+0x78c5 033103 add pdata ,queue_offset_read_ptr ,regb 
+0x78c6 033104 ifetch 1 ,regb 
+0x78c7 033105 imul32 temp ,pdata 
+0x78c8 033106 iadd contr ,contr 
+0x78c9 033107 increase 1 ,contr 
+0x78ca 033108 copy rega ,contw 
+0x78cb 033109 branch calc_queue_next_ptr 
+:      033116 queue_get_new_ele:
+0x78cc 033117 call disable_user 
+0x78cd 033118 call queue_empty 
+0x78ce 033119 rtn blank 
+0x78cf 033120 fetch 2 ,mem_queue_ptr 
+0x78d0 033121 ifetcht 1 ,pdata 
+0x78d1 033122 copy temp ,loopcnt 
+0x78d2 033123 add pdata ,queue_offset_read_ptr ,regb 
+0x78d3 033124 ifetch 1 ,regb 
+0x78d4 033125 imul32 temp ,pdata 
+0x78d5 033126 iadd contr ,contr 
+0x78d6 033127 increase 1 ,contr 
+0x78d7 033128 copy contr ,regb 
+0x78d8 033129 copy rega ,contw 
+0x78d9 033130 call memcpy 
+0x78da 033131 branch enable_user 
+:      033133 queue_store_new_ele:
+0x78db 033134 call disable_user 
+0x78dc 033135 call queue_empty 
+0x78dd 033136 rtn blank 
+0x78de 033137 fetch 2 ,mem_queue_ptr 
+0x78df 033138 ifetcht 1 ,pdata 
+0x78e0 033139 copy temp ,loopcnt 
+0x78e1 033140 add pdata ,queue_offset_read_ptr ,regb 
+0x78e2 033141 ifetch 1 ,regb 
+0x78e3 033142 imul32 temp ,pdata 
+0x78e4 033143 iadd contr ,contr 
+0x78e5 033144 add contr ,2 ,contw 
+0x78e6 033145 copy rega ,contr 
+0x78e7 033146 increase -1 ,loopcnt 
+0x78e8 033147 call memcpy 
+0x78e9 033148 branch enable_user 
+:      033151 queue_empty:
+0x78ea 033152 fetch 2 ,mem_queue_ptr 
+0x78eb 033153 add pdata ,queue_offset_curr_num ,contr 
+0x78ec 033154 ifetch 1 ,contr 
+0x78ed 033155 rtn 
+:      033158 queue_full:
+0x78ee 033159 call queue_get_size 
+0x78ef 033160 ifetcht 1 ,contr 
+0x78f0 033161 isub temp ,pdata 
+0x78f1 033162 rtn 
+:      033165 queue_get_size:
+0x78f2 033166 fetch 2 ,mem_queue_ptr 
+0x78f3 033167 add pdata ,queue_offset_length ,contr 
+0x78f4 033168 ifetch 1 ,contr 
+0x78f5 033169 rtn 
+:      033177 usb_isr:
+0x78f6 033178 bpatchx patch24_3 ,mem_patch24 
+0x78f7 033179 fetch 1 ,core_usb_status 
+0x78f8 033180 isolate1 usb_status_reset ,pdata 
+0x78f9 033181 call usb_init_restart ,true 
+0x78fa 033182 fetch 2 ,core_usb_status 
+0x78fb 033183 store 2 ,core_usb_status 
+0x78fc 033184 store 2 ,mem_usb_status 
+0x78fd 033185 call usb_nak_state_judge 
+0x78fe 033186 call usb_rx 
+0x78ff 033187 call usb0_tx 
+0x7900 033188 call usb_tx 
+0x7901 033189 branch usb_nak_state 
+:      033191 usb_init:
+0x7902 033192 bpatchx patch24_4 ,mem_patch24 
+0x7903 033193 call enable_authrom 
+0x7904 033194 call usb_init_param 
+:      033195 usb_init_restart:
+0x7905 033196 jam 0x00 ,core_usb_config 
+0x7906 033197 nop 10000 
+0x7907 033198 jam 0x0 ,core_usb_hmode 
+0x7908 033199 fetch 2 ,core_clkoff 
+0x7909 033200 set0 clock_off_usb ,pdata 
+0x790a 033201 store 2 ,core_clkoff 
+0x790b 033202 jam 0x21 ,core_usb_epmap 
+0x790c 033203 jam 0x9d ,core_usb_pupd 
+0x790d 033204 jam 0x3c ,core_usb_config 
+0x790e 033205 setarg mem_usb_rxbuf 
+0x790f 033206 store 2 ,core_usb_rx_saddr 
+0x7910 033207 store 2 ,core_usb_rxptr 
+0x7911 033208 setarg mem_usb_rxbuf_end 
+0x7912 033209 store 2 ,core_usb_rx_eaddr 
+0x7913 033210 jam 0x80 ,core_usb_hmode 
+0x7914 033211 jam 0 ,core_usb_addr 
+0x7915 033212 jam 0xff ,core_usb_status 
+0x7916 033213 setarg mem_usb_clear_mem_end 
+0x7917 033214 arg mem_usb_clear_mem_start ,contw 
+0x7918 033215 isub contw ,loopcnt 
+0x7919 033216 branch clear_mem 
+:      033218 usb_offline_check_init:
+0x791a 033219 fetcht 1 ,mem_usb_offline_check_gpio 
+0x791b 033220 branch gpio_config_input 
+:      033221 usb_offline_state:
+0x791c 033222 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x791d 033223 rtn blank 
+0x791e 033224 fetcht 1 ,mem_usb_offline_check_gpio 
+0x791f 033225 call gpio_get_bit 
+0x7920 033226 branch usb_init_restart ,true 
+0x7921 033227 rtn 
+:      033229 usb_init_param:
+0x7922 033230 jam dev_default ,mem_usb0_state 
+0x7923 033231 setarg 0x0 
+0x7924 033232 store 1 ,mem_remain 
+0x7925 033233 store 2 ,mem_usb_zero_packet 
+0x7926 033234 pincrease 1 
+0x7927 033235 store 2 ,mem_usb_ones_packet 
+0x7928 033236 pincrease 1 
+0x7929 033237 store 2 ,mem_usb_two_packet 
+0x792a 033238 arg mem_string0 ,contw 
+0x792b 033239 setarg 0x030404 
+0x792c 033240 istore 3 ,contw 
+0x792d 033241 setarg 0x0409 
+0x792e 033242 istore 2 ,contw 
+0x792f 033243 arg mem_string1 ,contw 
+0x7930 033244 setsect 0 ,0x15906 
+0x7931 033245 setsect 1 ,0x210d2 
+0x7932 033246 setsect 2 ,0x10494 
+0x7933 033247 setsect 3 ,0x1 
+0x7934 033248 istore 9 ,contw 
+0x7935 033249 arg mem_string2 ,contw 
+0x7936 033250 setsect 0 ,0x1570f 
+0x7937 033251 setsect 1 ,0x15c9a 
+0x7938 033252 setsect 2 ,0x256c6 
+0x7939 033253 setsect 3 ,0x1cdcd 
+0x793a 033254 istore 9 ,contw 
+0x793b 033255 setsect 0 ,0x14420 
+0x793c 033256 setsect 1 ,0x25d99 
+0x793d 033257 setsect 2 ,0x25636 
+0x793e 033258 setsect 3 ,0x1 
+0x793f 033259 istore 7 ,contw 
+0x7940 033260 arg mem_string3 ,contw 
+0x7941 033261 setsect 0 ,0x1620a 
+0x7942 033262 setsect 1 ,0xc8c 
+0x7943 033263 setsect 2 ,0x30333 
+0x7944 033264 setsect 3 ,0xc0c0 
+0x7945 033265 istore 9 ,contw 
+0x7946 033266 setsect 0 ,0x3130 
+0x7947 033267 istore 2 ,contw 
+0x7948 033268 setarg usb_kbdata_vendor_define_addr 
+0x7949 033269 store 2 ,mem_hidreportdesc_kb 
+0x794a 033270 setarg usb_msdata_addr 
+0x794b 033271 store 2 ,mem_hidreportdesc_m 
+0x794c 033272 arg usb_devicedata_addr ,contr 
+0x794d 033273 arg mem_devicedesc ,contw 
+0x794e 033274 arg 19 ,loopcnt 
+0x794f 033275 call memcpy 
+0x7950 033276 arg usb_confdata_addr ,contr 
+0x7951 033277 arg mem_confdesc ,contw 
+0x7952 033278 arg 60 ,loopcnt 
+0x7953 033279 call memcpy 
+:      033280 usb_config_cb:
+0x7954 033281 fetch 2 ,mem_cb_usb_config 
+0x7955 033282 branch callback_func 
+:      033284 usb_tx_interval_config:
+0x7956 033285 fetch 1 ,mem_usb_tx_interval 
+0x7957 033286 rtn blank 
+0x7958 033287 store 1 ,mem_confdesc + 34 
+0x7959 033288 store 1 ,mem_confdesc + 59 
+0x795a 033289 rtn 
+:      033291 usb_nak_state:
+0x795b 033292 arg usb_timer_nak ,queue 
+0x795c 033293 call timer_check 
+0x795d 033294 nrtn blank 
+0x795e 033295 fetch 1 ,mem_usb_wakestate_onetime_flag 
+0x795f 033296 nrtn blank 
+0x7960 033297 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x7961 033298 ncall usb_mac_wakeup_judge ,blank 
+0x7962 033299 rtn 
+:      033301 usb_nak_state_judge:
+0x7963 033302 fetch 1 ,mem_usb_status 
+0x7964 033303 bbit1 usb_status_nak ,usb_nak_state_timer_init 
+0x7965 033304 rtn 
+:      033306 usb_nak_state_timer_init:
+0x7966 033307 call usb0_attached_state_judge 
+0x7967 033308 call timer_reinit 
+0x7968 033309 setarg timer_nak_delay 
+0x7969 033310 arg usb_timer_nak ,queue 
+0x796a 033311 branch timer_init 
+:      033313 usb0_attached_state_judge:
+0x796b 033314 fetch 1 ,mem_usb_state 
+0x796c 033315 bne usb_connected ,usb_clear_halt_dispose 
+0x796d 033316 jam 0 ,mem_usb_wakestate_onetime_flag 
+0x796e 033317 jam 0 ,mem_usb_mac_wakeup_trig 
+0x796f 033318 rtn 
+:      033320 usb_clear_halt_dispose:
+0x7970 033321 fetch 1 ,mem_usb_clear_halt 
+0x7971 033322 rtn blank 
+0x7972 033323 jam 0 ,mem_usb_clear_halt 
+0x7973 033324 jam usb_connected ,mem_usb_state 
+0x7974 033325 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7975 033326 rtn 
+:      033328 usb_rx_no_data:
+0x7976 033329 fetch 1 ,mem_usb_status 
+0x7977 033330 bbit1 usb_status_setup ,usb_class_type 
+0x7978 033331 rtn 
+:      033333 usb_rx_len:
+0x7979 033334 fetchr contus ,2 ,core_usb_rx_saddr 
+0x797a 033335 fetchr contue ,2 ,core_usb_rx_eaddr 
+0x797b 033336 fetchr contu ,2 ,core_usb_rxptr 
+0x797c 033337 ifetch 2 ,contu 
+0x797d 033338 rshift8 pdata ,temp 
+0x797e 033339 rshift4 temp ,temp 
+0x797f 033340 arg 0xfff ,contr 
+0x7980 033341 iand contr ,loopcnt 
+0x7981 033342 storer loopcnt ,2 ,mem_usb_read_len 
+0x7982 033343 rtn 
+:      033346 usb_rx_data:
+0x7983 033347 fetch 1 ,core_usb_txbusy 
+0x7984 033348 rtnbit1 usb_status_rxfull 
+0x7985 033349 call usb_rx_len 
+:      033350 usb_rx_read:
+0x7986 033351 ifetch 1 ,contu 
+0x7987 033352 istore 1 ,contw 
+0x7988 033353 loop usb_rx_read 
+0x7989 033354 storer contu ,2 ,core_usb_rxptr 
+0x798a 033355 rtn 
+:      033357 usb_rx_ep13:
+0x798b 033358 arg mem_usb_ccid_buf ,contw 
+0x798c 033359 call usb_rx_read 
+0x798d 033360 arg mem_usb_ccid_buf + 4 ,temp 
+0x798e 033361 storet 2 ,core_usb_tx_saddr3 
+0x798f 033362 fetch 1 ,mem_usb_ccid_buf + 1 
+0x7990 033363 pincrease 6 
+0x7991 033364 istore 1 ,temp 
+0x7992 033365 jam 0x8 ,core_usb_trig 
+0x7993 033366 rtn 
+:      033369 usb_rx:
+0x7994 033370 bpatchx patch24_5 ,mem_patch24 
+0x7995 033371 fetch 1 ,mem_usb_status 
+0x7996 033372 rtnbit0 usb_status_rxready 
+0x7997 033373 call usb_rx_len 
+0x7998 033374 compare 13 ,temp ,0xff 
+0x7999 033375 branch usb_rx_ep13 ,true 
+0x799a 033376 arg mem_usb_setup ,contw 
+0x799b 033377 call usb_rx_read 
+0x799c 033378 fetch 1 ,mem_usb_read_len 
+0x799d 033379 beq 0x00 ,usb_rx_no_data 
+0x799e 033380 beq 0x01 ,usb_out_one_byte 
+0x799f 033381 sub pdata ,7 ,null 
+0x79a0 033382 rtn positive 
+:      033383 usb_class_type:
+0x79a1 033384 bpatchx patch24_6 ,mem_patch24 
+0x79a2 033385 set0 mark_isstr ,mark 
+0x79a3 033386 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79a4 033387 and_into 0x80 ,pdata 
+0x79a5 033388 beq in_device ,usb_in_device 
+0x79a6 033389 beq out_device ,usb_out_device 
+0x79a7 033390 branch assert 
+:      033392 usb_out_one_byte:
+0x79a8 033393 fetch 1 ,mem_usb_setup 
+0x79a9 033394 rtnbit1 7 
+0x79aa 033395 call usb_get_led_status 
+0x79ab 033396 branch usb0_reply_zerolen 
+:      033399 usb_in_device:
+0x79ac 033400 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79ad 033401 rshift4 pdata ,pdata 
+0x79ae 033402 rshift pdata ,pdata 
+0x79af 033403 and_into 0x03 ,pdata 
+0x79b0 033404 beq standard_req ,usb_in_standard_req 
+0x79b1 033405 beq class_req ,usb_in_class_req 
+0x79b2 033406 beq manufacturer_req ,usb_in_manufacturer_req 
+0x79b3 033407 branch assert 
+:      033409 usb_out_device:
+0x79b4 033410 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79b5 033411 rshift4 pdata ,pdata 
+0x79b6 033412 rshift pdata ,pdata 
+0x79b7 033413 and_into 0x03 ,pdata 
+0x79b8 033414 beq standard_req ,usb_out_standard_req 
+0x79b9 033415 beq class_req ,usb_out_class_req 
+0x79ba 033416 beq manufacturer_req ,usb_out_manufacturer_req 
+0x79bb 033417 branch assert 
+:      033419 usb_in_standard_req:
+0x79bc 033420 fetch 1 ,mem_usb_setup_brequest 
+0x79bd 033421 beq get_configuration ,usb0_request_get_configuration 
+0x79be 033422 beq get_descriptor ,usb0_request_get_descriptor 
+0x79bf 033423 beq get_interface ,usb0_request_get_interface 
+0x79c0 033424 beq get_status ,usb0_request_get_status 
+0x79c1 033425 branch usb0_force_stall 
+:      033427 usb_in_class_req:
+0x79c2 033428 fetch 1 ,mem_usb_setup_brequest 
+0x79c3 033429 beq get_idle ,usb_get_idle 
+0x79c4 033430 beq get_report ,usb_get_report 
+0x79c5 033431 beq get_protocol ,usb_get_protocol_req 
+0x79c6 033432 branch usb0_force_stall 
+:      033434 usb_in_manufacturer_req:
+0x79c7 033435 branch usb0_force_stall 
+:      033437 usb_out_standard_req:
+0x79c8 033438 fetch 1 ,mem_usb_setup_brequest 
+0x79c9 033439 beq clear_feature ,usb0_request_clear_feature 
+0x79ca 033440 beq set_feature ,usb0_request_set_feature 
+0x79cb 033441 beq set_address ,usb0_request_set_address 
+0x79cc 033442 beq set_configuration ,usb0_request_set_configuration 
+0x79cd 033443 beq set_interface ,usb0_request_set_interface 
+0x79ce 033444 beq set_descriptor ,usb0_force_stall 
+0x79cf 033445 branch usb0_force_stall 
+:      033447 usb_out_class_req:
+0x79d0 033448 fetch 1 ,mem_usb_setup_brequest 
+0x79d1 033449 beq set_idle ,usb_set_idle 
+0x79d2 033450 beq set_report ,usb_set_report 
+0x79d3 033451 beq set_protocol ,usb_set_protocol_req 
+0x79d4 033452 branch usb0_force_stall 
+:      033454 usb_out_manufacturer_req:
+0x79d5 033455 branch usb0_force_stall 
+:      033457 usb0_force_stall:
+0x79d6 033458 bpatchx patch24_7 ,mem_patch24 
+0x79d7 033459 fetch 1 ,core_usb_stall 
+0x79d8 033460 set1 0 ,pdata 
+0x79d9 033461 store 1 ,core_usb_stall 
+0x79da 033462 branch usb0_reply_zerolen 
+:      033464 usb0_reply_zerolen:
+0x79db 033465 jam 0x1 ,core_usb_clear_nak 
+0x79dc 033466 rtn 
+:      033468 usb0_request_get_configuration:
+0x79dd 033469 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x79de 033470 bne in_device ,usb0_force_stall 
+0x79df 033471 fetch 1 ,mem_usb_setup_windex 
+0x79e0 033472 bne 0 ,usb0_force_stall 
+0x79e1 033473 fetch 1 ,mem_usb_setup_windex + 1 
+0x79e2 033474 bne 0 ,usb0_force_stall 
+0x79e3 033475 fetch 1 ,mem_usb_setup_blength 
+0x79e4 033476 bne 1 ,usb0_force_stall 
+0x79e5 033477 fetch 1 ,mem_usb_setup_blengthh 
+0x79e6 033478 bne 0 ,usb0_force_stall 
+0x79e7 033479 fetch 1 ,mem_usb_setup_bvalue 
+0x79e8 033480 bne 0 ,usb0_force_stall 
+0x79e9 033481 fetch 1 ,mem_usb_setup_bvalue + 1 
+0x79ea 033482 bne 0 ,usb0_force_stall 
+0x79eb 033483 fetch 1 ,mem_usb0_state 
+0x79ec 033484 beq dev_configured ,usb0_request_get_cfg_dev_cfg 
+0x79ed 033485 beq dev_address ,usb0_request_get_cfg_dev_addr 
+0x79ee 033486 branch usb0_force_stall 
+:      033488 usb0_request_get_cfg_dev_cfg:
+0x79ef 033489 arg 1 ,regb 
+0x79f0 033490 branch usb_send_ones_packet 
+:      033492 usb0_request_get_cfg_dev_addr:
+0x79f1 033493 arg 1 ,regb 
+0x79f2 033494 branch usb_send_zero_packet 
+:      033496 usb0_request_get_descriptor:
+0x79f3 033497 bpatchx patch25_0 ,mem_patch25 
+0x79f4 033499 fetch 1 ,mem_usb_setup_bvalueh 
+0x79f5 033500 beq dsc_device ,dsc_device_info 
+0x79f6 033501 beq dsc_config ,dsc_config_info 
+0x79f7 033502 beq dsc_string ,dsc_string_info 
+0x79f8 033503 beq dsc_hid ,dsc_hid_info 
+0x79f9 033504 beq dsc_hid_report ,dsc_hid_report_info 
+0x79fa 033505 branch usb0_force_stall 
+:      033507 dsc_hid_info:
+0x79fb 033508 jam 0 ,mem_usb_get_protocol_flag 
+0x79fc 033509 fetch 1 ,mem_usb_setup_windex 
+0x79fd 033510 beq 0 ,dsc_hid_info_interface0 
+0x79fe 033511 beq 1 ,dsc_hid_info_interface1 
+0x79ff 033512 branch usb0_force_stall 
+:      033514 dsc_hid_info_interface0:
+0x7a00 033515 fetchr regb ,1 ,mem_confdesc + 19 
+0x7a01 033516 arg mem_confdesc + 19 ,rega 
+0x7a02 033517 branch usb0_respond 
+:      033519 dsc_hid_info_interface1:
+0x7a03 033520 fetchr regb ,1 ,mem_confdesc + 44 
+0x7a04 033521 arg mem_confdesc + 44 ,rega 
+0x7a05 033522 branch usb0_respond 
+:      033524 dsc_device_info:
+0x7a06 033528 fetch 1 ,mem_usb_set_high_addr_flag 
+0x7a07 033529 ncall usb_set_high_addr ,blank 
+0x7a08 033530 setarg mem_devicedesc 
+0x7a09 033531 fetcht 1 ,mem_devicedesc 
+:      033532 dsc_info_set_data_len:
+0x7a0a 033533 store 2 ,mem_dsc_info_data_pointer 
+0x7a0b 033534 storet 1 ,mem_dsc_info_len 
+0x7a0c 033535 fetch 1 ,mem_usb_setup_blength 
+0x7a0d 033536 isub temp ,null 
+0x7a0e 033537 nbranch dsc_info_set_current_data_len ,positive 
+:      033538 dsc_info_set_initial_data_len:
+0x7a0f 033539 fetch 1 ,mem_dsc_info_len 
+:      033540 dsc_info_set_data_size_completed:
+0x7a10 033541 iforce regb 
+0x7a11 033542 fetch 2 ,mem_dsc_info_data_pointer 
+0x7a12 033543 add pdata ,1 ,pdata 
+0x7a13 033544 iforce rega 
+0x7a14 033545 branch usb0_respond 
+:      033546 dsc_info_set_current_data_len:
+0x7a15 033547 fetch 1 ,mem_usb_setup_blength 
+0x7a16 033548 branch dsc_info_set_data_size_completed 
+:      033550 usb_set_high_addr:
+0x7a17 033551 fetch 1 ,core_usb_addr 
+0x7a18 033552 ncall usb0_set_addr ,blank 
+0x7a19 033553 jam 0 ,mem_usb_set_high_addr_flag 
+0x7a1a 033554 rtn 
+:      033555 usb0_set_addr:
+0x7a1b 033556 fetch 1 ,core_usb_addr 
+0x7a1c 033557 set1 7 ,pdata 
+0x7a1d 033558 store 1 ,core_usb_addr 
+0x7a1e 033559 rtn 
+:      033561 dsc_config_info:
+0x7a1f 033562 setarg mem_confdesc 
+0x7a20 033563 fetcht 1 ,mem_confdesc 
+0x7a21 033564 branch dsc_info_set_data_len 
+:      033566 dsc_string_info:
+0x7a22 033567 fetch 1 ,mem_usb_setup_bvalue 
+0x7a23 033568 sub pdata ,3 ,null 
+0x7a24 033569 nbranch usb0_force_stall ,positive 
+0x7a25 033570 fetch 1 ,mem_usb_setup_bvalue 
+0x7a26 033571 arg mem_string0 ,rega 
+0x7a27 033572 beq 0 ,usb0_respond_length 
+0x7a28 033573 set1 mark_isstr ,mark 
+0x7a29 033574 arg mem_string1 ,rega 
+0x7a2a 033575 beq 1 ,usb0_respond_length 
+0x7a2b 033576 arg mem_string2 ,rega 
+0x7a2c 033577 beq 2 ,usb0_respond_length 
+0x7a2d 033578 arg mem_string3 ,rega 
+0x7a2e 033579 beq 3 ,usb0_respond_length 
+0x7a2f 033580 rtn 
+:      033582 dsc_hid_report_info:
+0x7a30 033583 fetch 2 ,mem_usb_setup_windex 
+0x7a31 033584 beq 1 ,dsc_hid_report_info0 
+0x7a32 033585 fetchr rega ,2 ,mem_hidreportdesc_kb 
+0x7a33 033586 branch usb0_respond_length 
+:      033587 dsc_hid_report_info0:
+0x7a34 033588 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7a35 033589 jam usb_got_report_req ,mem_usb_state 
+0x7a36 033590 fetchr rega ,2 ,mem_hidreportdesc_m 
+0x7a37 033591 branch usb0_respond_length 
+:      033594 usb0_request_get_interface:
+0x7a38 033595 fetch 1 ,mem_usb0_state 
+0x7a39 033596 bne dev_configured ,usb0_force_stall 
+0x7a3a 033597 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7a3b 033598 bne in_interface ,usb0_force_stall 
+0x7a3c 033599 fetch 1 ,mem_usb_setup_bvalue 
+0x7a3d 033600 bne 0 ,usb0_force_stall 
+0x7a3e 033601 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a3f 033602 bne 0 ,usb0_force_stall 
+0x7a40 033603 fetch 1 ,mem_usb_setup_blength 
+0x7a41 033604 bne 1 ,usb0_force_stall 
+0x7a42 033605 fetch 1 ,mem_usb_setup_blengthh 
+0x7a43 033606 bne 0 ,usb0_force_stall 
+0x7a44 033607 fetch 1 ,mem_usb_setup_windex 
+0x7a45 033608 bne 0 ,usb0_force_stall 
+0x7a46 033609 fetch 1 ,mem_usb_setup_windex + 1 
+0x7a47 033610 bne 0 ,usb0_force_stall 
+0x7a48 033611 arg 1 ,regb 
+0x7a49 033612 branch usb_send_zero_packet 
+:      033615 usb0_request_get_status:
+0x7a4a 033616 fetch 1 ,mem_usb0_state 
+0x7a4b 033617 beq dev_default ,usb0_force_stall 
+0x7a4c 033618 fetch 1 ,mem_usb_setup_bvalue 
+0x7a4d 033619 bne 0 ,usb0_force_stall 
+0x7a4e 033620 fetch 1 ,mem_usb_setup_bvalueh 
+0x7a4f 033621 bne 0 ,usb0_force_stall 
+0x7a50 033622 fetch 1 ,mem_usb_setup_blength 
+0x7a51 033623 bne 2 ,usb0_force_stall 
+0x7a52 033624 fetch 1 ,mem_usb_setup_blengthh 
+0x7a53 033625 bne 0 ,usb0_force_stall 
+0x7a54 033626 fetch 1 ,mem_usb_setup_windex + 1 
+0x7a55 033627 bne 0 ,usb0_force_stall 
+0x7a56 033628 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7a57 033629 beq in_device ,usb0_get_status_in_device 
+0x7a58 033630 beq in_interface ,usb0_get_status_in_interface 
+0x7a59 033631 beq in_endpoint ,usb0_get_status_in_endpoint 
+0x7a5a 033632 branch usb0_force_stall 
+:      033635 usb0_sdsystem_dispose:
+0x7a5b 033636 jam 1 ,mem_sdsystem_wakeup_flag 
+0x7a5c 033637 branch usb_send_two_packet 
+:      033639 usb0_get_status_in_device:
+0x7a5d 033640 fetch 1 ,mem_usb_setup_windex 
+0x7a5e 033641 bne 0 ,usb0_force_stall 
+0x7a5f 033642 arg 2 ,regb 
+0x7a60 033643 fetch 1 ,mem_usb_remote_wakeup 
+0x7a61 033644 beq 0x01 ,usb0_sdsystem_dispose 
+:      033646 usb_send_zero_packet:
+0x7a62 033647 arg mem_usb_zero_packet ,rega 
+0x7a63 033648 branch usb0_respond 
+:      033649 usb_send_ones_packet:
+0x7a64 033650 arg mem_usb_ones_packet ,rega 
+0x7a65 033651 branch usb0_respond 
+:      033652 usb_send_two_packet:
+0x7a66 033653 arg mem_usb_two_packet ,rega 
+0x7a67 033654 branch usb0_respond 
+:      033656 usb0_get_status_in_interface:
+0x7a68 033657 fetch 1 ,mem_usb0_state 
+0x7a69 033658 bne dev_configured ,usb0_force_stall 
+0x7a6a 033659 arg 2 ,regb 
+0x7a6b 033660 branch usb_send_zero_packet 
+:      033662 usb0_get_status_in_endpoint:
+0x7a6c 033663 fetch 1 ,mem_usb0_state 
+0x7a6d 033664 bne dev_configured ,usb0_force_stall 
+0x7a6e 033665 fetch 1 ,mem_usb_setup_windex 
+0x7a6f 033666 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
+0x7a70 033667 beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
+0x7a71 033668 beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
+0x7a72 033669 and_into 0x7f ,pdata 
+0x7a73 033670 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
+0x7a74 033671 branch usb0_force_stall 
+:      033673 usb0_get_status_in_ep_in_ep0:
+0x7a75 033674 fetch 1 ,mem_usb_ep0_stall_status 
+:      033675 usb0_get_status_in_ep_in_ack:
+0x7a76 033676 arg 2 ,regb 
+0x7a77 033677 beq 1 ,usb_send_ones_packet 
+0x7a78 033678 branch usb_send_zero_packet 
+:      033679 usb0_get_status_in_ep_in_ep1:
+0x7a79 033680 fetch 1 ,mem_usb_ep1_stall_status 
+0x7a7a 033681 branch usb0_get_status_in_ep_in_ack 
+:      033682 usb0_get_status_in_ep_in_ep2:
+0x7a7b 033683 fetch 1 ,mem_usb_ep2_stall_status 
+0x7a7c 033684 branch usb0_get_status_in_ep_in_ack 
+:      033685 usb0_get_status_in_ep_in_ep3:
+0x7a7d 033686 fetch 1 ,mem_usb_ep3_stall_status 
+0x7a7e 033687 branch usb0_get_status_in_ep_in_ack 
+:      033689 usb_get_idle:
+0x7a7f 033690 jam 1 ,mem_usb_idle_flag 
+0x7a80 033691 arg mem_usb_idle_rate ,rega 
+0x7a81 033692 arg 1 ,regb 
+0x7a82 033693 branch usb0_respond 
+:      033695 usb_get_report:
+0x7a83 033696 bpatchx patch25_1 ,mem_patch25 
+0x7a84 033697 fetch 2 ,mem_usb_setup_bvalue 
+0x7a85 033698 arg pc_get_report ,temp 
+0x7a86 033699 isub temp ,null 
+0x7a87 033700 nbranch usb0_force_stall ,zero 
+:      033702 usb_get_report_dispose:
+0x7a88 033703 fetch 1 ,mem_usb0_data_ready_report 
+0x7a89 033704 nbranch usb_get_report_data_success ,blank 
+0x7a8a 033705 jam pc_get_nondata ,mem_usb0_get_report_data 
+:      033706 usb_get_report_send_data:
+0x7a8b 033707 fetch 1 ,mem_usb_setup_blength 
+0x7a8c 033708 iforce regb 
+0x7a8d 033709 arg mem_usb0_get_report_data ,rega 
+0x7a8e 033710 call usb0_respond 
+:      033711 usb_get_report_data_release:
+0x7a8f 033712 arg mem_usb0_get_report_data ,contw 
+0x7a90 033713 arg 64 ,loopcnt 
+0x7a91 033714 branch memset0 
+:      033715 usb_get_report_data_success:
+0x7a92 033716 jam 0 ,mem_usb0_data_ready_report 
+0x7a93 033717 jam pc_get_data ,mem_usb0_get_report_data 
+0x7a94 033718 branch usb_get_report_send_data 
+:      033720 usb_get_protocol_req:
+0x7a95 033721 fetch 1 ,mem_usb_setup_blength 
+0x7a96 033722 bne 1 ,usb0_force_stall 
+0x7a97 033723 jam 1 ,mem_usb_get_protocol_flag 
+0x7a98 033724 arg 1 ,regb 
+0x7a99 033725 fetch 1 ,mem_usb_set_protocol_value 
+0x7a9a 033726 beq 0 ,usb_get_report_protocol 
+0x7a9b 033727 beq 1 ,usb_get_boot_protocol 
+0x7a9c 033728 branch usb_send_zero_packet 
+:      033729 usb_get_report_protocol:
+0x7a9d 033730 branch usb_send_ones_packet 
+:      033731 usb_get_boot_protocol:
+0x7a9e 033732 branch usb_send_zero_packet 
+:      033737 usb0_request_clear_feature:
+0x7a9f 033738 fetch 1 ,mem_usb0_state 
+0x7aa0 033739 bne dev_configured ,usb0_force_stall 
+0x7aa1 033740 fetch 1 ,mem_usb_setup_blength 
+0x7aa2 033741 bne 0 ,usb0_force_stall 
+0x7aa3 033742 fetch 1 ,mem_usb_setup_blengthh 
+0x7aa4 033743 bne 0 ,usb0_force_stall 
+0x7aa5 033744 fetch 1 ,mem_usb_setup_bvalueh 
+0x7aa6 033745 bne 0 ,usb0_force_stall 
+0x7aa7 033746 fetch 1 ,mem_usb_setup_windex + 1 
+0x7aa8 033747 bne 0 ,usb0_force_stall 
+0x7aa9 033748 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7aaa 033749 beq out_device ,usb0_request_clear_feature_out_device 
+0x7aab 033750 beq out_interface ,usb0_request_clear_feature_out_interface 
+0x7aac 033751 beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
+0x7aad 033752 branch usb0_force_stall 
+:      033754 usb0_request_clear_feature_out_device:
+0x7aae 033755 bpatchx patch25_2 ,mem_patch25 
+0x7aaf 033756 fetch 1 ,mem_usb_setup_bvalue 
+0x7ab0 033757 bne device_remote_wakeup ,usb0_force_stall 
+0x7ab1 033758 fetch 1 ,core_usb_config 
+0x7ab2 033759 set0 7 ,pdata 
+0x7ab3 033760 store 1 ,core_usb_config 
+0x7ab4 033761 jam 0 ,mem_usb_remote_wakeup 
+0x7ab5 033762 jam 1 ,mem_usb_clear_remote_wakeup 
+0x7ab6 033763 fetch 1 ,mem_sdsystem_wakeup_flag 
+0x7ab7 033764 branch usb0_reply_zerolen ,blank 
+0x7ab8 033765 jam 0 ,mem_sdsystem_wakeup_flag 
+0x7ab9 033766 jam 0 ,mem_usb_clear_remote_wakeup 
+0x7aba 033767 jam usb_connected ,mem_usb_state 
+0x7abb 033768 branch usb0_reply_zerolen 
+:      033770 usb0_request_clear_feature_out_interface:
+0x7abc 033771 branch usb0_force_stall 
+:      033773 usb0_request_clear_feature_out_endpoint:
+0x7abd 033774 fetch 1 ,mem_usb_setup_bvalue 
+0x7abe 033775 bne endpoint_halt ,usb0_force_stall 
+0x7abf 033776 fetch 1 ,mem_usb_setup_windex 
+0x7ac0 033777 beq in_ep1 ,usb0_force_stall_ep1_in_off 
+0x7ac1 033778 beq in_ep2 ,usb0_force_stall_ep2_in_off 
+0x7ac2 033779 beq in_ep3 ,usb0_force_stall_ep3_in_off 
+0x7ac3 033780 and_into 0x7f ,pdata 
+0x7ac4 033781 beq 0x00 ,usb0_force_stall_ep0_in_off 
+0x7ac5 033782 branch usb0_force_stall 
+:      033784 usb0_force_stall_ep0_in_off:
+0x7ac6 033785 jam 0 ,mem_usb_ep0_stall_status 
+0x7ac7 033786 branch usb0_reply_zerolen 
+:      033787 usb0_force_stall_ep1_in_off:
+0x7ac8 033788 jam 0 ,mem_usb_ep1_stall_status 
+:      033789 usb0_force_stall_ep1_in_off_reply:
+0x7ac9 033790 jam 1 ,mem_usb_clear_halt 
+0x7aca 033791 branch usb0_reply_zerolen 
+:      033792 usb0_force_stall_ep2_in_off:
+0x7acb 033793 jam 0 ,mem_usb_ep2_stall_status 
+0x7acc 033794 branch usb0_force_stall_ep1_in_off_reply 
+:      033795 usb0_force_stall_ep3_in_off:
+0x7acd 033796 jam 0 ,mem_usb_ep3_stall_status 
+0x7ace 033797 branch usb0_force_stall_ep1_in_off_reply 
+:      033800 usb0_request_set_feature:
+0x7acf 033801 fetch 1 ,mem_usb_setup_blength 
+0x7ad0 033802 bne 0 ,usb0_force_stall 
+0x7ad1 033803 fetch 1 ,mem_usb_setup_blengthh 
+0x7ad2 033804 bne 0 ,usb0_force_stall 
+0x7ad3 033805 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7ad4 033806 beq out_device ,usb0_request_set_feature_out_device 
+0x7ad5 033807 beq out_interface ,usb0_request_set_feature_out_interface 
+0x7ad6 033808 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
+0x7ad7 033809 branch usb0_force_stall 
+:      033811 usb0_request_set_feature_out_device:
+0x7ad8 033812 bpatchx patch25_3 ,mem_patch25 
+0x7ad9 033813 fetch 1 ,mem_usb_setup_bvalue 
+0x7ada 033814 bne device_remote_wakeup ,usb0_force_stall 
+0x7adb 033815 call dongle_set_pc_sleep_flag 
+0x7adc 033816 fetch 1 ,core_usb_config 
+0x7add 033817 set1 7 ,pdata 
+0x7ade 033818 store 1 ,core_usb_config 
+0x7adf 033819 jam 1 ,mem_usb_remote_wakeup 
+0x7ae0 033820 jam usb_sleep ,mem_usb_state 
+0x7ae1 033821 jam 0 ,mem_usb_tx_win_enable 
+0x7ae2 033822 call usb0_reply_zerolen 
+:      033823 usb_wakeup_timer_reinit:
+0x7ae3 033824 call timer_reinit 
+0x7ae4 033825 setarg timer_wakeup_delay 
+0x7ae5 033826 arg usb_timer_wakeup ,queue 
+0x7ae6 033827 branch timer_init 
+:      033829 usb0_request_set_feature_out_interface:
+0x7ae7 033830 branch usb0_force_stall 
+:      033832 usb0_request_set_feature_out_endpoint:
+0x7ae8 033833 fetch 1 ,mem_usb_setup_bvalue 
+0x7ae9 033834 bne endpoint_halt ,usb0_force_stall 
+0x7aea 033835 fetch 1 ,mem_usb_setup_bvalueh 
+0x7aeb 033836 bne 0 ,usb0_force_stall 
+0x7aec 033837 fetch 1 ,mem_usb_setup_windex 
+0x7aed 033838 beq in_ep1 ,usb0_force_stall_ep1_in_on 
+0x7aee 033839 beq in_ep2 ,usb0_force_stall_ep2_in_on 
+0x7aef 033840 beq in_ep3 ,usb0_force_stall_ep3_in_on 
+0x7af0 033841 and_into 0x7f ,pdata 
+0x7af1 033842 beq 0x00 ,usb0_force_stall_ep0_in_on 
+0x7af2 033843 branch usb0_force_stall 
+:      033845 usb0_force_stall_ep0_in_on:
+0x7af3 033846 jam 1 ,mem_usb_ep0_stall_status 
+0x7af4 033847 branch usb0_reply_zerolen 
+:      033848 usb0_force_stall_ep1_in_on:
+0x7af5 033849 jam 1 ,mem_usb_ep1_stall_status 
+0x7af6 033850 branch usb0_reply_zerolen 
+:      033851 usb0_force_stall_ep2_in_on:
+0x7af7 033852 jam 1 ,mem_usb_ep2_stall_status 
+0x7af8 033853 branch usb0_reply_zerolen 
+:      033854 usb0_force_stall_ep3_in_on:
+0x7af9 033855 jam 1 ,mem_usb_ep3_stall_status 
+0x7afa 033856 branch usb0_reply_zerolen 
+:      033859 usb0_request_set_address:
+0x7afb 033860 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7afc 033861 bne out_device ,usb0_force_stall 
+0x7afd 033862 fetch 1 ,mem_usb_setup_windex 
+0x7afe 033863 bne 0 ,usb0_force_stall 
+0x7aff 033864 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b00 033865 bne 0 ,usb0_force_stall 
+0x7b01 033866 fetch 1 ,mem_usb_setup_blength 
+0x7b02 033867 bne 0 ,usb0_force_stall 
+0x7b03 033868 fetch 1 ,mem_usb_setup_blengthh 
+0x7b04 033869 bne 0 ,usb0_force_stall 
+0x7b05 033870 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b06 033871 bne 0 ,usb0_force_stall 
+0x7b07 033872 fetch 1 ,mem_usb_setup_bvalue 
+0x7b08 033873 and_into 0x80 ,pdata 
+0x7b09 033874 bne 0 ,usb0_force_stall 
+0x7b0a 033875 fetch 1 ,mem_usb_setup_bvalue 
+0x7b0b 033876 bne 0 ,usb_usb0_state_set_dev_addr 
+:      033877 usb_usb0_state_set_dev_default:
+0x7b0c 033878 jam dev_default ,mem_usb0_state 
+:      033879 usb0_request_set_wait_address:
+0x7b0d 033880 fetch 1 ,mem_usb_setup_bvalue 
+0x7b0e 033881 store 1 ,core_usb_addr 
+0x7b0f 033882 call usb0_reply_zerolen 
+0x7b10 033883 jam 1 ,mem_usb_set_high_addr_flag 
+0x7b11 033884 rtn 
+:      033885 usb_usb0_state_set_dev_addr:
+0x7b12 033886 jam dev_address ,mem_usb0_state 
+0x7b13 033887 branch usb0_request_set_wait_address 
+:      033890 usb0_request_set_configuration:
+0x7b14 033891 fetch 1 ,mem_usb0_state 
+0x7b15 033892 beq dev_default ,usb0_force_stall 
+0x7b16 033893 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b17 033894 bne out_device ,usb0_force_stall 
+0x7b18 033895 fetch 1 ,mem_usb_setup_windex 
+0x7b19 033896 bne 0 ,usb0_force_stall 
+0x7b1a 033897 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b1b 033898 bne 0 ,usb0_force_stall 
+0x7b1c 033899 fetch 1 ,mem_usb_setup_blength 
+0x7b1d 033900 bne 0 ,usb0_force_stall 
+0x7b1e 033901 fetch 1 ,mem_usb_setup_blengthh 
+0x7b1f 033902 bne 0 ,usb0_force_stall 
+0x7b20 033903 fetch 1 ,mem_usb_setup_bvalue + 1 
+0x7b21 033904 bne 0 ,usb0_force_stall 
+0x7b22 033905 fetch 1 ,mem_usb_setup_bvalue 
+0x7b23 033906 sub pdata ,usb_max_num_cfg ,null 
+0x7b24 033907 nbranch usb0_force_stall ,positive 
+0x7b25 033908 fetch 1 ,mem_usb0_state 
+0x7b26 033909 beq dev_address ,usb0_request_set_cfg_addr_state 
+0x7b27 033910 beq dev_configured ,usb0_request_set_cfg_cfg_state 
+0x7b28 033911 branch usb0_force_stall 
+:      033913 usb0_request_set_cfg_addr_state:
+:      033914 usb0_request_set_cfg_cfg_state:
+0x7b29 033915 fetch 1 ,mem_usb_setup_bvalue 
+0x7b2a 033916 beq 0 ,usb0_request_set_cfg_stay_addr_state 
+0x7b2b 033917 jam dev_configured ,mem_usb0_state 
+0x7b2c 033918 branch usb0_reply_zerolen 
+:      033919 usb0_request_set_cfg_stay_addr_state:
+0x7b2d 033920 jam dev_address ,mem_usb0_state 
+0x7b2e 033921 branch usb0_reply_zerolen 
+:      033924 usb0_request_set_interface:
+0x7b2f 033925 fetch 1 ,mem_usb0_state 
+0x7b30 033926 bne dev_configured ,usb0_force_stall 
+0x7b31 033927 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x7b32 033928 bne out_interface ,usb0_force_stall 
+0x7b33 033929 fetch 1 ,mem_usb_setup_bvalue 
+0x7b34 033930 bne 0 ,usb0_force_stall 
+0x7b35 033931 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b36 033932 bne 0 ,usb0_force_stall 
+0x7b37 033933 fetch 1 ,mem_usb_setup_blength 
+0x7b38 033934 bne 0 ,usb0_force_stall 
+0x7b39 033935 fetch 1 ,mem_usb_setup_blengthh 
+0x7b3a 033936 bne 0 ,usb0_force_stall 
+0x7b3b 033937 fetch 1 ,mem_usb_setup_windex 
+0x7b3c 033938 bne 0 ,usb0_force_stall 
+0x7b3d 033939 fetch 1 ,mem_usb_setup_windex + 1 
+0x7b3e 033940 bne 0 ,usb0_force_stall 
+0x7b3f 033941 branch usb0_reply_zerolen 
+:      033944 usb_set_idle:
+0x7b40 033945 bpatchx patch25_4 ,mem_patch25 
+0x7b41 033946 jam 1 ,mem_usb_idle_flag 
+0x7b42 033947 fetch 1 ,mem_usb_setup_bvalueh 
+0x7b43 033948 store 1 ,mem_usb_idle_rate 
+0x7b44 033949 fetch 1 ,mem_usb_setup_windex 
+0x7b45 033950 sub pdata ,1 ,null 
+0x7b46 033951 call usb_clear_remote_wakeup_set0 ,zero 
+0x7b47 033952 fetch 1 ,mem_usb_state 
+0x7b48 033953 bne usb_resume ,usb0_reply_zerolen 
+0x7b49 033954 jam usb_connected ,mem_usb_state 
+0x7b4a 033955 call usb0_reply_zerolen 
+0x7b4b 033956 nop 30000 
+0x7b4c 033957 nop 30000 
+0x7b4d 033958 rtn 
+:      033959 usb_clear_remote_wakeup_set0:
+0x7b4e 033960 jam 1 ,mem_usb_device_enumeration_endflag 
+0x7b4f 033961 jam 0 ,mem_usb_clear_remote_wakeup 
+0x7b50 033962 jam usb_resume ,mem_usb_state 
+0x7b51 033963 rtn 
+:      033966 usb_set_report:
+0x7b52 033967 bpatchx patch25_5 ,mem_patch25 
+0x7b53 033968 nop 15000 
+0x7b54 033969 arg mem_usb0_set_report_data ,contw 
+0x7b55 033970 call usb_rx_data 
+0x7b56 033971 jam 1 ,mem_usb0_get_set_report 
+0x7b57 033972 call usb_set_report_resume_judge 
+0x7b58 033973 fetch 2 ,mem_usb_setup_bvalue 
+0x7b59 033974 store 2 ,mem_usb_setup_bvalue_temp 
+0x7b5a 033975 jam 0x02 ,core_usb_clear_nak 
+0x7b5b 033977 fetch 1 ,mem_usb_tx_win_enable 
+0x7b5c 033978 rtn blank 
+0x7b5d 033979 fetch 1 ,mem_usb0_set_report_data 
+:      033980 usb_get_led_status:
+0x7b5e 033981 store 1 ,mem_24g_led_status 
+0x7b5f 033982 jam 0 ,mem_usb_tx_win_enable 
+0x7b60 033983 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+0x7b61 033984 rtn 
+:      033987 usb_set_report_resume_judge:
+0x7b62 033988 fetch 2 ,mem_usb_setup_bvalue 
+0x7b63 033989 arg pc_set_report_bvalue ,temp 
+0x7b64 033990 isub temp ,null 
+0x7b65 033991 nrtn zero 
+0x7b66 033992 fetch 2 ,mem_usb_setup_windex 
+0x7b67 033993 arg pc_set_report_windex ,temp 
+0x7b68 033994 isub temp ,null 
+0x7b69 033995 nrtn zero 
+0x7b6a 033996 fetch 2 ,mem_usb_setup_blength 
+0x7b6b 033997 arg pc_set_report_blength ,temp 
+0x7b6c 033998 isub temp ,null 
+0x7b6d 033999 nrtn zero 
+0x7b6e 034000 jam 1 ,mem_usb_tx_win_enable 
+0x7b6f 034001 rtn 
+:      034004 usb_set_protocol_req:
+0x7b70 034005 fetch 1 ,mem_usb_setup_blength 
+0x7b71 034006 bne 0 ,usb0_force_stall 
+0x7b72 034007 fetch 1 ,mem_usb_setup_bvalue 
+0x7b73 034008 beq boot_protocol ,usb_set_boot_protocol 
+0x7b74 034009 beq report_protocol ,usb_set_report_protocol 
+0x7b75 034010 branch usb0_force_stall 
+:      034011 usb_set_boot_protocol:
+0x7b76 034012 jam 0 ,mem_usb_set_protocol_status 
+0x7b77 034013 jam 1 ,mem_usb_set_protocol_value 
+0x7b78 034014 branch usb0_reply_zerolen 
+:      034015 usb_set_report_protocol:
+0x7b79 034016 jam 1 ,mem_usb_tx_mac_enable 
+0x7b7a 034017 jam 1 ,mem_usb_set_protocol_status 
+0x7b7b 034018 jam 0 ,mem_usb_set_protocol_value 
+0x7b7c 034019 branch usb0_reply_zerolen 
+:      034022 usb0_respond_length:
+0x7b7d 034023 ifetchr regb ,1 ,rega 
+0x7b7e 034024 increase 1 ,rega 
+:      034026 usb0_respond:
+0x7b7f 034027 bpatchx patch25_6 ,mem_patch25 
+0x7b80 034028 set1 mark_usb_first_resp ,mark 
+0x7b81 034029 bmark0 mark_isstr ,usb0_respond_nostr 
+0x7b82 034030 increase 1 ,regb 
+0x7b83 034031 lshift regb ,regb 
+:      034032 usb0_respond_nostr:
+0x7b84 034033 storer rega ,2 ,mem_bufptr 
+0x7b85 034034 storer regb ,1 ,mem_remain 
+0x7b86 034035 branch usb0_tx 
+0x7b87 034036 rtn 
+:      034038 usb_no_respond_data:
+0x7b88 034039 arg 0 ,queue 
+0x7b89 034040 branch usb_trig 
+:      034045 usb0_tx:
+0x7b8a 034046 bpatchx patch25_7 ,mem_patch25 
+0x7b8b 034047 fetch 1 ,core_usb_txbusy 
+0x7b8c 034048 rtnbit1 0 
+0x7b8d 034049 fetch 1 ,mem_remain 
+0x7b8e 034050 rtn blank 
+0x7b8f 034051 copy pdata ,loopcnt 
+0x7b90 034052 iforce temp 
+0x7b91 034053 fetch 2 ,mem_usb_setup_blength 
+0x7b92 034054 sub pdata ,ep0_packet_size ,null 
+0x7b93 034055 branch usb0_tx_short ,positive 
+0x7b94 034056 sub loopcnt ,ep0_packet_size ,null 
+0x7b95 034057 branch usb0_tx_info ,positive 
+0x7b96 034058 force ep0_packet_size ,loopcnt 
+0x7b97 034059 branch usb0_tx_info 
+:      034060 usb0_tx_short:
+0x7b98 034061 isub loopcnt ,null 
+0x7b99 034062 branch usb0_tx_info ,positive 
+0x7b9a 034063 iforce loopcnt 
+0x7b9b 034064 store 1 ,mem_remain 
+:      034065 usb0_tx_info:
+0x7b9c 034066 fetch 1 ,mem_remain 
+0x7b9d 034067 isub loopcnt ,pdata 
+0x7b9e 034068 store 1 ,mem_remain 
+0x7b9f 034069 add loopcnt ,-1 ,pdata 
+0x7ba0 034070 store 1 ,mem_usb_txbuf 
+0x7ba1 034071 bmark0 mark_isstr ,usb0_tx_nostr 
+0x7ba2 034072 rshift pdata ,pdata 
+0x7ba3 034073 add loopcnt ,-1 ,pdata 
+0x7ba4 034074 store 1 ,mem_usb_txbuf 
+0x7ba5 034075 bmark0 mark_usb_first_resp ,usb0_tx_nostr 
+0x7ba6 034076 set0 mark_usb_first_resp ,mark 
+0x7ba7 034077 istoret 1 ,contw 
+0x7ba8 034078 setarg 3 
+0x7ba9 034079 istore 1 ,contw 
+0x7baa 034080 increase -1 ,loopcnt 
+0x7bab 034081 copy loopcnt ,pdata 
+0x7bac 034082 nbranch usb0_tx_nostr ,zero 
+0x7bad 034083 increase 1 ,loopcnt 
+:      034084 usb0_tx_nostr:
+0x7bae 034085 fetch 2 ,mem_bufptr 
+0x7baf 034086 copy pdata ,contr 
+:      034087 usb0_tx0:
+0x7bb0 034088 ifetch 1 ,contr 
+0x7bb1 034089 istore 1 ,contw 
+0x7bb2 034090 bmark0 mark_isstr ,usb0_tx1 
+0x7bb3 034091 setarg 0 
+0x7bb4 034092 istore 1 ,contw 
+:      034093 usb0_tx1:
+0x7bb5 034094 loop usb0_tx0 
+0x7bb6 034095 copy contr ,pdata 
+0x7bb7 034096 store 2 ,mem_bufptr 
+0x7bb8 034097 setarg mem_usb_txbuf 
+0x7bb9 034098 store 2 ,core_usb_tx_saddr0 
+0x7bba 034099 arg 0 ,queue 
+0x7bbb 034100 call usb_trig 
+0x7bbc 034101 fetch 1 ,mem_remain 
+0x7bbd 034102 nrtn blank 
+0x7bbe 034103 jam 2 ,core_usb_clear_nak 
+0x7bbf 034104 fetch 1 ,mem_usb_state 
+0x7bc0 034105 rtnne usb_got_report_req 
+0x7bc1 034106 jam usb_connected ,mem_usb_state 
+0x7bc2 034107 rtn 
+:      034111 usb_tx_ep1:
+0x7bc3 034112 arg mem_usb_txbuf1 ,rega 
+0x7bc4 034113 arg 1 ,queue 
+0x7bc5 034114 storer rega ,2 ,core_usb_tx_saddr1 
+:      034115 usb_tx_buf:
+0x7bc6 034116 add loopcnt ,-1 ,pdata 
+0x7bc7 034117 istore 1 ,rega 
+:      034118 usb_tx_loop:
+0x7bc8 034119 ifetch 1 ,contr 
+0x7bc9 034120 istore 1 ,contw 
+0x7bca 034121 loop usb_tx_loop 
+:      034122 usb_trig:
+0x7bcb 034123 setarg 0 
+0x7bcc 034124 qset1 pdata 
+0x7bcd 034125 store 1 ,core_usb_trig 
+0x7bce 034126 rtn 
+:      034128 usb_tx_ep2:
+0x7bcf 034129 arg 2 ,queue 
+0x7bd0 034130 arg mem_usb_txbuf2 ,rega 
+0x7bd1 034131 storer rega ,2 ,core_usb_tx_saddr2 
+0x7bd2 034132 branch usb_tx_buf 
+:      034134 usb_tx:
+0x7bd3 034135 bpatchx patch26_0 ,mem_patch26 
+0x7bd4 034136 fetch 1 ,mem_usb_tx_enable 
+0x7bd5 034137 rtn blank 
+0x7bd6 034138 fetch 1 ,core_usb_txbusy 
+0x7bd7 034139 and_into 0x0f ,pdata 
+0x7bd8 034140 nbranch usb_inwake_state_tx_dispose ,blank 
+0x7bd9 034141 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x7bda 034142 branch usb_tx_fifo_release ,blank 
+0x7bdb 034143 fetch 1 ,mem_usb_state 
+0x7bdc 034144 beq usb_sleep ,usb_windows_wakeup 
+0x7bdd 034145 bne usb_connected ,usb_tx_fifo_release 
+0x7bde 034146 fetch 1 ,mem_usb_clear_remote_wakeup 
+0x7bdf 034147 nbranch usb_tx_fifo_release ,blank 
+0x7be0 034148 call usb_tx_data_ep1 
+0x7be1 034149 branch usb_tx_data_ep2 
+:      034151 usb_tx_data_ep1:
+0x7be2 034152 fetch 1 ,core_usb_txbusy 
+0x7be3 034153 rtnbit1 1 
+0x7be4 034154 fetch 1 ,mem_usb_tx_enable 
+0x7be5 034155 rtnbit0 1 
+0x7be6 034156 fetch 1 ,mem_usb_tx_enable 
+0x7be7 034157 set0 1 ,pdata 
+0x7be8 034158 store 1 ,mem_usb_tx_enable 
+0x7be9 034159 bpatchx patch26_1 ,mem_patch26 
+0x7bea 034160 fetch 1 ,mem_usb_ep1_data 
+0x7beb 034161 rtn blank 
+0x7bec 034162 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+0x7bed 034163 branch assert 
+:      034165 usb_tx_data_ep2:
+0x7bee 034166 fetch 1 ,core_usb_txbusy 
+0x7bef 034167 rtnbit1 2 
+0x7bf0 034168 fetch 1 ,mem_usb_tx_enable 
+0x7bf1 034169 rtnbit0 2 
+0x7bf2 034170 fetch 1 ,mem_usb_tx_enable 
+0x7bf3 034171 set0 2 ,pdata 
+0x7bf4 034172 store 1 ,mem_usb_tx_enable 
+0x7bf5 034173 bpatchx patch26_2 ,mem_patch26 
+0x7bf6 034174 fetch 1 ,mem_usb_ep2_data 
+0x7bf7 034175 rtn blank 
+0x7bf8 034176 beq usb_ep2_ms ,usb_tx_ms_data 
+0x7bf9 034177 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0x7bfa 034178 beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+0x7bfb 034179 beq usb_ep2_bit_consumer ,usb_tx_kb_bit_consumer_data 
+0x7bfc 034180 beq usb_ep2_n_key_rollover ,usb_tx_kb_n_key_rollover_data 
+0x7bfd 034181 branch assert 
+:      034183 usb_tx_fifo_release:
+0x7bfe 034185 arg mem_usb_mouse_data ,contw 
+0x7bff 034186 arg 64 ,loopcnt 
+0x7c00 034187 branch memset0 
+:      034189 usb_tx_ms_data:
+0x7c01 034190 fetch 1 ,mem_usb_idle_flag 
+0x7c02 034191 fetcht 1 ,mem_usb_get_protocol_flag 
+0x7c03 034192 iand temp ,pdata 
+0x7c04 034193 branch usb_tx_ms_data_normal_mode ,blank 
+0x7c05 034194 fetcht 1 ,mem_usb_set_protocol_status 
+0x7c06 034195 iadd temp ,pdata 
+0x7c07 034196 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
+0x7c08 034197 branch usb_tx_ms_data_normal_mode 
+:      034199 usb_tx_ms_data_mac_boot_mode:
+0x7c09 034200 jam 0 ,mem_usb_ep2_data 
+:      034201 usb_tx_ms_data_mac_boot_regroup:
+0x7c0a 034202 fetch 1 ,mem_usb_mouse_data + 1 
+0x7c0b 034203 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+0x7c0c 034204 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+0x7c0d 034205 fetch 1 ,mem_usb_mouse_data + 1 
+0x7c0e 034206 store 1 ,mem_usb_mouse_data 
+0x7c0f 034207 fetch 1 ,mem_usb_mouse_data + 2 
+0x7c10 034208 istore 1 ,contw 
+0x7c11 034209 fetch 1 ,mem_usb_mouse_data + 4 
+0x7c12 034210 istore 1 ,contw 
+0x7c13 034211 fetch 1 ,mem_usb_mouse_data + 6 
+0x7c14 034212 istore 1 ,contw 
+0x7c15 034213 arg 4 ,loopcnt 
+0x7c16 034214 arg mem_usb_mouse_data ,contr 
+0x7c17 034215 branch usb_tx_ep2 
+:      034217 usb_tx_ms_data_normal_mode:
+0x7c18 034218 jam 0 ,mem_usb_ep2_data 
+:      034219 usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+0x7c19 034220 arg 8 ,loopcnt 
+0x7c1a 034221 arg mem_usb_mouse_data ,contr 
+0x7c1b 034222 branch usb_tx_ep2 
+:      034224 usb_tx_kb_multikey_data:
+0x7c1c 034225 jam 0 ,mem_usb_ep2_data 
+0x7c1d 034226 arg 3 ,loopcnt 
+0x7c1e 034227 arg mem_usb_kb_multikey ,contr 
+0x7c1f 034228 branch usb_tx_ep2 
+:      034230 usb_tx_kb_normal_data:
+0x7c20 034231 fetch 1 ,mem_device_option 
+0x7c21 034232 beq dvc_op_keyboard ,keyboard_usb_tx_kb_normal_data 
+0x7c22 034233 jam 0 ,mem_usb_ep1_data 
+0x7c23 034234 arg 8 ,loopcnt 
+0x7c24 034235 arg mem_usb_kb_data ,contr 
+0x7c25 034236 branch usb_tx_ep1 
+:      034238 usb_tx_kb_systemkey_data:
+0x7c26 034239 jam 0 ,mem_usb_ep2_data 
+0x7c27 034240 arg 2 ,loopcnt 
+0x7c28 034241 arg mem_usb_kb_system ,contr 
+0x7c29 034242 branch usb_tx_ep2 
+:      034244 usb_tx_kb_bit_consumer_data:
+0x7c2a 034245 jam 0 ,mem_usb_ep2_data 
+0x7c2b 034246 arg 4 ,loopcnt 
+0x7c2c 034247 arg mem_usb_kb_multikey ,contr 
+0x7c2d 034248 branch usb_tx_ep2 
+:      034250 usb_tx_kb_n_key_rollover_data:
+0x7c2e 034251 jam 0 ,mem_usb_ep2_data 
+0x7c2f 034252 arg 15 ,loopcnt 
+0x7c30 034253 arg mem_usb_kb_n_key_rollvoer_data ,contr 
+0x7c31 034254 branch usb_tx_ep2 
+:      034257 usb_inwake_state_tx_dispose:
+0x7c32 034258 fetch 1 ,mem_usb_state 
+0x7c33 034259 beq usb_connected ,usb_mac_wakeup_trig 
+0x7c34 034260 rtn 
+:      034261 usb_mac_wakeup_trig:
+0x7c35 034262 fetch 1 ,core_usb_config 
+0x7c36 034263 set1 7 ,pdata 
+0x7c37 034264 store 1 ,core_usb_config 
+0x7c38 034265 jam 1 ,mem_usb_mac_wakeup_trig 
+0x7c39 034266 rtn 
+:      034268 usb_mac_wakeup_judge:
+0x7c3a 034269 fetch 1 ,mem_usb_state 
+0x7c3b 034270 rtneq usb_sleep 
+0x7c3c 034271 beq usb_connected ,usb_mac_wakeup 
+0x7c3d 034272 rtn 
+:      034273 usb_mac_wakeup:
+0x7c3e 034274 fetch 1 ,mem_usb_mac_wakeup_trig 
+0x7c3f 034275 rtn blank 
+0x7c40 034276 jam 1 ,mem_usb_wakestate_onetime_flag 
+0x7c41 034277 branch usb_wakeup 
+:      034279 usb_windows_wakeup:
+0x7c42 034280 arg usb_timer_wakeup ,queue 
+0x7c43 034281 call timer_check 
+0x7c44 034282 nrtn blank 
+:      034283 usb_wakeup:
+0x7c45 034284 fetch 1 ,core_usb_config 
+0x7c46 034285 rtnbit0 7 
+0x7c47 034286 jam 0xfc ,core_usb_config 
+0x7c48 034287 nop 30000 
+0x7c49 034288 jam 0x3c ,core_usb_config 
+0x7c4a 034289 rtn 
+:      034296 push_stack:
+0x7c4b 034297 storer contw ,2 ,mem_contw 
+0x7c4c 034298 storet 8 ,mem_temp 
+0x7c4d 034299 storer timeup ,4 ,mem_timeup 
+0x7c4e 034300 call push_stack_rega_b_c 
+0x7c4f 034301 storer contr ,2 ,mem_contr 
+0x7c50 034302 storer loopcnt ,2 ,mem_loopcnt 
+0x7c51 034303 storer queue ,2 ,mem_queue 
+0x7c52 034304 rtn 
+:      034306 push_stack_rega_b_c:
+0x7c53 034307 storer rega ,4 ,mem_rega 
+0x7c54 034308 storer regb ,4 ,mem_regb 
+0x7c55 034309 storer regc ,3 ,mem_regc 
+0x7c56 034310 rtn 
+:      034312 pop_stack:
+0x7c57 034313 bpatchx patch26_3 ,mem_patch26 
+0x7c58 034314 fetch 2 ,mem_contw 
+0x7c59 034315 iforce contw 
+0x7c5a 034316 fetcht 8 ,mem_temp 
+0x7c5b 034317 fetchr timeup ,4 ,mem_timeup 
+0x7c5c 034318 call pop_stack_rega_b_c 
+0x7c5d 034319 fetchr loopcnt ,2 ,mem_loopcnt 
+0x7c5e 034320 fetchr queue ,2 ,mem_queue 
+0x7c5f 034321 fetch 2 ,mem_contr 
+0x7c60 034322 iforce contr 
+0x7c61 034323 rtn 
+:      034325 pop_stack_rega_b_c:
+0x7c62 034326 fetchr rega ,4 ,mem_rega 
+0x7c63 034327 fetchr regb ,4 ,mem_regb 
+0x7c64 034328 fetchr regc ,3 ,mem_regc 
+0x7c65 034329 rtn 
+:      034331 get_contw:
+0x7c66 034332 fetch 2 ,mem_contw 
+:      034333 get_contw_end:
+0x7c67 034334 copy pdata ,contw 
+0x7c68 034335 rtn 
+:      034336 get_contr:
+0x7c69 034337 fetch 2 ,mem_contr 
+:      034338 get_contr_end:
+0x7c6a 034339 copy pdata ,contr 
+0x7c6b 034340 rtn 
+:      034342 store_contw:
+0x7c6c 034343 copy contw ,pdata 
+0x7c6d 034344 store 2 ,mem_contw 
+0x7c6e 034345 rtn 
+:      034346 store_contr:
+0x7c6f 034347 copy contr ,pdata 
+0x7c70 034348 store 2 ,mem_contr 
+0x7c71 034349 rtn 
+:      034353 save_cont_pointers:
+0x7c72 034354 copy contw ,pdata 
+0x7c73 034355 store 2 ,mem_contw 
+0x7c74 034356 copy contr ,pdata 
+0x7c75 034357 store 2 ,mem_contr 
+0x7c76 034358 rtn 
+:      034360 load_cont_pointers:
+0x7c77 034361 fetch 2 ,mem_contw 
+0x7c78 034362 copy pdata ,contw 
+0x7c79 034363 fetch 2 ,mem_contr 
+0x7c7a 034364 copy pdata ,contr 
+0x7c7b 034365 rtn 
+:      034370 get_diff:
+0x7c7c 034371 isub temp ,rega 
+0x7c7d 034372 rtn positive 
+0x7c7e 034373 arg 0x100 ,rega 
+0x7c7f 034374 iadd rega ,pdata 
+0x7c80 034375 isub temp ,rega 
+0x7c81 034376 rtn 
+:      034378 memcpy96:
+0x7c82 034379 call memcpy32 
+:      034380 memcpy64:
+0x7c83 034381 call memcpy32 
+0x7c84 034382 branch memcpy32 
+:      034385 memcpy12:
+0x7c85 034386 call memcpy8 
+:      034387 memcpy4:
+0x7c86 034388 ifetch 1 ,contr 
+0x7c87 034389 istore 1 ,contw 
+:      034390 memcpy3:
+0x7c88 034391 ifetch 3 ,contr 
+0x7c89 034392 istore 3 ,contw 
+0x7c8a 034393 rtn 
+:      034394 memcpy8:
+0x7c8b 034395 ifetch 8 ,contr 
+0x7c8c 034396 istore 8 ,contw 
+0x7c8d 034397 rtn 
+:      034399 memcpy48:
+0x7c8e 034400 call memcpy16 
+:      034401 memcpy32:
+0x7c8f 034402 call memcpy8 
+:      034403 memcpy24:
+0x7c90 034404 call memcpy8 
+:      034405 memcpy16:
+0x7c91 034406 call memcpy8 
+0x7c92 034407 branch memcpy8 
+:      034409 delay:
+0x7c93 034410 increase -1 ,pdata 
+0x7c94 034411 nop 38 
+0x7c95 034412 nbranch delay ,blank 
+0x7c96 034413 rtn 
+:      034416 delay_10ms:
+0x7c97 034417 arg 10 ,loopcnt 
+:      034418 delay_ms_wait:
+0x7c98 034419 nop 12000 
+0x7c99 034420 loop delay_ms_wait 
+0x7c9a 034421 rtn 
+:      034424 memset0_16:
+0x7c9b 034425 call memset0_8 
+:      034426 memset0_8:
+0x7c9c 034427 call memset0_4 
+:      034428 memset0_4:
+0x7c9d 034429 force 4 ,loopcnt 
+0x7c9e 034430 branch memset0 
+:      034432 clear_mem_256:
+0x7c9f 034433 force 32 ,loopcnt 
+0x7ca0 034434 branch memset0 
+:      034435 clear_mem_512:
+0x7ca1 034436 force 64 ,loopcnt 
+0x7ca2 034437 branch memset0 
+:      034439 clear_mem:
+0x7ca3 034440 deposit loopcnt 
+0x7ca4 034441 rtn blank 
+:      034442 memset0:
+0x7ca5 034443 force 0 ,pdata 
+0x7ca6 034444 lstore contw 
+0x7ca7 034445 rtn 
+:      034447 clear_temp_block:
+0x7ca8 034448 arg 32 ,loopcnt 
+0x7ca9 034449 arg mem_temp_block0 ,contw 
+0x7caa 034450 branch clear_mem 
+:      034452 xor_loop:
+0x7cab 034453 ifetch 4 ,regc 
+0x7cac 034454 ifetcht 4 ,rega 
+0x7cad 034455 ixor temp ,pdata 
+0x7cae 034456 istore 4 ,contw 
+0x7caf 034457 increase 4 ,rega 
+0x7cb0 034458 increase 4 ,regc 
+0x7cb1 034459 loop xor_loop 
+0x7cb2 034460 rtn 
+:      034464 inverse_data:
+0x7cb3 034465 bpatchx patch26_4 ,mem_patch26 
+0x7cb4 034466 copy loopcnt ,pdata 
+0x7cb5 034467 sub pdata ,1 ,null 
+0x7cb6 034468 rtn positive 
+0x7cb7 034469 iadd rega ,regb 
+0x7cb8 034470 increase -1 ,regb 
+0x7cb9 034471 rshift loopcnt ,loopcnt 
+:      034472 inverse_loop:
+0x7cba 034473 ifetcht 1 ,rega 
+0x7cbb 034474 ifetch 1 ,regb 
+0x7cbc 034475 istore 1 ,rega 
+0x7cbd 034476 istoret 1 ,regb 
+0x7cbe 034477 increase -1 ,regb 
+0x7cbf 034478 increase 1 ,rega 
+0x7cc0 034479 loop inverse_loop 
+0x7cc1 034480 rtn 
+:      034482 le2be_6byte:
+:      034483 inverse_data_6byte:
+0x7cc2 034484 rshift32 pdata ,temp 
+0x7cc3 034485 call inverse_data_4byte 
+0x7cc4 034486 byteswap temp ,temp 
+0x7cc5 034487 lshift16 pdata ,pdata 
+0x7cc6 034488 ior temp ,pdata 
+0x7cc7 034489 rtn 
+:      034492 le2be_4byte:
+:      034493 inverse_data_4byte:
+0x7cc8 034494 rshift16 pdata ,contr 
+0x7cc9 034495 byteswap contr ,contr 
+0x7cca 034496 byteswap pdata ,pdata 
+0x7ccb 034497 lshift16 pdata ,pdata 
+0x7ccc 034498 ior contr ,pdata 
+0x7ccd 034499 rtn 
+:      034502 memcpy_fast:
+0x7cce 034503 bpatchx patch26_5 ,mem_patch26 
+0x7ccf 034504 deposit loopcnt 
+0x7cd0 034505 rtn blank 
+:      034506 memcpy_fast_loop:
+0x7cd1 034507 increase -8 ,loopcnt 
+0x7cd2 034508 call memcpy8 ,positive 
+0x7cd3 034509 rtn zero 
+0x7cd4 034510 branch memcpy_fast_loop ,positive 
+0x7cd5 034511 increase 8 ,loopcnt 
+:      034512 memcpy_fast_loop_four:
+0x7cd6 034513 increase -4 ,loopcnt 
+0x7cd7 034514 call memcpy4 ,positive 
+0x7cd8 034515 rtn zero 
+0x7cd9 034516 branch memcpy_fast_loop_four ,positive 
+0x7cda 034517 increase 4 ,loopcnt 
+0x7cdb 034518 branch memcpy 
+:      034520 memcpy:
+0x7cdc 034521 deposit loopcnt 
+0x7cdd 034522 rtn blank 
+:      034523 memcpy_loop:
+0x7cde 034524 ifetch 1 ,contr 
+0x7cdf 034525 istore 1 ,contw 
+0x7ce0 034526 loop memcpy_loop 
+0x7ce1 034527 rtn 
+:      034529 timer_stop:
+0x7ce2 034530 setarg 0 
+:      034531 timer_init:
+0x7ce3 034534 store 2 ,mem_pdatatemp 
+0x7ce4 034535 bpatchx patch26_6 ,mem_patch26 
+0x7ce5 034536 call timer_check 
+0x7ce6 034537 fetcht 2 ,mem_pdatatemp 
+0x7ce7 034538 arg mem_timers ,contw 
+0x7ce8 034540 lshift queue ,pdata 
+0x7ce9 034541 iadd contw ,contw 
+0x7cea 034542 istoret 2 ,contw 
+0x7ceb 034543 rtn 
+:      034545 timer_check_timeout:
+0x7cec 034546 arg 0x800 ,timeup 
+0x7ced 034547 lshift16 timeup ,timeup 
+0x7cee 034548 iadd timeup ,pdata 
+0x7cef 034549 rtn 
+:      034552 timer_reinit:
+0x7cf0 034553 arg 0 ,queue 
+:      034554 timer_check:
+0x7cf1 034555 bpatchx patch26_7 ,mem_patch26 
+0x7cf2 034556 fetcht 4 ,mem_last_clkn 
+0x7cf3 034557 rshift clkn_bt ,pdata 
+0x7cf4 034558 store 4 ,mem_last_clkn 
+0x7cf5 034559 isub temp ,null 
+0x7cf6 034560 ncall timer_check_timeout ,positive 
+0x7cf7 034561 isub temp ,timeup 
+0x7cf8 034562 copy timeup ,temp 
+0x7cf9 034563 arg mem_timers ,contr 
+0x7cfa 034564 copy contr ,contw 
+0x7cfb 034565 arg 16 ,loopcnt 
+:      034566 timer_loop:
+0x7cfc 034567 ifetch 2 ,contr 
+0x7cfd 034568 isub temp ,pdata 
+0x7cfe 034569 branch timer_counting ,positive 
+0x7cff 034570 force 0 ,pdata 
+:      034571 timer_counting:
+0x7d00 034572 istore 2 ,contw 
+0x7d01 034573 loop timer_loop 
+0x7d02 034574 arg mem_timers ,contr 
+0x7d03 034575 lshift queue ,pdata 
+0x7d04 034576 iadd contr ,contr 
+0x7d05 034577 ifetch 2 ,contr 
+0x7d06 034578 rtn 
+:      034583 clk_add:
+0x7d07 034584 iadd temp ,temp 
+0x7d08 034585 copy temp ,loopcnt 
+0x7d09 034586 fetch 2 ,mem_param_rt_rthalfslot 
+0x7d0a 034587 isub loopcnt ,pdata 
+0x7d0b 034588 rtn positive 
+0x7d0c 034589 sub pdata ,0 ,pdata 
+0x7d0d 034590 rshift16 temp ,temp 
+0x7d0e 034591 increase 1 ,temp 
+0x7d0f 034592 lshift16 temp ,temp 
+0x7d10 034593 ior temp ,temp 
+0x7d11 034594 rtn 
+:      034596 clk_diff_rt:
+0x7d12 034597 call clk_diff 
+0x7d13 034598 branch clk2rt 
+:      034601 clk_diff:
+0x7d14 034602 disable user 
+0x7d15 034603 isub temp ,pdata 
+0x7d16 034604 branch clk_diff_pos ,positive 
+0x7d17 034605 enable user 
+0x7d18 034606 sub pdata ,0 ,pdata 
+:      034607 clk_diff_pos:
+0x7d19 034608 rtnbit0 15 
+0x7d1a 034609 copy pdata ,regab 
+0x7d1b 034610 arg 0x10000 ,temp 
+0x7d1c 034611 fetch 2 ,mem_param_rt_rthalfslot 
+0x7d1d 034612 isub temp ,pdata 
+0x7d1e 034613 iadd regab ,pdata 
+0x7d1f 034614 set0 64 ,pdata 
+0x7d20 034615 rtn 
+:      034619 clk2rt:
+0x7d21 034620 fetcht 2 ,mem_param_rt_rthalfslot 
+0x7d22 034621 iforce contr 
+0x7d23 034622 rshift16 pdata ,pdata 
+0x7d24 034623 imul32 temp ,pdata 
+0x7d25 034624 iadd contr ,pdata 
+0x7d26 034625 rtn 
+:      034628 clk2lpo:
+0x7d27 034629 lshift8 pdata ,pdata 
+0x7d28 034630 lshift4 pdata ,pdata 
+0x7d29 034631 fetcht 3 ,mem_clks_per_lpo 
+0x7d2a 034632 idiv temp 
+0x7d2b 034633 call wait_div_end 
+0x7d2c 034634 quotient temp 
+0x7d2d 034635 rtn 
+:      034638 clk2bt:
+0x7d2e 034639 fetcht 2 ,mem_param_rt_rthalfslot 
+0x7d2f 034640 idiv temp 
+0x7d30 034641 call get_div_result 
+0x7d31 034642 lshift16 pdata ,pdata 
+0x7d32 034643 remainder temp 
+0x7d33 034644 ior temp ,temp 
+0x7d34 034645 rtn 
+:      034652 string2dec_from_uart:
+0x7d35 034653 arg 0 ,temp 
+:      034654 string2dec_from_uart_done:
+0x7d36 034655 copy temp ,regab 
+0x7d37 034656 ifetch 1 ,contu 
+0x7d38 034657 call uchar2dialog 
+0x7d39 034658 copy regab ,temp 
+0x7d3a 034659 call swap 
+0x7d3b 034660 arg 10 ,regb 
+0x7d3c 034661 imul32 regb ,pdata 
+0x7d3d 034662 iadd temp ,pdata 
+0x7d3e 034663 copy pdata ,temp 
+0x7d3f 034664 loop string2dec_from_uart_done 
+0x7d40 034665 rtn 
+:      034669 uchar2dialog:
+0x7d41 034670 arg 0x3a ,temp 
+0x7d42 034671 isub temp ,null 
+0x7d43 034672 nbranch uchar2dialog_number ,positive 
+0x7d44 034673 arg 0x61 ,temp 
+0x7d45 034674 isub temp ,null 
+0x7d46 034675 branch uchar2dialog_a2f ,positive 
+0x7d47 034676 arg 0x37 ,temp 
+0x7d48 034677 isub temp ,pdata 
+0x7d49 034678 rtn 
+:      034679 uchar2dialog_number:
+0x7d4a 034680 arg 0x30 ,temp 
+0x7d4b 034681 isub temp ,pdata 
+0x7d4c 034682 rtn 
+:      034683 uchar2dialog_a2f:
+0x7d4d 034684 arg 0x57 ,temp 
+0x7d4e 034685 isub temp ,pdata 
+0x7d4f 034686 rtn 
+:      034689 right_shift_n:
+0x7d50 034690 sub loopcnt ,0 ,null 
+0x7d51 034691 rtn zero 
+:      034692 right_shift_n_loop:
+0x7d52 034693 rshift pdata ,pdata 
+0x7d53 034694 loop right_shift_n_loop 
+0x7d54 034695 rtn 
+:      034698 left_shift_n:
+0x7d55 034699 force 1 ,pdata 
+0x7d56 034700 sub loopcnt ,0 ,null 
+0x7d57 034701 rtn zero 
+:      034702 left_shift_n_loop:
+0x7d58 034703 lshift pdata ,pdata 
+0x7d59 034704 loop left_shift_n_loop 
+0x7d5a 034705 rtn 
+:      034709 calc_average:
+0x7d5b 034710 setarg 0 
+0x7d5c 034711 copy loopcnt ,rega 
+:      034712 calc_average_loop:
+0x7d5d 034713 ifetcht 2 ,contr 
+0x7d5e 034714 iadd temp ,pdata 
+0x7d5f 034715 loop calc_average_loop 
+0x7d60 034716 idiv rega 
+:      034717 get_div_result:
+0x7d61 034718 call wait_div_end 
+0x7d62 034719 quotient pdata 
+0x7d63 034720 rtn 
+:      034722 wait_div_end:
+0x7d64 034723 rtn modone 
+0x7d65 034724 branch wait_div_end 
+:      034734 compare_loop:
+:      034735 string_compare:
+0x7d66 034736 ifetch 1 ,rega 
+0x7d67 034737 ifetcht 1 ,regb 
+0x7d68 034738 isub temp ,null 
+0x7d69 034739 nrtn zero 
+0x7d6a 034740 increase 1 ,rega 
+0x7d6b 034741 increase 1 ,regb 
+0x7d6c 034742 loop string_compare 
+0x7d6d 034743 branch enable_zero 
+:      034747 ceiling:
+0x7d6e 034748 isub temp ,null 
+0x7d6f 034749 nrtn positive 
+0x7d70 034750 deposit temp 
+0x7d71 034751 rtn 
+:      034753 swap:
+0x7d72 034754 iadd temp ,pdata 
+0x7d73 034755 isub temp ,temp 
+0x7d74 034756 isub temp ,pdata 
+0x7d75 034757 rtn 
+:      034759 clean_smem:
+0x7d76 034760 arg 0 ,contw 
+0x7d77 034761 branch clean_mem 
+:      034763 clean_xmem:
+0x7d78 034764 arg 0x4000 ,contw 
+:      034765 clean_mem:
+0x7d79 034766 arg 0x1000 ,loopcnt 
+0x7d7a 034767 branch memset0 
+:      034770 callback_func:
+0x7d7b 034771 rtn blank 
+0x7d7c 034772 copy pdata ,pc 
+:      034775 ice_break_disable_wdt:
+0x7d7d 034776 call wdt_set_disable 
+:      034778 ice_break:
+0x7d7e 034779 jam 0x1 ,core_ice_ctrl 
+0x7d7f 034780 rtn 
+:      034782 ice_setbp:
+0x7d80 034783 store 2 ,core_ice_break0 
+0x7d81 034784 fetch 1 ,core_ice_ctrl 
+0x7d82 034785 set1 4 ,pdata 
+0x7d83 034786 store 1 ,core_ice_ctrl 
+0x7d84 034787 rtn 
+:      034788 ice_setbp2:
+0x7d85 034789 store 2 ,core_ice_break1 
+0x7d86 034790 fetch 1 ,core_ice_ctrl 
+0x7d87 034791 set1 6 ,pdata 
+0x7d88 034792 store 1 ,core_ice_ctrl 
+0x7d89 034793 rtn 
+:      034795 ice_set_write_bp:
+0x7d8a 034796 store 2 ,core_ice_break0 
+0x7d8b 034797 jam 0x30 ,core_ice_ctrl 
+0x7d8c 034798 rtn 
+:      034806 fifo_in:
+0x7d8d 034807 bpatchx patch27_0 ,mem_patch27 
+0x7d8e 034808 ifetcht util_fifo_len ,rega 
+0x7d8f 034809 and temp ,0xff ,pdata 
+0x7d90 034810 nbranch fifo_in_push ,blank 
+0x7d91 034811 rshift8 temp ,pdata 
+0x7d92 034812 istore util_fifo_len ,rega 
+:      034813 fifo_in_push:
+0x7d93 034814 increase util_fifo_len + util_fifo_offset ,rega 
+0x7d94 034815 ifetch 1 ,rega 
+0x7d95 034816 nbranch assert ,blank 
+0x7d96 034817 fetch 1 ,mem_fifo_temp 
+0x7d97 034818 istore 1 ,rega 
+0x7d98 034819 rtn 
+:      034824 fifo_out:
+0x7d99 034825 bpatchx patch27_1 ,mem_patch27 
+0x7d9a 034826 arg util_fifo_len ,loopcnt 
+0x7d9b 034827 ifetch util_fifo_len ,rega 
+0x7d9c 034828 rtn blank 
+:      034829 fifo_out_loop:
+0x7d9d 034830 ifetch 1 ,rega 
+0x7d9e 034831 nbranch fifo_out_end ,blank 
+0x7d9f 034832 increase 1 ,rega 
+0x7da0 034833 loop fifo_out_loop 
+0x7da1 034834 branch assert 
+:      034835 fifo_out_end:
+0x7da2 034836 arg 0 ,temp 
+0x7da3 034837 istoret 1 ,rega 
+0x7da4 034838 rtn 
+:      034843 fifo_is_empty:
+0x7da5 034844 ifetch util_fifo_len ,rega 
+0x7da6 034845 rtn 
+:      034850 fifo_is_full:
+0x7da7 034851 ifetch 1 ,rega 
+0x7da8 034852 rtn 
+:      034855 fifo_is_near_full:
+0x7da9 034856 ifetch 2 ,rega 
+0x7daa 034857 rtn 
+:      034861 fifo_content_count:
+0x7dab 034862 arg 0 ,temp 
+:      034863 fifo_content_count_loop:
+0x7dac 034864 fetch 1 ,contr 
+0x7dad 034865 loop fifo_content_count_loop ,blank 
+0x7dae 034866 increase 1 ,temp 
+0x7daf 034867 loop fifo_content_count_loop 
+0x7db0 034868 copy temp ,pdata 
+0x7db1 034869 rtn 
+:      034872 not_greater_than:
+0x7db2 034873 isub temp ,null 
+0x7db3 034874 nrtn positive 
+:      034875 copy_temp2pdata:
+0x7db4 034876 copy temp ,pdata 
+0x7db5 034877 rtn 
+:      034880 disable_positive:
+0x7db6 034881 force -1 ,null 
+0x7db7 034882 rtn 
+:      034883 enable_positive:
+:      034884 disable_zero:
+0x7db8 034885 force 1 ,null 
+0x7db9 034886 rtn 
+:      034887 enable_zero:
+0x7dba 034888 force 0 ,null 
+0x7dbb 034889 rtn 
+:      034891 enable_user:
+0x7dbc 034892 enable user 
+0x7dbd 034893 rtn 
+:      034895 disable_user:
+0x7dbe 034896 disable user 
+0x7dbf 034897 rtn 
+:      034899 enable_user2:
+0x7dc0 034900 enable user2 
+0x7dc1 034901 rtn 
+:      034903 disable_user2:
+0x7dc2 034904 disable user2 
+0x7dc3 034905 rtn 
+:      034907 enable_user7:
+0x7dc4 034908 enable user7 
+0x7dc5 034909 rtn 
+:      034911 disable_true:
+0x7dc6 034912 disable true 
+0x7dc7 034913 rtn 
+:      034915 enable_true:
+0x7dc8 034916 enable true 
+0x7dc9 034917 rtn 
+:      034919 disable_blank:
+0x7dca 034920 setarg 1 
+0x7dcb 034921 rtn 
+:      034923 enable_blank:
+:      034924 set_pdata_0:
+0x7dcc 034925 setarg 0 
+0x7dcd 034926 rtn 
+:      034928 istore_1_contw_rtn:
+0x7dce 034929 istore 1 ,contw 
+0x7dcf 034930 rtn 
+:      034934 cal_sum:
+0x7dd0 034935 sub loopcnt ,0 ,null 
+0x7dd1 034936 rtn zero 
+:      034937 cal_sum_loop:
+0x7dd2 034938 ifetcht 1 ,contr 
+0x7dd3 034939 iadd temp ,pdata 
+0x7dd4 034940 loop cal_sum_loop 
+0x7dd5 034941 rtn 
+:      034944 reverse_byte:
+0x7dd6 034945 copy loopcnt ,pdata 
+0x7dd7 034946 rtn blank 
+0x7dd8 034947 copy contr ,pdata 
+0x7dd9 034948 iadd loopcnt ,pdata 
+0x7dda 034949 increase -1 ,pdata 
+0x7ddb 034950 copy pdata ,contr 
+:      034951 reverse_loop:
+0x7ddc 034952 ifetch 1 ,contr 
+0x7ddd 034953 increase -2 ,contr 
+0x7dde 034954 istore 1 ,contw 
+0x7ddf 034955 loop reverse_loop 
+0x7de0 034956 rtn 
+:      034959 lshift14:
+0x7de1 034960 lshift16 pdata ,pdata 
+:      034961 rshift2:
+0x7de2 034962 rshift2 pdata ,pdata 
+0x7de3 034963 rtn 
+:      034965 lshift6:
+0x7de4 034966 lshift8 pdata ,pdata 
+0x7de5 034967 branch rshift2 
+:      034970 clear_wake:
+0x7de6 034971 bpatchx patch27_2 ,mem_patch27 
+0x7de7 034972 setarg 0 
+0x7de8 034973 set1 21 ,pdata 
+0x7de9 034974 store 8 ,mem_gpio_wakeup_cfg 
+0x7dea 034975 setarg 0 
+0x7deb 034976 istore 4 ,contw 
+0x7dec 034977 rtn 
+:      034980 generate_random:
+0x7ded 034981 arg 16 ,loopcnt 
+:      034982 generate_random_loop:
+0x7dee 034983 random pdata 
+0x7def 034984 istore 1 ,contw 
+0x7df0 034985 loop generate_random_loop 
+0x7df1 034986 rtn 
Index: GK308_keyboard_only_24g/output/bt_program23.meta
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.meta	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.meta	(working copy)
@@ -0,0 +1,34987 @@
+//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_REMOTE_CAR
+define COMPILE_REMOTE_CONTROL
+//define COMPILE_WECHAT
+//define COMPLIE_TEST
+//define COMPLIE_ADPCM
+
+INCLUDE "bt_format"
+
+org 0x0000		// start from patch ram address start
+
+
+	bbit1 8,pf_patch_ext
+	//beq patch00_0,p_soft_reset	
+	beq patch03_2,p_initialize_radio_cont
+	beq patch05_0,p_lpm_dispatch
+	beq patch07_6,p_keyboard_setting_config_next
+	beq patch08_0,p_keyboard_store_device_info
+	beq patch08_3,p_keyboard_bb_event_timer
+	beq patch08_4,p_keyboard_adc_vol_init
+	beq patch09_1,p_keyboard_idle
+	beq patch09_4,p_kscan_dispatch
+	beq patch0a_4,p_keyboard_commbination_key_press_check
+	beq patch0a_6,p_keyboard_long_button_bt_discovery
+	beq patch0b_1,p_keyboard_motion_data_check
+	beq patch0b_4,p_keyboard_value_tpye_consumer_set
+	beq patch0d_2,p_keyboard_le_parse_att
+	beq patch0f_4,p_keyboard_app_enter_hibernate
+	beq patch10_2,p_mouse_adc_bat_percent_lowpower_out
+	beq patch14_3,keyboard_24g_hibernate_set
+	beq patch1d_1,p_otp_write
+	beq patch1d_2,p_otp_read_data
+	beq patch19_7,p_keyboard_init
+	beq patch1f_2,p_gpio_set_wake_by_current_state
+	branch assert
+pf_patch_ext:
+	beq patch35_5,p_g24_pair_sm_common
+	beq patch37_5,p_g24_reconn_dispatch_next
+	beq patch38_2,p_g24_transmit_no_interrupt
+	beq patch3e_3,p_initialize_radio2
+	rtneq patch3f_7
+	branch assert
+
+p_initialize_radio2:
+//	bpatchx patch3e_3,mem_patch3e
+	until null,lpo_edge
+	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
+	call set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	// jam 0x1e,0x8a30
+	// jam 0xdd,0x8a32
+	// jam 0xe4,0x8a88
+	// jam 0x2d,0x8a8c
+	call sadc_calibration
+	call dpll_ring_ibias_calc
+	branch set_bistfix_save_patchram
+
+p_soft_reset:
+	nbranch p_soft_reset_next,wake
+	until null,lpo_edge
+	until null,lpo_edge
+p_soft_reset_next:	
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_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+1
+/////////////////////////////
+p_g24_pair_sm_common:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch g24_pair_sm_common+12
+	
+p_g24_reconn_dispatch_next:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch p_keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+
+p_keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call p_keyboard_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+p_keyboard_g24_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
+	store 1,mem_keyboard_led_status
+	rtn
+
+p_initialize_radio_cont:
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+//	jam 0x10,0x8a06
+	fetch 1,0x8a06
+	and pdata,0xfc,pdata
+	store 1,0x8a06
+	branch initialize_radio_cont+6
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data1
+	branch otp_disable_chgpump
+
+
+p_otp_write:
+	//bpatch patch1d_1,mem_patch1d
+	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_gpio_set_wake_by_current_state:
+	set1 gpio_active_bit,temp
+	call gpio_get_bit
+	nsetflag true,gpio_active_bit,temp
+	branch gpio_set_wake
+
+//
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_device_direct_timer
+	nrtn blank
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+p_keyboard_init:
+	//jam 0x0a,mem_lpm_overhead
+	//jam 0x3e,0x80db
+	//jam 0x3e,0x807c
+	call app_param_init
+	call enable_authrom
+	call p_keyboard_setting_config
+	call p_keyboard_led_reuse_judge
+	branch keyboard_init+2
+
+p_keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call p_keyboard_param_init
+	jam 0x0a,mem_lpm_overhead
+	branch keyboard_setting_config+4
+
+p_keyboard_param_init:
+	call keyboard_compare_addr_init
+	call p_keyboard_param_common_init
+	branch	keyboard_param_init+2
+
+p_keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg mem_keyboard_le_table
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+p_keyboard_led_reuse_judge:
+	fetch 1,mem_keyboard_low_voltage_alarm_gpio
+	fetcht 1,mem_keyboard_caps_led_gpio
+	isub temp,null
+	call p_keyboard_caps_led_reuse,zero
+	fetch 1,mem_keyboard_low_voltage_alarm_gpio
+	fetcht 1,mem_keyboard_num_led_gpio
+	isub temp,null
+	call p_keyboard_num_led_reuse,zero
+	fetch 1,mem_keyboard_low_voltage_alarm_gpio
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	isub temp,null
+	branch p_keyboard_scroll_led_reuse,zero
+	rtn
+
+p_keyboard_caps_led_reuse:
+	fetch 1,mem_keyboard_reuse_led_bit
+	set1 KB_PC_KEYSEL_CAPSLOCK,pdata
+	store 1,mem_keyboard_reuse_led_bit
+	rtn
+p_keyboard_num_led_reuse:
+	fetch 1,mem_keyboard_reuse_led_bit
+	set1 KB_PC_KEYSEL_NUMLOCK,pdata
+	store 1,mem_keyboard_reuse_led_bit
+	rtn
+p_keyboard_scroll_led_reuse:
+	fetch 1,mem_keyboard_reuse_led_bit
+	set1 KB_PC_KEYSEL_SCROLLLOCK,pdata
+	store 1,mem_keyboard_reuse_led_bit
+	rtn
+p_keyboard_store_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_store_otp_device_info
+	branch keyboard_store_device_info+1
+
+p_keyboard_store_otp_device_info:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	rtn positive
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+	
+p_keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fb0
+	// fetch 2,mem_keyboard_otp_storage_start_address
+	// branch keyboard_store_otp_device_info_g24+2
+	isub temp,regb
+	arg mem_device_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
+
+p_keyboard_device_led_all_off:
+	call keyboard_power_led_off
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	call keyboard_capslock_led_off
+	branch keyboard_scrolllock_led_off
+
+p_kscan_dispatch:
+	call p_keyboard_keyscan
+	call p_keyboard_key_process
+	branch kscan_dispatch+3
+
+p_keyboard_keyscan:
+	call keyboard_gpio_init
+	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
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+	branch keyboard_keyscan_wait_wake_next
+
+p_keyboard_bb_event_timer:
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	
+	//key
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	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
+
+	//le
+	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 keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+
+	
+	//led
+	call p_keyboard_led_dispatch_timer
+
+	branch keyboard_check_no_data_timeout_timer
+
+p_keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,p_keyboard_device_select_g24_press_timer
+	call p_keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+
+p_keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+p_keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+
+p_keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call p_keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_store_device_number:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,mouse_write_otp_device_flag
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_device_number
+	rtn
+
+p_keyboard_long_button_bt_discovery:
+	branch keyboard_long_button_bt_discovery+2
+
+/////////////////////////////////////store otp///////////////////////////////////////
+p_keyboard_setting_config_next:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	//bbit1 KEYBOARD_ENABLE_2K_EEPROM,p_keyboard_load_2k_eeprom_info
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_load_otp_info
+	branch keyboard_setting_config+11
+
+p_keyboard_load_2k_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,p_keyboard_load_2k_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch p_keyboard_load_2k_eeprom_info,true
+p_keyboard_load_2k_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+	branch keyboard_load_info_check
+p_keyboard_load_otp_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_load_otp_device_info_g24_init
+	branch keyboard_load_otp_info+2
+
+p_keyboard_load_otp_device_info_g24_init:
+	arg 8,regd
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fac,pdata
+	// fetch 2,mem_keyboard_otp_storage_start_address
+	arg 4,temp
+	arg 4,rege
+	branch p_keyboard_load_otp_device_info
+
+p_keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp	//4
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+p_keyboard_load_otp_info_check_page_loop:
+
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp //4
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+
+	branch p_keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_page_loop
+
+p_keyboard_load_otp_info_check_first_time:
+	sub regc,0,null
+	branch p_keyboard_load_otp_info_check_first_time_process,zero
+p_keyboard_load_otp_info_check_first_time_loop_init:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+p_keyboard_load_otp_info_check_first_time_loop:
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+	branch p_keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_first_time_loop
+
+p_keyboard_load_otp_info_check_first_time_process:
+	storer rege,1,mem_otp_read_retention_offset
+	rtn
+p_keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fb0
+	// fetch 2,mem_keyboard_otp_storage_start_address
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,keyboard_load_otp_info_check_offset_process_ble
+	rtn
+///////////////////////////ATT fix//////////////////////
+p_keyboard_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,p_keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2	
+
+p_keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	// fetch 2,mem_le_att_offset
+	// sub pdata,66,null
+	//nbranch keyboard_le_send_att_read_blob_response,zero
+	branch keyboard_le_send_att_read_blob_response
+//////////////////////////////////////motion/////////////////////////////////////
+p_keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,p_keyboard_value_consumer_release
+	branch keyboard_motion_data_check+3
+
+//////////////////////////////////////media/////////////////////////////////////
+p_keyboard_value_tpye_consumer_set:
+	copy temp,pdata
+	jam HID_REPORTID_BIT_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,p_keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,p_keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,p_keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,p_keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,p_keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,p_keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,p_keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,p_keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,p_keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,p_keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,p_keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,p_keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,p_keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,p_keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,p_keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,p_keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,p_keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,p_keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,p_keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,p_keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,p_keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,p_keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,p_keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,p_keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+	
+p_keyboard_value_consumer_all_key_release:
+p_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
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_24g_consumer_release
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_24g_consumer_release:
+	setarg HID_REPORTID_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_media:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_media
+	setarg 0x0183
+
+p_keyboard_24g_standard_data_send:
+	store 2,mem_keyboard_tx_data+1
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_vol_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_down
+	setarg 0x00ea
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_vol_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_up
+	setarg 0x00e9
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mute:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mute
+	setarg 0x00e2
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_pre_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_pre_track
+	setarg 0x00b6
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_next_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_next_track
+	setarg 0x00b5
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_play:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_play
+	setarg 0x00cd
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_stop
+	setarg 0x00b7
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_home:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_home
+	setarg 0x0223
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mail:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mail
+	setarg 0x018a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_my_computer:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_my_computer
+	setarg 0x0194
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_favorites:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_favorites
+	setarg 0x022a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_calculator:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_calculator
+	setarg 0x0192
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_search:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_search
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,p_keyboard_value_ac_home
+	setarg 0x0221
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_back:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_back
+	setarg 0x0224
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_soft_kb
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,p_keyboard_value_os_soft_kb_android
+	setarg 0x01ae
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb_android:
+	setarg 0x0307
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_down
+	setarg 0x0070
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_up
+	setarg 0x006f
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_lock:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_lock
+	setarg 0x0030
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mac_eject:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mac_eject
+	setarg 0x00b8
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_forward:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_forward
+	setarg 0x0225
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_stop
+	setarg 0x0226
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_refresh:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_refresh
+	setarg 0x0227
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_system_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,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
+	beq HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+	
+/////////////////////////////////////////////////////////////////////////
+p_keyboard_app_enter_hibernate:
+	branch app_enter_hibernate
+
+//
+p_mouse_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp	
+p_mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call p_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 p_adc_set_low_power_flag,positive
+	branch mouse_adc_bat_level_set
+
+p_adc_clear_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 0,temp
+	branch adc_set_power_flag
+
+p_adc_set_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 0,temp
+	branch adc_set_power_flag
+
+p_keyboard_adc_vol_init:
+	fetch 2,mem_keyboard_vdd_full_vol
+	store 2,mem_device_vdd_full_vol
+	fetch 2,mem_keyboard_vdd_empty_vol
+	store 2,mem_device_vdd_empty_vol
+	fetch 2,mem_keyboard_vdd_low_vol
+	store 2,mem_device_vdd_low_vol
+	rtn //#rtn to keyboard_param_init
+
+///*****only fix romcode for keyboard_adc_vol_init
+p_keyboard_adc_vol_4v2_init:
+	setarg 0x2c1270		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014001
+	istore 3,contw
+	rtn
+
+/////////////////////////////scan///////////////////////////
+p_keyboard_key_process:
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch p_keyboard_press_change_or_no_key,zero
+	branch keyboard_key_process+5
+
+p_keyboard_idle:
+	call p_keyboard_evt_ui_timer_check
+	branch keyboard_idle+1
+
+p_keyboard_evt_ui_timer_check:
+	arg 0,rega
+	fetcht 4,mem_keyboard_evt_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+p_keyboard_evt_ui_timer_check_loop:
+	copy regb,pdata
+	increase 40,temp    //40clk = 12.5ms
+	isub temp,null
+	nbranch p_keyboard_evt_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch p_keyboard_evt_ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call p_keyboard_evt_ui_timer_check_send_evt
+p_keyboard_evt_ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_keyboard_evt_btclk
+	rtn
+
+
+p_keyboard_evt_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -40,temp    //160btclk = 50ms
+	set0 28,temp
+	storet 4,mem_keyboard_evt_btclk
+p_keyboard_evt_ui_timer_check_send_evt:
+	store 1,mem_keyboard_evt_timer_count
+p_keyboard_evt_50ms_loop:
+	fetch 1,mem_keyboard_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_evt_timer_count
+	call p_keyboard_delay_lpm_timer
+	branch p_keyboard_evt_50ms_loop
+
+p_keyboard_delay_lpm_timer:
+	fetch 1,mem_keyboard_delay_lpm_flag
+	rtn blank
+	jam 1,mem_lpm_mode
+	jam 0,mem_keyboard_delay_lpm_flag
+	rtn
+	
+p_keyboard_press_change_or_no_key:
+	jam 0,mem_lpm_mode
+	jam 1,mem_keyboard_delay_lpm_flag
+	branch keyboard_press_change_or_no_key
+
+
+p_keyboard_led_dispatch_timer:
+    call keyboard_rgb_on_timer
+	call p_keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call p_keyboard_check_system_is_mac_timer
+
+	call keyboard_num_capslock_led_on_timer
+	call p_keyboard_device_pair_led_timer
+
+	call p_keyboard_low_voltage_led_timer
+	
+    rtn
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,p_keyboard_device_poweron_030_led
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+p_keyboard_device_poweron_030_led:
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_power_led_off,blank
+	branch keyboard_power_led_on
+
+p_keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	//# pair sucessed 锛岋紙BT_EVT_ATTEMP_SUCESSS , 浼氬皢timeout 缃0锛
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag //64 bit flag ,and byte 0 bit2 holds low power
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	rtnbit0 KEYBOARD_ENABLE_LOW_LED
+	rtnbit0 KEYBOARD_LOW_VOLTAGE_FLAG
+	bbit1 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,keyboard_low_voltage_led_blink_new_data
+	bpatch patch08_5,mem_patch08
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+
+    //600ms period 闂儊
+	sub pdata,6,null                                              //# null = imm -pdata
+	ncall keyboard_adc_low_volatage_led_timer_count_clean,positive //# pdata > imm ---> pdata = 0
+	sub pdata,3,null
+	ncall keyboard_low_voltage_led_off,positive 
+	call keyboard_low_voltage_led_on
+	// call ice_break #wip2/6 : ft low voltage led blink pass.
+	rtn
+
+p_keyboard_device_pair_led_timer:
+	//conn = 4 => START Reconn ; 
+
+    fetch 1,mem_24g_conn_sm
+	rtneq 4
+	fetch 1,mem_device_flag
+	
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_pair_led
+	branch keyboard_device_pair_led_timer+2
+
+p_keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	branch p_keyboard_pair_success_led_remove,blank
+	branch keyboard_device_pair_led
+
+p_keyboard_pair_success_led_remove:
+	fetch 1,mem_adc_power_flag
+	bbit1 0,p_keyboard_pair_sucess_led_move_next
+	fetch 1,mem_keyboard_led_status
+	bbit1 KB_PC_KEYSEL_NUMLOCK,p_keyboard_pair_sucess_led_move_next
+	fetch 2,mem_24g_reconn_timeout
+	nbranch keyboard_device_24g_pair_led,blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	branch keyboard_device_24g_led_off
+p_keyboard_pair_sucess_led_move_next:
+	rtn
+p_keyboard_check_system_is_mac_timer:
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+	fetch 1,mem_keyboard_led_status
+	rtnbit1 7
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	rtn
+
+
+p_g24_transmit_no_interrupt:
+	branch keyboard_g24_transmit_no_interrupt
+
+p_keyboard_commbination_key_press_check:
+	jam 0,mem_keyboard_commbination_press_type
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_commbination_key_press_check_bt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch p_keyboard_commbination_key_down_24g,zero
+	byteswap temp,temp
+	isub temp,null
+	branch p_keyboard_commbination_key_down_24g,zero
+	branch mouse_commbination_key_up
+p_keyboard_commbination_key_down_24g:
+	branch keyboard_24g_start_pair_mode
+
+
+
+
+
+org 0x2000		// start from rom address start
+start:
+	call lpmstate
+
+soft_reset:
+	bpatch patch00_0,mem_patch00
+	clear_stack
+
+	call load_otp_set_init
+	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
+	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
+	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
+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
+	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 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
+	jam 0,0x8900 
+	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 0xf5,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 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,set_lemode_1m_16m
+	setarg 0x2bb1
+	store 2,0x8907
+set_lemode_1m:
+	rtnmark0 mark_ble_lr
+	jam 0x24,0x8930
+	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 0xfe,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
+	rshift8 pdata,queue
+	storer queue, 1,0x890a
+	store 1,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 0xf6,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
+	jam 0x1f,0x8a63 
+	rtn
+	
+
+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
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	
+	jam 0xcd,0x8a13
+	jam 0x10,0x8a06
+	jam 0x4a,0x8a84
+	jam 0x40,0x8a85
+	jam 0xfe,0x8a16
+//	call set_otp_config
+	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
+	bpatchx patch3e_3,mem_patch3e
+	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
+	call set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	call sadc_calibration
+	call dpll_ring_ibias_calc
+	branch set_bistfix_save_patchram
+
+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
+
+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
+	
+
+rfpll_aac_ghpc:
+	bpatch patch03_3,mem_patch03
+	rtn wake
+	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 0xd8,0x8a00
+	nop 60
+	jam 0xa0,0x8a01
+	jam 0xdf,0x8a00
+	jam 0xfa,0x8a01
+	nop 20
+	jam 0x9f,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
+	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
+	until null,lpo_edge
+	fetch 1,core_lpm_isogate
+	set0 gpio_latch,pdata			// enable gpio normal function after load gpio configuration
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	nbranch boot_load,wake		// wakeup from hibernate
+	call set_bistfix_wake
+	storer alarm,4,mem_saved_gpio_in
+	jam OTP_KEY_LOCK,core_misc_ctrl	// disable further read/write of key
+	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
+
+
+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
+	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
+	copy temp,regb
+	branch lpm_write_gpio_wakeup
+	
+lpm_write_gpio_wakeup:
+	arg 12,loopcnt
+	arg mem_gpio_wakeup_cfg,rega
+	arg core_gpio_wakeup_cfg,regc
+	until null,lpo_edge
+lpm_write_gpio_loop:
+	ifetch 1,rega
+	ifetcht 1,regc
+	isub temp,null
+	branch lpm_write_gpio_loop_next,zero
+	istore 1,regc
+	until null,lpo_edge
+lpm_write_gpio_loop_next:	
+	increase 1,rega
+	increase 1,regc
+	loop lpm_write_gpio_loop
+	copy regb,temp
+	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
+	call set_bistfix_save_xram
+	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_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
+	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
+	copy rega,temp
+	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 patch27_3,mem_patch27
+	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 patch27_4,mem_patch27
+	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 patch27_5,mem_patch27
+	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 patch27_6,mem_patch27
+	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 patch27_7,mem_patch27
+	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
+	branch le_disable_master
+	
+le_master_disconn:
+	call le_disconnect
+le_disable_master:
+	disable master
+	rtn
+	
+//
+//
+//
+le_slave_dispatch:
+	bpatchx patch28_0,mem_patch28
+	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 patch28_1,mem_patch28
+	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 patch28_2,mem_patch28
+	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 patch28_3,mem_patch28
+	call end_of_packet
+	call le_lpm_set_mult
+	branch calc_clke_offset
+
+
+le_check_md:
+	bmark1 mark_ble_rx_md,enable_user
+	bmark1 mark_ble_tx_md,enable_user
+	bmark1 mark_ble_crc_fail,enable_user
+	branch disable_user
+
+
+le_slave_more_data:
+	bpatchx patch28_4,mem_patch28
+	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 patch28_5,mem_patch28
+	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 patch28_6,mem_patch28
+	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 patch28_7,mem_patch28
+	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 patch29_0,mem_patch29
+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 patch29_1,mem_patch29
+	set0 mark_ble_2M,mark
+	set0 mark_ble_lr,mark
+	rtn
+
+
+le_disable:
+	bpatchx patch29_2,mem_patch29
+	set0 mark_ble_encryption,mark
+	jam 0x01,0x8901
+	jam 0x80,0x8920
+	jam 0x03,0x8930
+	rtn
+	
+le_prep:
+	bpatchx patch29_3,mem_patch29
+	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 patch29_4,mem_patch29
+	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 patch29_5,mem_patch29
+	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 patch29_6,mem_patch29
+	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 patch29_7,mem_patch29
+	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 patch2a_0,mem_patch2a
+ 	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 patch2a_1,mem_patch2a
+	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
+	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 patch2a_2,mem_patch2a
+	call le_check_retransmit	
+//	bmark1 mark_old_packet,le_retransmit_end_of_packet
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+	nbranch le_crc_fail_consecutive,positive
+//	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 patch2a_3,mem_patch2a
+	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
+le_rx_match:
+	call rf_debug_rx_crc_line	//L
+	enable match
+	set0 mark_ble_crc_fail,mark
+le_crc_fail_tx:
+	bpatchx patch2a_4,mem_patch2a
+	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 patch2a_5,mem_patch2a
+	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 patch2a_6,mem_patch2a
+	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_adv,le_crc_fail_consecutive
+	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 patch2a_7,mem_patch2a
+	call ccm_ctrl_clr
+	branch end_of_packet
+
+calc_clke_all_modem:
+	fetcht  6,mem_sync_clke
+	copy clke,pdata
+	call clk_diff
+	copy pdata,temp
+	call calc_clke_all_modem_1
+	copy clke,rege
+	copy clke_rt,pdata
+	iadd temp,pdata
+//	add pdata,8,pdata
+	copy pdata,clke_rt	
+	rtn
+	
+calc_clke_all_modem_1:
+	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 patch2b_0,mem_patch2b
+	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 patch2b_1,mem_patch2b
+	call le_transmit
+	branch end_of_packet
+	
+le_transmit:
+	bpatchx patch2b_2,mem_patch2b
+	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 patch2b_3,mem_patch2b
+	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 patch2b_4,mem_patch2b
+	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 patch2b_5,mem_patch2b
+	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 patch2b_6,mem_patch2b
+	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 patch2b_7,mem_patch2b
+	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 patch2c_0,mem_patch2c
+	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 patch2c_1,mem_patch2c
+	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 patch2c_2,mem_patch2c
+	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 patch2c_3,mem_patch2c
+	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 patch2c_4,mem_patch2c
+	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 patch2c_5,mem_patch2c
+	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 patch2c_6,mem_patch2c
+	fetch 1,mem_le_packet_llid
+	rtneq LLID_RESERVED
+	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 patch2c_7,mem_patch2c
+	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 patch2d_0,mem_patch2d
+	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 patch2d_1,mem_patch2d
+	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 patch2d_2,mem_patch2d
+	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 patch2d_3,mem_patch2d
+	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 patch2d_4,mem_patch2d
+	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
+	branch 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 patch2d_5,mem_patch2d
+	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 patch2d_6,mem_patch2d
+	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 patch2d_7,mem_patch2d
+	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 patch2e_0,mem_patch2e
+	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
+	set0 mark_ble_crc_fail,mark	
+	set1 mark_adv,mark	
+	set0 mark_ble_encryption,mark
+	call le_enable
+	call le_scan
+	call le_adv
+	set0 mark_adv,mark	
+	branch le_disable
+
+le_scan:
+	bpatchx patch2e_1,mem_patch2e
+	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 patch2e_2,mem_patch2e
+	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 patch2e_3,mem_patch2e
+	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 patch2e_4,mem_patch2e
+	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 patch2e_5,mem_patch2e
+	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 patch2e_6,mem_patch2e
+	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 patch2e_7,mem_patch2e
+	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 patch2f_0,mem_patch2f
+	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 patch2f_1,mem_patch2f
+	fetch 1,mem_le_adv_channel_map_temp
+	fetcht 1,mem_le_adv_channel_map
+	isub temp,null
+	nbranch le_adv_loop,zero
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_CAR,null
+	branch car_le_stop_random_delay_check,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 patch2f_2,mem_patch2f
+	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 patch2f_3,mem_patch2f
+	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 patch2f_4,mem_patch2f
+	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 patch2f_5,mem_patch2f
+	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 patch2f_6,mem_patch2f
+	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 patch2f_7,mem_patch2f
+	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 patch30_0,mem_patch30
+	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 patch30_1,mem_patch30
+	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_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_39:
+	jam 39,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_39,pdata
+set_le_adv_channel_map_temp:
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+
+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
+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
+	branch set_le_adv_channel_map_temp
+
+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
+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
+	branch set_le_adv_channel_map_temp
+
+
+
+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_parse_att
+	beq DVC_OP_MOUSE,mouse_le_parse_att
+	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 enable_blank,positive
+	force 1,null
+	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 patch30_2,mem_patch30
+	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 patch30_3,mem_patch30
+	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 patch30_4,mem_patch30
+	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 patch30_5,mem_patch30
+	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 patch30_6,mem_patch30
+	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 patch30_7,mem_patch30
+	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 patch31_0,mem_patch31
+	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 patch31_1,mem_patch31
+	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 patch31_2,mem_patch31
+	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 patch31_3,mem_patch31
+	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 patch31_4,mem_patch31
+	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 patch31_5,mem_patch31
+	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 patch31_6,mem_patch31
+	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 patch31_7,mem_patch31
+	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 patch32_0,mem_patch32
+	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 patch32_1,mem_patch32
+	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 patch32_2,mem_patch32
+	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 patch32_3,mem_patch32
+	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 patch32_4,mem_patch32
+	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 patch32_5,mem_patch32
+	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 patch32_6,mem_patch32
+	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 patch32_7,mem_patch32
+	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 patch33_0,mem_patch33
+	bmark1 mark_24g_rxmode,g24_receive_dispatch
+	rtnmark0 mark_24g
+	branch g24_transmit_dispatch
+
+
+
+
+g24_prep:
+	bpatchx patch33_1,mem_patch33
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	branch le_prep_next
+
+g24_receive_packet:
+	bpatchx patch33_2,mem_patch33
+	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 patch33_3,mem_patch33
+	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 patch33_4,mem_patch33
+	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 patch33_5,mem_patch33
+	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 patch33_6,mem_patch33
+	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 patch33_7,mem_patch33
+	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 patch34_0,mem_patch34
+	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 patch34_1,mem_patch34
+//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 patch34_2,mem_patch34
+//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 patch34_3,mem_patch34
+	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 patch34_4,mem_patch34
+	call g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	rtn
+	
+g24_ch_calc:
+	bpatchx patch34_5,mem_patch34
+	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 patch34_6,mem_patch34
+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 patch34_7,mem_patch34
+	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 patch35_0,mem_patch35
+	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 patch35_1,mem_patch35
+	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 patch35_2,mem_patch35
+	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 patch35_3,mem_patch35
+	jam 0x4e,mem_24g_pair_ch
+	setarg 0x101520
+	store 3,mem_24g_pair_addr
+	setarg 0x05
+	branch  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 patch35_4,mem_patch35
+	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 patch35_5,mem_patch35
+	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 0x08,mem_24g_datalen
+	arg mem_24g_bind_payload,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy8
+
+
+g24_bind_data_process:
+	bpatchx patch35_6,mem_patch35
+	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 patch35_7,mem_patch35
+	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_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 patch36_0,mem_patch36
+	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 patch36_1,mem_patch36
+	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 patch36_2,mem_patch36
+	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_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 patch36_3,mem_patch36
+	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 patch36_4,mem_patch36
+	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 patch36_5,mem_patch36
+	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 patch36_6,mem_patch36
+	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 patch36_7,mem_patch36
+	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 patch37_0,mem_patch37
+	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 patch37_1,mem_patch37
+	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 patch37_2,mem_patch37
+	jam DONGLE_SEARCH,mem_24g_work_mode
+	jam CLEAR_INIT,mem_24g_mode_init
+	branch g24_rx_interrupt_clear
+
+
+
+
+
+g24_ch_process:
+	bpatchx patch37_3,mem_patch37
+	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 patch37_4,mem_patch37
+	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 patch37_5,mem_patch37
+	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 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_g24_reconn_dispatch_set
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch g24_pair_start,zero
+g24_reconn_dispatch_success:
+	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 patch37_6,mem_patch37
+	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 patch37_7,mem_patch37
+	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 patch38_0,mem_patch38
+	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 patch38_1,mem_patch38
+	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:
+	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 patch38_2,mem_patch38
+	call g24_txdata_prep
+	nbranch g24_nodata_transmit,user
+g24_transmit_start:
+	bpatchx patch38_3,mem_patch38
+	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 patch38_4,mem_patch38
+	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 patch38_5,mem_patch38
+	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:
+	bpatchx patch38_6,mem_patch38
+	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 patch38_7,mem_patch38
+	setarg 0
+	store 1,mem_24g_ensure
+	store 2,mem_24g_txfail_cnt
+	rtn
+
+g24_transmit_receive_ack:
+	bpatchx patch39_0,mem_patch39
+	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 patch39_1,mem_patch39
+	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 patch39_2,mem_patch39
+	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 patch39_3,mem_patch39
+	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 patch39_4,mem_patch39
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_g24_transmit_hop_process
+g24_transmit_hop_process_next:
+	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:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch g24_ch,zero		//fast conn->power no chage
+	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:
+	bpatchx patch39_5,mem_patch39
+	jam 1,mem_24g_abort_pac
+	jam TYPE_MS,mem_24g_data_type
+	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 patch39_6,mem_patch39
+	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 patch39_7,mem_patch39
+	fetch 1,mem_power_ctrl_disable
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	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 2,power_ctrl_decrs_level2	//3db     //3-->0-->-5
+	beq 1,power_ctrl_decrs_level1	//0db
+	branch power_ctrl_decrs_level0 //-5dBm
+
+power_ctrl_txpower_incrs_force:	//0-->3-->5
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 3,power_ctrl_incrs_level3
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1	//0db
+	beq 2,power_ctrl_incrs_level2	//3db
+power_ctrl_incrs_level3:	//5dBm
+	jam TX_POWER_5DB,mem_tx_power
+	rtn
+
+power_ctrl_decrs_level2:	
+power_ctrl_incrs_level2:	//+3dBm
+	jam TX_POWER_3DB,mem_tx_power
+	rtn
+
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
+	jam TX_POWER_0DB,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
+
+
+
+
+
+
+app_init:
+	bpatch patch19_7,mem_patch19
+	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
+	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,keyboard_default_init
+	beq DVC_OP_REMOTE_CAR,remote_car_default_init
+	beq DVC_OP_CAR,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 patch1a_0,mem_patch1a
+	//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 patch1a_1,mem_patch1a
+	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
+
+
+
+
+
+
+
+car_init:
+	call enable_authrom
+	rtn wake
+	setarg car_idle_process
+	store 2,mem_cb_idle_process
+
+	setarg car_cb_event_timer
+	store 2,mem_cb_event_timer
+	
+	setarg car_cb_24g_ackpayload
+	store 2, mem_cb_24g_ackpayload
+
+	setarg car_ble_receive_data
+	store 2,mem_cb_att_write
+
+	setarg car_process_bb_event 
+	store 2,mem_cb_bb_event_process
+	
+	bpatch patch05_6,mem_patch05
+	call car_init_environment
+	call car_add_mac_to_local_name
+	call le_modified_name
+	call car_le_param_init
+	branch queue_init
+	
+car_default_init:	
+	
+	jam 0x0a,mem_tx_power
+	jam 0x84,mem_24g_tx_phy
+	jam 0x84,mem_24g_rx_phy
+	setarg 0xffffff
+	store 3,mem_car_full_control_remote_lap
+	jam 0xff,mem_car_full_control_remote_lap+3
+	setarg 0
+	store 3,mem_le_lap
+	setarg 0x220101
+	store 3,mem_le_lap+3
+	setarg 0xffffff
+	store 3,mem_car_motor_gpio_map
+	jam 0xff,mem_car_motor_gpio_map+3
+	jam 0x01,mem_factory_control_flag
+	setarg 0x241404
+	store 3,mem_24g_ch_map1
+	jam 0x34,mem_24g_ch_map1+3
+	jam 0x10,mem_car_pwm_gpio
+	jam 0x01,mem_stop_4w1_flag
+	jam 0x07,mem_le_adv_channel_map
+	jam 0x01,mem_le_adv_enable
+	setarg 0xf0
+	store 2,mem_le_adv_interval
+	setarg 0x801
+	store 2,mem_le_local_feature
+	jam 0x84,mem_le_tx_phys
+	jam 0x84,mem_le_rx_phys
+	
+
+	setarg 0x504708
+	store 3,mem_le_name_len
+	setarg 0x435734
+	store 3,mem_le_name_len+3
+	setarg 0x5f5241
+	store 3,mem_le_name_len+6
+	jam 0x1f,mem_le_adv_data_len
+	setarg 0x50102
+	store 3,mem_le_adv_data
+	setarg 0x08
+	store 2,mem_le_interval_min
+	setarg 0x10
+	store 2,mem_le_interval_max
+	setarg 0
+	store 2,mem_le_latency
+	setarg 0x12c
+	store 2,mem_le_timeout
+	setarg mem_car_le_queue_each_size
+	store 2,mem_queue_ptr
+	setarg 0x414
+	store 5,mem_car_le_queue_each_size
+	setarg mem_car_ble_att_list
+	store 2,mem_ui_le_uuid_table
+
+//att list
+	setsect 0,0x20001
+	setsect 1,0x20000
+	setsect 2,0x1022
+	setsect 3,0x60
+	store 9,mem_car_ble_att_list
+	setsect 0,0x20002
+	setsect 1,0x200c0
+	setsect 2,0x20012
+	setsect 3,0xc
+	store 9,mem_car_ble_att_list+8
+
+	setsect 0,0x20502
+	setsect 1,0x4a
+	setsect 2,0x40
+	setsect 3,0x808
+	store 9,mem_car_ble_att_list+17
+
+	setsect 0,0x10229
+	setsect 1,0x14000
+	setsect 2,0x2000
+	setsect 3,0xa000
+	store 9,mem_car_ble_att_list+26
+
+	setsect 0,0x02
+	setsect 1,0x186
+	setsect 2,0x3020
+	setsect 3,0x4a0
+	store 9,mem_car_ble_att_list+35
+
+	setsect 0,0x74e
+	setsect 1,0x80
+	setsect 2,0x132a0
+	setsect 3,0x1cd04
+	store 9,mem_car_ble_att_list+44
+
+	setsect 0,0x2074
+	setsect 1,0x1153
+	setsect 2,0x2f4d2
+	setsect 3,0x1cdd5
+	store 9,mem_car_ble_att_list+53
+
+	setsect 0,0x2065
+	setsect 1,0x808
+	setsect 2,0x20202
+	setsect 3,0x2080
+	store 9,mem_car_ble_att_list+62
+
+	setsect 0,0x30200
+	setsect 1,0x4a00
+	setsect 2,0x94e0
+	setsect 3,0x800
+	store 9,mem_car_ble_att_list+71
+
+	setsect 0,0x22a01
+	setsect 1,0x0
+	setsect 2,0xa0
+	setsect 3,0xc08
+	store 9,mem_car_ble_att_list+80
+
+	setsect 0,0x20128
+	setsect 1,0x2c0
+	setsect 2,0x4020
+	setsect 3,0x20a8
+	store 9,mem_car_ble_att_list+89
+
+	setsect 0,0x10
+	setsect 1,0x14008
+	setsect 2,0x2c000
+	setsect 3,0x3004
+	store 9,mem_car_ble_att_list+98
+
+	setsect 0,0x200
+	setsect 1,0x8a00
+	setsect 2,0x3ff00
+	setsect 3,0x37 
+	store 9,mem_car_ble_att_list+107
+
+	setsect 0,0x302
+	setsect 1,0x804a
+	setsect 2,0xe1
+	setsect 3,0x3c408
+	store 9,mem_car_ble_att_list+116
+
+	setsect 0,0x4ff
+	setsect 1,0x0
+	setsect 2,0xf000
+	setsect 3,0x800
+	store 9,mem_car_ble_att_list+125
+
+	setsect 0,0x22902
+	setsect 1,0x0
+	setsect 2,0x100
+	setsect 3,0xc08
+	store 9,mem_car_ble_att_list+134
+
+	setsect 0,0x128
+	setsect 1,0x442
+	setsect 2,0x32020
+	setsect 3,0x7ff
+	store 9,mem_car_ble_att_list+143
+	setarg 0
+	store 3,mem_car_ble_att_list+152
+	
+	jam 0x0c,mem_system_clk
+	setarg 0x643f35
+	store 3,mem_lpm_xtalcnt
+	setarg 0x3b2f8f
+	store 3,mem_lpm_isogate
+	jam 0x20,mem_lpm_hibernate_switch
+	jam 0x00,mem_lpm_ldo_sel
+	jam 0x08,mem_lpm_sysctl
+	jam 0xb4,mem_lpm_hv_sel
+	jam 0x18,mem_fcomp_div
+	jam 0x3e,mem_xtal_c_sel
+	setarg 0x50e08
+	store 3,mem_version
+	setarg 0x3
+	store 2,mem_version+3
+	jam 0x20,mem_le_tx2m_delay
+	jam 0xff,mem_gain_fix
+	setarg 0xc00
+	store 2,mem_rx_window_sniff
+	setarg 0x4
+	store 3,mem_gain_table
+	jam 0x08,mem_gain_second_agc_en
+	jam 0xa0,mem_ring_ibias_trim
+	setarg 0x2bc
+	store 2,mem_ring_ibias_vtune_high
+	setarg 0x190
+	store 2,mem_ring_ibias_vtune_low
+	jam 0x03,mem_ring_ibias_calc_adc_gpio
+	jam 0x09,mem_ring_ibias_calc_adc_channel
+	jam 0xff,mem_rf_init_data
+	setarg mem_rf_init_data
+	store 2,mem_rf_init_ptr
+
+	
+	call enable_otp_read
+	arg mem_otp_sys_cfg_temp,rega
+	arg OTP_SYS_PARAM_CFG,regb
+	arg 60,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 1,mem_otp_sys_cfg_temp
+	ncall car_system_clk,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+1
+	ncall car_lpm_xtalcnt,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+4
+	ncall car_lpm_isogate,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+7
+	ncall car_lpm_hibernate_switch,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+8
+	ncall car_lpm_ldo_sel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+9
+	ncall car_lpm_sysctl,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+10
+	ncall car_lpm_hv_sel,blank	
+
+	fetch 1,mem_otp_sys_cfg_temp+11
+	ncall car_fcomp_div,blank	
+	
+	fetch 1,mem_otp_sys_cfg_temp+12
+	ncall car_xtal_c_sel,blank
+
+	fetch 5,mem_otp_sys_cfg_temp+13
+	ncall car_version,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+18
+	ncall car_le_tx2m_delay,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+19
+	ncall car_gain_fix,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+20
+	ncall car_rx_window_sniff,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+22
+	ncall car_gain_table,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+25
+	ncall car_gain_second_agc_en,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+26
+	ncall car_ring_ibias_trim,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+27
+	ncall car_ring_ibias_vtune_high,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+29
+	ncall car_ring_ibias_vtune_low,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+31
+	ncall car_ring_ibias_calc_adc_gpio,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+32
+	ncall car_ring_ibias_calc_adc_channel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+37
+	ncall car_tx_power,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+38
+	ncall car_24g_tx_phy,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+39
+	ncall car_24g_rx_phy,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+40
+	ncall car_motor_gpio_map,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+44
+	ncall car_pwm_gpio,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+46
+	ncall car_24g_addr,blank
+	
+	fetch 4,mem_otp_sys_cfg_temp+50
+	ncall car_24g_ch_map1,blank
+	rtn
+	
+car_system_clk:
+	store 1,mem_system_clk
+	rtn
+car_lpm_xtalcnt:
+	store 3,mem_lpm_xtalcnt
+	rtn
+car_lpm_isogate:
+	store 3,mem_lpm_isogate
+	rtn
+car_lpm_hibernate_switch:
+	store 1,mem_lpm_hibernate_switch
+	rtn
+car_lpm_ldo_sel:
+	store 1,mem_lpm_ldo_sel
+	rtn
+car_lpm_sysctl:
+	store 1,mem_lpm_sysctl	
+	rtn
+car_lpm_hv_sel:	
+	store 1,mem_lpm_hv_sel	
+	rtn
+car_fcomp_div:
+	store 1,mem_fcomp_div
+	rtn
+car_xtal_c_sel:
+	store 1,mem_xtal_c_sel
+	rtn
+car_version:
+	store 5,mem_version
+	rtn	
+car_le_tx2m_delay:
+	store 1,mem_le_tx2m_delay
+	rtn
+car_gain_fix:
+	store 1,mem_gain_fix
+	rtn
+car_rx_window_sniff:
+	store 2,mem_rx_window_sniff
+	rtn
+car_gain_table:
+	store 3,mem_gain_table
+	rtn
+car_gain_second_agc_en:
+	store 1,mem_gain_second_agc_en
+	rtn
+car_ring_ibias_trim:
+	store 1,mem_ring_ibias_trim
+	rtn
+car_ring_ibias_vtune_high:
+	store 2,mem_ring_ibias_vtune_high
+	rtn
+car_ring_ibias_vtune_low:
+	store 2,mem_ring_ibias_vtune_low
+	rtn
+car_ring_ibias_calc_adc_gpio:
+	store 1,mem_ring_ibias_calc_adc_gpio
+	rtn
+car_ring_ibias_calc_adc_channel:
+	store 1,mem_ring_ibias_calc_adc_channel
+	rtn
+car_tx_power:
+	store 1,mem_tx_power
+	rtn
+car_24g_tx_phy:
+	store 1,mem_24g_tx_phy
+	rtn
+car_24g_rx_phy:
+	store 1,mem_24g_rx_phy
+	rtn
+car_motor_gpio_map:
+	store 4,mem_car_motor_gpio_map
+	jam 1,mem_car_gpio_control_mode  //pwm con:0  h&l output:1
+	rtn
+car_pwm_gpio:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	fetch 1,mem_otp_sys_cfg_temp+44
+	store 1,mem_car_pwm_gpio
+	rtn
+
+car_24g_addr:
+	store 4,mem_24g_addr
+	rtn
+car_24g_ch_map1:
+	store 4,mem_24g_ch_map1
+	rtn
+
+
+car_init_environment:
+	setarg 15
+	store 2, mem_100ms_adv_control_timer
+	setarg 300
+	store 2, mem_100ms_factory_test_control_timer
+	call car_whitening_24g_addr
+	call car_get_rxid
+	call car_rxid_check
+	branch car_pwm_control_init
+	
+car_rxid_check:
+	arg mem_le_lap,rega
+	arg mem_car_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	fetch 1,mem_le_lap
+	pincrease -1
+	store 1,mem_le_lap
+	rtn
+	
+car_add_mac_to_local_name:
+	fetch 1, mem_le_name_len
+	arg mem_le_name_len+1, contw
+	iadd contw, regb
+	add pdata, 16, pdata
+	store 1, mem_le_name_len
+
+	arg 6, loopcnt
+	arg mem_le_lap+5, rega   //big endian
+	copy regb, contw
+car_add_mac_to_local_name_loop:
+	ifetcht 1, rega
+	and temp, 0xf0, pdata
+	rshift4 pdata, pdata
+	call car_convert_hex_to_ascii
+	
+	istore 1, contw
+	and temp, 0x0f, pdata
+	call car_convert_hex_to_ascii
+	istore 1, contw
+	increase -1, rega
+	loop car_add_mac_to_local_name_loop
+	rtn
+car_convert_hex_to_ascii:
+	sub pdata, 9, null
+	branch car_convert_hex_to_ascii_0_9, positive
+car_convert_hex_to_ascii_a_f:
+	add pdata, 0x37, pdata    
+	rtn
+car_convert_hex_to_ascii_0_9:
+	add pdata, 0x30, pdata  
+	rtn	
+
+
+	
+car_le_param_init:
+	jam 0x17,mem_le_local_mtu
+	setarg 0x1b
+ 	store 2,mem_le_pairing_handle
+ 	call le_set_config_fixed_ltk
+	call le_set_fixed_ltk
+	call le_set_justwork
+	branch le_set_config_read_authentication
+
+
+car_process_bb_event:
+	deposit regc
+	beq BT_EVT_LE_CONNECTED, car_ble_connted
+	beq BT_EVT_LE_DISCONNECTED, car_ble_disconnted
+	rtn
+
+car_ble_disconnted:
+	jam 0,mem_car_ble_connted_flag
+	call car_gpio_control_stop
+	jam 0x0,mem_period_count
+	jam 1,mem_stop_4w1_flag
+	setarg 0
+	store 3,mem_car_ble_write_data
+	call queue_init
+	branch app_ble_start_adv
+
+car_ble_connted:
+	jam 1,mem_car_ble_connted_flag
+	call car_check_close_ice
+	branch app_lpm_mult_enable
+
+
+car_ble_receive_data:
+	fetch 2,mem_le_att_handle
+	beq HANDLE_OF_WRITE,car_ble_receive_writeatt
+	rtn
+	
+
+car_ble_receive_writeatt:
+	bpatch patch05_7,mem_patch05
+	copy regb, loopcnt
+	copy rega, contr
+	arg mem_car_ble_write_data, contw   
+	call memcpy
+	fetch 1,mem_car_ble_write_data
+	rtn blank	
+car_ble_receive_writeatt_parse:
+	call car_gpio_control_stop
+	jam 0x4,mem_period_count
+	fetch 1,mem_car_ble_write_data+2
+	rtnne 0x02
+	fetch 1,mem_car_ble_write_data+8
+	beq 0x01,car_f+3
+	beq 0x02,car_b+3	 
+	beq 0x03,car_r+3	
+	beq 0x04,car_l+3	
+	beq 0xa1,car_fr
+	beq 0xa2,car_fl
+	beq 0xa3,car_br
+	beq 0xa4,car_bl
+	rtn
+
+car_gpio_control_stop:
+	fetch 1,mem_car_gpio_control_mode
+	rtn blank
+	call car_fb_motor_stop
+	branch car_lr_motor_stop
+
+car_whitening_24g_addr:
+	arg 4,loopcnt
+	arg mem_24g_addr,regc
+	arg 0xae,regb
+//	call car_24g_whitening_loop
+//	rtn
+car_24g_whitening_loop:
+	call car_24g_whitening_byte
+	increase 1, regc
+	loop car_24g_whitening_loop
+	rtn
+car_24g_whitening_byte:
+	arg 1, rega     //rega is m
+car_24g_whitening_byte_loop:
+	lshift regb, regb    //regb is seed
+	isolate1 7, regb
+	call car_24g_whitening_byte_xor, true
+	lshift rega, rega
+	deposit rega
+	rtnbit1 8
+	branch car_24g_whitening_byte_loop
+car_24g_whitening_byte_xor:	
+	ifetch 1,regc
+	ixor rega, pdata
+	istore 1, regc
+	xor regb, 0x11, regb
+	rtn
+
+
+
+car_get_rxid:
+	call enable_otp_read
+	arg mem_otp_lot_xy_temp,rega
+	arg OTP_MAC_ADDR,regb
+	arg 6,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 6,mem_otp_lot_xy_temp
+	rtn blank
+	fetch 2,mem_otp_lot_xy_temp
+	store 2,mem_le_lap
+	fetch 1,mem_otp_lot_xy_temp+3
+	store 1,mem_le_lap+2
+	fetch 1,mem_otp_lot_xy_temp+5
+	store 1,mem_le_lap+3
+
+	fetch 1,mem_otp_lot_xy_temp+1
+	sub pdata,26,null  //	piece num max is 25
+	nrtn positive
+	
+	fetch 1,mem_otp_lot_xy_temp+2
+	rtn blank
+	random pdata
+	and_into 0x07,pdata
+	lshift pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 1,mem_otp_lot_xy_temp+1
+	iadd temp,pdata
+	store 1,mem_le_lap+1
+	arg mem_le_lap+1,rega
+	arg OTP_MAC_ADDR_PIECENUM,regb
+	arg 1,loopcnt
+	branch otp_write	
+
+
+
+car_pwm_control_init:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	arg 0, rega
+	call pwm_init
+	
+	arg 18000,rega
+	arg 6000, regb
+	arg 0, pdata
+	call pwm_duty_cycle_set
+	fetch 1,mem_car_pwm_gpio
+	branch pwm_enable	
+
+
+car_idle_process:
+//call ice_break
+	bpatch patch06_0,mem_patch06
+	arg 10, pdata //约96ms
+	call wdt_init_config 
+
+	call car_pwm_io_control
+	fetch 1,mem_car_ble_connted_flag
+	nrtn blank
+	fetch 2,mem_car_le_24g_ch_count
+	increase 1,pdata
+	store 2,mem_car_le_24g_ch_count
+	rshift4 pdata,pdata
+	call car_set_24g_ch
+	
+	call car_g24_sim_rx
+	call car_stop_run			
+	setarg mem_24g_rxbuf
+	increase 2,pdata
+	copy pdata,contr
+	arg LEN_OF_24G_PAYLOAD,loopcnt
+	arg 0,pdata	
+	call cal_sum
+	and pdata ,0xff,pdata
+	fetcht 1,mem_24g_rxbuf+14
+	isub temp,null
+	nrtn zero
+
+	fetch 1,mem_24g_rxbuf+2
+	bpatch patch06_1,mem_patch06
+	beq G24_TX_PAIR_REQUEST,car_recive_pair_request
+	beq G24_TX_REMOTE_CONTROL,car_set_motor
+	rtn
+car_pwm_io_control:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	call car_soft_timer_process	
+	call car_pwm_change_500hz
+	call car_period_change_timer	
+	call car_pwm_change_1khz
+	rtn
+
+car_g24_sim_rx:
+	arg 4,temp
+	arg 5,queue
+	call sniff_check_window
+	rtn user
+	set1 mark_24g_rxmode,mark
+	setarg 0x8ca0   //2.5ms
+	store 2, mem_24g_rx_window
+	jam 1,mem_24g_ackpayload_enable
+	fetch 1,mem_24g_rx_phy
+	call le_enable_phy_by_pdata
+	call g24_syncword_crc8
+	call g24_receive_transmit_ack
+	call g24_read_len_pid_crc
+	call g24_end_of_packet	
+	nrtn user3
+	rtn
+
+car_cb_24g_ackpayload:
+	jam LEN_OF_ACK_PAYLOAD, mem_24g_datalen
+	fetch 7,mem_car_24g_tx_payload_temp
+	store 7, mem_24g_txbuf
+	fetch 4,mem_car_24g_tx_payload_temp+7
+	store 4, mem_24g_txbuf+7	
+	rtn
+	
+car_soft_timer_process:	
+	arg 8, rega
+car_soft_timer_process_check_timer:
+	arg 12,queue
+	call timer_check
+	branch car_soft_timer_timeout,blank
+	isub rega, null
+	branch car_soft_timer_process_wait_timeout,zero
+	rtn positive
+car_soft_timer_process_wait_timeout:
+	arg 12,queue
+	call timer_check
+	branch car_soft_timer_timeout,blank
+	branch car_soft_timer_process_wait_timeout
+	
+car_soft_timer_timeout:
+	fetch 1,mem_pwm_flag
+	beq 2,car_timer_500hz_enable	
+	beq 3,car_timer_1khz_enable
+	rtn	
+car_timer_1khz_enable:
+	jam 1,mem_pwm_flag
+	rtn
+car_timer_500hz_enable:
+	jam 0,mem_pwm_flag
+	rtn
+
+car_pwm_change_1khz:
+	fetch 1,mem_period_count
+	rtn blank
+	fetcht 1,mem_pwm_flag
+	compare 1,temp,0xff
+	nrtn true
+	jam 2,mem_pwm_flag
+	arg 6000,rega
+	arg 6000, regb
+	arg 0, pdata
+	call pwm_duty_cycle_set	
+	fetch 1,mem_timer_count
+	arg 12,queue
+	call timer_init
+	rtn
+car_pwm_change_500hz:
+	fetcht 1,mem_pwm_flag
+	compare 0,temp,0xff
+	nrtn true
+	jam 3,mem_pwm_flag
+	arg 18000,rega
+	arg 6000, regb
+	arg 0, pdata
+	call pwm_duty_cycle_set
+	setarg 12
+	arg 12,queue
+	call timer_init
+	rtn
+car_period_change_timer:
+	fetch 1,mem_period_count
+	arg 0x3e8,temp
+	imul32 temp,pdata
+	arg 0x271,temp
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	pincrease 1
+	store 1,mem_timer_count
+	rtn
+
+
+
+car_set_24g_ch:
+	beq 0,car_set_ch0
+	beq 1,car_set_ch1
+	beq 2,car_set_ch2
+	beq 3,car_set_ch3
+	branch car_set_ch_reset
+car_set_ch0:
+	fetch 1,mem_24g_ch_map1
+	store 1,mem_24g_ch
+	rtn
+car_set_ch1:
+	fetch 1,mem_24g_ch_map1+1
+	store 1,mem_24g_ch
+	rtn
+car_set_ch2:
+	fetch 1,mem_24g_ch_map1+2
+	store 1,mem_24g_ch
+	rtn
+car_set_ch3:
+	fetch 1,mem_24g_ch_map1+3
+	store 1,mem_24g_ch
+	rtn        
+car_set_ch_reset:
+	setarg 0
+	store 2,mem_car_le_24g_ch_count
+	rtn
+
+
+
+car_stop_run:
+	fetch 1,mem_car_le_24g_tx_pair_mode
+	rtn blank
+	fetch 1,mem_car_24g_loselink_count
+	arg 15,temp
+	isub temp,null
+	nrtn positive
+	jam 0,mem_car_24g_loselink_count
+	setarg 0
+	store 2,mem_car_24g_rx_payload_temp+9
+	call car_gpio_control_stop
+
+	jam 0x4,mem_period_count
+	jam 0,mem_le_adv_enable
+	jam 1,mem_adv_control_start_flag
+	fetch 1,mem_stop_4w1_flag
+	rtn blank
+	jam 0x0,mem_period_count
+	jam 1,mem_le_adv_enable
+	rtn
+
+
+car_set_motor:
+	bpatch patch06_2,mem_patch06
+	fetch 7,mem_24g_rxbuf+2
+	store 7,mem_car_24g_rx_payload_temp
+	fetch 5,mem_24g_rxbuf+9
+	store 5,mem_car_24g_rx_payload_temp+7        
+	arg mem_car_24g_rx_payload_temp+1,rega
+	fetch 4,mem_car_24g_addr_other
+	branch car_reconnect,blank
+	arg mem_car_24g_addr_other,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	arg mem_car_24g_rx_payload_temp+5,rega	
+	arg mem_car_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	branch car_run_factory_mode_select,zero	
+
+	arg mem_car_24g_rx_payload_temp+5,rega
+	arg mem_le_lap,regb
+	arg 4,loopcnt
+	call string_compare  
+	nbranch car_set_unconnect, zero
+	branch car_run_mode_select
+	
+car_set_unconnect:
+	jam G24_UNCONNECT,mem_car_le_24g_tx_pair_mode
+	setarg 0
+	store 4,mem_car_24g_addr_other       
+	rtn
+
+car_run_factory_mode_select:
+	fetch 1,mem_factory_control_flag
+	beq 0,car_set_unconnect
+	beq 1,car_run_mode_select
+	rtn
+	
+car_run_mode_select:
+	jam 0,mem_car_24g_loselink_count
+	fetch 2,mem_car_24g_rx_payload_temp+9
+	branch car_stop_run+9,blank
+	call car_pwm_mode_adv_flag_init
+	call car_factory_mode_time
+	call car_motor_mode_1
+	branch car_motor_mode_2
+
+car_pwm_mode_adv_flag_init:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	jam 1,mem_le_adv_enable
+	jam 1,mem_le_adv_channel_map
+	jam 0,mem_stop_4w1_flag
+	jam 0,mem_adv_control_start_flag
+	setarg 15
+	store 2, mem_100ms_adv_control_timer
+	rtn
+	
+car_factory_mode_time:
+	fetch 1,mem_factory_control_flag
+	rtn blank
+	setarg 300
+	store 2, mem_100ms_factory_test_control_timer
+	rtn
+	
+car_motor_mode_1:
+	fetch 1,mem_car_24g_rx_payload_temp+10
+	beq 1,car_b
+	beq 2,car_f
+	rtn
+car_motor_mode_2:
+	fetch 1,mem_car_24g_rx_payload_temp+9
+	beq 1,car_l
+	beq 2,car_r
+	rtn
+
+car_f:
+	fetch 1,mem_car_24g_rx_payload_temp+9
+	beq 1,car_fl
+	beq 2,car_fr
+	jam 0x0a,mem_period_count
+	branch car_lr_motor_right
+	
+car_b:
+	fetch 1,mem_car_24g_rx_payload_temp+9
+	beq 1,car_bl
+	beq 2,car_br
+	jam 0x28,mem_period_count
+	branch car_lr_motor_left
+
+car_l:
+	fetch 1,mem_car_24g_rx_payload_temp+10
+	beq 1,car_bl
+	beq 2,car_fl
+	jam 0x3a,mem_period_count
+	branch car_fb_motor_back
+	
+car_r:
+	fetch 1,mem_car_24g_rx_payload_temp+10
+	beq 1,car_br
+	beq 2,car_fr
+	jam 0x40,mem_period_count
+	branch car_fb_motor_front
+
+car_fl:
+	jam 0x1c,mem_period_count
+	call car_lr_motor_right
+	branch car_fb_motor_back
+car_fr:
+	jam 0x22,mem_period_count
+	call car_lr_motor_right
+	branch car_fb_motor_front
+car_bl:
+	jam 0x34,mem_period_count
+	call car_lr_motor_left
+	branch car_fb_motor_back
+car_br:
+	jam 0x2e,mem_period_count
+	call car_lr_motor_left
+	branch car_fb_motor_front	
+
+
+car_reconnect:
+	arg mem_car_24g_rx_payload_temp+5,rega	
+	arg mem_car_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare 
+	branch car_recive_pair_request,zero
+
+	arg mem_car_24g_rx_payload_temp+5,rega
+	arg mem_le_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	branch car_recive_pair_request
+car_recive_pair_request:
+	fetch 7,mem_24g_rxbuf+2
+	store 7,mem_car_24g_rx_payload_temp
+	fetch 1,mem_car_le_24g_tx_pair_mode
+	beq G24_UNCONNECT,car_send_pair_response
+	beq G24_CONNECTED, car_send_pair_response_juge
+	rtn
+car_send_pair_response:
+	call car_check_close_ice
+	
+	jam G24_CONNECTED,mem_car_le_24g_tx_pair_mode
+	jam G24_RX_PAIR_RESPONES,mem_car_24g_tx_payload_temp
+	fetch 4,mem_car_24g_rx_payload_temp+1
+	store 4,mem_car_24g_addr_other
+	store 4,mem_car_24g_tx_payload_temp+5
+	fetch 4,mem_le_lap
+	store 4,mem_car_24g_tx_payload_temp+1
+	rtn
+
+car_send_pair_response_juge:
+	arg mem_car_24g_rx_payload_temp+1,rega
+	arg mem_car_24g_addr_other,regb
+	arg 4,loopcnt
+	call string_compare        
+	branch car_send_pair_response,zero
+
+
+car_cb_event_timer:
+	fetch 1,mem_car_24g_loselink_count		
+	increase 1,pdata
+	store 1,mem_car_24g_loselink_count
+	call car_100ms_timer_adv_control
+	branch car_100ms_timer_factory_test_control
+	
+
+car_100ms_timer_adv_control:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	fetch 1,mem_adv_control_start_flag
+	rtn blank
+	arg mem_100ms_adv_control_timer,regc
+	arg car_100ms_timer_adv_control_timeout, regb
+	branch timer_single_step_2B
+car_100ms_timer_adv_control_timeout:
+	setarg 15
+	store 2, mem_100ms_adv_control_timer
+	jam 7,mem_le_adv_channel_map
+	jam 0,mem_adv_control_start_flag
+	jam 1,mem_stop_4w1_flag
+	rtn		
+
+car_100ms_timer_factory_test_control:
+	fetch 1,mem_factory_control_flag
+	rtn blank
+	arg mem_100ms_factory_test_control_timer,regc
+	arg car_100ms_timer_factory_test_timeout, regb
+	branch timer_single_step_2B
+car_100ms_timer_factory_test_timeout:
+	setarg 300
+	store 2, mem_100ms_factory_test_control_timer
+	jam 0,mem_factory_control_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_le_stop_random_delay_check:
+	fetch 1,mem_stop_4w1_flag
+	branch le_adv_not_match+13,blank
+	branch le_adv_not_match+8
+
+car_check_close_ice:
+	fetch 1,mem_car_gpio_control_mode
+	rtn blank
+	branch lpm_write_ice_disable
+	
+
+
+
+//define REMOTE_TEST_FUNCTION
+remote_car_init:
+	call enable_authrom
+	bpatch patch06_3,mem_patch06
+
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	call lpm_write_ice_enable,blank
+	call remote_car_set__lpm_timer_set
+	rtn wake
+	call wdt_set_disable
+	setarg remote_car_idle_process
+	store 2,mem_cb_idle_process
+
+	setarg remote_car_cb_event_timer
+	store 2,mem_cb_event_timer
+	call remote_car_get_txid
+	call remote_car_txid_check
+	call remote_car_whitening_24g_addr
+	branch remote_car_lpm_gpio_config_flag_init
+
+
+remote_car_default_init:
+	jam 0x0a,mem_tx_power
+	jam 0x84,mem_24g_tx_phy
+	jam 0x84,mem_24g_rx_phy
+	setarg 0xffffff
+	store 3,mem_remote_full_control_remote_lap
+	jam 0xff,mem_remote_full_control_remote_lap+3
+	setarg 0
+	store 3,mem_le_lap
+	setarg 0x220101
+	store 3,mem_le_lap+3
+	setarg 0x858c0c
+	store 3,mem_remote_car_key_conf0
+	jam 0x05,mem_remote_car_key_conf0+3
+	jam 0x0d,mem_24g_tx_led_map
+	jam 0x12,mem_key_public_gpio
+	setarg 0x241404
+	store 3,mem_24g_ch_map1
+	jam 0x34,mem_24g_ch_map1+3
+
+	jam 0x0c,mem_system_clk
+	setarg 0x643f35
+	store 3,mem_lpm_xtalcnt
+	setarg 0x3b2f8f
+	store 3,mem_lpm_isogate
+	jam 0x20,mem_lpm_hibernate_switch
+	jam 0x00,mem_lpm_ldo_sel
+	jam 0x08,mem_lpm_sysctl
+	jam 0xb4,mem_lpm_hv_sel
+	jam 0x18,mem_fcomp_div
+	jam 0x3e,mem_xtal_c_sel
+	setarg 0x50e08
+	store 3,mem_version
+	setarg 0x3
+	store 2,mem_version+3
+	jam 0x20,mem_le_tx2m_delay
+	jam 0xff,mem_gain_fix
+	setarg 0xc00
+	store 2,mem_rx_window_sniff
+	setarg 0x4
+	store 3,mem_gain_table
+	jam 0x08,mem_gain_second_agc_en
+	jam 0xa0,mem_ring_ibias_trim
+	setarg 0x2bc
+	store 2,mem_ring_ibias_vtune_high
+	setarg 0x190
+	store 2,mem_ring_ibias_vtune_low
+	jam 0x03,mem_ring_ibias_calc_adc_gpio
+	jam 0x09,mem_ring_ibias_calc_adc_channel
+	jam 0xff,mem_rf_init_data
+	setarg mem_rf_init_data
+	store 2,mem_rf_init_ptr
+	
+	call enable_otp_read
+	arg mem_otp_sys_cfg_temp,rega
+	arg OTP_SYS_PARAM_CFG,regb
+	arg 60,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 1,mem_otp_sys_cfg_temp
+	ncall remote_car_system_clk,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+1
+	ncall remote_car_lpm_xtalcnt,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+4
+	ncall remote_car_lpm_isogate,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+7
+	ncall remote_car_lpm_hibernate_switch,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+8
+	ncall remote_car_lpm_ldo_sel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+9
+	ncall remote_car_lpm_sysctl,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+10
+	ncall remote_car_lpm_hv_sel,blank	
+
+	fetch 1,mem_otp_sys_cfg_temp+11
+	ncall remote_car_fcomp_div,blank	
+	
+	fetch 1,mem_otp_sys_cfg_temp+12
+	ncall remote_car_xtal_c_sel,blank
+
+	fetch 5,mem_otp_sys_cfg_temp+13
+	ncall remote_car_version,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+18
+	ncall remote_car_le_tx2m_delay,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+19
+	ncall remote_car_gain_fix,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+20
+	ncall remote_car_rx_window_sniff,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+22
+	ncall remote_car_gain_table,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+25
+	ncall remote_car_gain_second_agc_en,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+26
+	ncall remote_car_ring_ibias_trim,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+27
+	ncall remote_car_ring_ibias_vtune_high,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+29
+	ncall remote_car_ring_ibias_vtune_low,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+31
+	ncall remote_car_ring_ibias_calc_adc_gpio,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+32
+	ncall remote_car_ring_ibias_calc_adc_channel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+37
+	ncall remote_car_tx_power,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+38
+	ncall remote_car_24g_tx_phy,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+39
+	ncall remote_car_24g_rx_phy,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+40
+	ncall remote_car_key_conf0,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+44
+	ncall remote_car_key_public_gpio,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+45
+	ncall remote_car_24g_tx_led_map,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+46
+	ncall remote_car_24g_addr,blank
+	
+	fetch 4,mem_otp_sys_cfg_temp+50
+	ncall remote_car_24g_ch_map1,blank
+	rtn
+	
+remote_car_system_clk:
+	store 1,mem_system_clk
+	rtn
+remote_car_lpm_xtalcnt:
+	store 3,mem_lpm_xtalcnt
+	rtn
+remote_car_lpm_isogate:
+	store 3,mem_lpm_isogate
+	rtn
+remote_car_lpm_hibernate_switch:
+	store 1,mem_lpm_hibernate_switch
+	rtn
+remote_car_lpm_ldo_sel:
+	store 1,mem_lpm_ldo_sel
+	rtn
+remote_car_lpm_sysctl:
+	store 1,mem_lpm_sysctl	
+	rtn
+remote_car_lpm_hv_sel:	
+	store 1,mem_lpm_hv_sel	
+	rtn
+remote_car_fcomp_div:
+	store 1,mem_fcomp_div
+	rtn
+remote_car_xtal_c_sel:
+	store 1,mem_xtal_c_sel
+	rtn
+remote_car_version:
+	store 5,mem_version
+	rtn	
+remote_car_le_tx2m_delay:
+	store 1,mem_le_tx2m_delay
+	rtn
+remote_car_gain_fix:
+	store 1,mem_gain_fix
+	rtn
+remote_car_rx_window_sniff:
+	store 2,mem_rx_window_sniff
+	rtn
+remote_car_gain_table:
+	store 3,mem_gain_table
+	rtn
+remote_car_gain_second_agc_en:
+	store 1,mem_gain_second_agc_en
+	rtn
+remote_car_ring_ibias_trim:
+	store 1,mem_ring_ibias_trim
+	rtn
+remote_car_ring_ibias_vtune_high:
+	store 2,mem_ring_ibias_vtune_high
+	rtn
+remote_car_ring_ibias_vtune_low:
+	store 2,mem_ring_ibias_vtune_low
+	rtn
+remote_car_ring_ibias_calc_adc_gpio:
+	store 1,mem_ring_ibias_calc_adc_gpio
+	rtn
+remote_car_ring_ibias_calc_adc_channel:
+	store 1,mem_ring_ibias_calc_adc_channel
+	rtn
+remote_car_tx_power:
+	store 1,mem_tx_power
+	rtn
+remote_car_24g_tx_phy:
+	store 1,mem_24g_tx_phy
+	rtn
+remote_car_24g_rx_phy:
+	store 1,mem_24g_rx_phy
+	rtn
+remote_car_key_conf0:
+	store 4,mem_remote_car_key_conf0
+	rtn
+remote_car_key_public_gpio:
+	store 1,mem_key_public_gpio
+	rtn
+remote_car_24g_tx_led_map:
+	store 1,mem_24g_tx_led_map
+	rtn
+remote_car_24g_addr:
+	store 4,mem_24g_addr
+	rtn
+remote_car_24g_ch_map1:
+	store 4,mem_24g_ch_map1
+	rtn
+
+
+
+
+	
+remote_car_set__lpm_timer_set:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	beq G24_UNCONNECT,remote_car_set_uconnect_lpm_time
+	beq G24_CONNECTED, remote_car_set_connected_lpm_time      
+	rtn
+remote_car_set_uconnect_lpm_time:
+	setarg 0
+	store 2,mem_24g_lpm_timer_count
+	setarg 300
+	store 2,mem_24g_lpm_enter_count     
+	rtn
+remote_car_set_connected_lpm_time:
+	setarg 0
+	store 2,mem_24g_lpm_timer_count
+	setarg 15
+	store 2,mem_24g_lpm_enter_count     
+	rtn
+
+
+remote_car_get_txid:
+	call enable_otp_read
+	arg mem_remote_otp_lot_xy_temp,rega
+	arg OTP_MAC_ADDR,regb
+	arg 6,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 6,mem_remote_otp_lot_xy_temp
+	rtn blank
+	fetch 2,mem_remote_otp_lot_xy_temp
+	store 2,mem_le_lap
+	fetch 1,mem_remote_otp_lot_xy_temp+3
+	store 1,mem_le_lap+2
+	fetch 1,mem_remote_otp_lot_xy_temp+5
+	store 1,mem_le_lap+3
+
+	fetch 1,mem_remote_otp_lot_xy_temp+1
+	sub pdata,26,null  //	piece num max is 25
+	nrtn positive
+	
+	fetch 1,mem_remote_otp_lot_xy_temp+2
+	rtn blank
+	random pdata
+	and_into 0x07,pdata
+	lshift pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 1,mem_remote_otp_lot_xy_temp+1
+	iadd temp,pdata
+	store 1,mem_le_lap+1
+	arg mem_le_lap+1,rega
+	arg OTP_MAC_ADDR_PIECENUM,regb
+	arg 1,loopcnt
+	branch otp_write	
+
+remote_car_txid_check:
+	arg mem_le_lap,rega
+	arg mem_remote_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	fetch 1,mem_le_lap
+	pincrease -1
+	store 1,mem_le_lap
+	rtn
+
+remote_car_whitening_24g_addr:
+	arg 4,loopcnt
+	arg mem_24g_addr,regc
+	arg 0xae,regb
+remote_car_24g_whitening_loop:
+	call remote_car_24g_whitening_byte
+	increase 1, regc
+	loop remote_car_24g_whitening_loop
+	rtn
+
+remote_car_24g_whitening_byte:
+	arg 1, rega     //rega is m
+remote_car_24g_whitening_byte_loop:
+	lshift regb, regb    //regb is seed
+	isolate1 7, regb
+	call remote_car_24g_whitening_byte_xor, true
+	lshift rega, rega
+	deposit rega
+	rtnbit1 8
+	branch remote_car_24g_whitening_byte_loop
+	
+remote_car_24g_whitening_byte_xor:	
+	ifetch 1,regc
+	ixor rega, pdata
+	istore 1, regc
+	xor regb, 0x11, regb
+	rtn
+
+	
+remote_car_lpm_gpio_config_flag_init:
+	arg 0,temp
+	arg mem_remote_car_key_conf0+1,contr
+	arg 2,loopcnt	
+remote_car_iocfg_pullup_loop:
+	ifetch 1,contr
+	set0 7,pdata
+	copy pdata,queue
+	setarg 0
+	qset1 pdata
+	iadd temp,temp
+	loop remote_car_iocfg_pullup_loop
+	storet 4,mem_remote_lpm_gpio_config_flag
+	rtn
+
+
+remote_car_idle_process:	
+	bpatch patch06_4,mem_patch06
+	fetch 2,mem_remote_le_24g_ch_count
+	increase 1,pdata
+	store 2,mem_remote_le_24g_ch_count
+	rshift2 pdata,pdata
+	call remote_car_set_24g_ch
+	call remote_car_g24_recved_ack_parse
+remote_car_24g_matching_process:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	beq G24_UNCONNECT,remote_car_send_pair_request
+	beq G24_CONNECTED, remote_car_send_remote_control
+	rtn
+
+
+remote_car_set_24g_ch:
+	beq 0,remote_car_set_ch0
+	beq 1,remote_car_set_ch1
+	beq 2,remote_car_set_ch2
+	beq 3,remote_car_set_ch3
+	branch remote_car_set_ch_reset
+	
+remote_car_set_ch0:
+	fetch 1,mem_24g_ch_map1
+	store 1,mem_24g_ch
+	rtn
+remote_car_set_ch1:
+	fetch 1,mem_24g_ch_map1+1
+	store 1,mem_24g_ch
+	rtn
+remote_car_set_ch2:
+	fetch 1,mem_24g_ch_map1+2
+	store 1,mem_24g_ch
+	rtn
+remote_car_set_ch3:
+	fetch 1,mem_24g_ch_map1+3
+	store 1,mem_24g_ch
+	rtn    
+remote_car_set_ch_reset:
+	setarg 0
+	store 2,mem_remote_le_24g_ch_count
+	rtn
+
+        
+remote_car_send_pair_request:
+	jam G24_TX_PAIR_REQUEST,mem_remote_24g_tx_payload_temp
+	fetch 4,mem_le_lap
+	store 4,mem_remote_24g_tx_payload_temp+1
+	branch remote_car_g24_sim_tx_with_datalen_set
+
+
+remote_car_g24_sim_tx_with_datalen_set:	
+	set0 mark_24g_rxmode,mark
+	setarg 0x2ee0    
+	store 2, mem_24g_rx_window //unit:1/12us
+	fetch 7,mem_remote_24g_tx_payload_temp
+	store 7,mem_24g_txbuf
+	fetch 5,mem_remote_24g_tx_payload_temp+7
+	store 5,mem_24g_txbuf+7	
+	arg LEN_OF_24G_PAYLOAD,loopcnt
+	arg 0,pdata
+	arg mem_24g_txbuf,contr
+	call cal_sum	
+	istore 1,contw
+	setarg LEN_OF_24G_PAYLOAD
+	increase 1,pdata
+	store 1,mem_24g_datalen
+	branch remote_car_g24_sim_tx
+
+
+
+remote_car_g24_sim_tx:
+	fetch 1,mem_24g_tx_phy
+	call le_enable_phy_by_pdata
+	call g24_syncword_crc8
+	jam 0x88,mem_rssi_hex
+//	call ice_break
+	call g24_transmit_prep
+	call g24_transmit_receive_ack
+	call g24_end_of_packet
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,remote_car_g24_transmit_no_ack
+	nbranch remote_car_g24_transmit_no_ack, user3    //if(user3 == 0) means a invaild packet.
+	nbranch remote_car_g24_transmit_no_ack,sync
+	call remote_car_24g_recved_ack
+remote_car_g24_transmit_no_ack:	
+	random pdata 
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata
+	branch delay
+
+
+remote_car_24g_recved_ack:
+	jam 1, mem_remote_le_24g_recv_ack_flag
+	rtn
+
+remote_car_g24_recved_ack_parse:
+	fetch 1, mem_remote_le_24g_recv_ack_flag
+	rtn blank
+	jam 0, mem_remote_le_24g_recv_ack_flag
+	fetch 1,mem_24g_rxbuf+2
+	beq G24_RX_PAIR_RESPONES,remote_car_g24_tx_connected
+	rtn
+
+
+remote_car_g24_tx_connected:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	nrtn blank
+	arg mem_24g_rxbuf+7,rega
+	arg mem_le_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	call lpm_write_ice_disable
+	jam G24_CONNECTED,mem_remote_le_24g_tx_pair_mode
+	fetch 4,mem_24g_rxbuf+3
+	store 4,mem_remote_24g_addr_other
+	store 4,mem_remote_24g_tx_payload_temp+5
+	
+	branch remote_car_set_connected_lpm_time
+		
+
+
+remote_car_send_remote_control:
+	bpatch patch06_5,mem_patch06
+	fetch 1,mem_le_24g_tx_send_flag
+	increase 1,pdata
+	store 1,mem_le_24g_tx_send_flag
+	jam 0,mem_remote_24g_tx_payload_temp
+	setarg 0
+	store 3,mem_remote_24g_tx_payload_temp+9
+	jam G24_TX_REMOTE_CONTROL,mem_remote_24g_tx_payload_temp
+	call remote_car_scan_key
+	call remote_car_set_tx_key_led
+	fetch 1,mem_le_24g_tx_send_flag
+	beq 200,remote_car_24g_tx_send_none
+	branch remote_car_g24_sim_tx_with_datalen_set
+
+
+remote_car_scan_key:
+	fetcht 1,mem_key_public_gpio
+	call gpio_out_inactive
+	call remote_car_key_scan_fb
+	call remote_car_key_scan_lr
+	//call remote_car_key_scan_mult
+	fetcht 1,mem_key_public_gpio
+	branch gpio_set_high_impedance
+		
+
+remote_car_key_scan_lr:
+	fetcht 1,mem_remote_car_key_conf3
+	call gpio_out_inactive
+
+	fetcht 1,mem_remote_car_key_conf3
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyR,true
+	
+	fetcht 1,mem_remote_car_key_conf3
+	call gpio_out_active
+	nop 1200
+	fetcht 1,mem_remote_car_key_conf2
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyL,true
+	rtn
+remote_car_key_scan_fb:
+	fetcht 1,mem_remote_car_key_conf0
+	call gpio_out_inactive
+
+	fetcht 1,mem_remote_car_key_conf0 
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyF,true
+	
+	fetcht 1,mem_remote_car_key_conf0
+	call gpio_out_active
+	nop 1200
+	fetcht 1,mem_remote_car_key_conf1
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyB,true
+	rtn
+
+remote_car_set_keyF:
+	jam 1,mem_remote_24g_tx_payload_temp+9
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+	
+remote_car_set_keyB:
+	jam 2,mem_remote_24g_tx_payload_temp+9
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+	
+remote_car_set_keyL:
+	jam 1,mem_remote_24g_tx_payload_temp+10
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+	
+remote_car_set_keyR:
+	jam 2,mem_remote_24g_tx_payload_temp+10
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+
+remote_car_set_keyM:
+	jam 1,mem_remote_24g_tx_payload_temp+11
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+
+remote_car_set_tx_key_led:
+	fetch 3,mem_remote_24g_tx_payload_temp+9
+	branch remote_car_24g_led_off+1,blank
+	setarg 0
+	store 2,mem_24g_lpm_timer_count
+	setarg 15
+	store 2,mem_24g_lpm_enter_count        
+	branch remote_car_24g_led_on
+
+remote_car_24g_tx_send_none:
+	fetch 1,mem_le_24g_tx_send_flag
+	increase -1,pdata
+	store 1,mem_le_24g_tx_send_flag
+	rtn
+
+
+remote_car_24g_set_led:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	rtneq G24_CONNECTED
+	fetch 1,mem_24g_led_count
+	increase 1,pdata
+	store 1,mem_24g_led_count
+	beq 2,remote_car_24g_led_on
+	beq 4,remote_car_24g_led_off
+	rtn	
+	
+remote_car_24g_led_on:
+	fetcht 1,mem_24g_tx_led_map
+	branch gpio_out_inactive
+        
+remote_car_24g_led_off:
+	jam 0,mem_24g_led_count
+	fetcht 1,mem_24g_tx_led_map
+	branch gpio_out_active	
+
+	
+remote_car_lpm_timeout_set:
+	fetch 2,mem_24g_lpm_enter_count
+	rtn blank
+	fetcht 2,mem_24g_lpm_timer_count
+	ixor temp,pdata
+	call remote_car_enter_lpm,blank
+	fetch 2,mem_24g_lpm_timer_count
+	increase 1,pdata
+	store 2,mem_24g_lpm_timer_count
+	rtn
+        
+remote_car_cb_event_timer:
+	call remote_car_24g_set_led
+	branch remote_car_lpm_timeout_set
+
+
+remote_car_enter_lpm:	
+	call lpm_write_ice_disable
+	call remote_car_enter_lpm_gpio_config
+	call remote_car_wakeup_config	
+	arg -1,temp
+	branch lpm_sleep
+
+
+remote_car_enter_lpm_gpio_config:
+	arg 24, loopcnt
+	jam 0, mem_remote_lpm_gpio_config_io_temp   
+remote_car_enter_lpm_gpio_config_loopcnt:
+	fetcht 1, mem_remote_lpm_gpio_config_io_temp
+	copy temp, queue
+	fetch 4, mem_remote_lpm_gpio_config_flag    
+	qisolate1 pdata
+	branch remote_car_enter_lpm_gpio_config_pull_up, true
+	or temp, 0x80, temp
+  
+remote_car_enter_lpm_gpio_config_pull_up: 
+	call gpio_config_input
+	fetch 1, mem_remote_lpm_gpio_config_io_temp
+	pincrease 1
+	store 1, mem_remote_lpm_gpio_config_io_temp
+	loop remote_car_enter_lpm_gpio_config_loopcnt
+	rtn
+
+remote_car_set_value:
+	setarg 0x30
+remote_car_gpio_wakeup_cfg:	
+	copy contw,contr
+	ifetcht 1,contr
+	iadd temp,pdata
+	istore 1,contw
+	arg mem_gpio_wakeup_cfg,contw
+	arg mem_remote_car_key_conf0+2,contr
+	loop remote_car_wakeup_config_loop
+	rtn
+
+remote_car_wakeup_config:
+	setarg 0
+	store 0x0c,mem_gpio_wakeup_cfg
+	arg mem_gpio_wakeup_cfg,contw
+	arg mem_remote_car_key_conf0+1,contr
+	arg 2,loopcnt
+remote_car_wakeup_config_loop:
+	ifetch 1,contr
+	set0 7,pdata
+	div pdata,2
+	call wait_div_end
+	quotient pdata	
+	iadd contw,contw
+	remainder pdata
+	nbranch remote_car_set_value,blank
+	setarg 0x03
+	branch remote_car_gpio_wakeup_cfg
+
+	
+	
+	
+
+
+
+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_6,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 patch06_7,mem_patch06
+	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_0,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:
+	bpatch patch07_1,mem_patch07
+	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 0x41,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 32,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:
+	bpatch patch07_2,mem_patch07
+	call dongle_g24_ms_blank_data
+	call dongle_g24_kb_blank_data
+	call dongle_g24_kb_sys_ctrl_blank_data
+	call dongle_g24_kb_bit_consumer_blank_data
+	branch dongle_g24_kb_mul_blank_data
+
+dongle_g24_ms_blank_data:
+	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:
+	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:
+	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_g24_kb_bit_consumer_blank_data:
+	fetch 1,mem_dg_kb_bit_consumer_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_BIT_CONSUMER_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_bit_consumer_blank_data_enable
+	arg mem_usb_kb_multikey,contw
+	call memset0_16
+	jam KB_BIT_CONSUMER_REPORT_ID,mem_usb_kb_multikey
+	fetch 4,mem_usb_kb_multikey
+	store 4,mem_dg_kb_bit_consumer_last_data	
+dongle_usb_tx_bit_consumer_data:
+	jam USB_EP2_BIT_CONSUMER,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+
+dongle_usb_dispatch:
+	bpatch patch07_3,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:
+	fetch 4,mem_dg_device_version
+	store 4,mem_usb0_get_report_data+1
+	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_4,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:
+	bpatch patch07_5,mem_patch07
+	jam 1,mem_24g_ackpayload_enable
+	fetch 1,mem_24g_work_mode
+	rtneq DONGLE_WORK
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	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,g24_bind_ackpayload_prep
+	beq DATATYPE_ATTEMP,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
+	beq 5,dongle_g24_kb_type_bit_consumer
+	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_type_bit_consumer:
+	arg mem_usb_kb_multikey,contw
+	arg mem_24g_rxdata_temp+3,contr
+	arg 4,loopcnt
+	call memcpy
+	fetch 3,mem_usb_kb_multikey+1
+	ncall dongle_g24_kb_bit_consumer_enable_blank_data_forcibly,blank//get multikey data
+	fetch 3,mem_usb_kb_multikey+1
+	call dongle_g24_kb_bit_consumer_disable_blank_data_forcibly,blank
+	fetch 3,mem_usb_kb_multikey+1
+	store 3,mem_dg_kb_bit_consumer_sta_data
+	fetcht 3,mem_dg_kb_bit_consumer_last_data
+	isub temp,null
+	ncall dongle_usb_tx_bit_consumer_data,zero
+	fetch 3,mem_dg_kb_bit_consumer_sta_data
+	store 3,mem_dg_kb_bit_consumer_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_bit_consumer_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_bit_consumer_blank_data_enable
+	setarg TIMER_KB_MUL_BLANK_DELAY
+	arg G24_TIMER_KB_BIT_CONSUMER_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_bit_consumer_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_bit_consumer_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_BIT_CONSUMER_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
+
+
+
+
+
+keyboard_softreset_process:
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_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_wakeup_from_power_check:
+	disable user
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_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
+	branch mouse_wakeup_from_poweron
+
+keyboard_default_init:
+	call hid_device_default_parm_init
+	call keyboard_xtal_init
+	call keyboard_24g_phy_select
+	branch g24_pair_param_init
+
+keyboard_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+keyboard_24g_phy_select:
+	call g24_enable_1M
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_2M_PHY
+	branch g24_enable_2M
+
+
+keyboard_init:
+	call enable_authrom
+	call keyboard_setting_config
+
+	call keyboard_gpio_init
+	call keyboard_low_vol_mult_set
+	call lpm_config_puchk_disable
+	rtn wake
+	call keyboard_cb_fuction
+	fetch 1,mem_device_flag
+	beq MODE_USB_DEVICE,keyboard_usb_mode_start
+keyboard_init_wireless:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,keyboard_start_discovery
+	jam 0,mem_keyboard_switch_count_temp
+	call keyboard_check_select_device_by_switch
+	jam 1,mem_keyboard_switch_count_temp
+	branch keyboard_start_work
+
+keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call keyboard_param_init
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	call keyboard_pwm_init
+	call le_set_fixed_ltk_justwork
+	bpatch patch07_6,mem_patch07
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_load_eeprom_info
+	bbit1 KEYBOARD_ENABLE_FLASH,keyboard_load_flash_info
+	rtn
+
+keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+
+keyboard_param_init:
+	call keyboard_compare_addr_init
+	call keyboard_param_common_init
+	call keyboard_adc_vol_init
+	fetch 1,mem_keyboard_device_poweron_timer_init
+	store 1,mem_keyboard_device_poweron_timer
+	jam 0,mem_same_keyvalue_timerout_flag
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	call clear_mem
+
+	fetch 1,mem_le_name_len
+	sub pdata,12,null
+	nbranch keyboard_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
+keyboard_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
+
+keyboard_ble_name_set_no_swift_pair:
+	arg mem_le_adv_swift_pair,contw
+	branch keyboard_ble_store_le_name
+
+keyboard_compare_addr_init:
+	arg 0,temp
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+
+/////////////////////////////////////////////////////////------gpio------///////////////////////////////////////////////////////////
+keyboard_gpio_init:
+	call clear_wake
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call device_gpio_config_input_pu
+
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_DISABLE_ICE,pdata
+	call lpm_write_ice_disable,true
+
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+	call keyboard_key_row_init
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,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
+
+keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_gpio_set_low_pullup,zero
+	increase 1,regb
+	loop keyboard_key_row_init_loop
+	branch lpm_write_gpio_wakeup
+
+keyboard_gpio_set_low_pullup:
+	call gpio_set_high_impedance
+	ifetcht 1,regb
+	branch gpio_set_low_pullup
+
+keyboard_gpio_pu_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+keyboard_gpio_pu_idle_loop:
+	ifetch 1,contr
+	nbranch keyboard_gpio_pu_idle_configured,blank
+	setarg gpcfg_pullup
+	add contr,-1,contw
+	istore 1,contw
+keyboard_gpio_pu_idle_configured:
+	loop keyboard_gpio_pu_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch keyboard_gpio_pu_idle_loop
+
+keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////otp  eeprom flash/////////////////////////////////////////////////////////////
+keyboard_pairing_check_otp_offset:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	nrtn positive
+	branch assert
+
+//  otp process
+keyboard_load_otp_info:
+	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 8,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fbc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info_ble_init:
+	arg 32,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fb0,pdata
+	arg 16,temp
+	arg 16,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+keyboard_load_otp_info_check_page_loop:
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+	branch keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	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:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+keyboard_load_otp_info_check_first_time_loop:
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+	branch keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	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	//4
+	rtn
+keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fc0
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,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_device_24g_addr
+	fetch 4,mem_device_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	fetcht 2,mem_otp_read_retention_memory+14
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	branch hid_device_select_reconn_device
+
+
+keyboard_load_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_load_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_load_eeprom_info,true
+keyboard_load_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+keyboard_load_info_check:
+	bpatch patch07_7,mem_patch07
+	call keyboard_app_initflag_check
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_info_24g
+	beq MODE_BT_DEVICE1,keyboard_load_info_bt1
+	beq MODE_BT_DEVICE2,keyboard_load_info_bt2
+	beq MODE_BT_DEVICE3,keyboard_load_info_bt3
+	beq MODE_USB_DEVICE,keyboard_load_info_usb
+keyboard_load_info_24g:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_24g_fn_lock
+keyboard_load_info_fn_lock:
+	sub pdata,1,null
+	ncall set_pdata_0,zero
+	store 1,mem_keyboard_fn_lock_flag
+	rtn
+keyboard_load_info_bt1:
+	fetch 1,mem_keyboard_bt1_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt1_computer_system
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+keyboard_load_info_bt:
+	store 1,mem_kb_computer_system
+	fetcht 2,mem_random_addr_increase_count
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	rtn
+keyboard_load_info_bt2:
+	fetch 1,mem_keyboard_bt2_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt2_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_bt3:
+	fetch 1,mem_keyboard_bt3_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt3_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_usb:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_usb_fn_lock
+	branch keyboard_load_info_fn_lock
+
+keyboard_app_initflag_check:
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+	storet 2,mem_store_flag
+	call hid_device_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
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info
+
+keyboard_load_flash_info:
+	call hid_device_load_flash_info_check
+	branch keyboard_load_info_check
+
+keyboard_store_device_info:
+	bpatch patch08_0,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_store_otp_device_info
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_eeprom_device_info
+	bbit1 KEYBOARD_ENABLE_FLASH,hid_device_store_flash_device_info
+	rtn
+
+keyboard_store_otp_device_info:
+	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 0x1fc0
+	isub temp,regb
+	arg mem_device_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:
+	jam 1,mem_otp_store_device_info_flag
+	fetch 1,mem_otp_store_system_flag
+	rtn blank
+keyboard_wirte_otp_ble:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,pdata
+	store 2,mem_pdatatemp
+
+	copy pdata,regb
+	arg mem_kb_computer_system,rega
+	arg 1,loopcnt
+	call otp_write   
+
+	fetch 2,mem_pdatatemp
+	add pdata,1,regb
+	arg mem_device1_type,rega
+	arg 13,loopcnt
+	call otp_write   
+
+	fetch 2,mem_pdatatemp
+	add pdata,14,regb
+	arg mem_random_addr_increase_count,rega
+	arg 2,loopcnt
+	call otp_write  
+
+	fetcht 2,mem_otp_read_retention_offset
+	increase 16,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+keyboard_store_eeprom_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_store_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_store_device_info_delay,true
+keyboard_store_eeprom_device_info_next:
+	call keyboard_eeprom_init
+keyboard_store_eeprom_device_info_typer_check:
+	fetch 1,mem_keyboard_device_info_store_flag
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,keyboard_store_eeprom_device_all_info
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,keyboard_store_eeprom_device_info_ble_addr
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,keyboard_store_eeprom_device_info_g24_addr
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,keyboard_store_eeprom_device_info_fn_lock
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,keyboard_store_eeprom_device_info_device_os
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,keyboard_store_eeprom_device_info_rgb_tpye
+	rtn
+keyboard_store_eeprom_device_all_info:
+	jam 0,mem_keyboard_device_info_store_flag
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+keyboard_store_eeprom_device_info_ble_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 39,temp
+	arg mem_device1_type,rega
+	arg KEYBOARD_BLE_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_g24_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_device_24g_addr,rega
+	arg KEYBOARD_G24_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_fn_lock:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 5,temp
+	arg mem_keyboard_24g_fn_lock,rega
+	arg KEYBOARD_FN_FLAG_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_device_os:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 3,temp
+	arg mem_keyboard_bt1_computer_system,rega
+	arg KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_rgb_tpye:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_backlight_on_flag,rega
+	arg KEYBOARD_RGB_TPYE_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+
+keyboard_store_device_number:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+keyboard_eeprom_init:
+	call iicd_read_init_pin
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_ENABLE_2K_EEPROM,pdata
+	branch set_eeprom_size_2k,true
+	branch clear_eeprom_size_2k
+////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////cb_function//////////////////////////////////////////////////////
+keyboard_cb_fuction:
+	bpatch patch08_1,mem_patch08
+	setarg hid_device_before_lpm_set
+	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
+	branch hid_device_cb_fuction
+
+/////////////////////////////////////keyboard event/////////////////////////////////////////////////////////////////////
+
+keyboard_priority_bb_event:
+	bpatch patch08_2,mem_patch08
+	copy regc,pdata
+
+	beq BT_EVT_LE_START_ENC,keyboard_le_ll_start_encryt
+	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 timer/////////////////////////////////////////////////////////////////////
+
+keyboard_bb_event_timer:
+	bpatch patch08_3,mem_patch08
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call keyboard_device_pair_led_timer
+
+	//key
+	call keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	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
+
+	//le
+	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 keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+////////////////////////////////////////////////////////////////adc/////////////////////////////////////////////
+keyboard_adc_vol_init:
+	bpatch patch08_4,mem_patch08
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_1V5,keyboard_adc_vol_1v5_init
+	beq KEYBOARD_BATTARY_3V0,keyboard_adc_vol_3v0_init
+	beq KEYBOARD_BATTARY_4V2,keyboard_adc_vol_4v2_init
+keyboard_adc_vol_1v5_init:
+	setarg 0x560094		// 0x0094--1.5V  0x0056--0.9V  0x0060--1.0V  0x006d--1.1V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x006d00
+	istore 3,contw
+	rtn
+keyboard_adc_vol_3v0_init:
+	setarg 0xd4012c		// 0x0094--3.0V  0x00d4--2.1V  0x00dc--2.2V  0x00e6--2.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x00e600
+	istore 3,contw
+	rtn
+keyboard_adc_vol_4v2_init:
+	setarg 0x2c01270		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014001
+	istore 3,contw
+	rtn
+
+keyboard_adc_init:
+	call keyboard_adc_gpio_set
+	branch keyboard_low_voltage_param_set
+
+keyboard_adc_gpio_set:
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel
+	call keyboard_channel_set_gpio
+	copy temp,pdata
+	store 1,mem_adc_channel_gpio
+	set1 GPIO_ACTIVE_BIT,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function
+
+keyboard_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
+	rtn
+
+keyboard_adc_read_start:
+	call keyboard_adc_init
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_device_vdd_now_vol
+	arg mem_device_vdd_calculate_set,rega
+	branch mouse_adc_bat_percent_lowpower_out
+
+keyboard_adc_read:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	call keyboard_adc_read_start
+keyboard_adc_data_process:
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+	bbit0 0,keyboard_adc_no_low_voltage
+	jam 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_adc_low_voltage
+
+keyboard_adc_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_adc_no_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	call keyboard_disable_function_flag
+	jam 12,mem_keyboard_adc_low_volatage_led_timer_count
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_led_off
+
+keyboard_adc_gpio_set_before_hibernate:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	branch mouse_adc_gpio_set_before_hibernate+2
+
+keyboard_low_voltage_param_set:
+	fetch 6,mem_keyboard_vdd_full_vol
+	store 6,mem_device_vdd_full_vol
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_param_reset,blank
+	fetch 2,mem_keyboard_vdd_low_vol
+	increase 5,pdata
+	store 2,mem_device_vdd_low_vol
+	rtn
+keyboard_low_voltage_param_reset:
+	fetch 2,mem_keyboard_vdd_low_vol
+	store 2,mem_device_vdd_low_vol
+	rtn
+
+keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	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:
+	setarg 160			// 320ms
+	call keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch keyboard_mult_auto_get
+
+keyboard_mult_auto_get:
+	fetcht 2,mem_le_interval_min
+	idiv temp
+	call get_div_result
+	store 1,mem_lpm_mult_init
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+
+
+////////////////////////////////////////////////////adc end///////////////////////////////////////////////
+
+///////////////////////////////////////////////////led///////////////////////////////////////////////////////
+keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	rtnbit0 KEYBOARD_ENABLE_LOW_LED
+	rtnbit0 KEYBOARD_LOW_VOLTAGE_FLAG
+	bbit1 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,keyboard_low_voltage_led_blink_new_data
+	bpatch patch08_5,mem_patch08
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall keyboard_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,keyboard_low_voltage_led_on
+	beq 4,keyboard_low_voltage_led_off
+	beq 6,keyboard_low_voltage_led_on
+	beq 8,keyboard_low_voltage_led_off
+	rtn
+keyboard_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_keyboard_adc_low_volatage_led_timer_count
+	branch keyboard_low_voltage_led_off
+
+keyboard_low_voltage_led_blink_new_data:
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_adc_low_volatage_led_blink_timer
+	isub temp,null
+	nbranch keyboard_low_voltage_led_off,positive
+	jam 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_low_voltage_led_on,positive
+	call keyboard_low_voltage_led_off
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_low_volatage_led_flag
+	rtn
+
+
+keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,keyboard_device_poweron_030_led
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+keyboard_device_poweron_030_led:
+	branch keyboard_power_led_off,blank
+keyboard_power_led_on:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_active
+keyboard_power_led_off:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_inactive
+
+keyboard_mode_led_timer:
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_mode_led_on_timer
+	bbit1 0,keyboard_device_led_on
+	branch keyboard_device_led_off
+
+
+keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_pair_led
+	fetch 2,mem_device_discovery_timer
+	rtn blank
+	branch keyboard_device_pair_led
+
+keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	rtn blank
+keyboard_device_pair_led:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate0 KEYBOARD_ENABLE_030_POWER_LED,pdata
+	call keyboard_device_clear_power_timer,true
+	fetch 1,mem_keyboard_pair_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_device_led_on,positive
+	call keyboard_device_led_off
+	fetch 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_pair_led_flag
+	rtn
+
+keyboard_device_clear_power_timer:
+	jam 0,mem_keyboard_device_poweron_timer
+	rtn
+
+keyboard_device_led_all_off:
+	bpatch patch08_6,mem_patch08
+	call keyboard_power_led_off
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_device_led_off:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_off
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_off
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_off
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_off
+	rtn
+
+keyboard_device_led_on:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_on
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_on
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_on
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_on
+	rtn
+
+keyboard_device_24g_led_off:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt1_led_off:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt2_led_off:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt3_led_off:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_24g_led_on:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt1_led_on:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt2_led_on:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt3_led_on:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_active
+
+keyboard_low_voltage_led_on:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_active
+
+keyboard_low_voltage_led_off:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_inactive
+
+
+keyboard_num_capslock_led_on_timer:
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_led_check
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_num_caps_scoll_led_on_timer
+	isub temp,pdata
+	branch keyboard_num_cap_scoll_led_check,positive
+	call keyboard_numlock_led_off
+	call keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_usb_led_check:
+	fetch 1,mem_24g_led_status
+	store 1,mem_keyboard_led_status
+	branch keyboard_num_cap_scoll_led_check
+
+keyboard_num_cap_scoll_led_check:
+	call keyboard_numlock_led_check_on
+	call keyboard_scrolllock_led_check_on
+	branch keyboard_capslock_led_check_on
+
+keyboard_numlock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_NUMLOCK,keyboard_numlock_led_off
+keyboard_numlock_led_on:
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_active
+keyboard_numlock_led_off:
+	fetcht 1,mem_keyboard_num_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_capslock_led_off:
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_inactive
+
+keyboard_scrolllock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_SCROLLLOCK,keyboard_scrolllock_led_off
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_active
+keyboard_scrolllock_led_off:
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_on_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_rgb_on_timer
+	isub temp,pdata
+	rtn positive
+	jam 0,mem_backlight_on_flag
+	branch keyboard_rgb_off
+
+////////////////////////////////////////backlight pwm//////////////////////////////////////////////////////////
+keyboard_pwm_init:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	arg 0,rega 	//sys clk 12mhz
+	call pwm_init
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	call pwm_out_set
+	fetch 2,mem_rgb_pwm_conf
+	branch pwm_disable
+
+keyboard_rgb_pwm_disable:
+	fetch 1,mem_keyboard_led_r_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_g_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_b_gpio
+	branch pwm_disable
+
+keyboard_rgb_pwm_set:
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	branch pwm_out_set
+
+keyboard_load_rgb:
+	bpatch patch08_7,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 1,mem_backlight_on_flag
+	call keyboard_rgb_mode_switch_next
+	fetch 1,mem_backlight_on_type
+	branch keyboard_rgb_on_type_switch_next
+
+keyboard_rgb_mode_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	call keyboard_store_eeprom_or_flash
+	jam 0,mem_backlight_breathe_type
+	jam 0,mem_rgb_pwm_breathe_flag
+	jam 10,mem_rgb_pwm_conf+5
+	fetch 1,mem_backlight_on_flag
+	increase 1,pdata
+keyboard_rgb_mode_switch_next:
+	sub pdata,RGB_BACKLIGHT_STATUS_BREATHE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_flag
+	rtn
+
+keyboard_rgb_on_type_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_backlight_on_flag
+	rtnne RGB_BACKLIGHT_STATUS_ON
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	call keyboard_store_eeprom_or_flash
+	fetch 1,mem_backlight_on_type
+	increase 1,pdata
+keyboard_rgb_on_type_switch_next:
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	rtn
+
+keyboard_rgb_process:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetcht 4,mem_ui_check_timer_setup
+	copy clkn_bt,pdata
+	isub temp,pdata
+	fetcht 2,mem_customize_timer_setup		// * 0.3125ms
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn blank
+	copy clkn_bt,temp
+	storet 4,mem_ui_check_timer_setup
+	fetch 1,mem_backlight_on_flag
+	beq RGB_BACKLIGHT_STATUS_BREATHE,keyboard_rbg_breathe_process
+	beq RGB_BACKLIGHT_STATUS_ON,keyboard_rgb_on_process
+	jam 0,mem_backlight_on_flag
+keyboard_rgb_off:
+	bpatch patch09_0,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_rgb_pwm_disable
+	jam 0,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+keyboard_rbg_breathe_process:
+	fetch 1,mem_rgb_pwm_breathe_flag
+	branch keyboard_rbg_breathe_up,blank
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,5,null
+	branch keyboard_rbg_breathe_color_switch,positive
+	increase -1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	branch keyboard_rgb_pwm
+
+keyboard_rbg_breathe_up:
+	fetch 1,mem_rgb_pwm_conf+5
+	increase 1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	call keyboard_rgb_pwm
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,90,null
+	rtn positive
+	jam 1,mem_rgb_pwm_breathe_flag
+	rtn
+
+keyboard_rbg_breathe_color_switch:
+	jam 0,mem_rgb_pwm_breathe_flag
+	fetch 1,mem_backlight_breathe_type
+	increase 1,pdata
+	sub pdata,RGB_BACKLIGHT_BREATHE_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_breathe_type
+	rtn
+
+keyboard_rgb_pwm:
+	call keyboard_pwm_init
+	call keyboard_rgb_off+4
+	branch keyboard_breathe_tpye_select
+
+keyboard_breathe_tpye_select:
+	fetch 1,mem_backlight_breathe_type
+	beq RGB_BACKLIGHT_BREATHE_TPYE_RED,keyboard_breathe_tpye_red
+	beq RGB_BACKLIGHT_BREATHE_TPYE_GREEN,keyboard_breathe_tpye_green
+	beq RGB_BACKLIGHT_BREATHE_TPYE_BLUE,keyboard_breathe_tpye_blue
+	beq RGB_BACKLIGHT_BREATHE_TPYE_CYAN,keyboard_breathe_tpye_cyan
+	beq RGB_BACKLIGHT_BREATHE_TPYE_ORANGE,keyboard_breathe_tpye_orange
+	beq RGB_BACKLIGHT_BREATHE_TPYE_PURPLE,keyboard_breathe_tpye_purple
+	beq RGB_BACKLIGHT_BREATHE_TPYE_WHITE,keyboard_breathe_tpye_white
+keyboard_breathe_tpye_red:
+	fetch 1,mem_keyboard_led_r_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x01
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_green:
+	fetch 1,mem_keyboard_led_g_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x02
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_blue:
+	fetch 1,mem_keyboard_led_b_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x04
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_cyan:
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_orange:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_green
+
+keyboard_breathe_tpye_purple:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_white:
+	call keyboard_breathe_tpye_red
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_rgb_on_process:
+	call keyboard_rgb_pwm_disable
+	fetch 1,mem_backlight_on_type
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	arg mem_rgb_on_color,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+
+keyboard_rgb_led_control:
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_RED_STATUS,pdata
+	call keyboard_rgb_red_led_on,true
+	ncall keyboard_rgb_red_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_GREEN_STATUS,pdata
+	call keyboard_rgb_green_led_on,true
+	ncall keyboard_rgb_green_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_BLUE_STATUS,pdata
+	call keyboard_rgb_blue_led_on,true
+	ncall keyboard_rgb_blue_led_off,true
+	rtn
+
+keyboard_rgb_red_led_on:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_red_led_off:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_active
+
+keyboard_rgb_green_led_on:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_green_led_off:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_active
+
+keyboard_rgb_blue_led_on:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_blue_led_off:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_active
+
+////////////////////////////////////////////////////led end////////////////////////////////////////////////////////
+
+///////////////////////////event timer///////////////////////////////////////////////////////////////////////////
+keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,keyboard_device_select_g24_press_timer
+	call keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,keyboard_device_select_bt_press_timer
+	branch keyboard_device_select_bt_nopress_timer
+
+keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_commbination_key_process:
+	fetch 1,mem_commbination_key_statue
+	rtnne COMMBINATION_KEY_STATE_DOWN
+	arg mem_combination_ui_button_count,regc
+	arg keyboard_commbination_key_press_type_check,regb
+	branch timer_single_step
+
+keyboard_commbination_key_press_type_check:
+	fetch 1,mem_keyboard_commbination_press_type
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,keyboard_24g_start_pair_mode
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,keyboard_long_button_bt_discovery
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mouse_bluetooth_fast_conn_init
+	rtn
+
+
+keyboard_check_discovery_timeout_timer:
+	arg mem_device_discovery_timer,regc
+	arg keyboard_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_discovery_timeout:
+	call keyboard_stop_discovery
+	branch keyboard_power_down
+
+keyboard_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg keyboard_store_device_info,regb
+	branch timer_single_step
+
+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_device_direct_timer,regc
+	arg keyboard_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+keyboard_check_direct_timeout:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,keyboard_start_discovery
+	branch mouse_app_enter_hibernate
+
+
+keyboard_le_battery_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+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
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	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_same_key_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 keyboard_power_down
+
+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_usb_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_usb_wait_updata_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_usb_wait_updata_timer
+	nrtn blank
+	jam 1,mem_lpm_mode
+	branch keyboard_power_down
+
+keyboard_check_no_data_timeout_timer:
+	fetch 1,mem_usb_vdd_status_current
+	rtneq USB_INTERFACE_INSERT
+	arg mem_device_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 process///////////////////////////////////////////////////////////////////////////////
+keyboard_idle:
+	bpatch patch09_1,mem_patch09
+	call kscan_dispatch
+	call keyboard_rgb_process
+	call keyboard_usb_isr
+	call keyboard_usb_mode
+	branch keyboard_check_select_device_by_switch
+
+keyboard_check_select_device_by_switch:
+	bpatch patch09_2,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch keyboard_check_select_device_by_switch_gnd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd_check:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	nbranch keyboard_check_select_device_by_switch_vdd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_check_select_device_by_switch_gnd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_stop_bluetooth_mode
+keyboard_check_select_24g_device:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_24g_stop
+
+keyboard_start_work:
+	bpatch patch09_3,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_start_work_next
+	call keyboard_adc_read_start
+	fetch 2,mem_device_vdd_empty_vol
+	div pdata,2
+	call get_div_result
+	fetcht 2,mem_device_vdd_now_vol
+	isub temp,null
+	branch keyboard_start_work,positive 	// now vol < empty vol/2  check again
+	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,keyboard_24g_start_mode
+	call mouse_bluetooth_fast_conn_disable
+	beq MODE_BT_DEVICE1,keyboard_start_ble1_reconnect
+	beq MODE_BT_DEVICE2,keyboard_start_ble2_reconnect
+	beq MODE_BT_DEVICE3,keyboard_start_ble3_reconnect
+keyboard_start_ble1_reconnect:
+	fetch 6,mem_device1_addr
+keyboard_start_ble_reconnect:
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+
+keyboard_start_ble2_reconnect:
+	fetch 6,mem_device2_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_start_ble3_reconnect:
+	fetch 6,mem_device3_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_24g_start_mode:
+	call keyboard_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	branch mouse_24g_reconn_general_dongle
+
+
+kscan_dispatch:
+	bpatch patch09_4,mem_patch09
+	call keyboard_keyscan
+	call keyboard_key_process
+	branch keyboard_special_key_check
+
+keyboard_keyscan:
+	call keyboard_gpio_init
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+keyboard_keyscan_wait_wake_next:
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch keyboard_keyscan_wait_wake_next,true
+
+	call keyboard_keyscan_get_exmcu_value
+	call keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	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 12 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,11,null
+	branch keyboard_compare_col_excol_gpio_loop,positive
+	call keyboard_gpio_pu_idle
+	branch keyboard_key_row_init
+
+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*12 times
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	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,11,null
+	branch keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+
+
+keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	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:
+	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
+	call gpio_out_active
+	call keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_out_inactive
+	ifetcht 1,regb
+	call device_gpio_config_input_pu
+keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch keyboard_keyscan_mcu_start,positive
+	rtn
+
+
+keyboard_keyscan_get_col_value:
+	bpatch patch09_5,mem_patch09
+	nop 120
+	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_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_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
+	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_keyboard_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
+	bpatch patch09_6,mem_patch09
+	call keyboard_keyvalue_normal_replace
+	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
+	sub pdata,7,null
+	branch keyboard_keyvalue_change,positive
+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
+	nbranch keyboard_load_rgb,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_load_rgb,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_load_rgb,blank
+
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_NULL
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+
+//**input:mem_keyscan_value_current   **output:mem_keyboard_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 patch09_7,mem_patch09
+	jam 0,mem_keyboard_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
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+	jam 1,mem_keyboard_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_normal_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_RIGHT_ALT,keyboard_rgb_on_type_switch
+	beq HID_KEY_RIGHT_GUI,keyboard_rgb_mode_switch
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	rtn
+
+keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_fn_lock_check
+	fetch 1,mem_keyboard_fn_lock_flag
+	branch keyboard_fn_lock_check+1
+keyboard_fn_lock_check:
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	rtn zero
+	bpatch patch0a_0,mem_patch0a
+	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_esc:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_keyvalue_fn_esc_next
+	fetch 1,mem_keyboard_fn_esc
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	rtn zero
+keyboard_keyvalue_fn_esc_next:
+	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_replace_press:
+	bpatch patch0a_1,mem_patch0a
+	call keyboard_keyvalue_fn_lock_replace
+	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
+	beq HID_KEY_Q,keyboard_keyvalue_os_android
+	beq HID_KEY_W,keyboard_keyvalue_os_windows
+	beq HID_KEY_E,keyboard_keyvalue_os_ios
+	rtn
+
+keyboard_keyvalue_fn_lock_replace:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LOCK
+	fetch 1,mem_keyboard_keyvalue_temp
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	nrtn zero
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_fn_lock_flag
+	increase 1,pdata
+	and_into 0x01,pdata
+	store 1,mem_keyboard_fn_lock_flag
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_keyvalue_fn_lock_24g
+	beq MODE_BT_DEVICE1,keyboard_keyvalue_fn_lock_bt1
+	beq MODE_BT_DEVICE2,keyboard_keyvalue_fn_lock_bt2
+	beq MODE_BT_DEVICE3,keyboard_keyvalue_fn_lock_bt3
+	beq MODE_USB_DEVICE,keyboard_keyvalue_fn_lock_usb
+keyboard_keyvalue_fn_lock_24g:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_24g_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt1:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt1_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt2:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt2_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt3:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt3_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_usb:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_usb_fn_lock
+	branch keyboard_store_eeprom_or_flash
+
+keyboard_keyvalue_fn_up_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_UP
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_down_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_DOWN
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_HOME
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_right_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_END
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_ctrl:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	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 KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+	setarg HID_KEY_LANGUAGE
+keyboard_keyvalue_store_temp:
+	store 1,mem_keyboard_keyvalue_temp
+	rtn
+
+keyboard_keyvalue_os_android:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_ANDROID,mem_kb_computer_system
+keyboard_keyvalue_os_switch_end:
+	jam 6,mem_keyboard_mode_led_on_timer
+	call keyboard_store_computer_system
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+keyboard_store_eeprom_or_flash:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_OTP
+keyboard_store_device_info_delay:
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+keyboard_keyvalue_os_windows:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_os_ios:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_clear_temp:
+	setarg 0
+	branch keyboard_keyvalue_store_temp
+
+keyboard_store_computer_system:
+	bpatch patch0a_2,mem_patch0a
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	rtneq MODE_USB_DEVICE
+	beq MODE_BT_DEVICE1,keyboard_store_computer_system_bt1
+	beq MODE_BT_DEVICE2,keyboard_store_computer_system_bt2
+	beq MODE_BT_DEVICE3,keyboard_store_computer_system_bt3
+keyboard_store_computer_system_bt1:
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt1_computer_system
+	rtn
+keyboard_store_computer_system_bt2:
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt2_computer_system
+	rtn
+keyboard_store_computer_system_bt3:
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt3_computer_system
+	rtn
+
+
+
+
+
+keyboard_keyvalue_commbination_replace:
+	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_SEARCH,keyboard_commbination_search
+	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
+	rtnbit0 0
+	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_ANDROID
+	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_ANDROID
+	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_ANDROID,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_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,keyboard_commbination_mac_search
+	setarg HID_KEY_AC_SEARCH
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_mac_search:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_language:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_language_windows
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_language_android
+	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_android:
+	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_ANDROID,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:
+	fetch 1,mem_keyboard_keyvalue_temp
+	arg HID_KEY_LEFT_CTRL,temp
+	isub temp,null
+	nbranch keyboard_keyvalue_standard,positive		// value < 0xe0
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_keyvalue_consumer,positive		// value  > 0xe7
+	and_into 0x07,pdata
+	copy pdata,queue
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_control_key_in
+keyboard_keyvalue_control_key_out:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+keyboard_keyvalue_control_key_in:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+
+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
+	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
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_out_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_out_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset0 pdata
+	branch istore_1_contw_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
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_in_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_in_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset1 pdata
+	branch istore_1_contw_rtn
+
+keyboard_keyvalue_standard_in_data:
+	increase -1,contr
+	istoret 1,contr
+	rtn
+
+keyboard_keyvalue_n_key_rollover_data_in_out:
+	bpatch patch0a_3,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	sub pdata,0x70,null
+	nrtn positive		// keyboard value 14byte
+	jam 1,mem_keboard_n_key_rollover_send_flag
+	jam 1,mem_keyboard_data_change_flag
+	div pdata,8
+	call wait_div_end
+	quotient pdata
+	remainder queue
+	arg mem_keyboard_n_key_rollover_data+1,contw
+	iadd contw,contw
+	setarg 0
+	rtn
+
+keyboard_keyvalue_consumer:
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate0 0,pdata
+	call keyboard_consumer_key_release_status,true
+	branch keyboard_keyvalue_standard
+
+keyboard_consumer_key_release_status:
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+	rtn
+
+
+// check Fn,pairing button,control key
+keyboard_special_key_check:
+	call keyboard_pairing_button_check
+	call keyboard_device_select
+	jam 0,mem_keyboard_fn_flag
+	jam 0,mem_keyboard_control_key_flag
+	jam 0,mem_keyboard_alt_flag
+	jam 0,mem_keyboard_shift_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
+
+	call keyboard_commbination_key_press_check
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	rtn
+
+keyboard_commbination_key_press_check:
+	bpatch patch0a_4,mem_patch0a
+	jam 0,mem_keyboard_commbination_press_type
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_commbination_key_press_check_bt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_press_check_bt:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_fast_conn_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY,mouse_commbination_key_up
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_down_24g:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt_fast_conn:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+
+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_device_select:
+	call disable_user
+	call keyboard_device_select_g24
+	call keyboard_device_select_bt1
+	call keyboard_device_select_bt2
+	call keyboard_device_select_bt3
+	call keyboard_device_select_usb
+	branch keyboard_clear_change_flag,user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+
+keyboard_clear_change_flag:
+	jam 0,mem_keyboard_data_change_flag
+	rtn
+
+keyboard_device_select_g24:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G
+	fetch 1,mem_keyboard_switch_device_to_g24
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_g24+1
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	rtn
+
+keyboard_device_select_g24_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	jam 1,mem_keyboard_switch_g24_enable
+	rtn
+
+keyboard_device_select_bt1:
+	fetch 1,mem_keyboard_switch_device_to_bt1
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt1+1
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	rtn
+
+keyboard_device_select_bt1_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt2:
+	fetch 1,mem_keyboard_switch_device_to_bt2
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt2+1
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	rtn
+
+keyboard_device_select_bt2_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE2
+	jam MODE_BT_DEVICE2,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt3:
+	fetch 1,mem_keyboard_switch_device_to_bt3
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt3+1
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	rtn
+
+keyboard_device_select_bt3_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE3
+	jam MODE_BT_DEVICE3,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt_set_press_flag:
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+
+keyboard_device_select_usb:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_keyboard_switch_device_to_usb
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_usb+1
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	rtn
+
+keyboard_device_select_usb_press:
+	call enable_user
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	jam MODE_USB_DEVICE,mem_device_flag
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_pairing_button_check:
+	fetch 1,mem_keyboard_pairing_type
+	nrtn blank
+	fetcht 1,mem_keyboard_pb_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_5,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:
+	bpatch patch0a_6,mem_patch0a
+	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_enable_function_flag
+	call app_evt_button_long_pressed
+	branch keyboard_bb_event_discovery_btn
+
+keyboard_24g_start_pair_mode:
+	bpatch patch0a_7,mem_patch0a
+	call keyboard_device_led_all_off
+	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_device_no_data_timer
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_reconn_type
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_stop_discovery
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+
+keyborad_control_key_set:
+	store 1,mem_keyboard_control_key_flag
+	and_into 0x44,pdata
+	ncall keyboard_alt_flag_set,blank
+	fetch 1,mem_keyboard_control_key_flag
+	and_into 0x22,pdata
+	rtn blank
+	jam 1,mem_keyboard_shift_flag
+	rtn
+keyboard_alt_flag_set:
+	jam 1,mem_keyboard_alt_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 patch0b_0,mem_patch0b
+	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
+	rtnne MODE_24G_DEVICE
+	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:
+	bpatch patch0b_1,mem_patch0b
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,keyboard_value_consumer_release
+	fetch 1,mem_keboard_n_key_rollover_send_flag
+	nbranch keyboard_motion_data_check_n_key_rollover_key,blank
+	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
+	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
+	bpatch patch0b_2,mem_patch0b
+	arg mem_keyboard_keyvalue_buffer,rega
+	arg mem_keyboard_tx_data+1,contw
+	arg 8,loopcnt
+keyboard_tx_data_store:
+	ifetcht 1,rega
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_tx_data_store_loop
+	sub temp,HID_KEY_FN,null
+	nbranch keyboard_tx_data_store_loop,zero
+	increase 1,rega
+	ifetcht 1,rega
+keyboard_tx_data_store_loop:
+	istoret 1,contw
+	increase 1,rega
+	loop keyboard_tx_data_store
+keyboard_motion_data_check_next:
+	bpatch patch0b_3,mem_patch0b
+	call keyboard_device_data_tpye_check
+
+	fetch 1,mem_keyboard_data_send_flag
+	beq DEVICE_DATA_TPYE_MOUSE,enable_user
+device_send_keyboard_data:
+	call mouse_customerkey_press
+	branch enable_user
+
+keyboard_motion_data_check_n_key_rollover_key:
+	jam 0,mem_keboard_n_key_rollover_send_flag
+	jam HID_REPORTID_N_KEY_ROLLOVER,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+keyboard_value_release_all_key:
+	arg mem_keyboard_n_key_rollover_data,contw
+	arg 15,loopcnt
+	call clear_mem
+	arg mem_keyboard_keyvalue_buffer,contw
+	arg 10,loopcnt
+	branch clear_mem
+////////////////////////////////////////////////////---fn---//////////////////////////////////////////////////////////
+keyboard_value_tpye_consumer_set:
+	copy pdata,temp
+	bpatch patch0b_4,mem_patch0b
+	copy temp,pdata
+	jam HID_REPORTID_BIT_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_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_MULTIKEY_PRE_TRACK,keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+keyboard_value_media:
+	setarg 0x000001
+keyboard_consumer_value_store:
+	store 3,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_vol_down:
+	setarg 0x000002
+	branch keyboard_consumer_value_store
+keyboard_value_vol_up:
+	setarg 0x000004
+	branch keyboard_consumer_value_store
+keyboard_value_mute:
+	setarg 0x000008
+	branch keyboard_consumer_value_store
+keyboard_value_pre_track:
+	setarg 0x000010
+	branch keyboard_consumer_value_store
+keyboard_value_next_track:
+	setarg 0x000020
+	branch keyboard_consumer_value_store
+keyboard_value_play:
+	setarg 0x000040
+	branch keyboard_consumer_value_store
+keyboard_value_stop:
+	setarg 0x000080
+	branch keyboard_consumer_value_store
+
+keyboard_value_ac_home:
+	setarg 0x000100
+	branch keyboard_consumer_value_store
+keyboard_value_mail:
+	setarg 0x000200
+	branch keyboard_consumer_value_store
+keyboard_value_my_computer:
+	setarg 0x000400
+	branch keyboard_consumer_value_store
+keyboard_value_ac_favorites:
+	setarg 0x000800
+	branch keyboard_consumer_value_store
+keyboard_value_calculator:
+	setarg 0x001000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_search:
+	setarg 0x002000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_back:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,keyboard_value_ac_home
+	setarg 0x004000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,keyboard_value_os_soft_kb_android
+	setarg 0x010000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb_android:
+	setarg 0x008000
+	branch keyboard_consumer_value_store
+
+keyboard_value_light_down:
+	setarg 0x020000
+	branch keyboard_consumer_value_store
+keyboard_value_light_up:
+	setarg 0x040000
+	branch keyboard_consumer_value_store
+keyboard_value_os_lock:
+	setarg 0x080000
+	branch keyboard_consumer_value_store
+
+keyboard_value_mac_eject:
+	setarg 0x100000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_forward:
+	setarg 0x200000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_stop:
+	setarg 0x400000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_refresh:
+	setarg 0x800000
+	branch keyboard_consumer_value_store
+
+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 HID_REPORTID_BIT_CONSUMER_KEY
+	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:
+	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:
+	call hid_device_clear_key_data
+	jam DEVICE_DATA_TPYE_KEYBOARD,mem_keyboard_data_send_flag
+	bpatch patch0b_5,mem_patch0b
+	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_BIT_CONSUMER_KEY,keyboard_bit_consumer_data_send
+	beq HID_REPORTID_SYSTEM_CTRL,keyboard_system_control_data_send
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_n_key_rollover_send
+	rtn
+
+keyboard_mouse_data_send:
+	jam DEVICE_DATA_TPYE_MOUSE,mem_keyboard_data_send_flag
+	arg mem_keyboard_tx_data+1,contr
+	arg mem_mouse_key,contw
+	arg 7,loopcnt
+	branch memcpy
+
+keyboard_standard_data_send:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,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:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyboard_magic_data_send
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 9,loopcnt
+	branch memcpy
+
+keyboard_magic_data_send:
+	jam 0,mem_keyboard_tx_data+9
+	fetch 1,mem_keyboard_fn_flag
+	branch keyboard_magic_data_send_end,blank
+	jam 1,mem_keyboard_tx_data+9
+keyboard_magic_data_send_end:
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 10,loopcnt
+	branch memcpy
+
+keyboard_consumer_data_send:
+	setarg HID_REPORTID_CONSUMER_KEY
+keyboard_consumer_data_store:
+	store 1,mem_customer_key_press
+	fetch 3,mem_keyboard_tx_data+1
+	store 3,mem_customer_key_press+1
+	rtn
+
+keyboard_bit_consumer_data_send:
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	branch keyboard_consumer_data_store
+
+keyboard_system_control_data_send:
+	setarg HID_REPORTID_SYSTEM_CTRL
+	store 1,mem_customer_key_press
+	fetch 1,mem_keyboard_tx_data+1
+	store 1,mem_customer_key_press+1
+	rtn
+
+keyboard_n_key_rollover_send:
+	setarg HID_REPORTID_N_KEY_ROLLOVER
+	store 1,mem_customer_key_press
+	rtn
+
+////////////////////////////////////////lpm/////////////////////////////////////////////////////////////////////////
+
+keyboard_lpm_before_common:
+	bpatch patch0b_6,mem_patch0b
+	call clear_wake
+
+	fetcht 1,mem_keyboard_pb_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
+
+	call keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+
+	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 keyboard_key_row_wake_set,zero
+	increase 1,regb
+	loop keyboard_key_row_wake_init
+
+	call lpm_puchk_set_check
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	branch keyboard_adc_gpio_set_before_hibernate
+
+keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	branch keyboard_lpm_before_common
+
+keyboard_before_hibernate:
+	bpatch patch0b_7,mem_patch0b
+	call disable_authrom
+	branch keyboard_setgpio_hibernate
+
+
+keyboard_power_down:
+	bpatch patch0c_0,mem_patch0c
+	call keyboard_device_led_all_off
+keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+keyboard_setgpio_hibernate:
+	bpatch patch0c_1,mem_patch0c
+	call clear_wake
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	branch keyboard_lpm_before_common
+
+////////////////////////////////////////24g/////////////////////////////////////////////////////////////////////////
+keyboard_24g_pairing_complete:
+	call keyboard_get_24g_led_enable
+	call mouse_no_data_timer_init
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_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_device_24g_addr
+	call keyboard_24g_fast_conn_check
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_24g_attempt_success:
+	call keyboard_get_24g_led_enable
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call keyboard_24g_fast_conn_check
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	branch mouse_no_data_timer_init
+
+keyboard_24g_fast_conn_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch mouse_bluetooth_fast_conn_disable,zero
+	jam 0xff,mem_device_fast_conn_flag
+	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 FAST_CONN_AND_RECEIVER,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 keyboard_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_power_down
+	rtn
+
+keyboard_24g_fast_conn_attempt_fail:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_compare_addr
+	isub temp,null
+	branch keyboard_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_dongle_start
+
+keyboard_24g_hibernate_set:
+	bpatch patch0c_2,mem_patch0c
+	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_24g_shutdown_flag
+	branch keyboard_g24_long_sleep
+
+
+keyboard_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	branch keyboard_disable_function_flag
+
+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 hid_device_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_next,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_g24_transmit_start_next,blank
+	call g24_search_receiver
+keyboard_g24_long_sleep:
+	call keyboard_g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 1,mem_24g_shutdown_flag
+	ncall keyboard_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+keyboard_g24_transmit_process:
+	bpatch patch0c_3,mem_patch0c
+	jam 0,mem_24g_retry
+keyboard_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	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 hid_device_g24_ackpayload_parse
+	jam 0,mem_24g_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
+	fetch 1,mem_24g_retry
+	increase 1,pdata
+	store 1,mem_24g_retry
+	and_into 0x03,pdata
+	branch keyboard_g24_tx_fast_hop,blank		//each 4 times change channel
+	branch keyboard_g24_transmit_loop
+
+keyboard_g24_tx_fast_hop:
+	call kscan_dispatch
+	fetch 1,mem_keyboard_switch_device_flag
+	nbranch soft_reset_chip,blank
+	fetch 1,mem_keyboard_commbination_press_type
+	nbranch g24_transmit_no_ack,blank
+	call g24_tx_fast_hop
+	branch keyboard_g24_transmit_loop
+
+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_FACTORY,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 patch0c_4,mem_patch0c
+	call keyboard_g24_lpm_wait
+	branch g24_short_sleep+2
+
+keyboard_24g_package_data:
+	rtnmark0 mark_24g
+	call keyboard_motion
+	nrtn user
+	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
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_24g_keyboard_package_n_key_rollover_data
+	arg 10,rega	//length
+	branch hid_device_24g_keyboard_package_data_set
+
+keyboard_24g_keyboard_package_n_key_rollover_data:
+	store 1,mem_keyboard_n_key_rollover_data
+	arg 15,rega
+	arg mem_keyboard_n_key_rollover_data,regb
+	rtn
+
+
+keyboard_24g_search_dongle:
+	bpatch patch0c_5,mem_patch0c
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+	branch hid_device_24g_search_dongle
+
+/////////////////////////////////////////////////////// ble ////////////////////////////////////////////////////////////
+keyboard_le:
+	bpatch patch0c_6,mem_patch0c
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_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 KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+	call mouse_wheel_trigger
+	branch hid_device_send_package_data_check
+
+keyboard_le_fill_n_key_rollover_key_data:
+	jam 14,mem_le_data_len
+	fetcht 2,mem_le_notify_handle
+	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_keyboard_n_key_rollover_data+1,contr
+	branch memcpy
+
+keyboard_le_fill_standard_key_data:
+	jam 9,mem_le_data_len
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyoard_le_fill_standard_key_data_send
+	jam 8,mem_le_data_len
+	branch keyoard_le_fill_standard_key_data_send
+
+keyboard_le_bb_event_connected:
+	call keyboard_load_rgb
+	jam 0,mem_mouse_long_mult_flag
+	jam 1,mem_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch keyboard_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_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_device_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_device_le_bb_connected_flag
+keyboard_le_bb_disconnected_next:
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	call le_clr_config_more_data
+	jam 0,mem_ltk_exists
+	branch keyboard_bb_disconnected
+keyboard_bb_disconnected:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,keyboard_le_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+keyboard_le_event_bb_disconn:
+	jam 0,mem_le_connect_status_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_power_down
+
+keyboard_le_ll_start_encryt:
+	fetch 1,mem_device_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_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_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call keyboard_24g_stop,true
+	call mouse_disconnect
+	jam 0,mem_le_connect_status_flag
+	branch keyboard_start_discovery
+
+keyboard_start_discovery:
+	bpatch patch0c_7,mem_patch0c
+	call keyboard_device_led_all_off+2
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 2,mem_otp_store_device_info_flag
+	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 KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_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_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+keyboard_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch keyboard_stop_discovery
+
+keyboard_stop_discovery:
+	bpatch patch0d_0,mem_patch0d
+	setarg 0
+	store 2,mem_device_discovery_timer
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_disable_function_flag
+	call mouse_stop_le_adv
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_all_off+2,blank
+	rtn
+
+keyboard_store_remote_bdaddr:
+	bpatch patch0d_1,mem_patch0d
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_STORE_MEMORY_FLAG
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_disable_function_flag
+	call hid_device_check_device_addr
+	call hid_device_before_store_reconn_info
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+/////////////////////////////////////////////////////// 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_parse_att:
+	bpatch patch0d_2,mem_patch0d
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+// 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
+	rtn blank
+	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 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	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
+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 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	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
+
+keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	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_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_store_computer_system_ble
+keyboard_le_parse_att_find_mac_report:
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+keyboard_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_OTP,keyboard_store_computer_system_info
+	jam 1,mem_otp_store_system_flag
+	fetch 1,mem_otp_store_device_info_flag
+	rtn blank
+	branch keyboard_wirte_otp_ble
+
+keyboard_store_computer_system_info:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+keyboard_le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_att_type
+	setarg UUID_CHRCTR_PNP_ID
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_res_pnp_id,zero
+	branch le_send_att_read_by_type_response+8
+keyboard_le_send_att_read_by_type_res_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch le_send_att_read_by_type_response+8,blank
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 11,pdata		// length +1
+	branch le_send_att_read_by_type_res_not_characteristic+9
+
+keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	fetch 2,mem_le_att_offset
+	sub pdata,66,null
+	nbranch keyboard_le_send_att_read_blob_response,zero
+
+	setarg 23
+	copy pdata,rega
+	copy pdata,regc
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BLOB_RESPONSE
+	istore 1,contw
+	arg mem_keyboard_blob_response_consumer_customize,contr
+	add regc,-1,loopcnt
+	branch memcpy_fast
+
+keyboard_le_send_att_read_blob_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_blob_response
+	fetch 2,mem_keyboard_le_hid_map
+	copy pdata,contr
+	ifetch 2,contr
+	branch le_send_att_read_blob_response+3
+
+keyboard_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,keyboard_le_send_att_read_response_check_auth
+//input:temp is handle
+keyboard_le_send_att_read_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_le_send_att_read_response+3
+	bbit0 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL,keyboard_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+keyboard_le_send_att_read_response_next:
+	fetch 2,mem_le_att_handle
+	beq 0x05,keyboard_le_send_att_appearance
+	beq 0x10,keyboard_le_send_att_pnp_id
+keyboard_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_response
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_hid_map
+	copy temp,contr
+	ifetcht 2,contr
+	increase 1,temp
+	call not_greater_than
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_appearance:
+	arg mem_keybord_appearance,contr
+	force 3,pdata		// length +1
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch keyboard_le_send_att_read_response_next_1,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 8,pdata		// length +1
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch keyboard_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch keyboard_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+keyboard_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	call keyboard_le_parse_att_write_command+1		//MAC  CAPS
+	branch hid_device_le_parse_att_write_request
+
+keyboard_le_parse_att_write_command:
+	call le_parse_att_write_command
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_le_fast_conn_led_get
+	fetch 2,mem_le_att_handle
+	beq 0x25,keyboard_le_led_get
+	rtn
+keyboard_le_fast_conn_led_get:
+	fetch 2,mem_le_att_handle
+	beq 0x21,keyboard_le_led_get
+	rtn
+
+keyboard_le_led_get:
+	fetch 1,mem_le_rxbuf+9
+	store 1,mem_keyboard_led_status
+	rtn
+
+///////////////////////////////usb ///////////////////////////////////////////////////////////////////////
+keyboard_usb_mode_start:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call keyboard_usb_check_enable
+	branch keyboard_usb_interface_check_power_on
+
+keyboard_usb_check_enable:
+	fetch 9,mem_keyboard_usb_vid_pid
+	store 9,mem_usb_vid_pid
+	setarg keyboard_usb_config_param
+	store 2,mem_cb_usb_config
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status_current
+	rtn
+
+keyboard_usb_config_param:
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	jam 0x01,mem_usb_tx_interval
+	call usb_tx_interval_config
+	call keyboard_usb_vid_pid_config
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+keyboard_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_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_interface_check_power_on:	// last=0, current = insert
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_insert
+keyboard_usb_vdd_status_store:
+	fetch 1,mem_usb_vdd_status_current
+	store 1,mem_usb_vdd_status_last
+	rtn
+keyboard_usb_insert:
+	call keyboard_usb_vdd_status_store
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	fetch 1,mem_usb_wait_updata_timer
+	call usb_init,blank
+	jam 50,mem_usb_wait_updata_timer
+	rtn
+
+keyboard_usb_isr:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	branch usb_isr
+
+keyboard_usb_mode:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	jam 0,mem_usb_wait_updata_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	call keyboard_24g_stop
+	call keyboard_stop_bluetooth_mode
+	call keyboard_motion
+	nrtn user
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb
+	branch hid_device_push_mouse_data_to_usb
+
+keyboard_usb_tx_kb_normal_data:
+	jam 0,mem_usb_ep1_data
+	arg 9,loopcnt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,usb_tx_kb_normal_data+4
+	branch usb_tx_kb_normal_data+2
+
+keyboard_push_n_key_rollover_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_N_KEY_ROLLOVER,mem_usb_ep2_data
+	setarg KB_N_KEY_ROLLOVER_REPORT_ID
+	store 1,mem_usb_kb_n_key_rollvoer_data
+	arg mem_keyboard_n_key_rollover_data+1,contr
+	arg mem_usb_kb_n_key_rollvoer_data+1,contw
+	arg 14,loopcnt
+	branch memcpy
+
+////////////////////////////////public////////////////////////////////////
+keyboard_ui_ipc_send_event:
+	fetch 1,mem_fifo_temp
+	arg 8,loopcnt
+	arg mem_ipc_fifo_bt2c51,contr
+ui_ipc_fifo_check:
+	ifetcht 1,contr
+	isub temp,null
+	rtn zero
+	loop ui_ipc_fifo_check
+	branch ui_ipc_send_event+3
+
+keyboard_enable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset1 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+keyboard_disable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset0 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+
+keyboard_bt_discovery_button_down_enable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_bt_discovery_button_down_disable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_disable_function_flag
+
+
+
+
+module_init:	
+	branch module_lpm_uart_init,wake
+//	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 patch0d_4,mem_patch0d
+	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 patch0d_5,mem_patch0d
+	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 patch0d_6,mem_patch0d
+	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
+
+
+
+
+//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 patch0d_7,mem_patch0d
+	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
+
+//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
+	
+
+
+
+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 patch0e_0,mem_patch0e
+	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 patch0e_1,mem_patch0e
+	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_wake_gpio_set,wake
+	call mouse_setting_config
+	call mouse_le_name_modify
+	call mouse_init_sunt
+	rtn wake
+	call mouse_usb_check_enable
+	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_once
+	branch mouse_start_work
+
+mouse_wake_gpio_set:
+	call mouse_matrix_public_gpio_reset
+	branch lpm_config_puchk_disable
+
+mouse_cb_fuction:
+	bpatch patch0e_2,mem_patch0e
+	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_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	branch hid_device_cb_fuction
+
+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_param_info_init
+//	call mouse_sensor_parm_init
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+mouse_load_device_info_check:
+	bpatch patch0e_3,mem_patch0e
+	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
+	jam 0,mem_mouse_sleep_deal_type
+	jam 0,mem_24g_disable_fec1
+	jam 0,mem_power_ctrl_disable
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 1,mem_mouse_sleep_deal_type
+	jam 1,mem_24g_disable_fec1
+	jam 1,mem_power_ctrl_disable
+	branch g24_enable_2M
+
+//
+
+mouse_g24_reconn_dispatch_set:
+	bpatchx patch3e_0,mem_patch3e
+	fetch 1,mem_24g_rxdata_length	//ack payload length
+	branch mouse_receiver_addr_check,blank
+mouse_g24_reconn_dispatch:
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_mode_judge,zero
+	branch g24_reconn_dispatch_success
+
+mouse_receiver_addr_check:
+	fetch 4,mem_24g_fast_conn_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_dispatch,zero
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch mouse_g24_reconn_dispatch
+
+mouse_g24_reconn_mode_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_pair_mode_check
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_pair_mode_check
+	branch g24_reconn_receiver_addr
+
+mouse_g24_transmit_hop_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_2M_PHY,g24_transmit_hop_process_next
+mouse_g24_transmit_hop_process_new:
+	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 15,mouse_g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 20,g24_hop_ch_disable
+	beq 30,g24_hop_ch_disable
+	rtn
+
+mouse_g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 10,g24_hop_ch_disable
+	beq 15,g24_hop_ch_disable
+	rtn
+
+//
+
+mouse_default_init:
+	bpatch patch0e_4,mem_patch0e
+	call hid_device_default_parm_init
+	call mouse_xtal_init
+	call mouse_24g_phy_select
+	call mouse_24g_long_sleep_set
+	branch g24_pair_param_init
+
+//
+
+
+
+//
+
+mouse_param_info_init:
+	bpatch patch0e_5,mem_patch0e
+	call mouse_param_common_init
+	call mouse_report_rate_parm_init
+	call mouse_sensor_set_angle
+mouse_spi_parm_init:
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+	rtn
+
+mouse_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	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
+
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_fast_conn_enable
+	jam 0,mem_mouse_pair_flag
+
+	call mouse_compare_addr_init
+	branch hid_device_param_common_init
+
+mouse_compare_addr_init:
+	arg 0,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+//==========set report start=========/
+
+mouse_report_rate_parm_init:
+	call mouse_24g_report_rate_parm_init
+	fetch 3,mem_24g_short_sleep_set
+	store 3,mem_mouse_24g_short_sleep_set_init
+mouse_le_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+	setarg LE_INTERVAL_7_5MS
+mouse_le_interval_store:
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	rtn
+
+mouse_24g_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_500Hz,mouse_g24_interval_param_2ms
+	bbit1 MOUSE_ENABLE_24G_250Hz,mouse_g24_interval_param_4ms
+	branch mouse_g24_interval_param_8ms
+
+mouse_g24_interval_param_2ms:
+	fetch 1,mem_mouse_24g_fast_hop_count_2ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_2ms
+	store 4,mem_mouse_24g_tsniff
+mouse_report_rate_set_500hz:
+	setarg 0x080606
+	store 3,mem_24g_interval
+	branch g24_transmit_by_interrupt_enable
+
+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 4,mem_mouse_24g_tsniff_4ms
+	store 4,mem_mouse_24g_tsniff
+
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+
+	jam 0x05,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x0f,mem_24g_fast_hop_count
+	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 4,mem_mouse_24g_tsniff_8ms
+	store 4,mem_mouse_24g_tsniff
+
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+
+	jam 0x0b,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x1e,mem_24g_fast_hop_count
+	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
+
+//==========set report end=========/
+
+
+//==========select sensor angle start=========/
+
+mouse_sensor_set_angle:
+	bpatch patch0e_6,mem_patch0e
+	call mouse_set_sensor_angle_float
+	fetch 1,mem_select_sensor_angle_gpio
+	rtneq GPIO_DISABLE
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_gnd,true
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_float,true
+mouse_set_sensor_angle_vin:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+	fetch 1,mem_sensor_angle_vin
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_gnd:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+	fetch 1,mem_sensor_angle_gnd
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_float:
+	fetch 1,mem_sensor_angle_default
+mouse_store_sensor_angle:
+	store 1,mem_config_sensor_angle
+	rtn
+
+//==========select sensor angle end=========/
+
+
+
+//
+
+		//8650+S201 +ka8g2
+
+mouse_le_name_modify:
+	bpatch patch0f_0,mem_patch0f
+	rtn wake
+	fetch 1,mem_le_name_patch_len
+	rtn blank
+	add pdata,1,loopcnt
+	arg mem_le_name_patch_len,contr
+	arg mem_le_name_len,contw
+	call memcpy
+	branch le_modified_name_adv
+
+
+
+mouse_start_work:
+	bpatch patch0f_1,mem_patch0f
+	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_device_le_reconn_led_config
+	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_device_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_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+mouse_start_reconnect_device:
+	bpatch patch0f_2,mem_patch0f
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,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 patch0f_3,mem_patch0f
+	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_device_le_reconnect_flag
+	fetcht 1,mem_device_fast_direct_timeout
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse4_0_check_reconn_target_next
+	fetcht 1,mem_device_direct_timeout
+mouse4_0_check_reconn_target_next:
+	storet 1,mem_device_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_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_app_enter_hibernate:
+	bpatch patch0f_4,mem_patch0f
+	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 patch0f_5,mem_patch0f
+	call disable_authrom
+//	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+
+mouse_setgpio_hibernate:
+	bpatch patch0f_6,mem_patch0f
+	call mouse_set_sdio_high
+	call clear_wake
+	call mouse_before_hibernate_wheel_gpio_set
+	fetch 1,mem_mouse_sensor_sdio_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_set_pupd_by_input
+	call mouse_lpm_before_common
+//	call mouse_gpio_pd_idle
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	call mouse_logo_led_off
+	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 device_gpio_config_input_pd
+	fetcht 1,mem_whee_b_data_gpio
+	branch device_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
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_analog
+
+
+//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 patch0f_7,mem_patch0f
+	jam 0,mem_qdec_set_flag
+	call clear_wake
+	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
+	call gpio_out_active
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_clr_wake
+
+	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
+
+	call mouse_gpio_pd_idle
+
+	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 patch10_0,mem_patch10
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_high_impedance
+
+mouse_adc_read:
+	bpatch patch10_1,mem_patch10
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call mouse_adc_gpio_set
+mouse_adc_read_start:
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_device_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, mouse_adc_data_process
+	fetcht 2,mem_device_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_device_vdd_now_vol
+mouse_adc_data_process:
+	arg mem_device_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_device_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_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+
+
+mouse_adc_bat_percent_lowpower_out:
+	bpatch patch10_2,mem_patch10
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+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_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+//	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_bk_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_fw_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_dpi_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_matrix_public_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_customer_key_gpio
+	call device_gpio_config_input_pu
+
+	call mouse_wheel_gpio_init
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_tb_data_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_sensor_motion_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_device_switch_gpio
+	branch device_gpio_config_input_pu
+
+mouse_gpio_set_pupd_by_input:
+	and temp,0x7f,queue
+	fetch 4,core_gpio_in
+	qisolate1 pdata
+	branch device_gpio_config_input_pu,true
+device_gpio_config_input_pd:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+device_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_analog:
+	fetch 3,mem_device_set_analog_bit_set
+	store 3,mem_pdatatemp
+	arg 24,loopcnt
+	arg 0,temp
+mouse_gpio_set_analog_bit_loop:
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_analog,true
+//	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	lshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop mouse_gpio_set_analog_bit_loop
+	rtn
+
+
+
+
+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 patch10_3,mem_patch10
+	call hid_device_copy_key_data
+	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:
+	bpatch patch10_4,mem_patch10
+	call mouse_wheel_gpio_init
+	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_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
+	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_dpi_3io6key_check
+	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_dpi_3io6key_check:
+	fetch 1,mem_dpi_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_dpi_button_gpio
+	branch mouse_3io6key_check
+
+
+mouse_3io6key_dpi_check_end:
+	fetcht 1,mem_dpi_button_gpio
+	call device_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 patch10_5,mem_patch10
+	call mouse_dpi_ghost_check
+	rtn user
+mouse_dpi_process_skip_ghost:
+	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 patch10_6,mem_patch10
+	call mouse_setting_dpi_4_level
+	call mouse_dpi_led_blink_delay
+mouse_setting_sensor_type:
+	bpatch patch10_7,mem_patch10
+	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
+	beq MOUSE_DPI_LEVEL4,mouse_set_S201_dpi_4	//800
+	rtn
+mouse_set_S201_dpi_0:	//1200
+	fetch 1,mem_sensor_s201_dpi_0
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_1:	//1600
+	fetch 1,mem_sensor_s201_dpi_1
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_4:	//800
+	fetch 1,mem_sensor_s201_dpi_4
+mouse_dpi_s201_store:
+	copy pdata,rega
+	setarg 0xc309
+	call twspi_write
+	copy rega,pdata
+	lshift8 pdata,pdata
+	add pdata,0x23,pdata
+	call twspi_write
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	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_M_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_R_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_FW_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_R_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 device_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 device_gpio_config_input_pu
+
+mouse_dpi_another_down_new:
+	call device_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 device_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 device_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 device_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 patch11_0,mem_patch11
+	fetch 1,mem_24g_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 device_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 device_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 device_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 device_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 device_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 device_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,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_state:
+	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
+	fetch 1,mem_customer_key_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_customer_key_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_customerkey_press_status
+	call mouse_check_customerkey_state
+	fetcht 1,mem_customer_key_gpio
+	branch device_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_next:
+	and regb,0x07,pdata
+	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 patch11_1,mem_patch11
+	copy regc,pdata
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	call device_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:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_pu_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pu
+
+//input:pdata gpio number
+mouse_gpio_config_pd_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pd
+
+
+
+
+mouse_init_sunt:
+	bpatch patch11_2,mem_patch11
+	call mouse_sensor_spi_init
+	rtn wake
+mouse_init_sensor_wakeup:
+	call mouse_sensor_poweron
+mouse_init_sensor:
+	bpatch patch11_3,mem_patch11
+	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
+	branch mouse_sensor_poweron_end
+
+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 KA5857_ID2,mouse_ka5857_init_param
+	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_ka5857_init_param:
+	jam KA5857,mem_config_sensor_type
+	arg mem_sensor_ka5857_init,regc
+	branch mouse_sensor_poweron_end
+
+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 patch11_4,mem_patch11
+	call mouse_sensor_spi_init
+	call mouse_sensor_reset
+	call mouse_sensor_poweron_init
+mouse_sensor_poweron_end:
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_sensor_powerdown:
+	bpatch patch11_5,mem_patch11
+	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
+	beq KA5857,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:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne PKA8G2_ID1,mouse_twspi_reset
+	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
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_long_mult_flag
+	setarg 0
+	store 4,mem_mouse_x
+	branch mouse_init_sensor_reset
+
+mouse_data_extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+mouse_data_ior:
+	ior temp,pdata
+	rtn
+
+mouse_data_extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	branch mouse_data_ior
+
+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
+	branch mouse_data_y_store
+
+	
+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_device_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 patch11_6,mem_patch11
+	call hid_device_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_device_compare_addr
+	isub temp,null
+	branch mouse_start_discovery ,zero
+	branch mouse_start_reconnect_device
+
+mouse_bluetooth_fast_conn_disable:
+	jam 0x5a,mem_device_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_device_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 patch11_7,mem_patch11
+	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_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_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_device_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_device_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_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_device_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
+	call mouse_le_interval_store
+	call mouse_updata_le_param
+mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_le_conn_param_reject
+	rtn
+
+mouse_le_bb_event_connect_complete:
+	fetch 1,mem_device_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
+	call mouse_le_interval_store
+	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_le_conn_param_reject
+	rtn
+
+
+
+mouse_le:
+	bpatch patch12_0,mem_patch12
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_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,hid_device_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_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,hid_device_le_send_mouse_data
+	branch hid_device_send_package_data_check
+
+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
+	branch   istore_1_contw_rtn
+
+
+mouse_check_51cmd_adv:
+	jam 0,mem_device_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_le_parse_att:
+	bpatch patch12_1,mem_patch12
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_REQUEST,mouse_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,mouse_le_parse_att_write_request
+	branch le_parse_att2
+
+mouse_le_parse_att_read_request:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,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,mouse_le_send_att_read_response_check_auth
+//input:temp is handle
+mouse_le_send_att_read_response:
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+	fetcht 2,mem_le_att_handle
+	branch le_send_att_read_response
+
+mouse_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch mouse_le_send_att_read_response,zero
+	nbranch mouse_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+mouse_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	branch hid_device_le_parse_att_write_request
+
+mouse_bb_disconnected:
+	bpatch patch12_2,mem_patch12
+	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 2,contw             //clean wheel statue
+	jam 0,mem_mouse_move_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse4_0_event_bb_disconn:
+	jam 0,mem_le_connect_status_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 patch12_3,mem_patch12
+	//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
+	//key
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call mouse_commbination_key_process
+	call mouse_commbination_dpi_check_timer
+	call mouse_commbination_key_select_device_timer
+
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call mouse_store_information_delay_timer
+	call mouse_check_no_data_timeout_timer
+
+	//24g
+	call mouse_24g_long_sleep_param_update_timer
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+
+	//ble
+	call mouse_check_discovery_timeout_timer
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call mouse_le_battery_updata_timer
+	branch mouse_le_send_smp_security_request_timer
+
+
+
+mouse_bt_discovery_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+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_dpi_check_timer:
+	fetch 1,mem_mouse_commbination_key_dpi
+	rtneq GPIO_DISABLE
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_dpi
+	isub temp,null
+	branch mouse_commbination_dpi_check,zero
+	fetch 1,mem_mouse_commbination_dpi_timer
+mouse_commbination_key_count_init:
+	store 1,mem_mouse_commbination_key_count
+	rtn
+
+mouse_commbination_dpi_check:
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_dpi_process_skip_ghost,regb
+	branch timer_single_step
+
+
+mouse_retransmit_commbination_key_check:
+	fetch 1,mem_24g_shutdown_flag
+	rtn blank
+mouse_commbination_key_select_device_timer:
+	fetch 1,mem_mouse_commbination_key_select_device
+	rtneq GPIO_DISABLE
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_select_device
+	isub temp,null
+	branch p_mouse_check_mouse_key_select_device_set,zero
+	fetch 1,mem_mouse_commbination_select_device_timer
+	branch mouse_commbination_key_count_init
+
+p_mouse_check_mouse_key_select_device_set:
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_ready_reconnection_by_button,regb
+	branch timer_single_step
+
+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 rega,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_device_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_device_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+mouse_check_direct_timeout:
+	fetch 1,mem_device_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_device_le_bb_connected_flag
+	rtn blank
+	arg mem_device_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_device_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_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
+mouse_long_mult_init:
+	fetch 1,mem_mouse_long_mult_count
+	store 1,mem_mouse_long_mult_flag
+	rtn
+
+mouse_check_no_data_timeout_timer:
+	arg mem_device_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_device_no_data_timeout
+	store 2,mem_device_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_device_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
+	jam 0,mem_le_connect_status_flag
+	branch mouse_start_discovery
+
+mouse_start_discovery:
+	bpatch patch12_4,mem_patch12
+	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 1,mem_random_addr_increase_count
+	increase 1,temp
+	storet 1,mem_random_addr_increase_count
+	storet 1,mem_le_lap+2
+	random pdata					//random ble addr
+	store 2,mem_le_lap
+mouse_start_discovery_norandom:
+	fetch 3,mem_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	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 patch12_5,mem_patch12
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+mouse_stop_le_adv:
+	setarg 0
+	store 1,mem_device_direct_timer
+	store 2,mem_device_discovery_timer
+	branch check_51cmd_stop_adv
+
+mouse_store_remote_bdaddr:
+	bpatch patch12_6,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call hid_device_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call hid_device_before_store_reconn_info
+	branch mouse_store_device_info_delay
+
+
+
+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 patch12_7,mem_patch12
+	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 patch13_0,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_dpi
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	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 	hid_device_store_flash_device_info
+	branch mouse_sensor_spi_init
+
+
+
+
+mouse_store_otp_device_info:
+	call mouse_write_otp_app_initflag
+	call mouse_write_otp_device_flag
+	call mouse_write_otp_device_info
+	branch mouse_write_otp_le_addr_increase_count_info
+
+mouse_write_otp_app_initflag:
+	call mouse_otp_load_app_initflag
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	rtn zero
+	branch mouse_otp_store_app_initflag
+
+
+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_otp_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
+	call mouse_device_flag_otp_store_judge			// add device_flag check
+	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:
+	fetcht 1,mem_device_flag_last
+	fetch 1,mem_device_flag
+	call mouse_device_flag_otp_store_judge
+
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	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_device_flag_otp_store_judge:
+	rtnne MODE_24G_DEVICE
+	increase 4,pdata
+	rtn
+
+
+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_device_24g_addr
+	isub temp,null
+	rtn zero
+	arg 4,loopcnt
+	arg mem_device_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 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_store,blank
+	store 1,mem_random_addr_increase_count_last
+	increase 1,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 1,mem_random_addr_increase_count_last
+	fetcht 1,mem_random_addr_increase_count
+	isub temp,null
+	rtn zero
+	arg 1,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_check,blank
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge	//add dpi check
+	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_check:
+	fetcht 1,mem_mouse_dpi_last
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	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_dpi_otp_store_judge:
+	rtnne MOUSE_DPI_LEVEL1
+	increase 7,pdata
+	rtn
+
+
+
+
+
+
+
+mouse_device_flag_check:
+	fetch 1,mem_device_flag
+	sub pdata,4,null
+	rtn positive
+	call set_pdata_0
+	branch mouse_store_device_flag
+
+
+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 set_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+	call mouse_device_flag_check
+	branch mouse_app_initflag_load_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 hid_device_load_flash_info_check
+	call mouse_device_flag_check
+	call mouse_app_initflag_load_check
+	branch mouse_sensor_spi_init
+
+mouse_information_flash_parameters:
+	setarg mem_device_information_end
+	arg mem_device_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_device_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 device_gpio_config_input_pd
+
+
+
+mouse_load_otp_info_check:
+	call mouse_read_otp_dpi
+	call mouse_read_otp_device_flag
+	call mouse_device_flag_check
+	call mouse_read_otp_device_info
+mouse_app_initflag_load_check:
+	bpatch patch13_1,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_OTP,pdata
+	call mouse_otp_load_app_initflag,true
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+mouse_app_initflag_load:
+	storet 2,mem_store_flag
+	call hid_device_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	store 1,mem_random_addr_increase_count
+mouse_load_default_dpi:
+	fetch 1,mem_config_sensor_dpi
+mouse_temp_store_dpi:
+	store 1,mem_mouse_dpi
+	rtn
+
+mouse_otp_load_app_initflag:
+	arg 2,loopcnt
+	fetchr regb,2,mem_otp_offset_app_initflag
+	arg mem_store_flag,rega
+	branch otp_read_data
+
+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_otp_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_otp_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:
+	sub pdata,0,null
+	branch mouse_device_flag_temp_load,zero
+	sub pdata,4,null
+	call set_pdata_0,zero
+mouse_store_device_flag:
+	store 1,mem_device_flag
+	rtn
+
+mouse_device_flag_temp_load:
+	fetch 1,mem_device_flag_temp
+	branch mouse_store_device_flag
+
+
+mouse_read_otp_device_info:
+	call mouse_read_otp_24g_addr
+	call mouse_read_otp_le_device1
+	call mouse_read_otp_le_device2
+	branch mouse_read_otp_le_addr_increase_count_info
+
+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
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr1_init,zero
+	store 6,mem_device1_locall_addr
+	rtn
+
+mouse_device_le_locall_addr1_init:
+	fetch 6,mem_le_lap
+	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
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr2_init,zero
+	store 6,mem_device2_locall_addr
+	rtn
+
+mouse_device_le_locall_addr2_init:
+	fetch 6,mem_le_lap
+	add pdata,0x0100,pdata
+	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_device_24g_addr
+	rtn
+
+
+mouse_read_otp_le_addr_increase_count_info:
+	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 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_load,blank
+	store 1,mem_random_addr_increase_count_last
+	increase 1,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 1,loopcnt
+	arg mem_random_addr_increase_count_temp,rega
+	branch otp_read_data				
+
+mouse_le_addr_increase_count_load:
+	fetch 1,mem_random_addr_increase_count_last
+	store 1,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:
+	sub pdata,7,null
+	call set_pdata_0,zero
+	branch mouse_temp_store_dpi
+
+
+
+
+mouse_idle:
+	bpatch patch13_2,mem_patch13
+	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
+	call mouse_wheel_check
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	bpatch patch13_3,mem_patch13
+	call mouse_usb_isr
+	branch mouse_usb_mode
+
+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:
+	call mouse_select_device_by_pb_button_check
+	branch mouse_select_device_by_pb_button_exit
+
+mouse_select_device_by_pb_button_check:
+	bpatch patch13_4,mem_patch13
+	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:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	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 device_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_device_direct_timer
+	rtn blank
+	fetch 1,mem_device_direct_timeout
+	store 1,mem_device_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
+	fetch 1,mem_mouse_mkey_press_status
+	rtn blank
+	branch enable_user
+
+//===========================select device by switch start==================================//
+
+mouse_check_select_device_by_switch:
+	bpatch patch13_5,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check
+mouse_switch_gpio_connect_vin_check:
+	call mouse_switch_gpio_connect_vin
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check:
+	call mouse_switch_gpio_connect_gnd
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+
+mouse_switch_gpio_connect_vin:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_btdevice,true
+	branch mouse_select_24gdevice
+
+mouse_switch_gpio_connect_gnd:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_24gdevice,true
+	branch mouse_select_btdevice
+
+mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_set
+
+mouse_select_24gdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_set:
+	call mouse_select_device_stop_set
+	branch mouse_soft_reset
+
+//=========================================================//
+
+mouse_check_select_device_by_switch_once:
+	bpatch patch13_6,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check_once
+mouse_switch_gpio_connect_vin_check_once:
+	call mouse_switch_gpio_connect_vin_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check_once:
+	call mouse_switch_gpio_connect_gnd_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+
+
+mouse_switch_gpio_connect_vin_once:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_btdevice,true
+	branch mouse_check_select_24g_device
+
+mouse_switch_gpio_connect_gnd_once:
+
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_24g_device,true
+	branch mouse_check_select_btdevice
+
+mouse_check_select_24g_device:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_stop_set:
+	call mouse_24g_stop
+	branch mouse_stop_bluetooth_mode
+
+mouse_check_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_stop_set
+
+//===========================select device by switch end==================================//
+
+
+mouse_ready_reconnection_by_button:
+	bpatch patch13_7,mem_patch13
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+mouse_store_device_number_before_reset:
+	call mouse_select_device_enable
+	call mouse_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	call mouse_select_device_disable
+	jam 1,mem_device_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
+	rtn positive
+mouse_select_device_count_clean_bt:
+	arg 1,temp
+	rtn
+
+mouse_select_device_number_24g:
+	fetch 1,mem_device_number
+	increase -1,pdata
+	isub temp,null
+	rtn positive
+mouse_select_device_count_clean_24g:
+	arg 0,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_polling_device:
+	bpatch patch14_0,mem_patch14
+	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 hid_device_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 patch14_1,mem_patch14
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	rtneq KA8G2
+	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
+mouse_data_y_store:
+	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 patch14_2,mem_patch14
+	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
+	branch mouse_data_y_store
+
+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
+	branch mouse_div_end
+
+mouse_current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+mouse_div_end:
+	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
+	branch mouse_long_mult_init
+
+
+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 patch14_3,mem_patch14
+	jam 0,mem_mouse_pair_flag
+	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_24g_shutdown_flag
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch mouse_24g_long_sleep
+
+mouse_wakeup_24g:
+	bpatch patch14_4,mem_patch14
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_24g_shutdown_flag
+	rtn
+
+mouse_wakeup_24g_from_long_sleep:
+	jam 1,mem_mouse_pair_flag
+	call mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_init:
+	fetcht 1,mem_whee_a_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_b_data_gpio
+ 	branch device_gpio_config_input_pu
+
+mouse_24g_transmit_start:
+	call mouse_24g_fast_conn_mode_check
+	fetch 1,mem_24g_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
+mouse_soft_agc_disable:
+	jam 0xff,mem_gain_fix
+	rtn
+
+mouse_soft_agc_enable:
+	jam 0,mem_gain_fix
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+
+device_store_normal_tx_power:
+	fetch 1,mem_tx_power
+	store 1,mem_device_normal_tx_power
+	rtn
+
+device_fetch_normal_tx_power:
+	fetch 1,mem_device_normal_tx_power
+	store 1,mem_tx_power
+	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_device_24g_power_on_fast_conn_timer
+	store 2,mem_24g_reconn_timeout
+	jam FAST_CONN_AND_RECEIVER,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 hid_device_select_reconn_device
+	branch mouse_le_fast_conn_judge
+
+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
+mouse_24g_pair_mode_check:
+	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:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	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 FAST_CONN_AND_RECEIVER,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_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_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
+	bbit1 MOUSE_ENABLE_OTP,mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair
+
+mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_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
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	branch mouse_24g_first_store_reconn_info
+
+mouse_24g_pairing_complete:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	call mouse_init_sensor_reset
+	call mouse_read_sensor_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_device_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 patch14_5,mem_patch14
+	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
+	branch hid_device_24g_keyboard_package_data_set
+
+mouse_g24_retransmit:
+	fetch 1,mem_device_need_soft_reset
+	nrtn blank
+	call mouse_g24_retransmit_100ms_timer
+	branch g24_retransmit0
+
+mouse_g24_retransmit_100ms_timer:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	call mouse_retransmit_select_device_by_pb_button
+	call mouse_retransmit_commbination_key_check
+	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
+	branch mouse_dpi_check
+
+
+mouse_24g_before_lpm_sleep:
+	call lpm_puchk_set_check
+	branch hid_device_before_lpm_set
+
+
+
+
+mouse_logo_led_on_timer:
+	fetch 1,mem_mouse_logo_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_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 patch14_6,mem_patch14
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_led_blink_set_4_level
+mouse_dpi_led_blink_set_3_level:			//800-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_2_blink	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_3_blink	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink	//800
+	rtn
+
+mouse_dpi_led_blink_set_4_level:			//800-1000-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3_blink		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_4_blink		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink		//800
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2_blink		//1000
+	rtn
+
+mouse_dpi_level_1_blink:
+	setarg 2
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_2_blink:
+	setarg 4
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_3_blink:
+	setarg 6
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_4_blink:
+	setarg 8
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_multi_dpi_led_blink_enable:
+	store 1,mem_mouse_multi_led_blink_count
+	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_delay:
+//	fetch 2,mem_device_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_pair_flag
+	rtn 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_device_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_pair_flag
+	rtn 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
+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
+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 patch14_7,mem_patch14
+	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 patch15_0,mem_patch15
+//	call mouse_device_24g_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 1,mem_mouse_multi_led_blink_type
+	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
+	bpatchx patch3a_3,mem_patch3a
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+//	call mouse_device_le_reconn_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 3,mem_mouse_multi_led_blink_type
+	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
+//	call mouse_device_le_discovery_led_blink_timer_init
+	jam 0,mem_mouse_le_reconn_blink_limit
+	jam 2,mem_mouse_multi_led_blink_type
+mouse_multi_led_blink_enable_init:
+	bpatchx patch3a_4,mem_patch3a
+	jam 0x0a,mem_mouse_multi_led_blink_timer
+	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,pdata
+	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
+ 	jam 1,mem_mouse_pair_flag
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_device_led_off
+
+mouse_multi_led_type_blink:
+	bpatch patch15_1,mem_patch15
+	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,pdata
+	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 patch15_2,mem_patch15
+	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 patch15_3,mem_patch15
+	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_analog
+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_analog
+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_analog
+
+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
+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
+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
+	branch hid_device_enable_lpm
+
+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
+	branch hid_device_disable_lpm
+
+
+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_set_lpm_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+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_24g_long_sleep:
+	bpatch patch15_4,mem_patch15
+	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_24g_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 8,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_last_miss:
+	fetcht 4,mem_mouse_24g_sleep_miss_temp
+	isolate1 31,temp
+	branch mouse_24g_sub_miss_temp,true
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	iadd temp,pdata
+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:
+	jam 250,mem_mouse_24g_tx_time_offset
+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_2:
+	jam 1,mem_mouse_24g_sleep_miss
+	rtn
+
+mouse_24g_sub_miss_temp:
+	arg -1,pdata
+	isub temp,regext
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	isub regext,pdata
+	branch mouse_24g_short_sleep_notify
+
+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_sleep_miss_temp
+	nrtn blank
+
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	fetcht 4,mem_mouse_24g_tsniff
+	lshift temp,temp
+	isub temp,null
+	branch mouse_24g_send_time_long_wake,positive
+
+	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
+
+	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 patch15_5,mem_patch15
+	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
+mouse_24g_short_sleep_storet:
+	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 patch15_6,mem_patch15
+	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
+	branch mouse_24g_short_sleep_storet
+
+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
+
+
+mouse_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	rtn
+
+mouse_usb_isr:
+	call mouse_usb_interface_check
+	fetch 1,mem_usb_vdd_status
+	rtnne USB_INTERFACE_INSERT
+	branch usb_isr
+
+mouse_usb_interface_check:
+	bpatch patch15_7,mem_patch15
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	nbranch mouse_usb_mode_disable,true
+mouse_usb_mode_enable:
+	fetch 1,mem_usb_vdd_status
+	rtneq USB_INTERFACE_INSERT
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	disable wake
+	call mouse_init_sensor_reset
+
+	setarg mouse_usb_config_param
+	store 2,mem_cb_usb_config
+	fetch 1,mem_usb_tx_interval_retention
+	store 1,mem_usb_tx_interval
+	arg mem_usb_vid_pid_retention,contr
+	arg mem_usb_vid_pid,contw
+	arg 9,loopcnt
+	call memcpy
+	branch usb_init
+
+mouse_usb_mode_disable:
+	fetch 1,mem_usb_keyboard_flag
+	rtneq USB_INTERFACE_REMOVE
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	fetch 2,core_clkoff
+	set1 CLOCK_OFF_USB,pdata
+	store 2,core_clkoff
+	jam 1,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	branch mouse_soft_reset
+
+mouse_usb_mode:
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	call mouse_usb_timer_check
+	nrtn user
+	call mouse_motion
+	nrtn user
+	fetch 1,core_usb_txbusy
+	rtnbit1 2
+	branch mouse_push_data_to_usb
+
+mouse_push_data_to_usb:
+	fetch 1,core_usb_addr
+	rtnbit0 7
+	bpatch patch16_0,mem_patch16
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_push_mouse_data_to_usb
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb
+	branch hid_device_push_mouse_data_to_usb
+
+mouse_usb_timer_check:
+	call disable_user
+	fetcht 4,mem_btclk_sensor
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall mouse_usb_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_btclk_sensor
+	fetcht 1,mem_wire_usb_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_btclk_sensor
+	branch enable_user
+
+mouse_usb_timer_timeout:
+	rtn zero
+	set1 28,pdata
+	rtn
+
+mouse_usb_timer_init:
+	setarg 0
+	store 4,mem_btclk_sensor
+	rtn
+
+mouse_usb_config_param:
+	bpatch patch16_1,mem_patch16
+	call mouse_usb_config_kb_check
+	call mouse_usb_report_rate_set
+	call mouse_usb_config_param_setup
+mouse_usb_device_name_config:
+	fetch 1,mem_usb_device_name_retention
+	rtn blank
+	arg mem_usb_device_name_retention,contr
+	arg mem_string2,contw
+	arg 30,loopcnt
+	branch memcpy
+
+mouse_usb_config_kb_check:
+	jam DONGLE_KB_BIND_OTP_OFFECT,mem_usb_keyboard_flag
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	rtn
+
+mouse_usb_config_param_setup:
+	call usb_tx_interval_config
+	call dongle_usb_vid_pid_config
+mouse_usb_hid_icon_config:
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+mouse_usb_report_rate_set:
+	call mouse_usb_timer_init
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_USB_250,mouse_usb_report_rate_set_250hz
+	bbit1 MOUSE_ENABLE_USB_500,mouse_usb_report_rate_set_500hz
+	bbit1 MOUSE_ENABLE_USB_1000,mouse_usb_report_rate_set_1000hz
+mouse_usb_report_rate_set_125hz:
+	jam 32,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_250hz:
+	jam 16,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_500hz:
+	jam 8,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_1000hz:
+	jam 4,mem_wire_usb_interval
+	rtn
+
+
+
+
+
+
+
+
+rec_cb_function:
+	setarg rec_process_idle
+	store 2,mem_cb_idle_process
+
+//	setarg rec_2_5ms_timer
+//	store 2,mem_rec_cb_timer
+	rtn
+
+
+rec_process_idle:
+	call rec_ui_timer_check
+	rtn
+
+rec_ui_timer_check:
+	bpatch patch16_2,mem_patch16
+	arg 0,rega
+	fetcht 4,mem_rec_ui_timer_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+rec_ui_timer_check_loop:
+	copy regb,pdata
+	increase 8,temp    //8btclk = 2.5ms
+	isub temp,null
+	nbranch rec_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch rec_ui_timer_check_loop,blank
+	arg 0,rega  	//reset timer if it's longer than 1.5s between 2 checks
+	call rec_ui_timer_check_send_evt
+rec_ui_timer_init:
+	storer clkn_bt,4,mem_rec_ui_timer_btclk
+	rtn
+rec_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -8,temp    //8btclk = 2.5ms
+	set0 28,temp
+	storet 4,mem_rec_ui_timer_btclk
+rec_ui_timer_check_send_evt:
+	store 1,mem_rec_ui_timer_count
+rec_evt_timer_loop:
+	fetch 1,mem_rec_ui_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_rec_ui_timer_count
+	fetch 2,mem_rec_cb_timer
+	call callback_func
+	branch rec_evt_timer_loop
+
+
+
+////////////////////////////////////////////////////////////////TSACN START///////////////////////////////////////////////////////	
+
+rec_tscan:
+	bpatch patch16_3,mem_patch16
+	fetch 1,mem_rec_tscan_row_nums
+	rtn blank
+	jam 0,mem_rec_tscan_col_scanned
+	jam 0,mem_rec_tscan_sequence
+	call rec_gpio_wakeup_disable
+rec_tscan_gnd_process:
+	call rec_tscan_get_gndkey_state	
+	fetch 1,mem_rec_tscan_gndkey_need_send_flag
+	nrtn blank
+	call rec_tscan_gpio_set_before_lpm
+	call lpm_write_gpio_wakeup
+rec_tscan_process:
+	bpatch patch16_4,mem_patch16
+	call rec_tscan_col_state_init
+	call rec_tscan_row_state_init
+	call rec_tscan_get_row_state
+	call rec_tscan_pull_up_current_col_gpio
+	branch rec_tscan_col_state_next_gpio_check
+
+rec_tscan_col_state_init:	
+	arg mem_rec_tscan_col_gpio,rega
+	fetch 1,mem_rec_tscan_col_scanned
+	iadd rega,rega
+	storer rega,2,mem_rec_tscan_col_gpio_ptr
+	ifetcht 1,rega
+	branch gpio_config_output
+
+rec_tscan_row_state_init:	
+	fetch 1,mem_rec_tscan_row_nums
+	rtn blank
+	fetcht 1,mem_rec_tscan_col_scanned
+	isub temp,pdata
+	iforce loopcnt
+	arg mem_rec_tscan_row_gpio,rega
+	fetch 1,mem_rec_tscan_col_scanned
+	iadd rega,rega
+rec_tscan_row_gpio_config_input_pull_up:
+	ifetch 1,rega
+	call rec_gpio_weak_pullup
+	increase 1,rega
+	loop rec_tscan_row_gpio_config_input_pull_up
+	rtn
+
+
+rec_tscan_get_row_state:
+	jam 0,mem_rec_tscan_row_scanned
+	fetch 1,mem_rec_tscan_row_nums
+	fetcht 1,mem_rec_tscan_col_scanned
+	isub temp,pdata
+	store 1,mem_rec_tscan_row_scan_loop_count
+
+	arg mem_rec_tscan_row_gpio,rega
+	fetch 1,mem_rec_tscan_col_scanned
+	iadd rega,rega
+rec_tscan_get_row_state_loop:
+	ifetcht 1,rega
+	storet 1,mem_rec_gpio_bit_check
+	call rec_tscan_debounce
+	nrtn user
+
+	call rec_tscan_record_key_coord,true
+	increase 1,rega
+	fetch 1,mem_rec_tscan_row_scanned
+	increase 1,pdata
+	store 1,mem_rec_tscan_row_scanned
+	
+	fetcht 1,mem_rec_tscan_sequence
+	increase 1,temp
+	storet 1,mem_rec_tscan_sequence
+	
+	fetcht 1,mem_rec_tscan_row_scan_loop_count
+	isub temp,null
+	nbranch rec_tscan_get_row_state_loop,positive
+
+	fetch 2,mem_rec_tscan_record_row
+	rtn blank
+	store 2,mem_rec_tscan_record_now
+	
+	setarg 0
+	store 2,mem_rec_tscan_record_row
+	rtn
+
+rec_tscan_record_key_coord:
+	storer rega,2,mem_rec_tscan_current_gpio_ptr
+	
+//	call rec_tscan_get_gndkey_state	//check ghost key
+//	fetch 1,mem_rec_tscan_gndkey_need_send_flag
+//	nrtn blank
+
+	fetch 1,mem_rec_tscan_row_scanned
+	copy pdata,queue
+	fetcht 1,mem_rec_tscan_record_row
+	qset1 temp
+	storet 1,mem_rec_tscan_record_row
+
+	fetch 1,mem_rec_tscan_col_scanned
+	copy pdata,queue
+	fetcht 1,mem_rec_tscan_record_col
+	qset1 temp
+	storet 1,mem_rec_tscan_record_col
+
+	call rec_tscan_combin_key_num_output
+
+	fetchr rega,2,mem_rec_tscan_current_gpio_ptr
+	rtn
+
+rec_tscan_combin_key_num_output:
+	fetcht 2,mem_rec_tscan_record_row
+	arg mem_rec_tscan_key_nums_list,rega
+rec_tscan_combin_key_num_loop:
+	ifetch 2,rega
+	rtn blank
+	isub temp,null
+	call rec_tscan_output_combin_key_num,zero
+	increase 2,rega
+	branch rec_tscan_combin_key_num_loop
+
+rec_tscan_output_combin_key_num:
+	fetchr queue,1,mem_rec_tscan_sequence
+	fetch 8,mem_rec_tscan_key_num_bit
+	qset1 pdata
+	store 8,mem_rec_tscan_key_num_bit	
+	rtn
+
+rec_tscan_pull_up_current_col_gpio:
+	fetch 2,mem_rec_tscan_col_gpio_ptr
+	ifetch 1,pdata
+	branch rec_gpio_weak_pullup
+
+rec_tscan_col_state_next_gpio_check:
+	fetch 1,mem_rec_tscan_col_scanned
+	increase 1,pdata
+	store 1,mem_rec_tscan_col_scanned
+	fetcht 1,mem_rec_tscan_col_nums
+	isub temp,null
+	nbranch rec_tscan_process,positive
+	fetch 2,mem_rec_tscan_record_now
+	branch rec_tscan_key_up,blank
+rec_tscan_key_down:
+	store 2,mem_rec_tscan_record_temp
+	fetch 1,mem_rec_tscan_key_need_send_flag
+	nbranch rec_tscan_key_value_clear,blank
+	fetch 1,mem_rec_tscan_key_state
+	rtneq KEY_DOWN
+	jam KEY_DOWN,mem_rec_tscan_key_state	
+	jam 1,mem_rec_tscan_key_need_send_flag
+	bpatch patch16_5,mem_patch16
+	call rec_tscan_key_num_output
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch rec_led_start_on
+
+rec_tscan_key_up:
+	fetch 1,mem_rec_tscan_key_state
+	rtneq KEY_UP
+	jam KEY_UP,mem_rec_tscan_key_state
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,rec_tscan_key_up_send
+	fetch 1,mem_rec_nec_learn_state
+	nbranch rec_tscan_key_up_send,blank
+	call rec_led_start_off
+rec_tscan_key_up_send:
+	setarg 0
+	store 8,mem_rec_tscan_key_num_bit
+	store 1,mem_rec_tscan_key_need_send_flag
+rec_tscan_key_up_config:
+	jam 0,mem_rec_tscan_current_key_num
+	arg mem_rec_key_release_le,regc
+	branch push_buffer_in_queue
+
+rec_tscan_key_num_output:
+	call rec_tscan_key_num_check
+rec_tscan_record_init:
+	setarg 0
+	store 2,mem_rec_tscan_record_temp
+	rtn
+
+rec_tscan_key_value_clear:
+	setarg 0
+	store 2,mem_rec_tscan_record_now
+	rtn
+
+rec_tscan_get_gndkey_state:
+	arg 0,rega
+	arg 0,regb
+	force 0,regext_index
+	fetch 1,mem_rec_tscan_gpio_nums
+	iforce loopcnt
+	arg mem_rec_tscan_col_gpio,regc
+rec_tscan_get_gndkey_loop:
+	call rec_save_regc
+	call rec_save_rega
+	ifetch 1,regc
+	call rec_gpio_weak_pullup
+	call rec_rescue_rega
+	call rec_rescue_regc
+	ifetcht 1,regc
+	storet 1,mem_rec_gpio_bit_check
+	call rec_tscan_debounce
+	nrtn user
+
+	copy regb,queue
+	call rec_tscan_store_gndkey_press_state,true
+	ncall rec_tscan_store_gndkey_release_state,true
+	increase 1,regc
+	increase 1,regb
+	loop rec_tscan_get_gndkey_loop
+	copy rega,pdata
+	branch rec_tscan_gndkey_up,blank
+rec_tscan_gndkey_down:
+	store 1,mem_rec_tscan_gndkey_record_temp
+	fetch 1,mem_rec_tscan_gndkey_state
+	rtneq KEY_DOWN
+	jam KEY_DOWN,mem_rec_tscan_gndkey_state
+	jam 1,mem_rec_tscan_gndkey_need_send_flag
+	bpatch patch16_6,mem_patch16
+	call rec_tscan_gndkey_num_output
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch rec_led_start_on
+
+rec_tscan_gndkey_up:
+	fetch 1,mem_rec_tscan_gndkey_state
+	rtneq KEY_UP
+	jam KEY_UP,mem_rec_tscan_gndkey_state
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,rec_tscan_gndkey_up_send
+	fetch 1,mem_rec_nec_learn_state
+	nbranch rec_tscan_gndkey_up_send,blank
+	call rec_led_start_off
+rec_tscan_gndkey_up_send:
+	jam 0,mem_rec_tscan_gndkey_need_send_flag
+	branch rec_tscan_key_up_config
+
+rec_tscan_gndkey_num_output:
+	call rec_tscan_gndkey_num_check
+rec_tscan_gndkey_record_param_init:
+	jam 0,mem_rec_tscan_gndkey_record_temp
+	rtn
+
+rec_tscan_gndkey_num_check:
+	fetcht 1,mem_rec_tscan_gndkey_record_temp
+	arg mem_rec_tscan_gndkey_nums_list,rega
+	arg 0,regb
+rec_tscan_gndkey_num_loop:
+	ifetch 1,rega
+	rtn blank
+	isub temp,null
+	branch rec_tscan_output_gndkey_num,zero
+	increase 1,rega
+	increase 1,regb
+	branch rec_tscan_gndkey_num_loop
+
+rec_tscan_store_gndkey_press_state:
+	qset1 rega
+	rtn
+
+rec_tscan_store_gndkey_release_state:
+	qset0 rega
+	rtn
+
+
+rec_gpio_bit_first_set:
+	jam 1,mem_rec_gpio_bit_first
+	rtn
+rec_gpio_bit_second_set:
+	jam 1,mem_rec_gpio_bit_second
+	rtn
+rec_tscan_debounce:
+	call disable_user
+	jam 0,mem_rec_gpio_bit_first
+	jam 0,mem_rec_gpio_bit_second
+	fetcht 1,mem_rec_gpio_bit_check
+	call gpio_get_bit
+	call rec_gpio_bit_first_set,true
+	nop 1200
+	fetcht 1,mem_rec_gpio_bit_check
+	call gpio_get_bit
+	call rec_gpio_bit_second_set,true
+	fetch 1,mem_rec_gpio_bit_first
+	fetcht 1,mem_rec_gpio_bit_second
+	isub temp,null
+	nrtn zero
+	branch enable_user
+	
+
+//pdata: gpio number 
+rec_gpio_weak_pullup:	
+	store 1,mem_rec_gpio_for_wake_pullup
+	call rec_gpio_set_input
+	fetch 1,mem_rec_gpio_for_wake_pullup	
+rec_gpio_set_lpm_weak_pullup:
+	arg 0x01,regc
+	div pdata,2
+	call wait_div_end
+	quotient temp
+	remainder pdata
+	ncall rec_gpio_set_0x10_regc,blank	
+	copy temp,pdata
+	arg core_gpio_wakeup_cfg,contw
+	until null,lpo_edge
+	until null,lpo_edge
+	iadd contw,contw
+	ifetch 1,contw
+	ior regc,pdata
+	istore 1,contw
+	branch lpm_write_wait
+	
+rec_gpio_set_0x10_regc:
+	arg 0x10,regc
+	rtn
+
+//pdata: gpio number
+rec_gpio_set_input:
+	or pdata,0x80,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function
+	
+rec_gpio_wakeup_disable:
+	branch lpm_config_puchk_disable
+
+rec_save_regc:
+	copy regc,pdata
+	branch rec_save_reg
+
+rec_rescue_regc:
+	call rec_rescue_reg
+	copy pdata,regc
+	rtn
+
+rec_save_rega:
+	copy rega,pdata
+	branch rec_save_reg
+
+rec_rescue_rega:
+	call rec_rescue_reg
+	copy pdata,rega
+	rtn
+
+rec_save_reg:
+ 	increase 1,regext_index
+ 	copy pdata,regext
+ 	rtn
+
+rec_rescue_reg:
+ 	copy regext,pdata
+ 	increase -1,regext_index
+ 	rtn	
+
+rec_tscan_gpio_set_before_lpm:
+	call rec_tscan_gpio_config_high_impedance
+	call rec_tscan_gpio_config_tri_angle_wakeup
+	call rec_gpio_wakeup_disable
+rec_gpio_wakeup_enable:
+	setarg 0xf0
+	store 1,core_puwakeup
+	branch lpm_write_wait
+
+rec_tscan_gpio_config_high_impedance:
+	fetch 1,mem_rec_tscan_gpio_nums
+	arg mem_rec_tscan_col_gpio,rega
+	branch rec_gpio_config_high_impedance	
+
+rec_tscan_gpio_config_tri_angle_wakeup:
+	fetchr regb,1,mem_rec_gpio_wakeup_source
+	fetch 1,mem_rec_tscan_gpio_nums
+	arg mem_rec_tscan_col_gpio,rega
+	branch rec_gpio_wakeup_config
+
+rec_gpio_config_high_impedance:	
+	copy pdata,loopcnt
+rec_high_impedance_loop:
+	ifetcht 1,rega
+	call gpio_set_high_impedance
+	increase 1,rega
+	loop rec_high_impedance_loop
+	rtn
+
+
+rec_gpio_wakeup_config:
+	copy pdata,loopcnt
+rec_gpio_wakeup_config_loop:
+	ifetcht 1,rega
+	rshift temp,pdata
+	arg mem_gpio_wakeup_cfg,contw
+	iadd contw,contw
+	call rec_gpio_wakeup_addr_search
+	ifetcht 1,contw
+	ior temp,pdata
+	istore 1,contw
+	increase 1,rega
+	loop rec_gpio_wakeup_config_loop
+	rtn
+
+rec_gpio_wakeup_addr_search:
+	copy regb,pdata
+	isolate0 0,temp
+	rtn true
+	lshift4 pdata,pdata
+	rtn
+
+rec_tscan_output_gndkey_num:
+	bpatch patch16_7,mem_patch16
+	copy regb,pdata
+	fetcht 1,mem_rec_gnd_key_offset
+	iadd temp,pdata
+rec_tscan_output_key_map:
+	arg mem_rec_key_map,regc
+	iadd regc,regc
+	ifetch 1,regc
+	store 1,mem_rec_tscan_current_key_num
+	increase -1,pdata
+	mul32 pdata,MAX_QUEUE_UNIT,pdata
+	arg mem_rec_key_press_le,regc
+	iadd regc,regc
+	branch rec_push_buffer_in_queue
+
+rec_tscan_key_num_check:
+	fetcht 2,mem_rec_tscan_record_temp
+	arg mem_rec_tscan_key_nums_list,rega
+	arg 0,regb
+rec_tscan_key_num_loop:
+	ifetch 2,rega
+	rtn blank
+	isub temp,null
+	branch rec_tscan_output_key_num,zero
+	increase 2,rega
+	increase 1,regb
+	branch rec_tscan_key_num_loop
+
+rec_tscan_output_key_num:
+	bpatch patch17_0,mem_patch17
+	copy regb,pdata
+	branch rec_tscan_output_key_map
+
+rec_push_buffer_in_queue:
+	bpatch patch17_1,mem_patch17
+	fetch 1,mem_rec_le_connect_state
+	nbranch rec_puch_buffer_in_queue_check,blank
+rec_push_buffer_in_queue_end:
+	call rec_key_type_select
+	branch push_buffer_in_queue
+
+rec_puch_buffer_in_queue_check:
+	fetch 1,mem_rec_le_enable_notify
+	rtn blank
+	branch rec_push_buffer_in_queue_end
+
+rec_key_type_select:
+	ifetch 1,regc
+	increase 1,regc
+	beq KEYPAD_TYPE_CONSUMER,rec_set_key_type_consumer
+	beq KEYPAD_TYPE_MOUSE,rec_set_key_type_mouse
+	beq KEYPAD_TYPE_KEYPAD,rec_set_key_type_keypad
+	beq KEYPAD_TYPE_NEC,rec_set_key_type_nec
+	rtn
+rec_set_key_type_consumer:
+	jam KEYPAD_TYPE_CONSUMER,mem_rec_keypad_type
+	rtn
+rec_set_key_type_mouse:
+	jam KEYPAD_TYPE_MOUSE,mem_rec_keypad_type
+	rtn
+rec_set_key_type_keypad:
+	jam KEYPAD_TYPE_KEYPAD,mem_rec_keypad_type
+	rtn
+rec_set_key_type_nec:
+	jam KEYPAD_TYPE_NEC,mem_rec_keypad_type
+	rtn
+
+rec_tscan_key_send:
+	bpatch patch17_2,mem_patch17
+	call queue_pop_one_byte
+	nrtn user
+	store 1,mem_rec_keypad_fun
+	fetch 1,mem_rec_tscan_current_key_num
+	call rec_nec_disable,blank
+rec_tscan_send_keypad:	
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,rec_send_nec_keypad
+	fetch 1,mem_rec_keypad_type
+	beq KEYPAD_TYPE_CONSUMER,rec_le_send_consumer
+	beq KEYPAD_TYPE_MOUSE,rec_le_send_mouse
+	beq KEYPAD_TYPE_KEYPAD,rec_le_send_keyboard
+	beq KEYPAD_TYPE_NEC,rec_send_nec_keypad
+	rtn
+
+rec_send_nec_keypad:	
+	fetch 1,mem_rec_tscan_current_key_num
+	beq 0x00,rec_nec_disable
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,3,pdata
+	arg mem_rec_key_nec_value_list,temp
+	iadd temp,contr
+	ifetch 2,contr
+	ifetcht 1,contr
+	branch rec_nec_6122_start
+
+rec_le_send_consumer:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,3,pdata
+	arg mem_rec_key_consumer_value_list,temp
+	iadd temp,contr
+	arg 3,loopcnt
+	arg mem_pdatatemp,contw	
+	call memcpy
+	jam 3,mem_rec_le_data_len
+	fetcht 2,mem_rec_report_id2_handle
+rec_le_send_data:
+	fetch 1,mem_rec_le_enable_notify
+	rtn blank
+	fetchr rega,1,mem_rec_le_data_len
+	call le_att_malloc_tx_notify
+	fetcht 1,mem_rec_le_data_len
+	copy temp,loopcnt
+	arg mem_pdatatemp,contr
+	branch memcpy
+
+
+rec_le_send_mouse:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,4,pdata
+	arg mem_rec_key_mouse_value_list,temp
+	iadd temp,contr
+	arg 4,loopcnt
+	arg mem_pdatatemp,contw	
+	call memcpy
+	jam 4,mem_rec_le_data_len
+	fetcht 2,mem_rec_report_id4_handle
+	branch rec_le_send_data
+
+rec_le_send_keyboard:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,10,pdata
+	arg mem_rec_key_keyboard_value_list,temp
+	iadd temp,contr
+	ifetch 2,contr
+rec_le_fill_standard_key_data:	
+	arg 8,loopcnt
+	arg mem_pdatatemp,contw	
+	call memcpy
+	jam 8,mem_rec_le_data_len
+	fetcht 2,mem_rec_report_id1_handle
+	branch rec_le_send_data
+
+
+////////////////////////////////////////////////////////////////TSACN END///////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////LED START///////////////////////////////////////////////////////
+
+rec_led_start_on:
+	arg 0,rega
+	branch ui_led_on_global
+
+rec_led_start_off:
+	arg 0,rega
+	branch ui_led_off_global
+
+////////////////////////////////////////////////////////////////LED END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////NEC SEND START///////////////////////////////////////////////////////
+
+rec_nec_send_userdata_6122:
+	store 2,mem_rec_nec_usercode
+	storet 1,mem_rec_nec_datacode
+	force 0,regext_index
+	call rec_nec_init_6122
+	call rec_nec_send_boot_6122
+	fetch 1,mem_rec_nec_usercode
+	call rec_nec_send_byte_6122
+	fetch 1,mem_rec_nec_usercode+1
+	call rec_nec_send_byte_6122
+	fetch 1,mem_rec_nec_datacode
+	call rec_nec_send_byte_6122
+	fetch 1,mem_rec_nec_datacode
+	invert pdata,pdata
+	call rec_nec_send_byte_6122
+	setarg 570
+	call rec_nec_carrier
+	setarg 1
+	branch rec_nec_empty
+
+rec_nec_init_6122:
+	setarg 0
+	call pwm_init+3
+	call pwm_disable
+	call rec_pwm_duty_cycle_set
+	fetch 1,mem_rec_nec_send_gpio
+	branch pwm_enable	
+
+
+rec_pwm_duty_cycle_set:
+	arg 157,rega
+	arg 157,regb
+	arg 0,pdata	
+	call pwm_duty_cycle_set
+	jam 0,core_pwm_en
+	rtn
+
+
+rec_nec_send_boot_6122:
+	setarg 9000
+	call rec_nec_carrier
+	setarg 4500
+rec_nec_empty:	
+	jam 0,core_pwm_en
+	branch rec_nec_delay_us
+
+
+rec_nec_carrier:	
+	jam 1,core_pwm_en
+	branch rec_nec_delay_us
+
+
+rec_nec_delay_us:
+	rtn blank	
+rec_nec_delay_us_loop:
+	increase -1,pdata
+	nop 8
+	nbranch rec_nec_delay_us_loop,blank
+	rtn	
+
+
+rec_nec_send_byte_6122:
+	arg 8,loopcnt
+rec_nec_send_byte_loop_6122:
+	call rec_save_reg
+	call rec_nec_send_bit_6122
+	call rec_rescue_reg
+	rshift pdata,pdata
+	loop rec_nec_send_byte_loop_6122
+	rtn
+
+rec_nec_send_bit_6122:
+	bbit0 0,rec_nec_send_bit0_6122
+	bbit1 0,rec_nec_send_bit1_6122	
+	rtn
+
+rec_nec_send_bit0_6122:
+	arg 570,rega
+	arg 550,regb
+	branch rec_nec_send_bit
+
+rec_nec_send_bit1_6122:
+	arg 570,rega
+	arg 1680,regb
+	branch rec_nec_send_bit
+
+
+rec_nec_send_bit:
+	copy rega,pdata
+	call rec_nec_carrier
+	copy regb,pdata
+	branch rec_nec_empty
+
+
+rec_nec_send_repeat_6122:
+	setarg 9000
+	call rec_nec_carrier
+	setarg 2250
+	call rec_nec_empty
+	setarg 560
+	call rec_nec_carrier
+	setarg 1
+	branch rec_nec_empty
+
+
+rec_nec_6122_start:
+	call rec_nec_send_userdata_6122
+	call rec_nec_send_repeat_6122_timer_init
+	jam 16,mem_rec_nec_timer	//first package need about 40ms	
+	rtn
+	
+rec_nec_disable:
+	call rec_nec_send_repeat_6122_timer_clear
+rec_nec_6122_stop:
+	call pwm_disable
+rec_nec_io_disable:
+	fetch 1,mem_rec_nec_send_gpio
+rec_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int
+
+rec_gpio_config_output_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+rec_nec_send_repeat_6122_timer_init:
+	setarg 43		//107.5ms, unit 2.5ms
+rec_nec_timer_set:
+	store 1,mem_rec_nec_timeout
+	store 1,mem_rec_nec_timer
+	rtn
+
+rec_nec_send_repeat_6122_timer_clear:
+	setarg 0
+	branch rec_nec_timer_set
+	
+
+///////////////////////////////////////////////////////////////NEC SEND END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////NEC RECEIVE START///////////////////////////////////////////////////////
+
+//pdata:rx num
+rec_nec_rx_num:
+	fetch 2,core_nec_wptr
+	fetcht 2,core_nec_rptr
+	isub temp,pdata
+	nbranch rec_nec_rptr_big_wptr,positive	
+	rtn
+rec_nec_rptr_big_wptr:
+	fetcht 2,core_nec_wptr
+	fetch 2,core_nec_rptr
+	isub temp,temp
+	setarg NEC_STORE_BUF_SIZE
+	isub temp,pdata	
+	rtn
+
+rec_nec_receive_data:
+	fetch 2,core_nec_rptr
+	ifetcht 3,pdata
+	storet 1,mem_rec_nec_receive_data0
+	rshift8 temp,temp
+	storet 1,mem_rec_nec_receive_data1
+	rshift8 temp,temp
+	storet 1,mem_rec_nec_receive_data2
+	
+	fetch 1,mem_rec_nec_receive_data0
+	and_into 0x80,pdata
+	bne 0x80, rec_nec_receive_one_data
+	branch rec_nec_receive_two_data
+
+rec_nec_receive_one_data:
+	fetch 1,mem_rec_nec_receive_data0
+	store 1,mem_rec_nec_receive_data
+	fetch 2,core_nec_rptr
+	fetcht 2,core_nec_end_addr
+	isub temp,pdata
+	branch rec_nec_rptr_reset,positive
+	fetch 2,core_nec_rptr
+	increase 1,pdata
+	store 2,core_nec_rptr
+	jam 1,mem_rec_nec_data
+	rtn	
+
+rec_nec_receive_two_data:
+	fetch 1,mem_rec_nec_receive_data2
+	and_into 0x80,pdata
+	beq 0x80,rec_nec_receive_three_data
+	fetch 1,mem_rec_nec_receive_data1
+	lshift8 pdata,pdata
+	rshift pdata,pdata
+	fetcht 1,mem_rec_nec_receive_data0
+	and_into 0x7f,temp
+	ior temp,pdata
+	store 2,mem_rec_nec_receive_data
+	fetch 2,core_nec_rptr
+	fetcht 2,core_nec_end_addr
+	isub temp,pdata
+	branch rec_nec_rptr_reset,positive
+	fetch 2,core_nec_rptr
+	increase 2,pdata
+	store 2,core_nec_rptr
+	jam 2,mem_rec_nec_data
+	rtn
+
+rec_nec_receive_three_data:
+	fetch 1,mem_rec_nec_receive_data2
+	and_into 0x7f,pdata
+	lshift16 pdata,pdata
+	rshift pdata,rega
+	fetch 1,mem_rec_nec_receive_data1
+	lshift8 pdata,pdata
+	rshift pdata,pdata
+	fetcht 1,mem_rec_nec_receive_data0
+	and_into 0x7f,temp
+	ior temp,pdata
+	ior rega,pdata
+	store 3,mem_rec_nec_receive_data
+
+	fetch 2,core_nec_rptr
+	fetcht 2,core_nec_end_addr
+	isub temp,pdata
+	branch rec_nec_rptr_reset,positive
+	
+	fetch 2,core_nec_rptr
+	increase 3,pdata
+	store 2,core_nec_rptr
+	jam 3,mem_rec_nec_data
+	rtn
+
+rec_nec_rptr_reset:
+	arg mem_rec_nec_rx_start,temp
+	iadd temp,pdata
+	store 2,core_nec_rptr
+	rtn
+rec_nec_receiver_init_wtr:
+	setarg mem_rec_nec_rx_store_start
+	store 2,mem_rec_nec_store_sptr
+	store 2,mem_rec_nec_store_wptr
+	rtn
+
+rec_nec_carry_time:
+	call rec_nec_carry_store
+	fetch 1,mem_rec_nec_receive_data
+	fetcht 2,mem_rec_nec_carry_time
+	iadd temp,pdata
+	store 2,mem_rec_nec_carry_time
+	setarg 0
+	store 3,mem_rec_nec_receive_data
+	store 1,mem_rec_nec_data
+	rtn
+
+rec_nec_carry_store:
+	fetch 1,mem_rec_period_cal_count
+	sub pdata,20,null
+	rtn zero
+	increase 1,pdata
+	store 1,mem_rec_period_cal_count
+	fetch 1,mem_rec_nec_receive_data
+	fetcht 2,mem_rec_period_cal_ptr
+	istore 1,temp
+	increase 1,temp
+	storet 2,mem_rec_period_cal_ptr	
+	rtn	
+
+//pdata:run time
+rec_nec_receive_run_time:	
+	fetch 4,core_clkn
+	fetcht 4,mem_rec_nec_learn_stime
+	isub temp,pdata	
+	rtn
+
+//positive: timeout positive is 1
+rec_nec_receive_timeout:
+	fetcht 4,mem_rec_nec_learn_outtime
+	isub temp,null
+	rtn
+	
+rec_nec_update_timeout:
+	fetch 4,core_clkn	
+	store 4,mem_rec_nec_learn_stime	
+	setarg 620
+	store 4,mem_rec_nec_learn_outtime
+	rtn
+
+rec_nec_learn_analysis:
+	fetch 1,mem_rec_nec_rx_count
+	rtn blank
+	mul32 pdata,4,pdata
+	increase -10,pdata
+	copy pdata,loopcnt
+	store 1,mem_rec_nec_rx_len
+	arg mem_rec_nec_rx_store_start,contr
+	increase 6,contr
+	arg mem_rec_nec_rx_data,contw
+	branch memcpy
+	
+
+///////////////////////////////////////////////////////////////NEC RECEIVE START///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////ADPCM ENCODE START///////////////////////////////////////////////////////
+
+rec_audio_adpcm_encode:
+	jam 40,mem_rec_ad_in_numSamples1
+	fetch 2,mem_rec_adc_dma_rptr
+	store 2,mem_rec_ad_in_ptr1
+	setarg mem_rec_adpcm
+	store 2,mem_rec_ad_out_ptr1
+rec_adpcm_encode:
+	fetch 4,mem_rec_ad_state_valpred1
+	store 4,mem_rec_ad_valpred1
+	
+	fetch 4,mem_rec_ad_state_index1
+	store 4,mem_rec_ad_index1
+	
+	fetch 1,mem_rec_ad_index1		// step = stepsizeTable[index];  
+	lshift2 pdata,pdata
+	arg mem_rec_ad_stepsizeTable1,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_rec_ad_step1
+	
+	jam 1,mem_rec_ad_bufferstep1
+rec_adpcm_encode_loop:
+	call rec_adpcm_get_val_from_inp 	// val = *inp++;
+
+	fetch 4,mem_rec_ad_val1			// diff = val - valpred;
+	fetcht 4,mem_rec_ad_valpred1
+	isub temp,pdata
+	store 4,mem_rec_ad_diff1
+	
+	call rec_adpcm_encode_cal_delta	//sign = (diff < 0) ? 8 : 0;
+	call rec_adpcm_set_diff_by_sign	//if ( sign ) diff = (-diff);
+
+	jam 0,mem_rec_ad_delta1			//delta = 0;
+
+	fetch 4,mem_rec_ad_step1 			//vpdiff = (step >> 3);
+	rshift3 pdata,pdata
+	store 4,mem_rec_ad_vpdiff1
+
+	call rec_check_diff_big_step1  		//if ( diff >= step ) {  delta = 4;
+
+	fetch 4,mem_rec_ad_step1			//step >>= 1;
+	rshift pdata,pdata
+	store 4,mem_rec_ad_step1
+
+	call rec_check_diff_big_step2		//if ( diff >= step  ) {    delta |= 2;
+
+	fetch 4,mem_rec_ad_step1			//step >>= 1;
+	rshift pdata,pdata
+	store 4,mem_rec_ad_step1
+
+	call rec_check_diff_big_step3		//if ( diff >= step ) {delta |= 1;
+
+	call rec_check_sign_deal1			//	if ( sign )
+
+	call rec_adpcm_check_valpred_more_32767 //if ( valpred > 32767 )
+
+	fetch 1,mem_rec_ad_delta1			//delta |= sign;
+	fetcht 1,mem_rec_ad_sign1
+	ior temp,pdata
+	store 1,mem_rec_ad_delta1
+
+	fetch 1,mem_rec_ad_delta1			//index += indexTable[delta];
+	arg mem_rec_ad_indexTable1,temp
+	iadd temp,temp
+	ifetch 1,temp
+	call rec_char_2_int32
+	fetcht 4,mem_rec_ad_index1
+	iadd temp,pdata
+	store 4,mem_rec_ad_index1
+
+	call rec_adpcm_check_index_less_0		//if ( index < 0 ) index = 0;
+	call rec_adpcm_check_index_big_88		//if ( index > 88 ) index = 88;
+
+	fetch 4,mem_rec_ad_index1			// step = stepsizeTable[index];  
+	lshift2 pdata,pdata
+	arg mem_rec_ad_stepsizeTable1,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_rec_ad_step1
+
+	call rec_adpcm_check_bufferstep		//if(bufferstep){
+
+	fetch 1,mem_rec_ad_bufferstep1		//bufferstep = !bufferstep;
+	arg 0x01,temp
+	ixor temp,pdata
+	store 1,mem_rec_ad_bufferstep1
+
+	fetch 1,mem_rec_ad_in_numSamples1
+	increase -1,pdata
+	store 1,mem_rec_ad_in_numSamples1
+	nbranch rec_adpcm_encode_loop, blank
+
+
+	fetch 1,mem_rec_ad_bufferstep1
+	call rec_adpcm_set_bufferstep_to_outp,blank
+
+	fetch 4,mem_rec_ad_valpred1
+	store 4,mem_rec_ad_state_valpred1
+
+	fetch 4,mem_rec_ad_index1
+	store 4,mem_rec_ad_state_index1
+	rtn
+
+//pdata :diff
+rec_adpcm_encode_cal_delta:
+	fetch 4,mem_rec_ad_diff1
+	bbit1 31,rec_adpcm_encode_cal_smaller_zero
+	setarg 0
+rec_adpcm_encode_store_sign1:
+	store 1,mem_rec_ad_sign1
+	rtn
+
+rec_adpcm_encode_cal_smaller_zero:
+	setarg 8
+	branch rec_adpcm_encode_store_sign1
+
+rec_adpcm_set_diff_by_sign:
+	fetch 1,mem_rec_ad_sign1
+	nbranch rec_adpcm_diff_negation,blank
+	rtn
+
+rec_adpcm_diff_negation:
+	fetch 4,mem_rec_ad_diff1
+	sub pdata,0,pdata
+	store 4,mem_rec_ad_diff1
+	rtn
+
+rec_check_diff_big_step1:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	rtnbit1 31
+	jam 4,mem_rec_ad_delta1
+rec_check_diff_big_common:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	store 4,mem_rec_ad_diff1
+rec_check_diff_big_common_next:
+	fetch 4,mem_rec_ad_vpdiff1
+	fetcht 4,mem_rec_ad_step1
+	iadd temp,pdata
+	store 4,mem_rec_ad_vpdiff1
+	rtn
+
+rec_check_diff_big_step2:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	rtnbit1 31
+	fetch 1,mem_rec_ad_delta1
+	or pdata,2,pdata
+	store 1,mem_rec_ad_delta1
+	branch rec_check_diff_big_common
+
+rec_check_diff_big_step3:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	rtnbit1 31
+	fetch 1,mem_rec_ad_delta1
+	or pdata,1,pdata
+	store 1,mem_rec_ad_delta1
+	branch rec_check_diff_big_common_next
+
+rec_check_sign_deal1:
+	fetch 1,mem_rec_ad_sign1
+	branch rec_valpred_add_vpdiff,blank
+rec_valpred_sub_vpdiff:
+	fetch 4,mem_rec_ad_valpred1
+	fetcht 4,mem_rec_ad_vpdiff1
+	isub temp,pdata
+rec_valpred1_store:
+	store 4,mem_rec_ad_valpred1
+	rtn
+
+rec_valpred_add_vpdiff:
+	fetch 4,mem_rec_ad_valpred1
+	fetcht 4,mem_rec_ad_vpdiff1
+	iadd temp,pdata
+	branch rec_valpred1_store
+	
+rec_adpcm_check_valpred_more_32767:
+	fetch 4,mem_rec_ad_valpred1
+	arg 32767,temp
+	isub temp,pdata
+	bbit0 31,rec_adpcm_valpred_more_32767
+rec_adpcm_check_valpred_less_f32767:	
+	fetch 4,mem_rec_ad_valpred1
+	arg -32767,temp
+	isub temp,pdata
+	bbit1 31,rec_adpcm_valpred_less_f32767
+	rtn
+
+rec_adpcm_valpred_more_32767:
+	setarg 32767
+	branch rec_valpred1_store
+	
+rec_adpcm_valpred_less_f32767:
+	setarg -32767
+	branch rec_valpred1_store
+	
+rec_adpcm_check_index_less_0:
+	fetch 4,mem_rec_ad_index1
+	arg 0,temp
+	isub temp,pdata
+	bbit1 31,rec_adpcm_set_0_index
+	rtn
+
+rec_adpcm_check_index_big_88:
+	fetch 4,mem_rec_ad_index1
+	arg 88,temp
+	isub temp,pdata
+	bbit0 31,rec_adpcm_set_88_index
+	rtn
+
+rec_adpcm_set_0_index:
+	setarg 0
+rec_adpcm_store_index1:
+	store 4,mem_rec_ad_index1
+	rtn
+
+rec_adpcm_set_88_index:
+	setarg 88
+	branch rec_adpcm_store_index1
+
+rec_adpcm_check_bufferstep:
+	fetch 1,mem_rec_ad_bufferstep1
+	branch rec_adpcm_bufferstep_eque_0,blank
+rec_adpcm_bufferstep_neque_0:
+	fetch 1,mem_rec_ad_delta1
+	and pdata,0x0f,pdata
+	store 4,mem_rec_ad_outputbuffer1	
+	rtn
+
+//*outp++=((delta<<4)&0xf0)|outputbuffer
+rec_adpcm_bufferstep_eque_0:
+	fetch 1,mem_rec_ad_delta1
+	lshift4,pdata,pdata
+	and pdata,0xf0,pdata
+	fetcht 4,mem_rec_ad_outputbuffer1
+	ior temp,pdata
+rec_adpcm_bufferstep_increase_out_ptr1:
+	fetcht 2,mem_rec_ad_out_ptr1
+	istore 1,temp	
+	increase 1,temp
+	storet 2,mem_rec_ad_out_ptr1
+	rtn
+
+rec_adpcm_set_bufferstep_to_outp:
+	fetch 4,mem_rec_ad_outputbuffer1
+	branch rec_adpcm_bufferstep_increase_out_ptr1
+	
+
+//val = *inp++;
+//val: int ,4 byte
+//inp:shourt int ,2byte
+rec_adpcm_get_val_from_inp:	
+	fetcht 2,mem_rec_ad_in_ptr1
+	ifetch 2,temp
+	increase 2,temp
+	storet 2,mem_rec_ad_in_ptr1
+	call rec_int16_2_int32
+	store 4,mem_rec_ad_val1
+	rtn
+
+rec_int16_2_int32:
+	bbit1 15,rec_int16_2_int32_less_0
+	rtn
+
+rec_int16_2_int32_less_0:
+	arg 0xffff,temp
+	lshift16 temp,temp
+rec_calca_ixor:
+	ixor temp,pdata
+	rtn
+
+
+rec_char_2_int32:
+	bbit1 7,rec_char_2_int32_less_0
+	rtn
+rec_char_2_int32_less_0:
+	arg 0xffffff,temp
+	lshift8 temp,temp
+	branch rec_calca_ixor
+	
+///////////////////////////////////////////////////////////////ADPCM ENCODE END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////AUDIO START///////////////////////////////////////////////////////
+
+rec_voice_notify_apk:
+	arg 20,rega
+	fetcht 2,mem_rec_voice_notify_apk_handle
+rec_le_notify_data:
+	call le_att_malloc_tx_notify
+	arg mem_rec_voice_notify,contr
+	arg 20,loopcnt
+	branch memcpy
+	
+rec_voice_start_apk:
+	jam 0x01,mem_pdatatemp
+rec_voice_notify_apk_data:
+	jam 1,mem_rec_le_data_len
+	fetcht 2,mem_rec_control_notify_apk_handle
+	branch rec_le_send_data
+
+rec_voice_end_apk:
+	jam 0x00,mem_pdatatemp
+	branch rec_voice_notify_apk_data
+
+
+rec_voice_notify_box:
+	arg 20,rega
+	fetcht 2,mem_rec_voice_notify_box_handle
+	branch rec_le_notify_data
+
+rec_voice_start_box:
+	setarg 0x221
+rec_voice_notify_box_data:
+	store 3,mem_pdatatemp
+	jam 3,mem_rec_le_data_len
+	fetcht 2,mem_rec_control_notify_box_handle
+	branch rec_le_send_data 
+
+rec_voice_end_box:
+	setarg 0xcccc
+	branch rec_voice_notify_box_data
+
+
+///////////////////////////////////////////////////////////////AUDIO END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////FILTER POLICY START///////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////FILTER POLICY END///////////////////////////////////////////////////////
+
+
+
+///////////////////////////////////////////////////////////////OTA START///////////////////////////////////////////////////////
+
+rec_ota_process:
+	bpatch patch17_3,mem_patch17
+	copy rega,contr
+	ifetch 1,contr
+	rtnne OTA_COMMAND
+	ifetch 1,contr
+	store 1,mem_rec_ota_notify_opcode
+	beq OTA_PORTOCOL_VERSION_REQUEST,rec_ota_parse_protocol_version_req
+	beq OTA_BUCK_SIZE_REQUEST,rec_ota_parse_buck_size_req
+	beq OTA_START_REQUEST,rec_ota_parse_start_req
+	beq OTA_DATA_WRITE_CMD,rec_ota_parse_data_write_cmd
+	beq OTA_DATA_WRITE_REQUEST,rec_ota_prep_data_write_rsp
+	beq OTA_END_REQUEST,rec_ota_parse_end_req
+rec_ota_init:
+	setarg -1
+	store 2,mem_rec_ota_write_index
+	setarg 0
+	store 4,mem_rec_ota_total_sum
+	store 2,mem_rec_ota_write_length
+	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
+	rtn
+
+rec_ota_parse_protocol_version_req:
+	arg 5,rega
+	call rec_ota_tx_notify_success
+	fetch 2,mem_rec_ota_version
+	istore 2,contw
+	jam OTA_LE_CONN_PARAM_UPDATE_ENABLE,mem_rec_ota_le_conn_param_update
+	fetch 8,mem_rec_ota_le_conn_update_param
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+rec_ota_parse_buck_size_req:
+	arg 7,rega
+	call rec_ota_tx_notify_success
+	fetch 2,mem_rec_ota_buck_size
+	istore 2,contw
+	fetch 2,mem_rec_ota_packet_max_len
+	istore 2,contw
+	rtn
+
+rec_ota_parse_start_req:
+	ifetch 1,contr
+	store 1,mem_rec_ota_update_flash_mode
+	beq OTA_UPDATE_FLASH_NORMAL,rec_ota_parse_start_req_update_normal
+rec_ota_tx_flashmode_not_support:
+	arg 4,rega
+	jam OTA_RESULT_FLASHMODE_NOT_SUPPORT,mem_rec_ota_notify_result
+	call rec_ota_tx_notify_common
+	fetch 1,mem_rec_ota_update_flash_mode
+	branch  istore_1_contw_rtn
+
+
+rec_ota_tx_start_req_success:
+	arg 4,rega
+	call rec_ota_tx_notify_success
+	fetch 1,mem_rec_ota_update_flash_mode
+	branch  istore_1_contw_rtn
+
+
+rec_ota_parse_start_req_update_normal:
+	call rec_ota_tx_start_req_success
+	call rec_ota_init
+	setarg 0
+	store 3,mem_rec_ota_flash_offset_addr
+	jam 1,mem_rec_ota_enable
+	setarg 0
+	arg 0x10,temp
+	arg mem_rec_ota_flash_buf,rega
+	call spid_read_flash
+	call rec_ota_set_flash_start_addr
+	fetchr rega,3,mem_rec_ota_flash_base_addr
+	arg 9,loopcnt
+rec_erase_num_sector_flash:
+	force 0,regext_index
+rec_erase_num_sector_flash_loop:
+	call rec_spi_wait_flash
+	storer rega,3,mem_spi_write_addr
+	call rec_save_loopcnt_rega
+	call spid_flash_erase_sector
+	call rec_rescue_rega_loopcnt
+	setarg 4096
+	iadd rega,rega
+	loop rec_erase_num_sector_flash_loop
+	rtn
+
+rec_ota_set_flash_start_addr:
+	bpatchx patch3e_1,mem_patch3e
+	fetcht 3,mem_rec_code_b_flash_addr
+	storet 3,mem_rec_ota_flash_base_addr
+	storet 3,mem_rec_ota_write_flash_addr_start
+	fetch 1,mem_rec_ota_flash_buf
+	rtneq 0x60	//0x6000
+	fetcht 3,mem_rec_code_a_flash_addr
+	storet 3,mem_rec_ota_flash_base_addr
+	storet 3,mem_rec_ota_write_flash_addr_start
+	rtn
+
+rec_ota_parse_data_write_cmd:
+rec_ota_parse_data_write_req:
+rec_ota_parse_data_write_data_store:
+	fetcht 2,mem_le_l2cap_size
+	increase -8,temp
+	fetch 2,mem_rec_ota_write_length
+	iadd temp,pdata
+	store 2,mem_rec_ota_write_length
+	copy temp,loopcnt
+	copy rega,contr
+	increase 5,contr
+	call rec_queue_ota_push
+	fetch 2,mem_rec_ota_write_index
+	increase 1,pdata
+	store 2,mem_rec_ota_write_index
+	rtn
+
+rec_ota_prep_data_write_rsp:
+	call rec_ota_parse_data_write_req
+	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
+	jam OTA_DATA_WRITE_REQUEST,mem_rec_ota_notify_opcode
+	arg 3,rega
+	branch rec_ota_tx_notify_common
+
+rec_ota_tx_notify_success:
+	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
+//input rega:length
+rec_ota_tx_notify_common:
+	fetcht 2,mem_rec_ota_notify_handle
+	call le_att_malloc_tx_notify
+	setarg OTA_EVENT
+	istore 1,contw
+	fetch 1,mem_rec_ota_notify_result
+	istore 1,contw
+	fetch 1,mem_rec_ota_notify_opcode
+	branch istore_1_contw_rtn
+
+rec_ota_parse_end_req:
+	force 0,regext_index
+	call rec_save_contr
+	call rec_ota_data2flash_remain
+	jam 0,mem_rec_ota_enable
+	setarg 0
+	store 3,mem_rec_ota_flash_offset_addr
+	store 4,mem_rec_ota_total_sum
+	call rec_ota_sum_all
+	call rec_rescue_contr
+	increase 1,contr
+	ifetch 4,contr	//length
+	store 4,mem_pdatatemp
+	ifetch 4,contr	//checksum
+	store 4,mem_pdatatemp+4
+
+	fetch 4,mem_pdatatemp
+	fetcht 4,mem_rec_ota_write_length
+	isub temp,null
+	nbranch rec_ota_tx_length_error,zero
+
+	fetch 4,mem_rec_ota_total_sum
+	fetcht 4,mem_pdatatemp+4
+	isub temp,null
+	nbranch rec_ota_result_error_write_flash,zero
+	call rec_ota_updata_head	
+	jam 2,mem_rec_ota_reset_timeout
+rec_ota_tx_end_req_return:
+	arg 0x0c,rega
+	call rec_ota_tx_notify_common
+	fetch 1,mem_rec_ota_update_flash_mode
+	istore 1,contw
+	fetch 4,mem_rec_ota_write_length
+	istore 4,contw
+	fetch 4,mem_rec_ota_total_sum
+	istore 4,contw
+	rtn
+
+rec_ota_tx_length_error:
+	jam OTA_RESULT_LENGTH_ERROR,mem_rec_ota_notify_result
+	branch rec_ota_tx_end_req_return
+
+rec_ota_result_error_write_flash:
+	jam OTA_RESULT_WRITE_FLASH_ERROR,mem_rec_ota_notify_result
+	rtn
+
+rec_ota_data2flash_remain:
+	fetch 1,mem_rec_ota_enable
+	rtn blank
+	call rec_ota_queue_count_256
+	rtn positive
+	fetcht 2,mem_rec_queue_ota_count
+	call rec_save_temp
+	copy temp,loopcnt
+	arg mem_rec_ota_flash_buf,contw
+	call rec_queue_ota_pop
+	call rec_spi_wait_flash
+	call rec_rescue_temp
+	call rec_save_temp
+	call rec_ota_data2flash
+	call rec_rescue_temp
+	branch rec_ota_increase_flash_offset_addr
+
+rec_ota_queue_count_256:
+	fetch 2,mem_rec_queue_ota_count
+	arg 256,temp
+	isub temp,null
+	rtn	
+
+//temp : out page sum
+rec_ota_sum_page:
+	arg 0x100,loopcnt
+	branch rec_ota_sum
+
+rec_ota_sum_all:
+	fetch 2,mem_rec_ota_write_length
+	fetcht 2,mem_rec_ota_flash_offset_addr
+	isub temp,pdata
+	rtn zero
+	call rec_save_reg
+	call rec_ota_data_from_flash_len
+	call rec_rescue_reg
+	call rec_ota_sum_len
+	fetch 4,mem_rec_ota_total_sum
+	iadd temp,pdata
+	store 4,mem_rec_ota_total_sum
+	branch rec_ota_sum_all
+
+rec_ota_sum_len:
+	arg 0x100,temp
+	isub temp,null
+	branch rec_ota_sum_page,positive
+	copy pdata,loopcnt
+rec_ota_sum:
+	arg mem_rec_ota_flash_buf,contr
+	arg 0,temp
+rec_ota_sum_loop:
+	ifetch 1,contr
+	iadd temp,temp
+	loop rec_ota_sum_loop
+	rtn
+
+rec_ota_data_from_flash_len:
+	arg 0x100,temp
+	isub temp,null
+	branch rec_ota_data_from_flash_page,positive
+	call rec_save_reg
+	copy pdata,loopcnt
+	call rec_ota_data_from_flash
+	call rec_rescue_reg
+	copy pdata,temp
+	branch rec_ota_increase_flash_offset_addr
+
+rec_ota_data_from_flash:
+	fetch 3,mem_rec_ota_flash_base_addr
+	fetchr regb,3,mem_rec_ota_flash_offset_addr
+	iadd regb,pdata
+	arg mem_rec_ota_flash_buf,rega
+	branch spid_read_flash
+
+rec_ota_data_from_flash_page:
+	arg 0x100,temp
+	call rec_ota_data_from_flash
+	arg 0x100,temp
+	branch rec_ota_increase_flash_offset_addr
+
+
+rec_ota_polling:
+	fetch 1,mem_rec_ota_enable
+	ncall rec_ota_data2flash_page,blank
+	rtn
+
+rec_ota_data2flash_page:
+	fetch 1,mem_rec_ota_enable
+	rtn blank
+	call rec_ota_queue_count_256
+	nrtn positive
+	arg 256,loopcnt
+	arg mem_rec_ota_flash_buf,contw
+	call rec_queue_ota_pop
+	call rec_spi_wait_flash
+	arg 256,temp
+	call rec_ota_data2flash
+	arg 256,temp
+rec_ota_increase_flash_offset_addr:
+	fetch 2,mem_rec_ota_flash_offset_addr
+	iadd temp,pdata
+	store 2,mem_rec_ota_flash_offset_addr
+	rtn
+
+rec_ota_data2flash:
+	fetch 3,mem_rec_ota_flash_base_addr
+	fetchr regb,3,mem_rec_ota_flash_offset_addr
+	iadd regb,pdata
+	arg mem_rec_ota_flash_buf,rega
+	branch spid_write_flash_data
+	
+
+rec_queue_ota_init:
+	setarg mem_rec_queue_ota_buf
+	fetcht 2,mem_rec_ota_queue_size
+rec_queue_init_config:
+	increase -1,temp
+	copy pdata,contw
+	increase -8,contw
+	istore 2,contw
+	iadd temp,pdata
+	istore 2,contw
+	isub temp,pdata
+	istore 2,contw
+	istore 2,contw
+	rtn
+
+rec_queue_ota_push:
+	call rec_save_contr
+	bpatch patch17_4,mem_patch17
+	fetch 2,mem_rec_queue_ota_count
+	iadd loopcnt,pdata
+	store 2,mem_rec_queue_ota_count
+	setarg mem_rec_queue_ota_buf
+	call rec_queue_enter_config
+	call rec_rescue_contr
+	call rec_enter_queue
+	fetch 2,mem_rec_queue_ota_count
+	fetcht 2,mem_rec_ota_queue_size
+	isub temp,null
+	call rec_queue_ota_data_loss,positive
+	rtn
+rec_queue_ota_data_loss:
+	rtn
+
+rec_queue_ota_pop:
+	call rec_save_contw
+	fetch 2,mem_rec_queue_ota_count
+	isub loopcnt,pdata
+	store 2,mem_rec_queue_ota_count
+	setarg mem_rec_queue_ota_buf
+	call rec_queue_out_config
+	call rec_rescue_contw
+rec_out_queue:
+	copy contu,pdata
+	isub temp,null
+	branch assert,zero
+rec_out_queue_loop:
+	ifetch 1,contru
+	istore 1,contw
+	loop rec_out_queue_loop	
+	istorer contru,2,rega
+	rtn
+
+rec_ota_updata_head:
+	call rec_ota_read_head
+	setarg 0
+	call rec_spid_flash_erase_page
+rec_ota_write_head_check:
+	bpatch patch17_5,mem_patch17
+	fetch 1,mem_rec_ota_flash_buf
+	beq 0x60,rec_ota_write_head_B
+	beq 0xf0,rec_ota_write_head_A
+rec_ota_write_head_A:
+	fetch 3,mem_rec_code_a_flash_addr
+	branch rec_ota_write_head
+
+rec_ota_read_head:
+	setarg 0
+	arg 0x100,temp
+	arg mem_rec_ota_flash_buf,rega
+	branch spid_read_flash
+
+rec_ota_write_head_B:
+	fetch 3,mem_rec_code_b_flash_addr
+rec_ota_write_head:	
+	increase 2,pdata
+	byteswap pdata,pdata
+	store 2,mem_rec_ota_flash_buf
+	arg 0x100,temp
+	arg mem_rec_ota_flash_buf,rega
+	setarg 0	
+	branch spid_write_flash_data
+
+
+rec_spid_flash_erase_page:
+	store 3,mem_spi_write_addr
+	call rec_spi_wait_flash
+	call spid_init_flash
+	call spid_unlock_flash
+	arg mem_spid_tbuf,rega
+	jam 4,core_spid_txlen
+	fetch 3,mem_spi_write_addr
+	arg FLASH_COMMAND_PAGE_ERASE,temp
+	branch spid_write_flash_common
+
+rec_spi_wait_flash:
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	setarg mem_spid_rbuf
+	store 2,core_spid_rxaddr
+	jam 0,core_spid_txlen+1
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	bbit1 FLASH_STATUS_WIP,rec_spi_wait_flash
+	rtn
+	
+rec_save_contr:
+	copy contr,pdata
+	branch rec_save_reg
+
+rec_rescue_contr:
+	call rec_rescue_reg
+	branch get_contr_end
+	
+rec_save_contw:
+	copy contw,pdata
+	branch rec_save_reg
+
+rec_rescue_contw:
+	call rec_rescue_reg
+	branch get_contw_end
+
+rec_save_loopcnt_rega:
+	call rec_save_loopcnt
+	branch rec_save_rega
+
+rec_rescue_rega_loopcnt:
+	call rec_rescue_rega
+rec_rescue_loopcnt:
+	call rec_rescue_reg
+	copy pdata,loopcnt
+	rtn
+
+rec_save_loopcnt:
+	copy loopcnt,pdata
+	branch rec_save_reg
+
+rec_save_temp:
+	copy temp,pdata
+	branch rec_save_reg
+
+rec_rescue_temp:
+	call rec_rescue_reg
+	copy pdata,temp
+	rtn
+
+///////////////////////////////////////////////////////////////OTA END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////QUEUE START///////////////////////////////////////////////////////
+rec_queue_enter_config:
+	increase -8,pdata
+	ifetchr contus,2,pdata
+	increase 2,pdata	
+	ifetchr contue,2,pdata
+	increase 2,pdata	
+	ifetchr temp,2,pdata
+	increase 2,pdata
+	ifetchr contu,2,pdata
+	copy pdata,rega
+	rtn
+
+
+rec_queue_out_config:
+	increase -8,pdata
+	ifetchr contus,2,pdata
+	increase 2,pdata	
+	ifetchr contue,2,pdata
+	increase 2,pdata
+	ifetchr contu,2,pdata
+	copy pdata,rega
+	increase 2,pdata	
+	ifetchr temp,2,pdata
+	rtn
+
+
+rec_enter_queue:
+rec_enter_queue_loop:
+	ifetch 1,contr
+	istore 1,contwu
+	loop rec_enter_queue_loop	
+	istorer contwu,2,rega
+	copy contwu,pdata	
+	isub temp,null
+	branch assert,zero
+	rtn
+
+///////////////////////////////////////////////////////////////QUEUE END///////////////////////////////////////////////////////
+
+
+
+
+
+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 patch17_6,mem_patch17
+	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
+	call shutter_dy_check_iphone
+	call app_lpm_mult_enable
+	nbranch ble_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_android
+	store 8,mem_le_interval_min
+	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_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:
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	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_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_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
+
+	setarg 0x0002
+	store 2,mem_key0_press
+	setarg 0x0001
+	store 2,mem_key1_press
+	setarg 0x0006
+	store 2,mem_key0_release
+	store 2,mem_key1_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 patch17_7,mem_patch17
+	//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
+	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_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
+
+	setarg shutter_dy_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+
+	setarg shutter_dy_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
+	call ui_led_init_global
+
+	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 patch18_0,mem_patch18
+	branch shutter_power_switch
+
+shutter_dy_process_lpm_before:
+	call gpio_set_before_lpm
+	branch keyscan_process_lpm_before
+
+shutter_dy_le_before_hibernate:
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	call gpio_set_before_lpm
+	call dy_set_key_gpio_before_hiernate
+	branch disable_authrom
+
+dy_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
+dy_set_key_gpio_loop:
+	ifetch 1,rega
+	fetcht 1,mem_shutter_soft_switch_button_gpio_temp
+	isub temp,null
+	branch dy_set_key_gpio_loop_end,zero
+	sub pdata,0xff,null
+	branch dy_set_key_gpio_loop_end,zero
+	copy pdata,temp
+	call dy_shutter_gpio_config_input_pd
+dy_set_key_gpio_loop_end:
+	increase 1,rega
+	loop dy_set_key_gpio_loop
+	rtn
+
+dy_shutter_gpio_config_input_pd:
+	set1 gpio_active_bit,temp
+	branch gpio_config_input
+
+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 0x2b
+	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
+	rtn 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_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
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,ble_dy_shutter_process_parse_connect_parameter_update_response
+	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_dy_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 ble_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_android
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+ble_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
+
+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 patch18_1,mem_patch18
+	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 patch18_2,mem_patch18
+	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 patch18_3,mem_patch18
+	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
+	call shutter_dy_clear_volume_timer
+	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 patch18_4,mem_patch18
+	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 patch18_5,mem_patch18
+	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_check_iphone
+	nbranch shutter_dy_move_ios_to_specify_location,blank
+	arg 0x1c,pdata
+	call queue_push_one_byte
+	arg 0x1d,pdata
+	branch queue_push_one_byte
+
+shutter_dy_move_ios_to_specify_location:
+	call shutter_dy_move_down_left_corner
+	call shutter_dy_move_x_max
+	call shutter_dy_move_y_max
+	arg 0x29,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 0x2b,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 0x2c,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 0x2d,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 patch18_6,mem_patch18
+	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 0x1b
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 5,contw
+	fetch 4,mem_shutter_move_data
+	istore 4,contw
+	rtn
+
+shutter_dy_get_move_data_iphone:
+	setarg 0x29
+	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 patch18_7,mem_patch18
+	call shutter_dy_check_iphone
+	branch shutter_dy_move_android_data_store,blank	//android
+	//ios
+	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
+	call shutter_dy_get_ios_move_data
+	branch shutter_dy_move_ios_release_data
+
+shutter_dy_get_ios_move_data:
+	setarg 0x28
+	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_move_ios_release_data:
+	setarg 0x29
+	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_move_android_data_store:
+	fetch 2,mem_shutter_move_data_x
+	fetcht 2,mem_shutter_move_data_y
+	lshift16 temp,temp
+	iadd temp,pdata
+	store 4,mem_shutter_move_data
+	call shutter_dy_move_android_release_data
+	branch shutter_dy_data_android_xy_data
+
+shutter_dy_move_android_release_data:
+	setarg 0x1b
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 5,contw
+	fetch 4,mem_shutter_move_data
+	istore 4,contw
+	rtn
+
+shutter_dy_data_android_xy_data:
+	setarg 0x1c
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 5,contw
+	fetch 4,mem_shutter_move_data
+	istore 4,contw
+	rtn
+
+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_check_iphone
+	branch shutter_dy_dnroid_up_check_y,blank
+shutter_dy_move_y_check_max:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	fetcht 2,mem_shutter_move_data_y
+	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_dnroid_up_check_y:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	isub temp,null
+	nrtn positive
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	branch shutter_dy_move_data_store
+
+
+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 0xffff
+	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_check_iphone
+	branch shutter_dy_move_android_down,blank
+shutter_dy_move_down_next:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	iadd temp,pdata
+	arg 0xfff,temp
+	isub temp,rega
+	call shutter_dy_move_y_empty_check,positive
+	branch shutter_dy_move_store_y
+
+shutter_dy_move_android_down:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	iadd temp,pdata
+	arg 0xfff,temp
+	call ceiling
+	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 patch19_0,mem_patch19
+	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 patch19_1,mem_patch19
+	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 patch19_2,mem_patch19
+	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 patch19_3,mem_patch19
+	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:
+	fetch 2,mem_android_initial_move_x
+	store 2, mem_shutter_move_data_x
+	fetch 2,mem_android_initial_move_y
+	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 patch19_4,mem_patch19
+	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 patch19_5,mem_patch19
+	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:
+	copy pdata,regb
+	bpatch patch19_6,mem_patch19
+	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
+	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
+
+
+
+
+
+
+
+// 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 patch1a_2,mem_patch1a
+	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
+
+
+
+
+
+/////////////////////////////////////////////mouse & keyboard  public functions/////////////////////////
+hid_device_load_flash_info_check:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_information_flash_parameters
+	call spid_read_flash
+	branch mouse_spid_flash_powerdown
+
+hid_device_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
+	branch mouse_spid_flash_powerdown	
+
+hid_device_before_store_reconn_info:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,hid_device_store_le_device
+	rtn
+
+hid_device_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	fetch 6,mem_le_lap
+	istore 6,contw
+	rtn
+
+
+hid_device_load_device_info:
+	bpatch patch1a_3,mem_patch1a
+	call hid_device_select_reconn_device
+	fetch 4,mem_device_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+hid_device_select_reconn_device:
+	bpatch patch1a_4,mem_patch1a
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	rtnne REC_4_MODE
+hid_device_load_le_device:
+	ifetch 6,contr
+	store 6,mem_hci_plap
+	ifetch 6,contr
+	store 6,mem_le_lap
+	rtn
+
+hid_device_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	rtnne REC_4_MODE
+hid_device_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+hid_device_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
+hid_device_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch hid_device_clean_addr,zero
+	increase 7,contr
+	loop hid_device_check_device_addr_end
+	rtn
+
+hid_device_clean_addr:
+	increase -6,contr
+	copy contr,contw
+	fetcht 6,mem_device_addr_temp+1
+	increase 3,temp
+	istoret 6,contw
+	rtn	
+
+hid_device_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
+	
+hid_device_default_parm_init:
+	jam 0xff,mem_ui_button_gpio
+	jam 0,mem_ui_led_struct_num
+	
+	fetch 2,mem_device_24g_pair_timeout_init
+	store 2,mem_24g_pair_timeout_init
+
+	fetch 1,mem_device_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_device_24g_pair_tx_power
+	store 1,mem_24g_pair_tx_power
+
+	fetch 1,mem_24g_ch_map_update
+	ncall g24_chamap_param_update,blank
+	rtn
+
+hid_device_param_common_init:
+	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
+
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_temp
+	fetch 3,mem_le_lap+3
+	store 3,mem_device_le_lap_temp
+
+	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 device_store_normal_tx_power
+
+hid_device_compare_addr_store:	
+	storet 3,mem_device_compare_addr
+	storet 3,mem_device_compare_addr+3
+	rtn
+
+hid_device_enable_lpm:
+	jam 1,mem_lpm_mode
+	rtn
+
+hid_device_disable_lpm:
+	jam 0,mem_lpm_mode
+	rtn
+
+
+hid_device_le_send_empty_packet:
+	jam 0,mem_customer_data_trigger
+hid_device_le_send_package_data:
+	bpatch patch1a_5,mem_patch1a
+	fetch 1,mem_customer_data_trigger
+	call hid_device_clear_key_data,blank
+hid_device_le_fill_package_data:
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_KEY_STANDARD,hid_device_le_fill_standard_key_data
+	beq HID_REPORTID_BIT_CONSUMER_KEY,hid_device_le_fill_bit_consumer_key_data
+	beq HID_REPORTID_CONSUMER_KEY,hid_device_le_fill_multimedia_key_data
+	beq HID_REPORTID_SYSTEM_CTRL,hid_device_le_fill_systemctrl_key_data
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_le_fill_n_key_rollover_key_data	//only keyboard
+hid_device_le_fill_standard_key_data:
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_le_fill_standard_key_data	
+mouse_le_fill_standard_key_data:
+	jam 8,mem_le_data_len
+keyoard_le_fill_standard_key_data_send:	
+	fetcht 2,mem_le_keyboard_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_bit_consumer_key_data:
+	jam 4,mem_le_data_len
+	fetcht 2,mem_le_multimedia_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_multimedia_key_data:
+	jam 3,mem_le_data_len
+	fetcht 2,mem_le_multimedia_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_systemctrl_key_data:
+	jam 2,mem_le_data_len
+	fetcht 2,mem_le_systemctrl_handle
+	branch hid_device_le_fill_data
+
+hid_device_send_package_data_check:	
+	fetch 1,mem_customer_key
+	beq 1,hid_device_le_send_package_data	
+hid_device_le_send_mouse_data:
+	jam 7,mem_le_data_len
+	fetch 7,mem_mouse_key
+	store 7,mem_customer_key_press+1
+	fetcht 2,mem_le_notify_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_data:
+	bpatch patch1a_6,mem_patch1a
+	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_customer_key_press+1,contr
+	branch memcpy
+		
+hid_device_clear_key_data:
+	arg 9,loopcnt
+	arg mem_customer_key_press+1,contw
+	branch clear_mem	
+
+hid_device_copy_key_data:
+	arg 10,loopcnt
+	arg mem_customer_key_press_init,contr
+	arg mem_customer_key_press,contw
+	branch memcpy	
+
+hid_device_24g_keyboard_package_data_set:
+	fetch 1,mem_customer_data_trigger
+	call hid_device_clear_key_data,blank
+	arg mem_customer_key_press,regb
+	rtn
+
+
+
+
+hid_device_push_mouse_data_to_usb:
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	branch dongle_usb_tx_ms_data
+
+hid_device_push_keyboard_data_to_usb:
+	fetch 1,mem_customer_data_trigger
+	call hid_device_clear_key_data,blank
+hid_device_push_keyboard_package_data_to_usb:
+	bpatch patch0d_3,mem_patch0d
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_KEY_STANDARD,hid_device_push_standard_keyboard_data_to_usb
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,hid_device_push_systemctrl_key_data_to_usb
+	beq KB_MULTIKEY_REPORT_ID,hid_device_push_multimedia_key_data_to_usb
+	beq HID_REPORTID_BIT_CONSUMER_KEY,hid_device_push_bit_consumer_key_data_to_usb
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_push_n_key_rollover_key_data_to_usb
+hid_device_push_standard_keyboard_data_to_usb:
+	call dongle_usb_tx_kb_data
+	arg mem_customer_key_press+1,contr
+	arg mem_usb_kb_data,contw
+	arg 9,loopcnt
+	branch memcpy
+
+hid_device_push_systemctrl_key_data_to_usb:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	setarg KB_SYSTEM_CONCTRL_REPORT_ID
+	store 1,mem_usb_kb_system
+	fetch 1,mem_customer_key_press+1
+	istore 1,contw
+	branch dongle_usb_tx_enable_ep2
+
+hid_device_push_multimedia_key_data_to_usb:
+	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
+	setarg KB_MULTIKEY_REPORT_ID
+	store 1,mem_usb_kb_multikey
+	fetch 3,mem_customer_key_press+1
+	istore 3,contw
+	branch dongle_usb_tx_enable_ep2
+
+hid_device_push_bit_consumer_key_data_to_usb:
+	jam USB_EP2_BIT_CONSUMER,mem_usb_ep2_data
+	setarg KB_BIT_CONSUMER_REPORT_ID
+	branch hid_device_push_multimedia_key_data_to_usb+2
+
+
+
+hid_device_le_parse_att_write_request:	
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,le_send_att_write_response_check_auth	
+	fetch 1,mem_device_fast_conn_flag
+	branch le_send_att_write_response_check_auth,blank
+	fetch 1,mem_le_connect_status_flag
+	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
+	setarg 0x001a		
+	fetcht 2,mem_le_att_handle
+	isub temp,null
+	nbranch le_send_att_write_response_check_auth,zero
+	branch le_send_att_read_response_error_insufficient_auth
+
+	
+
+hid_device_24g_search_dongle_init:
+	setarg 0
+	store 3,mem_device_search_dongle_action
+	rtn
+
+mouse_24g_search_dongle:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+hid_device_24g_search_dongle:	
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_device_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_device_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_device_search_dongle_ch
+hid_device_24g_search_dongle_loop:
+	bpatch patch1a_7,mem_patch1a
+	fetch 1,mem_device_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_device_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch hid_device_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch hid_device_24g_search_dongle_loop_retry,sync
+	nbranch hid_device_24g_search_dongle_loop_retry,user3
+	call hid_device_g24_ackpayload_parse
+	call hid_device_24g_search_dongle_success
+hid_device_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_device_search_dongle_count
+	increase 1,pdata
+	store 1,mem_device_search_dongle_count
+	beq G24_CH_POLL_COUNT,hid_device_24g_search_dongle_check
+	rtn
+
+hid_device_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch hid_device_24g_search_dongle_loop
+
+hid_device_24g_search_dongle_check:
+	bpatch patch1b_0,mem_patch1b
+	jam 0,mem_device_search_dongle_count
+	fetch 1,mem_device_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_device_search_dongle_action
+	fetch 2,mem_device_24g_search_dongle_time_init		//3min
+	store 2,mem_device_no_data_timer
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_sensor_powerdown
+	rtn 
+	
+hid_device_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch hid_device_24g_search_dongle_init,blank
+	jam 0,mem_device_search_dongle_count
+	fetch 1,mem_device_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_device_search_dongle_action
+	call mouse_no_data_timer_init
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_init_sensor_wakeup
+	rtn
+
+hid_device_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
+	store 1,mem_keyboard_led_status
+	rtn
+
+hid_device_before_lpm_set:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	fetch 1,mem_24g_disable_fec1
+	rtn blank
+hid_device_peripheral_clock_off:
+	jam 2,core_clksel			//use rc clock
+	jam 0xf8,core_lpm_ctrl
+	rtn
+
+hid_device_cb_fuction:
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	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 patch1b_2,mem_patch1b
+	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 patch1b_3,mem_patch1b
+	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 patch1b_4,mem_patch1b
+	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 patch1b_5,mem_patch1b
+	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 patch1b_6,mem_patch1b
+	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 patch1b_7,mem_patch1b
+	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 patch1c_0,mem_patch1c
+	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 patch1c_1,mem_patch1c
+	fetch 3,mem_tx_fifo1
+	rtn
+
+
+
+//bool fifo_is_empty(void)
+//blank == 1: empty
+//blank == 0: not empty
+
+l2cap_malloc_is_fifo_empty:
+	bpatch patch1c_2,mem_patch1c
+	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 patch1c_3,mem_patch1c
+	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 patch1c_5,mem_patch1c
+	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
+	branch lpm_write_io_vsel
+
+
+load_otp_set_init:
+	bpatch patch1c_6,mem_patch1c
+	nrtn wake
+	fetch 2,mem_otp_charge_pump_x
+	rtn blank
+	store 2,mem_otp_charge_pump
+	branch set_otp_config2
+
+set_otp_config:
+	call load_otp_hv_vsel
+	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	
+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	
+	
+
+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
+	fetchr rege,6,mem_bistfix_val
+	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
+	storer rege,6,mem_bistfix_val
+	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 set_otp_config	
+	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	
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
+	call iicd_load_gpio_init
+	call clear_eeprom_size_2k
+	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 8,mem_eeprom_scl_gpio  
+	jam 7,mem_eeprom_sda_gpio 
+	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_wake:
+	call set_bistfix
+	call set_bistfix_wake_xram
+
+set_bistfix_wake_patchram:
+	fetch 1,core_bist_ctrl
+	rtnbit0 BIST_CTRL_FIX_PATCH_RAM
+//	jam 0x80, core_ucode_ctrl
+	call set_bistfix_set_patchram_addr
+	arg 4,loopcnt
+	arg mem_bistfix_val_patchram,contr
+	branch load_ucode_loop
+
+
+set_bistfix_wake_xram:
+	fetch 1,core_bist_ctrl
+	rtnbit0 BIST_CTRL_FIX_XRAM
+	fetcht 2,mem_bistfix_addr_x
+	rshift3 temp,temp
+	arg 0x4000,pdata //add offset
+	iadd temp,contw
+	fetch 1,mem_bistfix_val_xram	
+	branch istore_1_contw_rtn
+
+
+set_bistfix_save_xram:
+	bpatchx patch3e_2,mem_patch3e
+	fetch 1,core_bist_ctrl
+	rtnbit0 BIST_CTRL_FIX_XRAM
+	fetchr rega, 2,mem_bistfix_addr_x
+	rshift3 rega,rega
+	arg 0x4000,pdata //add offset
+	iadd rega,contr
+	ifetch 1,contr
+	store 1,mem_bistfix_val_xram
+	rtn
+	
+set_bistfix_save_patchram:
+	rtn wake
+	fetch 1,core_bist_ctrl
+	rtnbit0  BIST_CTRL_FIX_PATCH_RAM 
+	call set_bistfix_set_patchram_addr
+	nop 10
+	arg 4,loopcnt
+	arg mem_bistfix_val_patchram,contw
+	branch save_ucode_loop
+	
+set_bistfix_set_patchram_addr:
+	jam 0,core_ucode_hi	
+	fetch 2,mem_bistfix_addr_patch
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	rshift4 pdata,temp
+	rshift2 temp,temp
+	set1 7,temp
+	storet 1,core_ucode_ctrl
+	lshift2 pdata,pdata
+	store 1,core_ucode_low
+	rtn
+	
+	
+set_bistfix:
+	fetch 1,mem_ucode_flag
+	and_into 0xe0,pdata
+	rtn blank
+	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 patch1d_1,mem_patch1d
+	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 patch1d_2,mem_patch1d
+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_KEYBOARD,app_lpm_kb_lock
+	beq DVC_OP_2G4,app_lpm_mpu_lock_ble 
+	beq DVC_OP_BLE,app_lpm_mpu_lock_24g
+	beq DVC_OP_MOUSE_2G4,app_lpm_mouse_lock_24g
+	branch app_lpm_mpu_lock_24g_ble
+
+
+app_lpm_kb_lock:
+	arg module_init,pdata  //module
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	branch app_mpu_s0_lock
+	
+app_lpm_module_lock:
+app_lpm_hciboot_lock:
+	arg car_init,pdata  //module
+	arg keyboard_bt_discovery_button_down_disable,temp //kb
+	call app_mpu_s0_lock
+	branch app_lpm_mpu_lock_24g	
+	
+app_lpm_dongle_lock:
+	arg keyboard_softreset_process,pdata //kb
+	arg shutter_dy_shutter_1s_timer,temp  //shutter dy
+	call app_mpu_s0_lock
+	arg car_init,pdata  //car
+	arg remote_car_wakeup_config_loop,temp //remote car 
+	branch app_mpu_s1_lock
+	
+	
+app_lpm_mouse_lock:
+	arg car_init,pdata //
+	arg module_set_state,temp  //module
+	call app_mpu_s0_lock
+	arg rec_cb_function,pdata  //rec
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	branch app_mpu_s1_lock
+
+app_lpm_mouse_lock_24g:
+	arg car_init,pdata //
+	arg module_set_state,temp  //module
+	call app_mpu_s0_lock
+	branch app_lpm_mpu_lock_ble
+	
+app_lpm_shutter_lock:
+	arg car_init,pdata  //
+	arg rec_enter_queue,temp // rec
+	call app_mpu_s0_lock
+	branch app_lpm_mpu_lock_24g
+	
+app_lpm_car_lock:
+	arg dongle_init,pdata  //dongle
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	branch app_mpu_s0_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_send_adv_ind,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 patch1d_3,mem_patch1d
+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 patch1d_4,mem_patch1d
+	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 patch1d_5,mem_patch1d
+	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 patch1d_6,mem_patch1d
+	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 patch1d_7,mem_patch1d
+	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
+	bpatch patch1e_0,mem_patch1e
+	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 patch1e_1,mem_patch1e
+	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 patch1e_2,mem_patch1e
+	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
+	branch iicd_set_addr
+
+iicd_read_eep_load_code_size_2k:
+	fetch 1,mem_addr_mi
+iicd_set_addr:
+	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 patch1e_3,mem_patch1e
+	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 patch1e_4,mem_patch1e
+	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 patch1e_5,mem_patch1e
+	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 patch1e_6,mem_patch1e
+	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 patch1e_7,mem_patch1e
+	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 patch1f_0,mem_patch1f
+	call disable_user
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	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 patch1f_1,mem_patch1f
+//	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
+	beq DVC_OP_KEYBOARD,keyboard_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 patch1f_2,mem_patch1f
+	sub temp,GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	call gpio_get_bit
+	nbranch gpio_set_qdec_mode,true
+	nsetflag true,GPIO_ACTIVE_BIT,temp
+	
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_wake:
+	bpatch patch1f_3,mem_patch1f
+	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
+
+gpio_set_qdec_mode:
+	jam 1,mem_qdec_set_flag
+	call gpio_set_high_impedance
+	arg 6,debug
+	branch gpio_set_wake_high
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_low_pullup:
+	bpatch patch1f_4,mem_patch1f
+	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 patch1f_5,mem_patch1f
+	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 patch1f_6,mem_patch1f
+	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:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	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:
+	rtneq GPIO_DISABLE 
+	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
+
+
+
+lpm_puchk_set_check:
+	fetch 1,mem_qdec_set_flag
+	branch lpm_config_puchk_disable,blank
+	branch lpm_config_puchk_enable
+
+lpm_config_puchk_disable:
+	setarg 0x10			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+lpm_config_puchk_set:
+	store 1,core_puwakeup
+	branch lpm_write_wait
+
+lpm_config_puchk_enable:
+	setarg 0x80			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+	branch lpm_config_puchk_set
+
+
+
+sadc_calibration:
+	bpatch patch1f_7,mem_patch1f
+	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
+	jam 0x03,core_sadc_ctrl
+	call sar_adc_read_wait
+	fetcht 2,core_sadc_data
+//	storet 2,mem_adc_current_value
+	jam 0x00,core_sadc_ctrl
+	jam 0xc1,core_gpadc_cfg0	
+sadc_cal_read:
+	arg 8,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 8,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:
+	bpatchx patch20_0,mem_patch20
+	fetch 8,mem_otp_adc
+	rtn 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	
+	rtn
+	
+
+vdd_calculate_by_mode:
+	bpatchx patch20_1,mem_patch20
+	fetch 1,mem_adc_reference_mode
+	beq SADC_REFERENCE_INTER3V,vdd_reference_inter3V_calculate
+	beq SADC_REFERENCE_INTER1P8V_DIV2,vdd_reference_inter1p8V_calculate
+	branch vdd_reference_inter3V_calculate
+
+vdd_reference_inter3V_calculate:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,vdd_reference_inter3V_calculate_by_mode_vdcdc
+	beq ADC_CONFIG_GPIO,vdd_reference_inter3V_calculate_by_mode_gpio
+	rtn
+	
+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 mul1V_div1V_to_cal
+	
+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
+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
+
+enable_adc_init_config:
+	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 0x61,core_vtest_ctrl0
+	jam 0x00,core_gpadc_cfg3
+	rtn	
+
+	
+enable_adc:
+	bpatchx patch20_2,mem_patch20
+	fetch 1,mem_adc_reference_mode
+	beq SADC_REFERENCE_INTER3V,enable_adc_reference_source_inter3V
+	beq SADC_REFERENCE_INTER1P8V_DIV2,enable_adc_reference_source_inter1p8V
+	branch enable_adc_reference_source_inter3V
+	
+enable_adc_reference_source_inter3V:
+	call 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
+	
+read_adc_inter1V:
+	call 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 sar_adc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_reference3v_inter1v_now_data 
+//	call sadc_read_wait+4
+	jam 0x06,core_sadc_ctrl
+	call sadc_read_wait2
+	
+	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
+	
+
+vdd_reference_inter1p8V_calculate:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,vdd_reference_inter1p8V_calculate_by_mode_vdcdc
+	beq ADC_CONFIG_GPIO,vdd_reference_inter1p8V_div2_calculate_by_mode_gpio
+	rtn
+	
+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
+
+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 vdd_calculate00
+	
+vdd_calculate00:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate11,positive
+	call vdd_calculate_common
+	isub regb,pdata
+	nbranch set_pdata_0,positive
+	branch vdd_calculate2
+	
+vdd_calculate11:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	call vdd_calculate_common
+	iadd regb,pdata
+	branch vdd_calculate2
+
+
+enable_adc_reference_source_inter1p8V:	
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,enable_adc_reference_source_inter1p8V_vdcdc
+enable_adc_reference_source_inter1p8V_div2_gpio:	
+	call 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
+	branch enable_adc_reference_source_inter1p8V_common
+	
+enable_adc_reference_source_inter1p8V_vdcdc:
+	call 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
+enable_adc_reference_source_inter1p8V_common:
+	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
+
+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
+
+sar_adc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,sar_adc_read_wait
+	rtn
+
+	
+sadc_read:
+	bpatchx patch20_3,mem_patch20
+	jam 0x03,core_sadc_ctrl
+	call sar_adc_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:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate1,positive
+	call vdd_calculate_common
+	iadd regb,pdata
+vdd_calculate2:
+	idiv rega
+	branch get_div_result
+
+vdd_calculate1:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	call vdd_calculate_common
+	isub regb,pdata
+	nbranch set_pdata_0,positive
+	branch vdd_calculate2
+
+
+vdd_calculate_common:
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	rtn
+	
+
+
+//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
+	branch adc_set_power_flag
+
+adc_clear_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set0 0,pdata
+	branch adc_set_power_flag
+	
+adc_set_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 1,temp
+	branch adc_set_power_flag
+
+adc_clear_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 1,temp
+adc_set_power_flag:
+	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
+	bpatchx patch20_4,mem_patch20
+	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
+	bpatchx patch20_5,mem_patch20
+	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:
+	bpatchx patch20_6,mem_patch20
+	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_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
+	bpatchx patch20_7,mem_patch20
+	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:
+	bpatchx patch21_0,mem_patch21
+	disable user2
+wdt_init_set:
+	fetch 1,core_config
+   	setflag user2,3,pdata
+	store 1,core_config
+	rtn
+
+
+
+
+nec_init_config:
+	store 4,core_nec_start_addr
+	store 2,core_nec_rptr
+	storet 1,core_nec_ctrl
+	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
+
+
+
+
+
+
+	
+function_g2:
+	bpatchx patch21_1,mem_patch21
+	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:
+	bpatchx patch21_2,mem_patch21
+	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:
+	bpatchx patch21_3,mem_patch21
+	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:
+	bpatchx patch21_4,mem_patch21
+	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:
+	bpatchx patch21_5,mem_patch21
+	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:
+	bpatchx patch21_6,mem_patch21
+	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:
+	bpatchx patch21_7,mem_patch21
+	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
+	bpatchx patch22_0,mem_patch22
+	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:
+	bpatchx patch22_1,mem_patch22
+	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:
+	bpatchx patch22_2,mem_patch22
+	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:
+	bpatchx patch22_3,mem_patch22
+//	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:
+	bpatchx patch22_4,mem_patch22
+	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:	
+	bpatchx patch22_5,mem_patch22
+	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:    
+	bpatchx patch22_6,mem_patch22
+	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:
+	bpatchx patch22_7,mem_patch22
+	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:
+	bpatchx patch23_0,mem_patch23
+	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:
+	bpatchx patch23_1,mem_patch23
+	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:
+	bpatchx patch23_2,mem_patch23
+	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:
+	bpatchx patch23_3,mem_patch23
+	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:
+	bpatchx patch23_4,mem_patch23
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_ui_ipc_send_event
+	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:
+	bpatchx patch23_5,mem_patch23
+	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:
+	bpatchx patch23_6,mem_patch23
+	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
+	bpatchx patch23_7,mem_patch23
+	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
+	bpatchx patch24_0,mem_patch24
+	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:
+	bpatchx patch24_1,mem_patch24
+	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:
+	bpatchx patch24_2,mem_patch24
+	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:
+	bpatchx patch24_3,mem_patch24
+	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:
+	bpatchx patch24_4,mem_patch24
+	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:
+	fetch 1,core_usb_txbusy
+	rtnbit1 USB_STATUS_RXFULL
+	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:
+	bpatchx patch24_5,mem_patch24
+	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 patch24_6,mem_patch24
+	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 patch24_7,mem_patch24
+	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 patch25_0,mem_patch25
+//	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:
+	bpatchx patch25_1,mem_patch25
+	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:
+	bpatchx patch25_2,mem_patch25
+	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:
+	bpatchx patch25_3,mem_patch25
+	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 patch25_4,mem_patch25
+	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:
+	bpatchx patch25_5,mem_patch25
+	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
+	jam 0x02,core_usb_clear_nak
+//	call usb0_reply_zerolen
+	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 patch25_6,mem_patch25
+	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 patch25_7,mem_patch25
+	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 patch26_0,mem_patch26
+	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
+	bpatchx patch26_1,mem_patch26
+	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
+	bpatchx patch26_2,mem_patch26
+	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
+	beq USB_EP2_BIT_CONSUMER,usb_tx_kb_bit_consumer_data
+	beq USB_EP2_N_KEY_ROLLOVER,usb_tx_kb_n_key_rollover_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:
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_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_tx_kb_bit_consumer_data:
+	jam 0,mem_usb_ep2_data
+	arg 4,loopcnt
+	arg mem_usb_kb_multikey,contr
+	branch usb_tx_ep2
+
+usb_tx_kb_n_key_rollover_data:
+	jam 0,mem_usb_ep2_data
+	arg 15,loopcnt
+	arg mem_usb_kb_n_key_rollvoer_data,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 patch26_3,mem_patch26
+	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
+get_contw_end:
+	copy pdata,contw
+	rtn
+get_contr:
+	fetch 2,mem_contr
+get_contr_end:
+	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 patch26_4,mem_patch26
+	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 patch26_5,mem_patch26
+	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 patch26_6,mem_patch26
+	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 patch26_7,mem_patch26
+	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 patch27_0,mem_patch27
+	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 patch27_1,mem_patch27
+	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
+
+istore_1_contw_rtn:
+	istore 1,contw
+	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:
+	bpatchx patch27_2,mem_patch27
+	setarg 0
+	set1 21,pdata				//gpio5(ice) enable wakeup
+	store 8,mem_gpio_wakeup_cfg
+	setarg 0
+	istore 4,contw
+	rtn	
+
+
+generate_random:
+	arg 16,loopcnt
+generate_random_loop:
+	random pdata
+	istore 1,contw
+	loop generate_random_loop
+	rtn
+
Index: GK308_keyboard_only_24g/output/bt_program23.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/bt_program23.rom	(working copy)
@@ -0,0 +1,32242 @@
+11000010100001000000000000010110
+11000000000011010000000001010010
+11000000000101000000000010010011
+11000000000111110000000101010011
+11000000001000000000000011011000
+11000000001000011000000100001100
+11000000001000100000001001101001
+11000000001001001000001001111011
+11000000001001100000000011110010
+11000000001010100000001011100111
+11000000001010110000000101010010
+11000000001011001000000110111101
+11000000001011100000000111000000
+11000000001101010000000110101000
+11000000001111100000001001010110
+11000000010000010000001001010111
+11000000010100011100011111111011
+11000000011101001000000001011101
+11000000011101010000000001011010
+11000000011001111000000010100001
+11000000011111010000000010001111
+00100000001000000010001100111110
+11000000010101101000000000111010
+11000000010111101000000000111101
+11000000011000010000001011100110
+11000000011110011000000000011100
+11000001011111111000000000000000
+00100000001000000010001100111110
+00110111110110011000001000000000
+01110000100010101000011001100000
+01110000100010101000101100111011
+00100000010000000010001010011101
+01110000100000000100001100000000
+01110000100000000100001000000101
+01011000010101010111010001110100
+01100111111100011000100101101000
+01110000100010010110000001101110
+00100000010000000010000100110101
+00100000010000000010001010000111
+00100000010000000010001010000001
+01110000010000010100100000001100
+00100000010000000110111101010011
+00100000010000000010001011001011
+00100000001000000110101011001001
+00100100001101011000000000101111
+00110111110110011000001000000000
+00110111110110011000001000000000
+00100000010000000011111010011010
+00100100001101000010000000000010
+01101111111000001100100010001101
+00100000001110100010000000000010
+01101111111000001100100100001111
+11000001011111111000000000000000
+00011111111000100000111000000000
+01101111111000100000011001111011
+10101111111011000000000000000000
+00100000010000001100011010011011
+00100000001000000010000000000010
+01101111111000100100010101110110
+00100000011110100000000000000000
+00100000001000000011001010101101
+01101111111000010100010111110111
+00011111111000010111111011100000
+00100000001110100000000001000100
+01101111111000010100010111110111
+00011111111000001111111000000001
+01100111111000010100010111110111
+00100000011000000000000000000000
+00100000010000000011010101010111
+00100000010000000011011000101010
+00100100001011000011010101011110
+00100100001101111011010101011110
+00100000010000000000000001001010
+00100000001000000011010101000000
+00100000010000000011011001000111
+01101111111000001100010100001111
+00101111111000011111000000001000
+00100100011000001000000000000000
+01101111111000001100010100010000
+11000000011111111100011111111011
+01100111111000001100011100001101
+00100000011000000000000000000000
+00110111110110011000001000000000
+01110000100010010100011000001101
+01110000100010010110111100010000
+01110000100010100001001111001101
+01101111111100001000101000000110
+00011111111000010111111011111100
+01100111111100001000101000000110
+00100000001000000010001001010101
+00100000010000000110101100101000
+00100000010000000110101101100011
+00100000001000000110101100100110
+00100000010000000110101100100010
+00100000010000000110101100101111
+00100000010000000110101100101001
+11101000010000001000000000010001
+00011010001000001010001000000001
+00011000000000000000111000000000
+01111001001111111000000000100010
+10101000010011000000000000000000
+00100000001000001000000010000111
+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
+00100000001000001000000001100011
+11000101000100010000000010000111
+01111001001000000000000000100010
+00100000001000000000000001100100
+01101111111100010000000001000100
+00011111111000001111111000000001
+01100111111100010000000001000100
+00011000111000001000111000000001
+00101000111000000001111000001000
+00100100001000001000000001100011
+11000010000000000000000001100000
+00100000001000000110101100100110
+01111001001000000000010000000111
+00100000010000000110111011100000
+01111101001000001000010000000111
+00100000001000000110111010101100
+00100000010000000010001111110000
+01101111111000011100000010111101
+00100000011110100000000000000000
+01101111111000001100101001111010
+00100100011110100000000000000000
+01101111111000001100101001111011
+00100100011110100000000000000000
+01101111111000001100011100100000
+00100100011110100000000000000000
+01101111111000010100011101010000
+00100100011110100000000000000000
+01101111111000001100101010011111
+00100100011110100000000000000000
+00100000001000000010010001100111
+00100000010000000011011100010111
+00100000010000000111001110000100
+00100000010000000000000010100110
+00100000010000000000000010111111
+00100000001000000011111010110000
+00100000011101011000000000000000
+00100000010000000011010111001000
+00100000010000000011001000111010
+00100000010000000000000010101100
+01110000010000001010011000001010
+00100000001000000011111011000001
+00100000010000000011111011110100
+00100000010000000000000010101111
+00100000001000000011111011011101
+01011000000000001001000000000000
+01100111111000010100001011111001
+01101111111001000100100010001110
+11000010100100011110100000001100
+01011000000000001001010110111000
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100000110100000001100
+11000010100100001110100000001100
+01011000000000001001010011111100
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100010110100000001100
+01011000000000000100101011101000
+01100111111000010100100011010110
+00100000001000000110100000001100
+01101111111000001100100100010111
+01101000010010001100100100010100
+10011000010001100111110000000000
+00100000010000101000000011001100
+01101111111000001100100100010111
+01101000010010001100100100010011
+10011000010001100111110000000000
+00100000010000101000000011010000
+01101111111000001100100100010111
+01101000010010001100100100010101
+10011000010001100111110000000000
+00100000001000101000000011010100
+00100000011000000000000000000000
+01101111111000001100101110100000
+01111001001000000111111000000001
+01100111111000001100101110100000
+00100000011000000000000000000000
+01101111111000001100101110100000
+01111001001000000111111000000000
+01100111111000001100101110100000
+00100000011000000000000000000000
+01101111111000001100101110100000
+01111001001000000111111000000010
+01100111111000001100101110100000
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000010100001111000000011011011
+00100000001000000011111111011000
+01101111111000010100101010111101
+01101000010010010100101010111111
+10011000010001100111110000000000
+00100000011000010000000000000000
+01101111111000001100011001111000
+11000000000000000000000011100011
+11000000000000001011111111101011
+00100000011000000000000000000000
+01101000010010010100101010111101
+01011000000000000001111110110000
+10011000010001100010010000000000
+11011010001000000100011010100011
+11011111001000000000000000000100
+00100000010000000110101100110011
+01101000010010010100101010111101
+00011000010000001000010000000100
+01100000010010010100101010111101
+00100000011000000000000000000000
+00100000010000000100000100111100
+00100000010000000100000101100110
+00100000010000000100000110011101
+00100000010000000100000110100011
+00100000001000000100000110101001
+00100000010000000000000011110101
+00100000010000000000001001110101
+00100000001000000100001100110011
+00100000010000000011111011111001
+01011000000000000000000000000000
+01100111111000010100100110011110
+11011000110000000100100101001110
+11011000101000000100100101100011
+11011111001000000000000000010100
+00100000010000000111110011011100
+00100000010000000100001110101111
+01011000000000000100100101001110
+01100111111000010100100110011000
+01011000000000000100101011011100
+01100111111000010100100110011010
+00100000010000000100001110101101
+00100000010000000100001110101011
+01101111111000010100100110011110
+00011111111000001111111000000001
+01100111111000010100100110011110
+11000010100001001000000011110101
+01101000010010001100100100010001
+00100000010000000110111011100000
+00100100001000001000000100000011
+00100000010000000100001110101111
+00100000001000000100001101001010
+00100000010000000100000011100000
+00100000010000000100000011001100
+00100000010000000100000011011101
+00100000010000000000000100100100
+00100000010000000100001010001111
+00100000010000000100001011000100
+00100000010000000011001001101100
+00100000010000000011010100000111
+00100000010000000101100011110110
+00100000010000000100001010110101
+00100000010000000100001010111111
+00100000010000000100001010011001
+00100000010000000100001010100100
+00100000010000000101010100001101
+00100000010000000100001010101101
+00100000010000000101010100010000
+00100000010000000100001010110010
+00100000010000000100001010100001
+00100000010000000101010100100111
+00100000010000000100001010011110
+00100000010000000100001011001001
+00100000010000000100001011001100
+00100000010000000000001010100011
+00100000001000000100001011010101
+01101111111000001100100010100110
+11000010100000000000000100101010
+00100000010000000000000101000010
+01101111111000001100100010100110
+11000010100000001000000100110110
+00100000001000000000000101001000
+01101111111000001100100010101001
+00011111111001100111110001100100
+00100100011000010000000000000000
+00011111111000001111111000000001
+01100111111000001100100010101001
+11000001100011001000000000000000
+01110000010010001010011100000000
+01101111111000001100011001111000
+11000001000000100000000000000000
+00100000010000000000000101001110
+00100000010000000100100011100110
+00100000001000000100011010000000
+01101111111000001100100010101010
+00011111111001100111110001100100
+00100100011000010000000000000000
+00011111111000001111111000000001
+01100111111000001100100010101010
+11000001100011001000000000000000
+01110000010010001010100000000000
+01101111111000001100011001111000
+11000001000000100000000000000000
+00100000010000000000000101001110
+00100000010000000110100000100100
+00100000001000000100011001110101
+01110000010010001010100100000000
+01101111111000001100100010100111
+00100000011110100000000000000000
+01110000010010001010011100000000
+00100000010000000000000101001110
+00100000001000000110110010011001
+01110000010010001010101000000000
+01101111111000001100100010101000
+00100000011110100000000000000000
+01110000010010001010100000000000
+00100000010000000100000001000101
+00100000001000000110110010011001
+01101111111001000100100010001110
+11000010100001111101010110010100
+11000010100001110100000001000101
+00100000011000000000000000000000
+00100000001000000100011001110111
+01101111111001000100100010001110
+11000010100001111000000101100011
+00100000001000000011111011001000
+01101111111001000100100010001110
+11000011000111101000000101011101
+01101000010010001100010001000000
+00100000010000000100111100001010
+01101000010010001100010001000000
+00100000010000000110111011100000
+00100000001000001000000101010110
+00100000010000000100000001001001
+11011000010000000000000010000000
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000010000000110110011010111
+00100000001000000011111110100010
+01101111111000001100011001111000
+11000000000000000000000101100110
+00100000001000000011111100110011
+11011011000000000000000000001000
+01101111111000010100101010111111
+10011011000001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+01100111111000010000011001001110
+11011111111000000001111110101100
+11011000010000000000000000000100
+11011101011000000000000000000100
+00100000001000000000000101110000
+01100111111000010000011001010000
+01100000010010001000011001010110
+11011010001000000100101010100101
+11011010011000000000000000000000
+01101111111000010000011001010000
+00011111111000100010010000000000
+01101111001000001000011001010110
+11011010001000000100101010100101
+00100000010000000110101101100010
+01101111111001000100101010100101
+01101000010011000100101010101101
+10011000010000011111111000000000
+01101000010011000100101010110101
+10011000010000011111111000000000
+00100000001110100000000110000110
+00011010011000001010011000000001
+01101111111000010000011001001110
+10011010011001100111110000000000
+01101111111000010000011001010000
+10011011000001100111111000000000
+01100111111000010000011001010000
+00100000001000000000000101110100
+00011010011001100111110000000000
+00100000001000101000000110011001
+01101111111000010000011001010000
+10011011000000001111111000000000
+10011101011001100111111000000000
+01100111111000010000011001010000
+01101111111000010000011001010000
+00011111111000100010010000000000
+01101111001000001000011001010110
+11011010001000000100101010100101
+00100000010000000110101101100010
+01101111111001000100101010100101
+01101000010011000100101010101101
+10011000010000011111111000000000
+01101000010011000100101010110101
+10011000010000011111111000000000
+00100000001110100000000110011011
+01101111111000010000011001010000
+00100000001000000000000110001010
+01100101011000001100101010111101
+00100000011000000000000000000000
+01011000000000000001111110110000
+01101000010010010000011001010000
+10011000010001100111111000000000
+01100111111000010100101010111101
+00011000010000100111111000000000
+10011101011000001010010000000000
+01101111001000001000011001010110
+11011010001000000100101010100101
+00100000010000000110101101100010
+01101111111000001100011001111000
+11000000000000000011111110000001
+11000000000000001011111110000111
+00100000011000000000000000000000
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110011011
+11000000000000001100100100011001
+11000000000000111100100101011100
+11000000000001001100100100111000
+11000000000001011100100101010010
+11000000000001000100100101110001
+11000000000001100000000110110101
+11000000000001010100100110011111
+11000000000010010100100111000101
+11000000001010010100100111001011
+00100000001000000010101101110110
+11101111111000010000000000000110
+01100111111000010000011010010011
+10011000000000000010001000000000
+01101000010010010100001110011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110100101110
+00100000001000000100100110011001
+01101111111000001100101010100000
+11000000000000010000000111011110
+00100000001000000100011011001101
+00011000010000100111111000000000
+01110000010010100110111100000101
+01101000010010001100100110100110
+00011000010001100111110000000000
+00100000001000101100011101001011
+11000000011101000000000111101010
+11000000011101001000000111110000
+11000000011101010000000111110100
+11000000011101011000000111111000
+11000000011101100000000111111100
+11000000011101101000001000000000
+11000000011101110000001000000100
+11000000011101111000001000001000
+11000000011110000000001000001100
+11000000011110001000001000010000
+11000000011110010000001000010100
+11000000011110011000001000011000
+11000000011110100000001000011100
+11000000011110101000001000100000
+11000000011110110000001000100111
+11000000011110111000001000101011
+11000000011111000000001000110011
+11000000011111001000001000110111
+11000000011111010000001000111011
+11000000011111011000001000111111
+11000000011111100000001001000011
+11000000011111101000001001000111
+11000000011111110000001001001011
+11000000011111111000001001001111
+00100000001000000100011011100110
+01110000010010011010100100000010
+01101111111000001100100110100110
+00100000010110100100011011101111
+01110000010010101010000000000000
+01101111111000001100011001111000
+11000000000000000000000111100111
+01011000000000000000000000000101
+01100111111000011100101001101111
+00100000001000000100011011100110
+01011000000000000000000000000011
+01100111111000011100101001101111
+00100000001000000100011011100110
+01101111111000001100011001111000
+11000000100000000100011100010101
+01011000000000000000000110000011
+01100111111000010100101001110000
+01110000010010100110111100000011
+00100000001000000100011011100110
+01101111111000001100011001111000
+11000000100000000100011100011000
+01011000000000000000000011101010
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100011010
+01011000000000000000000011101001
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100011100
+01011000000000000000000011100010
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100011110
+01011000000000000000000010110110
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100100000
+01011000000000000000000010110101
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100100010
+01011000000000000000000011001101
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100100100
+01011000000000000000000010110111
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100100110
+01011000000000000000001000100011
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100101000
+01011000000000000000000110001010
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100101010
+01011000000000000000000110010100
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100101100
+01011000000000000000001000101010
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100101110
+01011000000000000000000110010010
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100110000
+01101111111000001100101010100001
+11000000000000010000001000001100
+11000000000000011000001000001100
+01011000000000000000001000100001
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100110010
+01011000000000000000001000100100
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100110111
+01101111111000001100101010100001
+11000000000000001000001000110001
+01011000000000000000000110101110
+00100000001000000000000111101101
+01011000000000000000001100000111
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100111101
+01011000000000000000000001110000
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011100111111
+01011000000000000000000001101111
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011101000001
+01011000000000000000000000110000
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011101000011
+01011000000000000000000010111000
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011101000101
+01011000000000000000001000100101
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011101000111
+01011000000000000000001000100110
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011101001001
+01011000000000000000001000100111
+00100000001000000000000111101101
+01101111111000001100011001111000
+11000000100000000100011101010010
+01110000010010100110111100000010
+01011000000000000000000000000010
+01100111111000001100101001110000
+00100000001000000100011011100110
+11000000011101101100011100100000
+00100000001000000011011110011100
+11101111111001000000000000010001
+01100111111001000000011001001110
+00100000010000000111000001010111
+00100000010000000000001001100011
+01101111111000010000011001010100
+01101000010010010000011001010000
+10011000010001100111110000000000
+00100100010000010111000001010100
+01101000010010010000011001010010
+10011000010001100111110000000000
+00100100010000010000001001100110
+00100000001000000100111011010000
+01101000010010001100010000100010
+01111001001111111000010000000000
+00100000001000000111000001011001
+01101000010010001100010000100010
+01111001001000000000010000000000
+00100000001000000111000001011001
+01101111111000010100100010101011
+01100111111000010100011001000100
+01101111111000010100100010101101
+01100111111000010100011001000110
+01101111111000010100100010101111
+01100111111000010100011001001000
+00100000011000000000000000000000
+01011000001011000001001001110000
+01100111111000011100100010101011
+01011000000000010100000000000001
+11100111111000011000000000000101
+00100000011000000000000000000000
+11011010001000000100100101001110
+11011010010000000100100101100011
+11011111001000000000000000010100
+00100000010000000111110101100110
+00100100001000101000001010100000
+00100000001000000100001110111010
+00100000010000000000001001111101
+00100000001000000100001011011110
+11011010001000000000000000000000
+01101000010010100100101110011010
+00011100010000100010010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100010000010111011111110100
+00011010010000100111111000000000
+00011000010000001000010000101000
+10011000010001100111110000000000
+00100100001000010000001010001111
+00011010001000001010001000000001
+00011010001000010111111000001111
+00100100001110100000001010000011
+11011010001000000000000000000000
+00100000010000000000001010010100
+00011100010000100111111000000000
+01100111111000100100101110011010
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00011000010000001000010111011000
+01111001001111111000010000011100
+01100000010010100100101110011010
+01100111111000001100101110011110
+01101111111000001100101110011110
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101110011110
+00100000010000000000001010011011
+00100000001000000000001010010101
+01101111111000001100101110011001
+00100000011110100000000000000000
+01110000010000001001010000000001
+01110000010010111001100100000000
+00100000011000000000000000000000
+01110000010000001001010000000000
+01110000010010111001100100000001
+00100000001000000100001110110001
+00100000010000000100000110101011
+00100000010000000000001010101011
+00100000010000000100000100111110
+00100000010000000000001011100001
+00100000010000000100000110000110
+00100000010000000000001011001111
+00100000010000000000001010110111
+00100000011000000000000000000000
+01101111111000001100101011000010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101011000010
+01101111111001000100100010001110
+11000010100101000000001010110100
+01101111111000001100101011000010
+00100000001110100100000101100110
+00100000001000000100000101101100
+01101111111000001100101011000010
+00100000001110100100000100111100
+00100000001000000100000100111010
+01110000010010101100101100000000
+01101111111000010100011101010000
+00100100011110100000000000000000
+01101111111000010100010111101111
+00100100011110100000000000000000
+01101111111000010100010111110101
+00100100011110100000000000000000
+01101111111000001100101011000010
+00100100011110100000000000000000
+01101111111001000100100010001110
+11000100000001011000000000000000
+11000100000101001000000000000000
+11000100000000010000000000000000
+11000010100101010100000100011011
+01000100101000101100000000001000
+01101111111000001100101011000110
+00011111111000001111111000000001
+01100111111000001100101011000110
+00011111111001100111110000000110
+00100100010000010100000100011001
+00011111111001100111110000000011
+00100100010000010100000110000100
+00100000010000000100000110000010
+00100000011000000000000000000000
+01101111111000001100011000010011
+11000001000000100000000000000000
+01101111111000001100011001111000
+11000000000000000000001011010100
+00100000001000000100000101001000
+01101111111000010100010111101111
+00100000001110100000001011010111
+00100000001000000100000101001101
+01101111111000001100010000100010
+11000010100000000000001011100000
+01101111111000001100011100001101
+11000010100000000000001011100000
+01101111111000010100010111110101
+00100100001110100100000101001011
+01101111111000001100101011000010
+00100100011110100000000000000000
+00100000001000000100000101110010
+00100000011000000000000000000000
+01110000010010101010000100000011
+01101111111000001100011100001101
+11000011100000111000000000000000
+01110000010010101010000100000000
+00100000011000000000000000000000
+00100000001000000100100000010101
+01110000010010101001101100000000
+01101111111000001100011001111000
+11000000100000000100010111010111
+01101111111001000100100010001110
+11000100000010011000000000000000
+01101111111000010100100110101111
+01101000010010010100101010010111
+10011000010001100111110000000000
+00100000001000101000001011110100
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101000001011110100
+00100000001000000101010011100110
+00100000001000000100011010000000
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+                                
+00100000010000000010001101101001
+01000100100000000100000000000000
+00100000100000000000000000000000
+00100000010000000110100111100100
+00100000010000000011011100010111
+00100000010000000010001001000100
+00100000010000000110110010100011
+00100000010000000010001101000111
+00100000010000000110100011010010
+01000100100000001100000000000000
+00100000010000000111011101011101
+00100000010000000011011100001010
+00100000010000000111010000110101
+00100000010101011010010000100001
+01000100100000010100000000000000
+00100000010000000111010101000000
+00100000010000000111010000110110
+00100000010000000010101000100011
+00100000010000000010000000101010
+00100000010000000011011100100010
+00100000010000000010000000011000
+00100000010000000011000011101101
+00100000010000000010010001100011
+00100000001000000010000000001110
+00100000010000000010000000011101
+11000110100001001000000000000000
+01111001001111111000000000001001
+00100000010000000010000001000001
+00100000001000000010010110010001
+01000100100000011100000000000000
+00100000010000000010000001100110
+00100100001000101010000000100101
+00100000010000000010000000110110
+00011010001000001000110000000001
+11101111111000001000000000000110
+11000010100000000010010100001101
+00100000011000000000000000000000
+01110000000000000000011000000000
+00100000010000000010000001000111
+00011111001000100111110000000000
+00100000011000101000000000000000
+00100000001000000010001100111110
+01101111111000001100000100010100
+00100000011110100000000000000000
+11000000000011011010000000110011
+00100000010000000010000001011111
+00100000011000101000000000000000
+00100000010000000010000001100010
+00100000011000101000000000000000
+01110000010000010001010000000000
+00100000011000000000000000000000
+01110000010000110011111000011011
+01110000010000010001010000000000
+00100000011000000000000000000000
+01000100100000100100000000000000
+01111001001000000000000000001001
+00011010001000100111111000000000
+01100111111000010000000000001010
+00011000000000000111001001010011
+11011000101000000000000101101000
+00011010001000001000110000000001
+11101111111000001000000000000110
+00011010001000100000110000000000
+11000010100000000111110011011100
+00100000011000000000000000000000
+01000100100000101100000000000000
+01101111111000010000000000001010
+10011000000000000000101000000000
+00011000000000000111001001010011
+11011000110000000000000101101000
+00100000001000000111110011011100
+11011111001000000000000000000001
+01101000010010001000000000000110
+00011000010000001000010000000001
+00101000010000011111111000000001
+00100100001000001010000001001101
+11011000010000000000000000000000
+01100000010010001000000000000110
+00011000010011111111111001010011
+11011010001000000100000001000000
+10011010001000001010001000000000
+11101111111000001000000000010001
+11000010100000001010000001010100
+11000011100000000000000000000000
+11000010000000000010000001001001
+00100000011000000000000000000000
+01000100100000110100000000000000
+11011010011000000010000001110011
+00100000010000000010000001101001
+00100100011000101000000000000000
+00011010001000100111111000000000
+01100111111000010000000000001010
+00100000001000000111110110111010
+11011010011000000010000010101101
+00100000001000000010000001101001
+01101000010010001100000100010101
+11011010011000000010000001111011
+00100000001000000010000001101001
+01000100100000111100000000000000
+01101000010010110100000100010110
+11011010011000000010000001110101
+00100000001000000010000001101001
+11011010011000000010000010000001
+00100000001000000010000001101001
+11011010011000000010000011000111
+01000100100001000100000000000001
+11011010001000000100000001000000
+11011111001000000000000000000001
+11101111111000001000000000010001
+00011010011000100111101000000000
+01000100100001001100000000000001
+00011010001000001010001001010011
+11000010000000000010000001101100
+00011000000000000111110000000001
+00100000011000000000000000000000
+11000010100000000010000001101110
+00100000001000000111110110111010
+11000011000000000010000001101110
+00011010001000001000110000010000
+11101111111000110000000000000110
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000001000000010000001101110
+11000011000000000010000001101110
+00011010001000001000110000010110
+11101111111000001000000000000110
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000001000000010000001101110
+11000011000000001010000001101110
+00100000010000000010000010110100
+00100000010000000010000010011101
+10011000010001100111111000000000
+00011111111000001111111000000001
+00100000001000010010000010010111
+00011000110000100010010000000000
+01100111111001001000011001010110
+01000100100001010100000000000001
+01101111111000001100010010000100
+00100100001110100010000010010000
+01101111111001001000011001010110
+00011010010000100000110000000000
+00011111111000001111111000000101
+00100000001000000010000010010011
+01101111111001001000011001010110
+00011010010000100000110000000000
+00011111111000001111111000010100
+00100100001000010010000001101110
+00011000010000100100001000000000
+00100000010000000010000011000000
+00100000001000000111110110111010
+10011000000000000010010000000000
+00011010001000001000110000000010
+11101111111000010000000000000110
+00100000001110100010000010010100
+00100000010000000010000011000000
+00100000001000000010000010000010
+00011111111100010001011000000000
+00011001011011001001011000000000
+00100000001000101010000010100111
+00101001011000000001111000001111
+00100100011000001000000000000000
+00011000010100010001011000000000
+00011001011011001001011000000000
+00100100011000101000000000000000
+01111001001000000000010000011100
+00100000011000000000000000000000
+00011000010100010001011000000000
+00011001011011001001011000000000
+00101001011000000001111000001111
+00100100011000001000000000000000
+01111001001000000111111000011100
+00100000011000000000000000000000
+11000011000000000010000001101110
+00100000001000000111110110111010
+11000011000000000010000001101110
+00011010001000001000110000000001
+11101111111000001000000000000110
+11000010100000000010000001101110
+00100000011000000000000000000000
+00011010001000001000110000000001
+11101000010000001000000000000110
+00011100010000100111111000000000
+00101000010011111111111000000001
+00011010001000001000110000000100
+11101000010000100000000000000110
+00100000011000001000000000000000
+00011010001000001000110000001000
+11101111111000110000000000000110
+00100000010000000010000100001001
+00011101000000100111111000000000
+00100000011000000000000000000000
+00011010001000001000110000000010
+00011010001000001000101000000100
+11101111111000010000000000000110
+10011000010000001001011000000000
+00011001011000100111111000000000
+11100111111000100000000000000101
+00100000001000000010010111011110
+11000011000000001010000001101110
+00100000010000000010000010110100
+10011011011000001111111000000000
+10011011011000001111111000000000
+10011000111000001111111000000000
+10011000010001100111110000000000
+00100100001000010010000001101110
+00100000001000000111110110111010
+01000100100001011100000000000001
+01111000010111010111110000000000
+01111000010011101111110000000000
+01111000010011100111110000000000
+01111000010001101111110000000000
+01111000010001100111110000000000
+01111000010001001111110000000000
+01111000010001110111110000000000
+01111000010000111111110000000000
+00100000001100001010000101010101
+00110111110100111000001000000000
+00100000000000000000000001100100
+00100000001000000010000101010101
+01000100100001100100000000000001
+01111000010010000111110000000000
+00011000010000100011011000000000
+00100000010000000010000001101000
+01111000010101000111110000000000
+00100100011000101000000000000000
+00011000000000000011011000000000
+00100000001000000111110110111100
+01000100100001101100000000000001
+00110111110100010000001000000000
+00011011010000100111111000000000
+10011000000000000000110000000000
+00011111111100010111111000000000
+10011100010001100111001000000000
+00011111001000010111001000000011
+00100100001000101010000011101110
+00011000000000000111111000000000
+00100000001000000010000011110010
+01101000010010010000000001000100
+00011000000000000111111000000000
+10011000010000001111111000000000
+11000010000000000010000011110000
+10011000110000001111111000000000
+00011111111001101111110000001100
+00100000010000000111110101100001
+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
+01011000000000000000111100000000
+01100111111100010000100110000010
+01011000000000000000111111110000
+01100111111100010000100110000100
+01110000100010011000000100001001
+01110000100010011000000100000011
+01110000100010011000000000000110
+00100000000000000000000000111100
+11011010001000000000000000000000
+11011010010000000000000000000000
+11011111001000000000000000010000
+11011000110000000000111100000000
+11101111111000010000000000000110
+10011010001000001010001000000000
+11101111111000010000000000000110
+10011010010000001010010000000000
+11000010000000000010000100101111
+00100000011000000000000000000000
+01000100100001111100000000000001
+00100000011101011000000000000000
+00100000010000000010000101100100
+11011000010000000000000000100111
+00100000010000000010000101110011
+00100000010000000010000110101010
+01110000100010100010010101111111
+01110000100010100011000000011010
+01110000100010100011000101111000
+01110000100010101000111110110010
+01110000100010101100001000000000
+01110000100010101100001100000000
+11011000111000000000000000000110
+00100000010000000010000100100010
+00101010001011111111111000001101
+00100000010000000010000100011101
+00101010010011111111111000001101
+00100000010000000010000100011110
+11011000111000000000000000000101
+00100000010000000010000100011100
+00100000010000000010000100011110
+00100000010000000010000100100010
+11011000101000001000101011000010
+00011010001100011111111000000000
+00100000010000000010000100010111
+00011010010100011111111000000000
+00100000010000000010000100010111
+00011000111000001000111111111111
+00100000001000010010000101001000
+01110000100010101000111101010010
+01110000100010100011000000000010
+01110000100010011000000100000000
+01000100100010000100000000000010
+00100000010000000110011011100101
+01111000010100000111110000000000
+01111000010100001111110000000000
+01011000000000000000001000000000
+01100111111100100000101000100011
+01110000100010100000000111111010
+00100000000000000000000000001100
+01110000100010100000111100000000
+01110000100010100001001000011010
+01110000100010100001010000101011
+00011000000000000010101000001000
+00011000000000000010101000000000
+01110000100010010000000000000000
+00100000001000000010001011110011
+01000100100010001100000000000010
+01110000100010100000111101100000
+01110000100010100001000010101010
+01110000100010100001001001111010
+01110000100010100010010100000000
+01110000100010100010011000000000
+00100000000000000000000000111100
+01110000100010100010000000100000
+01110000100010100010001111110101
+01110000100010100010010000010010
+01110000100010100010010000010000
+00100000000000000000000000111100
+01110000100010100001001001100000
+01110000100010100010001111011101
+00100000011000000000000000000000
+01000100100010010100000000000010
+01110000100010010000000000000001
+01110000100010100010001110011101
+01110000100010100010010000000010
+00100000000000000000000000010100
+01110000100010100111000001100101
+01110000100010100010001110011111
+00100000010000000010000110010011
+01100000010010001000000000001000
+00011000010000001000010000000001
+01000100100010011100000000000010
+00011000010100011111111000000000
+11011000110000000100000100110101
+10011000110000001000110000000000
+11101111111000001000000000000110
+01101010001100001000101001110001
+00011010001000010010001000001111
+10011010001000011111111000000000
+01100111111100001000101001110001
+00100000010000000010000111010100
+00100000000000000000000010010000
+01101111111000001100000010011001
+11000000000011000010000110001011
+00100000000000000000000000100100
+01110000100010100010000010000000
+00100000011000000000000000000000
+01011000000000001000001100010010
+01100111111100010000100100000111
+00100000001000000010000110011011
+01011000000000000100000110001001
+01100111111100010000100100000111
+00100000001000000010000110100110
+01000100100010100100000000000010
+01110000100010101000001000010001
+01110000100010101000110100010010
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000010000110001101
+01011000000000000101011101100010
+01100111111100010000100100000111
+01110000100010010000000100000011
+01110000100010010011000000000011
+11000110000101101000000000000000
+01110000100010010000000100000001
+01110000100010101000001000000111
+01110000100010101000110101000100
+01110000100010101000111000001010
+01101111111000001100000010011001
+11000000000010000010000110010000
+01011000000000000010101110110001
+01100111111100010000100100000111
+11000110100101111000000000000000
+01110000100010010011000000100100
+01110000100010010000000100000101
+00100000011000000000000000000000
+01000100100010101100000000000010
+00100000010000000110011011011111
+00100000010000000010000110111110
+00011000000000000010101000001000
+00011000000000000010101000000000
+01011000000010101010101011011010
+01100111111100011000101000001111
+01110000100010100010010101000000
+01110000100010100010011000010000
+00100000000000000000000000111100
+01110000100010100000000111111011
+01110000100010100010010111111111
+01110000100010100010011000110000
+01110000100010100001011011111110
+00100000000000000000000000010100
+01110000100010100001000000000000
+01110000100010100001000100001000
+00100000000000000000000001111000
+01110000100010010000000000001101
+00100000011000000000000000000000
+01101111111000001100000101000011
+11000000011111111010000111000101
+11011000110000000100000101000100
+10011000110000001000110000000000
+11101111111000001000000000000110
+01100111111100001000100101100001
+01110000100010010110000000100111
+01101000010010001100000101000111
+01101111111100001000100101100000
+10011000010000011111111000000000
+01100111111100001000100101100000
+00100000011000000000000000000000
+01110000100010010000000000000011
+01110000100010100010010000000010
+00100000000000000000000000010100
+01110000100010100111000001100101
+01110000100010100010001111011111
+00100000010000000010000110010011
+00100000010000000010000111101110
+01100000010010001000000000001000
+00011000010000001000010000000010
+00100000001000000010000101111101
+01000100100010110100000000000010
+01011000000000000000100101100000
+10011000010000001111111000000000
+00011111111000100010001000000000
+01101000010010001100000010011001
+00011000010000110000010000000000
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00011111111011001000111000000000
+01100000111100001000100100001010
+01100111111100001000100100001001
+00011000000001110111111000000000
+00011111111100000111111000000000
+00011111111011010111111000000000
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+01100111111100011000100100001011
+01100010001100001000101000100010
+00011010001011001010001000000000
+01100010001100001000101000100001
+01110000100010100010000010100000
+01110000100010100010000011100000
+01110000100010100010000010100000
+00100000011000000000000000000000
+00011000010000001111111000000010
+00011111111010010111111000000000
+00011111111000010111111111111110
+11011000110000000100000100011101
+11000101100101101010000111110100
+00011000110000001000110000001100
+10011000110000001000110000000000
+11101010001000010000000000000110
+11101111111000010000000000000110
+10011010001001100111111000000000
+00011000010000001000110000000010
+00011000110000010000110000001111
+10011000110011111111111000000000
+00011111111100011111111000000000
+10011010001000001111111000000000
+01100111111100010000100100000101
+00100000011000000000000000000000
+01000100100010111100000000000010
+00100000010000000010000111001010
+00100000000000000000001001011000
+01000100100011000100000000000011
+01011000000010101010101001111110
+01100111111100011000101000001111
+00100000000000000000000000111100
+01110000100010100010010100000000
+01110000100010100010011000001101
+01110000100010100001011011110110
+00100000000000000000000000011110
+01110000100010100001010100011011
+00100000010000000010001000010010
+00100000000000000000000000010100
+01110000100010100010011000001111
+00100000000000000000000000010100
+01110000100010100001000010101000
+01110000100010100001000100000000
+00100000011000000000000000000000
+01000100100011001100000000000011
+01101111111000001100000101000001
+11000000000000000010001000011101
+11000000000000011010001000100010
+11000000000000101010001000100111
+11000000000000111010001000101011
+11000000000001010010001000101111
+11000000010000011010001000110100
+11000000010000101010001000111000
+11000000010001010010001000111100
+11000000010010100010001001000000
+01110000100010100001010000010111
+01011000001001010001101000111111
+01100111111100011000101001100000
+01110000100010100110001100101000
+00100000011000000000000000000000
+01110000100010100001010000100101
+01011000101010010001110000101101
+01100111111100011000101001100000
+01110000100010100110001100101111
+00100000011000000000000000000000
+01110000100010100001010000100101
+01011000101010010001110000111111
+01100111111100011000101001100000
+00100000001000000010001000100101
+01110000100010100001010000100101
+01011000101010010011100000111111
+01100111111100011000101001100000
+00100000001000000010001000100101
+01110000100010100001010000100101
+01011000101010010011111100111111
+01100111111100011000101001100000
+01110000100010100110001100011111
+00100000011000000000000000000000
+01110000100010100001010000010111
+01011000001001010001100000100111
+01100111111100011000101001100000
+00100000001000000010001000100000
+01110000100010100001010000010111
+01011000001001010001100000011100
+01100111111100011000101001100000
+00100000001000000010001000100000
+01110000100010100001010000010111
+01011000001001010001100000001011
+01100111111100011000101001100000
+00100000001000000010001000100000
+01110000100010100001010000010111
+01011000001001010001000000000000
+01100111111100011000101001100000
+00100000001000000010001000100000
+01110000100000000100001000000110
+01101111111000010100000010011100
+11000011000001110010001001000101
+10011000000000000000110000000000
+11011000010000001000101000000000
+11101111111000001000000000000110
+11000000011111111010001001001111
+10011000010000011000101000000000
+11101111111000001000000000000110
+11100111111000001000000000000101
+00100000001000000010001001001001
+01000100100011010100000000000011
+00110111110110011000001000000000
+01110000100010010100011000001101
+01110000100010010110111100010000
+01110000100010100001001111001101
+01110000100010100000011000010000
+01110000100010101000010001001010
+01110000100010101000010101000000
+01110000100010100001011011111110
+01101111111000001100010001001101
+00100000010110100111000100011101
+00110111110110011000001000000000
+01110000100000010011101101011111
+01101111111000001100000010011001
+11000000000010000010001001110110
+01101111111000001100010001001111
+00011111111000011111111000000100
+01100111111100001000101000000010
+01110000100010010000111100000001
+01110000100010101000000000100100
+01110000100010101000000101100010
+01011000111001100001001000010010
+01100111111100011000101001110011
+01000111011110011100000000111110
+01110000100010101000011001100000
+01110000100010101000101100111011
+00100000010000000010001010011101
+01110000100000000100001100000000
+01110000100000000100001000000101
+01011000010101010111010001110100
+01100111111100011000100101101000
+01110000100010010110000001101110
+00100000010000000010000100110101
+00100000010000000010001010000111
+00100000010000000010001010000001
+01110000010000010100100000001100
+00100000010000000110111101010011
+00100000010000000010001011001011
+00100000001000000110101011001001
+01101111111000001100010001001111
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010010000111100000000
+01110000100010101000000000100011
+01110000100010101000000110110000
+01011000111001000000100100001001
+01100111111100011000101001110011
+01110000100010100111011000101010
+01110000100010010000001000000100
+00100000001000000010001001100110
+00100000011101011000000000000000
+00110111110110011000001000000000
+01101111111000001100000100011100
+01100111111100001000000100111010
+00110111110110011000001000000000
+00100000011000000000000000000000
+01000100100011011100000000000011
+00100000011101011000000000000000
+00100000010000000010000101100100
+01110000100010010000000000000011
+01110000100010100111000000000001
+11011010010000000100000100011101
+11011011000000000100000100110101
+00100000010000000010001010010011
+01111001001000000000000000101101
+00100000010000000010001010010011
+01110000100010100111000001100001
+00100000001000000010000101010101
+00100000010000000010000110010011
+11011111001000000000000000000110
+11011010011000000000000000000000
+00011010011000100000010000000000
+00100000010000000010001010101011
+00011010010000001010010000000010
+00011011000000001011000000000001
+00011010011000001010011000010000
+11000010000000000010001010010110
+00100000011000000000000000000000
+01101111111000001100000010011001
+11000000000011000010001010100011
+01101111111000001100010001001111
+00011111111000011111111000000110
+01100111111100001000101000000010
+01110000100010100000010111100000
+01110000100010100000000011011000
+00100000000000000000000000111100
+01110000100010100000000110100000
+01110000100010100000000011011111
+01110000100010100000000111111010
+00100000000000000000000000010100
+01110000100010100000000010011111
+00100000011000000000000000000000
+01000100100011100100000000000011
+01110000100010100010000000110000
+01110000100010100010001111011101
+00100000010000000010000111010100
+01101111111100001000101001111100
+11000011000000000010001010101111
+01110000100010100111101100110000
+00100000010000000010001011000101
+10011000000000000010001000000000
+01110000100010100111101101000000
+00100000010000000010001011000101
+10011010001001100111111000000000
+00011111111011111000010001111101
+01011000101100000000000000000000
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+11000101100101101010001010111110
+00011111111000111111111000000000
+11100111111000010000000000010010
+01110000100010100111101100100000
+01101111111100001000101001111110
+00011111111100100111111000000000
+11100111111000001000000000011000
+01110000100010100111101100000000
+00100000011000000000000000000000
+01101111111100010000101001111101
+00011111111100001111111000000000
+01101000010110001000101001111100
+00011000010100000000010000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+01000100100011101100000000000011
+00100000011000000000000000000000
+01000100100011110100000000000011
+01101111111100001000100110100010
+00101111111011111111111000000110
+01111001001000001111111000000111
+01100111111000001100000101000010
+01101111111100001000100110100011
+00011111111000010000010000001111
+00011000010000111000010000000000
+00011111111100011111111000000000
+10011000010000001000010000000000
+00011000010011111010001000000011
+01101111111000001100000101000010
+00100000010000000010001011100011
+00011111111001100111111000000000
+10011010001000001111111000000000
+00011111111000001111111111110111
+00011111111000010111111111111111
+00101111111011111111111000001000
+00100100001000001010001011100001
+01011000000000000000000000000000
+01100111111000001000000000110101
+00100000001000000010001011101000
+00101111111011111111111000000111
+00100100011000001000000000000000
+11011000010000001111111100000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+01101111111000001000000000110101
+00100000010000000010001011101100
+01100111111000001000000000001001
+00100000011000000000000000000000
+00011111111000010111111011111111
+00011111111001101111110000001010
+00100000010000000111110101100001
+00011111111100100111111000000000
+00011000000001110000010000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+01000100100011111100000000000011
+01101111111000001100000101000011
+11000001011111111000000000000000
+00100100001011000010001100011010
+01101111111000001100000101000010
+00011111111001100111110011110000
+00100100001000010010001100011110
+00011111111001100111110001111111
+00100000001000010010001100011110
+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
+11000000000000001010001100100011
+11000000000000010010001100100101
+00100000001000000010001100100011
+01101111111000001100000101000011
+11000000000000000010001100100101
+11000000000000001010001100100001
+01110000010000010100001100000010
+00100000011000000000000000000000
+01110000010000010100001100000000
+00100000011000000000000000000000
+01110000010000010100001100000001
+00100000011000000000000000000000
+00011111111000100000010000000000
+01000100100100000100000000000100
+00011000010000100111111000000000
+00100000010000000111110100101110
+00011100001100000111111000000000
+01111001001000000111111000101100
+00100000010000000111110100010100
+01111001001111111111111000101100
+00100000010000000010001100110110
+00100000010000000111110100010100
+00100000011101000000000000000000
+00100000010000000111110100100001
+10011000000000000011011000000000
+00110111110000011000001000000000
+00100000011000000000000000000000
+00011011001000100000010000000000
+00100000011101001000000000000000
+00011011010000100000010000000000
+00100000011000000000000000000000
+00011100010000100111111000000000
+00100000011101001000000000000000
+00011101000000100111111000000000
+00100000011000000000000000000000
+01000100100100001100000000000100
+00100000001000000010001100111110
+00100000011110100000000000000000
+00011111111000110111111000000000
+00011111111000001111111111111101
+00011111111000001111111111111111
+00100100001000101010001101000011
+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
+01100111111000010100001011100101
+01110000010000010110100110001011
+01011000000000000000110100000000
+01100111111000010100001101000011
+01011000000000000000000001100000
+01100111111000010100001101000101
+00011100010000110111111000000000
+01100111111000100100000010010101
+00100000011000000000000000000000
+01011000000000001110111000100001
+01100111111100010000000001010000
+01101110000100100000000100011100
+01101111111100001000000100110010
+11000011000000101010001110000011
+01111000001101011111110000000000
+11000010100000100010001101110111
+01111000010101011111110000000000
+00011100111000100111111000000000
+00100100001110100010001101110111
+01101111111100001000000101000010
+11000010100000100010001101110111
+11011000010111111111111111111111
+00100000001000000010010000011101
+00100000010000000010001110000111
+00100000010101011010001111001001
+00110111110110011000001000000000
+01101111111100001000000100110010
+01111001001111111111111000000101
+01100111111100001000000100110010
+00110111110110011000001000000000
+00100100001101011010001110000100
+00100000010000000110101010101111
+01100110000000100000011001111011
+01110000100000000000011000001000
+00100000011000000000000000000000
+00100000010000000010001110000111
+00100000010000000110101000100000
+01100110000000100000011001111011
+00100000011000000000000000000000
+00110111110110011000001000000000
+01101111111100001000000100110011
+00011111111000010111111010001000
+01100111111100001000000100110011
+00110111110110011000001000000000
+01101111111100001000000100110010
+00011111111000011111111000001111
+01100111111100001000000100110010
+00110111110110011000001000000000
+01111001001000000111111000000111
+01100111111100001000000100110010
+00110111110110011000001000000000
+01111001001000000111111000000110
+01100111111100001000000100110010
+00110111110110011000001000000000
+00100000011000000000000000000000
+00110111110110011000001000000000
+01110000100000010011110101110110
+00110111110110011000001000000000
+01110000100000010011101000110111
+00100000011000000000000000000000
+01101111111000001100001111001111
+00011111111100100111111000000000
+01100111111100001000000101000011
+00110111110110011000001000000000
+01101111111000001100001111010000
+01111001001000000111111000000101
+01111001001000000111111000000110
+01100111111100001000000101000100
+00100000001000000010001111000100
+01101111111100001000000101000010
+01111001001111111111111000000011
+01100111111100001000000101000010
+00100000011000000000000000000000
+01101111111100001000000101000010
+01111001001000000111111000000011
+01100111111100001000000101000010
+00100000011000000000000000000000
+01101111111000011100000011000011
+11011000101000001000000100111110
+11011111001000000000000000000011
+00100000001000000010001110110011
+11011000101000001000000101000101
+11011111001000000000000000000100
+00110111110110011000001000000000
+11100111111000001000000000000101
+00011111111011001111111000000000
+11000010000000000010001110110011
+00100000001000000010001111000100
+11011000101000001000000101001001
+00100000001000000010001110110010
+01101111111100001000000100110011
+01111001001111111111111000000011
+01100111111100001000000100110011
+00100000011000000000000000000000
+01101111111000001100000011001011
+00100000011110100000000000000000
+01111001001111111111111000000100
+00100000001000000010001111000011
+01100111111000001100000011001011
+01100111111100001000000100110101
+00110111110110011000001000000000
+00110111110110011000001000000000
+00100000011000000000000000000000
+01100111111100001000000100110100
+00100000001000000010001111000100
+00100000010000000010001110111110
+01101111111000001100000011101111
+01100111111100001000000010000000
+11011000110000000100000011001100
+11011000101000001000000001110000
+00100000010000000111110010010001
+11011000101000001000000011010100
+00100000010000000111110010001011
+01101000000001000100000011100111
+11011000110000001000000101001101
+11011000101000000000000000010110
+11011111001000000000000000001100
+00100000010000000111110011011100
+00100000001000000110101011111111
+01100000000001000100000011100111
+11011000110000001000000001110000
+11011000101000000100000011001100
+00100000010000000111110010010001
+11011000110000001000000011010100
+00100000010000000111110010001011
+01101111111100001000000010000000
+01100111111000001100000011101111
+00011000010000100010010000000000
+00100000001000000010001111100001
+11011111001000000000000000001100
+11011010001000000000000000010110
+11011010011000001000000101001101
+00110111110110011000001000000000
+11101111111000001000000000010001
+11101000010000001000000000010011
+10011000010001100111110000000000
+00100000001000101010001111101011
+11100111111000001000000000010011
+00110111110110011000001000000000
+00011010001000001010001000000001
+00011010011000001010011000000001
+11000010000000000010001111100101
+00011010010000100000010000000000
+00100000011000000000000000000000
+01000100100100011100000000000100
+01101111111100001000000011001011
+00100100001110100010001111110111
+01101111111000011100000010111101
+00100100011110100000000000000000
+01110000100000001100101100001100
+01110000100000000000011010000000
+01101111111100001000000100101001
+11000100000000001000000000000000
+01101111111100011000000101011011
+01100111111000011100000010111101
+00100000011000000000000000000000
+01101111111000001100000011001010
+01111001001000000111111000000100
+01100111111000001100000011001010
+01000100100100100100000000000100
+11011000010111111111111111111111
+01101111111000001100000010100111
+01100111111000001100000011001000
+01101111111000001100000011001010
+01100111111100001000000101000010
+00110111110110011000001000000000
+01000100100100101100000000000100
+01101111111000010100001111110010
+00100000010000000111110101111011
+01101111111000100100000010101101
+10011000010000001111111000000000
+01100111111000100100000010101101
+00100000010000000010001111010111
+01101111111000001100000011001011
+01111001001000000111111000000100
+00100000010000000010001111000011
+00100100010101011010001110101101
+00110111110110011000001000000000
+01100011001000110100000010110001
+00100000010000000110101010111111
+01101111111000011100000011000110
+01101010001000001100000011001001
+11011111001000000000000000000011
+00110111110110011000001000000000
+01100111111100001000000100110010
+00011111111011001111111000000000
+11000010000000000010010000010111
+00110111110110011000001000000000
+01100010001100001000000100110011
+00110111110110011000001000000000
+01100000010110100000000001001100
+01110000100000000000010100000001
+00110111110111111000001000000000
+01000100100100110100000000000100
+01011000000000000000000000000000
+00011100111000100111110000000000
+00100000001000101010010000101100
+01101111111100001000000100111110
+01101000010110001000000100111111
+10011000010001100111110000000000
+00100000001000010010010000101010
+00011000010000100111111000000000
+10011100111001100111111000000000
+00011111111000001111111000000001
+00011111111000001111111000001000
+00110111110110011000001000000000
+10011110001000001111111000000000
+01101000010010100100000010101001
+10011000010000001111111000000000
+01101000010010011100000010111101
+10011000010011111111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00011111111000001111111001101110
+01101000010010010000000001000100
+10011000010001101111110000000000
+00100000010000000111110101100001
+00011111111100000111111000000000
+00011000000001110000010000000000
+10011000010000011111111000000000
+01101000010010110100000010110001
+00100000010000000111110100000111
+00011000010000100011001000000000
+01101111111000110100000001001000
+00100000010000000010000100001001
+00011011010000100111111000000000
+01100111111000110000011001001110
+00011100111000100111111000000000
+11100111111000001000000000000101
+01101111111100001000000100011101
+00011111111000011111111011110000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000100100100111100000000000100
+11000101100001001010010001100000
+01101000010010100100000010101101
+11011111111000000000011000000000
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011000010000100010001000000000
+01101000010010110000000000001111
+00011101011000100111111000000000
+00100000010000000111110100010010
+00011010001000100000010000000000
+00011111111011010111111000000000
+00011111111100100111111000000000
+10011000010001101111110000000000
+00100000010000000111110101100001
+11011000010000000000000011001000
+00100000010000000111110101101110
+01100111111000001000000000001110
+00100100001101000010010001011101
+00011111111001100111111000000000
+01101000010010011100000010111101
+10011000010000001111111000000000
+01100111111000011100000010111101
+01011000000000000000000000000000
+01100111111000100100000010101101
+00100000011000000000000000000000
+01000100100101000100000000000101
+00100000010000000010001111110000
+01101111111000011100000010111101
+00100000011110100000000000000000
+01101111111000001100000010010100
+00100000011110100000000000000000
+01101111111000001100010010000011
+00100000001110100010010001101101
+01101111111000001100010010000101
+00100000011110100000000000000000
+01101111111000001100010010000100
+00100100011110100000000000000000
+11011010011000000010000010101111
+00100000010000000010000001101001
+00100000011000101000000000000000
+00100000010000000010010011000110
+00100100011110100000000000000000
+00100000010000000010000001011101
+00100100001000101010010010010100
+00100000011101011000000000000000
+01000100100101001100000000000101
+01101000010010001000000000010101
+01101111111000010100000001000010
+10011000010011111111111000000000
+00011000010100011000010000000000
+00011000010010110000010000000000
+10011000010001100111111000000000
+01101000010010100100000001000100
+10011000010000001111111000000000
+01101000010010001100000010100110
+10011000010001100111111000000000
+00011111111100000110000000000000
+01101111111000010100000001001110
+00011111111000110111111000000000
+00100000010000000111110100101110
+00011110000000100111111000000000
+00100000010000000111110100010100
+00011011010000100000010000000000
+00100000010000000111110100010010
+00100000011101000000000000000000
+00100000010000000111110100100111
+01000100100101010100000000000101
+01101111111000001100000011000011
+10011000010001100111110000000000
+00100000001000010010010001100000
+01100000010010100100000010101001
+00100000010000000011011100111010
+01101000010010100100000010101001
+00100000001000000010010000000110
+01000100100101011100000000000101
+01101111111000001100001110001100
+00100100001110100010010010011000
+00100000011000000000000000000000
+01101111111000010100000010100100
+00100000011110100000000000000000
+01101000010010001100000010100110
+10011000010001100111111000000000
+11011000010000000001110101001100
+10011000010011111111111000000000
+00100000001000000010010010001011
+01101111111000010100001111101110
+00100000010000000111110101111011
+00100100001110100010010010110111
+01110000000000000001010100000000
+11000101100001101010010010110111
+01101111111000001100000011000010
+00100000001110100010010010111011
+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
+00100000010000000011011100111000
+01101111111000010100000010100010
+00011111111000100010001000000000
+01101111111000011100010001100010
+01111101001110100010001000000001
+01101111111001000100010011101010
+01111101001110100010001000001111
+01101111111001000100010011110010
+01111101001110100010001000001110
+01101111111000001100000100010100
+01111101001110100010001000001000
+01101111111000001100001111001111
+00101111111000011111111000001010
+00100000010000001010010011011000
+00011010001000100111111000000000
+01100111111000010100000010100010
+00100000011000000000000000000000
+01101111111100010000000100010010
+01111101001110100010001000000110
+01101111111100010000000100001110
+01111101001110100010001000000101
+00100000011000000000000000000000
+01000111000111011100000000100111
+01111000010101011111110000000000
+01110000000000010111111000000001
+01110000000000010110100000000011
+01110000000000010111111100000001
+01011111111111111111111111111111
+01100111111000010000000110000010
+00011000000000000111111000000000
+01100111111000001000000110000000
+01100111111000001000000110001011
+01100111111000011100000010110111
+01100111111000011100000010111010
+00100000010000000010100000111010
+01110000010000010110101100000001
+01110000010000010110110000000000
+01110000000000011001110100000001
+01110000000000011001111000000001
+01110000010000111001101000000000
+00100000001000000010100100010100
+01000111000111100100000000100111
+01111000001101001111110000000000
+01110000000000010110100100000011
+01110000010000111001110000000001
+01110000000001101000111100000001
+01011000000000001111111111111111
+01100111111000010000011010010001
+00011000000000000111111000000000
+01100111111000101100010001101100
+01111001001000000111111000100111
+01100111111000101100010001100111
+00100000001000000010010011011101
+01000111000111101100000000100111
+01111000010101001111110000000000
+01011000000000000000000000010111
+01100111111000010100001011100101
+00011111111000001111111000000100
+01100111111000010100001110111100
+01110000000000010110100100000001
+01110000010000111000110000000000
+01110000000000000001010100000000
+00100000010000000010010101100111
+01101111111000010000000110010110
+01100111111000010100001011110111
+01101111111000010000000101101010
+00011111111011111111111000000101
+00011111111100011111111000000000
+01100111111000010000000110010110
+00100000001000000010010011011101
+01000111000111110100000000100111
+00100000010000000010010110001101
+01101111111000001000000101101000
+00101111111011111111111000000100
+01111001001000001000000000110010
+00100000010000000011011100100111
+01101111111000001000000101101001
+11000010100000001010010100010110
+00100000001000000010010100100111
+01000111000111111100000000100111
+01111000001101001111110000000000
+00100000010000000010100100001010
+00100000001000010010010100100100
+00100000010000000010010111010000
+00100000010000000010100001001111
+01111000010101101111110000000000
+00100000010000000010011100001110
+00100100011101101000000000000000
+01101111111000001000000000000101
+00011111111000001111111000000001
+01100111111000001000000000000101
+00100000010000000010100000000001
+00100000001000000010010100100101
+00100000010000000010010101011011
+01111000010101001111110000000000
+00100000011000000000000000000000
+01000111001000000100000000101000
+01110000010000110100001000000000
+01111001001111111000000000110000
+00100000010000000111010101000000
+00100000010000000010111111010011
+01111000010101110111110000000000
+00100000010000000010100100001010
+00100000001000010010010101011011
+01101111111000001000000110011101
+00100000010000000010010101111001
+00100000010000000010010111010000
+00100000010000000010011000100111
+00100100001011000010010101001101
+00100000010000000010010101101100
+00100000001101101010010100111000
+11000101000110000010010100111000
+00100000001000000010010101000111
+01000111001000001100000000101000
+01101111111000001100001101000010
+00011111111000001111111000000001
+01100111111000001100001101000010
+11000000000001100010010101000111
+00100000010000000010100000000001
+00100000010000000010100001001111
+01101111111000001000000110011110
+00100000010000000010010101111001
+00100000010000000010011100011111
+00100000010000000010100010110010
+01101111111000010100001111101010
+00100000010000000111110101111011
+00100000010000000010010101010001
+00100000001101000010010101010101
+01000111001000010100000000101000
+00100000010000000010111110011000
+00100000010000000010111110001111
+00100000010000000111100000110001
+01101111111000001000000110001011
+11000010100000011010010101011011
+01000111001000011100000000101000
+00100000010000000010000011001111
+00100000010000000010100110000100
+00100000001000000010000011110111
+11000101000101010111110110111100
+11000101000101001111110110111100
+11000101000110000111110110111100
+00100000001000000111110110111110
+01000111001000100100000000101000
+01111000001101110111110000000000
+00100000010000000010011100010010
+00100000001101101010010100111000
+11000101000110000010010100111000
+00100000001000000010010101000111
+01000111001000101100000000101000
+00100000010000000010010101100010
+00100000010000000011011101110111
+00100000010000000010010101100111
+00100000010000000010111111100001
+01110000000001100100110100010101
+00100000001000000111100000011001
+11011000101000000100010001011000
+00100000010000000111110010011011
+01110000000000010111111000000000
+01110000000000010110100100000000
+01110000000000010110100000000000
+01000111001000110100000000101000
+01110000010000101111111100000000
+01110000010000101111111000000000
+00100000010000000111010001000000
+00100000011000000000000000000000
+01000111001000111100000000101000
+01101111111000001000000000000101
+00011111111000001111111000000001
+01100111111000001000000000000101
+01101111111000001000000101101000
+11000011100000011000000000000000
+01111001001000000111111000000011
+01100111111000001000000101101000
+01101111111000010100001011110111
+01100111111000010000000110010110
+01011000000000000000000000000000
+01100111111000100100001100011111
+00100000011000000000000000000000
+00011111111000100000010000000000
+01000111001001000100000000101001
+00011000010000100111111000000000
+11000010100000000010010110001101
+11000010100000001010010110000010
+11000011000000010010010110001101
+11000010100000111010010110001001
+11000010100000010010010110000101
+00100000001000000010010110001101
+01111001001111111000000000101111
+01111001001000000000000000101101
+00100000011000000000000000000000
+01111001001111111000000000101101
+01111001001000000000000000101111
+01111001001111111000000000101110
+00100000011000000000000000000000
+01111001001111111000000000101101
+01111001001000000000000000101111
+01111001001000000000000000101110
+00100000011000000000000000000000
+01000111001001001100000000101001
+01111001001111111000000000101101
+01111001001111111000000000101111
+00100000011000000000000000000000
+01000111001001010100000000101001
+01111001001111111000000000110010
+01110000100010010000000100000001
+01110000100010010010000010000000
+01110000100010010011000000000011
+00100000011000000000000000000000
+01000111001001011100000000101001
+01111000010001001111110000000000
+01111000010000111111110000000000
+01101111111000011000000110010000
+10011000000000000001111000000000
+01101111111000001000000000000111
+00011111111011011000010000000000
+01111001001000000000010000000001
+00011000010000110001110000000000
+00100000011000000000000000000000
+00100000010000000010010110101010
+00100000010000000010000101110011
+01101111111000010000000000111110
+00100000010000000010001101000000
+00100000001000000010000110101010
+00100000001101101010001000000010
+11000101000110000010001000000010
+00100000010000000010010110101010
+00100000001000000010000111111111
+01000111001001100100000000101001
+00100000010000000010000101100100
+01101111111000001100001100111101
+00100100001110100010010110111101
+01101111111000001000000000000111
+00011111111001100111110000100100
+00100000001000010010010110110111
+00011000000000000000010000000000
+11000001000100101000000000000000
+00011000000000000000010000011000
+11000001000100110000000000000000
+00011000000000000000010001001110
+00100000011000000000000000000000
+00011111111001100111110000001010
+00100000001000010010010110111010
+00011111111000001111111000000001
+00011111111000111111111000000000
+00011111111000001000010000000010
+00100000011000000000000000000000
+01101111111000001000000000000111
+00011111111000111000010000000000
+00100000011000000000000000000000
+11011000010000000000000111110100
+00100000011110100000000000000000
+11011000010000000000000011111010
+11000001000000001000000000000000
+11011000010000000000000010010110
+11000001000000010000000000000000
+11011000010000000000000001100100
+11000001000000011000000000000000
+11011000010000000000000001001011
+11000001000000100000000000000000
+11011000010000000000000000110010
+11000001000000101000000000000000
+11011000010000000000000000101000
+11000001000000110000000000000000
+11011000010000000000000000010100
+00100000011000000000000000000000
+01000111001001101100000000101001
+01111000001010000111110000000000
+01101111111000100000000110001100
+10011000000000000001001000000000
+00100000010000000010011000000101
+01011000000000000000001000000000
+00100000001101001010010111011001
+01101111111000010000000101110110
+00011111111000110111111000000000
+01101000010010010000000000111110
+10011000010000001111111000000000
+00100000010000000010001100100111
+00011011010000100111111000000000
+00100000011000000000000000000000
+01000111001001110100000000101001
+00100000010000000111110001010011
+01100111001000010000011001111001
+00011010001000001000110000000001
+11101111111000001000000000000110
+11000100000000000000000000000000
+00011010001000001000101000011010
+11101111111000010000000000000101
+00011111111000001111111000000001
+11100111111000010000000000000101
+00100000010000000010011110000000
+00100000010000000010011110100010
+00100000010000000010011110101011
+00100000010000000010010111101111
+00100000010000000111110001100010
+01101111001000010000011001111001
+00100000011000000000000000000000
+00011010001000001000110000011001
+11101111111000001000000000000110
+00011010001000001000101000011000
+11101000010000001000000000000101
+10011000010000001111111000000000
+00011111111001100111110000100100
+00100000001000010010010111110111
+00011111111000001111111111011011
+11100111111000001000000000000101
+00100000011000000000000000000000
+00011010001000001000110000110000
+11101111111000101000000000000110
+00011000000000000000010000000000
+00011000000000000111001000100101
+11000011000000000010010111111111
+00011000010000001000010000000001
+00011111111000110111111000000000
+11000010000000000010010111111101
+00011000010000001111111111111111
+00011010001000001000101000100010
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111001001111100000000101001
+01101111111000001000000110000000
+10011000000000000000111000000000
+01101000010010101000000110011000
+10101000010011111111111111111111
+00100000001000001010011000011010
+01101111111000001000000110001010
+10011000111001100111111000000000
+00100000001000010010011000010000
+00011111111001100000111111111111
+00100000001000000010011000001011
+00011000111000100111001000000000
+00011000000000000000111000000000
+10101000010011111111111111111111
+00100000001000001010011000010101
+00011111001000001111001000000001
+00011111001000100111111000000000
+00100000001110100010011000011010
+00011000111000001000111000000001
+00011111001000001111001111111111
+00100000001000000010011000010010
+00011000111000100111111000000000
+01100111111000001000000000000111
+00100000011000000000000000000000
+00100000001101001010011000100000
+00110111110000011000001000000000
+00100000011000000000000000000000
+11011001011000000000111010100000
+00110100011100110000001000000000
+00100000011000000000000000000000
+01111000010010000111110000000000
+01101111111000010100001101001010
+00011111111000100001011000000000
+00100000001000000010011000101101
+01000111001010000100000000101010
+00100000010000000010011010010010
+01111000001010000111110000000000
+01101111111000010000000101110110
+01101000010010100100001100011111
+10011000010000001001011000000000
+00100000010000000010010110100001
+01000111001010001100000000101010
+00100000010000000010010110010111
+11000101100101111010011000110101
+01111000001111001111110000000000
+00100000000000000000000000011110
+00100000010000000010010110010111
+00011001011010011001011000000000
+01111000010101101111110000000000
+01111000001001101111110000000000
+01111000001100001111110000000000
+01111000010100000111110000000000
+00011001011000100011011000000000
+00110111110000011000010000000000
+00100000001101110010011000111110
+00011011010000100000010000000000
+01100000010010110000000000001111
+00100100001011000010011011001110
+01111000001010000111110000000000
+01101111111000001100000101101001
+11011000010000000100111000100000
+10011000010000001000010000000000
+01101111111000001100000101001000
+10011000010011111011011000000000
+00100000010000000110011011100111
+00100000001101110010011001001011
+00100000010000000010011011010011
+01101111111000001000000101101000
+11000011000000011010011001001011
+00100000010101011010010001001001
+00100000010000000010001011001101
+01111000001000111111110000000000
+01111000001001001111110000000000
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100111111000001000000001001100
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100111111000001000000001001101
+00011111111000100111001000000000
+00100000001000101010011001110001
+11000101000110010010011001011100
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100111111000001000000000000101
+11000010000000000010011001010111
+00100000001000000010011001110001
+00011000101000100010010000000000
+01000111001010010100000000101010
+00100000010000000010011111111010
+01101010001000001000000001001101
+00011010001000001010001111111100
+00100100001000010010011011001110
+00100000010000000010011010010111
+00011010010000100000101000000000
+11011000010000000000000000000000
+01101111001000001000000001001101
+00011111001000001111001111111100
+00100000001000101010011001101111
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100111111000001000000000000101
+00011000010000001000010000000001
+00011000010000010111110000001111
+00100000010000101010011010110101
+11000010000000000010011001101000
+00100000010000000010011010111101
+00011010010000100000101000000000
+01000111001010011100000000101010
+00001001100000000000000000011000
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100111111000011000000000000101
+01111000001010000111110000000000
+00100000010000000010011011101011
+00100000001000110010011011001001
+11000101100110010010011010000011
+01101111111000001000000001001101
+00100000001110100010011010000011
+00011111111000001111111111111100
+01100111111000001000000001001101
+00100000010000000111001010111001
+01101111111100001000000100001000
+11000011000000111010011011001110
+00011000000000000111000000001100
+01100101111000100000000101010100
+00100000010000000110011011100110
+01111000001101101111110000000000
+01111001001111111000000000110000
+01000111001010100100000000101010
+00100000010000000111001010111011
+01101111111000001000000110011101
+01111101001111100111111000000111
+01100111111000001000000110011101
+00100000010000000010011010001101
+00100000001000000010011010001111
+01111000010001101111110000000000
+00100000001000000010000101100100
+01000111001010101100000000101010
+01101000010010001000000000001000
+00100000001000000010000111001010
+11000110100110010000000000000000
+00100000010000000111001101010110
+00011000000000000111000000001100
+00100000010000000111001101011110
+00100000001000000111001101011101
+01000111001010110100000000101010
+01110000100000000110110000000000
+01110000100000000110110100000001
+01101111111000001000000001001100
+00011111111000010111111000000011
+01100111111100001000000001101110
+01011000000000000000000001001110
+01100111111100010000000001101000
+01100111111100010000000001101010
+01101010001000001000000001001101
+00011010001000001010001111111100
+01101000010010101100010001101100
+00101000000011111111111000001111
+00100000010000001010011010101011
+00100000010000000111001001010011
+01011000000000000000000000000000
+01100111111100010000000011000000
+01110000100000000000101000000110
+01110000100000000000101000000111
+00100000011000000000000000000000
+00011000010001100111110000000000
+00100000001000101010011010110000
+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
+00100000010000000010011011101011
+00100000010000000010000011001111
+00100000001000000010011010000011
+00100000010000000110011011101000
+11000101000010000010011011001110
+11000101000110000010011011001110
+01111001001000000000000000110000
+00100000001000000010011010000110
+01111001001111111000000000110000
+00100000001000000010011011010000
+01000111001010111100000000101010
+00100000010000000111001010111011
+00100000001000000010000011001111
+01101000010010110000000000001111
+00011011010000100111111000000000
+00100000010000000111110100010100
+00011111111000100000010000000000
+00100000010000000010011011011101
+00011011010000100101011000000000
+00011101001000100111111000000000
+10011000010000001111111000000000
+00011111111000100101001000000000
+00100000011000000000000000000000
+11000101000101111010011011100011
+11000101000101101010011011100111
+01101111111000010000000001000110
+00011111111000100101001000000000
+00011100001000100101000000000000
+00100000011000000000000000000000
+01101111111000010000000001001010
+00011111111000100101001000000000
+00011100001000001101000000000001
+00100000011000000000000000000000
+01101111111000010000000001001000
+00011111111000100101001000000000
+00011100001000100101000000000000
+00100000011000000000000000000000
+01101111111000001000000001001101
+00011111111000001000010000000101
+00011000010010011000010000000000
+01101111111000001000000110011101
+11000101000101111010011011110010
+11000010100000000010011011110100
+11000010100000001010011011110101
+00100000001111100010011011110111
+00100000001000000010011011111010
+00100000001000000010011011111111
+00011000010000110000010000000000
+00100000001000000010011011111111
+00011000010000001000010000000011
+00011000010000111000010000000000
+00100000001000000010011011111100
+00011000010000001000010000000011
+00011000010010011000010000000000
+01011000000000000000000000101000
+10011000010000001000010000000000
+00100000001000000010011011111111
+01101111111000001100000101001000
+10011000010011111000010000000000
+11011010001000000100111000100000
+10011010001011111111111000000000
+10011000010001100000010000000000
+00011011011000100111111000000000
+10011000010001100011011000000000
+00100000011000000000000000000000
+00100000010000000010011100011111
+01101000010010001000000000001000
+00100000010000000010000101110011
+00100000010000000010000110101010
+01111000001010000111110000000000
+11011001011000000001010101111100
+00100000001000000010011000101110
+01000111001011000100000000101011
+01101111111000001000000110011110
+00100000010000000010010101111001
+00100000010000000010011100011111
+01101111111000001000000110011101
+00100000010000000010010101111001
+01101000010010001000000000001000
+00100000010000000010000101110011
+00100000010000000010000110101010
+01111000001010000111110000000000
+11011001011000000001010101111100
+11000101100101111010011000101110
+11011001011000000010000100110100
+00100000001000000010011000101110
+01000111001011001100000000101011
+00100000010000000010011100011111
+00100000001000000010000011001111
+01000111001011010100000000101011
+00100000010000000010010110010111
+00100000010000000010010110100110
+00100000010000000110011011101101
+01111001001000000010101000000000
+01111000001011101111110000000000
+01111000001100000111110000000000
+01111000010100001111110000000000
+00100000010000000010011000011101
+01111000010111010111110000000000
+11000101000101111010011101100010
+11000101000101101010011101110100
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00001000000000001000011000101000
+01111000001000111111110000000000
+01111000001001001111110000000000
+01000111001011011100000000101011
+01101111111000001100000101101011
+00001000000000001000011000001000
+11101111111000001000000000000110
+00011111111000100111001000000000
+00001000000000001000011000001000
+00011111001001100111110000000000
+00100000001000101010011101000000
+01101111111100001000000000001010
+00100000001110100010011100111100
+11000101000110010010011101010111
+11011000110000000100000101101101
+11101111111000001000000000000110
+00001000000000001000011000001000
+11000010000000000010011100111101
+01111000001001000111110000000000
+00001000000000001000011000011000
+01111000010001000111110000000000
+11000101100101111010011101000111
+01111000010000111111110000000000
+01011000000000000000000000000000
+00001000000000001000011000000011
+00110111110100111000001000000000
+00100000000000000000000001100100
+01000111001011100100000000101011
+01111000010011101111110000000000
+01111000010111000111110000000000
+00100000010000000010000101100100
+00100000010000000110011011101011
+01101111111000001100000101101011
+00011111111000010111111000000011
+11000001100000011000000000000000
+01101111111000001100001011111111
+11000000000000010010100000111010
+11000001100000101000000000000000
+01101111111000001100000101101101
+11000000000000101010100000110101
+00100000011000000000000000000000
+00011111001000001111001111111100
+00011111001000100000010000000000
+00100000010000000111001010100110
+11011000110000000100000101101101
+11101111111000001000000000000110
+00001000000000001000011000001000
+11000010000000000010011101011011
+00100000010000000111001010101011
+00011101111000100111111000000000
+00001000000000001000011000100000
+00100000001000000010011101000000
+11011111001000000000000000001010
+01011000000000000000000000111100
+00001000000000001000011000001000
+11000010000000000010011101100011
+01111000010011101111110000000000
+01111000001111000111110000000000
+00011001001100010111111000000000
+00011111111100010111111000000000
+00011111111100011111111000000000
+00001000000000001000011000100000
+11000101000101110010011101110001
+01011000000000000000000000000001
+00001000000000001000011000000101
+01111000001111010111110000000000
+00100000001000000010011100101111
+01011000000000000000000000000000
+00001000000000001000011000000101
+00100000001000000010011100101111
+01101111111000001100000101001000
+01101000010010001100000101101010
+10011000010000001111111000000000
+00100000010000000010001101000000
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011000010000000000
+00011000010000100111111000000000
+00001000000000001000011000001000
+00011000010000100111111000000000
+00001000000000001000011000101000
+00100000001000000010011100101111
+11011010011000000010011110000100
+11011010010000000010011110011010
+11011000111000000000000000000101
+00100000001000000010011111011001
+00011010001000001000110000000100
+11101000010000100000000000000110
+00011010001000001000110000110111
+11101111111000001000000000000110
+00011010001000001000101000101011
+11100111111000001000000000000101
+11101111111000010000000000000110
+00011111111010111111111000000000
+10011000010000001001011000000000
+00011010001000001000101000000100
+00011001011000100111111000000000
+11100111111000100000000000000101
+11101111111000010000000000000110
+00011111111010111111111000000000
+00011010001000001000101000000010
+11100111111000010000000000000101
+11101111111000010000000000000110
+00011010001000001000101000101100
+11100111111000010000000000000101
+11101111111000010000000000000110
+01100111111000010100001011110111
+00100000001000000010100100010111
+11101111111000001000000000010001
+01111001001111111111111000000011
+11100111111000001000000000010001
+01100010001000010000011001100010
+01110000000001100100110101000100
+00100000010000000111100000011001
+01101010001000010000011001100010
+00100000011000000000000000000000
+11011010011000000000000000000000
+11011010010000000010011110100110
+11011000111000000000000000000110
+00100000001000000010011111011001
+00011010001000001000110000110111
+11101111111000101000000000000110
+00011010001000001000101000110000
+11100111111000101000000000000101
+00100000001000000010010111111001
+11011010011000000000000000000000
+11011010010000000010011110101111
+11011000111000000000000000000111
+00100000001000000010011111011001
+00011010001000001000110000110111
+11101111111000001000000000000110
+00100000010000000010011110111100
+11100111111000001000000000000101
+00011010001000001000110000111000
+11101111111000001000000000000110
+00100000010000000010011111001010
+11100111111000001000000000000101
+01100010001000010000011001100010
+01110000000001100100110101000010
+00100000010000000111100000011001
+01101010001000010000011001100010
+00100000011000000000000000000000
+00100000010110100010011111000100
+00011010001000001000101000110101
+00100100011101001000000000000000
+01101000010010001100001110111010
+00101000010011111111111000000111
+01111001001000001111111000000111
+00011010001000001000101000110110
+00100000011000000000000000000000
+00011010001000001000110000110101
+11101111111000001000000000000110
+00100100011101001000000000000000
+00011010001000001000110000110110
+11101111111000001000000000000110
+00100000011000000000000000000000
+00100000010110100010011111010011
+01101000010010001100001110111010
+00101000010011111111111000000111
+01111001001000001111111000000111
+00011010001000001000101000110110
+00100100011101001000000000000000
+01111001001111111111111000000111
+00011010001000001000101000110101
+00100000011000000000000000000000
+00011010001000001000110000110110
+11101111111000001000000000000110
+00100100011101001000000000000000
+00011010001000001000110000110101
+11101111111000001000000000000110
+00100000011000000000000000000000
+01000111001011101100000000101011
+11101111111000001000000000010001
+10101111111011000000000000000000
+00100000011000001000000000000000
+00011010001000001000110000011010
+11101000010000010000000000000110
+00011010001000001000110000100000
+11101111111000010000000000000110
+10011000010001100111111000000000
+00100000001000101010011111101001
+00100100001000010010011111101110
+00011111111001100111110000000001
+00100000001000101010011111100111
+00100000011000000000000000000000
+00011010011000100111111000000000
+00100000001000000111110101111011
+11101111111000001000000000010001
+11111001001111111111111000000000
+11100111111000001000000000010001
+00011010010000100111111000000000
+00100000001000000111110101111011
+00011010001000001000110000011010
+11101111111000010000000000000110
+00011010001000001000110000100000
+11101111111000010000000000000110
+10011000010001100111111000000000
+11011000010000001111111111111111
+10011000010001100111110000000000
+00100000001000101010011111101001
+11011000010000001111000000000000
+10011000010001100111110000000000
+00100100001000010010011111101001
+00100000011000000000000000000000
+01101000010010001000000101111111
+01101111111000001000000001001100
+00011111111000110111111000000000
+10011000010000101111111000000000
+00101111111011111111111000000010
+01111001001000001000000000001111
+00100000011000000000000000000000
+01000111001011110100000000101011
+00100000010000000010100100010100
+11000110000110000000000000000000
+00100000010000000010100000101000
+01101111111000001000000001001100
+00101111111011111111111000000100
+01111001001000001000000000101010
+00011111111000110111111000000000
+10011000010000101111111000000000
+00101111111011111111111000000010
+01111001001000001000000000001111
+11000110000001111000000000000000
+01101111111000001000000001001101
+00100000001110100010100000011010
+01101111111000001000000101101000
+11000011000000100010100000011010
+01101000010010100000000101010100
+01101111111000100100010001110001
+10011000010001100111110000000000
+00100000001000101010001100111110
+01100000010010100100010001110001
+01101111111000101100010001101100
+00011111111000001111111000000001
+01111001001000000111111000100111
+01100111111000101100010001101100
+01101000010010001000000101111111
+01111001010000000000010000000010
+01100000010010001000000101111111
+01101111111000001100001100100011
+11000100000000110000000000000000
+01000111001011111100000000101011
+01101111111000001000000001001101
+00100000011110100000000000000000
+01101111111000001000000001001100
+00101111111000000000011000000001
+00100000001000001010111001000011
+00101111111000000000011000000010
+00100000001000001010111000110001
+00100000011000000000000000000000
+01000111001100000100000000101100
+01101000010010001000000101111111
+00101000010011000000000000000101
+00100000011000001000000000000000
+01101111111000001000000001001100
+00011111111000111111111000000000
+10011000010000101111111000000000
+11000100000000011000000000000000
+01111001001111111000010000000101
+01111001010000000000010000000011
+01100000010010001000000101111111
+00101000010000000000011000000011
+00100000011000000000000000000000
+01101111111000001000000101101000
+01111001001000000111111000000100
+01100111111000001000000101101000
+01111001001000000000000000110010
+00100000011000000000000000000000
+01000111001100001100000000101100
+01110000010000101111111100000000
+11011111111000000000000000000000
+01100111111000100100010001110001
+01100111111000101100010001100111
+01111001001000000111111000100111
+01100111111000101100010001101100
+01101111111000001000000101101000
+01111001001111111111111000000100
+01100111111000001000000101101000
+01111001001111111000000000110010
+00100000011000000000000000000000
+11011010001000000000000000000001
+01101111111000001000000001001100
+11000011100000110000000000000000
+11011010001000000000000000000000
+00100000011000000000000000000000
+00011000110000100000101000000000
+01101000010010010100001110111100
+00011000101000100000110000000000
+00100000011000000000000000000000
+01000111001100010100000000101100
+01101111111000001000000101111111
+11000011100000101000000000000000
+00100000010000000010100001110000
+00100000010000000010100111101110
+00100000001110100010100010010100
+11101111111000010000000000000110
+11101000010000010000000000000110
+00011000010000100010001000000000
+10011010001001100111111000000000
+00100000010000000010100001001011
+00100000010000000111110110110010
+00011111111000100000010000000000
+11101000001000001000000000000110
+00011010001000100111111000000000
+10011000110000001111111000000000
+01100111111000010000011001101101
+00100000010000000010100010000100
+00100000010000000010100010010110
+00100000010000000010100111101110
+11101111111000010000000000000110
+00011111111000100010001000000000
+00011000110000100010011000000000
+11101000010000010000000000000110
+00011000010000100010010000000000
+10011010010001100111111000000000
+00100000010000000010100001001011
+00100000010000000111110110110010
+10011010010000001111111000000000
+11100111111000010000000000010011
+10011010001001100111110000000000
+00100100011000101000000000000000
+00100000001000000010101000001000
+00100000010000000010100001110111
+11000110000101001000000000000000
+01101111111000001100001100100011
+11000011000000010010100010000010
+00100000010000000010100111110010
+00100000001110100010100010000010
+00100000001000000010100010000000
+00100000010000000010100111101110
+00100000001110100010100010000010
+11101111111000010000000000000110
+11101000010000010000000000000110
+10011000010001100010001000000000
+00100000010000000010100001001011
+00011000010000100111111000000000
+10011010001001100111110000000000
+00100000001000010010100010000010
+01111001001000000000000000101001
+00100000011000000000000000000000
+01111001001111111000000000101001
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+11011000001000000000000000000001
+00100000011000000000000000000000
+01000111001100011100000000101100
+00011000010000001000010000000001
+00100000010000000010110010101101
+00011000110000001000110111111110
+11101111111000010000000000000110
+11011000010000000010100100000010
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011000110000001000110000000001
+00011000110000100010001000000000
+11101111111000001000000000000110
+00100000011000000000000000000000
+00011000000000000000010000000000
+00011000000000000000001000000001
+01000111001100100100000000101100
+01100000010010001100000101101100
+01101000010010001000000101111111
+01111001001000000000010000000101
+00011000010000010111111011111100
+10011000001000011111111000000000
+01100111111000001000000101111111
+00011111111000010111111000011111
+00101000000011111111111000101001
+01111001001000001111111000000100
+01100111111000001100000101101011
+01101111111000001100000101101011
+00101000001000000000011000000001
+00100100001000001010100010100110
+01101111111000001100000101101100
+00100000011110100000000000000000
+11000101000110010010100010101100
+01101111001000001100000101101100
+01101111111000010000011001101101
+00011111111000100000110000000000
+11011000101000000100000101101101
+00100000001000000111110011001110
+00100000010000000111001101010110
+00100000001000000111001010001101
+11011000111000000000000000000000
+00100000001000000010010010111110
+11011000111000000000000000000000
+00100000001000000010010011000010
+01000111001100101100000000101100
+11000110000001111000000000000000
+11000110000110000000000000000000
+01101111111000001000000001001100
+00011111111000010111111000000011
+01100111111000001100001100110110
+01101111111000001000000001001101
+00100000011110100000000000000000
+01011000000000000000000001001110
+01100111111000010100001100111011
+01000111001100110100000000101100
+01101111111000001100001100110110
+11000001000000000000000000000000
+11000000000000011011000000101000
+00100000010000000010100011001101
+00100100001101000010100010101110
+00100000010000000010100010110000
+01011000000000000000000000000000
+01100111111000010100001100111001
+01101111111000010100001100111011
+00011111111000001000110000000010
+01000111001100111100000000101100
+11101111111000010000000000000110
+11000000000000100010101101101110
+11000000000000110010111010100110
+11000000000000101010111001101000
+00100000011000000000000000000000
+01101111111000001100001100110110
+11000000000000010010100011011100
+11000000000000001010100011110011
+00100000011000000000000000000000
+00100000010000000111110110111100
+11011000010000000000000000000100
+10011111111001100111110000000000
+00100000011000101000000000000000
+11011000010000000000000000000101
+10011111111001100111110000000000
+00100000011000101000000000000000
+11011000010000000000000000000110
+10011111111001100111110000000000
+00100000011000101000000000000000
+00100000001000000111110110111110
+01101111111000010100001100111011
+00011111111000100000110000000000
+11101111111000010000000000000110
+01100111111000010100001100110111
+11101111111000010000000000000110
+00100000010000000010100011010001
+00100100011101000000000000000000
+01101000010010001000000001001101
+01100000010010010100001100111001
+01101111111000010100001100110111
+00011111111000001111111000000100
+10011000010001100111110000000000
+00100000001000101111110110111100
+01101111001000001000000001001101
+11011000101000000000111100000000
+01101111111000010100001100111011
+00011111111000100000110000000000
+00100000010000000111110011001110
+00100000001000000111110110111110
+00100000010000000111110110111100
+01101111111000010100001100111001
+00100100011110100000000000000000
+00100000001000000111110110111110
+00100000010000000010100011101111
+00100100011101000000000000000000
+01101111111000010100001100111001
+11011000101000000000111100000000
+10011000101000001010001000000000
+01101000010010001000000001001101
+10011000010000001111111000000000
+01100111111000010100001100111001
+01101111001000001000000001001101
+00011010001000100000101000000000
+01101111111000010100001100111011
+00011111111000100000110000000000
+00100000010000000111110011001110
+01011000000000000000111100000000
+01100111111000010100001100111011
+01101111111000010100001100110111
+00011111111000001111111000000100
+01101000010010010100001100111001
+10011000010001100111110000000000
+00100000001000101111110110111100
+00100000001000000111110110111110
+01101111111000010100001111101000
+00100000001000000111110101111011
+01000111001101000100000000101101
+01101000010010100000000110000100
+00100000010000000010001100111010
+10011000010001100001011000000000
+00011001011000100111111000000000
+01101000010010010000000110010110
+00011000010100100000010000000000
+00011000010000111000010000000000
+10011000010001100111111000000000
+00100000011000000000000000000000
+00100000010000000010001100111010
+01100111111000100000000110000100
+00100000011000000000000000000000
+01000111001101001100000000101101
+00011010001000001000110001010000
+11101111111000001000000000000110
+00100000010000000010010111000000
+00011010001000001000110000000010
+11101111111000010000000000000110
+10011000010011111111111000000000
+01101000010010010000000001000100
+10011000010011111111111000000000
+11011000010011110100001001000000
+10011000010001101111110000000000
+11011000010000000000011010000010
+01101111111000001100000101001000
+10011000010011111000010000000000
+00011010001000001000110000101011
+11101111111000001000000000000110
+10011000010011111111111000000000
+10011000010000001111111000000000
+01100111111000100100001100011111
+01101111111000010100000010011010
+00100000010000000111110101100100
+00011000000001111000010000000000
+10011000010000001111111000000000
+00011010001000001000101000001110
+11100111111000010000000000000101
+00100000011000000000000000000000
+01000111001101010100000000101101
+00100000010000000010100100110100
+00100000001000000010100101001000
+01110000000001101001001100000010
+11011000010000000010101000000000
+01100000010010010000011010010100
+00100000010000000010110010111110
+00100000011110100000000000000000
+11101111111000001000000000000110
+00011000110000100000101000000000
+01101000010010001100001001101101
+00011000010000100111001000000000
+10011000010001100111110000000000
+00100100001000010010100101000101
+10011000010001100000010000000000
+11011000110000000100001001101110
+00100000010000000111110011001110
+00011000010000100111001000000000
+00100100010000101010100110000000
+00100000011000000000000000000000
+00011111111000100111001000000000
+11011000110000000100001001101110
+00100000001000000111110011001110
+11011010011000000100001101101100
+11011010001000000100001101001101
+00100000010000000010100101010101
+01011000000000000000000000000000
+01111001001101000111111000000000
+01100111111000001000011001001110
+11011010011000000100001110001100
+11011010001000000100001101101101
+00100000010000000010100101010101
+00100000011101000000000000000000
+01101111111000001000011001001110
+00100000001110100010001100111110
+00100000011000000000000000000000
+01000111001101011100000000101101
+00100000010000000111110110111100
+00100000010000000111110010101000
+11011010010000000000000000000000
+11011000101000000000011010000000
+00100000010000000010100101101111
+01101111111000001100001001101101
+00011111111000001000010000000001
+10011010010000001010001000000000
+00011010001000001010001000000010
+00011010001001100111110000011111
+00100100001000010010100101101101
+11100000010000001000000000000101
+11011000010000000000000000001001
+11100000010000001000000000000101
+10011000000000000111001000000000
+00100000010000000111110011001110
+00011010001000100010010000000000
+00011010010000100111111000000000
+01100111111000001000011001111111
+11011000110000000000011001111111
+01011111111111111111111111100000
+10011010011000001000101000000000
+00100000001000000111110010001111
+00100000010000000111110110111110
+00100000001000000010100101100111
+11101111111000001000000000010001
+00100000011110100000000000000000
+00011111111000001111111000000001
+11101000010000001000000000000110
+00011000010001100111110000001001
+00100000001000101010100101111110
+10011010010000001010010000000000
+00011010001000100000110000000000
+10011000000000000111001000000000
+00100000010000000111110011001110
+00011000110000100010001000000000
+00011010001000100111111000000000
+10011010011001100111110000000000
+00100000011000010000000000000000
+00100000001000000010100101101111
+10011010001000001010001000000000
+00100000001000000010100101111010
+01011000000000000000000000100000
+11100111111000001000000000000101
+11000010000000000010100110000000
+00100000011000000000000000000000
+01000111001101100100000000101101
+01111000010101011111110000000000
+00100000001101110010100110001000
+00100100001101101010100110010111
+00100000010000000010010010101001
+01101111111000010100000010011010
+01100111111000010000000101110110
+01101111111000001100001100100011
+11000010100000101010010010110111
+11000101000001111010010010110111
+01101111111000001000000001001101
+00100100001110100010010010110111
+01101111111000001100000101101100
+00100100001110100010010010110111
+01101111111000001000000101101000
+11000010100000101010010010110111
+11000010100000111010010010110111
+11000010100000110010010010110111
+00100000001000000010010010011111
+01101111111000001100000010101000
+00011111111001100111110000011110
+00100100001000010010010010101110
+01101000010010010100000010011010
+00011000010000110000010000000000
+01101111111000010000000101110110
+10011000010000001111111000000000
+01100111111000010000000101110110
+00100000001000000010010010101110
+11011000111000000000000000000000
+00100000001000000010100110110101
+11011000111000000000000000000000
+00100000001000000010100110111010
+11011000111000000000000000000001
+00100000001000000010100110110101
+11011000111000000000000000000001
+00100000001000000010100110111010
+11011000111000000000000000000010
+00100000001000000010100110110101
+11011000111000000000000000000010
+00100000001000000010100110111010
+11011000111000000000000000000011
+00100000001000000010100110110101
+11011000111000000000000000000011
+00100000001000000010100110111010
+11011000111000000000000000000100
+00100000001000000010100110110101
+11011000111000000000000000000100
+00100000001000000010100110111010
+11011000111000000000000000000101
+01101111111000001100001100100011
+11111001001000000111111000000000
+01100111111000001100001100100011
+00100000011000000000000000000000
+11011000111000000000000000000101
+01101111111000001100001100100011
+11111001001111111111111000000000
+01100111111000001100001100100011
+00100000011000000000000000000000
+01011000000100010010001000110011
+01100111111000011100001100100100
+01011000010001000101010101100110
+11100111111000011000000000000101
+01011000011101111000100010011001
+11100111111000011000000000000101
+01011000000000000001000100100010
+11100111111000011000000000000101
+01011000001100110100010001010101
+11100111111000011000000000000101
+01011000000000000000000001100110
+00100000001000000111110111001110
+01011001000000000000001100000010
+01100111111000100100001011000110
+01011000000000010000000000010000
+01100111111000011100001011001010
+01110000010000110000000000000001
+00100000011000000000000000000000
+11011010001000000000000000000000
+11011000001000000000000000000001
+00100000001000000010100111100011
+01000111001101101100000000101101
+11011000001000000000000000000011
+00100000010000000010100111100011
+00011010010000100111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111001101110100000000101101
+00011000000000000000001000000010
+00011010001000001010001000000100
+00100000010000000010100111100011
+00011010001000001010001111111100
+00011010001000100111111000000000
+11100111111000010000000000000101
+00011010010000100111111000000000
+11100111111000010000000000000101
+00100000011000000000000000000000
+01000111001101111100000000101101
+00011010001000001010001000000101
+00100000010000000110100011100101
+00011010001000001010001111111011
+00011010001000100111111000000000
+11100111111000010000000000000101
+01011000000000000000000000000000
+11100111111000010000000000000101
+00011000001000100111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111001110000100000000101110
+00100000010000000110100100011111
+00011111111000100000110000000000
+00100000011000000000000000000000
+01101111111000010100010001100000
+00100000011000000000000000000000
+00100000010000000010100111110111
+00011111111000100000110000000000
+00100000011000000000000000000000
+01101111111000010100010001100011
+00100000011000000000000000000000
+00100000010000000010100111101110
+00011000110000001000110000000101
+00100000011000000000000000000000
+00100000010000000010100111101110
+00011000110000001000110000001001
+00100000011000000000000000000000
+00100000010000000010100111110100
+00011000110000001000110000001001
+00100000011000000000000000000000
+00100000010000000010100111110100
+00011000110000001000110000000101
+00100000011000000000000000000000
+00100000001000000110100100110101
+00100000001000000110100100111000
+00100000001000000110100100111011
+00100000001000000110100100100100
+01100111111001000100001111000100
+00100000001000000010101000011010
+00011000010000010010001011111111
+00100000010000000010101000010000
+00011000010011001010001000000000
+01100010001000001100001110111011
+00100000001000000010101000010001
+01100010001000001100001110111010
+00101010001011111111111000000001
+00100000010000001010101000010110
+00101010001011111111111000000010
+00100000010000001010101000011000
+00100000011000000000000000000000
+11011000111000000000000000001000
+00100000001000000010101000011011
+11011000111000000000000000001011
+00100000001000000010101000011011
+11011000111000000000000000000101
+01101111111001000100001110110010
+11111001001000000111111000000000
+01100111111001000100001110110010
+00100000011000000000000000000000
+00100000010000000010100110100100
+00100000010000000010100111001010
+00100000010000000010100110111110
+00100000001000000010100110101100
+01110000000000011001110100000001
+01110000000000011001111000000001
+01111001001111111000000000110000
+01111001001000000000000000010000
+01111001001111111000000000110010
+00100000010000000010010110001101
+00100000010000000010101000101101
+00100000010000000010101010101101
+01111001001111111000000000010000
+00100000001000000010010110010001
+01000111001110001100000000101110
+01101111111000001100001101000111
+11000001100000001000000000000000
+11011000111000000000000000000010
+00100000010000000111110011110001
+00100100011110100000000000000000
+01101111111000010100001101001000
+01101000010010010100001101001010
+10011000010001100111111000000000
+11011000111000000000000000000010
+00100000010000000111110011100011
+01111000010101001111110000000000
+00100000010000000010101011011010
+00100000010000000010101001001100
+00100100011101101000000000000000
+01000111001110010100000000101110
+01101111111000110000000001001110
+01100111111000110000000101111000
+01101111111000001000000000000010
+00011111111000001111111000000001
+01100111111000001000000000000010
+00100000010000000010101001010011
+00100000011101001000000000000000
+00100000010000000010101100000001
+00100100011101101000000000000000
+01101111111000001000000000000100
+00011111111000001111111000000001
+01100111111000001000000000000100
+01101111111001001000000001010100
+01100111111001001000011001111111
+00100000011000000000000000000000
+01000111001110011100000000101110
+00100000010000000010101101001101
+00100000010000000010011000100011
+01101111111000001000000000000001
+00011111111000001111111000000001
+01100111111000001000000000000001
+00100000011000000000000000000000
+01000111001110100100000000101110
+01101111111000001100001100111110
+11000001100011011000000000000000
+01101111111000110000000101111000
+01101000010010110100001011001110
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000010000001010110
+00100100011000101000000000000000
+00100000010000000010101001100110
+00100000010000000010010011110000
+00100000010000000011000011001011
+01110000000001100100110100010100
+00100000010000000111100000011001
+01110000010000010001010000000000
+01110000000000011011100000000000
+01110000010000110100011100000000
+01110000010000110011111000000000
+00100000001000000010000001000001
+01000111001110101100000000101110
+00011000000000000111111111111111
+00111000000010000000000000000001
+01100111111000101000000110011000
+11011010001000000000000101101000
+00100000010000000010010111111001
+00011000000000000111001000000100
+11011000101000000000000110001100
+00100000010000000111110111101110
+01101111111000010100001011011011
+01100111111000010000000110010110
+00011000000010100111111000000000
+00011111111000010111111000001111
+00011111111001100111110000000100
+00100000001000010010101001110001
+01100111111000001000000110000001
+01000111001110110100000000101110
+01101000010010010100000101100111
+01100000010010010000000101101010
+00011000010000100010011000000000
+00011100010000001111111000000111
+10011010011001101111110000000000
+00100000010000000111110101100100
+00011000000001110010001000000000
+10011010001001100111111000000000
+10011010011000001111111000000000
+01101000010010010100000101100101
+10011000010000001111111000000000
+01100111111000100000000101101100
+10011100010001100010001000000000
+00011010001000001010001111111010
+11011010010000000010001000000101
+01101111111000001100001011010100
+01111101001110100010010000000110
+01101111111000001100001011001101
+01111101001110100010010000000111
+00011010010000100111111000000000
+01100111111000010100000101101011
+01101111111000110100001011011101
+11100111111000110000000000000101
+01101111111000110000000101111000
+11100111111000110000000000000101
+01101111111000100000000110001100
+11100111111000100000000000000101
+00011000000010100111111000000000
+11100111111000010000000000000101
+00011000000010100111111000000000
+11100111111000001000000000000101
+00011000000000000111111000000010
+11100111111000001000000000000101
+00011010001010110111111000000000
+11100111111000010000000000000101
+00011010011010110111111000000000
+11100111111000010000000000000101
+01000111001110111100000000101110
+01011000000000000000000000000000
+11100111111000010000000000000101
+01101111111000010100001011011011
+11100111111000010000000000000101
+01101111111000101000000110011000
+11100111111000101000000000000101
+01101111111000001000000110000001
+11011000010000000000000010100000
+10011000010000011111111000000000
+11100111111000001000000000000101
+00100000010000000010011100011100
+01011000000000000100000101101011
+00011111111000001000110000010010
+11101111111000011000000000000110
+01100111111000011000000110010000
+00100000011000000000000000000000
+01110000000000000000011100100100
+01110000000001100111111100000000
+00100000010000000010101011010100
+00100000010000000010101010110010
+00100000001000000010101011010111
+01000111001111000100000000101111
+01101111111000001100001110001100
+00100000011110100000000000000000
+11011000111000000000000000000000
+00100000010000000111110011110001
+00100100011110100000000000000000
+01111000001010000111110000000000
+00100000010000000010101011011010
+00100000010000000010101101001101
+00100000010000000010101011100011
+00100100001101101010101011000100
+01101111111000001000000000000011
+00011111111000001111111000000001
+01100111111000001000000000000011
+01101111111000001000000001001100
+00011111111000010111111000001111
+11000000000000011010101100010010
+11000000000000101010101100100101
+01000111001111001100000000101111
+01101111111000001000011001111111
+01101000010010001100001110010111
+10011000010001100111110000000000
+00100100001000101010101010110010
+01101111111000001100001111001111
+00011111111001100111110000001110
+00100000001000101011101011011001
+00011000000010100111111000000000
+11011000010000000000000111111111
+10011000010000010111111000000000
+00011111111000001111111011111010
+00100000010000000111110010010011
+11011000111000000000000000000000
+01101111111000010100001110001101
+00100000001000000111110011100011
+11011000101000000000011010001111
+11011000110000000100000101101011
+00100000001000000111110010001110
+11011000110000000000011010001111
+11011000101000000100000101101011
+00100000001000000111110010001110
+01000111001111010100000000101111
+01111000010101001111110000000000
+01011000100011101000100110111110
+00011111111011010111111000000000
+00011111111000011111111011010110
+10011000000000000001001000000000
+01011000010101010101010101010101
+01100111111000011000000110010000
+00100000011000000000000000000000
+01000111001111011100000000101111
+01101111111000001100001110001111
+01101000010010001100001110010000
+00011000010100100000010000000000
+00011000010010111000010000000000
+10011000010000001000010000000000
+01100000010010001100000101101011
+11000000000000001010101011110100
+01101000010010001100001101001100
+00011000010000001111111000000110
+01100111111000001100000101101100
+01101111111000110100001011011101
+01100111111000110100000101101101
+00011000010000100111001000000000
+11011000110000000100001101001101
+00100000010000000111110011001110
+00100000001000000010101011111010
+01011000000000000000000000001100
+01100111111000001100000101101100
+01101111111000110100001011011101
+01100111111000110100000101101101
+01101111111000110100000100010110
+11100111111000110000000000000101
+01000111001111100100000000101111
+01101111111000001000000000000000
+00011111111000001111111000000001
+01100111111000001000000000000000
+11011011011000000000011100001000
+01111000010101101111110000000000
+00100000001000000010011100000111
+01000111001111101100000000101111
+01101111111000001100001110011000
+11000001100000001000000000000000
+01101111111000001000000000000000
+00011111111000001111111000000001
+01100111111000001000000000000000
+11011000010000000000110000000011
+01101111111000001100001110011001
+01111101001110100000010000000110
+00011010001000100111111000000000
+01111101001110100000010000000111
+01100000010010010100000101101011
+01101111111000110100001011011101
+11100111111000110000000000000101
+01101111111000110000000101111000
+11100111111000110000000000000101
+00100000001000000010011100000111
+01000111001111110100000000101111
+01101111111000110000000001010100
+01101000010010110100001011011101
+10011000010001100111110000000000
+00100100011000101000000000000000
+11011000010000000000000000000100
+01101111111000001100001110010000
+01111101001110100000010000000110
+01100000010010001100000101101011
+01101000010010001100001101101100
+00011000010000001111111000000110
+01100111111000001100000101101100
+01101111111000110100001011011101
+01100111111000110100000101101101
+11011000110000000100001101101101
+00011000010000100111001000000000
+00100000010000000111110011001110
+00100000010000000010011100011100
+00100000001000000010101011000100
+01101111111000110000000001010100
+01101000010010110100001011011101
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000010100001000110
+01100010001000001100001011001101
+01101111111000110000000001001110
+01100111111000110000000101111000
+01101111111001000000000001011010
+01100111111001000000000110001100
+01101000010010010000000001100010
+01000111001111111100000000101111
+00011000010010111000010000000000
+01101111111000010000000001100100
+00011111111010111111111000000000
+01100111111000010000000101101010
+01100111111000100000000101101100
+10011000010001100111111000000000
+00011111111000001101000111111110
+01101111111001001000000001100110
+01100111111001001000000110010100
+01101111111000001000000001101111
+00011111111000010000010000011111
+01100000010010001000000110000001
+00011111111100011000010000000000
+00011000010000110000010000000000
+01100000010010001000000110111000
+11011010001000000000000101101000
+00100000010000000010100100010111
+11011010001000000000000101101000
+00100000010000000010010111111001
+00100000010000000010010011111100
+00100000010000000010000001010110
+00100100011000101000000000000000
+01000111010000000100000000110000
+00100000010000000010000011110111
+00100000010000000010111010000101
+01110000000001100100110100010100
+00100000010000000111100000011001
+00100000001000000010000001000001
+01000111010000001100000000110000
+01101111111000001000000000000111
+11000000000100101010101101011100
+11000000000100110010101101100101
+11000000000100111010101101010010
+01101000010010001100001110010111
+00101000010011111111111000000000
+00100000001000001010101101100001
+00101000010011111111111000000001
+00100000001000001010101101101010
+01110000000000000000011100100111
+01101111111000001000011001111111
+01111001001000000111111000000010
+01100111111000001000011001111111
+00100000011000000000000000000000
+01101000010010001100001110010111
+00101000010011111111111000000001
+00100000001000001010101101101010
+00101000010011111111111000000010
+00100000001000001010101101010111
+01110000000000000000011100100101
+01101111111000001000011001111111
+01111001001000000111111000000000
+00100000001000000010101101011010
+01101000010010001100001110010111
+00101000010011111111111000000010
+00100000001000001010101101010111
+00101000010011111111111000000000
+00100000001000001010101101100001
+01110000000000000000011100100110
+01101111111000001000011001111111
+01111001001000000111111000000001
+00100000001000000010101101011010
+00011000110000100010001000000000
+01101111111000001100001111001111
+11000000000000110110010101011000
+11000000000001111100100100001011
+11000000000001000101010001101001
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110011011
+11000000000000010010101110001011
+11000000000000011010101110010000
+11000000000000100010101110010011
+11000000000000110010101111010101
+11000000000001000010110000100010
+11000000000001010010110011110111
+11000000000001100010110100101010
+11000000000010000010110101000001
+11000000000010010010110110000110
+11000000000010110010110110101100
+11000000000011000010110110111111
+11000000000011110010110111000100
+11000000001010010010110111001000
+00100000011000000000000000000000
+00011000000000000010001000000011
+00100000010000000010110111101110
+01011000000000000000000000000010
+11100111111000001000000000000101
+01101111111000010100001011100011
+11100111111000010000000000000101
+00100000011000000000000000000000
+00100000010000000010101110010000
+00011000000000000010001000000011
+00100000010000000010110111101110
+01011000000000000000000000000011
+00100000001000000010101110000111
+00011111111011001111111000000000
+01100111111000010100001011100101
+00100000011000000000000000000000
+00100000010000000010111000011111
+00100000010000000111110110111100
+00100000001000000010101110100001
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+10011010010001100111110000000000
+00100000011000101000000000000000
+00100100011000010000000000000000
+10011010011001100111110000000000
+00100000011000101000000000000000
+00100000001000010111110111001100
+00011000000000000111110000000001
+00100000011000000000000000000000
+11011001011000000000000000000011
+00100000010000000010110010100101
+00100000010000000010101110010110
+00100000001110100010101111010011
+00100100001000010010101111010001
+00011000110000001000110111111110
+00100000010000000111110001101111
+00100000010000000111110001100110
+00100100001101000010101111000001
+00100000010000000111110001010011
+01100001011000100000011001011110
+00011000000000000010001000011110
+00100000010000000010110111101110
+01101001011000100000011001011110
+00100000010000000111110001100010
+00100000010000000111110110111110
+01011000000000000000000000000101
+11100111111000001000000000000101
+00100000010000000111110001101001
+11101111111000010000000000000110
+11101010001000001000000000000110
+00011010001001100111110000010000
+00100000001000101010101110111101
+00011010001001100111110000000010
+00100100001000101010110111100001
+01011000000000000000000000000001
+11100111111000001000000000000101
+00100000001000000010101111000110
+01011000000000000000000000000010
+11100111111000001000000000000101
+11011001011000000000000000000001
+00100000001000000010101111000110
+00100000010000000111110001101001
+11101111111000010000000000000110
+11101111111000001000000000000110
+10011010001001100111110000000000
+00100100001000101010101111010011
+00100000010000000111110001101001
+11101111111000010000000000000110
+00011111111000010111111011111111
+11100111111000010000000000000101
+11101111001000001000000000000110
+00100000010000000111110011011100
+00100000010000000111110001101100
+00011001011000001001011111111111
+00100000001000101010101111010011
+00100000010000000010110010111011
+00100000001000000010101110100011
+00100000010000000010110010111011
+00100000001000000010101111001111
+00100000001101000010110111100001
+00100000001000000010111000010010
+00100000010000000010111000011111
+11101111111000010000000000000110
+01100111111000010100001110100010
+00100000010000000111110001101111
+11011000101000000000011010010011
+01101111111000010100001100110111
+00011111111000001111111111111001
+00100000010000000010111000101101
+00100000001000000010101111101000
+01111000010101000111110000000000
+01101000010010010000011010001111
+01101111111000010000011010010001
+10011000010001100111110000000000
+00100100001000010010101111100101
+00011000010000100111111000000000
+11000001100000000000000000000000
+01111000001101000111110000000000
+01110000000000011011100100000001
+00100000001000000010110111100011
+00100000010000000010101111011110
+00100000011101000000000000000000
+01101000010010010100001110100010
+01011000000000000010100000000000
+10011000010001100111110000000000
+00100000001000101010101111101111
+00100000001000000010110111100001
+01110000010000111001111000000000
+01101000010010010000011010001111
+01100000010010010000011001010110
+00100000010000000010110011100010
+00100100001110100010110111100001
+01101000010010010000011001010110
+00100000010000000010110011100010
+00100100001110100010110000001000
+00011000110000100010001000000000
+01101111111000001000011010100100
+00011111111000100111001000000000
+01101000010010001000011010010011
+10011000010001100111110000000000
+00100100001000101010110000000100
+11011010010000000000011010010100
+00100000010000000111110101100110
+00100000001000101010110000001011
+01101111111000010000011010101100
+01101000010010010100001110100010
+10011000010001100111110000000000
+00100000001000101010110000010011
+01101111111000010000011001010110
+00011111111000001111111000000001
+01100111111000010000011001010110
+00100000001000000010101111110100
+01101111111000001100001110011110
+11000000000000001010110000010011
+00100000001000000010110111100001
+01101111111000010000011010101100
+01101000010010010100001110100010
+10011000010001100111110000000000
+00100100001000101010110000000100
+01110000010000111001111000000001
+01101000010010010000011001010110
+01100000010010010000011010100111
+00100000001000000010110000000100
+01101111111000001100001110011110
+11000000000000000010110000000100
+01110000010000111001111000000010
+01101000010010010000011001010110
+00011000010000001000010111111111
+01100000010010010000011010101001
+11011010001000000000000000000101
+00100000010000000010110111101110
+01011000000000000000000000000111
+11100111111000001000000000000101
+01101111111000010000011010100111
+11100111111000010000000000000101
+01101111111000010000011010101001
+11100111111000010000000000000101
+00100000011000000000000000000000
+00100000010000000010111000011111
+00100000010000000010111000101000
+00100000001000000010110000100101
+01101000010010010000011010001111
+01100000010010010000011001010110
+00100000010000000010110010100101
+00100000010000000010110010110000
+00011000110000001000110111111110
+00011000110000100111111000000000
+01100111111000010000011010100101
+01101000010010010000011010010100
+01011000000000000010101000000000
+10011000010001100111110000000000
+00100000001000101010110010010000
+01011000000000000010100000000011
+10011000010001100111110000000000
+00100100001000101010110001111010
+11011001011000000000000000000010
+00100000010000000010110111110101
+00100100001000010010110001010111
+01101000010010010000011001010110
+00100000010000000010110011100000
+00100100001110100010110001010111
+00100000010000000010110111111001
+00100100001000101010110001010101
+00100100001101000010110001011001
+01111000010101000111110000000000
+00100000010000000010111000100100
+00011111111000100010001000000000
+00100000010000000010110111101110
+01011000000000000000000000001001
+11100111111000001000000000000101
+00011000101000100110000000000000
+00011000101000001000101000000001
+00100000010000000010110001100111
+00100000010000000010110111110001
+00100000010000000010110011100000
+00100000010000000010110001101110
+01101111111000001000011010101011
+00011111111000001010001000000101
+11100010001000001000000000110000
+00011010001001100111110000000111
+00100100010000101111110111000000
+00100000010000101111110111000010
+00100000010000000010111000100100
+00011111111000001111111111111110
+10011010001001101111110000000000
+00100000010000000111110101100100
+00011000000001111001011000000000
+00011001011000001001011111111111
+00100000001000101010110001010111
+00100000010000000010110111110001
+00100000001000000010110000110100
+00100000001101000010110111100001
+00100000001000000010111000010010
+00100000010000000010111000000010
+00100000010000000010110111110001
+00100000010000000010110011100000
+00100000010000000010110101110100
+00100100001110100010110001010111
+00100000010000000111110001100110
+01101111111000010000011001010110
+00011111111000001111111111111111
+11100111111000010000000000000101
+00100000010000000010111000001110
+00100000010000000010110001101110
+00011001011000001001011111111111
+00100000001000101010110001010111
+00100000001000000010110001010101
+01101111111000010000011001010110
+11100111111000010000000000000101
+01101111111000001000011010100100
+00011111111000100111001000000000
+00100000010000000111110001101001
+00100000010000000111110011001110
+00100000001000000111110001101100
+00100000010000000111110001100110
+01101111111000010000011001010110
+11100111111000010000000000000101
+00100000010000000111110001101100
+01101111111000001000011010101011
+00011111111000100111001000000000
+00100000010000000111110001100110
+00100000010000000111110001101001
+10011111001001100000110000000000
+00011000110000001000110111111111
+00100000010000000111110011001110
+00100000001000000111110001101100
+01000111010000010100000000110000
+00100000010000000010110010111110
+00100000001110100010110111100001
+00011000110000100010011000000000
+00100000010000000010111000100100
+00011010011000100000110000000000
+11101000010000001000000000000110
+00011000010000001000010000000100
+00100000010000000111110110110010
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000111110001101111
+00100000010000000010110111101110
+01011000000000000000000000001001
+11100111111000001000000000000101
+00011010011000001111111111111110
+00011111111000001111001111111110
+11100111111000001000000000000101
+01101111111000010000011010111100
+11100111111000010000000000000101
+00100000010000000111110001101001
+00100000001000000111110011001110
+00100000010000000010110010111110
+00100000001110100010110111100001
+00011000110000001000110111111011
+11101111111000010000000000000110
+01100111111000010000011001010110
+00100000010000000010111000100100
+01101000010010001100001001101101
+00011000010000001000010000000100
+00100000010000000111110110110010
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000010110111101110
+01011000000000000000000000001001
+11100111111000001000000000000101
+00011010011000001111111111111110
+00011111111000001111001111111110
+11100111111000001000000000000101
+01101111111000010000011001010110
+11100111111000010000000000000101
+11011000110000000100001001101110
+00100000001000000111110011001110
+01000111010000011100000000110000
+01101111111000010000011010001111
+10011000000000000010010000000000
+01101111111000010000011010010001
+10011000000000000010011000000000
+01101111111000010100001011111001
+10011000000000000000110000000000
+00100000001000000111110110111100
+00100000010000000010110010110000
+00100000001000101010110010111011
+00100000011000000000000000000000
+01000111010000100100000000110000
+01101111111000010100001011111001
+10011000000000000000110000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000010000000010110010111011
+00100000010000000010110010111011
+00100000001000000010110010110011
+11101111111000001000000000000110
+10011000110000001000110000000000
+00100000011000000000000000000000
+01000111010000101100000000110000
+01101111111000010100001011111001
+10011000000000000000110000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+01100111111000010000011010111100
+11101111111000001000000000000110
+00011000110000100000101000000000
+10011000110000001000110000000000
+01101000010010001000011010010011
+10011000010001100111110000000000
+00100100001000101010110011010001
+00011111111000100111001000000000
+00011000101000100010010000000000
+11011010001000000000011010010100
+00100000010000000111110101100110
+00100000011000101000000000000000
+01101111111000001000011010010011
+10011000101000001000110000000000
+00100000010000000010110010111011
+00100000001000000010110011000001
+11011000010000000000000000000001
+01101111111000010100001011111001
+10011000000000000000110000000000
+00011000110000100000101000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000011110100000000000000000
+00011111111000001000010000000001
+00100000010000000010110010111011
+00100000010000000010110010111011
+00011000110000100000101000000000
+00100000001000000010110011011000
+01101111111000010000011010100101
+00100000001000000010110011100100
+01000111010000110100000000110000
+01101111111000010100001011111001
+10011000000000000000110000000000
+11101111111000010000000000000110
+00011111111000010111111011111111
+00100000001110100010110011101101
+10011000010001100111110000000000
+00100000001000101010110011101110
+00100000010000000010110010111011
+00100000010000000010110010111011
+00100000001000000010110011100101
+00100000001000000111110111001010
+11101111111000001000000000000110
+01100111111000001000011010101011
+00011111111000100111001000000000
+11011000101000000000011010101100
+00100000010000000111110011001110
+11101111111000001000000000000110
+01100111111000001000011010100100
+00100000010000000111110001101111
+00100000001000000111110111001100
+00100000010000000010110110100101
+01101000010010010100001110011100
+01101111111000001100001100100011
+11000010100000011010110100100000
+00100000010000000010110010110000
+00100100001000101010110111100001
+00100000010101000010110100100110
+00100000011101000000000000000000
+00100000010000000010110010111011
+00011000110000001000110111111110
+11101111111000010000000000000110
+11011000010000000010101000000000
+10011000010001100111110000000000
+00100000001000101010110100010100
+00011000110000100010011000000000
+00100000010000000010111000100100
+00011010011000100000110000000000
+11101000010000001000000000000110
+00011000010000001000010000000001
+00100000010000000111110110110010
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000111110001101111
+00100000010000000010110111101110
+01011000000000000000000000001011
+11100111111000001000000000000101
+00011010011000001111001111111111
+00100000010000000111110001101001
+00100000001000000111110011011100
+00100000010000000010111000100100
+01101000010010001100001001101101
+00011000010000001000010000000001
+00100000010000000111110110110010
+00011111111000100010011000000000
+00011111111000100010001000000000
+00100000010000000010110111101110
+01011000000000000000000000001011
+11100111111000001000000000000101
+00011010011000001111001111111111
+11011000110000000100001001101110
+00100000001000000111110011011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110011111011
+00100100001101000010110011111011
+01110000000000011011100100000101
+00100000001000000010110111100011
+00011000110000001000110111111110
+11101111111000010000000000000110
+11000010100001110010110100100100
+00100000001000000111110110111110
+11101111111000010000000000000110
+01100111111000010000011010010011
+10011000000000000010001000000000
+01101000010010010100001110011100
+00100000010000000010110010101101
+00100000001110100010110111100001
+11101111111000001000000000000110
+10011010001001100111001000000000
+00100100001000010010110111100001
+00100000010000000111110001101111
+00100000010000000010111000100100
+00011111001000001000010000000001
+00100000010000000111110110110010
+00011111111000100010001000000000
+00011111111000100010011000000000
+00100000010000000010110111101110
+01011000000000000000000000001101
+11100111111000001000000000000101
+00011010011000001111001111111111
+01101000010010010000011010010011
+00100000010000000111110001101001
+10011000010000001000110000000000
+00100000001000000111110011001110
+00100000010000000010111000011111
+00100000010000000010111000101000
+00100000001000000010110101000100
+11011001011000000000000000000010
+01101000010010010000011010001111
+01100000010010010000011001010110
+00100000010000000010110010110000
+00011000110000001000110111111110
+00011000110000100111111000000000
+01100111111000010000011010100101
+00100000010000000010110111110101
+00100100001000010010110101111100
+01101000010010010000011001010110
+00100000010000000010110011100000
+00100100001110100010110101111111
+00100000010000000010110111111001
+00100100001000101010110101110010
+00011001011000100111111000000000
+11000000000000000010110101111111
+00100100001101000010110101101000
+01111000010101000111110000000000
+00100000010000000010111000100100
+00011111111000100010001000000000
+00100000010000000010110111101110
+01011000000000000000000000010001
+11100111111000001000000000000101
+01101111111000001000011010100100
+00011111111000001010001000000100
+11100010001000001000000000000101
+00100000010000000111110001101100
+00011010001001100111110000000110
+00100100010000101111110111000000
+00100000010000101111110111000010
+00100000010000000010111000100100
+00011111111000001111111111111110
+10011010001001101111110000000000
+00100000010000000111110101100100
+00011000000001111001011000000000
+00100000001000000010110101101110
+00100000010000000010110101110110
+00100100001110100010110101111111
+01101111111000010000011001010110
+00011111111000001111111111111111
+01100111111000010000011010101001
+00100000010000000010111000001000
+01101111111000010000011001010110
+01100111111000010000011010100111
+00100000010000000010111000000010
+00011001011000001001011111111111
+00100000010000000010110111110001
+00100000001000000010110101001011
+01101111111000001000011010101011
+00100000001000000010110101110111
+01101111111000001000011010100100
+00100000001101100010110101111010
+00011111111000001111111111111110
+00100000011000000000000000000000
+00011111111000001111111111110000
+00100000011000000000000000000000
+01101111111000010000011001010110
+01100111111000010000011010101001
+00100000001000000010110110000011
+01101111111000010000011001010110
+00011111111000001111111111111111
+01100111111000010000011010101001
+00100000001000000010110110000011
+00100000001101000010110111100001
+00100000010000000010111000001000
+00100000001000000010111000010010
+00011000110000100010001000000000
+01101111111000010100001100110111
+00011111111000001010010111111101
+00100000010000000010100100001000
+01000111010000111100000000110000
+00100000010000000010110110100101
+01101000010010010100001110011100
+00100000010000000010110010110000
+00100100001000101010110110100011
+00100000010101000010110110011111
+00100000011101000000000000000000
+01101111111000001100001100100011
+11000011000000100010110110011010
+01101000010010010100001110011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110110011010
+00100000010000000010110110100101
+00100100001101000010110110011010
+00100000001000000010110100100100
+00011000000000000010001000000001
+00100000010000000010110111101110
+01011000000000000000000000010011
+11100111111000001000000000000101
+00100000011000000000000000000000
+00011000110000001000110111111110
+11101111111000010000000000000110
+11000010100001111010110100100100
+00100000001000000111110110111110
+01110000000000011011100100000001
+00100000001000000010110111100011
+01000111010001000100000000110001
+00100000010000000111110110111110
+01101111111000001100001100000000
+11000001000000000000000000000000
+01101111111000001100000001000000
+11000011100000100000000000000000
+00100000001000000111110110111100
+00011000110000001010001000000010
+01101111111000010100001100110111
+00011111111000001010010111111011
+00100000010000000010100100001000
+00100000001000000010110110110001
+01101111111000010100001100110111
+00011111111000100010001000000000
+00100000010000000010110111101110
+01011000000000000000000000010111
+11100111111000001000000000000101
+01101111111000010100001110011100
+11100111111000010000000000000101
+01101111111000010100001100110111
+00011111111000001111001111111011
+01101111111000010100001100111011
+00011111111000001000110000000111
+11101111111000010000000000000110
+11100111111000010000000000000101
+00100000001000000111110011001110
+00011000000000000010001000000001
+00100000010000000010110111101110
+01011000000000000000000000011001
+11100111111000001000000000000101
+00100000011000000000000000000000
+01101111111000001100001110011010
+01111001001111111111111000000000
+01100111111000001100001110011010
+00100000011000000000000000000000
+00011000110000100010001000000000
+01101111111000010100001100110111
+00011111111000001010010111111101
+00100000001000000010100100001000
+00011000010000100010011000000000
+00011010001000001010001000000011
+00100000010000000010110111101110
+00011010001000001010001111111101
+01011000000000000000000000011011
+11100111111000001000000000000101
+00011010011000100000010000000000
+11100000010000010000000000000101
+00100000011000000000000000000000
+01101111111000001100001110011010
+01111001001000000111111000000000
+01100111111000001100001110011010
+00011000010000100010011000000000
+00011010001000001010001000000011
+00100000010000000010110111101110
+00011010001000001010001111111101
+01011000000000000000000000011101
+11100111111000001000000000000101
+00011010011000100000010000000000
+11100000010000010000000000000101
+00100000011000000000000000000000
+01000111010001001100000000110001
+01110000000000011011100100001010
+00011000000000000010001000000101
+00100000010000000010110111101110
+01011000000000000000000000000001
+11100111111000001000000000000101
+01101111111000001100001110011011
+11100111111000001000000000000101
+01101111111000010100001110011100
+11100111111000010000000000000101
+01101111111000001000000110111001
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000111010001010100000000110001
+00011000000000000010010000000100
+00100000001000000010100111011001
+01101000010010010000011001010110
+00011000010000001000010000000001
+01100000010010010000011001010110
+00100000011000000000000000000000
+01101000010010010000011001010110
+01101111111000010000011010010001
+10011000010001100111110000000000
+00100000011000000000000000000000
+01000111010001011100000000110001
+01101000010010001000011010010011
+11011010001000000000011010010100
+01101111111000001000011010101011
+00011111111000100111001000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+11011010010000000000011010101100
+00100000001000000111110101100110
+01000111010001100100000000110001
+01101111111000001000011010100100
+01100111111000001000011001111111
+00011111111000100111001000000000
+00100000010000000111110001101001
+00100000001000000111110011001110
+01000111010001101100000000110001
+00100000010000000111110001100110
+01101111111000010000011010100111
+11100111111000010000000000000101
+01101111111000010000011010101001
+11100111111000010000000000000101
+01101111111000001000011001111111
+00011111111000100111001000000000
+00100000010000000111110011001110
+00100000001000000111110001101100
+01000111010001110100000000110001
+00100000010000000111110001100110
+00100000010000000010100111111111
+00011000101000100111111000000000
+10011000110001100010001000000000
+00100000010000000010101000000010
+00011010001000100111111000000000
+11100111111000010000000000000110
+00011010001000001010001000000100
+00100000010000000010100111110100
+00011010001000100111111000000000
+11100111111000001000000000000110
+00100000011000000000000000000000
+00011111111011001111111000000000
+01100111111000010000011010001111
+11101111111000010000000000000110
+01100111111000010000011010010001
+00100000011000000000000000000000
+01000111010001111100000000110001
+01101111111000010100001011100101
+01101000010010010100001011100011
+00100000001000000111110110110010
+01000111010010000100000000110010
+00100000010000000111110001101111
+11011000101000000000011010010011
+01101111111000010100001100110111
+00011111111000001111111111111011
+11100111111000001000000000000101
+00011111111000100111001000000000
+00100000010000000111110001101001
+00100000001000000111110011001110
+01101111111000010000000001010000
+11000001100000100000000000000000
+01101111111000001100001110011010
+01111001001000000111111000000001
+01100111111000001100001110011010
+01101111111000011000000001010010
+01100111111000011100001110011011
+01111001001000000000000000001111
+11000000000010010010111001001100
+11000000001010010010111001010001
+11000000000011000010110110111111
+11000000000000010010101110001011
+11000000000011110010110111000100
+01111001001111111000000000001111
+01101111111000001100001110011010
+01111001001111111111111000000001
+01100111111000001100001110011010
+00100000011000000000000000000000
+01101111111000001100001110011010
+11000100000000001000000000000000
+01111001001000000000000000001111
+00100000010000000010111001011100
+00100000010000000010111001100010
+00100000010101000010111000111111
+01101111111000001100001110011011
+11000000000010010010110110001010
+00100000011000000000000000000000
+00100000010000000010111001010001
+00100000001000000010111001001110
+00100000010000000010111001100010
+00100100011101000000000000000000
+00100000001000000010110110001010
+01000111010010001100000000110010
+00100000010000000010111001010101
+11011010001000000000000001010101
+00100000001000000010100100001000
+01101111111000001000000001001101
+00011111111000001010010111111001
+00011111111000001111111111111100
+01100111111000010100001100111001
+01101000010010010000000001001110
+01100000010010010100001100110111
+00100000011000000000000000000000
+01101010010000001000000001001101
+01101111111000010100001100111001
+10011010010000001000010000000000
+01100000010010010100001100111001
+11011010001000000000000001001110
+00100000001000000010100100001000
+00100000010000000111110110111110
+01101111111000010100001100111001
+01101000010010010100001100110111
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000001000000111110110111100
+11101111111000001000000000000110
+11101000010000001000000000000110
+11101000010000010000000000000110
+11000000000010011010111001101101
+00100000011000000000000000000000
+11101111111000010000000000000110
+01100111111000010100001101000000
+01110000000001100100110101000000
+00100000001000000111100000011001
+11011010001000000000000000001100
+11011010011000000000000000010010
+00100000010000000010111001111001
+01011000000000000000000000001000
+11100111111000010000000000000101
+01101111111001000100001011010101
+11100111111001000000000000000101
+00100000011000000000000000000000
+00100000010000000010111010000001
+11011010010000000000000000000101
+00100000010000000010100111011001
+00011010011000100111111000000000
+11100111111000001000000000000101
+01101111111000001100001100111111
+11100111111000001000000000000101
+00100000011000000000000000000000
+01101111111000001100001100111111
+00011111111000001111111000000001
+01100111111000001100001100111111
+11000001100000000000000000000000
+01110000010000110011111100000001
+00100000011000000000000000000000
+01101111111000001100001100000000
+11000000000000000010111010010110
+11000000000000001010111010011001
+11000000000000010010111010011011
+11000000010000001010111010001111
+11000000010000010010111010010001
+11000000010000011010111010010100
+00100000011000000000000000000000
+01110000010000101100100100001101
+00100000001000000010111010010111
+01110000010000101100100100001101
+01110000010000101100011100000001
+00100000011000000000000000000000
+01110000010000101100100100001101
+00100000001000000010111010011100
+01110000010000101100100100000000
+01110000010000101100011100000011
+00100000011000000000000000000000
+01110000010000101100100100000101
+00100000001000000010111010010111
+01110000010000101100100100000101
+01110000010000101100011100000000
+00100000011000000000000000000000
+01101111111000001100010010000011
+01111001001000000111111000000000
+01100111111000001100010010000011
+00100000011000000000000000000000
+01101111111000001100010010000011
+01111001001111111111111000000000
+01100111111000001100010010000011
+00100000011000000000000000000000
+11101111111000001000000000000110
+11000000000000001010111010111010
+11000000000000011010111011100001
+11000000000000100010111100000010
+11000000000000101010111100001111
+11000000000000111010111101111000
+11000000000001000010111101100100
+11000000000001001010111101110100
+11000000000001010010111101111000
+11000000000001011010111101111000
+11000000000001100010111101111001
+11000000000001101010111101111110
+00100000011000000000000000000000
+00011000000000000010001000000010
+00100000010000000011000000100101
+01011000000000000000000000001011
+11100111111000001000000000000101
+01101111111000001100001011001001
+11100111111000001000000000000101
+00100000011000000000000000000000
+01100111111000001100001010111111
+11101111111000110000000000000110
+11100111111000110000000000000101
+01101111111000001100001100000000
+11000000000000000010111100010101
+00100000010000000010111011011100
+01101111111000001100010010000001
+00100000001110100010111011000110
+01101111111000001100001011000010
+11000011000000011011011110010100
+01101111111000001100001100000000
+11000011000000111011011110010100
+01110000010000101111111000000011
+01101111111000001100001011000000
+11000000000000000010111011001110
+11000000000000001010111011001110
+11000000000000011010111011001110
+01101111111000001100001100000000
+11000000000000010010111011010001
+11000001010000011000000000000000
+11011111111000000000000000000000
+01100111111000100100001100000001
+00100000011000000000000000000000
+01101111111000001100001100100011
+11000010100000000010111011011010
+11011010001000000100001100000001
+00011010001000100000101000000000
+11011111001000000000000000000011
+00100000010000000111110111101110
+01101111111000010100001100000011
+00011111111000010111111000000111
+01100111111000010100001100000011
+01110000000001100100110100110100
+00100000001000000111100000011001
+00011000000000000010001000000111
+00100000010000000011000000100101
+01101111111000111100001011000110
+11100111111000111000000000000101
+00100000011000000000000000000000
+01110000010000101111111000000101
+11011000101000000100001010011101
+00100000010000000111110010010001
+01101111111000001100001100000000
+11000000000000100010111011101001
+11000000010000011010111011101011
+11000000010000100010111011101110
+00100000001000000010111011110001
+01110000000001100100110101000011
+00100000001000000111100000011001
+01110000010000101111101100000010
+01110000010000101111110000001000
+00100000011000000000000000000000
+01101111111000100100001100000001
+00100000001110100010111011101001
+00100000001000000010111011101011
+01110000010000101111111000000110
+01101111111000001100001100000000
+11000010100000111010111011111010
+00100000010000000111001001000100
+00011000000000000010001000010001
+00100000010000000011000000100101
+01011000000000000000000000000011
+11100111111000001000000000000101
+00100000001000000111001101100011
+11011000101000000100001010101101
+00100000010000000111110111101101
+00100000010000000111000110100100
+00011000000000000010001000010001
+00100000010000000011000000100101
+01011000000000000000000000000011
+11100111111000001000000000000101
+00100000001000000111000111100000
+00011000110000100010001000000000
+01101111111000001100001100000000
+11000010100000111010111100010111
+00011010001000100000110000000000
+00100000010000000111001000111100
+00100000001000101010111100101100
+01110000000000011011101000000100
+00011000000000000010001000000010
+00100000010000000011000000100101
+01011000000000000000000000000101
+11100111111000001000000000000101
+01101111111000001000000110111010
+11100111111000001000000000000101
+01000111010010010100000000110010
+00011000000000000000111000000111
+00100000010000000111110011100010
+01110000010000101111111000000000
+01110000000001100100110100110000
+00100000001000000111100000011001
+01110000000000011011101000000101
+00100000001000000010111100001001
+11011000101000000000000101011000
+00011010001000100000110000000000
+00100000010000000111110010010001
+01101111111000001100001100000000
+11000000010000011010111100100011
+11000000010000100010111100100011
+00100000010000000111000100101110
+00100000010000000010111100110001
+01101111111000001100001100000000
+11000001110000010000000000000000
+01110000000001100100110100111011
+00100000001000000111100000011001
+00100000010000000111000110011001
+11011000101000000000011010101111
+00100000010000000111000111100000
+11011010001000000000011010101111
+11011010010000000100001010011101
+11011111001000000000000000010000
+00100000010000000111110101100110
+00100100001000101010111100001000
+00100000001000000010111100110001
+00100000010000000111001000111000
+01110000000001100100110100110001
+00100000010000000111100000011001
+01110000010000101001110000000001
+01110000010000101111111000001001
+00011000000000000010001000010001
+00100000010000000011000000100101
+01011000000000000000000000000100
+11100111111000001000000000000101
+11011000110000000100001010101101
+00100000001000000111110010010001
+00011000000000000010001000010001
+00100000010000000011000000100101
+01011000000000000000000000000110
+11100111111000001000000000000101
+01101111111000001100001100100011
+11000010100000001010111100111111
+11011000110000000100001010001100
+00100000001000000111110010010001
+11011000110000000100001100100100
+00100000001000000111110010010001
+11011000101000000100001100000101
+00011000000000000111001000001010
+00100000010000000111110111101110
+00011000000000000010001000001011
+00100000010000000011000000100101
+01011000000000000000000000000111
+11100111111000001000000000000101
+01101111111000010100001100000101
+11100111111000010000000000000101
+01101111111001000100001100000111
+11100111111001000000000000000101
+00100000011000000000000000000000
+00011000000000000010001000010001
+00100000010000000011000000100101
+01011000000000000000000000001000
+11100111111000001000000000000101
+01011000000000000000000000000000
+11100111111001000000000000000101
+11100111111001000000000000000101
+00100000011000000000000000000000
+00011000000000000010001000001000
+00100000010000000011000000100101
+01011000000000000000000000001001
+11100111111000001000000000000101
+01101111111000001100001011010100
+11100111111000001000000000000101
+01101111111000110100001011011101
+11100111111000110000000000000101
+00100000011000000000000000000000
+01110000000000011011101000001000
+00100000001000000010111100001001
+01101111111000001100001011001011
+01101000010010001100001011001011
+10011000010000010111111000000000
+00100000011000000000000000000000
+11011000101000000100001100001111
+00100000010000000111110010010001
+00100000010000000010111101100000
+00101111111011000000000000000001
+00100000001000001010111101011110
+01101111111000001100001111001111
+11000001100001010000000000000000
+00100000010000000010111101101110
+00100100011101000000000000000000
+00100000001000000011011110011110
+00100000010000000111110110111110
+01101111111000001100001011001101
+11000001000000000000000000000000
+01101111111000001100001011000100
+11000100000000001000000000000000
+00100000001000000111110110111100
+00100000010000000010111101100000
+00101111111011000000000000000001
+00100000001000001010111101011110
+00100000011000000000000000000000
+00100000011000000000000000000000
+11011000101000000000010111011100
+00100000010000000111110010000011
+01110000010000101111101100000010
+01110000010000101111110000000001
+00100000011000000000000000000000
+11011000101000000000011000111100
+00100000010000000111110010010001
+01110000010000101111110000000110
+01110000010000101111101100000010
+00100000011000000000000000000000
+00011000000000000010001001000001
+00100000010000000011000000100101
+01011000000000000000000000001100
+11100111111000001000000000000101
+11011000110000000100010010100110
+00100000001000000111110010000011
+00100000010000000111000101000101
+00011000000000000010001000010001
+00100000010000000011000000100101
+01011000000000000000000000001101
+11100111111000001000000000000101
+00100000001000000111000111100000
+01101111111000001100001011111110
+11000001011111111000000000000000
+11011000010000000000000000000011
+10011000010001100111110000000000
+00100100011000010000000000000000
+11011000111000000000000000000111
+00100000010000000111110011110001
+00100100011110100000000000000000
+00100000001000000010111101011110
+01000111010010011100000000110010
+00100000010000000010101000000110
+00100100011110100000000000000000
+01101111111000001100001011111110
+11000000000000000010111110100101
+11000000000000001010111110101011
+11000000000000010010111110100101
+11000000000000011010111110101101
+11000000000001001010111110110001
+11000000000001011010111111000001
+11000000000001100010111111000011
+11000000000001101010111111001010
+00100000011000000000000000000000
+01101111111000001100001011111111
+11000001100000100000000000000000
+01110000010000101111111111111111
+01110000010000101111111011111111
+01110000000001100100110100111111
+00100000001000000111100000011001
+01110000010000101111111000000010
+00100000001000000010111010110011
+01110000010000101111111000000100
+01011000000000010111011100000000
+11011000111000000000000000000111
+00100000001000000111110011100011
+01101111111000001100001011111111
+11000000000000100010111110110100
+00100000011000000000000000000000
+01101111111000001100001100000000
+11000010100000111010111110111111
+01110000010000101111111000001011
+00100000010000000010111100110111
+01110000000001100100110100101001
+00100000010000000111100000011001
+01101111111000001100001111001111
+11000001100001010000000000000000
+00100000010000000010111101101110
+00100000011101000000000000000000
+00100000001000000011011110011110
+01110000010000101111111000001100
+00100000001000000010111110111000
+01110000010000101111111000001100
+00100000001000000010111101000001
+01101111111000001100001011000101
+01101000010010001100001011001100
+10011000010000010111111000000000
+00101111111011000000000000000001
+00100000001000001010111111001100
+01110000010000101111111000001101
+00100000001000000010111101001101
+00100000010000000010111101010101
+00100000001000000010111111001100
+01000111010010100100000000110010
+00011000000000000000111000000111
+00100000010000000111110011100010
+01110000010000101111111111111111
+01110000010000101111111011111111
+01110000000001100100110100111110
+00100000001000000111100000011001
+01000111010010101100000000110010
+01101111111000001100001100000000
+11000100000000111000000000000000
+01101111111000001100001011111011
+11000001100000010000000000000000
+01110000010000101111101100000000
+01101111111000001100001011111100
+11000000000000001011000000011011
+11000000000000010011000000100010
+11000000000000011011000000010011
+11000000000000110010111111111000
+11000000000000111010111111101111
+11000000000001000010111111100101
+00100000011000000000000000000000
+01110000010000101111101100000000
+01110000010000101111110000000000
+01110000010000101111110100000000
+00100000011000000000000000000000
+01101111111000001100010011100110
+00011111111000100000111000000000
+00011111111000001111111000000001
+01100111111000001100010011100110
+01101111111000100100001100000001
+10101111111011111111111111111111
+01011000000000000000000010000000
+01111001001000001111111000000000
+01100111111000001100010011100111
+00100000001000000011000000010111
+01101111111000001100001011111101
+01110000010000101111110100000000
+11000000000000001010111111110100
+01110000010000101111101100000010
+00100000011000000000000000000000
+01110000000001100100110100110001
+00100000010000000111100000011001
+01110000010000101111111000001001
+00100000001000000010111110001001
+01101111111000001000010111010111
+11000000000000011010111111111100
+01110000010000101111101100000010
+00100000011000000000000000000000
+00100000010000000111000101101100
+01101111111000001100001100000000
+11000000010000011011000000000001
+11000000010000100011000000000001
+00100000010000000010111011001110
+00100000010000000111000101011001
+11011010001000000000011010101111
+11011010010000000000011000111100
+11011111001000000000000000010000
+00100000010000000111110101100110
+00100000001000101011000000001001
+01110000000000011011101000001011
+00100000001000000010111100001001
+00100000010000000111010001001001
+00100100001000101011000000000111
+01110000010000101001110000000001
+01101111111000001100001100000000
+11000000010000001010111111110100
+11000000010000011010111111110100
+11000000010000100010111111110100
+01110000010000101111101100000010
+01110000010000101111110000000111
+00100000011000000000000000000000
+01101111111000001100001100000000
+11000000010000011011000000011000
+11000000010000100011000000011000
+01110000010001001110011100000000
+00100000001000000010111011110001
+01110000010001001110011000000000
+11000001010000100000000000000000
+00100000001000000010111011010001
+01110000010000101111101100000010
+01101111111000001100010010000101
+11000000000000011011000000011111
+00100000011000000000000000000000
+01110000010000101111110000000010
+01110000000001011101011100000000
+00100000001000000111010100101010
+01110000010000101111101100000010
+01110000010000101111110000000011
+00100000001000000010111110000011
+01000111010010110100000000110010
+00011000000000000010010000000110
+00100000001000000010100111011001
+01101111111000001000000001001110
+11000000000000000011000000111111
+11000000000000001011000001000111
+11000000000000010011000001001111
+11000000000000011011000001010011
+11000000000000100011000001110001
+11000000000000101011000001110110
+11000000000000110011000001111010
+11000000000000111011000001111111
+11000000000001000011000010000000
+11000000000001001011000010000001
+11000000000001010011000010000010
+11000000000001011011000010000110
+11000000000001100011000010000111
+11000000000001101011000010001001
+11000000000010010011000010001010
+11000000000010011011000010001011
+11000000000010100011000010001100
+11000000000010101011000010001110
+11000000000010110011000010011001
+11000000000011000011000010011010
+01101010011000001000000001001110
+00100000001000000011000010111101
+11101111111001001000000000000110
+01100111111001001000000110011111
+11101111111000010000000000000110
+01100111111000010000000110001000
+01101111111000001000000101101000
+01111001001000000111111000000101
+01100111111000001000000101101000
+00100000011000000000000000000000
+11101111111000101000000000000110
+01100111111000101000000110011111
+11101111111000010000000000000110
+01100111111000010000000110001000
+01101111111000001000000101101000
+01111001001000000111111000000110
+01100111111000001000000101101000
+00100000011000000000000000000000
+01011000000000000000000000010100
+01100111111000010000000110010110
+01100111111000010100001011110111
+00100000011000000000000000000000
+11101111111001000000000000000110
+01100111111001000100001100000111
+11101111111000010000000000000110
+01100111111000010100001100000101
+11101111111001000000000000000110
+01100111111001000100001011100111
+11101111111000100000000000000110
+01100111111000100100010001110101
+00100000010000000011000010101010
+01000111010010111100000000110010
+01101111111000001100001011111110
+11000000000001001011000001100101
+01101111111000001100001100100011
+11000010100000001011000001101000
+01101111111000001100010000000011
+00100100010110100110111010001000
+01101111111000001100001010011100
+11000000000000000011000001101101
+01110000010000101111111100000001
+00100000010000000011000010111000
+00100000001000000111001001001010
+01110000010000101001110000000001
+11011000110000000100001100100100
+11011000101000000100001010001100
+00100000010000000111110010010001
+00100000001000000011000001100101
+01110000010000101111111100000000
+01110000010000101111111000000000
+01110000000001100100110101000001
+00100000001000000111100000011001
+11101111111001000000000000000110
+01100111111001000100001011101111
+11101111111000100000000000000110
+01100111111000100100010001111001
+00100000001000000111001001001010
+01101111111000001000000101101000
+01111001001000000111111000000100
+01100111111000001000000101101000
+00100000011000000000000000000000
+00100000011101001000000000000000
+01110000000001100100110100110010
+00100000010000000111100000011001
+01110000010000101111111100000100
+00100000001000000011000010111011
+00100000011000000000000000000000
+00100000001000000011000011000010
+00100000011000000000000000000000
+01110000010000101111111100000010
+00100000010000000011000011001001
+01110000000001100100110100110011
+00100000001000000111100000011001
+00100000011000000000000000000000
+00100000011101001000000000000000
+00100000001000000011000011001011
+00100000011000000000000000000000
+00100000001000000011000011010111
+00100000011000000000000000000000
+00100000010000000011000010001110
+00100000001000000011000011011011
+11101111111001000000000000000110
+01100111111001000100001110111100
+01101111111000010100001110111100
+01101000010010010100001111001000
+00100000010000000111110110110010
+01100111111000010100001110111100
+01101111111000010100001111000000
+01101000010010010100001111000100
+00100000010000000111110110110010
+01100111111000010100001111000000
+00100000011000000000000000000000
+00100000001000000011000011100001
+11101111111000010000000000000110
+01100111111000010000000110011111
+11101111111000010000000000000110
+01100111111000010000000110001000
+00100000011110100000000000000000
+01101111111000001000000101101000
+01111001001000000111111000000111
+01100111111000001000000101101000
+00100000011000000000000000000000
+11011010011000000000000000010011
+11011010001000000000000000000010
+11011010010000000000000000000010
+00100000010000000010100111010011
+00011010011000100111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011000101000000100001011101111
+00011000000000000111001000001000
+00100000010000000111110111101110
+11011000101000000100010001111001
+00011000000000000111001000000100
+00100000010000000111110111101110
+11011010001000000000000000001101
+11011010010000000000000000000100
+00100000010000000010100111010011
+01101111111001000100001011101111
+11100111111001000000000000000101
+01101111111000100100010001111001
+11100111111000100000000000000101
+00100000011000000000000000000000
+01110000010000101111111100000101
+11011010010000000000000000000101
+00100000001000000011000011101011
+11011010010000000000000000000110
+00100000001000000011000011101011
+11011010001000000000000000000010
+11011010010000000000000000000111
+00100000010000000010100111010011
+11100010011000001000000000000101
+00100000011000000000000000000000
+11011010001000000000000000001001
+11011010010000000000000000001001
+00100000010000000010100111010011
+01101111111001000100001110110010
+00011111111000011111111000000001
+11100111111001000000000000000101
+00100000011000000000000000000000
+11011010010000000000000000001011
+00100000001000000011000011101011
+11011010001000000000000000000110
+11011010010000000000000000001100
+00100000010000000010100111010011
+01101111111000101100000101100000
+11100111111000101000000000000101
+00100000011000000000000000000000
+11011010001000000000000000000010
+11011010010000000000000000001101
+00100000010000000010100111010011
+01011000000000000000000000000110
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011010010000000000000000010011
+00100000001000000011000011101011
+11011010010000000000000000010100
+00100000001000000011000011011100
+11011010010000000000000000010101
+11011010001000000000000000001001
+00100000010000000010100111010011
+01101111111001000100001111000100
+11100111111001000000000000000101
+00100000011000000000000000000000
+11011010001000000000000000000011
+11011010010000000000000000010111
+00100000010000000010100111010011
+01101111111000001100001110111010
+00011111111000010111111000000111
+11100111111000001000000000000101
+01101111111000001100001110111011
+00011111111000010111111000000111
+11100111111000001000000000000101
+00100000011000000000000000000000
+11011010001000000000000000000001
+00100000001000000010100111010011
+01000111010011000100000000110011
+11000101000100111011001101111100
+11000110100100110000000000000000
+00100000001000000011010111011011
+01000111010011001100000000110011
+01111000010001001111110000000000
+01111000010000111111110000000000
+01011000010101010101010101010101
+10011000000000000001111000000000
+01101111111000001100010110100100
+00100000001000000010010110011101
+01000111010011010100000000110011
+01101111111000001100010111001110
+00100000010000000010010101111001
+01101111111000100100010110100110
+10011000000000000001001000000000
+00100000010000000010000101100100
+01101000010010001100010110100100
+00100000010000000010010110100010
+00100000010000000011000011110001
+11000101100101111011000100000101
+01111000001111001111110000000000
+00100000000000000000000000011110
+00100000010000000011000011110001
+01111000010101111111110000000000
+01111000001001101111110000000000
+01111000001100001111110000000000
+01111000010100000111110000000000
+01111000001010000111110000000000
+01101111111000010100010110100010
+10011000000000000011011000000000
+00110111110000011000010000000000
+00100100001011000011000101011111
+00100000010000000110011011100111
+11000101000101111011000100010100
+01101111111000001100010111100001
+00100100001110100011000100010100
+01111000010001101111110000000000
+01111000001001011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+00100000010000000011000101011100
+01100111111000001100010111000100
+01101000010010001100010111000011
+10011000010001100111110000000000
+00100100001000101011000101100111
+01000111010011011100000000110011
+01111000010110001111110000000000
+00101000000011111111111000101111
+00100000010000001011000101001110
+00100000001110001011000101101001
+00100000010000000011000101011100
+01100111111000001100010100001110
+11000101000100111011000100100111
+01101111111000001100010100001110
+01101000010010001100010110100000
+10101000010000000000111000000000
+00100100001000001011000101101011
+00100000010000000011000101011100
+00101000000011111111111000101111
+00100000010000001011000101010111
+11100111111000001000000000000101
+00011111111010010111111000000000
+00011111111001100111110000011111
+00100100001000010011000101101101
+00011111111000100111001000000000
+00100000001000101011000100110011
+00100000010000000011000101011100
+11100111111000001000000000000101
+11000010000000000011000100110000
+11000101000100111011000100111000
+00011000101000100010001000000000
+00100000010000000011000101011100
+01100111111000001100010111101010
+00011010001000100000101000000000
+00001001100000000000000000011000
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100111111000011000000000000101
+01101111111000001100010111100001
+00100100001110100011000101001100
+01111000010001011111110000000000
+00101000000011111111111000100111
+00100000010000001011010110100000
+00100000001000110011000101101111
+00100000010000000110011011100110
+01000111010011100100000000110011
+01111000001101111111110000000000
+00100000010000000010011010001111
+11000110000100111000000000000000
+01101111111000001100010111101010
+01101000010010001100011001000001
+10011000010001100111110000000000
+00100000010000010111110110110100
+00100000001000000011010110100011
+01111000010001101111110000000000
+00100000001000000011000100111111
+00100000010000000011000101011100
+00011111111001100111110000000001
+00100000001000010111110111000100
+00011111111000001111111111111110
+11000101000100111011000101010101
+00100000001110100111110111000100
+00011111111000001111111111111111
+01100111111000001000011001010110
+00100000011000000000000000000000
+00011111111000010111111000000111
+01101000010010001000011001010110
+00011000010010011000010000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+00001001100000000000000000001000
+00011001100010010111111000000000
+00100000011000000000000000000000
+01110000010001011110001000000001
+00101000000011111111111000100111
+00100000010000001011010110111011
+01000111010011101100000000110011
+00100000010000000010010110010001
+01111000010011011111110000000000
+01111000010001011111110000000000
+00100000001000000010000011001111
+01110000010001011110001000000010
+00100000001000000011000101100010
+01110000010001011110001000000011
+00100000001000000011000101100010
+01110000010001011110001000000100
+00100000001000000011000101100010
+01110000010001011110001000000101
+00100000001000000011000101100010
+01110000010001011110001000000110
+00100000001000000011000101100010
+00100000010000000010000101100100
+01101000010010001100010110100100
+00100000001000000010000111111111
+01000111010011110100000000110011
+01101111111000001100010111001111
+00100000010000000010010101111001
+01101111111000100100010110100110
+10011000000000000001001000000000
+00100000010000000011000011110001
+00100000010000000011000101110001
+01111001001000000010101000000000
+01111000001011101111110000000000
+01111000001100000111110000000000
+01111000010100001111110000000000
+00100000010000000110011011101101
+01111000010111010111110000000000
+11000101000101111011000110100110
+11000101000101101011000110111000
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00001000000000001000011000101000
+01000111010011111100000000110011
+11000101000101111011000110001101
+01101111111000001100010111100001
+00100100001110100011000110001101
+01111000010011101111110000000000
+01111000001011011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+01101111111000001100010110100001
+10011000000000000111001000000000
+11011000110000000100010101010000
+11101111111000001000000000000110
+00001000000000001000011000001000
+11000010000000000011000110010010
+01111000001001000111110000000000
+00001000000000001000011000011000
+01111000010001000111110000000000
+11000101100101111011000110011100
+01111000010000111111110000000000
+01011000000000000000000000000000
+00001000000000001000011000000011
+00110111110100111000001000000000
+00100000000000000000000001100100
+01111000010111010111110000000000
+01111000010011101111110000000000
+01101111111000001100010111100001
+00100100001110100011000110100011
+01111000010011011111110000000000
+01111000010111000111110000000000
+00100000010000000010000101100100
+00100000001000000110011011101011
+11011111001000000000000000001010
+01011000000000000000000000111100
+00001000000000001000011000001000
+11000010000000000011000110100111
+01111000010011101111110000000000
+01111000001111000111110000000000
+00011001001100010111111000000000
+00011111111100010111111000000000
+00011111111100011111111000000000
+00001000000000001000011000100000
+11000101000101110011000110110101
+01011000000000000000000000000001
+00001000000000001000011000000101
+01111000001111010111110000000000
+00100000001000000011000110000111
+01011000000000000000000000000000
+00001000000000001000011000000101
+00100000001000000011000110000111
+01101111111000001100000101001000
+00011111111000110111001000000000
+00100000000000000000000000000010
+11000010000000000011000110111010
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011000010000000000
+00011000010000100111111000000000
+00001000000000001000011000001000
+00011000010000100111111000000000
+00001000000000001000011000101000
+00100000001000000011000110000111
+01000111010100000100000000110100
+01101111111000001100010111001111
+11000010100000010011000111100101
+01101111111000001100010110011111
+00011111111000001111111000000011
+01100111111000001100010110100001
+01101111111000001100010111000011
+01100111111000001100010101010000
+01101111111000001100010110100000
+11100111111000001000000000000101
+01101111111000001100010110011111
+00011111111010011111111000000000
+01101000010010001100010110010101
+00011000010000010000010000000011
+00011000010000111000010000000000
+10011000010000011111111000000000
+01101000010010001100010110010110
+10011000010000001111111000000000
+11100111111000001000000000000101
+01101111111000001100010110011111
+10011000000000000111001000000000
+11011000110000000100010100110000
+00100000010000000111110011011100
+01000111010100001100000000110100
+11000110100100111000000000000000
+01101111111000001000000000110101
+11100111111000001000000000000101
+01101111111000001100010111001111
+11000011100000010000000000000000
+01101111111000001100010110100001
+00011111111000001111111000000001
+01100111111000001100010110100001
+00100000011000000000000000000000
+01101111111000001100010110011111
+00011111111000001111111000000100
+11000101100100111011000111101001
+00011111111000001111111000000001
+01100111111000001100010110100001
+01101111111000001100010111000011
+01100111111000001100010101010000
+01101111111000001100010110100001
+00011111111000001111111111111110
+11100111111000001000000000000101
+01101111111000001100010110100000
+11100111111000001000000000000101
+01011000000000000000000000000000
+00100000001000000011000111001111
+01000111010100010100000000110100
+01101111111000001100010100001111
+00011111111010010111111000000000
+01100111111000001100010110010100
+00011111111000001111111000000001
+11011000110000000100010100001111
+10011000110000001000110000000000
+11101111111000011000000000000110
+01100111111000011100010110010111
+01101111111000001100010100001111
+00011111111000110111111000000000
+00011111111000010111111000000011
+01100111111000001100010110011101
+00100000011000000000000000000000
+01000111010100011100000000110100
+01101000010010001100010110100101
+00100000010000000011001000000110
+01100000010010001100010110100101
+00100000011000000000000000000000
+01000111010100100100000000110100
+00100000010000000011001000001011
+00011000010000001000010000000001
+00011000010000010000010000000011
+00100000011000000000000000000000
+01000111010100101100000000110100
+01101111111000001100010110100110
+00011111111000010111111000000011
+00011111111011111010001000000100
+01011000000000000100010110101010
+10011010001000001111111000000000
+10011000010000001000110000000000
+11101111111000001000000000000110
+01100111111000001100010110100100
+00100000011000000000000000000000
+01100111111000100100010110100110
+01000111010100110100000000110100
+11011010001000000000000000000000
+11011111001000000000000000000100
+11011000110000000100010110100110
+11101111111000001000000000000110
+10011010001000001010001000000000
+11000010000000000011001000011010
+00011010001000100111111000000000
+01100111111000010100010111000001
+01101111111000001100010111000001
+01101000010010001100010111000010
+10011000010000001111111000000000
+01100111111000001100010111000011
+00100000011000000000000000000000
+01000111010100111100000000110100
+00100000010000000111110110111110
+01101000010010100100010110111010
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010011001000110100
+00011111111000100010010000000000
+01101111111000100100010110111010
+01101000010010001100010110111110
+10011000010000001000010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01111001001111111111111000011100
+01100111111000100100010110111010
+00100000001000000111110110111100
+00100000011000101000000000000000
+01111001001000000111111000011100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000100100010110111010
+00100000011000000000000000000000
+01000111010101000100000000110101
+00111000000000000001001100000000
+00111000000001011001000010001011
+00111000000010110110000101010000
+00111000000011000011110100100000
+01100111111001001100010110101010
+00111000000000000011101000011010
+00111000000001001100010001010011
+00111000000010001101001100010010
+00111000000011000000000000000001
+11100111111000111000000000000101
+01101111111000001100010111010000
+00100000011110100000000000000000
+11011000110000000100010111010001
+11011000101000000100010110101010
+00100000001000000111110010010001
+01000111010101001100000000110101
+01011000010011100000000000011110
+01100111111000011100010111010010
+01011000000000110010001100000011
+11100111111000011000000000000101
+01011000001001010000011001000010
+11100111111000011000000000000101
+01011000000010010100110000000110
+11100111111000011000000000000101
+01011000001111000000100100100111
+11100111111000011000000000000101
+01110000010001011101000000000001
+00100000011000000000000000000000
+01000111010101010100000000110101
+11011000010000000110100101111000
+11000101000100111011001001011110
+11011000010000000001001011000000
+01101111111000001100010111001110
+11000011000000010011001001011110
+11011000010000000010111011100000
+01100000010010010100010110100010
+00100000011000000000000000000000
+01110000010001011100111000000001
+01110000010001011100111100000001
+00100000011000000000000000000000
+01110000010001011100111000000010
+01110000010001011100111100000010
+00100000011000000000000000000000
+01000111010101011100000000110101
+01110000010001011110011101001110
+01011000000100000001010100100000
+01100111111000011100010111100011
+01011000000000000000000000000101
+00100000001000000111110111001110
+11011010011000000100010111101111
+11011010010000000011011001010011
+00100000001000000011011101011100
+01111001001000000000000000100110
+01101111111000001100011000010011
+01111001001111111111111000000010
+01111001001000000111111000000001
+01100111111000001100011000010011
+01011000000000000000000000000000
+01100111111000010100010111110101
+01101111111000010100010111101101
+01100111111000010100010111101111
+01110000010001011110110000000000
+00100000010000000011001010110100
+01110000010001011001010100000000
+01101111111000001100010111100111
+01100111111000001100010110100100
+01101111111000001100010111101000
+01100111111000001100000101000001
+01101111111000100100010111100011
+00100000001000000011001000010101
+01000111010101100100000000110101
+01110000010001011111100100000000
+01101111111000010100010111110001
+00011111111000001111111000000001
+01100111111000010100010111110001
+01101111111000001100010111110001
+00011111111000010111111011111111
+00100100011110100000000000000000
+01101111111000001100010111101011
+11000000011111111011001011010110
+11000000000000001011001010010000
+11000000000000010011001010010010
+11000000000000011011001010011000
+11000000000000100011001010011110
+00100000011000000000000000000000
+01110000010001010011000011111111
+00100000001000000011001010011111
+01101111111000001100010111000101
+00100000001110100011001010010110
+01101111111000100100011000011011
+00100000010000000011001000010101
+01110000010001010011000010101010
+00100000001000000011001010011111
+01110000010001010011000001010101
+01101111111000001100010111000101
+00100000001110100011001010011111
+01101111111000100100010111111111
+01100111111000100100010100110010
+00100000001000000011001010100001
+01110000010001010011000000100010
+01101111111000100100011000011011
+01100111111000100100010100110010
+01101111111000001100010110100000
+00011111111000010111111000000111
+01100111111000001100010100110001
+01110000010001010011011000000000
+01110000010001011001111100000111
+00100000010000000011000111000100
+00100000010000000011011000101010
+00100100011011000000000000000000
+00100100011101111000000000000000
+00100000010000000011010101010011
+00100000010000000011011001000111
+01000111010101101100000000110101
+01101111111000001100010111101011
+11000001011111111000000000000000
+11000000000000001011001010111001
+11000000000000010011001010111011
+11000000000000011011001011000001
+11000000000000100011001011001001
+00100000011000000000000000000000
+01110000010001011110101100000010
+01101111111000001100010111000101
+00100000011110100000000000000000
+01110000010001011110101100000001
+00100000011000000000000000000000
+01110000010001011110101100000010
+00100000001000000011011000100101
+01101111111000001100010111000101
+00100000001110100011001010111111
+01101111111000100100010101110110
+01100111111000100100010111111111
+01110000010001011110101100000011
+00100000001000000011011000100101
+01101111111000001100010111000101
+00100000001110100011001011000111
+01101111111000100100010101110110
+01101000010010100100011000011011
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010001011110101100000100
+00100000001000000011011000100101
+01101111111000001100010111000101
+00100000001110100011001011001111
+01101111111000100100010101110110
+01101000010010100100010111111111
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010001011110101111111111
+01110000000001100100110100111001
+00100000010000000111100000011001
+01011000000000000000000000000000
+01100111111000010100010111101111
+01101111111000100100010101110110
+00100000010000000011001000010101
+01101111111000001100011000010011
+01111001001111111111111000000001
+01100111111000001100011000010011
+00100000001000000011011000100101
+01110000010001100010110100000001
+01110000010001100010110000000000
+00100000011000000000000000000000
+01101111111000001100011000101100
+11000011100000001000000000000000
+01111001001000000111111000000001
+01100111111000001100011000101100
+01011000000000000000000000000000
+01100111111000011100010111101010
+01100111111000001100010111110101
+01100111111000001100010111110110
+01100111111000100100011001000011
+01110000010001100010100000000001
+00100000001000000011001001111010
+01110000010001011001111100001000
+11011000110000000100010111101101
+11011000101000000100010100110000
+00100000001000000111110010001011
+01000111010101110100000000110101
+00100000010000000011001110010111
+00100000010000000011000011111000
+00100100001101111011001110010111
+00100000010000000011001011111011
+00100000010000000011001111001010
+00100000010000000011001101110010
+00100000010000000011111010000000
+01101111111000001100010111000101
+00100000011110100000000000000000
+01101111111000100100011001000011
+00100000011110100000000000000000
+00100000001000000011001000010101
+00100000010000000011001110010111
+00100000001000000011000101100010
+01110000010001100011100100000101
+11011000110000000100010100001110
+11011000101000000100010111111111
+00100000010000000111110010001011
+01000111010101111100000000110101
+01101111111000001100011000000001
+11000000010101010011001100000110
+11000000001010101011001100010111
+11000000000100010011001100111000
+11000000011111111011010101110011
+00100000011000000000000000000000
+01101111111000001100011000000010
+11000000000000001011001100001010
+11000000000000010011001100010010
+00100000011000000000000000000000
+01101111111000001100010111110101
+00100100011110100000000000000000
+01110000010001011110101000000001
+01110000010001011110110100000001
+01110000010001011110111010000000
+01101111111000110100010100001000
+01100111111000110100010111101111
+00100000011000000000000000000000
+01101111111000001100010111110110
+00100100011110100000000000000000
+01110000010001011110101100000001
+01110000010001011110110100000010
+00100000001000000011001100001110
+01101111111000001100010111000101
+00100000001110100011001100011101
+01101111111000100100011000000011
+01101000010010100100010100001000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100011000000010
+11000000000000001011001100100001
+11000000000000010011001100101110
+00100000011000000000000000000000
+01101111111000001100010111110101
+00100100011110100000000000000000
+01101111111000001100010111101010
+11000000000000001011001100100110
+00100000011000000000000000000000
+01110000010001011110101000000010
+01101111111000001100010111000101
+00100000001110100011001100001101
+01110000010001011110110100000001
+01110000010001011110111010000000
+01101111111000100100011001000011
+01100111111000100100010111101111
+00100000001000000111110110111100
+01101111111000001100010111110110
+00100100011110100000000000000000
+01101111111000001100010111101011
+11000000000000001011001100110011
+00100000011000000000000000000000
+01110000010001011110101100000010
+01101111111000001100010111000101
+00100000001110100011001100010101
+01110000010001011110110100000010
+00100000001000000011001100101010
+01101111111000001100010111000101
+00100000001110100011001100111110
+01101111111000100100011000000011
+01101000010010100100011001000011
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100011000000010
+11000000000000001011001101000010
+11000000000000010011001101001111
+00100000011000000000000000000000
+01101111111000001100010111110101
+00100100011110100000000000000000
+01101111111000001100010111101010
+11000000000000010011001101000111
+00100000011000000000000000000000
+01110000010001011111010100000001
+00100000010000000011001100001101
+01101111111000001100010111101100
+00011111111000011111111000000001
+01100111111000001100010111101100
+01011000000000000000000000000000
+01100111111000010100010111101010
+00100000011000000000000000000000
+01101111111000001100010111110110
+00100100011110100000000000000000
+01101111111000001100010111101011
+11000000100000000011001101010100
+00100000011000000000000000000000
+01110000010001011111011000000001
+00100000010000000011001100010101
+01101111111000001100010111101100
+00011111111000011111111000000010
+01100111111000001100010111101100
+00100000010000000011001101001100
+00100000001000000011111001111010
+01101111111000001100010100010001
+11000000000000001011001101011111
+11000000000000010011001101100011
+00100000011000000000000000000000
+01101111111000001100011001000010
+11000100000000000000000000000000
+01111000010101111111110000000000
+00100000011000000000000000000000
+01101111111000001100011001000010
+11000100000000001000000000000000
+00100000001000000011001101100001
+01101111111000001100011000100111
+00100100011110100000000000000000
+01101111111000001100011001000010
+00011111111000011111111000000001
+01100111111000001100011001000010
+00100000011000000000000000000000
+01101111111000001100011000100111
+00100100011110100000000000000000
+01101111111000001100011001000010
+00011111111000011111111000000010
+01100111111000001100011001000010
+00100000011000000000000000000000
+01101111111000001100010111101100
+00100000011110100000000000000000
+01101111111000001100011000000010
+11000000000000001011001101100110
+11000000000000010011001101101100
+00100000011000000000000000000000
+01111001001000000000000000100111
+01101111111000001100000101000001
+01100111111000001100011000111010
+00100000001000000011010110101110
+01101111111000010100010111110111
+00100000001000000111110101111011
+01000111010110000100000000110110
+01110000010001011001111100000000
+01101111111000001100011000101000
+00100000011110100000000000000000
+01101111111000010100010111111001
+00100000001000000111110101111011
+00100000010000000011001111000111
+00100100001101111011001110010111
+00100000010000000011001110111001
+00100100001101000011001110010111
+01101111111000001100010110010100
+00100000001110100011001110010111
+00011111111000001111111000000010
+10011000000000000111001000000000
+11011000110000000100010100001110
+11011000101000000100010111111111
+00100000010000000111110011011100
+01110000010001100010101000000000
+01101111111000001100011000100111
+00100000010110100011001111010100
+01000111010110001100000000110110
+01101111111000001100011000000001
+11000000000000001011001110011101
+11000000000000010011001110101100
+11000000011111111011001110011011
+01000111010110010100000000110110
+11011000101000000100010100001110
+11011111001000000000000001000010
+00100000001000000111110010100011
+00100000010000000011001101110100
+00100000001000000011010101110011
+00100000010000000011001101100110
+00100000010000000011010100000100
+01101111111000001100011000100001
+01101000010010001100010111111111
+00101000010011111111111000000011
+01111001001000001111111000000000
+01100111111000001100011000100001
+11000000000000001011001110110010
+01101111111000001100011000101001
+01101000010010001100010111111111
+00101000010011111111111000000100
+01111001001000001111111000000000
+01100111111000001100011000101001
+01101111111000010100010111111011
+00100000001000000111110101111011
+00100000010000000011001101101100
+01101000010010001100010111111111
+00101000010011111111111000000011
+00100000001000001011001110110111
+01101111111000010100010111111101
+00100000001000000111110101111011
+01101111111000001100010111110101
+00100100011110100000000000000000
+01110000010001011111010100000001
+01101111111000100100011000001001
+00100000001000000011010101111011
+01101111111000100100011000001001
+00100000001000000011010110000001
+00100000010000000111110110111110
+01101111111000001100010110011101
+01101000010010001100010110011110
+10011000010001100111110000000000
+00100100010000101111110110111100
+01101111111000001100010110011101
+01100111111000001100010110011110
+01101111111000011100010110010111
+01101000010010011100010110011010
+10011000010001100111110000000000
+00100100010000101111110110111100
+01101111111000011100010110010111
+01100111111000011100010110011010
+00100000011000000000000000000000
+00100000010000000011001110010111
+00100000010000000011000011111000
+00100100011101111000000000000000
+01101111111000001100010100001110
+01100111111000001100010110100000
+00100000010000000011000111110011
+01101111111000001100010100001111
+00101111111011111111111000000000
+00100000001000001011001111010011
+00100000010000000011001101111110
+00100000010000000011000111000100
+00100000010000000011000101110100
+00100000001000000011000101100010
+01110000010001100010101100000001
+01011000000000000000001010000000
+11011000111000000000000000001000
+00100000001000000111110011100011
+01000111010110011100000000110110
+01110000010001100010101000000001
+01110000010001100010111000000000
+01110000010001011011111011111111
+00100000001000000011001000110111
+01000111010110100100000000110110
+01101111111000001100011000101010
+00100000011110100000000000000000
+00100000010000000011001000100100
+00100100011101000000000000000000
+00100000010000000011001111101010
+01101111111000001100011000101110
+00011111111000001111111000000001
+00011111111000010111111000000001
+01100111111000001100011000101110
+11000000000000000011001111101111
+11000000000000001011001111110010
+00100000011000000000000000000000
+01101111111000001100011000111001
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100011000111001
+00100000011000000000000000000000
+01101111111000001100011000111001
+00100100011110100000000000000000
+00100000001000000011010000110110
+01101111111000001100011000111001
+00100100011110100000000000000000
+00100000001000000011001011011010
+01101111111000001100011001000001
+00100100011110100000000000000000
+01101111111000001100011000111111
+00100000010110100011010000100101
+01101111111000001100011000111100
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011000111100
+01110000010001100011101100000001
+01110000010001100100000000000000
+01011000000000000000000000000000
+01100111111000010100011000111101
+01110000010001011011111001100000
+00100000001000000011001000110111
+01000111010110101100000000110110
+01101111111000001100011000101101
+11000001000000000000000000000000
+01101111111000001100011001000001
+00100100011110100000000000000000
+01101111111000001100011000111111
+00100100011110100000000000000000
+01101111111000001100011000111011
+00100000011110100000000000000000
+01101111111000001100011001000010
+00101111111000000000011000000011
+00100000001000001011010000100001
+00100000010000000011001000100100
+00100100011101000000000000000000
+01101111111000010100011000111101
+00011111111000001111111000000001
+01100111111000010100011000111101
+11011000010000000000011111010000
+10011000010001100111110000000000
+00100000001000010011010000100001
+01101111111000001100011001000000
+00011111111000001111111000000001
+00011111111000010111111000000001
+01100111111000001100011001000000
+11000000000000000011010011101010
+11000000000000001011001011011010
+00100000011000000000000000000000
+01101111111000001100011000111001
+00100100001110100011001011011010
+00100000001000000011010011101010
+01110000010001100011111100000001
+00100000001000000011010011101010
+01110000010001100011101100000000
+00100000011000000000000000000000
+01110000010001100011101100000001
+00100000011000000000000000000000
+01000111010110110100000000110110
+01101111111000001100011000101100
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011000101100
+01101111111000001100011000111010
+01100111111000001100000101000001
+01110000010001100010100000000000
+01110000000010001110101100000000
+01110000010001100010000100000001
+01110000010001011001010100000000
+01101111111000100100010100001000
+00100000010000000011001000010101
+00100000010000000011001000000001
+00100000001000000011001110010111
+01110000010001100010100000000000
+01110000010001100010110100000000
+01110000010001100010110000000000
+00100000011000000000000000000000
+01101111111000001100011000101101
+11000001100000000000000000000000
+00100000010000000011010000100111
+00100000010000000011010011101110
+00100000001000000011001110000100
+01000111010110111100000000110110
+01101111111000001100011000101101
+11000001100000001000000000000000
+00100000010000000011001011011101
+00100000010000000011001011101100
+01101111111000001100011000100111
+00100100011110100000000000000000
+01101111111000001100010111101100
+00100000011110100000000000000000
+01110000010001100010101000000000
+00100000010000000011010000110110
+00100000010000000011001111010100
+00100000001000000011001000110111
+01101111111000001100011000101100
+11000011100000111000000000000000
+01111001001000000111111000000111
+01100111111000001100011000101100
+01101111111000001100011000111010
+01100111111000001100000101000001
+01110000010001100010111000000000
+01110000010001100010100000000001
+01011000000000000000000000000000
+01100111111000011100011001010100
+01100111111000111100011000110001
+00100000010000000011010011011100
+00100100011000101000000000000000
+01101111111000001100010110100101
+01100111111000001100011000110000
+01101111111000001100010110100100
+01100111111000001100011000101111
+00100000011000000000000000000000
+01000111010111000100000000110111
+01101111111000001100011000101101
+11000001100000111000000000000000
+00100000010000000011010001001100
+00100000010000000011010010000100
+00100000010000000011001111000111
+00100100001101111011001110010111
+00100000010000000011010011011100
+00100000010000101011001110000110
+01101111111000001100011000100001
+00100000010110100011010000100011
+01110000010001100010110100000000
+01101111111000001100011000101100
+01111001001000000111111000000000
+01100111111000001100011000101100
+01101111111000001100011000101000
+00011111111001100111110000000010
+00100100010000101011010011011010
+00100000010000000011001110010111
+00100000010000000011001111010100
+00100000010000000011010011011100
+00100000001000101011010001111101
+01101111111000100100010110100110
+01101000010010100100011001001011
+10011000010001100111110000000000
+00100000001000101011010010000000
+01101111111000100100010110100110
+01101000010010100100011001000111
+10011000010001100111110000000000
+00100000001000101011010010000010
+00100000011000000000000000000000
+01101111111000001100011000110000
+01100111111000001100010110100101
+00100000011000000000000000000000
+01101111111000001100011000110110
+00100000001000000011010001111110
+01101111111000001100011000110011
+00100000001000000011010001111110
+01000111010111001100000000110111
+01101111111000001100011000101110
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100111111000001100011000101110
+11000000000000000011010010101000
+11000000000000001011010011000010
+11000000000000010011010010001110
+11000000000000011011010011000010
+00100000011000000000000000000000
+00100000010000000011001100001101
+01101111111000100100011001000111
+00100000001110100011010010000100
+00100000010000000011001000010101
+01101111111000001100011000110100
+00100000010110100011010010100011
+01101111111000001100011000110010
+01100111111000001100010110100100
+01101000010010001100011001010101
+01101010001000010100011001011011
+00100000010000000011010110000011
+01100000010010001100011001010101
+00100000010000000011010110001100
+01100000010010001100011001010010
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000010010001100011000110011
+00100000010000000011001000000110
+01100000010010001100011000110011
+01100111111000001100011000110010
+00100000011000000000000000000000
+01110000010001100011010000000001
+11011000010000000000000000000000
+00100000010000000011001000001011
+01100111111000001100011000110010
+00100000011000000000000000000000
+00100000010000000011001100010101
+01101111111000100100011001001011
+00100000001110100011010010000100
+00100000010000000011001000010101
+01101111111000001100011000110111
+00100000010110100011010010111101
+01101111111000001100011000110101
+01100111111000001100010110100100
+01101000010010001100011001010110
+01101010001000010100011001011101
+00100000010000000011010110000011
+01100000010010001100011001010110
+00100000010000000011010110001100
+01100000010010001100011001010011
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000010010001100011000110110
+00100000010000000011001000000110
+01100000010010001100011000110110
+01100111111000001100011000110101
+00100000011000000000000000000000
+01110000010001100011011100000001
+11011000010000000000000000000000
+00100000010000000011001000001011
+01100111111000001100011000110101
+00100000011000000000000000000000
+00100000010000000011001100001101
+01101111111000100100010100001000
+00100000010000000011001000010101
+01101111111000001100011000110001
+00100000010110100011010011010110
+01101111111000001100011000101111
+01100111111000001100010110100100
+01101000010010001100011001010100
+01101010001000010100011001011001
+00100000010000000011010110000011
+01100000010010001100011001010100
+00100000010000000011010110001100
+01100000010010001100011001010001
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000010010001100011000110000
+00100000010000000011001000000110
+01100000010010001100011000110000
+01100111111000001100011000101111
+00100000011000000000000000000000
+01110000010001100011000100000001
+01101111111000001100011000101111
+01100111111000001100010110100100
+00100000011000000000000000000000
+01110000010001100010100000000000
+00100000011000000000000000000000
+01101111111000100100010110100110
+01101000010010100100010100001000
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101111111000001100011000101000
+11000001000000010000000000000000
+01101111111000001100011000101011
+00100000011110100000000000000000
+11011000111000000000000000001000
+00100000010000000111110011110001
+00100100011110100000000000000000
+01110000010001100010101100000000
+01110000010001100011100100000000
+00100000010000000011001111110101
+01000111010111010100000000110111
+01110000010001100010110100000111
+01110000010001100010110000000000
+00100000001000000011001110010111
+01000111010111011100000000110111
+01101111111000001100011000100001
+11000000000000001011010111000010
+01101111111000001100011000101001
+11000000000000001011010100000010
+01101000010010100100011000100010
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010011001000110100
+00011111111000100010010000000000
+01101111111000100100011000100010
+01101000010010001100011000100110
+10011000010000001000010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01111001001111111111111000011100
+01100111111000100100011000100010
+01110000010001100010000100000001
+00100000001000000011001000000001
+01110000010001100010100100000000
+00100000001000000011001000000001
+00011100010000100111111000000000
+01100111111000100100011000100010
+00100000011000000000000000000000
+11011010011000000100010111110101
+11011010010000000011011001010011
+00100000001000000011011101011100
+01000111010111100100000000110111
+01111001001000000000000000100110
+01101111111000001100011000010011
+01111001001111111111111000000001
+01111001001000000111111000000010
+01100111111000001100011000010011
+01101111111000001100010111111010
+00100000001110100011010100011111
+01101111111000001100010111111001
+11000000000000001011010100010111
+11000000000000010011010100010111
+11000000000000011011010100100110
+11000000000000100011010100100110
+01101111111000001100010111101000
+01100111111000001100000101000001
+01101000010010001100011000000011
+01100000010010001100010110100101
+01101111111000100100010111111011
+00100000010000000011010100110000
+01100000010010001100011000000011
+00100000011000000000000000000000
+01110000010000010100000100000011
+01101000010010001100011000000100
+01100000010010001100010110100101
+01101111111000100100010111111111
+00100000010000000011010100110000
+01100000010010001100011000000100
+00100000011000000000000000000000
+01110000010000010100000100000011
+01101000010010001100011000000101
+01100000010010001100010110100101
+01101111111000100100011000011011
+00100000010000000011010100110000
+01100000010010001100011000000101
+00100000011000000000000000000000
+01101111111000100100010101110110
+00100000011110100000000000000000
+01100111111000100100010111111111
+00100000010000000011001000010101
+00100000001000000011001000000001
+01000111010111101100000000110111
+01101111111000010100010111110111
+11011000010000000000000111111000
+10011000010000010111111000000000
+00100000001110100011010100111011
+01101111111000010100010111110111
+00011111111000001111111000000001
+01100111111000010100010111110111
+00100000011000000000000000000000
+00100000010000000011010101010111
+00100000010000000011011000101010
+00100100001011000011010101011110
+00100100001101111011010101011110
+00100000010000000011011001000111
+01101111111000001100001111001111
+11000000000001000100110101011101
+01101111111000100100010111100011
+01101000010010100100010110100110
+10011000010001100111110000000000
+00100000001000101011001001101111
+01101111111000100100011000011011
+01101000010010100100010110100110
+10011000010001100111110000000000
+00100000010000101011010100101101
+01101111111000001100011000010011
+01111001001111111111111000000010
+01100111111000001100011000010011
+01011000000000000000000000000000
+01100111111000010100010111101111
+01100111111000010100010111110111
+01100111111000010100010111110101
+01110000000001100100110100111100
+00100000010000000111100000011001
+01000111010111110100000000110111
+11011111001000000000000000100000
+11011000101000000100010100110000
+00100000001000000111110010100101
+01110000010001010011000011111111
+01101111111000001100010110100000
+01100111111000001100010100110001
+01101111111000100100011000011011
+01100111111000100100010100110010
+01110000010001011001111100000110
+00100000001000000011000111000100
+01000111010111111100000000110111
+01101111111000001100010111111010
+00100000001110100011001000000001
+01101111111000010100010111110111
+00011111111000001111111000000001
+01100111111000010100010111110111
+00101111111011111111111000001001
+01101111111000001100010111111001
+11000000000000001011010101101011
+11000000000000010011010101101101
+11000000000000011011010101101111
+11000000000000100011010101110001
+00100000001000000011010100011111
+00100000001000001011010100011111
+00100000001000000011010100010111
+00100000001000001011010100100110
+00100000001000000011010100010111
+00100000001000001011010100100110
+00100000001000000011010100011111
+00100000001000001011010100100110
+00100000001000000011001001111010
+01101111111000001100011000000010
+11000000000000001011010101110111
+11000000000000010011010101111101
+00100000011000000000000000000000
+01101111111000001100010111110101
+00100100011110100000000000000000
+01101111111000100100011000000011
+01100111111000100100011001000011
+01100111111000100100011001000111
+00100000011000000000000000000000
+01101111111000001100010111110110
+00100100011110100000000000000000
+01101111111000100100011000000011
+01100111111000100100011001000011
+01100111111000100100011001001011
+00100000011000000000000000000000
+01000111011000000100000000111000
+00011010001000100111111000000000
+10011000010000001000101000000000
+01101111111000001000000000001001
+11100111111000001000000000000101
+00011000010000001000010000000001
+01101111111000001100010111101001
+10011000010000010000010000000000
+00100000011000000000000000000000
+01000111011000001100000000111000
+01101111111000001100010111101001
+00011111111000001111111000000001
+01100111111000010000011001111001
+00011111111000100111001000000000
+00011010001000100000110000000000
+11011111111000000000000000000000
+11101000010000001000000000000110
+10011000010000001111111000000000
+11000010000000000011010110010011
+01101000010010010000011001111001
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111000010000000000
+11000110000100111000000000000000
+00011000010000100111111000000000
+11000110100100110000000000000000
+00100000010000000010001011101100
+00011111111000100000010000000000
+00100000011000000000000000000000
+00100000001000000010001011001101
+01101111111000010100011000000111
+00100000001000000011010110110101
+00011111111000100010001000000000
+01101000010010001100011000000110
+01101111111000010100011000000111
+10011000010000001000101000000000
+00011010001000100111111000000000
+11100111111000001000000000000101
+00011000010000001000010000000001
+01101111111000001100010111101001
+10011000010000010000010000000000
+01100000010010001100011000000110
+00100000011000000000000000000000
+01101111111000010100011001010111
+00100000010000000011010110110101
+01101111111000010100011001011001
+00100000010000000011010110110101
+01101111111000010100011001011011
+00100000010000000011010110110101
+01101111111000010100011001011101
+00100000011110100000000000000000
+00011111111000100000101000000000
+01101111111000001100010111101001
+00011111111000001111111000000001
+00011111111000100111001000000000
+00100000001000000111110010100011
+00100000010000000011010110100000
+00100000011110100000000000000000
+01101000010010001100011001010000
+01101010001000010100011001010111
+00100000010000000011010110000011
+01100000010010001100011001010000
+00100000011000000000000000000000
+01101010001000010100011001010111
+00100000010000000011010110001100
+01100000010010001100011001001111
+00011000010001100111110001010000
+00100100011000010000000000000000
+00100000001000000011001000000001
+01101111111000100100010100001000
+01100111111000100100011000011011
+00100000001000000011010110100001
+01011000000000000010111110110010
+01100111111000011100011000011111
+01011000000100000000110000001100
+01100111111000011100010110111110
+01011000000000001011101110000000
+01100111111000011100011000100010
+01110000010001100011100000000101
+00100000011000000000000000000000
+01011000000000001111100000001100
+01100111111000011100011000011111
+01011000000111000001100100011001
+01100111111000011100010110111110
+01011000000000010111011100000000
+01100111111000011100011000100010
+01110000010001100011100000001011
+00100000011000000000000000000000
+01101111111000001100011000010011
+11000010100000001011001010000001
+11000010100000010011010100110010
+01101111111000001100011000101111
+11000000000000001011011010100000
+01000111011000010100000000111000
+00100000010000000011010111111101
+00100100001101000011011001111110
+01000111011000011100000000111000
+00100000010000000011011000010010
+00100000010000000011011011001000
+01101111111000001100001111001111
+11000000000001000101100100100011
+01101111111001000100011000100010
+01100111111001000100010111000110
+01101111111000010100011000110100
+01100111111000010100011000110110
+01101111111000010100011000001111
+00100000001000000111110101111011
+01000111011000100100000000111000
+00100000010000000011011010010100
+00100100011101000000000000000000
+00100000010000000011011010011110
+00100000010000000111110111100110
+01101111111000011100011000011111
+00100000001000000011010111111010
+01000111011000101100000000111000
+00100000010000000011011010010100
+00100100011101000000000000000000
+00100000010000000011011010011110
+01101111111001000100010111000110
+00100000010000000111110100100111
+01100000010010100100000010101001
+00100000001000000010010000000110
+00100000010000000011011000000000
+00100100011101000000000000000000
+00100000001000000011000111000100
+01101111111000010100011000001001
+00100000010000000111110101111011
+00100000001101000011011000000110
+01101111111000111100010100110001
+00100000011110100000000000000000
+00100000001000000111110110111100
+01110000010001100001100100000000
+00011010001000001111111000000001
+01100111111000001100010110011111
+00100000010000000011011000001110
+01100111111000001100010100110000
+00011010010000100000110000000000
+00011010001000100111001000000000
+00100000001000000111110011011100
+01101111111000001100010110100000
+00011111111000010111111000000111
+01100111111000001100010110100000
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000001100011000011000
+01100111111000010100011000111001
+01000111011000110100000000111000
+00100000010000000011011000101010
+01101111111000001100010110010110
+11000000000000001011011000011111
+00100100001011000011011000111000
+00100100001101111011011000111000
+00100000010000000011011001000111
+01101111111000001100001111001111
+00011111111001100111110000001000
+00100000010000101101101100110011
+00100000010000000011011011111100
+00100000010000000011010101010011
+01101111111000001100010110010101
+00011111111000001111111000000001
+01100111111000001100010110010101
+00100000010000000011011001101101
+01000111011000111100000000111000
+01011000000000000000000000000000
+01100111111000001100011000010100
+01100111111000010100011000010101
+00100000011000000000000000000000
+01000111011001000100000000111001
+01111000010101111111110000000000
+00100000010000000011000101110100
+01101111111000001100010110010110
+11000000000000001011000101100010
+00011000000000000010101000000000
+01101111111000100100010110100110
+10011000000000000001001000000000
+01101000010010001000000000001000
+00100000010000000010000101110011
+00100000010000000010000110101010
+00100000010000000011000100000000
+00100000010101111011000101100010
+00100000011000000000000000000000
+01000111011001001100000000111001
+01101111111000001100001111001111
+11000000000001000101100111011111
+01101111111000001100011000011001
+00100100011110100000000000000000
+01101111111000010100011000010101
+00011111111000001111111000000001
+01100111111000010100011000010101
+01101111111000001100011000010110
+11000010100000100011011001001111
+00100000010000000011011001010101
+01101111111000010100011000111001
+00011111111000001111111000000001
+01100111111000010100011000111001
+00100000001000000011011000010101
+01000111011001010100000000111001
+00100000010000000011000111110011
+01101111111000001100010110010100
+00100000011110100000000000000000
+10011000000000000111001000000000
+11011000110000000100010100010000
+11011000101000000100010101110100
+00100000001000000111110011011100
+01000111011001011100000000111001
+01011000000000000000000000000000
+01100111111000010100011000010101
+01110000010001100001011100000001
+01110000000001100100110100111010
+00100000001000000111100000011001
+01000111011001100100000000111001
+01101111111000001100001111001111
+11000000000001000100110101110000
+01101000010010001100011000011000
+01101111111000001100011000111000
+10011000010001100111110000000000
+00100100001000010011011001110101
+00011000010000001000010000000001
+01100000010010001100011000011000
+01101111111000001100011000111000
+11000000000000101011011001100100
+01101111111000001100011000011000
+11000000000000110011011001101111
+11000000000001100011011001101111
+00100000011000000000000000000000
+01101111111000001100011000011000
+11000000000000011011011001101111
+11000000000000110011011001101111
+00100000011000000000000000000000
+11000101000101111011011001101011
+01100111111000001100010101010001
+00100000011000000000000000000000
+01100111111000001100010101010010
+00100000011000000000000000000000
+01101111111000001100010110100000
+11000100000000100000000000000000
+01101111111000001100010110100000
+01111001001111111111111000000100
+01100111111000001100010110100000
+00100000010000000011011001101000
+00100000010000000011011100000000
+00100000001000000011001000000001
+01101111111000100100010110100110
+01101000010010100100010111111011
+10011000010001100111110000000000
+00100000001000101011001000000001
+00100000010000000011011011101110
+00100000010000000011011100000000
+00100000001000000011001000000001
+01101111111000010100011000001011
+00100000001000000111110101111011
+01101111111000001100011000011001
+00100000010110100011011010000101
+01101111111000001100011000101111
+11000001000000001000000000000000
+00100000010000000011011001111100
+01101111111000010100011000010001
+00100000001000000111110101111011
+01000111011001101100000000111001
+01110000010001100001100100000001
+01110000010001011010000000000001
+00100000010000000011011000001110
+01100111111000001100010100110000
+01011000000000000000000000000000
+01100111111000111100010100110001
+01101111111000100100011000011011
+01100111111000100100010100111000
+01110000010001011001111100001100
+01101111111000001100010110100000
+01111001001000000111111000000011
+01100111111000001100010110100000
+00100000010000000011000111000100
+00100000001000000011010111100011
+01000111011001110100000000111001
+01111000001101000111110000000000
+00100000010000000010001111110000
+01101111111000011100000010111101
+00100000001110100111110110111110
+01101111111000001100000010010100
+00100000001110100111110110111110
+01101111111000001100011000101111
+11000000000000001111110110111110
+00100000011000000000000000000000
+01101111111000010100011000001101
+00100000001000000111110101111011
+00100000010000000011001000100100
+00100100011101000000000000000000
+00100000010000000011011010110101
+01101111111000010100011000110000
+00011111111000001111111000000001
+01100111111000010100011000110000
+01101000010010010100011000110010
+10011000010001100111110000000000
+00100000010000101011011010101010
+00100000001000000011010111100000
+01110000010001100010111100000000
+01011000000000000000000000000000
+01100111111000010100011000110000
+01011000000000000000000001100100
+01100111111000010100011000110010
+01110000010001100010111000000000
+01101111111000001100010110111111
+01100111111000001100010110111110
+00100000011000000000000000000000
+01101111111000001100010111000000
+00100000001000000011011010110001
+01101111111000001100011000101110
+00011111111000001111111000000001
+01100111111000001100011000101110
+11000000000000100011011010110011
+11000000000000101011011010101111
+00100000011000000000000000000000
+01110000010001100010111100000001
+01011000000000000000000000000000
+01100111111000010100011000110000
+00100000011000000000000000000000
+11011111001000000000000000000010
+11011000110000000100010110100110
+00100000010000000111110110111100
+01011000000000001111111111111111
+11101000010000010000000000000110
+10011000010001100111110000000000
+00100100010000101111110110111110
+11000010000000000011011011000011
+00100000011000000000000000000000
+01000111011001111100000000111001
+01101111111000001100010001001110
+00100100011110100000000000000000
+01101111111000010100010100000000
+11000011100001011000000000000000
+01101010001000010100011000000111
+00100000010000000011010110001100
+01100000010010001100011000111011
+01101111111000001100011001000000
+11000101000100110011011011010011
+01101111111000001100011001000011
+10011000010001100111110000000000
+00100100001000010011011011101101
+01101111111000001100011000111101
+00011111111001100111110000000010
+00100100001000010011011011011011
+01101111111000001100011000111101
+11000000000000000011011011101110
+00100000011000000000000000000000
+01101111111000001100011000111101
+01101000010010001100011000111110
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010001100011110100000000
+01101000010010001100011000111011
+01101111111000001100011000111111
+11000101000100110011011011100100
+01101111111000001100011001000010
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000001100011000111100
+11000000000000000011011011111010
+00011111111000001111111111111111
+01100111111000001100011000111100
+11000000000000010011011011110110
+11000000000000001011011011111000
+00100000001000000011011011111010
+01110000010001100011110100000000
+01101111111000001100011000111100
+11000000000000011011011011110100
+00011111111000001111111000000001
+01100111111000001100011000111100
+11000000000000001011011011111000
+11000000000000010011011011110110
+01110000010000010100000100000101
+00100000011000000000000000000000
+01110000010000010100000100000011
+00100000011000000000000000000000
+01110000010000010100000100000000
+00100000011000000000000000000000
+01110000010000010100000110000101
+00100000011000000000000000000000
+01101111111000001100011000111101
+00011111111000001111111000000001
+01100111111000001100011000111101
+00100000011000000000000000000000
+01101111111000001100011000111101
+00011111111001100111110000000010
+00100100010000010011011100001000
+01101111111000001100011000111101
+11000001000000000000000000000000
+00011111111000001111111111111111
+01100111111000001100011000111101
+00100000011000000000000000000000
+01110000010001100011110100000011
+00100000011000000000000000000000
+01000100111001111100000000011001
+01101111111000001100001111001111
+00100000001110100011011100001010
+11000000000000100011110011010001
+11000000000001001110000011001000
+11000000000001010100101000110001
+11000000000001110011011111000001
+11000000000000110110001010000110
+11000000000001101011101011011111
+11000000000001111011111010101110
+11000000000001100110011011110010
+11000000000001000100110100010001
+00100000011000000000000000000000
+00100000011101011000000000000000
+00100000010000000110111101111100
+01101111111000001100001111001111
+11000000000001001110000111110011
+11000000000000110110000111110011
+11000000000000100011110011011100
+11000000000001000100110110000010
+11000000000001111011111010100001
+11000000000001101011101011101110
+11000000000001110011011111010011
+00100000011000000000000000000000
+00100000010000000111011101100010
+00100000010000000111100000110001
+00100000010000000011011100101001
+01101111111000010100001111100100
+00100000001000000111110101111011
+01101111111000010100001111100010
+00100000001000000111110101111011
+01000100111010000100000000011010
+11011010001000000100010011101010
+00100000010000000111110110011001
+00100000011110100000000000000000
+00011111111000100010011000000000
+00100000010000000011011100110010
+00100000001000000011011100110110
+11011010011000000000000000000000
+00100000011000000000000000000000
+11000000000010000011011101000101
+11000000000010100011011100111100
+11000000000010101011011101000000
+00100000011000000000000000000000
+01101111111000010100001111100110
+00100000001000000111110101111011
+01101111111000010100001111011100
+00100000001000000111110101111011
+01101111111000010100001111100000
+00100000001000000111110101111011
+01101111111000010100010100000000
+01111001001000000111111000001001
+01100111111000010100010100000000
+00100000011000000000000000000000
+01110000010000111001101000000000
+01101111111000010100010100000000
+01111001001111111111111000001001
+01100111111000010100010100000000
+00100000001000000011011110100010
+01101111111000010100001111111010
+01111001001000000111111000000000
+01100111111000010100001111111010
+00100000011000000000000000000000
+01100111111000001000000111111011
+01000100111010001100000000011010
+01101111111000001000000111111011
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001000000111111011
+00100000010000000111011101101110
+00100000010000000011011110000011
+00100000010000000110101111100001
+01101111111000010100001111101100
+00100000010000000111110101111011
+00100000001000000011011101001010
+11101111111000001000000000010011
+00100000011110100000000000000000
+00011111111000001111111111111111
+11100111111000001000000000010011
+00100100011110100000000000000000
+00011010010000100111111000000000
+00100000001000000111110101111011
+11101111111000010000000000010011
+00100000011110100000000000000000
+00011111111000001111111111111111
+11100111111000010000000000010011
+00100100011110100000000000000000
+00011010010000100111111000000000
+00100000001000000111110101111011
+01101000010010010100010001000111
+00011000010000001010011000000001
+11011010010000000011011101100111
+00100000001000000011011101010101
+00100000010000000011011110111000
+11000000000000001011011101101010
+00100000001000000011011110011100
+01011000000000000000000000000010
+11100111111000001000000000010011
+00011000010000001010010000001000
+11101111111000010000000000010010
+00100000001000000111110101111011
+00100000010000000011011101110001
+00100000001000000011011110011100
+01011000000000000000000000000000
+01100111111000010100001111111000
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010100001111111010
+00100000011000000000000000000000
+01101111111000010100001111111010
+01111001001000000111111000000111
+01100111111000010100001111111000
+01011000000000000000000000000000
+01100111111000010100001111111010
+00100000011000000000000000000000
+11011000111000000000000000001001
+00100000001000000010010010111110
+11011000111000000000000000001001
+00100000001000000010010011000010
+01110000010000111111011000000101
+00100000001000000011011101111101
+11011010011000000100001111110110
+11011010010000000011011101111111
+00100000001000000011011101010101
+01110000000001100100110100001111
+00100000001000000111100000100100
+01110000000001100100110100010000
+00100000001000000111100000100100
+01110000000001100100110100001110
+00100000001000000111100000100100
+01110000000001100100110100001101
+00100000001000000111100000100100
+01110000000001100100110100010111
+00100000001000000111100000100100
+01110000000001100100110100011000
+00100000001000000111100000100100
+01110000000001100100110100010110
+00100000001000000111100000100100
+01110000000001100100110100010001
+00100000001000000111100000100100
+01110000000001100100110100010101
+00100000001000000111100000100100
+01110000000001100100110100010100
+00100000001000000111100000100100
+01110000000001100100110100010011
+00100000001000000111100000100100
+01110000000001100100110100011001
+00100000001000000111100000100100
+01110000000001100100110100011111
+00100000001000000111100000100100
+01111001001000000000000000001101
+00100000011000000000000000000000
+01111001001111111000000000001101
+00100000011000000000000000000000
+00100000010000000011011110111000
+11000000000000010011011110101110
+01011000000000000000000000000001
+11100111111000001000000000010011
+00011000010000001010001000000011
+00011000010000001010010000000110
+11101000010000001000000000010001
+00011010011000001010011000000001
+11100000010000001000000000010011
+00100000001000000011011101101101
+01011000000000000000000000000000
+11100111111000001000000000010011
+01101111111000010100010100000000
+11000011000001001011011110110100
+00100000010000000011000010100011
+00100000010000000011011110010100
+01101000010010010100010001000111
+00011000010000001010001000000010
+00011000010000001010010000000100
+00100000001000000011011110101010
+01101000010010010100010001000111
+00011000010000001010011000000000
+11101111111000001000000000010011
+00100000011000000000000000000000
+00100000010000000011011110111000
+11000000100000000011011110111111
+00100000001000000011011110011100
+00011000010000001010010000001010
+00100000001000000011011101101101
+00100000010000000111001110000100
+00100000011101011000000000000000
+01011000000000000011100110001011
+01100111111000010100001111100100
+01011000000000000011101010011100
+01100111111000010100001111101100
+01011000000000000011100110111110
+01100111111000010100010111111001
+01011000000000000011100100110011
+01100111111000010100001111101000
+01011000000000000011100100100100
+01100111111000010100001111100110
+01000100100101110100000000000101
+00100000010000000011100011110011
+00100000010000000011100100000100
+00100000010000000010100100110001
+00100000010000000011100100011101
+00100000001000000111100010011101
+01110000010000010100000100001010
+01110000010001011100111110000100
+01110000010001011100111010000100
+01011000111111111111111111111111
+01100111111000011100011010000000
+01110000010001101000001111111111
+01011000000000000000000000000000
+01100111111000011100001011011101
+01011000001000100000000100000001
+01100111111000011100001011100000
+01011000111111111111111111111111
+01100111111000011100011010001100
+01110000010001101000111111111111
+01110000010001101001101100000001
+01011000001001000001010000000100
+01100111111000011100010110101010
+01110000010001011010110100110100
+01110000010001101001000000010000
+01110000010001101001101000000001
+01110000010000111001011100000111
+01110000010000111000110000000001
+01011000000000000000000011110000
+01100111111000010100001110001101
+01011000000000000000100000000001
+01100111111000010100001110110010
+01110000010000111011101010000100
+01110000010000111011101110000100
+01011000010100000100011100001000
+01100111111000011100001001101101
+01011000010000110101011100110100
+01100111111000011100001001110000
+01011000010111110101001001000001
+01100111111000011100001001110011
+01110000010000110100110000011111
+01011000000001010000000100000010
+01100111111000011100001101001101
+01011000000000000000000000001000
+01100111111000010100001011010101
+01011000000000000000000000010000
+01100111111000010100001011010111
+01011000000000000000000000000000
+01100111111000010100001011011001
+01011000000000000000000100101100
+01100111111000010100001011011011
+01011000000000000100011010011101
+01100111111000010100010000000100
+01011000000000000000010000010100
+01100111111000101100011010011101
+01011000000000000100011011111101
+01100111111000010100001011111001
+00111000000000100000000000000001
+00111000000001100000000000000000
+00111000000010000001000000100010
+00111000000011000000000001100000
+01100111111001001100011011111101
+00111000000000100000000000000010
+00111000000001100000000011000000
+00111000000010100000000000010010
+00111000000011000000000000001100
+01100111111001001100011100000101
+00111000000000100000010100000010
+00111000000001000000000001001010
+00111000000010000000000001000000
+00111000000011000000100000001000
+01100111111001001100011100001110
+00111000000000010000001000101001
+00111000000001010100000000000000
+00111000000010000010000000000000
+00111000000011001010000000000000
+01100111111001001100011100010111
+00111000000000000000000000000010
+00111000000001000000000110000110
+00111000000010000011000000100000
+00111000000011000000010010100000
+01100111111001001100011100100000
+00111000000000000000011101001110
+00111000000001000000000010000000
+00111000000010010011001010100000
+00111000000011011100110100000100
+01100111111001001100011100101001
+00111000000000000010000001110100
+00111000000001000001000101010011
+00111000000010101111010011010010
+00111000000011011100110111010101
+01100111111001001100011100110010
+00111000000000000010000001100101
+00111000000001000000100000001000
+00111000000010100000001000000010
+00111000000011000010000010000000
+01100111111001001100011100111011
+00111000000000110000001000000000
+00111000000001000100101000000000
+00111000000010001001010011100000
+00111000000011000000100000000000
+01100111111001001100011101000100
+00111000000000100010101000000001
+00111000000001000000000000000000
+00111000000010000000000010100000
+00111000000011000000110000001000
+01100111111001001100011101001101
+00111000000000100000000100101000
+00111000000001000000001011000000
+00111000000010000100000000100000
+00111000000011000010000010101000
+01100111111001001100011101010110
+00111000000000000000000000010000
+00111000000001010100000000001000
+00111000000010101100000000000000
+00111000000011000011000000000100
+01100111111001001100011101011111
+00111000000000000000001000000000
+00111000000001001000101000000000
+00111000000010111111111100000000
+00111000000011000000000000110111
+01100111111001001100011101101000
+00111000000000000000001100000010
+00111000000001001000000001001010
+00111000000010000000000011100001
+00111000000011111100010000001000
+01100111111001001100011101110001
+00111000000000000000010011111111
+00111000000001000000000000000000
+00111000000010001111000000000000
+00111000000011000000100000000000
+01100111111001001100011101111010
+00111000000000100010100100000010
+00111000000001000000000000000000
+00111000000010000000000100000000
+00111000000011000000110000001000
+01100111111001001100011110000011
+00111000000000000000000100101000
+00111000000001000000010001000010
+00111000000010110010000000100000
+00111000000011000000011111111111
+01100111111001001100011110001100
+01011000000000000000000000000000
+01100111111000011100011110010101
+01110000010000010100100000001100
+01011000011001000011111100110101
+01100111111000011100000011000011
+01011000001110110010111110001111
+01100111111000011100000011000110
+01110000010000001010011100100000
+01110000010000001100100100000000
+01110000010000001100101000001000
+01110000010000001100101110110100
+01110000010000001001100100011000
+01110000010000010001110000111110
+01011000000001010000111000001000
+01100111111000011100000101100000
+01011000000000000000000000000011
+01100111111000010100000101100011
+01110000010000010110101000100000
+01110000010000010100001111111111
+01011000000000000000110000000000
+01100111111000010100000010011010
+01011000000000000000000000000100
+01100111111000011100000101000100
+01110000010000010100011100001000
+01110000010001000100111110100000
+01011000000000000000001010111100
+01100111111000010100010001010010
+01011000000000000000000110010000
+01100111111000010100010001010000
+01110000010001000101010000000011
+01110000010001000101010100001001
+01110000010000010100100111111111
+01011000000000000100000101001001
+01100111111000010100000010011100
+00100000010000000110101100101000
+11011010001000000100100010001101
+11011010010000000001111100000000
+11011111001000000000000000111100
+00100000010000000110101101100010
+00100000010000000110101100100101
+01101111111000001100100010001101
+00100100010110100011100010111001
+01101111111000011100100010001110
+00100100010110100011100010111011
+01101111111000011100100010010001
+00100100010110100011100010111101
+01101111111000001100100010010100
+00100100010110100011100010111111
+01101111111000001100100010010101
+00100100010110100011100011000001
+01101111111000001100100010010110
+00100100010110100011100011000011
+01101111111000001100100010010111
+00100100010110100011100011000101
+01101111111000001100100010011000
+00100100010110100011100011000111
+01101111111000001100100010011001
+00100100010110100011100011001001
+01101111111000101100100010011010
+00100100010110100011100011001011
+01101111111000001100100010011111
+00100100010110100011100011001101
+01101111111000001100100010100000
+00100100010110100011100011001111
+01101111111000010100100010100001
+00100100010110100011100011010001
+01101111111000011100100010100011
+00100100010110100011100011010011
+01101111111000001100100010100110
+00100100010110100011100011010101
+01101111111000001100100010100111
+00100100010110100011100011010111
+01101111111000010100100010101000
+00100100010110100011100011011001
+01101111111000010100100010101010
+00100100010110100011100011011011
+01101111111000001100100010101100
+00100100010110100011100011011101
+01101111111000001100100010101101
+00100100010110100011100011011111
+01101111111000001100100010110010
+00100100010110100011100011100001
+01101111111000001100100010110011
+00100100010110100011100011100011
+01101111111000001100100010110100
+00100100010110100011100011100101
+01101111111000100100100010110101
+00100100010110100011100011100111
+01101111111000001100100010111001
+00100100010110100011100011101010
+01101111111000100100100010111011
+00100100010110100011100011101111
+01101111111000100100100010111111
+00100100010110100011100011110001
+00100000011000000000000000000000
+01100111111000001100000101001000
+00100000011000000000000000000000
+01100111111000011100000011000011
+00100000011000000000000000000000
+01100111111000011100000011000110
+00100000011000000000000000000000
+01100111111000001100000010100111
+00100000011000000000000000000000
+01100111111000001100000011001001
+00100000011000000000000000000000
+01100111111000001100000011001010
+00100000011000000000000000000000
+01100111111000001100000011001011
+00100000011000000000000000000000
+01100111111000001100000010011001
+00100000011000000000000000000000
+01100111111000001100000100011100
+00100000011000000000000000000000
+01100111111000101100000101100000
+00100000011000000000000000000000
+01100111111000001100000101101010
+00100000011000000000000000000000
+01100111111000001100000101000011
+00100000011000000000000000000000
+01100111111000010100000010011010
+00100000011000000000000000000000
+01100111111000011100000101000100
+00100000011000000000000000000000
+01100111111000001100000101000111
+00100000011000000000000000000000
+01100111111000001100010001001111
+00100000011000000000000000000000
+01100111111000010100010001010010
+00100000011000000000000000000000
+01100111111000010100010001010000
+00100000011000000000000000000000
+01100111111000001100010001010100
+00100000011000000000000000000000
+01100111111000001100010001010101
+00100000011000000000000000000000
+01100111111000001100000101000001
+00100000011000000000000000000000
+01100111111000001100010111001111
+00100000011000000000000000000000
+01100111111000001100010111001110
+00100000011000000000000000000000
+01100111111000100100011010001100
+01110000010001101001110000000001
+00100000011000000000000000000000
+01101111111000001100011010011100
+00100100011110100000000000000000
+01101111111000001100100010111001
+01100111111000001100011010010000
+00100000011000000000000000000000
+01100111111000100100010110100110
+00100000011000000000000000000000
+01100111111000100100010110101010
+00100000011000000000000000000000
+01011000000000000000000000001111
+01100111111000010100011010000100
+01011000000000000000000100101100
+01100111111000010100011010000110
+00100000010000000011100101001111
+00100000010000000011100101100011
+00100000010000000011100011111011
+00100000001000000011100110000001
+11011010001000000100001011011101
+11011010010000000100011010000000
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100100011000101000000000000000
+01101111111000001100001011011101
+00011111111000001111111111111111
+01100111111000001100001011011101
+00100000011000000000000000000000
+01101111111000001100001001101101
+11011000101000000100001001101110
+10011000101000001010010000000000
+00011111111000001111111000010000
+01100111111000001100001001101101
+11011111001000000000000000000110
+11011010001000000100001011100010
+00011010010000100000101000000000
+11101000010000001000000000010001
+00011000010000010111111011110000
+00011111111100011111111000000000
+00100000010000000011100100010111
+11100111111000001000000000000101
+00011000010000010111111000001111
+00100000010000000011100100010111
+11100111111000001000000000000101
+00011010001000001010001111111111
+11000010000000000011100100001100
+00100000011000000000000000000000
+00011111111001100111110000001001
+00100000001000010011100100011011
+00011111111000001111111000110111
+00100000011000000000000000000000
+00011111111000001111111000110000
+00100000011000000000000000000000
+01110000010000101110001100010111
+01011000000000000000000000011011
+01100111111000010100001100110100
+00100000010000000010100110100100
+00100000010000000010100110111110
+00100000010000000010100111001010
+00100000001000000010100110101100
+00011010011000100111111000000000
+11000000000010100011100100110000
+11000000000010101011100100101000
+00100000011000000000000000000000
+01110000010001100111111100000000
+00100000010000000011100101001011
+01110000010001101000100100000000
+01110000010001101001101000000001
+01011000000000000000000000000000
+01100111111000011100011011110010
+00100000010000000111100010011101
+00100000001000000011011110001100
+01110000010001100111111100000001
+00100000010000000011101011011100
+00100000001000000011011110100000
+01101111111000010100001110011100
+11000000000010001011100100110110
+00100000011000000000000000000000
+01000100100101111100000000000101
+00011010010000100111001000000000
+00011010001000100000110000000000
+11011000101000000100011011110010
+00100000010000000111110011011100
+01101111111000001100011011110010
+00100000011110100000000000000000
+00100000010000000011100101001011
+01110000010001101000100100000100
+01101111111000001100011011110100
+11000001100000010000000000000000
+01101111111000001100011011111010
+11000000000000001011101001100000
+11000000000000010011101001100101
+11000000000000011011101001101111
+11000000000000100011101001101010
+11000000010100001011101001110100
+11000000010100010011101001110001
+11000000010100011011101001111010
+11000000010100100011101001110111
+00100000011000000000000000000000
+01101111111000001100011010011100
+00100000011110100000000000000000
+00100000010000000011101011001101
+00100000001000000011101011000001
+11011111001000000000000000000100
+11011010011000000100010110100110
+11011010010000000000000010101110
+00100000010000000011100101010110
+00011010011000001010011000000001
+11000010000000000011100101010010
+00100000011000000000000000000000
+11011010001000000000000000000001
+00011010010000111010010000000000
+00101010010011111111111000000111
+00100000010000001011100101011110
+00011010001000111010001000000000
+00011010001000100111111000000000
+11000011100001000000000000000000
+00100000001000000011100101010111
+11101111111000001000000000010011
+10011010001000101111111000000000
+11100111111000001000000000010011
+00011010010000101010010000010001
+00100000011000000000000000000000
+00100000010000000110101100101000
+11011010001000000100011010010001
+11011010010000000001111111011010
+11011111001000000000000000000110
+00100000010000000110101101100010
+00100000010000000110101100100101
+01101111111000110100011010010001
+00100000011110100000000000000000
+01101111111000010100011010010001
+01100111111000010100001011011101
+01101111111000001100011010010100
+01100111111000001100001011011111
+01101111111000001100011010010110
+01100111111000001100001011100000
+01101111111000001100011010010010
+00011111111001100111110000011010
+00100100011000010000000000000000
+01101111111000001100011010010011
+00100000011110100000000000000000
+00011000000010100111111000000000
+00011111111000010111111000000111
+00011111111000111111111000000000
+00011111111100100111111000000000
+01101000010010001100011010010010
+10011000010000001111111000000000
+01100111111000001100001011011110
+11011010001000000100001011011110
+11011010010000000001111111011011
+11011111001000000000000000000001
+00100000001000000110101100110011
+01101111111000001100011010011100
+00100100011110100000000000000000
+11011010001000000000000000000000
+00100000010000000111000010111001
+11011010001000000100011001010000
+11011010010000000001011101110000
+11011111111000000000000000000000
+00100000010000000111000011011110
+01101111111000001100011010010000
+00100000001000000111000100000000
+01000100100110000100000000000110
+11011111111000000000000000001010
+00100000010000000111000100001110
+00100000010000000011100110100111
+01101111111000001100011001111111
+00100100011110100000000000000000
+01101111111000010100011001100000
+00011111111000001111111000000001
+01100111111000010100011001100000
+00011111111100011111111000000000
+00100000010000000011100111111011
+00100000010000000011100110101110
+00100000010000000011101000001111
+01011000000000000100010100001110
+00011111111000001111111000000010
+00011111111000100000110000000000
+11011111001000000000000000001100
+11011111111000000000000000000000
+00100000010000000111110111010000
+00011111111000010111111011111111
+01101000010010001100010100011100
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001100010100010000
+01000100100110001100000000000110
+11000000010101010011101010001000
+11000000011001100011101000100001
+00100000011000000000000000000000
+01101111111000001100011010011100
+00100100011110100000000000000000
+00100000010000000011100111000100
+00100000010000000011100111100101
+00100000010000000011100111110001
+00100000010000000011100111010111
+00100000011000000000000000000000
+11011000010000000000000000000100
+11011000111000000000000000000101
+00100000010000000010000011011100
+00100000011101000000000000000000
+01111001001000000000000000100111
+01011000000000001000110010100000
+01100111111000010100010110100010
+01110000010001100010100000000001
+01101111111000001100010111001110
+00100000010000000010010101111001
+00100000010000000011001000010111
+00100000010000000011001111000111
+00100000010000000011000111110011
+00100000010000000011000101100010
+00100100011101111000000000000000
+00100000011000000000000000000000
+01110000010001011001111100001011
+01101111111000111100011001100110
+01100111111000111100010100110000
+01101111111000100100011001101101
+01100111111000100100010100110111
+00100000011000000000000000000000
+11011010001000000000000000001000
+11011000111000000000000000001100
+00100000010000000111110011110001
+00100000001110100011100111001111
+10011010001001100111110000000000
+00100000001000101011100111001011
+00100000011000010000000000000000
+11011000111000000000000000001100
+00100000010000000111110011110001
+00100000001110100011100111001111
+00100000001000000011100111001011
+01101111111000001100011010001000
+11000000000000010011100111010101
+11000000000000011011100111010011
+00100000011000000000000000000000
+01110000010001101000100000000001
+00100000011000000000000000000000
+01110000010001101000100000000000
+00100000011000000000000000000000
+01101111111000001100011010001001
+00100000011110100000000000000000
+01101000010010001100011010001000
+00101000010000011111111000000001
+00100100011000001000000000000000
+01110000010001101000100000000010
+11011010001000000001011101110000
+11011010010000000001011101110000
+11011111111000000000000000000000
+00100000010000000111000011011110
+01101111111000001100011010001010
+11011000111000000000000000001100
+00100000010000000111110011100011
+00100000011000000000000000000000
+01101000010010001100011010001000
+00101000010000011111111000000000
+00100100011000001000000000000000
+01110000010001101000100000000011
+11011010001000000100011001010000
+11011010010000000001011101110000
+11011111111000000000000000000000
+00100000010000000111000011011110
+01011000000000000000000000001100
+11011000111000000000000000001100
+00100000010000000111110011100011
+00100000011000000000000000000000
+01101111111000001100011010001001
+11011000010000000000001111101000
+10011000010011111111111000000000
+11011000010000000000001001110001
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00011111111000001111111000000001
+01100111111000001100011010001010
+00100000011000000000000000000000
+11000000000000000011101000000000
+11000000000000001011101000000011
+11000000000000010011101000000110
+11000000000000011011101000001001
+00100000001000000011101000001100
+01101111111000001100010110101010
+01100111111000001100010110100100
+00100000011000000000000000000000
+01101111111000001100010110101011
+01100111111000001100010110100100
+00100000011000000000000000000000
+01101111111000001100010110101100
+01100111111000001100010110100100
+00100000011000000000000000000000
+01101111111000001100010110101101
+01100111111000001100010110100100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010100011001100000
+00100000011000000000000000000000
+01101111111000001100011001011111
+00100000011110100000000000000000
+01101111111000001100011001111110
+11011000010000000000000000001111
+10011000010001100111110000000000
+00100100011000010000000000000000
+01110000010001100111111000000000
+01011000000000000000000000000000
+01100111111000010100011001111011
+00100000010000000011100101001011
+01110000010001101000100100000100
+01110000010000111000110000000000
+01110000010001101001100100000001
+01101111111000001100011010011010
+00100000011110100000000000000000
+01110000010001101000100100000000
+01110000010000111000110000000001
+00100000011000000000000000000000
+01000100100110010100000000000110
+01101111111000111100010100010000
+01100111111000111100011001110010
+01101111111000101100010100010111
+01100111111000101100011001111001
+11011010001000000100011001110011
+01101111111000100100011001100010
+00100000001110100011101001111101
+11011010010000000100011001100010
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100100011000101000000000000000
+11011010001000000100011001110111
+11011010010000000100011010000000
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100000001000101011101000111100
+11011010001000000100011001110111
+11011010010000000100001011011101
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100100001000101011101000111000
+00100000001000000011101001000000
+01110000010001100101111100000000
+01011000000000000000000000000000
+01100111111000100100011001100010
+00100000011000000000000000000000
+01101111111000001100011010011011
+11000000000000000011101000111000
+11000000000000001011101001000000
+00100000011000000000000000000000
+01110000010001100111111000000000
+01101111111000010100011001111011
+00100000001110100011101000011000
+00100000010000000011101001000111
+00100000010000000011101001010000
+00100000010000000011101001010101
+00100000001000000011101001011001
+01101111111000001100011010011100
+00100100011110100000000000000000
+01110000010000111000110000000001
+01110000010000111001011100000001
+01110000010001101001101000000000
+01110000010001101001100100000000
+01011000000000000000000000001111
+01100111111000010100011010000100
+00100000011000000000000000000000
+01101111111000001100011010011011
+00100000011110100000000000000000
+01011000000000000000000100101100
+01100111111000010100011010000110
+00100000011000000000000000000000
+01101111111000001100011001111100
+11000000000000001011101001100010
+11000000000000010011101001011101
+00100000011000000000000000000000
+01101111111000001100011001111011
+11000000000000001011101001100111
+11000000000000010011101001101100
+00100000011000000000000000000000
+01101111111000001100011001111011
+11000000000000001011101001110001
+11000000000000010011101001110100
+01110000010001101000100100001010
+00100000001000000011101011001001
+01101111111000001100011001111011
+11000000000000001011101001110111
+11000000000000010011101001111010
+01110000010001101000100100101000
+00100000001000000011101011000101
+01101111111000001100011001111100
+11000000000000001011101001110111
+11000000000000010011101001110001
+01110000010001101000100100111010
+00100000001000000011101011010101
+01101111111000001100011001111100
+11000000000000001011101001111010
+11000000000000010011101001110100
+01110000010001101000100101000000
+00100000001000000011101011010001
+01110000010001101000100100011100
+00100000010000000011101011001001
+00100000001000000011101011010101
+01110000010001101000100100100010
+00100000010000000011101011001001
+00100000001000000011101011010001
+01110000010001101000100100110100
+00100000010000000011101011000101
+00100000001000000011101011010101
+01110000010001101000100100101110
+00100000010000000011101011000101
+00100000001000000011101011010001
+11011010001000000100011001110111
+11011010010000000100011010000000
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100000001000101011101010001000
+11011010001000000100011001110111
+11011010010000000100001011011101
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100100011000101000000000000000
+00100000001000000011101010001000
+01101111111000111100010100010000
+01100111111000111100011001110010
+01101111111000001100011001011111
+11000000000000000011101010001110
+11000000000000001011101010010111
+00100000011000000000000000000000
+00100000010000000011101011011100
+01110000010001100101111100000001
+01110000010001100110011010111011
+01101111111000100100011001110011
+01100111111000100100011001100010
+01100111111000100100011001101011
+01101111111000100100001011011101
+01100111111000100100011001100111
+00100000011000000000000000000000
+11011010001000000100011001110011
+11011010010000000100011001100010
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100000001000101011101010001110
+01101111111000001100011001111110
+00011111111000001111111000000001
+01100111111000001100011001111110
+00100000010000000011101010100001
+00100000001000000011101010101110
+01101111111000001100011010011100
+00100100011110100000000000000000
+01101111111000001100011010011001
+00100000011110100000000000000000
+11011010011000000100011010000100
+11011010010000000011101010101000
+00100000001000000011011101011100
+01011000000000000000000000001111
+01100111111000010100011010000100
+01110000010000111001011100000111
+01110000010001101001100100000000
+01110000010001101001101000000001
+00100000011000000000000000000000
+01101111111000001100011010011011
+00100000011110100000000000000000
+11011010011000000100011010000110
+11011010010000000011101010110011
+00100000001000000011011101011100
+01011000000000000000000100101100
+01100111111000010100011010000110
+01110000010001101001101100000000
+00100000011000000000000000000000
+11101111111000001000000000000110
+11000000000000000011101011000001
+11000000000000001011101011000101
+11000000000000010011101011001001
+00100000011000000000000000000000
+11101111111000001000000000000110
+11000000000000000011101011001101
+11000000000000010011101011010001
+11000000000000001011101011010101
+00100000011000000000000000000000
+01101000010010001100011010001100
+00100000010000000110111011101101
+01101000010010001100011010001101
+00100000001000000110111011101101
+01101000010010001100011010001100
+00100000010000000110111011110001
+01101000010010001100011010001101
+00100000001000000110111011101101
+01101000010010001100011010001100
+00100000010000000110111011101101
+01101000010010001100011010001101
+00100000001000000110111011110001
+01101000010010001100011010001110
+00100000010000000110111011101101
+01101000010010001100011010001111
+00100000001000000110111011101101
+01101000010010001100011010001110
+00100000010000000110111011110001
+01101000010010001100011010001111
+00100000001000000110111011101101
+01101000010010001100011010001110
+00100000010000000110111011101101
+01101000010010001100011010001111
+00100000001000000110111011110001
+01101111111000001100011010011010
+00100000001110100010101011010001
+00100000001000000010101011001100
+01101111111000001100011010011100
+00100000011110100000000000000000
+00100000001000000010001110100101
+00100000010000000111001110000100
+01000100100110011100000000000110
+01101111111000001100011001100110
+00100000010110100010001110101001
+00100000010000000011101110010111
+00100000011101011000000000000000
+00100000010000000111000100011101
+01011000000000000011101111101100
+01100111111000010100001111100100
+01011000000000000011110010100100
+01100111111000010100001111101100
+00100000010000000011101110100101
+00100000010000000011101111000011
+00100000010000000011101111001100
+00100000001000000011101111100000
+01110000010000010100000100001010
+01110000010001011100111110000100
+01110000010001011100111010000100
+01011000111111111111111111111111
+01100111111000011100011001010101
+01110000010001100101100011111111
+01011000000000000000000000000000
+01100111111000011100001011011101
+01011000001000100000000100000001
+01100111111000011100001011100000
+01011000100001011000110000001100
+01100111111000011100011001011001
+01110000010001100101110000000101
+01110000010001100100100100001101
+01110000010001100110000100010010
+01011000001001000001010000000100
+01100111111000011100010110101010
+01110000010001011010110100110100
+01110000010000010100100000001100
+01011000011001000011111100110101
+01100111111000011100000011000011
+01011000001110110010111110001111
+01100111111000011100000011000110
+01110000010000001010011100100000
+01110000010000001100100100000000
+01110000010000001100101000001000
+01110000010000001100101110110100
+01110000010000001001100100011000
+01110000010000010001110000111110
+01011000000001010000111000001000
+01100111111000011100000101100000
+01011000000000000000000000000011
+01100111111000010100000101100011
+01110000010000010110101000100000
+01110000010000010100001111111111
+01011000000000000000110000000000
+01100111111000010100000010011010
+01011000000000000000000000000100
+01100111111000011100000101000100
+01110000010000010100011100001000
+01110000010001000100111110100000
+01011000000000000000001010111100
+01100111111000010100010001010010
+01011000000000000000000110010000
+01100111111000010100010001010000
+01110000010001000101010000000011
+01110000010001000101010100001001
+01110000010000010100100111111111
+01011000000000000100000101001001
+01100111111000010100000010011100
+00100000010000000110101100101000
+11011010001000000100100010001101
+11011010010000000001111100000000
+11011111001000000000000000111100
+00100000010000000110101101100010
+00100000010000000110101100100101
+01101111111000001100100010001101
+00100100010110100011101101011111
+01101111111000011100100010001110
+00100100010110100011101101100001
+01101111111000011100100010010001
+00100100010110100011101101100011
+01101111111000001100100010010100
+00100100010110100011101101100101
+01101111111000001100100010010101
+00100100010110100011101101100111
+01101111111000001100100010010110
+00100100010110100011101101101001
+01101111111000001100100010010111
+00100100010110100011101101101011
+01101111111000001100100010011000
+00100100010110100011101101101101
+01101111111000001100100010011001
+00100100010110100011101101101111
+01101111111000101100100010011010
+00100100010110100011101101110001
+01101111111000001100100010011111
+00100100010110100011101101110011
+01101111111000001100100010100000
+00100100010110100011101101110101
+01101111111000010100100010100001
+00100100010110100011101101110111
+01101111111000011100100010100011
+00100100010110100011101101111001
+01101111111000001100100010100110
+00100100010110100011101101111011
+01101111111000001100100010100111
+00100100010110100011101101111101
+01101111111000010100100010101000
+00100100010110100011101101111111
+01101111111000010100100010101010
+00100100010110100011101110000001
+01101111111000001100100010101100
+00100100010110100011101110000011
+01101111111000001100100010101101
+00100100010110100011101110000101
+01101111111000001100100010110010
+00100100010110100011101110000111
+01101111111000001100100010110011
+00100100010110100011101110001001
+01101111111000001100100010110100
+00100100010110100011101110001011
+01101111111000100100100010110101
+00100100010110100011101110001101
+01101111111000001100100010111001
+00100100010110100011101110001111
+01101111111000001100100010111010
+00100100010110100011101110010001
+01101111111000100100100010111011
+00100100010110100011101110010011
+01101111111000100100100010111111
+00100100010110100011101110010101
+00100000011000000000000000000000
+01100111111000001100000101001000
+00100000011000000000000000000000
+01100111111000011100000011000011
+00100000011000000000000000000000
+01100111111000011100000011000110
+00100000011000000000000000000000
+01100111111000001100000010100111
+00100000011000000000000000000000
+01100111111000001100000011001001
+00100000011000000000000000000000
+01100111111000001100000011001010
+00100000011000000000000000000000
+01100111111000001100000011001011
+00100000011000000000000000000000
+01100111111000001100000010011001
+00100000011000000000000000000000
+01100111111000001100000100011100
+00100000011000000000000000000000
+01100111111000101100000101100000
+00100000011000000000000000000000
+01100111111000001100000101101010
+00100000011000000000000000000000
+01100111111000001100000101000011
+00100000011000000000000000000000
+01100111111000010100000010011010
+00100000011000000000000000000000
+01100111111000011100000101000100
+00100000011000000000000000000000
+01100111111000001100000101000111
+00100000011000000000000000000000
+01100111111000001100010001001111
+00100000011000000000000000000000
+01100111111000010100010001010010
+00100000011000000000000000000000
+01100111111000010100010001010000
+00100000011000000000000000000000
+01100111111000001100010001010100
+00100000011000000000000000000000
+01100111111000001100010001010101
+00100000011000000000000000000000
+01100111111000001100000101000001
+00100000011000000000000000000000
+01100111111000001100010111001111
+00100000011000000000000000000000
+01100111111000001100010111001110
+00100000011000000000000000000000
+01100111111000100100011001011001
+00100000011000000000000000000000
+01100111111000001100011001100001
+00100000011000000000000000000000
+01100111111000001100011001001001
+00100000011000000000000000000000
+01100111111000100100010110100110
+00100000011000000000000000000000
+01100111111000100100010110101010
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000000000000000011101110011011
+11000000000000001011101110100000
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010100011001001011
+01011000000000000000000100101100
+01100111111000010100011001001101
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010100011001001011
+01011000000000000000000000001111
+01100111111000010100011001001101
+00100000011000000000000000000000
+00100000010000000110101100101000
+11011010001000000100011001001111
+11011010010000000001111111011010
+11011111001000000000000000000110
+00100000010000000110101101100010
+00100000010000000110101100100101
+01101111111000110100011001001111
+00100000011110100000000000000000
+01101111111000010100011001001111
+01100111111000010100001011011101
+01101111111000001100011001010010
+01100111111000001100001011011111
+01101111111000001100011001010100
+01100111111000001100001011100000
+01101111111000001100011001010000
+00011111111001100111110000011010
+00100100011000010000000000000000
+01101111111000001100011001010001
+00100000011110100000000000000000
+00011000000010100111111000000000
+00011111111000010111111000000111
+00011111111000111111111000000000
+00011111111100100111111000000000
+01101000010010001100011001010000
+10011000010000001111111000000000
+01100111111000001100001011011110
+11011010001000000100001011011110
+11011010010000000001111111011011
+11011111001000000000000000000001
+00100000001000000110101100110011
+11011010001000000100001011011101
+11011010010000000100011001010101
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100100011000101000000000000000
+01101111111000001100001011011101
+00011111111000001111111111111111
+01100111111000001100001011011101
+00100000011000000000000000000000
+11011111001000000000000000000100
+11011010011000000100010110100110
+11011010010000000000000010101110
+00100000010000000011101111010011
+00011010011000001010011000000001
+11000010000000000011101111001111
+00100000011000000000000000000000
+11011010001000000000000000000001
+00011010010000111010010000000000
+00101010010011111111111000000111
+00100000010000001011101111011011
+00011010001000111010001000000000
+00011010001000100111111000000000
+11000011100001000000000000000000
+00100000001000000011101111010100
+11101111111000001000000000010011
+10011010001000101111111000000000
+11100111111000001000000000010011
+00011010010000101010010000010001
+00100000011000000000000000000000
+11011000010000000000000000000000
+11011000110000000100011001011010
+11011111001000000000000000000010
+11101111111000001000000000000110
+01111001001111111111111000000111
+00011111111000100000111000000000
+01011000000000000000000000000000
+11111001001000000111111000000000
+10011000010000001000010000000000
+11000010000000000011101111100011
+01100000010010100100011001000100
+00100000011000000000000000000000
+01000100100110100100000000000110
+01101111111000010100011001100011
+00011111111000001111111000000001
+01100111111000010100011001100011
+00011111111010110111111000000000
+00100000010000000011101111110111
+00100000010000000011110000110010
+01101111111000001100011001100110
+11000000000000000011110000001011
+11000000000000001011110001000101
+00100000011000000000000000000000
+11000000000000000011101111111100
+11000000000000001011101111111111
+11000000000000010011110000000010
+11000000000000011011110000000101
+00100000001000000011110000001000
+01101111111000001100010110101010
+01100111111000001100010110100100
+00100000011000000000000000000000
+01101111111000001100010110101011
+01100111111000001100010110100100
+00100000011000000000000000000000
+01101111111000001100010110101100
+01100111111000001100010110100100
+00100000011000000000000000000000
+01101111111000001100010110101101
+01100111111000001100010110100100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010100011001100011
+00100000011000000000000000000000
+01110000010001100110101110101010
+01101111111000100100001011011101
+01100111111000100100011001101100
+00100000001000000011110000001111
+01111001001111111000000000100111
+01011000000000000010111011100000
+01100111111000010100010110100010
+01101111111000111100011001101011
+01100111111000111100010100110000
+01101111111000101100011001110010
+01100111111000101100010100110111
+11011111001000000000000000001100
+11011111111000000000000000000000
+11011000110000000100010100110000
+00100000010000000111110111010000
+11100111111000001000000000000101
+01011000000000000000000000001100
+00011111111000001111111000000001
+01100111111000001100010110011111
+00100000001000000011110000011111
+01101111111000001100010111001111
+00100000010000000010010101111001
+00100000010000000011001000010111
+01110000000000000011010110001000
+00100000010000000011000111000100
+00100000010000000011011000101010
+00100000010000000011000101100010
+01101111111000001100010110010110
+11000000000000001011110000101011
+00100100001101111011110000101011
+00100100001011000011110000101011
+00100000010000000011110000110000
+00011000000010100111111000000000
+11011000010000000000000111111111
+10011000010000010111111000000000
+00011111111000001111111011111010
+00100000001000000111110010010011
+01110000010001100110000000000001
+00100000011000000000000000000000
+01101111111000001100011001100000
+00100000011110100000000000000000
+01110000010001100110000000000000
+01101111111000001100010100010000
+11000000010111011011110000111000
+00100000011000000000000000000000
+01101111111000001100011001100110
+00100100011110100000000000000000
+11011010001000000100010100010101
+11011010010000000100001011011101
+11011111001000000000000000000100
+00100000010000000111110101100110
+00100100011000101000000000000000
+00100000010000000010001110100101
+01110000010001100110011000000001
+01101111111000100100010100010001
+01100111111000100100011001100111
+01100111111000100100011001110000
+00100000001000000011101110100000
+01000100100110101100000000000110
+01101111111000001100011001100101
+00011111111000001111111000000001
+01100111111000001100011001100101
+01110000010001100110101100000000
+01011000000000000000000000000000
+01100111111000011100011001110100
+01110000010001100110101111001100
+00100000010000000011110001010010
+00100000010000000011110010000011
+01101111111000001100011001100101
+11000000011001000011110010001010
+00100000001000000011110000001111
+01101000010010001100011001100001
+00100000010000000110111011101101
+00100000010000000011110001100110
+00100000010000000011110001011000
+01101000010010001100011001100001
+00100000001000000110111100001011
+01101000010010001100011001011100
+00100000010000000110111011101101
+01101000010010001100011001011100
+00100000010000000110111011010111
+00100000010000000110111011100000
+00100000001000001011110001111101
+01101000010010001100011001011100
+00100000010000000110111011110001
+00100000000000000000010010110000
+01101000010010001100011001011011
+00100000010000000110111011010111
+00100000010000000110111011100000
+00100000001000001011110001111010
+00100000011000000000000000000000
+01101000010010001100011001011001
+00100000010000000110111011101101
+01101000010010001100011001011001
+00100000010000000110111011010111
+00100000010000000110111011100000
+00100000001000001011110001110100
+01101000010010001100011001011001
+00100000010000000110111011110001
+00100000000000000000010010110000
+01101000010010001100011001011010
+00100000010000000110111011010111
+00100000010000000110111011100000
+00100000001000001011110001110111
+00100000011000000000000000000000
+01110000010001100111010000000001
+01110000010001100110010100000000
+00100000011000000000000000000000
+01110000010001100111010000000010
+01110000010001100110010100000000
+00100000011000000000000000000000
+01110000010001100111010100000001
+01110000010001100110010100000000
+00100000011000000000000000000000
+01110000010001100111010100000010
+01110000010001100110010100000000
+00100000011000000000000000000000
+01110000010001100111011000000001
+01110000010001100110010100000000
+00100000011000000000000000000000
+01101111111000011100011001110100
+00100000001110100011110010011001
+01011000000000000000000000000000
+01100111111000010100011001001011
+01011000000000000000000000001111
+01100111111000010100011001001101
+00100000001000000011110010010110
+01101111111000001100011001100101
+00011111111000001111111111111111
+01100111111000001100011001100101
+00100000011000000000000000000000
+01101111111000001100011001100110
+11000001000000001000000000000000
+01101111111000001100011001001010
+00011111111000001111111000000001
+01100111111000001100011001001010
+11000000000000010011110010010110
+11000000000000100011110010011000
+00100000011000000000000000000000
+01101000010010001100011001001001
+00100000001000000110111011101101
+01110000010001100100101000000000
+01101000010010001100011001001001
+00100000001000000110111011110001
+01101111111000010100011001001101
+00100000011110100000000000000000
+01101000010010010100011001001011
+10011000010000101111111000000000
+00100000010110100011110010100110
+01101111111000010100011001001011
+00011111111000001111111000000001
+01100111111000010100011001001011
+00100000011000000000000000000000
+00100000010000000011110010001110
+00100000001000000011110010011011
+00100000010000000010001110100101
+00100000010000000011110010101011
+00100000010000000011110011000010
+11011000010111111111111111111111
+00100000001000000010010000000110
+11011111001000000000000000011000
+01110000010001100100100000000000
+01101000010010001100011001001000
+00011000010000100000111000000000
+01101111111000100100011001000100
+10101111111011111111111111111111
+00100000001000001011110010110011
+00011000010000011000010010000000
+00100000010000000110111011010111
+01101111111000001100011001001000
+00011111111000001111111000000001
+01100111111000001100011001001000
+11000010000000000011110010101101
+00100000011000000000000000000000
+01011000000000000000000000110000
+00011000101000100000110000000000
+11101000010000001000000000000110
+10011000010000001111111000000000
+11100111111000001000000000000101
+11011000101000000000000000010110
+11011000110000000100011001011011
+11000010000000000011110011000111
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111001100000000000010110
+11011000101000000000000000010110
+11011000110000000100011001011010
+11011111001000000000000000000010
+11101111111000001000000000000110
+01111001001111111111111000000111
+00011111111001101111110000000010
+00100000010000000111110101100100
+00011000000001111111111000000000
+10011000101000001000101000000000
+00011000000001110111111000000000
+00100100001110100011110010111001
+01011000000000000000000000000011
+00100000001000000011110010111010
+01011000000000000011110100000100
+01100111111000010100010111110111
+01011000000000000011110111111110
+01100111111000010100010111111011
+01011000000000000011111000001111
+01100111111000010100010111111101
+01011000000000000011110111010000
+01100111111000010100010111111001
+01011000000000000011110100010011
+01100111111000010000100000110111
+00100000001000000111100100000010
+01000100100110110100000000000110
+00100000010000000011110100001001
+00100000010000000011110011111111
+01101111111000001100011010000000
+00101111111011111111111000000101
+00100000001000001011110011100101
+01101111111000001100011010000000
+00101111111011111111111000000110
+00100000010000001011001001001010
+01101111111000001100011010101101
+01100111111000001100000101000001
+01110000010001011110100111111111
+01011000000000000000100101111101
+01100111111000010100011001010111
+01011000000000000000101001111101
+01100111111000010100011001011001
+01011000000000000000101101111101
+01100111111000010100011001011011
+01011000000000000000110001111101
+01100111111000010100011001011101
+01110000010001011110100010000101
+01110000010001101010101100000000
+01110000010001100100001000000000
+00100000010000000011001001100000
+01101111111000001100011010000000
+00101111111011111111111000000011
+00100000010000001011001001100011
+00100000010000000011001101111000
+00100000010000000011001001100110
+00100000010000000011001000111010
+01101111111000001100011010001010
+01100111111000001000100000111001
+01101111111001001100011010000001
+01100111111001001000100000111010
+00100000011000000000000000000000
+01110000010000001001100100011000
+01101111111000001100011010000000
+11000100000000111000000000000000
+01110000010000001001100100010000
+00100000011000000000000000000000
+01101111111000001100011000100111
+11000000000000000011110111000000
+11000000000000001011110100111101
+11000000000001111011110100111001
+00100000011000000000000000000000
+01000100100110111100000000000110
+11011010010000000001111111011111
+11011010001000000100011001011111
+11011111001000000000000000000001
+00100000001000000110101101100010
+01000100100111000100000000000111
+11011111001000000000000000000001
+11011010001000000100011001011111
+11011010010000000001111111011111
+00100000001000000110101100110011
+01101111111000001100011010000000
+11000010100000100011110100010111
+01101111111000001100011001011111
+11000000101011010011110100011011
+01110000010001100101111101011010
+01101111111100100001010000000100
+01111001001000000111111000011101
+01100111111000100000011110010010
+01000100100111001100000000000111
+00100000010000000011110100110011
+00100000010000000111100101010110
+00100000010000000011110100100000
+00100000001000000011110100101001
+01101111111000001000100000111010
+00100000011110100000000000000000
+01101111111000001100011001011111
+11000000001011010011110100100111
+01101111111000100000100000111011
+01100111111000100000011110010010
+00100000011000000000000000000000
+01101111111000100000100000111111
+00100000001000000011110100100101
+01101111111000001100011001011111
+11000000001011010011110100101111
+01011000000000001001001010101010
+01100111111000010000011110000101
+01110000000001111011011000011010
+00100000011000000000000000000000
+01011000000000001001001011000101
+01100111111000010000011110000101
+01110000000001111011011001000001
+00100000011000000000000000000000
+01101111111000001100011010001011
+00100000011110100000000000000000
+11011000110000000100011010001011
+11011000101000000000011111111011
+11011111001000000000000000100000
+00100000001000000111110011011100
+00100000010000000011010000110110
+00100000010000000011110111001000
+00100000010000000011110110001110
+00100000001000000011110100111010
+00100000010000000011010000110110
+00100000010000000011110111001000
+00100000010000000011010000111111
+00100000010000000011110110001110
+00100000001000000011110100111110
+01000100100111010100000000000111
+00100000010000000011110101001000
+00100000010000000011110101010111
+00100000010000000011110101100111
+00100000010000000011110110000001
+00100000001000000011110101110100
+01101111111000001100011001111111
+00100000011110100000000000000000
+11011000111000000000000000001101
+00100000010000000111110011110001
+00100100011110100000000000000000
+01110000010001100111111100000000
+01011000000000000000000000000001
+01100111111000001000100011110001
+01011000000000000000000000000000
+11100111111000111000000000000101
+01110000000010001110101000100000
+01101111111000001000100011101011
+01111001001000000111111000000010
+01100111111000001000100011101011
+00100000011000000000000000000000
+01101111111000001100011001111100
+00100000011110100000000000000000
+11011000111000000000000000001110
+00100000010000000111110011110001
+00100100011110100000000000000000
+01110000010001100111110000000000
+11011000101000000000100100000001
+00100000010000000111110010011011
+01101111111001000000100100000001
+01100111111001000100011001101000
+01110000000010010000000100000000
+01110000000010001110100100010000
+01101111111000001000100011101011
+01111001001000000111111000000001
+01100111111000001000100011101011
+00100000011000000000000000000000
+01101111111000001100011001111110
+00100000011110100000000000000000
+11011000111000000000000000001010
+00100000010000000111110011110001
+00100100011110100000000000000000
+01110000010001100111111000000000
+11011000101000000000100100101001
+00100000010000000111110010011011
+01110000000010010010100100000010
+01101111111000010000100100101001
+01100111111000010100011001110110
+01110000000010001110101000100010
+00100000001000000011110101010011
+01101111111000001100011001111101
+00100000011110100000000000000000
+11011000111000000000000000001100
+00100000010000000111110011110001
+00100100011110100000000000000000
+01110000010001100111110100000000
+11011000101000000000100100100001
+00100000010000000111110010011011
+01110000000010010010000100000011
+01101111111000011000100100100001
+01100111111000011100011001110011
+01110000000010001110101000100001
+00100000001000000011110101010011
+01101111111000001100011010101110
+00100000011110100000000000000000
+11011000111000000000000000000110
+00100000010000000111110011110001
+00100100011110100000000000000000
+01110000010001101010111000000000
+11011000101000000000100100100001
+00100000010000000111110010011011
+01110000000010010010000100000101
+01101111111000100000100100100001
+01100111111000100100011010110011
+01110000000010001110101000100011
+00100000001000000011110101010011
+01000100100111011100000000000111
+01101111111000001000100011011111
+00100000010110100011110111011010
+00100000010000000111100011110110
+01101111111000001000100011010101
+00100000011110100000000000000000
+01110000000010001101010100000000
+01101111111000010000100011010011
+11011000010000000000001010111010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000001000100001010011
+11000001110111010000000000000000
+01101111111000001000100001010100
+11000000010100000011110110100011
+11000000010100001011110110101001
+11000000010100110011110110110101
+11000000010100111011110110110111
+11000000010101001011110110111101
+01110000000010001101011000000000
+00100000011000000000000000000000
+01101111111000001000100001010101
+11000000010000001011110110100110
+00100000001000000011110110100001
+00100000010000000011001011011010
+01110000000010001101011000000001
+00100000011000000000000000000000
+01101111111000001000100001010101
+11000000000000001011110110101110
+11000000010000100011110110110001
+11000000010100111011110110110011
+00100000001000000011110110100001
+01101111111000001100010111101100
+01100111111000001000100010010100
+00100000001000000011110110100111
+00100000010000000011010000110111
+00100000001000000011110110101110
+01110000000010001001010010100001
+00100000001000000011110110100111
+01110000000010001001010000010101
+00100000001000000011110110100111
+01101111111000001100011000101101
+11000000000000000011110110111011
+11000000000000001011110110110011
+00100000011000000000000000000000
+01110000000010001001010010100000
+00100000001000000011110110100111
+01101111111000100100011010110111
+01100111111000100000100010010100
+00100000001000000011110110100111
+00100000010000000011001111011000
+00100000010000000011001111011101
+00100000010000000011010000000011
+00100000010000000011110111001000
+00100000010000000011010000111111
+00100000010000000011010001011110
+00100000010000000011110110001110
+00100000001000000011110111000001
+01000100100111100100000000000111
+01101111111000001100011000101101
+11000001100000000000000000000000
+00100000010000000011010000111010
+00100000010000000011110101000010
+01101111111000001100011000100111
+00100100011110100000000000000000
+00100000001000000011010011100000
+01101111111000001100010110100000
+11000000000000001011110111010011
+11000000000000010011110111011100
+01101111111000001100011010101100
+11000010100000000011110111100010
+00100000001000000011110111011110
+01101111111000001100001111001111
+11000001100000100000000000000000
+01110000010001101010110000000011
+00100000011000000000000000000000
+01110000010001101010110000000000
+00100000011000000000000000000000
+01101111111000001100011010101100
+11000010100000001011110111100110
+01101111111000001100011000101000
+11000000000000001011110111101101
+11000000000000011011110111110110
+00100000011000000000000000000000
+01101111111000001100011010101100
+01111001001111111111111000000000
+01100111111000001100011010101100
+00100000001000000011110111101001
+01101111111000001100011010101100
+01111001001111111111111000000001
+01100111111000001100011010101100
+01110000010001011001111100000001
+01011000000000000000000011111111
+01100111111000001100010100110000
+00100000011000000000000000000000
+01000100100111101100000000000111
+01110000010001100010100000000001
+01101111111000001100011000101101
+11000001000000000000000000000000
+01101111111000001100011000100111
+00100100011110100000000000000000
+00100000010000000011001101011011
+00100100011101111000000000000000
+00100000001000000011001011101000
+01101111111000001100010100010000
+11000000000000001011001011101000
+11000000011111111011001011101000
+01110000000010001101011100000000
+01110000010001011001111100000001
+01101111111000001100011000111000
+01100111111000001100010100110000
+00100000011000000000000000000000
+01011000000000000000000000000001
+01100111111000001000100011110001
+01101111111000111100011000000010
+11100111111000111000000000000101
+01101111111000001100011000000010
+00100100010110100011111000000111
+01101111111000001100011000000010
+00100000010110100011111000001011
+00100000001000000011110101010010
+01110000010001100111111100000001
+01011000000000000000000110000000
+11011000111000000000000000001101
+00100000001000000111110011100011
+01110000010001100111111100000000
+01011000000000000000000000000000
+11011000111000000000000000001101
+00100000001000000111110011100011
+01101111111000001100011000000010
+11000000000000000011111000010101
+11000000000000010011111001100000
+11000000000000011011111000110000
+11000000000000101011111001001000
+00100000001000000011001110010111
+01101111111000001100011000000100
+01100111111000001100011000101000
+01110000010001100000010000000000
+11011000101000000000100100000001
+11011000110000000100011000000011
+11011111001000000000000000001000
+00100000010000000111110011011100
+01101111111001000000100100000001
+00100100010110100011111000101000
+01101111111001000000100100000001
+00100000010110100011111000101100
+01101111111001000000100100000001
+01100111111001000100011001100000
+01101000010011000100011001101000
+10011000010001100111110000000000
+00100100010000101011110101100010
+01101111111001000100011001100000
+01100111111001000100011001101000
+00100000001000000011001110010111
+01110000010001100111110000000001
+01011000000000000000000110000000
+11011000111000000000000000001110
+00100000001000000111110011100011
+01110000010001100111110000000000
+01011000000000000000000000000000
+11011000111000000000000000001110
+00100000001000000111110011100011
+11011000101000000000100100100001
+11011000110000000100011000000010
+11011111001000000000000000000011
+00100000010000000111110011011100
+01101111111000010000100100100010
+00100100010110100011111001000000
+01101111111000010000100100100010
+00100000010110100011111001000100
+01101111111000011000100100100001
+01100111111000011100011001110000
+01101000010010011100011001110011
+10011000010001100111110000000000
+00100100010000101011110101111111
+01101111111000011100011001110000
+01100111111000011100011001110011
+00100000001000000011001110010111
+01110000010001100111110100000001
+01011000000000000000000110000000
+11011000111000000000000000001100
+00100000001000000111110011100011
+01110000010001100111110100000000
+01011000000000000000000000000000
+11011000111000000000000000001100
+00100000001000000111110011100011
+11011000101000000000100100100001
+11011000110000000100011000000010
+11011111001000000000000000000100
+00100000010000000111110011011100
+01101111111000011000100100100010
+00100100010110100011111001011000
+01101111111000011000100100100010
+00100000010110100011111001011100
+01101111111000011000100100100010
+01100111111000011100011010101111
+01101000010010011100011010110011
+10011000010001100111110000000000
+00100100010000101011110110001100
+01101111111000011100011010101111
+01100111111000011100011010110011
+00100000001000000011001110010111
+01110000010001101010111000000001
+01011000000000000000000110000000
+11011000111000000000000000000110
+00100000001000000111110011100011
+01110000010001101010111000000000
+01011000000000000000000000000000
+11011000111000000000000000000110
+00100000001000000111110011100011
+11011000101000000000100100101001
+11011000110000000100011000000010
+11011111001000000000000000000010
+00100000010000000111110011011100
+01101111111000010000100100101001
+00100100010110100011111001110000
+01101111111000010000100100101001
+00100000010110100011111001110100
+01101111111000010000100100101001
+01100111111000010100011001110110
+01101000010010010100011001111001
+10011000010001100111110000000000
+00100100010000101011111001111000
+01101111111000010100011001110110
+01100111111000010100011001111001
+00100000001000000011001110010111
+01110000010001100111111000000001
+01011000000000000000000110000000
+11011000111000000000000000001010
+00100000001000000111110011100011
+01110000010001100111111000000000
+01011000000000000000000000000000
+11011000111000000000000000001010
+00100000001000000111110011100011
+01110000000010001110101000100010
+00100000001000000011110101010011
+01101111111000001100001111001111
+11000001100000100000000000000000
+01101111111000001100011001011111
+11000001001011010000000000000000
+01110000010001101010101100000001
+00100000011000000000000000000000
+01101111111000001100001111001111
+11000001100000100000000000000000
+01101111111000001100011010101011
+00100000011110100000000000000000
+01110000000001100101011000000000
+01110000010001100101111101011010
+00100000010000000011110100001110
+00100000010000000011110100001001
+01101111111000001000011001010110
+00011111111000001111111000000001
+01100111111000001000011001010110
+11000000011111111110110010011001
+01101111111000001100011001011111
+11000000101011010011111010000101
+00100000001000000110110010011001
+00100000010000000011111010011010
+00100100001101000010000000000010
+01101111111000001100100010001101
+00100000001110100010000000000010
+01101111111000001100100100001111
+11000001011111111000000000000000
+00011111111000100000111000000000
+01101111111000100000011001111011
+10101111111011000000000000000000
+00100000010000001100011010011011
+00100000001000000010000000000011
+01111000010101000111110000000000
+01101111111001000100100010001110
+11000011000001000100111000011011
+01101111111100001000000100110010
+11000010100000100100111000011011
+01111000001101000111110000000000
+00100000001000000100111000011011
+00100000010000000110011111111111
+00100000010000000011111010100101
+00100000010000000011111010101010
+00100000001000000011001001100110
+01110000010000001001100100010000
+01101111111001000100100010001110
+11000011100001001000000000000000
+01110000010000001001100100011000
+00100000011000000000000000000000
+00100000010000000011001001100000
+01101111111001000100100010001110
+11000100000010100000000000000000
+00100000001000000011001001100011
+00100000010000000111001110000100
+00100000010000000011111010111101
+00100000010000000011111011111001
+00100000010000000100000011101011
+00100000010000000110111101001110
+00100000011101011000000000000000
+00100000010000000100000001001110
+01101111111000001100011001111000
+11000000000000100100100111010111
+01101111111000010100010100000000
+11000010100001100100100011000101
+01110000010010001001011000000000
+00100000010000000100001011100011
+01110000010010001001011000000001
+00100000001000000100001100001110
+00100000011101011000000000000000
+00100000010000000011010111001000
+00100000010000000011001000111010
+00100000010000000011111011011011
+00100000010000000100000101100001
+00100000010000000100001000000011
+00100000010000000100000110110111
+00100000010000000010101000011111
+01000100100111110100000000000111
+01101111111001000100100010001110
+11000010100001111011111100110001
+11000010100001110011111110010110
+11000010100001100011111111010101
+00100000011000000000000000000000
+01011000000000001001000000000000
+01100111111000010100001011111001
+01101111111001000100100010001110
+11000010100100011110100000001100
+01011000000000001001010110111000
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100000110100000001100
+11000010100100001110100000001100
+01011000000000001001010011111100
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100010110100000001100
+01011000000000001001010001001010
+01100111111000010100100011010110
+00100000001000000110100000001100
+00100000010000000011111011110100
+00100000010000000011111011001011
+00100000010000000100000010010011
+01101111111000001100101011000001
+01100111111000001100101011000010
+01110000010010011010000000000000
+11011000101000000100011101011111
+11011111001000000000000000010100
+00100000010000000111110010100011
+01101111111000001100001001101101
+00011111111001100111110000001100
+00100100001000010011111011110010
+01011000000001101111111100000110
+01100111111000011100011101011111
+01011000000000000000001100000000
+11100111111000011000000000000101
+01011000000000000000000010000000
+11100111111000001000000000000101
+01101111111000001100001001101101
+00011111111000001111111000000001
+00011111111000100111001000000000
+11011000110000000100001101101101
+00100000001000000111110011011100
+11011000101000000100011101011111
+00100000001000000011111011101101
+11011000010000000000000000000000
+01101111111001000100100010001110
+11000010100001111110100000011101
+11011000010111111111111111111111
+00100000001000000110100000011101
+00100000010000000111110111100110
+01101000010010001100100100001111
+00100000010000000100111100001010
+01101111111001000100100010001110
+00101111111011111111111000001010
+00100000010000001010001110100101
+01011000000000000100100100011111
+01100111111000010100100101001000
+01011000000000000100100100100111
+01100111111000010100100101001010
+01011000000000000100100100111100
+01100111111000010100100101001100
+00100000010000000011111100001111
+01101111111000010100100101001010
+00011111111000100010010000000000
+11011111001000000000000000010100
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100100010000001110111100001011
+00011010010000001010010000000001
+11000010000000000011111100001001
+00100000011000000000000000000000
+01101111111000010100100101001000
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00011000010001100111110011111111
+00100100010000101011111100011000
+00011010010000001010010000000001
+11000010000000000011111100010010
+00100000001000000010001111100001
+00100000010000000110111100001011
+11101000010000001000000000010010
+00100000001000000110111011000000
+11011000110000001000000001110000
+11011111001000000000000000010000
+11101111111000001000000000000110
+00100100001110100011111100100010
+01011000000000000000000001000000
+00011000110000001000101111111111
+11100111111000001000000000000101
+11000010000000000011111100011101
+11011111111000001000000011011100
+10011000110001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000001000
+11011000110000001000000011010100
+00100000001000000011111100011101
+01101111111000001100100110100000
+00100000001110100110111010101100
+00100000001000000110111010100101
+01101111111000010100101010111101
+01101000010010010100101010111111
+10011000010001100111110000000000
+00100100011000010000000000000000
+00100000001000000010001100111110
+01101111111000001100011001111000
+11000000000000000011111100110101
+11000000000000001011111100111111
+00100000011000000000000000000000
+11011011000000000000000000001000
+01101111111000010100101010111111
+10011011000001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+01100111111000010000011001001110
+11011111111000000001111110111100
+11011000010000000000000000000100
+11011101011000000000000000000100
+00100000001000000011111101001001
+11011011000000000000000000100000
+01101111111000010100101010111111
+10011011000001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+01100111111000010000011001001110
+11011111111000000001111110110000
+11011000010000000000000000010000
+11011101011000000000000000010000
+00100000001000000011111101001001
+01100111111000010000011001010000
+01100000010010001000011001010110
+11011010001000000100101010100101
+11011010011000000000000000000000
+01101111111000010000011001010000
+00011111111000100010010000000000
+01101111001000001000011001010110
+11011010001000000100101010100101
+00100000010000000110101101100010
+01101111111001000100101010100101
+01101000010011000100101010101101
+10011000010000011111111000000000
+01101000010011000100101010110101
+10011000010000011111111000000000
+00100000001110100011111101011111
+00011010011000001010011000000001
+01101111111000010000011001001110
+10011010011001100111110000000000
+01101111111000010000011001010000
+10011011000001100111111000000000
+01100111111000010000011001010000
+00100000001000000011111101001101
+00011010011001100111110000000000
+00100000001000101011111101110010
+01101111111000010000011001010000
+10011011000000001111111000000000
+10011101011001100111111000000000
+01100111111000010000011001010000
+01101111111000010000011001010000
+00011111111000100010010000000000
+01101111001000001000011001010110
+11011010001000000100101010100101
+00100000010000000110101101100010
+01101111111001000100101010100101
+01101000010011000100101010101101
+10011000010000011111111000000000
+01101000010011000100101010110101
+10011000010000011111111000000000
+00100000001110100011111101110100
+01101111111000010000011001010000
+00100000001000000011111101100011
+01100101011000001100101010111101
+00100000011000000000000000000000
+01011000000000000001111111000000
+01101000010010010000011001010000
+10011000010001100111111000000000
+01100111111000010100101010111101
+00011000010000100111111000000000
+10011101011000001010010000000000
+01101111001000001000011001010110
+11011010001000000100101010100101
+00100000010000000110101101100010
+01101111111000001100011001111000
+11000000000000000011111110000001
+11000000000000001011111110000111
+00100000011000000000000000000000
+01101111111000110100101010100101
+01100111111000100100011010100011
+01101111111000100100011010100011
+01100111111000100100010111111111
+01100111111000100100010110100110
+00100000011000000000000000000000
+01101111111000001100101010100101
+00011111111001100111110000000011
+00100100010000010111110111001100
+01100111111000001100101010100001
+01101111111000001100101010100110
+01100111111000001100011001111001
+01101111111000110100101010100111
+01100111111000110100011001111010
+01101111111000110100101010101101
+01100111111000110100011010000000
+01101000010010010100101010110011
+00011000000010100111111000000000
+10011000010000001111111000000000
+01100111111000010100011010100111
+00100000001000000110011111010101
+01101111111001000100100010001110
+11000011000111101011111110011101
+01101000010010001100010001000000
+00100000010000000100111100001010
+01101000010010001100010001000000
+00100000010000000110111011100000
+00100000001000001011111110010110
+00100000010000000100000001001001
+11011000010000000000000010000000
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000010000000110110011010111
+01000100100111111100000000000111
+00100000010000000011111111000110
+01101111111000001100011001111000
+11000000000000000011111110101010
+11000000000000001011111110110000
+11000000000000010011111110111011
+11000000000000011011111110111111
+11000000000000100011111111000011
+01110000010010101010000100000000
+01101111111000001100011010101001
+00011111111001100111110000000001
+00100100010000101111110111001100
+01100111111000001100101010010011
+00100000011000000000000000000000
+01101111111000001100011010101010
+00100000010000000011111110101100
+01101111111000001100011010101110
+00011111111001100111110000000011
+00100100010000010111110111001100
+01100111111000001100101010100001
+01101000010010010100011010100111
+00011000000010100111111000000000
+10011000010000001111111000000000
+01100111111000010100011010100111
+00100000011000000000000000000000
+01101111111000001100011010101011
+00100000010000000011111110101100
+01101111111000001100011010101111
+00100000001000000011111110110101
+01101111111000001100011010101100
+00100000010000000011111110101100
+01101111111000001100011010110000
+00100000001000000011111110110101
+01110000010010101010000100000000
+01101111111000001100011010101101
+00100000001000000011111110101100
+01101111111000010100011010100000
+11011000010000001010101001010101
+10011000010001100111110000000000
+00100000001000101110011111001111
+01100000010010010100011010100000
+00100000010000000110011111111000
+01101111111000001100011100010111
+01100111111000001100011001111000
+01101111111000100100010111111011
+01100111111000100100010111111111
+01100111111000100100010110100110
+01101111111000001100101010100010
+01111001001000000111111000000000
+01100111111000001100101010100010
+00100000001000000011111111010111
+00100000010000000110011110110110
+00100000001000000011111110100010
+01000100101000000100000000001000
+01101111111001000100100010001110
+11000010100001111011111111011101
+11000010100001110100000000000100
+11000010100001100110011110111011
+00100000011000000000000000000000
+01101111111000001100011001111000
+11000000000000000011111111100001
+11000000000000001011111111101011
+00100000011000000000000000000000
+01101000010010010100101010111101
+01011000000000000001111111000000
+10011000010001100010010000000000
+11011010001000000100011010100011
+11011111001000000000000000000100
+00100000010000000110101100110011
+01101000010010010100101010111101
+00011000010000001000010000000100
+01100000010010010100101010111101
+00100000011000000000000000000000
+01110000010010101010001100000001
+01101111111000001100101010100100
+00100000011110100000000000000000
+01101000010010010100101010111101
+01011000000000000001111111000000
+10011000010001100111111000000000
+01100111111000010000011001001110
+00011111111000100010010000000000
+11011010001000000100101010100001
+11011111001000000000000000000001
+00100000010000000110101100110011
+01101111111000010000011001001110
+00011111111000001010010000000001
+11011010001000000100011001111001
+11011111001000000000000000001101
+00100000010000000110101100110011
+01101111111000010000011001001110
+00011111111000001010010000001110
+11011010001000000100011010100111
+11011111001000000000000000000010
+00100000010000000110101100110011
+01101000010010010100101010111101
+00011000010000001000010000010000
+01100000010010010100101010111101
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000011000111101100000000001011
+01101000010010001100010001000000
+00100000010000000100111100001010
+01101000010010001100010001000000
+00100000010000000110111011100000
+00100000001000001100010010111001
+00100000010000000100000001001001
+01101111111000001100101010100010
+11000010100000000100000000010100
+11000010100000001100000000011001
+11000010100000010100000000100101
+11000010100000011100000000101101
+11000010100000100100000000110101
+11000010100000101100000000111101
+00100000011000000000000000000000
+01110000010010101010001000000000
+11011000010000000000000010000000
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000001000000110110011001001
+01101111111000001100101010100010
+01111001001111111111111000000001
+01100111111000001100101010100010
+11011000010000000000000000100111
+11011010001000000100011001111001
+11011010010000000000000000000001
+00100000010000000110110011001001
+11011000010000000000000000000010
+11011010001000000100011010100111
+11011010010000000000000000101111
+00100000010000000110110011001001
+00100000001000000100000000001100
+01101111111000001100101010100010
+01111001001111111111111000000010
+01100111111000001100101010100010
+11011000010000000000000000000100
+11011010001000000100011010100011
+11011010010000000000000000101011
+00100000010000000110110011001001
+00100000001000000100000000001100
+01101111111000001100101010100010
+01111001001111111111111000000011
+01100111111000001100101010100010
+11011000010000000000000000000101
+11011010001000000100011010101001
+11011010010000000000000000110001
+00100000010000000110110011001001
+00100000001000000100000000001100
+01101111111000001100101010100010
+01111001001111111111111000000100
+01100111111000001100101010100010
+11011000010000000000000000000011
+11011010001000000100011010101110
+11011010010000000000000000110110
+00100000010000000110110011001001
+00100000001000000100000000001100
+01101111111000001100101010100010
+01111001001111111111111000000101
+01100111111000001100101010100010
+11011000010000000000000000000100
+11011010001000000100011010110001
+11011010010000000000000000111001
+00100000010000000110110011001001
+00100000001000000100000000001100
+11011000010000000000000000000001
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000001000000110110011001001
+00100000010000000110110010110010
+01101111111001000100100010001110
+00101111111011111111111000001101
+00100000001000001110110010110111
+00100000001000000110110010111010
+01000100101000001100000000001000
+01011000000000000110100011000100
+01100111111000010100001111110010
+01011000000000000100100001100010
+01100111111000010100011000001001
+01011000000000000100100001110001
+01100111111000010100011000001011
+01011000000000000100011110001111
+01100111111000010100011000001101
+01011000000000000100100001110101
+01100111111000010100001111100010
+01011000000000000100011110101010
+01100111111000010100001111100000
+01011000000000000100000001100110
+01100111111000010100001111100110
+01011000000000000100001011011101
+01100111111000010100001111100100
+01011000000000000100011110101100
+01100111111000010100001111011110
+01011000000000000101010000100000
+01100111111000010100001111101000
+01011000000000000100000001110101
+01100111111000010100001111101100
+00100000001000000110100011001011
+01000100101000010100000000001000
+00011010011000100111111000000000
+11000000000110010100100010110011
+11000000001000000100100010111011
+11000000000010101100100010100010
+11000000000010100100100010010011
+11000000000010000100100011000000
+11000000000110001101010000000110
+11000000000101001101010000001000
+11000000000111110011011110011110
+11000000001000100101010000101000
+11000000000111001100011110111000
+11000000000111100100011111001010
+11000000000111010100011111100110
+00100000011000000000000000000000
+01000100101000011100000000001000
+00100000010000000100000011100000
+00100000010000000100000011001100
+00100000010000000100000011011101
+00100000010000000100000100000000
+00100000010000000100000110000110
+00100000010000000100000110101011
+00100000010000000100000100110001
+00100000010000000100000100111110
+00100000010000000100000101000110
+00100000010000000100001001100111
+00100000010000000100001010001111
+00100000010000000100001011000100
+00100000010000000011001001101100
+00100000010000000011010100000111
+00100000010000000101100011110110
+00100000010000000100001010110101
+00100000010000000100001010111111
+00100000010000000100001010011001
+00100000010000000100001010100100
+00100000010000000101010100001101
+00100000010000000100001010101101
+00100000010000000101010100010000
+00100000010000000100001010110010
+00100000010000000100001010100001
+00100000010000000101010100100111
+00100000010000000100001010011110
+00100000010000000100001011001001
+00100000010000000100001011001100
+00100000001000000100001011010101
+01000100101000100100000000001000
+01101111111000001100100010110001
+11000000000000000100000010011000
+11000000000000001100000010011101
+11000000000000010100000010100010
+01011000010101100000000010010100
+01100111111000011100100010101011
+01011000000000000110110100000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01011000110101000000000100101100
+01100111111000011100100010101011
+01011000000000001110011000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01011010110000000001001001110000
+01100111111000011100100010101011
+01011000000000010100000000000001
+11100111111000011000000000000101
+00100000011000000000000000000000
+00100000010000000100000010101001
+00100000001000000100000011100000
+01101111111000001100010000011101
+11000001100000010000000000000000
+01101111111000001100010000011110
+00100000010000000100000010110010
+00011000010000100111111000000000
+01100111111000001100011001001100
+01111001001000000111111000000111
+11011000010000000000000000000000
+00100000001000000110111100011100
+11011000010000000000000000010010
+11000001000000110000000000000000
+11011000010000000000000000001010
+11000001000000111000000000000000
+11011000010000000000000000001001
+11000001000001000000000000000000
+11011000010000000000000000001100
+11000001000001001000000000000000
+11011000010000000000000000000110
+11000001000001010000000000000000
+11011000010000000000000000010100
+11000001000001011000000000000000
+11011000010000000000000000010101
+11000001000001100000000000000000
+11011000010000000000000000010110
+11000001000001101000000000000000
+11011000010000000000000000001101
+00100000011000000000000000000000
+00100000010000000100000010100111
+00100000010000000110111110110010
+00100000010000000110111110001110
+00011111111001101111110000001010
+00100000010000000111110101100001
+01100111111000010100011001001010
+11011010001000000100011001000100
+00100000001000000100111011000100
+01101111111001000100100010001110
+11000100000001011000000000000000
+00100000010000000100000011000100
+01101111111000001100010000100010
+11000010100000001100011110101111
+11000011000000000100000011010110
+01110000010001100100111000000001
+00100000001000000100000011010100
+11011000111000000000000000000010
+00100000001000000100101000100101
+11011000111000000000000000000010
+00100000010000000100101000101001
+01110000010010101100011000001100
+01101111111000001100011001001110
+00100000011110100000000000000000
+01110000010001100100111000000000
+00100000001000000100000110000100
+01101111111001000100100010001110
+11000100000001011000000000000000
+00100000001000000100111001011110
+01101111111000110100100010101011
+01100111111000110100011001000100
+01101111111000001100011001001110
+00100000001110100100000011101000
+01101111111000010100100010101111
+00011111111000001111111000000101
+01100111111000010100011001001000
+00100000011000000000000000000000
+01101111111000010100100010101111
+01100111111000010100011001001000
+00100000011000000000000000000000
+01101111111000001100011001111000
+11000000100000000100000011110011
+00100000010000000011010111010011
+01011000010111010100100000000000
+01100111111000100100011000101010
+01101111111000001100010000100010
+11000100000000000000000000000000
+00100000001000000101100011111100
+01011000000000000000000010100000
+00100000010000000100000011111001
+01101111111000001100010000100010
+11000100000000000000000000000000
+01011000000000000000000001010000
+00100000001000000100000011111001
+01101000010010010100001011010101
+10011000010001101111110000000000
+00100000010000000111110101100001
+01100111111000001100100010001011
+01101111111000001100011100111110
+00100000001110100101010100101010
+00100000011000000000000000000000
+01110000010010101100101100000000
+01101111111000010100011101010000
+00100100011110100000000000000000
+01101111111000010100010111101111
+00100100011110100000000000000000
+01101111111000010100010111110101
+00100100011110100000000000000000
+01101111111000001100101011000010
+00100100011110100000000000000000
+01101111111001000100100010001110
+11000100000001011000000000000000
+11000100000101001000000000000000
+11000100000000010000000000000000
+11000010100101010100000100011011
+01000100101000101100000000001000
+01101111111000001100101011000110
+00011111111000001111111000000001
+01100111111000001100101011000110
+00011111111001100111110000010100
+00100100010000010100000100011001
+11000000000000010100000110000010
+11000000000000100100000110000100
+11000000000000110100000110000010
+11000000000001000100000110000100
+00100000011000000000000000000000
+01110000010010101100011000000001
+00100000001000000100000110000100
+01101111111000010100011100011110
+01101000010010010100011101000001
+10011000010001100000010000000000
+01101111111000010100101011000111
+10011000010001100111110000000000
+00100100001000010100000110000100
+01110000010010101100101100000001
+01101111111000001100101011001001
+00011111111000001111111000000001
+01100111111000001100101011001001
+01101000010010001100101011001010
+00011000010000001000010000000001
+10011000010001100111110000000000
+00100100001000010100000110000010
+00100000010000000100000110000100
+01101111111000001100101011001001
+01101000010010001100101011001010
+00011000010011111000010000000010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010010101100100100000000
+00100000011000000000000000000000
+01101111111000001100101011000010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101011000010
+01101111111001000100100010001110
+11000010100101000100000100111001
+00100000001110100100000101100110
+00100000001000000100000101101100
+00100000001110100100000100111100
+01101000010010001100100100010110
+00100000001000000110111011110001
+01101000010010001100100100010110
+00100000001000000110111011101101
+01101111111000010100011101000001
+00100000011110100000000000000000
+01101111111000001100101011000101
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101011000101
+11000010100000000100000101101100
+00100000001000000100000101100110
+01101111111000001100011001111000
+11000000000000000100000101001011
+01101111111000010100011101010000
+00100000011110100000000000000000
+00100000001000000100000101001101
+01101111111000010100010111101111
+00100000011110100000000000000000
+01101111111001000100100010001110
+00101111111011000000000000101000
+00100000010000001100000101011111
+01101111111000001100101011001100
+00011111111000001111111000000001
+01100111111000001100101011001100
+01101000010010001100101011001101
+00011000010000001000010000000001
+10011000010001100111110000000000
+00100100001000010100000101101100
+00100000010000000100000101100110
+01101111111000001100101011001100
+01101000010010001100101011001101
+00011000010011111000010000000010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000010010101100110000000000
+00100000011000000000000000000000
+01110000010010101100001000000000
+00100000011000000000000000000000
+01000100101000110100000000001000
+00100000010000000100000100111100
+00100000010000000100000101100110
+00100000010000000100000110011101
+00100000001000000100000110100011
+01101111111000001100011001111000
+11000000000000000100000101110010
+11000000000000001100000101110100
+11000000000000010100000101110110
+11000000000000011100000101111000
+00100000011000000000000000000000
+01101111111000001100011001111000
+11000000000000000100000101111010
+11000000000000001100000101111100
+11000000000000010100000101111110
+11000000000000011100000110000000
+00100000011000000000000000000000
+01101000010010001100100100011000
+00100000001000000110111011101101
+01101000010010001100100100011001
+00100000001000000110111011101101
+01101000010010001100100100011010
+00100000001000000110111011101101
+01101000010010001100100100011011
+00100000001000000110111011101101
+01101000010010001100100100011000
+00100000001000000110111011110001
+01101000010010001100100100011001
+00100000001000000110111011110001
+01101000010010001100100100011010
+00100000001000000110111011110001
+01101000010010001100100100011011
+00100000001000000110111011110001
+01101000010010001100100100010111
+00100000001000000110111011110001
+01101000010010001100100100010111
+00100000001000000110111011101101
+01101111111000001100101011001110
+11000000001011010100000110010011
+01101111111000010100011101000001
+00100000011110100000000000000000
+01101111111000010100011100011110
+01101000010010010100011101000001
+10011000010001100000010000000000
+01101111111000010100101011000011
+10011000010001100111111000000000
+00100000001000010100000110010110
+00100000010000000100000110011101
+00100000010000000100000110101001
+00100000001000000100000110100011
+01101111111000001100011000111000
+01100111111000001100011100001101
+00100000001000000100000110010110
+00100000010000000100000110011001
+00100000010000000100000110100101
+00100000001000000100000110011111
+01101111111000001100011100001101
+11000011000000000100000110011101
+01101000010010001100100100010011
+00100000001000000110111011110001
+01101000010010001100100100010011
+00100000001000000110111011101101
+01101111111000001100011100001101
+11000011000000001100000110100011
+01101000010010001100100100010100
+00100000001000000110111011110001
+01101000010010001100100100010100
+00100000001000000110111011101101
+01101111111000001100011100001101
+11000011000000010100000110101001
+01101000010010001100100100010101
+00100000001000000110111011110001
+01101000010010001100100100010101
+00100000001000000110111011101101
+01101111111001000100100010001110
+11000100000101011000000000000000
+01101111111000010100011101000001
+00100000011110100000000000000000
+01101111111000010100011100011110
+01101000010010010100011101000001
+10011000010001100000010000000000
+01101111111000010100100011000010
+10011000010001100111111000000000
+00100000011000010000000000000000
+01110000010001101011000100000000
+00100000001000000100001000000011
+01101111111001000100100010001110
+11000100000101011000000000000000
+11011010001000000000000000000000
+00100000010000000111000010111001
+01101111111000110100100010110010
+01100111111000110000011001001110
+00100000010000000111000011001010
+01101111111000010100100010110010
+00100000001000000111000100000011
+01101111111000001100100100011100
+00100000010000000111000100000011
+01101111111000001100100100011101
+00100000010000000111000100000011
+01101111111000001100100100011110
+00100000001000000111000100000011
+01101111111000110100100010110010
+01100111111000110000011001001110
+00100000001000000111000011001010
+01000100101000111100000000001000
+01101111111001000100100010001110
+11000100000101011000000000000000
+01101111111000001100011010110001
+00100000010000000100000111011110
+01101111111000001100011010110010
+00100000001000000100000111101111
+01101111111001000100100010001110
+11000100000101011000000000000000
+00100000010000000100010011001010
+01101111111000001100100110101011
+11000100000000000000000000000000
+01101111111000001100101010100010
+01111001001000000111111000000101
+01100111111000001100101010100010
+00100000010000000100010010110111
+01110000010010001100101000000000
+01110000010010001011100000000000
+01110000010010001011011100001010
+01101111111000001100011010110001
+00011111111000001111111000000001
+00011111111001100111110000000010
+00100100010000010111110111001100
+01100111111000001100011010110001
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000101011000000000000000
+00100000010000000100010011001010
+01101111111000001100100110101011
+11000100000000000000000000000000
+01101111111000001100011010110001
+11000001100000001000000000000000
+01101111111000001100101010100010
+01111001001000000111111000000101
+01100111111000001100101010100010
+00100000010000000100010010110111
+01101111111000001100011010110010
+00011111111000001111111000000001
+00011111111001100111110000000110
+00100100010000010111110111001100
+01100111111000001100011010110010
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000101011000000000000000
+01101000010010100100100011000100
+00011100010000100111111000000000
+10011000010001100111111000000000
+01101000010010010100100011001000
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00100000011110100000000000000000
+00011100010000100000010000000000
+01100000010010100100100011000100
+01101111111000001100011010110001
+11000000000000010100001000001001
+11000000000000001100001001000100
+01110000010001101011000100000000
+01000100101001000100000000001001
+01101111111001000100100010001110
+11000100000101011000000000000000
+00100000010000000100000111000000
+01110000010010001011100100000000
+00100000001000000100001001001110
+01101111111000001100100010111000
+00100000001110100100001000010001
+01101111111000001100100010110111
+00011111111001100111110000000101
+00100000001000010100001000011010
+00011111111000001111111111111111
+01100111111000001100100010110111
+00100000001000000100001000100001
+01101111111000001100100010110111
+00011111111000001111111000000001
+01100111111000001100100010110111
+00100000010000000100001000100001
+01101111111000001100100010110111
+00011111111001100111110001011010
+00100000011000010000000000000000
+01110000010010001011100000000001
+00100000011000000000000000000000
+01110000010010001011100000000000
+01101111111000001100100011001010
+00011111111000001111111000000001
+00011111111001100111110000000110
+00100100010000010111110111001100
+01100111111000001100100011001010
+00100000011000000000000000000000
+00100000010000000100000110110111
+00100000010000000100001000000111
+00100000001000000100001000100100
+01101111111000001100100011001010
+11000000000000010100001000101100
+11000000000000001100001000110001
+11000000000000000100001000110110
+11000000000000011100001000111011
+11000000000000101100001000111101
+11000000000000100100001000111111
+11000000000000110100001001000001
+01101111111000001100100100011100
+01100111111000001100100010110010
+01011000000000000000000000000001
+01100111111000001100100010110011
+00100000001000000100000111000110
+01101111111000001100100100011101
+01100111111000001100100010110010
+01011000000000000000000000000010
+01100111111000001100100010110011
+00100000001000000100000111000110
+01101111111000001100100100011110
+01100111111000001100100010110010
+01011000000000000000000000000100
+01100111111000001100100010110011
+00100000001000000100000111000110
+00100000010000000100001000110001
+00100000001000000100001000110110
+00100000010000000100001000101100
+00100000001000000100001000110001
+00100000010000000100001000101100
+00100000001000000100001000110110
+00100000010000000100001000101100
+00100000010000000100001000110001
+00100000001000000100001000110110
+00100000010000000100000111000000
+01101111111000001100011010110010
+00011111111001100111110000000110
+00100100010000010111110111001100
+01100111111000001100011010110010
+11011000110000000100100010111010
+10011000110000001000110000000000
+11101111111000001000000000000110
+01100111111000001100100010111001
+00100000001000000100001001001110
+01101111111000001100100010111001
+00101111111011111111111000000010
+00100000010000001100001001011011
+00100100010000001100001001011101
+01101111111000001100100010111001
+00101111111011111111111000000001
+00100000010000001100001001011111
+00100100010000001100001001100001
+01101111111000001100100010111001
+00101111111011111111111000000000
+00100000010000001100001001100011
+00100100010000001100001001100101
+00100000011000000000000000000000
+01101000010010001100100100011100
+00100000001000000110111011101101
+01101000010010001100100100011100
+00100000001000000110111011110001
+01101000010010001100100100011101
+00100000001000000110111011101101
+01101000010010001100100100011101
+00100000001000000110111011110001
+01101000010010001100100100011110
+00100000001000000110111011101101
+01101000010010001100100100011110
+00100000001000000110111011110001
+01101111111000001100100010100110
+11000010100000000100001001101101
+00100000010000000100001001111000
+01101111111000001100100010100110
+11000010100000001100001001111110
+00100000001000000100001010001001
+01101111111000001100100010101001
+00011111111001100111110001100100
+00100100011000010000000000000000
+00011111111000001111111000000001
+01100111111000001100100010101001
+11000001100011001000000000000000
+01110000010010001010011100000000
+01101111111000001100011001111000
+11000001000000100000000000000000
+00100000010000000100100011100110
+00100000001000000100011010000000
+01110000010010001010100100000000
+01101111111000001100100010100111
+00100000011110100000000000000000
+01110000010010001010011100000000
+00100000010000000100000001000101
+00100000001000000110110010011001
+01101111111000001100100010101010
+00011111111001100111110001100100
+00100100011000010000000000000000
+00011111111000001111111000000001
+01100111111000001100100010101010
+11000001100011001000000000000000
+01110000010010001010100000000000
+01101111111000001100011001111000
+11000001000000100000000000000000
+00100000010000000110100000100100
+00100000001000000100011001110101
+01110000010010001010101000000000
+01101111111000001100100010101000
+00100000011110100000000000000000
+01110000010010001010100000000000
+00100000010000000100000001000101
+00100000001000000110110010011001
+01101111111000001100011100110101
+11000001100000001000000000000000
+11011010011000000100011100110110
+11011010010000000100001010010100
+00100000001000000011011101010101
+01101111111000001100101010011011
+11000000000000001100011010000000
+11000000000000010100011001110101
+11000000000000011101001110101101
+00100000011000000000000000000000
+11011010011000000100011101010000
+11011010010000000100001010011100
+00100000001000000011011101011100
+00100000010000000100100011101001
+00100000001000000100011110101111
+11011010011000000100011100000101
+11011010010000000011111111010111
+00100000001000000011011101010101
+11011010011000000100100100001110
+11011010010000000100100011111101
+00100000001000000011011101010101
+11011010011000000100011100100000
+11011010010000000100001010101010
+00100000010000000011011101010101
+01101111111000001100011100100000
+11000000000000001011011110001000
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000010100011010100100011000101
+00100000001000000100111000110101
+01101111111001000100100010001110
+11000011100011001000000000000000
+11011010011000000100011101111111
+11011010010000000101010100011111
+00100000001000000011011101010101
+11011010011000000100100100001101
+11011010010000000101010000001000
+00100000001000000011011101010101
+01101111111000001100101010000000
+00100000011110100000000000000000
+01110000010010101000000000000000
+01101111111000001100100110100000
+00100100011110100000000000000000
+01101111111000010100010111101111
+00100100011110100000000000000000
+01110000010010011010100100000001
+00100000010000000011010111111101
+00100000001000000100100000101000
+11011010011000000100101010000010
+11011010010000000100001011000010
+00100000001000000011011101010101
+01110000010010101000000100000000
+00100000011000000000000000000000
+11011010011000000100100110100011
+11011010010000000100001011000111
+00100000001000000011011101011100
+01110000010010011010000000000001
+00100000001000000100011110101111
+11011010011000000100101010011111
+11011010010000000100010101000111
+00100000001000000011011101010101
+01101111111001000100100010001110
+11000100000100100000000000000000
+01101111111000001100101011010000
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101011010000
+00100100011110100000000000000000
+01110000010000001001010000000001
+00100000001000000100011110101111
+01101111111000001100101011001110
+11000001001011010000000000000000
+11011010011000000100011101000001
+11011010010000000100001011011010
+00100000001000000011011101011100
+01101111111000001100011001111000
+11000000000000000100011111111011
+00100000001000000101001111000110
+01000100101001001100000000001001
+00100000010000000100001100110000
+00100000010000000100000111110011
+00100000010000000100100111111010
+00100000010000000100100111111111
+00100000001000000100001011100011
+01000100101001010100000000001001
+01101111111001000100100010001110
+11000100000111000000000000000000
+11000010100111011100001011110000
+11000010100111100100001011110000
+01101000010010001100011001100101
+00100000010000000100111100001010
+01101000010010001100011001100101
+00100000010000000110111011100000
+00100000001000001100001011111101
+01101111111001000100100010001110
+11000010100111001100001100000010
+00100000001000000100001100001000
+01101000010010001100011001100101
+00100000010000000100111100000110
+01101000010010001100011001100101
+00100000010000000110111011100000
+00100100001000001100001011111000
+01101111111001000100100010001110
+11000010100111011100001100000010
+00100000001000000100001100001000
+01101000010010001100011001100101
+00100000010000000100111100001010
+01101111111001000100100010001110
+11000010100111011100001100001000
+00100000001000000100001100000010
+01101000010010001100011001100101
+00100000010000000100111100000110
+01101111111001000100100010001110
+11000010100111001100001100001000
+00100000001000000100001100000010
+01101111111000001100011001111000
+11000001000000001000000000000000
+01110000010001100111100000000001
+01101111111000001100100010010110
+00100100001110100110110010011001
+00100000001000000100100011100110
+01101111111000001100011001111000
+11000001000000000000000000000000
+01110000010001100111100000000000
+01101111111000001100100010010110
+00100100001110100110110010011001
+00100000001000000100100000000100
+01000100101001011100000000001001
+01101111111001000100100010001110
+11000011000001011100001100011010
+00100000010000000100000011000100
+01101111111000010100011001000110
+00011111111001101111110000000010
+00100000010000000111110101100001
+01101000010010010100011001001010
+10011000010001100111110000000000
+00100000001000010100001100001110
+01101111111000001100010000100010
+11000010100000001100011110101111
+01101111111000001100101001111111
+00100000010110100100011001110000
+01101111111000001100101001111110
+00100100011110100000000000000000
+01101111111000001100011001111000
+11000000000000000100001100101101
+00100000010000000101001111000001
+11000000000000001100001100100100
+11000000000000010100001100101001
+11000000000000011100001100101011
+01101111111000110100011001111010
+01101000010010110100011011111000
+10011000010001100111110000000000
+00100000001000101101001110101101
+00100000001000000100111000001001
+01101111111000110100011010000111
+00100000001000000100001100100101
+01101111111000110100011010010100
+00100000001000000100001100100101
+00100000010000000011111010011010
+00100000001101000101100110001000
+00100000001000000101100101001101
+01000100101001100100000000001001
+00100000010000000100001100110100
+00100000010000000100001110110101
+00100000001000000100010110110100
+00100000010000000011111011111001
+00100000010000000100001110101111
+01011000000000000000000000000000
+01100111111000010100100110011110
+11011000110000000100100101001110
+11011000101000000100100101100011
+11011111001000000000000000010100
+00100000010000000111110011011100
+01011000000000000100100101001110
+01100111111000010100100110011000
+01011000000000000100100110001101
+01100111111000010100100110011010
+00100000010000000100001110101101
+00100000010000000100001110101011
+01101111111000010100100110011110
+00011111111000001111111000000001
+01100111111000010100100110011110
+11000010100001001100001100110100
+01101000010010001100100100010001
+00100000010000000110111011100000
+00100100001000001100001101000010
+00100000010000000100001110101111
+01101000010010001100100100010001
+00100000010000000110111011100000
+00100000001000001100001101001010
+00100000010000000100001101110010
+00100000010000000100001110000110
+00100000010000000100001110101011
+00100000010000000100001110101101
+01101111111000010100100101001100
+00011111111000100010010000000000
+01110000010010011001110100000000
+11101000010000001000000000010010
+01101111111000010100100101001010
+00011111111000100010001000000000
+00011010001000100010011000000000
+11011111001000000000000000010100
+11101111111000001000000000010001
+10011000010001100111110000000000
+00100000001000101100001101100110
+00011010001000001010001000000001
+11000010000000000100001101011001
+00011010010000001010010000000001
+01101111111000001100100110011101
+00011111111000001111111000000001
+01100111111000001100100110011101
+00011111111001100111110000001011
+00100000001000010100001101010100
+00100000010000000011111100011011
+00100000001000000011111100001111
+01101111111000010100100110011000
+00011111111000100000101000000000
+00011010001000100111111000000000
+10011010011001100111111000000000
+10011000101000001000101000000000
+01101111111000010100100110011010
+00011111111000100010011000000000
+01101111111000001100100110011101
+10011010011000001010011000000000
+11101111111000001000000000010011
+11100111111000001000000000000101
+00100000001000000100001101011110
+01110000010010011001110100000000
+00100000010000000100001110101001
+00100000010000000100001101111010
+00100000010000000100001110100111
+00100000010000000100001101111010
+00011111111001100111110000001011
+00100000001000010100001101110011
+00100000001000000100001110101001
+01110000010010011001110000000000
+00100000010000000100001110011001
+01101111111000010100100110011010
+00011111111000100000101000000000
+01101111111000001100100110011101
+10011000101000001000101000000000
+01101111111000001100100110011100
+11100111111000001000000000000101
+01101111111000001100100110011101
+00011111111000001111111000000001
+01100111111000001100100110011101
+00100000011000000000000000000000
+01101111111000010100100101001010
+00011111111000100010010000000000
+01110000010010011001110100000000
+01110000010010011001110000000000
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100000001000001100001110010011
+00100000010000000110111011110001
+00100000010000000100001110011001
+11101000010000001000000000010010
+00100000010000000110111011101101
+11101000010000001000000000010010
+00100000010000000100111100001010
+00011010010000001010010000000001
+01101111111000010100100110011000
+00100000010000000100001101111101
+00011111111001100111110000010011
+00100000001000010100001110001001
+00100000011000000000000000000000
+01000100101001101100000000001001
+00100000000000000000000001111000
+01101111111000010100100101001000
+00011111111000100010011000000000
+11011111001000000000000000001000
+11101000010000001000000000010011
+00100000010000000110111011100000
+01101111111000001100100110011100
+00011111111000110111111000000000
+01111001001000001111111000000111
+01100111111000001100100110011100
+00011010011000001010011000000001
+11000010000000000100001110011110
+00100000011000000000000000000000
+01101000010010001100100100010001
+00100000001000000110111011101101
+01101000010010001100100100010001
+00100000001000000110111011110001
+01101000010010001100100100010001
+00100000001000000110111011010111
+01101000010010001100100100010000
+00100000001000000110111011101101
+01101000010010001100100100010000
+00100000001000000110111011110001
+01110000010010011010000000000000
+01101111111000010100100110100001
+01100111111000010100100110100011
+00100000011000000000000000000000
+11011010001000000100100101001110
+11011010010000000100100101100011
+11011111001000000000000000010100
+00100000010000000111110101100110
+00100100001000101100001110110001
+00100000010000000100001111110001
+00100000010110100100001110110001
+00100000010000000100001111111101
+01101111111000001100100110101000
+00100100011110100000000000000000
+01101111111000001100101010011100
+11000001000000001000000000000000
+11000001000000010000000000000000
+11000001000000100000000000000000
+01110000010010011001110100000000
+11011010001000000100100101001110
+11011010010000000100100101111000
+11101000010000001000000000010001
+11101111111000001000000000010010
+10011000010000101111111000000000
+00100000001110100100001111101001
+01100111111000001100100110011100
+01100000010010001100100110101011
+11100000010000001000000000010010
+01110000010010011010100100000001
+01110000010010011010110000000000
+01101111111000001100100110011100
+11000011000000000100001111011110
+01101111111000001100100110011101
+00011111111011111111111000001000
+01101000010010001100100110101100
+10011000010000001111111000000000
+11011000110000000100100111000111
+10011000110000001000110000000000
+11101111111000001000000000000110
+01100111111000001100100110101010
+01000100101001110100000000001001
+00100000010000000100010000101110
+00100000010000000100010000110101
+00100000010000000100010011011100
+00100000010000000100010101100100
+01101111111000001100100110011100
+00011111111000110111111000000000
+01100111111000001100100110011100
+01101111111000001100100110101011
+00011111111000110111111000000000
+01100111111000001100100110101011
+01101111111000001100100110101100
+00011111111000001111111000000001
+01100111111000001100100110101100
+00011111111001100111110000000111
+00100000001000010100001111001111
+00011010001000001010001000000001
+00011010010000001010010000000001
+01101111111000001100100110011101
+00011111111000001111111000000001
+01100111111000001100100110011101
+00011111111001100111110000010011
+00100000001000010100001111000110
+00100000011000000000000000000000
+01101111111001000100100101001110
+00100100001110100100000111001001
+01101111111001000100100101010110
+00100100001110100100000111001001
+01101111111000100100100101011110
+00100100001110100100000111001001
+01101111111000001100101010011111
+00100100011110100000000000000000
+01101111111000001100101010011100
+11000001000000110000000000000000
+01110000010010101001110000000000
+00100000011000000000000000000000
+01000100101001111100000000001001
+01110000010010011010100000000000
+01110000010010011010011000000000
+11011010001000000100100101001110
+11011111001000000000000000010100
+01110000010010011010010100000000
+11101111111000001000000000010001
+00100000001110100100010000101001
+01101000010010001100100110100101
+00011000010000001000010000000001
+01100000010010001100100110100101
+00011111111000100000010000000000
+00011111111000001111111111111111
+10011000010000010111111000000000
+00100100001000101100010000000101
+01101111111000001100100110100101
+01101000010010001100100110100110
+10011000010000001000010000000000
+01100000010010001100100110100110
+00011111111001100111110000000001
+00100000001000010100010000101001
+00011000010001100111110000000010
+00100000001000010100010000101001
+01110000010010011001110100000000
+01110000010010011010011100000000
+11101000010000001000000000010001
+11011010010000000100100101001110
+01101111111000001100100110011101
+00011111111000001111111000000001
+01100111111000001100100110011101
+00011111111001100111110000010011
+00100100001000010100010000101001
+11101111111000001000000000010010
+10011000010000010111110000000000
+00100000001000101100010000101100
+01101111111000001100100110100111
+00011111111000001111111000000001
+01100111111000001100100110100111
+00011111111001100111110000000001
+00100000001000010100010000101100
+01101111111001000100100010001110
+11000011100100001000000000000000
+01110000010010011010100000000001
+00100000011000000000000000000000
+00011010001000001010001000000001
+11000010000000000100010000000010
+00100000011000000000000000000000
+00011010010000001010010000000001
+00100000001000000100010000011000
+01101111111000001100100110101010
+11000000011100110100000111100010
+11000000011100111100000111010000
+01101111111000001100101010100001
+11000001000000000000000000000000
+11000001000000001000000000000000
+00100000011000000000000000000000
+01101111111000001100100110101011
+00101111111011111111111000000000
+00100000010000001100010011110000
+01101111111000001100101001111010
+00100100010110100100010001011011
+01101111111000001100011101001111
+11000001011111111000000000000000
+01101111111001000100100010001110
+11000011000110100100010001000000
+01101111111000001100101010010011
+00100000001000000100010001000001
+01101111111000001100101010000100
+01101000010010001100101001111010
+10011000010000101111111000000000
+00100000011000101000000000000000
+01000100101010000100000000001010
+01101111111000001100100110101010
+11000000000101001100010001010001
+11000000001001100100010001011001
+00011111111001100111110001000101
+00100100011000010000000000000000
+11011000010000000000000000111010
+10011000010001100111111000000000
+00100100011000010000000000000000
+11011000110000000100101010000110
+10011000110000001000110000000000
+11101111111000001000000000000110
+00100000001000000100010010101010
+01101111111001000100100010001110
+11000011000110100100010001010111
+01101111111000001100101010000101
+01101000010010001100101010010100
+10011000010001100111110000000000
+00100000011000101000000000000000
+01101111111000001100101010000101
+00100000001000000100010010101010
+01101111111000001100101010010010
+00100000001000000100010010101010
+01000100101010001100000000001010
+00100000010000000100010001101000
+01101111111000001100100110101010
+11000000001010010100010010001101
+11000000001010001100010010010001
+11000000001010000100010010010101
+11000000001001111100010010011001
+11000000011100000100010010011101
+11000000000101100100010010100111
+11000000000010100100010010101100
+11000000000011010100010010111100
+11000000000001000100010011000011
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000110100000000000000000
+01101111111000001100100110101010
+01101000010010001100101010010100
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000010000000100010011001010
+01101111111000001100100110101011
+11000100000000000000000000000000
+01101111111000001100101010010011
+00011111111000001111111000000001
+00011111111000010111111000000001
+01100111111000001100101010010011
+01101111111000001100101010100010
+01111001001000000111111000000011
+01100111111000001100101010100010
+01101111111000001100011001111000
+11000000000000000100010001111110
+11000000000000001100010010000001
+11000000000000010100010010000100
+11000000000000011100010010000111
+11000000000000100100010010001010
+01101111111000001100101010010011
+01100111111000001100011010101001
+00100000001000000100010010110111
+01101111111000001100101010010011
+01100111111000001100011010101010
+00100000001000000100010010110111
+01101111111000001100101010010011
+01100111111000001100011010101011
+00100000001000000100010010110111
+01101111111000001100101010010011
+01100111111000001100011010101100
+00100000001000000100010010110111
+01101111111000001100101010010011
+01100111111000001100011010101101
+00100000001000000100010010110111
+01101111111001000100100010001110
+11000100000110000000000000000000
+01011000000000000000000001001011
+00100000001000000100010010101010
+01101111111001000100100010001110
+11000100000110000000000000000000
+01011000000000000000000001001110
+00100000001000000100010010101010
+01101111111001000100100010001110
+11000100000110000000000000000000
+01011000000000000000000001001010
+00100000001000000100010010101010
+01101111111001000100100010001110
+11000100000110000000000000000000
+01011000000000000000000001001101
+00100000001000000100010010101010
+01101111111001000100100010001110
+11000100000110001000000000000000
+01101111111000001100011101001111
+11000001011111111000000000000000
+01101111111000001100101010100001
+11000000000000000100010010100101
+01011000000000000000000011110111
+00100000001000000100010010101010
+01011000000000000000000010101010
+00100000001000000100010010101010
+01101111111001000100100010001110
+11000100000110010000000000000000
+01011000000000000000000010101011
+01100111111000001100100110101010
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000110011000000000000000
+00100000010000000100010011001010
+01101111111000001100100110101011
+11000100000000000000000000000000
+01110000010010101010000100000001
+01110000010010101100010100000110
+00100000010000000100010011001100
+01101111111000001100101010100010
+01111001001000000111111000000100
+01100111111000001100101010100010
+01101111111001000100100010001110
+11000011100001111000000000000000
+01101111111000001100011100000110
+01100111111000001100011100000101
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000110011000000000000000
+00100000010000000100010011001010
+01101111111000001100100110101011
+11000100000000000000000000000000
+01110000010010101010000100000000
+00100000001000000100010010110010
+01101111111001000100100010001110
+11000100000110011000000000000000
+00100000010000000100010011001010
+01101111111000001100100110101011
+11000100000000000000000000000000
+01110000010010101010000100000010
+00100000001000000100010010110010
+01011000000000000000000000000000
+00100000001000000100010010101010
+01000100101010010100000000001010
+01101111111000001100011001111000
+11000001000000000000000000000000
+11000001000000100000000000000000
+11000000000000001100010011010011
+11000000000000010100010011010110
+11000000000000011100010011011001
+01101000010010001100101010100001
+01100000010010001100011010101110
+00100000011000000000000000000000
+01101000010010001100101010100001
+01100000010010001100011010101111
+00100000011000000000000000000000
+01101000010010001100101010100001
+01100000010010001100011010110000
+00100000011000000000000000000000
+01101111111000001100100110101010
+11000000001000110100010011110010
+11000000001001011100010011111000
+11000000001001110100010011111110
+11000000001001010100010100000000
+11000000001001101100010100000010
+11000000010100101100010100000100
+11000000010100110100010100001011
+11000000010100111100010100001101
+11000000010101000100010100001111
+11000000010101001100010100010001
+11000000010101010100010100011100
+11000000010101101100010100100011
+11000000010101011100010100101010
+11000000010101100100010100110101
+00100000011000000000000000000000
+01101111111000001100100110101011
+11000100000000000000000000000000
+01110000010010101001111100001010
+00100000011000000000000000000000
+01110000010010101001111100000000
+00100000011000000000000000000000
+01101111111000001100101010100001
+11000001000000000000000000000000
+11000001000000001000000000000000
+01110000010010101001110100001010
+01110000010010101001111000100000
+00100000001000000100010100111110
+01110000010010101001111001010010
+01101111111000001100101010100001
+11000001000000000000000000000000
+11000001000000001000000000000000
+01110000010010101001110100001000
+00100000001000000100010100111110
+01110000010010101001111001010001
+00100000001000000100010011111001
+01110000010010101001111001010000
+00100000001000000100010011111001
+01110000010010101001111001001111
+00100000001000000100010011111001
+01110000010010101001111000000100
+01110000010010101001110100000001
+01101111111000001100101010100001
+11000000000000000100010100111110
+11000000000000001100010100111110
+01110000010010101001110100001000
+00100000001000000100010100111110
+01110000010010101001111000000110
+00100000001000000100010100000101
+01110000010010101001111000011001
+00100000001000000100010100000101
+01110000010010101001111000011011
+00100000001000000100010100000101
+01101111111000001100101010100001
+11000000000000000100010100010110
+11000000000000011100010100011001
+01011000000000000000000011111010
+00100000001000000100010010101010
+01110000010010101001110100001000
+01110000010010101001111000001111
+00100000001000000100010100111110
+01110000010010101001110100001001
+01110000010010101001111000010100
+00100000001000000100010100111110
+01101111111000001100101010100001
+11000000000000000100010100100000
+01011000000000000000000011110111
+00100000001000000100010010101010
+01110000010010101001110100001001
+01110000010010101001111000010010
+00100000001000000100010100111110
+01101111111000001100101010100001
+11000000000000011100010100100111
+01011000000000000000000011110101
+00100000001000000100010010101010
+01110000010010101001110100001000
+01110000010010101001111000101100
+00100000001000000100010100111110
+01101111111000001100101010100001
+11000000000000000100010100110001
+11000000000000001100010100110011
+01110000010010101001110100000001
+01110000010010101001111000101100
+00100000010000000100010011101100
+00100000001000000100010100111110
+01110000010010101001110100001000
+00100000001000000100010100101110
+01110000010010101001110100000010
+00100000001000000100010100101110
+01101111111000001100101010100001
+11000000000000000100010100111011
+11000000000000001100010100111011
+01110000010010101001110100000001
+01110000010010101001111001010010
+00100000001000000100010100111110
+01110000010010101001110100001000
+01110000010010101001111000101011
+00100000001000000100010100111110
+01110000010010011010101000000000
+01101111111000001100100110101011
+11000011000000000100010101000101
+01101111111000001100101010011100
+11000000000000011100010101010001
+01110000010010101001110000000001
+00100000011000000000000000000000
+01110000010010101001110000000100
+00100000011000000000000000000000
+01110000010010101001110000000110
+00100000011000000000000000000000
+01100111111000001100101001110000
+01100000010010001100101001110010
+00100000010000000111110110111100
+01110000010010100110111100000000
+00100000001000000100011011100110
+01101111111000001100101010011101
+11011000010000000000000000000000
+00100000010000000100010101001001
+01110000010010101001110000000010
+00100000011000000000000000000000
+01110000010010101001110000000011
+01101111111000001100101010011101
+01101000010010001100101010011110
+00100000001000000100010101001001
+01110000010010100110111100000000
+01101111111000001100101010011101
+11011000010000000000000000000000
+00100000010000000100010101001001
+01101111111000001100101010011111
+00100000001110100100010101000111
+01110000010010101001110000000101
+00100000011000000000000000000000
+00100000001000000100010101001011
+01110000010010101001110000000000
+11011111111000000000000000000000
+11011000010000000000000000000000
+00100000001000000100010101001001
+01101111111000001100100110101010
+11011000010000000000000011100000
+10011000010001100111110000000000
+00100100001000010100010101110110
+00011111111001100111110011100111
+00100100001000010100010110101101
+00011111111000010111111000000111
+00011111111000100000111000000000
+01101111111000001100100110101011
+11000010100000000100010101110010
+01101111111000001100100110101101
+11111001001111111111111000000000
+01100111111000001100100110101101
+00100000011000000000000000000000
+01101111111000001100100110101101
+11111001001000000111111000000000
+01100111111000001100100110101101
+00100000011000000000000000000000
+01110000010010011011010100000000
+01101111111000001100100110101011
+11000010100000000100010110001101
+01101000010010001100100110101010
+11011111001000000000000000000110
+11011000110000000100100110101111
+11101111111000001000000000000110
+10011000010001100111110000000000
+00100100001000101100010110000101
+11101111111000001000000000000110
+00011000110000001000110111111110
+11100111111000001000000000000110
+00100000011110100000000000000000
+00011000110000001000110000000001
+11100000010000001000000000000110
+11000010000000000100010101111100
+01101111111001000100100010001110
+11000010100100001100010110001010
+01101111111001000100100010001110
+11000100000100000000000000000000
+00100000010000000100010110011111
+11111001001111111111111000000000
+00100000001000000111110111001110
+01101000010010001100100110101010
+11011111001000000000000000000110
+11011000110000000100100110101111
+11101111111000001000000000000110
+00100000001110100100010110011100
+10011000010001100111110000000000
+00100000011000101000000000000000
+11000010000000000100010110010000
+01101111111001000100100010001110
+11000010100100001100010110011001
+01101111111001000100100010001110
+11000100000100000000000000000000
+00100000010000000100010110011111
+11111001001000000111111000000000
+00100000001000000111110111001110
+00011000110000001000110111111111
+11100000010000001000000000000110
+00100000011000000000000000000000
+01000100101010011100000000001010
+01101111111000001100100110101010
+00011111111001100111110001110000
+00100100011000010000000000000000
+01110000010010011011011100000001
+01110000010010011010100100000001
+00011111111001101111110000001000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00011000000001110000111000000000
+11011000101000000100100110111001
+10011000101000001000101000000000
+01011000000000000000000000000000
+00100000011000000000000000000000
+01110000010010101010000000000001
+01101111111000001100100110101011
+00101111111011000000000000000000
+00100000010000001100010110110010
+00100000001000000100010101110110
+01110000010010101010000000000010
+00100000011000000000000000000000
+00100000010000000100011001100000
+00100000010000000100010111110010
+01110000010010100111101000000000
+01110000010010100111101100000000
+01110000010010100111110000000000
+01110000010010100111110100000000
+01110000010010100111111000000000
+01101111111000001100100110101101
+00100100010110100100011010001111
+11011000110000000100100110101111
+11011111001000000000000000000110
+11101111111000001000000000000110
+00011111111001100111110001111111
+00100000010000101100011010011001
+00011111111001100111110010101110
+00100000010000101100011010011011
+11000010000000000100010110111111
+00100000010000000100010111001001
+01101111111000001100101001111111
+00100000001110100100011001110000
+00100000011000000000000000000000
+01000100101010100100000000001010
+01110000010010101001101100000000
+01101111111000001100011001111000
+11000000100000000100010111010111
+01101111111001000100100010001110
+11000100000010011000000000000000
+01101111111000010100100110101111
+01101000010010010100101010010111
+10011000010001100111110000000000
+00100000001000101100010111101000
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100010111101000
+00100000001000000101010011100110
+01101111111000010100100110101111
+01101000010010010100101010011001
+10011000010001100111110000000000
+00100000001000101100010111101100
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100010111101100
+01101111111001000100100010001110
+11000011000011011101010011100110
+01101111111000010100100110101111
+01101000010010010100101010010101
+10011000010001100111110000000000
+00100000001000101100010111101010
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100010111101010
+00100000001000000101010011100110
+01110000010010101001101100000001
+00100000001000000100010111101110
+01110000010010101001101100000010
+00100000001000000100010111101110
+01110000010010101001101100000011
+00100000001000000100010111101110
+01101111111000001100011100110101
+11000001000000001000000000000000
+01110000010001110011010100000001
+00100000011000000000000000000000
+00100000010000000111110110111110
+00100000010000000100011000000000
+00100000010000000100011000010110
+00100000010000000100011000100111
+00100000010000000100011000111000
+00100000010000000100011001001110
+00100000001101000100010111111110
+01101111111000001100100010100110
+01111001001111111111111000000000
+01111001001111111111111000000001
+01100111111000001100100010100110
+00100000011000000000000000000000
+01110000010010011010100100000000
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000010000000000000000000
+01101111111000001100100010010111
+00100000011110100000000000000000
+01101111111000010100100110101111
+01101000010010010100100010011000
+10011000010001100111110000000000
+00100000001000101100011000001100
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100011000001100
+00100000011000000000000000000000
+00100000010000000111110110111100
+01101111111000001100100010100110
+01111001001000000111111000000000
+01111001001111111111111000000001
+01100111111000001100100010100110
+01101111111000001100011001111000
+11000001000000000000000000000000
+01110000010001100111100000000000
+01110000010010001010011100000001
+00100000011000000000000000000000
+01101111111000001100100010011010
+00100000011110100000000000000000
+01101111111000010100100110101111
+01101000010010010100100010011011
+10011000010001100111110000000000
+00100000001000101100011000100000
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100011000100000
+00100000011000000000000000000000
+00100000010000000111110110111100
+00100000010000000100011001001001
+01101111111000001100011001111000
+11000001000000001000000000000000
+01110000010001100111100000000001
+01110000010010001010100000000001
+00100000011000000000000000000000
+01101111111000001100100010011101
+00100000011110100000000000000000
+01101111111000010100100110101111
+01101000010010010100100010011110
+10011000010001100111110000000000
+00100000001000101100011000110001
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100011000110001
+00100000011000000000000000000000
+00100000010000000111110110111100
+00100000010000000100011001001001
+01101111111000001100011001111000
+11000001000000010000000000000000
+01110000010001100111100000000010
+01110000010010001010100000000001
+00100000011000000000000000000000
+01101111111000001100100010100000
+00100000011110100000000000000000
+01101111111000010100100110101111
+01101000010010010100100010100001
+10011000010001100111110000000000
+00100000001000101100011001000010
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100011001000010
+00100000011000000000000000000000
+00100000010000000111110110111100
+00100000010000000100011001001001
+01101111111000001100011001111000
+11000001000000011000000000000000
+01110000010001100111100000000011
+01110000010010001010100000000001
+00100000011000000000000000000000
+01101111111000001100100010100110
+01111001001111111111111000000000
+01111001001000000111111000000001
+01100111111000001100100010100110
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000100100000000000000000
+01101111111000001100100010100011
+00100000011110100000000000000000
+01101111111000010100100110101111
+01101000010010010100100010100100
+10011000010001100111110000000000
+00100000001000101100011001011010
+00011000010100001000010000000000
+10011000010001100111110000000000
+00100000001000101100011001011010
+00100000011000000000000000000000
+00100000010000000111110110111100
+01101111111000001100011001111000
+11000001000000100000000000000000
+01110000010001100111100000000100
+00100000010000000100000001000101
+00100000001000000110110010011001
+01101111111000001100101001111111
+00100100011110100000000000000000
+01101000010010001100100100001111
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100000010000000110111011100000
+00100100001000001100011001101100
+11011111001000000000000000001000
+11011000101000000100100110101101
+00100000010000000111110010100011
+01110000010010011010111110101110
+00100000011000000000000000000000
+01101111111000001100100110101111
+11000001110101110000000000000000
+01110000010010011010111100000000
+00100000011000000000000000000000
+01000100101010101100000000001010
+01101111111000001100101001111110
+00100000011110100000000000000000
+01101111111000001100011001111000
+11000000000000000100011010000000
+01000100101010110100000000001010
+00100000010000000011111100101100
+01110000010010011010100100000000
+01101111111000001100011001111000
+11000001000000000000000000000000
+01101111111001000100100010001110
+11000011100000100000000000000000
+11011000111000000000000000000100
+00100000010000000100101000100101
+00100000010000000011011101000101
+00100000001000000100100011000000
+01000100101010111100000000001010
+00100000010000000100000101100001
+00100000010000000011111100101100
+01110000010010011010100100000000
+01101111111000010100010111101111
+00100100011110100000000000000000
+01011000000000000000000000000000
+01100111111000010100011101000001
+01100111111000010100010111110101
+01100111111000001100010111111001
+11011000111000000000000000000000
+00100000010000000100101000100101
+00100000010000000100100011101001
+01110000010001011010000000000010
+00100000001000000011001001101111
+01100111111000001100101001111011
+00011111111000010111111001000100
+00100100010110100100011010010111
+01101111111000001100101001111011
+00011111111000010111111000100010
+00100000011110100000000000000000
+01110000010010100111110100000001
+00100000011000000000000000000000
+01110000010010100111110000000001
+00100000011000000000000000000000
+01110000010010100111101000000001
+00100000011000000000000000000000
+01110000010010100111111000000001
+00100000011000000000000000000000
+01000100101011000100000000001011
+01111000010101000111110000000000
+01110000010001110010101100000000
+01110000010001110010110000000000
+01110000010001110010110100000000
+01101111111000001100101010011100
+11000000000000001100010101001110
+11000000000000010100010101010011
+11000000000000011100010101010011
+11000000000000100100010101010111
+11000000000000110100010101100000
+01101111111000001100100110101001
+00100000001110100100011010111010
+00011111111000001111111111111111
+01100111111000001100100110101001
+00100000010000000100011010110111
+01110000010010101000001000001010
+00100000010000000101010100110101
+01101111111000001100101010011100
+11000000000000101100010101011111
+11011000101000000100101001101111
+11011111001000000000000000001010
+00100000010000000111110010100011
+00100000010000000100011011001010
+01110000010010100111100100000000
+00100000011000000000000000000000
+01110000010000001100000000000011
+01110000010001110011111000001010
+00100000011000000000000000000000
+01101111111000001100011001111000
+11000001100000000000000000000000
+01101111111000001100101010000001
+00100000011110100000000000000000
+01101111111000001100101010000000
+00100100011110100000000000000000
+01101000010010001100101010000011
+01101111111000001100101010000010
+10011000010001100111110000000000
+01100111111000001100101010000011
+00100000011000101000000000000000
+11011000101000000100101001101111
+11011111001000000000000000001010
+00100000010000000111110010100011
+00100000010000000111110110111100
+00100000001000000100011011100110
+01000100101011001100000000001011
+01101111111000001100101010100000
+11000000000000010100011101001011
+01101111111000001100100110110111
+00100100001110100100011011101100
+11011000110000000100100110101111
+11011111001000000000000000000110
+11101111111000001000000000000110
+00011111111001100111110011100111
+00100100001000010100011011110101
+11000010000000000100011011010001
+01101111111000001100100110100110
+00100000010110100100011011101111
+01110000010010100110111100000000
+01000100101011010100000000001011
+11011010001000000100100110101101
+11011000101000000100101001110000
+11011111001000000000000000001000
+11101000010000001000000000010001
+01101111111000001100011101001111
+11000000011111111100011011100011
+00011000010001100111110001111111
+00100100001000101100011011100011
+00011010001000001010001000000001
+11101000010000001000000000010001
+11100000010000001000000000000101
+00011010001000001010001000000001
+11000010000000000100011011011100
+01000100101011011100000000001011
+00100000010000000100011101010110
+01101111111000001100101001111001
+11000000000000001111110110111100
+00100000010000000101001000101100
+00100000001000000111110110111100
+01110000010010011011011100000000
+01110000010010100110111100001000
+00100000001000000100011011100110
+11011000101000000100100110111000
+11011111001000000000000000001111
+00100000010000000111110010100011
+11011000101000000100100110101101
+11011111001000000000000000001010
+00100000001000000111110010100011
+00011111111000100000010000000000
+01000100101011100100000000001011
+00011000010000100111111000000000
+01110000010010100110111100000101
+01101000010010001100100110100110
+00011000010001100111110000000000
+00100000001000101100011101001011
+11000000011101000100011100010101
+11000000011101001100011100011000
+11000000011101010100011100011010
+11000000011101011100011100011100
+11000000011101100100011100011110
+11000000011101101100011100100000
+11000000011101110100011100100010
+11000000011101111100011100100100
+11000000011110000100011100100110
+11000000011110001100011100101000
+11000000011110010100011100101010
+11000000011110011100011100101100
+11000000011110100100011100101110
+11000000011110101100011100110000
+11000000011110110100011100110010
+11000000011110111100011100110111
+11000000011111000100011100111101
+11000000011111001100011100111111
+11000000011111010100011101000001
+11000000011111011100011101000011
+11000000011111100100011101000101
+11000000011111101100011101000111
+11000000011111110100011101001001
+11000000011111111100011101010010
+00100000001000000100011011100110
+01011000000000000000000000000001
+01100111111000011100101001110000
+00100000001000000100011011100110
+01011000000000000000000000000010
+00100000001000000100011100010110
+01011000000000000000000000000100
+00100000001000000100011100010110
+01011000000000000000000000001000
+00100000001000000100011100010110
+01011000000000000000000000010000
+00100000001000000100011100010110
+01011000000000000000000000100000
+00100000001000000100011100010110
+01011000000000000000000001000000
+00100000001000000100011100010110
+01011000000000000000000010000000
+00100000001000000100011100010110
+01011000000000000000000100000000
+00100000001000000100011100010110
+01011000000000000000001000000000
+00100000001000000100011100010110
+01011000000000000000010000000000
+00100000001000000100011100010110
+01011000000000000000100000000000
+00100000001000000100011100010110
+01011000000000000001000000000000
+00100000001000000100011100010110
+01011000000000000010000000000000
+00100000001000000100011100010110
+01101111111000001100101010100001
+11000000000000010100011100100110
+11000000000000011100011100100110
+01011000000000000100000000000000
+00100000001000000100011100010110
+01101111111000001100101010100001
+11000000000000001100011100111011
+01011000000000010000000000000000
+00100000001000000100011100010110
+01011000000000001000000000000000
+00100000001000000100011100010110
+01011000000000100000000000000000
+00100000001000000100011100010110
+01011000000001000000000000000000
+00100000001000000100011100010110
+01011000000010000000000000000000
+00100000001000000100011100010110
+01011000000100000000000000000000
+00100000001000000100011100010110
+01011000001000000000000000000000
+00100000001000000100011100010110
+01011000010000000000000000000000
+00100000001000000100011100010110
+01011000100000000000000000000000
+00100000001000000100011100010110
+01110000010010011010100100000010
+01101111111000001100100110100110
+00100000010110100100011011101111
+01110000010010101010000000000000
+01011000000000000000000000000101
+01100111111000011100101001101111
+00100000001000000100011011100110
+01110000010010100110111100000010
+01011000000000000000000000000010
+01100111111000001100101001110000
+00100000001000000100011011100110
+01101111111000001100011001111000
+11000000100000000100011101011101
+01110000010010101000000000000000
+01101111111000010100101001101111
+00100100010110100100011111100100
+01101111111000110100101001110010
+00100100010110100100011111100100
+00100000010000000110100001001011
+01110000010010100111100100000000
+01000100101011101100000000001011
+01101111111000001100101001101111
+11000000000000000100011101101101
+11000000000000001100011101101000
+11000000000000011100011110000000
+11000000000000101100011110000101
+11000000000000010100011110000111
+11000000000001000100011110001100
+00100000011000000000000000000000
+01110000010010100111100100000001
+11011000110000000100101001110000
+11011000101000000100011001011100
+11011111001000000000000000000111
+00100000001000000111110011011100
+01101111111000001100011001111000
+11000000100000000100011101110010
+00100000010000000100011111011001
+01101111111000001100101010000001
+01100111111000001100101001110001
+01101111111001000100100010001110
+11000010100100010100011101111000
+11011000110000000100101001101111
+11011000101000000100011100100001
+11011111001000000000000000001001
+00100000001000000111110011011100
+01110000010010100111100000000000
+01101111111000001100101001111010
+00100000001110100100011101111100
+01110000010010100111100000000001
+11011000110000000100101001101111
+11011000101000000100011100100001
+11011111001000000000000000001010
+00100000001000000111110011011100
+01011000000000000000000000000011
+01100111111000001100011100100001
+01101111111000011100101001110000
+01100111111000011100011100100010
+00100000011000000000000000000000
+01011000000000000000000000000101
+00100000001000000100011110000001
+01011000000000000000000000000010
+01100111111000001100011100100001
+01101111111000001100101001110000
+01100111111000001100011100100010
+00100000011000000000000000000000
+01011000000000000000000000001000
+01100111111000001100011100100001
+00100000011000000000000000000000
+01000100101011110100000000001011
+00100000010000000111110111100110
+01101000010010001100100100001111
+00100000010000000110111010101100
+01101111111000010100100101001010
+00011111111000100010010000000000
+11011111001000000000000000010100
+11101000010000001000000000010010
+00101000010011111111111000000111
+00100100010000001110111011110001
+00011010010000001010010000000001
+11000010000000000100011110010110
+00100000010000000011111100011011
+01110000010010001000110000000000
+01101111111000010100100101001000
+00011111111000100010010000000000
+11011111001000000000000000001000
+11101000010000001000000000010010
+00011000010001100111110011111111
+00100100010000101011111100101001
+00011010010000001010010000000001
+11000010000000000100011110100000
+00100000010000000110111101001011
+01101000010010001100011001100110
+00100000010000000100111100001010
+00100000010000000100111100001110
+00100000001000000100000011011101
+11000110000100110000000000000000
+00100000001000000100011110001111
+01000100101011111100000000001011
+00100000010000000111001110001000
+00100000001000000100011110110011
+01000100101100000100000000001100
+00100000010000000100000101100001
+00100000010000000100011110110011
+00100000001000000011011110011100
+01000100101100001100000000001100
+00100000010000000111110111100110
+00100000010000000100000101100001
+00100000010000000100001000000011
+00100000001000000100011110001111
+00100000010000000100011111100001
+00100000010000000101010100110101
+11011000111000000000000000000000
+00100000010000000100101000101001
+01011000000000000000000000000000
+01100111111000010100010111101111
+01100111111000010100010111110101
+01100111111000001100011000010011
+01100111111000001100100011111101
+01100111111000001100010111111001
+01101111111000100100010110100110
+01100111111000100100010111111111
+01100111111000100100011010100011
+00100000010000000100011111010011
+01101111111000001100101010100010
+01111001001000000111111000000010
+01100111111000001100101010100010
+00100000001000000100010010111001
+00100000010000000100011111100001
+01101111111000100100010110100110
+01100111111000100100010111111111
+01100111111000100100011010100011
+00100000010000000011010100110000
+00100000010000000100011111010011
+01110000010001100001001100000000
+01110000010001011111100100000000
+00100000001000000101010100110101
+01101111111000100100010110100110
+01101000010010100100010111111011
+10011000010001100111110000000000
+00100100001000101101001111000001
+01110000010001110100111111111111
+00100000011000000000000000000000
+11011111001000000000000000000110
+11011000110000000100101001110010
+11101111111000001000000000000110
+11000000001010011100011111100001
+11000000000111001100011111100001
+11000000001000111100011111100001
+11000010000000000100011111011011
+00100000011000000000000000000000
+01110000010010101000000100000011
+01110000010010011010100100000001
+00100000011000000000000000000000
+01110000010010101000000000000001
+00100000011000000000000000000000
+01101111111000001100011000010111
+00100100001110100100011111111011
+01101111111000001100010111111001
+11000000000000010100011111110011
+11000000000000001100011111110011
+11000000000000011100011111101101
+00100000001000000100011111101101
+00100000010000000100100000000100
+01101111111000001100011100111111
+00100100001110100101100000110110
+01101111111000001100011001111000
+11000000000000000100011110101111
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000010100010001101100101010010
+11000011000010010101100110001000
+01101111111000100100011010100011
+01101000010010100100011011111000
+10011000010001100111110000000000
+00100000001000101100011010000000
+00100000001000000101100110001000
+01000100101100010100000000001100
+01110000010001100001011100000000
+00100000010000000011011000100000
+01011111111111111111111111111111
+01100111111001000100010111000110
+01011000000000000000000000000000
+01100111111000111100011001011100
+01110000010001110011011100000001
+00100000001000000100100000100001
+01111001001111111000000000100110
+01110000010001100001001100000000
+11011000111000000000000000000000
+00100000001000000100101000101001
+01101111111000010100010111110111
+00011111111000010111111011100000
+00100000001110100100100000001111
+01101111111000010100010111110111
+00011111111000001111111000000001
+01100111111000010100010111110111
+00100000011000000000000000000000
+00100000010000000011010101010111
+00100000010000000011011000101010
+00100100001011000011010101011110
+00100100001101111011010101011110
+00100000010000000110100010111100
+00100000001000000011010101000000
+00100000010000000011010111111101
+00100100001101000100100000011010
+00100000010000000100100000101000
+00100000010000000100100001010101
+00100000001000000100100001011011
+01101111111001000100100101001110
+00100100001110100100100001011011
+01101111111001000100100101010110
+00100100001110100100100001011011
+01101111111000100100100101011110
+00100100001110100100100001011011
+00100000010000000011011001111100
+00100000010000000100100001001000
+00100100011101000000000000000000
+00100000010000000011011010011110
+01101111111000001100011100110111
+00100100010110100100011110110011
+01101111111001000100010111000110
+00100000001000000011010111111010
+01000100101100011100000000001100
+01110000010001100001100000000000
+01101001011000010000000001000000
+00110100011100110000001000000000
+00100000010000000011011000101010
+01101111111000001100010110010110
+11000000000000001011011000011111
+00100100001011000100100000110100
+00100100001101111100100000110100
+00100000010000000110100010111100
+01110000010001110011011100000000
+00100000001000000011011000011111
+01101111111000001100011000011001
+00100100011110100000000000000000
+01101111111000010100011000010101
+00011111111000001111111000000001
+01100111111000010100011000010101
+01101111111000001100011000010101
+11000000011111111011011001001111
+01101111111000001100011000011000
+00011111111000001111111000000001
+01100111111000001100011000011000
+00011111111000010111111000000011
+00100000001110100100100001000001
+00100000001000000100100000101010
+00100000010000000100001100110000
+01101111111000001100100010100110
+00100100001110100110110010011001
+01101111111000001100101010011011
+00100100001110100011011000011111
+00100000010000000011011001110101
+00100000001000000100100000101010
+01111000001101000111110000000000
+00100000010000000010001111110000
+01101111111000011100000010111101
+00100000001110100111110110111110
+01101111111000001100101001111010
+00100100001110100111110110111110
+01101111111000001100101001111011
+00100100001110100111110110111110
+01101111111000001100101010011111
+00100100001110100111110110111110
+01101111111000001100011000101111
+11000000000000001111110110111110
+00100000001000000011011010011001
+01101111111000100100010110100110
+01101000010010100100010111111011
+10011000010001100111110000000000
+00100100001000101011011011001001
+01110000010000010100000110101010
+00100000011000000000000000000000
+01101111111001000100011000100010
+01100111111001000100010111000110
+01101111111000010100011000110100
+01100111111000010100011000110110
+01000100101100100100000000001100
+00100000010000000100100001001000
+00100000001000000011010111110000
+11000110100100110000000000000000
+00100000010000000100011010011101
+00100100011101000000000000000000
+01101111111000001100011100101011
+00100100001110100100100001101000
+00100000001000000101100111000111
+01110000010001011010000000000010
+01101111111000001100011100100001
+11000000000001000100100001101101
+11011010001000000000000000001010
+00100000001000000110100001010010
+01100111111000001100100110111000
+11011010001000000000000000001111
+11011010010000000100100110111000
+00100000011000000000000000000000
+01000100101100101100000000001100
+01101111111001000100100010001110
+11000100000010101000000000000000
+00100000001000000110100010001000
+01000100101100110100000000001100
+00100000010000000010101000000110
+00100100011110100000000000000000
+01101111111000001100011101001111
+11000000011111111100100001111101
+01101111111000001100100010000010
+00011111111000010111111000000011
+11000001100000011000000000000000
+01101111111001000100100010001110
+11000010100000000110100000100100
+11000010100000011110100000100100
+11000010100000100110100000100100
+00100000010000000100011010011101
+00100100011101000000000000000000
+00100000010000000100111111010001
+00100000001000000110100000111100
+01110000010001110111001100001110
+01101000010010010100001110011111
+01101111111000001100011101110011
+00011111111000100010001000000000
+00100000010000000010110111001100
+01101000010010001100011101110011
+00011000010000100111001000000000
+11011000110000000100100110111001
+00100000001000000111110011011100
+01110000010001110111001100001001
+01101111111001000100100010001110
+11000010100100010110100000110001
+01110000010001110111001100001000
+00100000001000000110100000110001
+00100000010000000100000111001001
+01110000010001110011110100000000
+01110000010001110101001100000001
+00100000010000000101100101100000
+01101111111000001100011101010100
+00100100001110100100100010011010
+01110000010001110101010100010100
+01101111111000010100001111111010
+01111001001111111111111000000000
+01100111111000010100001111111010
+01110000010001110010000000000000
+01101111111000010100011101111101
+01100111111000010100011101111111
+00100000010000000101010100110101
+00100000001000000100100011101001
+01011000000000000000000000000000
+01100111111000010100011101111111
+01100111111000001100100100001100
+01100111111000001100100100001101
+01100111111000001100011101010011
+01110000010001111000000100000000
+00100000010000000010100110101010
+01110000010000101001110000000000
+00100000001000000100100010101011
+01101111111000010100001111111000
+11000010100000111100100010101111
+11000010100000000011011101110001
+00100000001000000100100011000101
+01110000010010001000001000000000
+01101111111000010100001111111000
+11000010100000000011011101110001
+00100000001000000100011110101111
+01101111111000001100011101010100
+11000000000000001100100010111000
+01110000010010001000001100010100
+01110000010010010000111000000101
+00100000001000000101010000001111
+00100000010000000101010000001000
+01110000010010001000001100000101
+00100000001000000101010000001111
+01101111111000001100100100001100
+00100100011110100000000000000000
+01110000010010010000110000000001
+01110000010010010000110100011110
+00100000011000000000000000000000
+00101000000011111111111000100110
+00100000010000001100100000000100
+00100000010000000101001111000110
+01110000010010001000001000000000
+00100000001000000100100011000101
+01000100101100111100000000001100
+00100000010000000100000101100011
+01011000000000000000000000000000
+01100111111000010100011101111111
+01100111111000010100101010100011
+01110000010010101010000111111111
+01101111111000010100010100000000
+00101111111011111111111000001011
+00100000010000001101010101100101
+00100000010000000101001111000001
+01101111111000010100010100000000
+11000010100001011100100011011001
+01101111111001000100100010001110
+11000011000011000100100011011001
+01101000010010010100011010100111
+00011000010000001000010000000001
+01100000010010010100011010100111
+01100000010010010100001011011110
+00011000000010100111111000000000
+01100111111000001100001011011101
+01101111111000011100011101010110
+01100111111000011100001011100000
+00100000010000000011011110100010
+01101111111000010100011001001111
+01100111111000010100011101010000
+01011000000000000000000000000000
+01100111111000010100011101000001
+01100111111000010100011101111111
+01100111111000001100011100100000
+11011000111000000000000000000001
+00100000010000000100101000100101
+00100000010000000100101000101111
+00100000001000000101010001010101
+01101111111000010100010100000000
+11000010100001001011011110010100
+00100000001000000100100011101001
+01000100101101000100000000001101
+01011000000000000000000000000000
+01100111111000010100011101010000
+11011000111000000000000000000100
+00100000010000000100101000101001
+00100000010000000101010101100101
+01101111111000001100101011000010
+00100000001110100100000101100011
+00100000011000000000000000000000
+01000100101101001100000000001101
+01101111111001000100100010001110
+11000100000000001000000000000000
+11011000111000000000000000000001
+00100000010000000100101000101001
+00100000010000000110011111100100
+00100000010000000110011111000001
+01101111111000001100101010100010
+01111001001000000111111000000001
+01100111111000001100101010100010
+00100000001000000100010010111001
+01110000010010001111111000000001
+11011010001000000000000000010111
+11011010010000000000000000000100
+00100000010000000010100111011001
+01011000000000000000000000000110
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000001111111111111111
+11100111111000010000000000000101
+01011000000000000010100000000000
+11100111111000010000000000000101
+11011000110000000100100011101110
+00100000001000000111110010010001
+01000100101101010100000000001101
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110011011
+11000000000000001100100100011001
+11000000000000111100100101011100
+11000000000001001100100100111000
+11000000000001011100100101010010
+11000000000001000100100101110001
+11000000000001100100100110000110
+11000000000001010100100110011111
+11000000000010010100100111000101
+11000000001010010100100111001011
+00100000001000000010101101110110
+01101111111000001100100011111110
+00100000011110100000000000000000
+01101111111000001100100011111110
+11000000000000010100100101100010
+01110000010010001111111000000010
+11011010001000000000000000001001
+11011010010000000000000000000100
+00100000010000000010100111011001
+01011000000000000000000000000110
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000001111111111111111
+11100111111000010000000000000101
+01011000000000000010100000000000
+11100111111000010000000000000101
+11011111001000000000000000000010
+11011000110000000100100011111111
+00100000001000000111110011011100
+11011010001000000000000000000111
+11011010010000000000000000000100
+00100000010000000010100111011001
+01011000000000000000000000001000
+11100111111000001000000000000101
+01101000010010010100001100111011
+00011000010000001000010000000101
+11101111111000100000000000000010
+11100111111000100000000000000101
+01011000000000000010100000000011
+11100111111000010000000000000101
+00100000011000000000000000000000
+01101111111000001100100011111110
+00100000011110100000000000000000
+01101111111000010100001100110111
+00011111111000001111111111111110
+00011111111001101111110000000111
+00100000010000000111110101100100
+00011000000001111111001000000000
+01101111111000010100001100111011
+00011111111000001000110000000110
+00011000110000001000110000000011
+11101111111000010000000000000110
+00011111111000100010011000000000
+11101111111000010000000000000110
+11011000010000000010101000101001
+10011000010001100111110000000000
+00100000001000101100100101001010
+11000010000000000100100101000001
+00100000001000000100100101100010
+11011010001000000000000000000011
+11011010010000000000000000000100
+00100000010000000010100111011001
+01011000000000000000000000001010
+11100111111000001000000000000101
+00011010011000100111111000000000
+11100111111000010000000000000101
+00100000011000000000000000000000
+01101111111000001100100011111110
+00100000011110100000000000000000
+01101111111000010100001100110111
+11011111001000000000000000001001
+01101111111000010100001100111011
+00011111111000001010001000000101
+11011010010000000100100100000001
+00100000010000000111110101100110
+00100000001000101100100101100101
+00100000001000000100100101100010
+01101111111000001100100011111110
+00100000011110100000000000000000
+01101111111000001100100011111110
+11000000000000010100100100101100
+01110000010010101010000100000010
+00100000001000000100100101100110
+01101111111000001100001011001101
+01100111111000001100101010100001
+00100000001000000100100101100110
+01110000010010101010000100000011
+01110000010010001111111000000000
+01101111111001000100100010001110
+11000011000001111100100101101101
+01110000010010101010010000000001
+01101111111000001100101010100011
+00100000011110100000000000000000
+00100000001000000011111111101110
+01101111111000001100101010100010
+01111001001000000111111000000100
+01100111111000001100101010100010
+00100000001000000100010010111001
+00100000010000000010111000011111
+00100000010000000010111000101000
+01101000010010010000011010001111
+01100000010010010000011001010110
+00100000010000000010110010100101
+00100000010000000010110010110000
+00011000110000001000110111111110
+00011000110000100111111000000000
+01100111111000010000011010100101
+01101000010010010000011010010100
+01011000000000000010101001010000
+10011000010001100111110000000000
+00100000001000101100100101111111
+00100000001000000010110000101101
+01101111111000001100100011001110
+00100000001110100010110000101101
+00100000010000000010110010111110
+00100000001110100010110111100001
+11011000110000000100100011001111
+00011000000000000111111000001011
+00100000001000000010110010000011
+11101111111000010000000000000110
+01100111111000010000011010010011
+10011000000000000010001000000000
+01101000010010010100001110011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110100101110
+01101111111000010000011010010011
+00011111111001100111110001000010
+00100100001000101100100110011001
+01011000000000000000000000010111
+00011111111000100010001000000000
+00011111111000100010011000000000
+00100000010000000010110111101110
+01011000000000000000000000001101
+11100111111000001000000000000101
+11011000110000000100100011011000
+00011010011000001111001111111111
+00100000001000000111110011001110
+01101111111001000100100010001110
+11000010100100011010110100101110
+01101111111000010100100011010110
+00011111111000100000110000000000
+11101111111000010000000000000110
+00100000001000000010110100110001
+01101000010010010100001110011100
+01101111111000001100001100100011
+11000010100000011100100110111111
+01101111111001000100100010001110
+11000011000001011100100110100101
+11000011000011001100100110100111
+01101111111000010100001110011100
+11000000000110000010110111100001
+01101111111000010100001110011100
+11000000000000101100100110110111
+11000000000010000100100110111010
+01101000010010010100001110011100
+01101111111001000100100010001110
+11000010100100011010110011111011
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110011111011
+00100000010000000010111000100100
+01101000010010010100100011010110
+00011000010000100000110000000000
+11101000010000010000000000000110
+00011000010000001000010000000001
+00100000010000000111110110110010
+00100000001000000010110100001011
+11011000110000000100100100001010
+00011000000000000111111000000011
+00100000001000000010110100001011
+01101111111000001100100011001110
+00100000001110100100100110101010
+11011000110000000100100011001111
+00011000000000000111111000001000
+00100000001000000010110100001011
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101100100110100010
+00100000010000000010110110100101
+00100100001101000100100110100111
+00100000001000000010110100100100
+00011000110000100010001000000000
+01101111111000010100001100110111
+00011111111000001010010111111101
+00100000010000000010100100001000
+00100000010000000100100111001100
+00100000001000000110100001111000
+00100000010000000010110111001000
+01101111111000001100011101001111
+11000000011111111100100111010001
+01101111111000010100001110011100
+11000000000100101100100111010100
+00100000011000000000000000000000
+01101111111000010100001110011100
+11000000000100001100100111010100
+00100000011000000000000000000000
+01101111111000001000000001010101
+01100111111000001100011100001101
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000001100000000000000000
+00100000010000000100100111011011
+00100000001000000100100111101100
+01101111111001001100101011010001
+01100111111001001000100000111010
+01011000000000000100100111100001
+01100111111000010000100000110111
+01110000010010101100111001011010
+00100000011000000000000000000000
+01110000010001100111011101011010
+01110000000010000011100100000001
+00100000010000000111100101010110
+00100000010000000100100111100111
+01101111111000001100011001110111
+00100000001000000011110100101010
+01101111111000001000100000111010
+00100000011110100000000000000000
+01101111111000001100011001110111
+11000000001011010011110100100111
+00100000001000000011110100100100
+01101111111000001100101011001110
+11000000001011010100100111110001
+01101111111000001100101011001110
+01100111111000001100101011001111
+00100000011000000000000000000000
+00100000010000000100100111101110
+01011000000000000000000000000000
+01100111111000010100010111101111
+01100111111000010100010111110101
+01110000010000001001010000000000
+01101111111000001100101011010000
+00100000010110100111100100000010
+01110000010010101101000000110010
+00100000011000000000000000000000
+01101111111001000100100010001110
+11000100000100100000000000000000
+01101111111000001100011001111000
+11000001100000100000000000000000
+00100000001000000111100011110110
+01101111111001000100100010001110
+11000100000100100000000000000000
+01101111111000001100011001111000
+11000001100000100000000000000000
+01101111111100001000110000000001
+01100111111000001100011001110101
+11000100000000111000000000000000
+01110000010010101101000000000000
+01011000000000000000000000000000
+01100111111000010100011101000001
+00100000010000000100100000000100
+00100000010000000100100011100110
+00100000010000000100011010011101
+00100100011101000000000000000000
+01101111111000001100011100101011
+11000000000000001110100001011011
+00100000001000000110100001010110
+01110000000010001110100100000000
+11011111001000000000000000001001
+01101111111001000100100010001110
+11000010100100010111110000100100
+00100000001000000111110000100010
+00100000010000000011110101010011
+01110000000010001110101000100100
+01011000000000000000000000001000
+01100111111000001000100100010001
+11011000110000000100100110111001
+11011000101000000000100100010010
+11011111001000000000000000001110
+00100000001000000111110011011100
+01101111111000001000011001001101
+11011111001000000000000000001000
+11011000110000000100010011101010
+11101000010000001000000000000110
+10011000010001100111110000000000
+00100000011000101000000000000000
+11000010000000000100101000100000
+00100000001000000111100000011100
+01101111111001000100100010001110
+11111001001000000111111000000000
+01100111111001000100100010001110
+00100000011000000000000000000000
+01101111111001000100100010001110
+11111001001111111111111000000000
+01100111111001000100100010001110
+00100000011000000000000000000000
+11011000111000000000000000000011
+00100000001000000100101000100101
+11011000111000000000000000000011
+00100000001000000100101000101001
+00100000001101011100101001000011
+00100000010000000010100100110001
+01011000000000000100101001011110
+01100111111000010100001111100100
+01011000000000000100101001100001
+01100111111000010100001111100110
+01011000000000000100101001011010
+01100111111000010100001111011100
+01011000000000000100101100001010
+01100111111000010100001111101010
+01011000000000000100110011100001
+01100111111000010100001111101000
+01011000000000000100110011110010
+01100111111000010100001111101100
+01000100101101100100000000001101
+00100000010000000100101001000011
+00100000010000000100101001010101
+00100000001000000100110001101100
+01101111111100001000000001100000
+01111001001111111111111000000000
+01100111111100001000000001100000
+01101111111001000100010100010111
+00100000010000000110110101011011
+01101111111000010100010100011111
+00100000010000000110110101100110
+00100000010000000110110101110101
+01110000100000000111011100001000
+01110000100000000111011001001001
+01110000100000000111100100001010
+01110000100000000111101000001011
+11011000010000000000000010000001
+01101111111000010100010100100110
+00101111111011111111111000000000
+01111001001000001000010000000100
+01100000010110001000000001100000
+00100000011000000000000000000000
+01101000010010001100010100001100
+00100000010000000110111011110001
+00100000010000000100101010000100
+01101000010010001100010100001010
+00100000001000000110111011010111
+01101000010010001100010100001010
+00100000010000000110111011100000
+00100100001000001011011101111111
+00100000001000000011011101111101
+00100000010000000110100100110101
+00100100011110100000000000000000
+00100000001000000100101010000110
+00011010011000100111111000000000
+11000000000010100100101001110011
+11000000000010101100101001101111
+11000000000110000100110010100110
+11000000000110001100110010101000
+11000000000110010100110010110010
+11000000000110011100110010110000
+11000000000110100100110010100000
+11000000000111101100110010000000
+11000000001000001100101001111001
+11000000001000010100101001111011
+11000000001000011100110010011110
+11000000000111011100110010001001
+00100000011000000000000000000000
+00100000010000000010100110101010
+01110000010001010010100000000000
+00100000010000000100101001110111
+00100000001000000100110001010010
+00100000010000000100101001111110
+01101111111000001100010100010101
+01100111111000001100000011000000
+00100000001000000100110001010000
+00100000010000000100101011010011
+00100000001000000100101001111100
+00100000010000000011000011010001
+00100000001000000010111010110011
+00100000001000000100110011000010
+01101000010010001100010100001100
+00100000001000000110111011110001
+00100000010000000100101010000000
+00100000001000000100101010000100
+01101111111000001100010100001111
+00101111111011111111111000000001
+00100000010000001011011110001010
+00100000011000000000000000000000
+01101000010010001100010100001100
+00100000001000000110111011101101
+01101111111100001000000100001011
+11000011100000010000000000000000
+00100000010000000110110110001001
+11101111111000001000000000000011
+11000000100000001100101010011100
+01101111111100010000000100010010
+00011111111001100111110000000010
+00100000011000010000000000000000
+11101111111000001000000000000011
+01100111111000001000011011000000
+11101000010000001000000000000011
+00011000011000100010001000000000
+01100000010010001000011011000001
+00011000010000001000010000000011
+01101111111100010000000100010010
+10011000010001100000010000000000
+00100100011000010000000000000000
+01110000000001101100001000000001
+00100000010000000100101010101010
+01101111111000001000011011000010
+11000001000000000000000000000000
+00100000001000000100101010100101
+00100000010000000111110010010111
+00100000010000000100110010001111
+00100000001000000100101010011111
+01000100101101101100000000001101
+00100000010000000110110110001001
+01101111111100010000000100010010
+00100000011110100000000000000000
+10011000011000001000011000000000
+00100000001000000100101010101001
+00100000010000000110110110001001
+00011000011000001000011000000010
+11101111111000001000000000000011
+10011000011000001000011000000000
+00100000001000000110110110001111
+01000100101101110100000000001101
+01101111111000001000011011000000
+11000000000000001100101011000111
+11000000000000010100101011001100
+11000000000000100100101011011010
+11000000000001001100101011011110
+11000000000001011100101100110101
+11000000000001111100101100110110
+11000000000010000100101100111110
+11000000000010010100101101000010
+11000000000100110100101101000110
+11000000000101010100101101001011
+11000000000101011100101101111110
+11000000000101100100101110000100
+11000000000110000100101110001011
+11000000000110011100101110010000
+11000000000110101100101110111101
+11000000000110110100101111000110
+11000000000110111100101111001111
+11000000000111000100101111010101
+11000000001000000100101111011101
+11000000001000010100101111100111
+11000000001001000100101111101100
+11000000001010001100101111110111
+11000000001110110100101111111011
+11000000001110111100110000000001
+11000000001111000100110000000110
+11000000001111010100110000111100
+00100000001000000100110001001010
+01101111111000001000011011000001
+11000000100000110100110001001010
+11101111111000110000000000000011
+01100111111000110100001011011101
+00100000001000000100110001001101
+01101111111000001000011011000001
+11000000100000001100110001001010
+11101000010000001000000000000011
+01100000010010001100010100010110
+00100000010000000100110001001101
+01101111111000010100010100000000
+11000011100001001000000000000000
+01101111111000001100010100001111
+00101111111011111111111000000001
+00100100011000001000000000000000
+01101000010010001100010100010110
+00101000010011111111111000000010
+00100000001000001011011110001100
+00100000001000000011011110001010
+11011111111000000000000000011101
+11011000101000000100001001101101
+00100000010000000100101111000000
+00100000001000000010100100110001
+01101111111000010100010100000000
+11000011000001001100110001001010
+00100000010000000100101100110010
+00100000001101000100110001001010
+01110000000001101100001000000000
+01101111111000010100010100100110
+11000010100001000100101100000011
+01101111111000001100010100101000
+00100100011110100000000000000000
+01110000000001101100001000000001
+11101111111000010000000000000011
+01100111111000010100010100101001
+01100000011000010100010100101011
+01101111111000001000011011000001
+00011111111000001111111111111110
+00100100001000010100110001001010
+00100000001000101100110001001010
+01100111111000001100010100101000
+01101000010010010100010100101001
+00011000010000001000010111111111
+00100000010000000010110010110000
+00100000001110100100101100000110
+11101000010000100000000000000110
+01011001001010000000001100000010
+10011000010001100111110000000000
+00100100001000101100101100000110
+11101111111000001000000000000110
+01100111111000001100010100101101
+00011111111000010111111000110000
+00100000001110100100101100000110
+01110000000001101100001000000000
+00100000010000000010100110101000
+00100000010000000100101100001010
+00100000010000000100101100001010
+00100000010000000100101100001010
+01101111111000010100010100100110
+11000100000001000000000000000000
+01110000000001101100001000000001
+00100000010000000100110100000111
+00100000001000000100110001001101
+01110000010001010010100000000000
+01110000000001101100001000000001
+00100000010000000100110100000111
+00100000001000000100110001001010
+01101111111000001100010100101000
+00100000011110100000000000000000
+00100000010000000010101000000110
+00100100011110100000000000000000
+00100000010000000100101100101101
+01000100101101111100000000001101
+01101111111000010100001011100011
+00100000010000000111110110110010
+00011111111000100000010000000000
+01101111111000001100001110011010
+11000011100000000000000000000000
+00011000010000001111111111111101
+11011000010000000000000011111011
+00100000010000000111110110110010
+01101000010010001100010100101000
+00100000010000000111110110110010
+00011111111000100010001000000000
+00011000010000100111111000000000
+10011010001001100111111000000000
+01100111111000001100010100101000
+00100000010000000100101100101000
+01101111111000010100010100101011
+00011111111000100000011000000000
+00011010001000100111001000000000
+00100000010000000110110110111101
+00011000011000100111111000000000
+01100111111000010100010100101011
+01101111111000001100010100101000
+00100100011110100000000000000000
+00100000001000000100110100000101
+01101000010010010100010100101001
+01101111111000001100010100101101
+11000010100000101010110111010101
+11000010100000100010110111001100
+00100000011000000000000000000000
+11011000010000000000000000010111
+01101111111000010100010100100110
+11000011100000001000000000000000
+01101000010010010100001011100101
+00100000011000000000000000000000
+01101111111000010100010100100110
+11000010100000010010110110100101
+00100000001000000111110110111110
+00100000001000000100110001110000
+01101111001000001000011011000001
+00100000010000000111110100110101
+00100000010000000110110101101010
+01100111111000010100010100011111
+00100000010000000100110001001101
+00100000010000000110110110100001
+01101111111000010100010100011111
+00100000001000000110110101100110
+11011010001000000000000000000010
+11011010010000000100010100001000
+11011000010000000000000000000000
+00100000001000000100110001010100
+01101111111000010100010100000000
+11000011000001001100110001001010
+00100000010000000100110001001101
+00100000001000000011011110010100
+01101111001000001000011011000001
+01101111111000010100010000000001
+00011111111000100000101000000000
+00100000010000000110110110111101
+00100000001000000100110001001101
+11011111001000000000000001000000
+11011000101000000100001101001100
+00100000010000000111110010100011
+01011000000000000000000000000000
+01100111111000001000011001100110
+00011010001000100000011000000000
+00011000011000100111111000000000
+01100111111000010000011001101010
+00100000010000000100101101111001
+01101111111000001000011001100110
+01101000010010001000011001010110
+00011000010000001000010000000001
+10011000010000001111111000000000
+01100111111000001000011001100110
+00011111111001100111110000011111
+00100100001000010100101101100101
+01101000010010001100001101001100
+01011000000000000100001101001101
+10011000010000001111111000000000
+01100111111000010000011001101111
+01101000010010001000011001010110
+00011000010000001000010000000001
+01101111111000001100001101001100
+10011000010000001111111000000000
+01100111111000001100001101001100
+00100000001000000100101101101110
+01101000010010001100001101101100
+01011000000000000100001101101101
+10011000010000001111111000000000
+01100111111000010000011001101111
+01101000010010001000011001010110
+00011000010000001000010000000001
+01101111111000001100001101101100
+10011000010000001111111000000000
+01100111111000001100001101101100
+01101111111000010000011001101111
+00011111111000100000101000000000
+01101111111000010000011001101010
+00011111111000100000011000000000
+00011000010000100111001000000000
+00100000010000000110110110111101
+01101111111000001000011011000001
+01101000010010001000011001100110
+10011000010001100111110000000000
+00100100001000101100101101010001
+00100000001000000100110001001101
+11101111111000001000000000000011
+01100111111000001000011001010110
+11101111111000001000000000000011
+01100111111000001000011001100010
+00100000011000000000000000000000
+11011000010000000000000000000000
+11011010001000000000000000000010
+01101111111000010100010100100011
+01100111111000010000011001111111
+11011010010000000000011001111111
+00100000001000000100110001010100
+01101111111000001000011011000001
+11000000100000001100110001001010
+11101111111000001000000000000011
+01100111111000001100010100100001
+01011000000000000000000000000000
+01100111111000010100010100100011
+00100000001000000100110001001101
+01101111111000001000011011000001
+11000000100000100100110001001010
+01101111111000010100010100000000
+11000010100001001100110000111100
+00100000001000000100110001001010
+11101111111000001000000000000011
+00011111111000100000010000000000
+11000000010000001100101110011111
+11000000010000010100101110100011
+11000000010000011100101110101000
+11000000010000100100101110101100
+01100111111000001100001100000000
+00100000010000000111010011101101
+00100000010000000010111010100010
+01101111111000001100001100000000
+11000000000000000100101110110000
+11000000000000001100101110110011
+11000000000000010100101110110101
+11000000000000100100101110110111
+00100000001000000100110001001010
+01100000010010001100001100000000
+00100000010000000010111010011110
+01110000010000101100100100001101
+00100000001000000100101110110001
+01100000010010001100001100000000
+00100000010000000010111010011110
+01110000010000101100100100001101
+01110000010000101100011100000001
+00100000001000000100110001001101
+01100000010010001100001100000000
+00100000010000000010111010011110
+01110000010000101100100100001101
+00100000001000000100101110111011
+01100000010010001100001100000000
+00100000010000000010111010011110
+01110000010000101100100100001101
+00100000001000000100101110111001
+01110000010000101100100100000000
+01110000010000101100011100000011
+00100000001000000100110001001101
+01110000010000101100100100000001
+00100000001000000100101110110001
+01110000010000101100100100000101
+00100000001000000100101110111011
+01110000010000101100100100000101
+00100000001000000100101110111001
+01110000010000101100011100000010
+00100000001000000100110001001101
+01110000010000101100011100000000
+00100000001000000100110001001101
+11011111111000000000000000011111
+11011000101000000100001101101100
+00100000001000000100101111000000
+01101111001000001000011011000001
+10011111001001100111110000000000
+00100100001000010100110001001010
+11100111001000001000000000000101
+00100000010000000110110110111101
+00100000001000000100110001001101
+01101111111000010100010100000000
+11000011000001001100110001001010
+01101111111000001000011011000001
+11000000100001000100110001001010
+11101111111001000000000000000011
+01100111111001000100001011010101
+01110000000001100100110100010010
+00100000010000000111100000100100
+00100000001000000100110001001101
+11101111111000010000000000000011
+01100111111000010100001110001101
+01100000010010001100000010100110
+10011000010000001111111000000000
+01100111111000010100000010100100
+00100000001000000100110001001101
+01101111111000001100001100000000
+00100000001110100100110001001010
+01101111111000001100001011111110
+11000000100000000100110001001010
+01101111111000001100001011111111
+11000000100000000100110001001010
+00100000010000000111100010011001
+00100000001000000100110001001101
+01101111111000001000011011000001
+11000000100000101100110001001010
+11101111111000001000000000000011
+01100111111000001100010100010000
+11101111111000100000000000000011
+01100111111000100100010100010001
+01101000010010001100010100010000
+00100000010000000110111011110001
+00100000010000000100110011011111
+00100000001000000100110001001101
+01101111111000001000011011000001
+11000000100000001100110001001010
+11101111111000001000000000000011
+01100111111000001100000101000001
+00100000001000000100110001001101
+11101111111000001000000000000011
+11000000000000001100101111110101
+01101111111000001100001011111100
+11000000000000011100101111110011
+11000000000000110100101111110011
+11000000000000111100101111110011
+00100000001000000100110001001010
+01110000010000101111110100000001
+00100000001000000100110001001101
+00100000010000000010111100001000
+00100000001000000100110001001101
+00100000010000000100110001001101
+00100000010000000110110110100001
+01110000100000000001000000000001
+00100000001000000010001100111110
+11011000010000000000000000000001
+00100000010000000010110010110000
+00011000110000001000101111111110
+01011000000000000000000000000000
+11100111111000010000000000000101
+00100000001000000100110001001101
+00100000010000000100110000001010
+00100000010000000100110000111000
+01011000000000000000000000000000
+11100111111000010000000000000101
+00100000001000000100110010111001
+11101111111000001000000000000011
+00100000010000000100110000001110
+00100000010000000100110000010101
+00100000001000000100110010111001
+00100000010000000100110000110101
+01011000001010000000000000000010
+11100111111000011000000000000101
+00100000011000000000000000000000
+01100111111000001000011001001110
+00100000010000000100110000110101
+01011001001010000000001100000010
+11100111111000100000000000000101
+01101111111000001000011001001110
+11100111111000011000000000000101
+00100000011000000000000000000000
+00100000010000000010110011010100
+11101111111000001000000000000011
+00011111111000010111001000011111
+00011111111000100010001000000000
+00101010001011111111111000000111
+01111001001000001000010000001111
+00101010001011111111111000000110
+01111001001000001000010000001110
+11100000010000010000000000000101
+00011111001000100111111000000000
+11100111111000001000000000000101
+00100000010000000110110111010000
+00100000010000000100110000111000
+01011000000000000000000000000000
+11100111111000010000000000000101
+00011000010000010000010011111111
+00011000010000001000010111111111
+00100000010000000010110010110000
+00011000110000001000110000000100
+11101111111000001000000000000110
+11000010100000100100110000101101
+11000010100000101100110000101101
+00011000010000001000010000000001
+00100000011000000000000000000000
+00100000010000000010110011010100
+00101010001011111111111000000101
+01111001001000001000010000001111
+11100000010000010000000000000101
+01011010001010010000001000000010
+11100111111001000000000000000101
+00011000010000001000010111111111
+00100000011000000000000000000000
+00100000010000000010110011010100
+11100000010000010000000000000101
+00100000011000000000000000000000
+11101111111000001000000000000011
+00011111111000100111001000000000
+11100111111000001000000000000101
+00100000001000000110110111010000
+01101111111000001100001011111110
+11000000100000101100110001001010
+01101111111000001100001100000000
+11000000000000100100110001001000
+11000000010000100100110001000010
+00100000001000000100110001001010
+01110000010000101111101100000010
+01110000010000101111110000001000
+00100000001000000100110001000101
+11101111111000100000000000000011
+01100111111000100100001100000001
+00100000001000000100110001001101
+00100000010000000100110001000101
+00100000001000000010111011110001
+11011000010000000000000000000001
+11011010001000000000000000000000
+00100000001000000100110001010100
+11011000010000000000000000000000
+11011010001000000000000000000000
+00100000001000000100110001010100
+01110000000001101100000000000010
+00100000001000000100110001101101
+01110000000001101100000000000101
+00100000001000000100110001101101
+01101111111000001000011011000000
+00011111111000100010011000000000
+01110000000001101100000000000110
+01011000000000000000000000000010
+10011010001000001111111000000000
+00100000010000000100110011001000
+00011010011000100111111000000000
+11100111111000001000000000000011
+11100000010000001000000000000011
+00011010001000100111001000000000
+00011010010000100000110000000000
+00100000010000000110110110110111
+00100000001000000100110011010010
+01110000000001101100000000001000
+00011111001000001111111000000010
+00100000010000000100110011001000
+01101111111000010000011011101011
+11100111111000010000000000000011
+01101111111000010000011011101001
+00011111111000100000110000000000
+00100000010000000110110110100100
+00011000110000100111111000000000
+01100111111000010000011011101001
+00100000001000000100110011010010
+01110000000001101100000000001001
+01011000000000000000000000000000
+00100000010000000100110011001000
+00100000001000000100110011010010
+01110000000001101100000000001010
+01011000000000000000000000000001
+00100000010000000100110011001000
+00100000010000000100110001111010
+01101111111000010100010100000000
+11011000111000000000000000001001
+10101111111011111111111111111111
+01111001001000001000010000000101
+11100000010000001000000000000011
+00100000001000000100110011010010
+11011000010000000000000000000000
+01101111111000001100001110001100
+11011000111000000000000000000000
+10101111111011111111111111111111
+01111001001000001000010000000010
+00100000011000000000000000000000
+01110000000001101100000000001101
+01101111111000001100010000000011
+00011111111011111111111000100010
+00011111111000100111001000000000
+00100000010000000100110011001000
+01101111111000010100010000000001
+00011111111000100000110000000000
+00100000010000000110110110100100
+00100000001000000100110011010010
+01110000000001101100000000001110
+01011000000000000000000000000100
+00100000010000000100110011001000
+01101111111000100000010111011000
+11100111111000100000000000000011
+00100000001000000100110011010010
+01110000000001101100000000001111
+01101111111100010000000100010010
+11011000010000000000000001000000
+00100000010000000111110110110010
+00011111111000100010001000000000
+00011111111000100111001000000000
+00100000010000000110110110001001
+11011000101000000000011001111111
+00100000010000000110110110111101
+00011010001000100111111000000000
+00011010001000100111001000000000
+00100000010000000100110011001000
+11011000110000000000011001111111
+00100000010000000110110110100100
+00100000001000000100110011010010
+01110000000001101100000000010000
+00100000001000000100110001101101
+01110000000001101100000000010001
+01011000000000000000000000000100
+00100000010000000100110011001000
+01101111111000100100001100000001
+11100111111000100000000000000011
+00100000001000000100110011010010
+11011010001000000000000110000000
+00100000001000000100110010101010
+11011010001000000000000010000000
+00100000001000000100110010101010
+01110000000001101100000000010100
+01011000000000000000000000000010
+00100000010000000100110011001000
+00011010001000100111111000000000
+11100111111000010000000000000011
+00100000001000000100110011010010
+11011010011000000000000000000000
+00100000001000000100110010110011
+11011010011000000000000000000001
+01110000000001101100000000010101
+01011000000000000000000000000001
+00100000010000000100110011001000
+00011010011000100111111000000000
+11100111111000001000000000000011
+00100000001000000100110011010010
+01100000010010010000011001010110
+01110000000001101100000000101001
+01011000000000000000000000000010
+00100000010000000100110011001000
+01101000010010010000011001010110
+11100000010000010000000000000011
+00100000001000000100110011010010
+01110000000001101100000000101011
+00100000001000000100110001101101
+01110000000001101100000001000000
+01011000000000000000000000000010
+00100000010000000100110011001000
+01101111111000010100000001110101
+11100111111000010000000000000011
+00100000001000000100110011010010
+01110000000001101011111100000010
+01100111111000001000011011000001
+01100000010011000000011001010110
+01000100101110000100000000001110
+00100000010000000100110011010100
+01101000010011000000011001010110
+00100000010000000110110110010101
+01101111111000011000011010111111
+11100111111000011000000000000011
+00100000011000000000000000000000
+01000100101110001100000000001110
+00100000001000000110110110010111
+00100000010000000100110011011101
+00100000011000001000000000000000
+00100000010000000100110011011011
+01101111111000100100010100010001
+00011111111010110111111000000000
+00100000011110100000000000000000
+00100000001000000111110010010011
+01101000010010001100010100010000
+00100000001000000110111011110001
+01101000010010001100010100010000
+00100000001000000110111011111100
+01101000010010001100010100010000
+00100000001000000110111011101101
+01100010001000010000011011101001
+01100010010000010000011011100111
+01101111111000010100001110011100
+01100111111000010000011011101011
+00100000010000000100101100110010
+00100000011101000000000000000000
+01101000010010010000011011100111
+01101111111000001100010100100101
+00100000010000000111110110110010
+00011111111000100111001000000000
+00011000010000100111111000000000
+10011111001001100111111000000000
+01100111111000010000011011100111
+00100000010000000100110001100001
+01101111111000010000011011100111
+00100000011110100000000000000000
+00100000001000000100110011100111
+00100000011000000000000000000000
+01101111111000001100010100100001
+00100000011110100000000000000000
+01101111111000001100010100100010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100010100100010
+00100100011110100000000000000000
+01110000010001010010001000000101
+00100000010000000110111110110010
+00100000010000000110111110001110
+00011111111001101111110000001010
+00100000010000000111110101100001
+00011111111001101111110001100100
+00100000010000000111110101100001
+00011000000001110000010000000000
+01100111111000001100010100100011
+01100000010010001100010100100100
+00100000011000000000000000000000
+11011000111000000000000000001000
+00100000001000000100110100001101
+11011000111000000000000000001000
+00100000001000000100110100001001
+01101111111000010100010100100110
+11111001001111111111111000000000
+01100111111000010100010100100110
+00100000011000000000000000000000
+01101111111000010100010100100110
+11111001001000000111111000000000
+01100111111000010100010100100110
+00100000011000000000000000000000
+00100000010000000111001110000100
+00100000010101011100110100100000
+00100000010000000100110101000000
+00100000010000000100110111101100
+00100000010000000101001001100000
+00100000011101011000000000000000
+00100000010000000101101110000011
+00100000010000000101000001101011
+00100000010000000101100001010011
+00100000010000000100110100100010
+00100000010000000101001100000011
+01101111111000010100010100000000
+11000010100001100101010101000100
+00100000010000000101011111010111
+00100000001000000100110111110101
+00100000010000000101001000000011
+00100000001000000110111101001110
+01000100101110010100000000001110
+01011000000000000101101100000010
+01100111111000010100011000001111
+01011000000000000101101011110111
+01100111111000010100011000010001
+01011000000000000101100111110000
+01100111111000010100001111110010
+01011000000000000101100110111100
+01100111111000010100011000001001
+01011000000000000110100010000110
+01100111111000010100011000001011
+01011000000000000100111001110101
+01100111111000010100011000001101
+01011000000000000101010000111000
+01100111111000010100001111100010
+01011000000000000100111001110000
+01100111111000010100001111100000
+01011000000000000101001111011010
+01100111111000010100001111100110
+01011000000000000101011101011001
+01100111111000010100001111100100
+01011000000000000100111000111101
+01100111111000010100001111011110
+01011000000000000101010000100000
+01100111111000010100001111101000
+01011000000000000101010010010100
+01100111111000010100001111101100
+01011000000000000100111000101101
+01100111111000010100001111011100
+00100000001000000110100011001011
+00100000011101011000000000000000
+00100000010000000011010111001000
+00100000010000000011001000111010
+00100000010000000101101101111111
+00100000010000000100111011100101
+00100000010000000100110110001000
+00100000010000000101101001001011
+00100000010000000010101000011111
+01000100101110011100000000001110
+01101111111001000100011100001110
+11000010100010001101011001000000
+11000010100010000101011001010000
+11000010100010010101011010000101
+00100000011000000000000000000000
+01110000010000001001100100010000
+01101111111001000100011100001110
+11000011100001011000000000000000
+01110000010000001001100100011000
+00100000011000000000000000000000
+00100000010000000011001001100000
+01110000010010001111101000000000
+01110000010001011110000100000000
+01110000010001000100111000000000
+01101111111001000100011100001110
+11000100000111101000000000000000
+01110000010010001111101000000001
+01110000010001011110000100000001
+01110000010001000100111000000001
+00100000001000000011001001100011
+01000111011110000100000000111110
+01101111111000001100010110010100
+00100000001110100100110101100101
+01101111111000100100010111100011
+01101000010010100100010110100110
+10011000010001100111110000000000
+00100000001000101100110101101100
+00100000001000000011010101000110
+01101111111000100100010111111011
+01101000010010100100010110100110
+10011000010001100111110000000000
+00100000001000101100110101100000
+01101111111000100100010101110110
+00100000011110100000000000000000
+00100000001000000100110101100000
+01101111111001000100011100001110
+11000010100110000101100101101100
+11000010100111110101100101101100
+00100000001000000011010100011111
+01101111111001000100011100001110
+11000011000111101011011001011000
+01101000010010001100011000011000
+01101111111000001100011000111000
+10011000010001100111110000000000
+00100100001000010011011001110101
+00011000010000001000010000000001
+01100000010010001100011000011000
+01101111111000001100011000111000
+11000000000001111100110101111110
+01101111111000001100011000011000
+11000000000010100011011001101111
+11000000000011110011011001101111
+00100000011000000000000000000000
+01101111111000001100011000011000
+11000000000001010011011001101111
+11000000000001111011011001101111
+00100000011000000000000000000000
+01000100101110100100000000001110
+00100000010000000110011111111111
+00100000010000000100110101001110
+00100000010000000100110101010011
+00100000010000000101100011111100
+00100000001000000011001001100110
+01000100101110101100000000001110
+00100000010000000100110110010011
+00100000010000000100110110100101
+00100000010000000100110111010011
+01011000000000000000101001110111
+01100111111000010100001111111110
+00111000000000000001001000100100
+00111000000001000100000000000000
+00111000000010000000000000000000
+11100111111000101000000000000101
+00100000011000000000000000000000
+01011000000000001001000000000000
+01100111111000010100001011111001
+01110000010010010001011100000000
+01011000000000000000000000000000
+01100111111000111100011001011100
+01101111111000001100010100000010
+01100111111000001100011100110001
+01100111111000001100011100110010
+01110000010001011010000000000001
+01110000010001011111101000000001
+01110000010010101100010000000000
+00100000010000000100110110100000
+00100000001000000110100000001100
+11011000010000000000000000000000
+01101111111001000100011100001110
+11000010100010010110100000011101
+11011000010111111111111111111111
+00100000001000000110100000011101
+00100000010000000100110110101110
+01101111111000011100011000011111
+01100111111000011100100011011100
+01101111111001000100011100001110
+11000100000011011000000000000000
+01011000000000000000000000000110
+01100111111000010100001011010101
+01100111111000010100001011010111
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000010100011001100110110110010
+11000010100011000100110110111001
+00100000001000000100110111000110
+01101111111000001100100010111111
+01100111111000001100011000111000
+01101111111000100100100011010000
+01100111111000100100100011001100
+01011000000010000000011000000110
+01100111111000011100010110111110
+00100000001000000011011010111011
+01101111111000011100100011000000
+01100111111000011100011000011111
+01101111111000011100100011000011
+01100111111000011100011000100010
+01101111111000100100100011010100
+01100111111000100100100011001100
+01011000000100000000110000001100
+01100111111000011100010110111110
+01110000010001100011100000000101
+01101111111001000100011100001110
+11000100000111101000000000000000
+01110000010001100011100000001111
+00100000011000000000000000000000
+01101111111000011100100011000110
+01100111111000011100011000011111
+01101111111000011100100011001001
+01100111111000011100011000100010
+01101111111000100100100011011000
+01100111111000100100100011001100
+01011000000111000001100100011001
+01100111111000011100010110111110
+01110000010001100011100000001011
+01101111111001000100011100001110
+11000100000111101000000000000000
+01110000010001100011100000011110
+00100000011000000000000000000000
+01000100101110110100000000001110
+00100000010000000100110111101001
+01101111111000001100100010010101
+11000001011111111000000000000000
+01101111111000001100100010010101
+00100000010000000101001001011000
+01101000010010001100100010010101
+00100000010000000110111011100000
+00100000001000001100110111100101
+01101111111000001100100010010101
+00100000010000000101001001011100
+01101000010010001100100010010101
+00100000010000000110111011100000
+00100000001000001100110111101001
+01101111111000001100100010010101
+00100000010000000101001001011000
+01101111111000001100100010011000
+00100000001000000100110111101010
+01101111111000001100100010010101
+00100000010000000101001001011100
+01101111111000001100100010010111
+00100000001000000100110111101010
+01101111111000001100100010010110
+01100111111000001100100111111011
+00100000011000000000000000000000
+01000100101111000100000000001111
+00100000011101011000000000000000
+01101111111000001100101000011110
+00100000011110100000000000000000
+00011111111000001111001000000001
+11011000110000000100101000011110
+11011000101000000100001001101101
+00100000010000000111110011011100
+00100000001000000010100101001000
+01000100101111001100000000001111
+01101111111001000100011100001110
+11000010100111110101100101001011
+01101111111000001100011001111000
+11000000000000000101100100111010
+00100000010000000101101001110000
+00100000010000000101001111000001
+01101111111000001100011001111000
+11000000000000001100111000000000
+11000000000000010100111000000101
+00100000011000000000000000000000
+01101111111000110100011001111010
+01101000010010110100011011111000
+10011000010001100111110000000000
+00100000001000101101001110101101
+00100000001000000100111000001001
+01101111111000110100011010000111
+01101000010010110100011011111000
+10011000010001100111110000000000
+00100000001000101101001110101101
+01000100101111010100000000001111
+11011010001000000100011001111001
+01101111111000001100011001111000
+00011111111000001111111111111111
+00011111111011111111111000001101
+10011010001000001010001000000000
+11101111111000001000000000010001
+01100111111000001100001111111100
+01101111111000001100001111111100
+11000000000110100100111000011110
+00100000001000000101001110101101
+01000100101111011100000000001111
+01111000010101000111110000000000
+01101111111001000100011100001110
+11000011000001010100111000011011
+01101111111100001000000100110010
+11000010100000100100111000011011
+01111000001101000111110000000000
+01101111111000001100011101000000
+01100111111000001100011100111111
+00100000011000000000000000000000
+01110000010001110101010000000001
+01101000010010001100011100011001
+01101111111000001100011101001111
+11000000011111111100111000100011
+01101000010010001100011001010011
+01100000010010001100011100100000
+00100000010000000011011110100010
+01101111111000011100011101011100
+01100111111000011100001101010001
+00100000010000000101010001011110
+01011000000000000000000000000100
+11100111111000001000000000000110
+11011000110000000100001101101101
+00100000010000000101010001100101
+00100000001000000111100001100000
+11000101000100110011011101111101
+01101111111000001100100111111001
+00100000001110100011011101111101
+01101111111000001100011110000001
+11000000000000001011011101111101
+01101111111000001100011001110010
+00100100001110100011011101111101
+00100000001000000011011101111111
+01000100101111100100000000001111
+01011000000000000000000000000110
+00100000010000000110100101110001
+11000010100000011100111000111011
+00100000010000000101001011110000
+00100000010000000101001100000011
+00100000010000000100111001000010
+00100000001000000011011110011100
+01000100101111101100000000001111
+00100000010000000111001110001000
+00100000010000000101011001111101
+01101000010010001100011001100111
+00100000001000000110111011001101
+01000100101111110100000000001111
+00100000010000000101001110101011
+00100000010000000111110111100110
+00100000010000000100111111001001
+01101111111000001100100010010100
+00100000010000000101001001010100
+01101000010010001100011001100101
+00100000010000000100111100000010
+00100000010000000100111001110101
+01101000010010001100011001100110
+00100000010000000100111100001010
+00100000010000000100111100001110
+00100000010000000101100111111100
+00100000010000000101101011001110
+00100000010000000100111001011100
+00100000001000000100111001010010
+01101111111001000100011100001110
+11000100000111100000000000000000
+01101000010010001100011001101000
+00100000010000000110111011001101
+01101000010010001100011001101001
+00100000010000000110111011001101
+01101000010010001100011001101000
+00100000010000000100111100000110
+01101000010010001100011001101001
+00100000001000000100111100000110
+01101111111001000100011100001110
+11000100000010011000000000000000
+01101111111000001100010000011101
+11000001100000010000000000000000
+01101000010010001100011001001100
+00100000001000000110111100000101
+11011000110000001000000001110000
+11011111001000000000000000010000
+11101111111000001000000000000110
+00100100001110100100111001101001
+01011000000000000000000010000000
+00011000110000001000101111111111
+11100111111000001000000000000101
+11000010000000000100111001100100
+11011111111000001000000011011100
+10011000110001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000001000
+11011000110000001000000011010100
+00100000001000000100111001100100
+11000110000100110000000000000000
+00100000010000000100111001110101
+01101111111000001000000000010101
+00100100011110100000000000000000
+00100000001000000110111011001101
+01000100101111111100000000001111
+01110000010010001000110000000000
+00100000010000000111110111100110
+01101000010010001100100010011100
+00100000010000000110111011110001
+01101000010010001100100010011100
+00100000010000000110111011001101
+00100000010000000100111101000010
+01101111111000001100100010010011
+00100000010000000101001001010100
+00100000010000000110100101101000
+01101000010010001100100010001101
+00100000010000000110111010101100
+01101000010010001100100010001111
+00100000010000000110111010101100
+01101000010010001100100010001110
+00100000010000000110111010101100
+01101000010010001100100010010000
+00100000010000000110111010101100
+01101000010010001100100010010001
+00100000010000000110111010101100
+01101000010010001100100010010010
+00100000010000000110111010101100
+01101000010010001100100010011101
+00100000010000000110111010101100
+01101000010010001100100010011110
+00100000010000000110111010101100
+00100000010000000100111001100010
+01101000010010001100011001101000
+00100000010000000110111010100101
+01101000010010001100011001101001
+00100000010000000110111010100101
+01101000010010001100100010011010
+00100000010000000110111010100101
+01101000010010001100100010011011
+00100000010000000110111010100101
+01101000010010001100011001100111
+00100000001000000110111010101100
+01101111111000010100010100000000
+11000100000001001000000000000000
+00011010001000100111111000000000
+00100100001110100010100110110100
+00100000001000000010100110111001
+01000100110000000100000000010000
+01101111111000001100010000011101
+11000001100000010000000000000000
+01101000010010001100011001001100
+00100000001000000110111100001011
+01000100110000001100000000010000
+01101111111001000100011100001110
+11000100000010011000000000000000
+00100000010000000100111010100000
+00100000010000000110111110110010
+00100000010000000110111110001110
+01100111111000010100011001001010
+01101111111000001100010000011101
+11000000100000010100111010110100
+01101000010010010100011001001010
+00011000010011111111111000001000
+00011111111001101111110000001010
+00100000010000000111110101100001
+10011000010000001111111000000000
+01100111111000010100011001001010
+11011010001000000100011001000100
+00100000010000000100111011000100
+01101111111000001100010000100010
+11000010100000001100111000110101
+11000011000000000100111010111101
+01110000010001100100111000000001
+00100000001000000100111010111011
+11011000111000000000000000000100
+00100000001000000101100000101110
+11011000111000000000000000000100
+00100000010000000101100000110010
+01110000010001100100110100000001
+01101111111000001100011001001110
+00100000011110100000000000000000
+01110000010001100100111000000000
+00100000001000000101101001000011
+01000100110000010100000000010000
+11101111111001000000000000010001
+01100111111001000000011001001110
+00100000010000000111000001010111
+00100000010000000111000001010001
+01101111111000010000011001010100
+01101000010010010000011001010000
+10011000010001100111110000000000
+00100100010000010111000001010100
+01101000010010010000011001010010
+10011000010001100111110000000000
+00100100010000010111000001001110
+01101111111000010000011001010100
+01101000010010010000011001001110
+10011000010001100111110000000000
+00100000001000010100111011100001
+01101000010010010000011001010000
+10011000010001100111111000000000
+00100100001000010100111011100011
+00100000001110100100111011100011
+00011111111011111010001001100100
+01101111111000010000011001001110
+01101000010010010000011001010000
+10011000010001100000010000000000
+00011010001000100111111000000000
+10011000010001101111110000000000
+00100000010000000111110101100001
+01100111111000001100011101111100
+00100000011000000000000000000000
+01110000010001110111110001100100
+00100000011000000000000000000000
+01110000010001110111110000000000
+00100000011000000000000000000000
+01101000010010001100010000111110
+00100000010000000110111011110001
+01101000010010001100100010001101
+00100000010000000100111100001010
+01101000010010001100100010001111
+00100000010000000100111100001010
+01101000010010001100100010001110
+00100000010000000100111100001010
+01101000010010001100100010010000
+00100000010000000100111100001010
+01101000010010001100100010010001
+00100000010000000100111100001010
+01101000010010001100100010010010
+00100000010000000100111100001010
+01101000010010001100100010011100
+00100000010000000100111100001010
+01101000010010001100100010011101
+00100000010000000100111100001010
+01101000010010001100100010011110
+00100000010000000100111100001010
+00100000010000000101100100011111
+01101000010010001100100010011010
+00100000010000000100111100001010
+01101000010010001100100010011011
+00100000010000000100111100001010
+01101000010010001100011001100111
+00100000010000000100111100001010
+01101000010010001100011001100101
+00100000001000000100111100001010
+00011000010000010000111001111111
+01101111111100100000000100011100
+10101111111011111111111111111111
+00100000001000001100111100001010
+00011000010001100111110011111111
+00100000011000101000000000000000
+01111001001000000000010000000111
+00100000001000000110111011010111
+00011000010001100111110011111111
+00100000011000101000000000000000
+01111001001111111000010000000111
+00100000001000000110111011010111
+01101111111000011100011100101110
+01100111111000011000011001001110
+11011111001000000000000000011000
+11011000010000000000000000000000
+01101111111000011000011001001110
+00101111111011111111111000000000
+00100000010000001110111100000101
+01101111111000011000011001001110
+00011111111000111111111000000000
+01100111111000011000011001001110
+00011000010000001000010000000001
+11000010000000000100111100010010
+00100000011000000000000000000000
+00100000010000000100111100100000
+01110000010000111111111001110011
+00100000010000000100111100011111
+00100000001000000110100101101100
+00100000001000000110101110111100
+01101111111000001100100010010011
+11011000010000000000000000100001
+00100000010000000110111100011101
+01101111111000001100100010010100
+11011000010000000000000000100011
+00100000001000000110111100011101
+01000100110000011100000000010000
+00100000010000000110100001001110
+01111000010101000111110000000000
+01011000000000000000000000000000
+01100111111000110100011001011101
+00100000010000000101001100001100
+01011000000000000000000010001001
+00100000010000000110100101110000
+00100000010000000101000001101011
+00100000010000000100111100111000
+00100000010000000100111100111101
+00100000010000000101000011001010
+01101111111000001100011001011100
+00011111111000010111111000011111
+01100111111000001100011001011100
+00100100001101000101100001010011
+00100000010000000101100001000001
+00100000001000000101010100110101
+01101111111000001100011001110001
+00100000011110100000000000000000
+01100111111000001100011001100001
+01110000010001100111000100000000
+00100000001000000111110110111100
+01101111111000001100011001101101
+00100000011110100000000000000000
+01100111111000001100011001100010
+01110000010001100110110100000000
+00100000001000000111110110111100
+01000100110000100100000000010000
+00100000010000000101100100011111
+00100000010000000100111101010001
+00100000010000000100111110001101
+01101111111000001100011001101011
+01101000010010001100011001101010
+01100111111000001100011001101010
+10011000010001100111110000000000
+00100100001000101011011110000001
+01101111111000001100011001101111
+01101000010010001100011001101110
+01100111111000001100011001101110
+10011000010001100111110000000000
+00100100001000101011011110000001
+00100000011000000000000000000000
+01101111111000001100100010011010
+11000001011111111000000000000000
+11011010001000000000000000000000
+01101000010010001100100010011010
+00100000010000000110111011100000
+01111001001000001010001000000000
+01101000010010001100100010011011
+00100000010000000110111011100000
+01111001001000001010001000000001
+00011010001000100111111000000000
+01100111111000001100011001101011
+11000000000000001100111101100001
+11000000000000010100111101100101
+01101111111000001100011001101100
+11000010100000111100111101110001
+00100000011000000000000000000000
+01101111111000001100011001101010
+11000000000000000100111101101001
+11000000000000011100111101101011
+00100000011000000000000000000000
+01101111111000001100011001101010
+11000000000000000100111101101101
+11000000000000011100111101101111
+00100000011000000000000000000000
+01110000010001100110110010000010
+00100000011000000000000000000000
+01110000010001100110110010000001
+00100000011000000000000000000000
+01110000010001100110110010000000
+00100000011000000000000000000000
+01110000010001100110110010000011
+00100000011000000000000000000000
+01101111111000001100011001101100
+01111001001111111111111000000111
+01100111111000001100011001101100
+11000000000000000100111101111001
+11000000000000001100111101111100
+11000000000000010100111101111111
+11000000000000011100111110000010
+00100000011000000000000000000000
+01101111111000001100011001101011
+11000000000000011100111110000101
+00100000011000000000000000000000
+01101111111000001100011001101011
+11000000000000000100111110000101
+00100000011000000000000000000000
+01101111111000001100011001101011
+11000000000000011100111110001001
+00100000011000000000000000000000
+01101111111000001100011001101011
+11000000000000000100111110001001
+00100000011000000000000000000000
+01101111111000001100011001101101
+00011111111000001111111000000001
+01100111111000001100011001101101
+00100000011000000000000000000000
+01101111111000001100011001101101
+00011111111000001111111111111111
+01100111111000001100011001101101
+00100000011000000000000000000000
+01101111111000001100011001101000
+11000001011111111000000000000000
+11011010001000000000000000000000
+01101000010010001100011001101000
+00100000010000000110111011100000
+01111001001000001010001000000000
+01101000010010001100011001101001
+00100000010000000110111011100000
+01111001001000001010001000000001
+00011010001000100111111000000000
+01100111111000001100011001101111
+11000000000000001100111110011101
+11000000000000010100111110100001
+01101111111000001100011001110000
+11000010100000111100111110101101
+00100000011000000000000000000000
+01101111111000001100011001101110
+11000000000000000100111110100101
+11000000000000011100111110100111
+00100000011000000000000000000000
+01101111111000001100011001101110
+11000000000000000100111110101001
+11000000000000011100111110101011
+00100000011000000000000000000000
+01110000010001100111000010000010
+00100000011000000000000000000000
+01110000010001100111000010000001
+00100000011000000000000000000000
+01110000010001100111000010000000
+00100000011000000000000000000000
+01110000010001100111000010000011
+00100000011000000000000000000000
+01101111111000001100011001110000
+01111001001111111111111000000111
+01100111111000001100011001110000
+11000000000000000100111110110101
+11000000000000001100111110111000
+11000000000000010100111110111011
+11000000000000011100111110111110
+00100000011000000000000000000000
+01101111111000001100011001101111
+11000000000000011100111111000001
+00100000011000000000000000000000
+01101111111000001100011001101111
+11000000000000000100111111000001
+00100000011000000000000000000000
+01101111111000001100011001101111
+11000000000000011100111111000101
+00100000011000000000000000000000
+01101111111000001100011001101111
+11000000000000000100111111000101
+00100000011000000000000000000000
+01101111111000001100011001110001
+00011111111000001111111000000001
+01100111111000001100011001110001
+00100000011000000000000000000000
+01101111111000001100011001110001
+00011111111000001111111111111111
+01100111111000001100011001110001
+00100000011000000000000000000000
+01101000010010001100011001101000
+00100000010000000100111100000010
+01101000010010001100011001101001
+00100000010000000100111100000010
+01101000010010001100100010011010
+00100000010000000100111100000010
+01101000010010001100100010011011
+00100000001000000100111100000010
+01101111111000010100011001100001
+00100000011110100000000000000000
+01110000010001100111001000000001
+01110000010001100111001100001010
+00100000011000000000000000000000
+11011010011000000100011001110011
+11011010010000000100111111011001
+00100000001000000011011101010101
+01110000010001100111001000000000
+00100000011000000000000000000000
+01101111111000001100100010010010
+11000001011111111000000000000000
+11011010001000000000000000000000
+01110000010010100000111100000101
+01101000010010001100100010010010
+00100000010000000100111111101000
+01100111111000001100101000001100
+01101111111000001100100010011100
+11000000011111111100111111111100
+00100000010000000101001000000011
+00011010001000100111111000000000
+11000010100000101101000000000100
+00100000001000000101000000001011
+01101111111001000100011100001110
+11000010100101011101000000000010
+01101111111000001100101000001100
+00011111111000100010011000000000
+01101111111000001100100010011100
+11000000011111111100111111111000
+01101111111000001100101000010011
+00100100001110100100111111111111
+00100000010000000110111011100000
+01101000010010001100100010011100
+00100000001000001101000000000010
+01101000010010001100100010011100
+00100000010000000110111011110001
+01101000010010001100100010010010
+01101111111000001100101000001100
+00100000001000000101001000110110
+01101111111000001100100010010010
+00100000010000000101001001010110
+01101000010010001100100010010010
+00100000001000000101001001000010
+01101000010010001100100010010010
+00100000010000000100111100001010
+00100000001000000100111111100101
+01110000010010010001011100000000
+01110000010010100000110000000000
+00100000011000000000000000000000
+01101111111000001100101000001100
+00100000001000000101001000110110
+01101111111000001100100100010111
+11000001000000001000000000000000
+01110000010010010001011100000001
+01101111111001000100011100001110
+11000011100101000000000000000000
+11000011100110110000000000000000
+00100000001000000101000000011011
+01101111111000001100100100010111
+11000001000000000000000000000000
+01110000010010010001011100000000
+01101111111001000100011100001110
+11000010100101000101000000010010
+11000010100110110101000000010010
+00100000011000000000000000000000
+01101111111000001100100100011000
+00100100001110100101000000010110
+01101111111000001100011100110010
+00100100010110100101000000011011
+01110000010010010001100000000000
+01101111111000001100010100000010
+01100111111000001100011100110010
+01100111111000001100011100110001
+00100000011000000000000000000000
+01000100110000101100000000010000
+00100000010000000101000001001100
+00100000011101000000000000000000
+01101111111000001100011010100010
+00011111111000100000010000000000
+01101111111001000100011100001110
+11000010100010101101000000101000
+00011000010000100111111000000000
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100111111000001100011010100010
+00100000010000000101000001101000
+00100000001000000101010101111010
+01101111111000001100101000011100
+00100100001110100101000001000101
+01101111111001000100011100001110
+11000010100011100101000000111001
+00011000010000100111111000000000
+11000001000000001000000000000000
+11000000000000000101000000110101
+11000000000000010101000000110011
+00100000011000000000000000000000
+01011000000000000000000000000010
+00100000001000000101000000100101
+01011000000000000000000000000000
+00100000001000000101000000100101
+01011000000000000000000000000001
+00100000001000000101000000100101
+01011000000000000000000000000011
+00100000001000000101000000100101
+00011000010000100111111000000000
+11000001000000001000000000000000
+11000000000000000101000000110101
+11000000000000010101000000110111
+11000000000000011101000000110011
+00100000011000000000000000000000
+00011000010000100111111000000000
+11000001000000010000000000000000
+11000000000000000101000000110111
+11000000000000001101000000110011
+11000000000000011101000000110001
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000010100011100101000000111111
+00011000010000100111111000000000
+11000001000000010000000000000000
+11000000000000000101000000110001
+11000000000000001101000000110011
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101111111001000100011100001110
+11000011100101011000000000000000
+00100000001000000101011110110001
+01101111111001000100011100001110
+11000010100101000101000001010100
+11000010100110110101000001011011
+00100000011000000000000000000000
+01101111111000001100100100010111
+11000001100000001000000000000000
+11011010011000000100011100110010
+11011010010000000101000001011001
+00100000001000000011011101010101
+01110000010010010001100000000001
+00100000001000000101011111110110
+01101111111000001100100100010111
+11000001100000001000000000000000
+11011010011000000100011100110001
+11011010010000000101000001100000
+00100000001000000011011101010101
+01110000010010010001100000000001
+00100000001000000101010010110010
+01101111111001000100011100001110
+11000011100011100000000000000000
+01101111111000001100011010100010
+11000001100000011000000000000000
+01110000010001101010001000000000
+00100000011000000000000000000000
+01000100110000110100000000010000
+00100000010000000101000001100010
+00100000010000000101101000011110
+01000100110000111100000000010000
+01101111111000001100100111111010
+11000000000001100101000010001111
+11000000000000011101000010101001
+11000000000001011101000010111101
+01101111111000001100011010100010
+11000000000000000101000001110111
+11000000000000001101000001110101
+11000000000000010101000001111001
+11000000000000011101000001111011
+01101000010010001100100100000110
+00100000001000000101000001111100
+01101000010010001100100100000101
+00100000001000000101000001111100
+01101000010010001100100100000111
+00100000001000000101000001111100
+01101000010010001100100100001000
+01101111111000001100100111111010
+11000000000000100101000010001011
+11000000000000101101000010001011
+11000000000001000101000010001101
+11000000000000111101000010001101
+11000000000000110101000010001011
+01100000010010001100100100010110
+01011000000000000000000000000110
+00100000010000000110100101110001
+00011111111000010000010011111000
+01101111111000001100100100010110
+10011000010000001111111000000000
+00011111111011010111111000000000
+00011111111000001111111000000110
+00100000001000000110100101110000
+00011000010000001000010111111111
+00100000001000000101000010000010
+00011000010000001000010000000010
+00100000001000000101000010000010
+01101111111000001100011010100010
+11000000000000000101000010010101
+11000000000000001101000010011001
+11000000000000010101000010011011
+11000000000000011101000010011101
+00100000011000000000000000000000
+01101111111000001100100100010001
+00100000001000000101000010011110
+01101111111000001100100100010010
+00100000001000000101000010011110
+01101111111000001100100100010011
+00100000001000000101000010011110
+01101111111000001100100100010100
+00100000001000000101000010011110
+01101111111000001100100100010101
+00011111111000100010001000000000
+01011000000000001100001100001001
+00100000010000000110100101110000
+00011010001000100111111000000000
+00011111111011010111111000000000
+00011111111000001111111000100011
+00100000010000000110100101110000
+01011000000000000000000000001001
+00100000001000000110100101110000
+01011000000000000101101000001001
+00100000001000000110100101110000
+01101111111000001100011010100010
+11000000000000000101000010110000
+11000000000000001101000010101110
+11000000000000010101000010110010
+11000000000000011101000010110100
+01101111111000001100100100001010
+00100000001000000101000010110101
+01101111111000001100100100001001
+00100000001000000101000010110101
+01101111111000001100100100001011
+00100000001000000101000010110101
+01101111111000001100100100001100
+01100111111000001100100100010110
+00011111111011010111111000000000
+00011111111000100010001000000000
+00011111111000001111111000001101
+00100000010000000110100101110000
+00011010001000100111111000000000
+00011111111000001111111000001110
+00100000001000000110100101110000
+01101111111000001100011010100010
+11000000000000000101000011000100
+11000000000000001101000011000010
+11000000000000010101000011000110
+11000000000000011101000011001000
+01101111111000001100100100001110
+00100000001000000101000010110101
+01101111111000001100100100001101
+00100000001000000101000010110101
+01101111111000001100100100001111
+00100000001000000101000010110101
+01101111111000001100100100010000
+00100000001000000101000010110101
+00100000010000000101000101110000
+01101111111000001100101000011001
+00100100001110100101000110000100
+01101111111000001100101000010100
+00100100001110100101000110000011
+00100000010000000101000110101100
+00100000010000000101000011100000
+00100000010000000100111010011011
+00100000010000000101000011011011
+00011010001000100111111000000000
+01101000010010001100011001100100
+01100111111000001100011001100100
+01100111111000001100011001011100
+10011000010000101111111000000000
+00011111111001100111110000000000
+00100000011000101000000000000000
+00100000001000000111110110111100
+11000110100100110000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+01100111111000001100011001011100
+00100000001000000111110110111100
+01110000010010100001000100000000
+01110000010010100001001000000000
+01110000010010100001001100000000
+00011111111000100010010000000000
+01101000010010001100100010001101
+01101111111000001100100010010000
+10011000010001100111110000000000
+00100000001000101101000011110000
+01101111111000001100100010010001
+10011000010001100111110000000000
+00100000001000101101000011110101
+01101000010010001100100010001110
+01101111111000001100100010010000
+10011000010001100111110000000000
+00100000001000101101000100000100
+00100000001000000101000100000111
+01101000010010001100100010001110
+01101111111000001100100010010001
+10011000010001100111110000000000
+00100000001000101101000011111010
+00100000001000000101000011111101
+01101000010010001100100010001110
+01101111111000001100100010010000
+10011000010001100111110000000000
+00100000001000101101000011111111
+00100000001000000101000100000010
+00100000010000000101000100010011
+00100000010000000101000100011111
+00100000001000000101000100001001
+00100000010000000101000100010011
+00100000001000000101000100000101
+00100000010000000101000100011100
+00100000010000000101000100010110
+00100000001000000101000100001001
+00100000010000000101000100011100
+00100000001000000101000100001000
+00100000010000000101000100010110
+00100000010000000101000100100010
+00100000001000000101000100001001
+00100000010000000101000100011111
+00100000010000000101000100011001
+00100000010000000101000100100101
+00100000010000000101000100101000
+01101111111000001100101000010010
+00100000011110100000000000000000
+01101111111000001100101000010001
+00100000011110100000000000000000
+01110000010010100001001100000001
+01101111111000001100011001100100
+00011111111000100010001000000000
+00100000011000000000000000000000
+00011010010000010111111000001001
+11000000000001001101000100110000
+00100000011000000000000000000000
+00011010010000010111111000010010
+11000000000010010101000100110000
+00100000011000000000000000000000
+00011010010000010111111000001010
+11000000000001010101000100110000
+00100000011000000000000000000000
+00011010010000010111111000010001
+11000000000010001101000100110000
+00100000011000000000000000000000
+00011010010000010111111000010100
+11000000000010100101000100110000
+00100000011000000000000000000000
+00011010010000010111111000010010
+11000000000010010101000100110000
+00100000011000000000000000000000
+00011010010000010111111000011000
+11000000000011000101000100101110
+00100000011000000000000000000000
+00011000010000010111111000000111
+11000000000000011101000100101110
+11000000000000101101000100101110
+11000000000000110101000100101110
+11000000000000111101000100101110
+00100000011000000000000000000000
+01110000010010100001001000000001
+00100000011000000000000000000000
+01110000010010100001000100000001
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000100000010101000000000000000
+11000011000101100101000100111010
+01101111111000001100100010100000
+00100000010000000101001001010100
+00100000010000000101000101001000
+01101000010010001100100010100000
+00100000001000000100111100001010
+01101111111000001100100010100000
+00100000010000000101001001010110
+01110000010010100001110100000000
+01101000010010001100100010100000
+01101111111000001100101000011010
+00100000010000000101000101100001
+00100000010000000101000101001100
+01101000010010001100100010100000
+00100000001000000100111100001010
+00100000010000000100111100001010
+01101111111000001100101000011011
+11000001000000001000000000000000
+01110000010010100001101100000001
+00100000001000000101000000011011
+01110000010010100001110100000000
+01101000010010001100100010100000
+01101111111000001100101000011010
+00100000010000000101000101010111
+01100111111000001100101000011010
+01101111111000001100101000011100
+00100000001110100101000101010011
+01101111111000001100101000011011
+11000001000000001000000000000000
+01110000010010100001101100000001
+00100000001000000101000000011011
+01101111111000001100101000011011
+11000001000000000000000000000000
+01110000010010100001101100000000
+00100000011000000000000000000000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00100000010000000110111011100000
+01111001001000001010010000000000
+00011010010000010111111000000111
+01101000010010001100101000011101
+00011000010000100000111000000000
+11000000000000111101000101101100
+11000000000000000101000101101110
+00100000011000000000000000000000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00100000010000000100111100000110
+00100000010000000110111011100000
+01111001001000001010010000000000
+00011010010000010111111000000111
+01101000010010001100101000011101
+00011000010000100000111000000000
+11000000000000111101000101101100
+11000000000000000101000101101110
+00100000011000000000000000000000
+01110000010010100001110000000001
+00100000011000000000000000000000
+01110000010010100001110000000000
+00100000011000000000000000000000
+11011010010000000000000000000000
+01101111111000001100100010011111
+11000001011111111000000000000000
+01101111111001000100011100001110
+11000011000101110101000101111101
+01101000010010001100100010011111
+00100000010000000100111100001010
+01101000010010001100100010011111
+00100000010000000110111011100000
+01111001001000001010010000000000
+00011010010000100111111000000000
+01100111111000001100101000011001
+00100000011000000000000000000000
+01101000010010001100100010011111
+00100000010000000100111100000110
+01101000010010001100100010011111
+00100000010000000110111011100000
+01111101001000001010010000000000
+00100000001000000101000101111010
+11000000000000100101000110011100
+00100000010000000101000110011111
+01101111111000100100101000010101
+11011000010000000000000010100000
+10011000010000001000010000000000
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01100111111000100100101000010101
+01101111111000001100101000010100
+11000000000000000101000110010010
+11000000000000001101000110010101
+11000000000000010101000110011000
+11000000000000011101000110011010
+00100000011000000000000000000000
+01110000010010100001010000000001
+01110000010001100101110000000001
+00100000001000000111110110111100
+01110000010010100001010000000010
+01110000010001100101110000000000
+00100000001000000111110110111100
+01110000010010100001010000000011
+00100000001000000101000110010011
+01110000010010100001010000000000
+00100000001000000101000110010110
+01110000010010100001010000000000
+01110000010001100101110000000000
+00100000011000000000000000000000
+01101000010010100100101000010101
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010101000110100100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000100100101000010101
+00100000011000000000000000000000
+00100000010000000101000110111001
+00100000010000000101000110101100
+01011000000000000000000000000000
+01100111111000011100101000000111
+00100000011000000000000000000000
+01000100110001000100000000010001
+01101111111000001100011100110111
+00100100010110100101000110111001
+11011010001000000000000000000000
+00100000010000000101000110111100
+00100000010000000101000111000101
+00100000010000000101000111001110
+00100000010000000101000111010111
+00100000010000000101000111110011
+00100000010000000101000101110000
+00100000010000000101001000010000
+00011010001000100111111000000000
+00100000011000000000000000000000
+01011000000000110000001100000011
+01100111111000011100101000000111
+00100000011000000000000000000000
+01101111111000001100100010001101
+00100000010000000101001001010100
+01110000010010100000111100000000
+01101000010010001100100010001101
+01101111111000001100101000000111
+00100000010000000101001000110110
+01100111111000001100101000000111
+01101000010010001100100010001101
+00100000001000000100111100001010
+01101111111000001100100010001111
+00100000010000000101001001010100
+01110000010010100000111100000001
+01101000010010001100100010001111
+01101111111000001100101000001000
+00100000010000000101001000110110
+01100111111000001100101000001000
+01101000010010001100100010001111
+00100000001000000100111100001010
+01101111111000001100100010001110
+00100000010000000101001001010100
+01110000010010100000111100000010
+01101000010010001100100010001110
+01101111111000001100101000001001
+00100000010000000101001000110110
+01100111111000001100101000001001
+01101000010010001100100010001110
+00100000001000000100111100001010
+01101111111000001100100010010000
+11000001011111111000000000000000
+01110000010010100000111100000011
+01101111111000001100101000001010
+00011111111000100010011000000000
+01101000010010001100100010010000
+01101111111000001100100010011100
+11000000011111111101000111101100
+00100000010000000110111011100000
+00100000001000001101000111101000
+01101000010010001100100010011100
+00100000010000000110111011110001
+01101000010010001100100010010000
+01101111111000001100101000001010
+00100000010000000101001000110110
+01100111111000001100101000001010
+00100000001000000101001000000011
+01101000010010001100100010011100
+01101111111000001100101000001010
+00100000010000000101001000110110
+00100000001000000101000111100110
+01101111111000001100100010010000
+00100000010000000101001001010110
+01101000010010001100100010010000
+00100000010000000101001001000010
+01100111111000001100101000001010
+01101000010010001100100010010000
+00100000001000000100111100001010
+01101111111000001100100010010001
+11000001011111111000000000000000
+01110000010010100000111100000100
+01101111111000001100101000001011
+00011111111000100010011000000000
+01101000010010001100100010010001
+01101111111000001100100010011100
+11000000011111111101001000001001
+00100000010000000110111011100000
+00100000001000001101001000000101
+01101000010010001100100010011100
+00100000010000000110111011110001
+01101000010010001100100010010001
+01101111111000001100101000001011
+00100000010000000101001000110110
+01100111111000001100101000001011
+01101000010010001100100010011100
+00100000001000000100111100001010
+01101000010010001100100010011100
+01101111111000001100101000001011
+00100000010000000101001000110110
+00100000001000000101001000000010
+01101111111000001100100010010001
+00100000010000000101001001010110
+01101000010010001100100010010001
+00100000010000000101001001000010
+01100111111000001100101000001011
+01101000010010001100100010010001
+00100000001000000100111100001010
+01110000010001110010101100000000
+01101111111000001100100010011110
+11000001011111111000000000000000
+01101111111001000100011100001110
+11000100000010100000000000000000
+11000010100101111101001000100001
+01110000010010100000111100000111
+01101000010010001100100010011110
+01101111111000001100101000001110
+00100000010000000101001000110110
+01100111111000001100101000001110
+00011010001000100111111000000000
+11000010100000111101001000101100
+00100000010000000101001000101111
+01101111111000001100011100101100
+01100111111000001100011100101101
+00100000011000000000000000000000
+01110000010010100000111100000111
+01101111111000001100101000001110
+00011111111000100010011000000000
+01101111111000001100100010011110
+00100000010000000101001001010110
+01101000010010001100100010011110
+00100000010000000101001001000010
+01100111111000001100101000001110
+00100000010000000101001000011011
+01101000010010001100100010011110
+00100000001000000100111100001010
+01110000010001110010110000000001
+00100000010000000101001000110010
+00100000001000000101001000011110
+01110000010001110010110000000000
+01101111111000001100011100101101
+00100000011110100000000000000000
+01110000010001110010101100000001
+00100000011000000000000000000000
+11111001001111111010001000000000
+00100000011000000000000000000000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00100000010000000110111011100000
+01111001001000001010010000000000
+00011010010000010111111000000111
+01101000010010001100101000001111
+00011000010000100000111000000000
+11000000000000111101001001000000
+11000000000000000101001000110100
+00100000011000000000000000000000
+11111001001000000010001000000000
+00100000011000000000000000000000
+01000100110001001100000000010001
+00011010011000100111111000000000
+01100111111000001100101000010000
+00011111111000111111111000000000
+00011111111000100010010000000000
+00011000010000100010011000000000
+00100000010000000100111100000110
+00011010011000100000010000000000
+00100000010000000110111011100000
+01111101001000001010010000000000
+00100000010000000101001001001110
+00100000001000000101001000111010
+01101000010010001100101000010000
+00011000010000010000010000000001
+00011010010000010111111000000001
+10011000010001100111110000000000
+00100100001000101101001111010101
+00100000011000000000000000000000
+11011000010000000000000000111111
+00100000001000000110111100011101
+11011000010000000000000000111110
+00100000001000000110111100011101
+01100111111000001100100010100111
+00100000010000000101001001010100
+01101000010010001100100010100111
+00100000001000000100111100001010
+01100111111000001100100010100111
+00100000010000000101001001010110
+01101000010010001100100010100111
+00100000001000000100111100000110
+01000100110001010100000000010001
+00100000010000000100111100011011
+00100000011101011000000000000000
+00100000010000000101001011111101
+01000100110001011100000000010001
+00100000010000000101001001101111
+11000000000110000101001001110110
+11000000000110001101001011011100
+11000000001011000101001011100101
+00100000010000000101001001101100
+00100000000000000001101011110100
+00100000001000000101001001100100
+01101000010010001100100010010011
+00100000010000000110100101010011
+00100000001000000100111100100000
+01011000000000000000000000000001
+00100000010000000110100101110001
+01100111111000001100100011111100
+01011000000000000000000000000000
+00100000010000000110100101110001
+01100111111000001100100011111011
+00100000011000000000000000000000
+01101111111000001100100011111100
+11000000001011010101001010000101
+11000000011011000101001010001010
+11000000011010001101001001111111
+11000000011010010101001010100010
+11000000000000010101001010101001
+11000000001010100101001010110010
+11000000001010000101001011011001
+00100000001000000101001001100100
+01011000000000000000000001001001
+00100000010000000110100101110001
+11000000010100001101001010000011
+00100000001000000101001010011001
+01110000010010011111101000001100
+00100000011000000000000000000000
+01110000010010011111101000000101
+00100000010000000101001011110000
+00100000010000000111110010010111
+11011010011000000100100101110011
+00100000001000000101001100000001
+01011000000000000000000000010110
+00100000010000000110100101110001
+00011111111001100111110010111101
+00100100001000101101001001100000
+01011000000000000000000000011001
+00100000010000000110100101110001
+00011111111001100111110001010101
+00100100001000101101001001100000
+01011000000000000000000000011011
+00100000010000000110100101110001
+00011111111001100111110000011101
+00100100001000101101001001100000
+01110000010010011111101000000110
+11011010011000000100100110101111
+00100000001000000101001010101011
+01110000010010011111101000000000
+11011010011000000100100100101101
+00100000010000000101001010101011
+11011010011000000100100100110111
+00100000010000000101001010101011
+01011000000000000000100101000011
+00100000010000000110100101110000
+11011010011000000100100101010001
+00100000001000000101001010101011
+01110000010010011111101000000010
+11011010011000000100100100100011
+00100000010000000101001010101011
+11011010011000000100100100110111
+00100000010000000101001010101011
+11011010011000000100100101010001
+00100000001000000101001010101011
+01110000010010011111101000000011
+11011010011000000100100100011001
+11101111111000010000000000010011
+11011000010000001111111111111111
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000010000000110100101110000
+00011010011000001010011000000010
+00100000001000000101001010101011
+00100000010000000101000010100111
+01011000000000001001101001011011
+00100000010000000110100101110000
+01011000000000000000000000001101
+00100000010000000110100101110001
+00011111111001100111110000010010
+00100000001000101101001011000110
+00011111111001100111110000001010
+00100100001000101101001011001001
+01011000000000000000000000001110
+00100000010000000110100101110001
+00011111111001100111110011100101
+00100100001000101101001001100100
+01011000000000000000000000010000
+00100000010000000110100101110001
+00011111111001100111110010100101
+00100000001000101101001011000110
+00100000010000000101001011010110
+01110000010010011111101000001000
+00100000011000000000000000000000
+01110000010010011111101000001001
+11011010011000000100100110010001
+00100000001000000101001010101011
+00011111111001100111110000010000
+00100100001000101101001001100100
+01011000000000000000000000001110
+00100000010000000110100101110001
+00011111111001100111110011000101
+00100100001000101101001001100100
+01011000000000000000000000010000
+00100000010000000110100101110001
+00011111111001100111110000111000
+00100100001000101101001001100100
+00100000010000000101001011010110
+01110000010010011111101000001010
+00100000011000000000000000000000
+01011000000000000000000001011011
+00100000010000000110100101110000
+00100000001000000101000010100101
+01110000010010011111101000000111
+11011010011000000100100111010001
+00100000001000000101001010101011
+00100000010000000101001011111101
+01101111111000001100100011111100
+11000000001110000101001011100011
+11000000000000000101001011100001
+00100000001000000101001001100100
+01110000010010011111101000000001
+00100000011000000000000000000000
+01110000010010011111101000000100
+00100000011000000000000000000000
+00100000010000000101001011111101
+01101111111000001100100011111100
+11000000001010111101001011101101
+11000000001011001101001011101010
+00100000001000000101001001110110
+01110000010010011111101000001011
+11011010011000000100100110111111
+00100000001000000101001010101011
+01110000010010011111101000001101
+11011010011000000100100111011101
+00100000001000000101001100000001
+11011000010000001000000000000110
+01101111111000001100100111111010
+11000000100001011101001011110100
+11011000010000001001011100000110
+00011000010000100111111000000000
+00100000010000000110100101110000
+00100000000000000010111011100000
+00100000011000000000000000000000
+11011010011000000100100111101001
+01101111111000001100100111111010
+11000001100001011000000000000000
+11011010011000000100100111110001
+00100000011000000000000000000000
+01000100110001100100000000010001
+00100000010000000100111100011011
+00100000010000000101001011110000
+00100000010000000101001011111000
+00100000010000000101001010101011
+00100000001000000101000001101011
+01000100110001101100000000010001
+00100000010000000101001001100000
+00100000010000000100111100011011
+11011000010000000000100000000110
+01101111111000001100100111111010
+11000000100001011101001100001010
+11011000010000000001111100000110
+00011000010000100111111000000000
+00100000001000000110100101110000
+01101111111000001100010000110111
+11000001100000000000000000000000
+01101111111000001100100111111010
+11000000000000000101001100011001
+11000000000000001101001100011001
+11000000000001000101001100011001
+11000000000000010101001100011001
+11000000000000011101001100111101
+11000000000000100101001100011001
+11000000000000110101001101100101
+11000000000001011101001101011011
+11000000000001101101001101011011
+00100000001000000101001100011001
+00100000010000000101001110000111
+01111000010101000111110000000000
+01101111111000001100011001100111
+11000000011111111101001100100000
+01101000010010001100011001100111
+00100000010000000110111011100000
+00100100011000001000000000000000
+01011000000000000000000000000000
+00100000010000000110100101110001
+11000000100110000101001100110011
+01011000000000000000000000000010
+00100000010000000110100101110001
+11000100000000111000000000000000
+00100000010000000101001110011110
+01101111111000001100011001011101
+00100000010000000101001110010111
+01100111111000010100011001011101
+01101111111000001100011001011111
+00100000010000000101001110010111
+01100111111000010100011001011111
+01101111111000001100100111111011
+11000000000000000101001100110101
+11000000000000001101001100110111
+11000000000000010101001100111001
+11000000000000011101001100111011
+00100000011000000000000000000000
+11000000000110001101001100100011
+00100000001000000101001001101100
+00100000010000000101001101110000
+00100000001000000101001110100100
+00100000010000000101001101111000
+00100000001000000101001110100100
+00100000010000000101001101110100
+00100000001000000101001110100100
+00100000010000000101001110000000
+00100000001000000101001110100100
+00100000010000000101001110000111
+01101111111000001100011001100111
+11000000011111111101001101000011
+01101000010010001100011001100111
+00100000010000000110111011100000
+00100100011000001000000000000000
+01011000000000000000000000000000
+00100000010000000110100101110001
+11000000100110000101001001101100
+01011000000000000000000000000010
+00100000010000000110100101110001
+11000100000000111000000000000000
+00100000010000000101001110011110
+00100000010000000101001101011001
+01100111111000001100011001100011
+00011111111100011111111000000000
+00100000010000000101001110011011
+01100111111000001100011001011110
+01101111111000001100011001100011
+00011111111000010111111000001111
+00100000010000000101001110011011
+01100111111000001100011001100000
+01101111111000001100100111111011
+11000000000000000101001101110000
+11000000000000001101001101111000
+11000000000000010101001101110100
+11000000000000011101001110000000
+00100000011000000000000000000000
+01011000000000000000000000010010
+00100000001000000110100101110001
+00100000010000000101001110000111
+01101111111000001100011001100111
+11000000011111111101001101100001
+01101000010010001100011001100111
+00100000010000000110111011100000
+00100100011000001000000000000000
+01011000000000000000000000000000
+00100000010000000110100101110001
+11000000101011000101001001101100
+00100000001000000101001101000110
+00100000010000000101001110000111
+01111000010101000111110000000000
+01011000000000000000000000000010
+00100000010000000110100101110001
+11000100000000111000000000000000
+01011000000000000000000000001000
+00100000010000000110100101110001
+00100000001110100101001100100110
+01011000000000000000000000000000
+01100111111000110100011001011101
+00100000011000000000000000000000
+01101111111000010100011001011101
+00011111111001100111111000000000
+01100111111000010100011001011101
+00100000001000000111110110111100
+01101111111000010100011001011111
+00011111111001100111111000000000
+01100111111000010100011001011111
+00100000001000000111110110111100
+01101111111000010100011001011111
+00011111111001100111111000000000
+01100111111000010100011001011111
+01101111111000010100011001011101
+00011111111001100111111000000000
+01100111111000010100011001011101
+00100000010000000101001110000010
+00100000001000000111110110111100
+00100000010000000101001110000010
+00100000001000000111110110111100
+01101111111000010100011001011111
+01101000010010010100011001011101
+01100111111000010100011001011101
+01100000010010010100011001011111
+00100000011000000000000000000000
+01101111111000001100100011111101
+00100000010110100101001110011110
+01110000010010001111110100000001
+00100000011000000000000000000000
+01110000010010011111100100000001
+00100000010000000010100110101000
+00100000001000000101001001100000
+01101111111000001100011001100111
+11000001111111111000000000000000
+01101111111000001100011100111101
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100011100111101
+01011000000000000000000000000000
+01100111111000100100011001011101
+00100000001000000101001110001101
+11000100000000111000000000000000
+11011000010000001111111100000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+11000100000000011000000000000000
+11011000010000000000000011110000
+00100000001000000101001110011001
+11011111111000000000000000000011
+00100000010000000110100101110001
+01100111111000010100011001011101
+11011111111000000000000000000100
+00100000010000000110100101110001
+00100000001000000101100001101010
+01101000010010001100100010010100
+00100000010000000110111011100000
+00100000011000001000000000000000
+01011000000000000000000000001010
+00100000010000000110100101110001
+00100000000000000000001111101000
+00100000001000000101001110100100
+01011000000000001000000100000000
+00100000001000000110100101110000
+01110000010001110100111111111111
+01110000010000111111110000110100
+01011000000011110000111100001111
+01100111111000011100001011011101
+01100111111000011100001011100000
+00100000001000000100111000010001
+01000100110001110100000000010001
+00100000010000000110011111010101
+00100000010000000101001111000001
+01101111111000001100011001111000
+11000000000000001101001110111010
+11000000000000010101001110111100
+00100000011000000000000000000000
+01101111111000110100011001111010
+00100000001000000101001110111101
+01101111111000110100011010000111
+01101000010010110100011011111000
+10011000010001100111110000000000
+00100000001000101101010101000100
+00100000001000000100111000001001
+01110000010001110100111101011010
+00100000011000000000000000000000
+01101111111000010100010100000000
+11000010100001001011011110010100
+00100000001000000101010101100010
+01011000000000000000000000000000
+01100111111000010100011101000001
+01101111111000010100010100000000
+11000010100001001011011110010100
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000100000011011000000000000000
+00100100001101000101001111010011
+01101111111000001100100111111100
+00011111111000001111111000000001
+00011111111000010111111000001111
+01100111111000001100100111111100
+00100100011110100000000000000000
+01110000010010011111110000000000
+00100000001000000111110110111110
+01101111111000001100011001100111
+11000001111111111000000000000000
+01110000010000001100000000000000
+01110000010001110011111000011110
+00100000011000000000000000000000
+01000100110001111100000000010001
+00011010011000100111111000000000
+11000000000010100101001111101001
+11000000000010101101001111111001
+11000000000010000101010100111111
+11000000000110001101010000000110
+11000000000101001101010000001000
+11000000000110010101010000001010
+11000000000111110011011110011110
+11000000001000000101010000010101
+11000000000111001101100110101000
+11000000000111010101100101110001
+11000000000111100101100110010111
+11000000001000100101010000101000
+00100000011000000000000000000000
+00100000010000000101101001100010
+01110000010001110011110100000000
+00100000010000000101001110001101
+01110000010001110101001100000001
+00100000010000000101100101100000
+01101111111000001100011101010100
+00100100001110100101001111110001
+01110000010001110101010100010100
+01101111111000010100001111111010
+01111001001111111111111000000000
+01100111111000010100001111111010
+01110000010001110010000000000000
+01101111111000010100011101111101
+01100111111000010100011101111111
+00100000010000000101010100110101
+00100000001000000101010101100010
+01011000000000000000000000000000
+01100111111000010100011101111111
+01110000010001110101001100000000
+11011000010000000000000000000110
+01101111111001000100011100001110
+11000010100011011101010000000000
+11011000010000000000000000000111
+01100000010010010100001011010101
+01100000010010010100001011010111
+01110000010001111000000100000000
+01110000010010011111100100000000
+00100000010000000010100110101010
+00100000001000000101010010000100
+11011000111000000000000000000010
+00100000001000000101010000010001
+01110000000001100100110100010010
+00100000001000000111100000100100
+01101111111000001100011101010100
+11000000000000001101010000001101
+00100000001000000101010000001111
+00100000010000000101010000001000
+01110000010010001000001100010100
+11011000111000000000000000000001
+00100000001000000101010000010001
+01101111111000001100100010000010
+11111001001000000111111000000000
+01100111111000001100100010000010
+00100000011000000000000000000000
+01101111111000010100001101000000
+11000001000000000000000000000000
+01101111111000001000000101101010
+00011111111010110111111000000000
+00011111111001100111110000001100
+00100000011000010000000000000000
+01011000000000000000000000001001
+00100000010000000100110110101011
+00100000010000000101010000001000
+01110000010001111000000100000001
+00100000011000000000000000000000
+01101111111000001100011101010100
+00100100011110100000000000000000
+01101111111000001100001110011100
+00011111111001100111111000100010
+00100100011000101000000000000000
+01110000010010001000001100000000
+11011000111000000000000000000000
+00100000001000000101010000010001
+01101111111000001000000110100010
+00011111111001100111110000001100
+00100100001000010101010000011110
+00100000010000000100110110101011
+01101111111000001000000110100100
+00100000001110100101010000110100
+01101000010010001100100010001011
+10011000010001100111110000000000
+00100000001000010101010000110100
+01101111111000001000000110100100
+01100111111000001100000011000000
+00100000001000000101010000110110
+01101111111000001100100010001011
+01100111111000001100000011000000
+01110000010001111000000100000000
+00100000011000000000000000000000
+01000100110010000100000000010010
+00100000010000000010101000000110
+00100100011110100000000000000000
+01101111111000001100011101001111
+11000000011111111101010001000000
+01101111111000001100100010000010
+00011111111000010111111000000011
+11000001100000011000000000000000
+01101111111000001100100111111001
+00100000010110100101001110001011
+01101111111001000100011100001110
+11000010100000001110100000100100
+11000010100000000110100000100100
+11000010100000101110100000100100
+11000010100000110110100000100100
+00100000010000000100111100100110
+00100000010000000101001111001011
+00100100011101000000000000000000
+00100000010000000101001111010101
+00100000010000000101001110001110
+00100000010000000100111111010001
+01101111111001000100011100001110
+11000011000010100110100000111110
+00100000001000000110100000111100
+11011010001000000000000000000001
+01101000010010010100011101111010
+00100000010000000010110111001100
+01101111111000001100011101111100
+00100000001000000111110111001110
+01110000010001110101010000000000
+01101111111000011100011101011001
+01100111111000011100001101010001
+00100000010000000101010001011110
+01011000000000000000000000000101
+11100111111000001000000000000110
+11011000110000000100011101011111
+00100000010000000101010001100101
+00100000001000000111100001100000
+11011010001000000100001101001101
+11101111111000001000000000010001
+00100000011110100000000000000000
+10011000110000001010001000000000
+11101111111000001000000000000110
+11000001000000001000000000000000
+00100000001000000101010001011111
+11011000101000000100001101011000
+11011111001000000000000000010011
+00100000010000000111110011011100
+00100000001000000010100101001000
+01000100110010001100000000010010
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110011011
+11000000000001010101010001110000
+11000000000010010101010001111111
+00100000001000000010101101110110
+01101111111001000100011100001110
+11000011000111011010110011110111
+00100000010000000010110110100101
+01101000010010010100001110011100
+01101111111000001100001100100011
+11000010100000011101010001111010
+01101111111000010100001110011100
+11000000000110000010110111100001
+01101000010010010100001110011100
+00100000001000000010110011111011
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101101010001110110
+00100100001101000101010001110110
+00100000001000000010110100100100
+00011000110000100010001000000000
+01101111111000010100001100110111
+00011111111000001010010111111101
+00100000010000000010100100001000
+00100000001000000110100001111000
+01000100110010010100000000010010
+00100000010000000101010010001010
+01101111111000010100001111111000
+11000010100000111101010010010000
+11000010100000000011011101110001
+00100000001000000101010101000100
+01011000000000000000000000000000
+01100111111001000100011001101010
+11100111111000010000000000000101
+01110000010010001111110100000000
+01110000010000101001110000000000
+00100000011000000000000000000000
+01110000010010001000001000000000
+01101111111000010100001111111000
+11000010100000000011011101110001
+00100000001000000100111000110101
+01000100110010011100000000010010
+00100000010000000101101000101001
+00100000010000000100111010100101
+00100000010000000101100111110010
+00100000010000000101101010000001
+00100000010000000101101000000000
+00100000010000000101000001010000
+00100000010000000101010010101011
+00100000010000000101010011010111
+00100000010000000101010010111010
+00100000010000000101010011001011
+00100000010000000101010100100111
+00100000010000000100111111010110
+00100000010000000101010100111000
+00100000010000000101010100101111
+00100000010000000101100011110110
+00100000010000000011001001101100
+00100000010000000011010100000111
+00100000010000000101010011111010
+00100000010000000101010011111111
+00100000010000000101010100001101
+00100000010000000101010100011010
+00100000001000000101010100010000
+01101111111001000100011100001110
+11000100000110111000000000000000
+01101111111000001100011100110100
+11000001100000001000000000000000
+11011010011000000100011100110001
+11011010010000000101010010110010
+00100000001000000011011101010101
+01101111111000001100011001111000
+11000001000000000000000000000000
+01101111111001000100011100001110
+11000011100000110000000000000000
+11011000111000000000000000000110
+00100000010000000101100000101110
+00100000010000000011011101000101
+00100000001000000101010100111111
+01101111111000001100101010111111
+11000001011111111000000000000000
+01101111111000001100101011000100
+00100000011110100000000000000000
+00100000010000000101000110101100
+00011010001000010111111000000111
+01101000010010001100101010111111
+10011000010001100111110000000000
+00100000001000101101010011000110
+01101111111000001100101011000001
+01100111111000001100101011000011
+00100000011000000000000000000000
+11011010011000000100101011000011
+11011010010000000101000000011110
+00100000001000000011011101010101
+01101111111000001100011100110111
+00100000011110100000000000000000
+01101111111000001100101011000000
+11000001011111111000000000000000
+00100000010000000101000110101100
+00011010001000010111111000000111
+01101000010010001100101011000000
+10011000010001100111110000000000
+00100000001000101101010011010100
+01101111111000001100101011000010
+00100000001000000101010011000100
+11011010011000000100101011000011
+11011010010000000101011111110110
+00100000001000000011011101010101
+01101111111000001100011001111000
+11000000000000000101010011011101
+01101111111001000100011100001110
+11000100000110101000000000000000
+01101000010010001100101010111101
+00100000001000000101010011100000
+01101111111001000100011100001110
+11000100000110010000000000000000
+01101000010010001100101010111110
+01100000010010001100011100110011
+00100000010000000101000110101100
+00011010001000010111111000000111
+01101000010010001100011100110011
+10011000010001100111110000000000
+00100000001000101101010011101100
+01101111111000001100010100000010
+01100111111000001100011100110110
+01101111111000001100011100110101
+11000001000000000000000000000000
+01110000010001110011010100000000
+00100000011000000000000000000000
+00100000010000000101010011110001
+01101111111000001100011100110101
+11000001000000001000000000000000
+01110000010001110011010100000001
+00100000011000000000000000000000
+11011010010000000101100101100101
+11011010011000000100011100110110
+01101111111000001100011001111000
+11000000000000000011011101010101
+11011010010000000101010010110010
+00100000010000000011011101010101
+01101111111000001100011100110110
+11000000000000001101100000100000
+00100000011000000000000000000000
+11011010011000000100011101010000
+11011010010000000101010011111101
+00100000001000000011011101011100
+00100000010000000101010101100010
+00100000001000000100111000110101
+11011010011000000100011100100000
+11011010010000000101010100000101
+00100000010000000011011101010101
+01101111111000001100011100100000
+11000000000000001011011110001000
+00100000011000000000000000000000
+01101111111000001100011101001111
+11000000011111111101001110110011
+01101111111000001100011100111111
+00100100001110100101100000110110
+01101111111001000100011100001110
+11000010100110011101010101000100
+11000010100111110101100101011101
+00100000001000000100111000110101
+11011010011000000100100010000011
+11011010010000000101010000100110
+00100000001000000011011101010101
+01101111111000001100011101010011
+00100000011110100000000000000000
+11011010011000000100011101010101
+11011010010000000101010100010101
+00100000001000000011011101010101
+01101111111000001100011101010100
+00100100011110100000000000000000
+01101111111000001100001011111110
+11000001100000000000000000000000
+00100000001000000010111110101011
+01101111111001000100011100001110
+11000011100111011000000000000000
+11011010011000000100011101111111
+11011010010000000101010100011111
+00100000001000000011011101010101
+01101111111000010100011101111101
+01100111111000010100011101111111
+00100000001000000101010001010000
+01101111111000001100100010000010
+11000011100000010000000000000000
+00100000010000000101010000001000
+11011000111000000000000000000000
+00100000001000000101010000010001
+11011010011000000100011100111110
+11011010010000000101010100101010
+00100000001000000011011101010101
+01101111111000001100100010001011
+01100111111000001100000011000000
+01101111111000001100011100111100
+01100111111000001100011100111101
+00100000011000000000000000000000
+11011010011000000100011101000001
+11011010010000000101010100110010
+00100000001000000011011101011100
+01101111111000001100011001111000
+11000000000000000101100100001010
+00100000001000000101001111000110
+01101111111000010100011100011110
+01100111111000010100011101000001
+00100000011000000000000000000000
+11011010011000000100011100000101
+11011010010000000101010100111011
+00100000001000000011011101010101
+00100000010000000101010101110100
+01101111111000001100011101010010
+00100100001110100101100000000001
+00100000011000000000000000000000
+00101000000011111111111000100110
+00100000010000001101100100110110
+00100000010000000101001111000110
+01110000010010001000001000000000
+00100000001000000101010101000100
+01000100110010100100000000010010
+00100000010000000101101001111010
+01101111111000010100010100000000
+00101111111011111111111000001011
+00100000010000001101010101100101
+00100000010000000101001111000001
+01101111111000010100010100000000
+11000010100001011101010101010100
+01101111111001000100011100001110
+11000011000001000101010101010100
+01101000010010001100011010100111
+00011000010000001000010000000001
+01100000010010001100011010100111
+01100000010010001100001011011111
+00011000000010100111111000000000
+01100111111000010100001011011101
+01101111111000011100011101010110
+01100111111000011100001011100000
+00100000010000000011011110100010
+01101111111000010100011001001111
+01100111111000010100011101010000
+01011000000000000000000000000000
+01100111111000010100011101000001
+01100111111000010100011101111111
+01100111111000001100011100100000
+01100111111000001100100111111001
+11011000111000000000000000000010
+00100000010000000101100000101110
+00100000010000000101100000100010
+00100000001000000101010001010101
+01000100110010101100000000010010
+11011000111000000000000000000110
+00100000010000000101100000110010
+01011000000000000000000000000000
+01100111111000001100011100100000
+01100111111000010100011101010000
+00100000001000000111100001100110
+01000100110010110100000000010010
+01101111111001000100011100001110
+11000100000000010000000000000000
+11011000111000000000000000000010
+00100000010000000101100000110010
+00100000010000000110011111100100
+00100000010000000110011111000001
+00100000001000000101010101110001
+01101111111000001100011100000110
+01100111111000001100011100000101
+00100000011000000000000000000000
+01000100110010111100000000010010
+01101111111001000100011100001110
+11000010100010001101010110000000
+11000010100010000101010110001000
+11000010100010010101010110001010
+00100000011000000000000000000000
+01000100110011000100000000010011
+01101111111001000100011100001110
+11000010100010001101010110000100
+11000010100010010101011000010010
+11000010100010000101010110001000
+00100000011000000000000000000000
+11011000010000000000000010000000
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000001000000110110011001001
+11011000010000000000000000000001
+11011010001000000100011010100010
+11011010010000000000000001011010
+00100000001000000110110011001001
+00100000010000000110011110111011
+00100000001000000100111100011011
+00100000010000000101010110001110
+00100000010000000101010110010100
+00100000010000000101010110111011
+00100000001000000101010111111100
+00100000010000000101011010011001
+01101111111000010100011010100000
+11011000010000001010101001010101
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000001000000101011010011101
+01101010010000010100101001111111
+00011010010000100010011000000000
+00100000010000000101011010101101
+01101111111000001100011100011000
+00100000001110100101010110100000
+01100111111000001100101000110010
+00011010011000001010011000000001
+01101111111000010100101010000001
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101010110010110
+01101111111000001100101000110010
+00011111111000010111111011110000
+00100000001110100101010110101010
+01101111111000001100011001111000
+00100000010000000101010110111000
+01100111111000001100101000110011
+11011111001000000000000000000001
+00011010011000100010010000000000
+11011010001000000100101000110011
+00100000001000000110101100110011
+01101000010010001100101000110010
+01101111111000001100011001111000
+00100000010000000101010110111000
+10011000010001100111110000000000
+00100000011000101000000000000000
+00011111111100100111111000000000
+10011000010000001111111000000000
+01100111111000001100101000110011
+00011010011000100111111000000000
+01101000010010010100101001111111
+10011000010001100111110000000000
+00100000001000101101010110100110
+00011010011000001010011111111111
+00100000001000000101010110100110
+11000001100000000000000000000000
+00011111111000001111111000000100
+00100000011000000000000000000000
+01101111111000001100011001111000
+11000000000000000101010111000000
+11000000000000001101010111010100
+11000000000000010101010111101000
+00100000011000000000000000000000
+01101010010000010100101010000011
+00011010010000100010011000000000
+00100000010000000101011100100110
+01101111111000100100101001101011
+00100000001110100101010111001100
+01100111111000100100101001100111
+00011010011000001010011000000100
+01101111111000010100101010000101
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101010111000010
+01101111111000100100101001100111
+01101000010010100100011010100011
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000100
+11011010001000000100011010100011
+00011010011000100010010000000000
+00100000001000000110101100110011
+01101010010000010100101010000111
+00011010010000100010011000000000
+00100000010000000101011011010011
+01101111111000110100101000111010
+00100000001110100101010111100000
+01100111111000110100101000110100
+00011010011000001010011000000110
+01101111111000010100101010001001
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101010111010110
+01101111111000110100101000110100
+01101000010010110100011001111010
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000110
+11011010001000000100011001111010
+00011010011000100010010000000000
+00100000001000000110101100110011
+01101010010000010100101001110011
+00011010010000100010011000000000
+00100000010000000101011011111100
+01101111111000110100101001010010
+00100000001110100101010111110100
+01100111111000110100101001001100
+00011010011000001010011000000110
+01101111111000010100101001110101
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101010111101010
+01101111111000110100101001001100
+01101000010010110100011010000111
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000110
+11011010001000000100011010000111
+00011010011000100010010000000000
+00100000001000000110101100110011
+01101111111000001100011001111000
+11000001000000000000000000000000
+01101010010000010100101010001111
+00011010010000100010011000000000
+00100000010000000101011100111000
+01101111111000001100101001110001
+00100000001110100101011000001010
+01100111111000001100101001101111
+00011010011000001010011000000001
+01101111111000010100101010010001
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101011000000000
+01101111111000001100101001101111
+01101000010010001100011010100111
+10011000010001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000000001
+11011010001000000100011010100111
+00011010011000100010010000000000
+00100000001000000110101100110011
+01101111111001000100011100001110
+11000100000001110000000000000000
+01101010010000010100101001111011
+00011010010000100010011000000000
+00100000010000000101011101001100
+01101111111000001100101001100101
+00100000001110100101011000100000
+01100111111000001100101001100100
+00011010011000001010011000000001
+01101111111000010100101001111101
+10011010011001100111110000000000
+00100100011000010000000000000000
+00011010011000100010010000000000
+00100000001000000101011000010110
+01101111111000001100101001100100
+00011111111000010111111011110000
+00100000001110100101011000101010
+01101111111000001100011010100010
+00100000010000000101011000111000
+01100111111000001100101001100110
+11011111001000000000000000000001
+00011010011000100010010000000000
+11011010001000000100101001100110
+00100000001000000110101100110011
+01101000010010001100101001100100
+01101111111000001100011010100010
+00100000010000000101011000111000
+10011000010001100111110000000000
+00100000011000101000000000000000
+00011111111100100111111000000000
+10011000010000001111111000000000
+01100111111000001100101001100110
+00011010011000100111111000000000
+01101000010010010100101001111011
+10011000010001100111110000000000
+00100000001000101101011000100110
+00011010011000001010011111111111
+00100000001000000101011000100110
+11000001100000000000000000000000
+00011111111000001111111000000111
+00100000011000000000000000000000
+01101111111000001100011001111000
+00011111111001100111110000000100
+00100000011000010000000000000000
+00100000010000000111110111001100
+00100000001000000101011010111011
+00100000010000000110110010110010
+01101111111001000100011100001110
+00101111111011111111111000001001
+00100100010000001110110010111010
+00100000010000001110110010110111
+00100000010000000101011001001000
+00100000010000000101011000111011
+00100000001000000101011010001001
+11011000010000000000000010000000
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000001000000110110011010111
+11011000010000000000000000000001
+11011010001000000100011010100010
+11011010010000000000000001011010
+00100000001000000110110011010111
+00100000010000000110011110110110
+00100000010000000101011000111011
+00100000010000000101011010001001
+00100000001000000100111100011011
+01011000000000000100011011111000
+11011000010000000100011001111000
+10011000010001100000010000000000
+01101111111000011100011011111110
+11011010001000000100011001111000
+00100000011000000000000000000000
+01110000000001100101011010101011
+00100000010000000111000010111111
+00100000010000000110110000011100
+11011010001000000100011100000001
+01101000010010001000011001010110
+00100000010000000101011001100011
+00100000001000000111000010111111
+01110000000001100101011010111001
+00100000001000000101011001011011
+11100000010000001000000000010001
+00011111111100010000010000000000
+11100000010000001000000000000101
+00011111111011001000010000000000
+11100000010000001000000000000101
+11100111111000001000000000000101
+00011010001000100111111000000000
+01100111111100010000000010000100
+01011000000000000000000000000000
+01100111111100010000000010001000
+01110000100000000000011000000010
+00100000001000000110101111010110
+01101111111000011100011011111110
+01100111111000011100010000110000
+00100000001000000110101111110000
+00011111111000100010011000000000
+00011010001000100111111000000000
+00011111111000001111111111111100
+00011111111000100010010000000000
+11101111111000100000000000010010
+01100111111000100100011100000001
+00011010011000100111111000000000
+00100000010000000110110000110010
+01101111111000100100011100000001
+11100111111000100000000000010010
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000100000010000000000000000000
+00100000010000000101011001100001
+00100000010000000110100101101100
+01101000010010001100010000111000
+00100000010000000110111011101101
+01101000010010001100010000111101
+00100000001000000100111100000110
+00100000010000000101011100111110
+00100000010000000101011010100001
+00100000010000000101011000111011
+00100000010000000101011010111111
+01000100110011001100000000010011
+01101111111001000100011100001110
+00101111111011111111111000010010
+00100000010000001101011010011001
+01101111111000010100011010100000
+11011000010000001010101001010101
+10011000010001100111110000000000
+00100000001000101110011111001111
+01100000010010010100011010100000
+00100000010000000110011111111000
+01101111111000001100011100010111
+01100111111000001100011001111000
+01100111111000001100011010100111
+01101111111000001100100010011001
+01100111111000001100011010100010
+00100000011000000000000000000000
+11011111001000000000000000000010
+01101010010000010100101010010011
+11011010001000000100011010100000
+00100000001000000110101101100010
+11011111001000000000000000000010
+11011010001000000100011010100000
+01101010010000010100101010010011
+00100000001000000110101100110011
+01101010010000010100101001111111
+00011010010000100010011000000000
+00100000010000000101011010101101
+01101111111000001100011100011000
+00100000001110100101011010110000
+01100111111000001100101000110010
+00011010011000001010011000000001
+01101111111000010100101010000001
+10011010011001100111110000000000
+00100100001000010101011010110000
+00011010011000100010010000000000
+00100000001000000101011010100011
+11011111001000000000000000000001
+11011010001000000100011100011000
+00100000001000000110101101100010
+01101111111000001100101000110010
+00011111111000100000010000000000
+00011111111000010111111011110000
+00100000001110100101011010110110
+00011111111100011111111000000000
+00100000001000000101011010110111
+00011000010000100111111000000000
+00011111111001100111110000000000
+00100000001000101101011010111101
+00011111111001100111110000000100
+00100000010000101111110111001100
+01100111111000001100011001111000
+00100000011000000000000000000000
+01101111111000001100011100010111
+00100000001000000101011010111011
+00100000010000000101011100011010
+00100000010000000101011011000011
+00100000010000000101011011000101
+00100000001000000101011100101100
+00100000010000000101011011000111
+00100000001000000101011011011001
+00100000010000000101011011110000
+00100000001000000101011100000010
+01101010010000010100101010000111
+00011010010000100010011000000000
+00100000010000000101011011010011
+01101111111000110100101000111010
+00100000001110100101011011010110
+01100111111000110100101000110100
+00011010011000001010011000000110
+01101111111000010100101010001001
+10011010011001100111110000000000
+00100100001000010101011011010110
+00011010011000100010010000000000
+00100000001000000101011011001001
+11011111001000000000000000000110
+11011010001000000100101000111010
+00100000001000000110101101100010
+01101111111000110100101000110100
+01100111111000110100011001111010
+00100000011000000000000000000000
+01101010010000010100101010001011
+00011010010000100010011000000000
+00100000010000000101011011100101
+01101111111000110100101001000110
+00100000001110100101011011101000
+01100111111000110100101001000000
+00011010011000001010011000000110
+01101111111000010100101010001101
+10011010011001100111110000000000
+00100100001000010101011011101000
+00011010011000100010010000000000
+00100000001000000101011011011011
+11011111001000000000000000000110
+11011010001000000100101001000110
+00100000001000000110101101100010
+01101111111000110100101001000000
+01101000010010110100011011111000
+10011000010001100111110000000000
+00100000010000101101011011101110
+01100111111000110100011010000000
+00100000011000000000000000000000
+01101111111000110100001011011101
+00100000011000000000000000000000
+01101010010000010100101001110011
+00011010010000100010011000000000
+00100000010000000101011011111100
+01101111111000110100101001010010
+00100000001110100101011011111111
+01100111111000110100101001001100
+00011010011000001010011000000110
+01101111111000010100101001110101
+10011010011001100111110000000000
+00100100001000010101011011111111
+00011010011000100010010000000000
+00100000001000000101011011110010
+11011111001000000000000000000110
+11011010001000000100101001010010
+00100000001000000110101101100010
+01101111111000110100101001001100
+01100111111000110100011010000111
+00100000011000000000000000000000
+01101010010000010100101001110111
+00011010010000100010011000000000
+00100000010000000101011100001110
+01101111111000110100101001011110
+00100000001110100101011100010001
+01100111111000110100101001011000
+00011010011000001010011000000110
+01101111111000010100101001111001
+10011010011001100111110000000000
+00100100001000010101011100010001
+00011010011000100010010000000000
+00100000001000000101011100000100
+11011111001000000000000000000110
+11011010001000000100101001011110
+00100000001000000110101101100010
+01101111111000110100101001011000
+01101000010010110100011011111000
+10011000010001100111110000000000
+00100000010000101101011100010111
+01100111111000110100011010001101
+00100000011000000000000000000000
+01101111111000110100001011011101
+00011111111000001111111100000000
+00100000011000000000000000000000
+01101010010000010100101010000011
+00011010010000100010011000000000
+00100000010000000101011100100110
+01101111111000100100101001101011
+00100000001110100101011100101001
+01100111111000100100101001100111
+00011010011000001010011000000100
+01101111111000010100101010000101
+10011010011001100111110000000000
+00100100001000010101011100101001
+00011010011000100010010000000000
+00100000001000000101011100011100
+11011111001000000000000000000100
+11011010001000000100101001101011
+00100000001000000110101101100010
+01101111111000100100101001100111
+01100111111000100100011010100011
+00100000011000000000000000000000
+01101010010000010100101010001111
+00011010010000100010011000000000
+00100000010000000101011100111000
+01101111111000001100101001110001
+00100000001110100101011100111011
+01100111111000001100101001101111
+00011010011000001010011000000001
+01101111111000010100101010010001
+10011010011001100111110000000000
+00100100001000010101011100111011
+00011010011000100010010000000000
+00100000001000000101011100101110
+11011111001000000000000000000001
+11011010001000000100101001110001
+00100000001000000110101101100010
+01101111111000001100101001101111
+01100111111000001100011010100111
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000011000001110101011010010110
+01101010010000010100101001111011
+00011010010000100010011000000000
+00100000010000000101011101001100
+01101111111000001100101001100101
+00100000001110100101011101001111
+01100111111000001100101001100100
+00011010011000001010011000000001
+01101111111000010100101001111101
+10011010011001100111110000000000
+00100100001000010101011101001111
+00011010011000100010010000000000
+00100000001000000101011101000010
+11011111001000000000000000000001
+11011010001000000100101001100101
+00100000001000000110101101100010
+01101111111000001100101001100100
+00011111111000100000010000000000
+00011111111000010111111011110000
+00100000001110100101011101010101
+00011111111100011111111000000000
+00100000001000000101011101010110
+00011000010000100111111000000000
+00011111111001100111110000000111
+00100000010000101111110111001100
+00100000001000000101011010010111
+01000100110011010100000000010011
+00100000010000000101101011011101
+00100000010000000111100010011010
+00100000010000000100111111011011
+00100000010000000101000100110010
+00100000010000000101011101100111
+00100000010000000101011110111000
+00100000010000000101100000010101
+00100000010000000100111101000010
+01101111111001000100011100001110
+11000100000001100000000000000000
+01000100110011011100000000010011
+00100000010000000101101110000111
+00100000001000000101101110110000
+01101111111001000100011100001110
+11000010100101001101011101101011
+11000010100110111101011101101011
+00100000011000000000000000000000
+00100000010000000101011101101101
+00100000001000000101011101111110
+01000100110011100100000000010011
+11011010001000000000000000000000
+01110000010010100000111100000110
+01101000010010001100100010011101
+00100000010000000101011110000001
+01100111111000001100101000001101
+01101111111000001100100010011100
+11000000011111111101011101111100
+00100000001000000101001000000011
+01101111111000001100100010011101
+11000001011111111000000000000000
+00100000010000000101011101101101
+00011010001000100111111000000000
+11000010100000110101011110100100
+00100000001000000101011110010111
+01101000010010001100100010011101
+00100000010000000100111100001010
+00011010001000100111111000000000
+11000010100000110101011110100010
+00100000001000000101011110010111
+01101111111001000100011100001110
+11000010100101101101011110001101
+01101111111000001100101000001101
+00011111111000100010011000000000
+01101111111000001100100010011100
+11000000011111111101001001000010
+01101111111000001100101000010011
+00100100001110100101011110001010
+00100000001000000101011110001111
+01110000010001110011010000000000
+01110000010010100000110100000000
+00100000011000000000000000000000
+01101111111000001100101000001101
+00100000001000000101001000110110
+00100000010000000110111011100000
+01101000010010001100100010011100
+00100000001000001101011110001101
+01101000010010001100100010011100
+00100000010000000110111011110001
+01101000010010001100100010011101
+01101111111000001100101000001101
+00100000001000000101001000110110
+01101111111000001100011100110100
+11000001000000000000000000000000
+01110000010001110011010000000000
+01101111111001000100011100001110
+11000011100110100000000000000000
+01101111111000001100011100110001
+00011111111001100111110000010100
+00100100010000010101011111110110
+01101111111000001100010100000010
+01100111111000001100011100110001
+00100000011000000000000000000000
+00100000010000000101011110101110
+00100000011101000000000000000000
+01101111111000001100011100110100
+11000001000000001000000000000000
+01110000010001110011010000000001
+01101111111001000100011100001110
+11000010100110100101010010110010
+01101111111000001100011100100000
+00100000011110100000000000000000
+01101111111000001100011001010011
+01100111111000001100011100100000
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101111111001000100011100001110
+11000011100101101000000000000000
+01101111111000001100101000000111
+00100000011110100000000000000000
+01101111111000001100101000001000
+00100000011110100000000000000000
+01101111111000001100101000001001
+00100000011110100000000000000000
+00100000001000000111110110111100
+01000100110011101100000000010011
+01101111111001000100011100001110
+11000100000101010000000000000000
+11000011000010110101011110111111
+00100000010000000101011111000010
+01101111111000001100011001100101
+00100000001000000101001001011000
+00100000010000000101011111001000
+01101111111000001100011001100101
+00100000001000000101001001011100
+01101111111000001100011001100101
+00100000010000000101001001011100
+01101000010010001100011001100101
+00100000010000000110111011100000
+00100000001000001101011111001110
+00100000001000000101011111010010
+01101111111000001100011001100101
+00100000010000000101001001011000
+01101000010010001100011001100101
+00100000010000000110111011100000
+00100000001000001101011111010010
+00100000001000000101011111001110
+01101111111000001100011001111000
+11000001000000001000000000000000
+01110000010001100111100000000001
+00100000001000000101011111010101
+01101111111000001100011001111000
+11000001000000000000000000000000
+01110000010001100111100000000000
+00100000010000000101011111110000
+00100000001000000101100000000001
+01000100110011110100000000010011
+01101111111001000100011100001110
+11000100000101010000000000000000
+11000011000010110101011111011110
+00100000010000000101011111100001
+01101111111000001100011001100101
+00100000001000000101001001011000
+00100000010000000101011111100111
+01101111111000001100011001100101
+00100000001000000101001001011100
+01101111111000001100011001100101
+00100000010000000101001001011100
+01101000010010001100011001100101
+00100000010000000110111011100000
+00100000001000001101011111110010
+00100000001000000101011111101101
+01101111111000001100011001100101
+00100000010000000101001001011000
+01101000010010001100011001100101
+00100000010000000110111011100000
+00100000001000001101011111101101
+00100000001000000101011111110010
+01101111111000001100011001111000
+11000001000000000000000000000000
+01110000010001100111100000000000
+00100000010000000101100100110110
+00100000001000000101001111000011
+01101111111000001100011001111000
+11000001000000001000000000000000
+01110000010001100111100000000001
+00100000001000000101011111110000
+01000100110011111100000000010011
+01101111111000001100011100010110
+11000001000000001000000000000000
+00100000010000000101100000000011
+01100000010010001100011001111000
+00100000010000000101100000011000
+00100000010000000101001111000011
+00100000010000000011011101000101
+00100000010000000101100000011010
+01110000010001110101001000000001
+00100000001000000101010101110001
+00100000010000000101100000011000
+00100000001000000110110010011001
+01101000010010001100011001111000
+00011000010000001000010000000001
+01101111111001000100011100001110
+11000010100001111101100000001011
+00011000010001100111110000000010
+00100000011000010000000000000000
+11011000010000000000000000000001
+00100000011000000000000000000000
+01101111111000001100011100010110
+00011111111000001111111111111111
+10011000010001100111110000000000
+00100000011000010000000000000000
+11011000010000000000000000000000
+00100000011000000000000000000000
+11011000010000000000000000000001
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000001000000110110011001001
+01101111111001000100011100001110
+11000100000110100000000000000000
+00100000001000000101011101101011
+11011000111000000000000000000000
+00100000001000000101100000101110
+11011000111000000000000000000000
+00100000001000000101100000110010
+11011000111000000000000000000011
+00100000001000000101100000101110
+11011000111000000000000000000011
+00100000001000000101100000110010
+11011000111000000000000000000101
+00100000001000000101100000101110
+11011000111000000000000000000101
+00100000001000000101100000110010
+11011000111000000000000000010011
+00100000001000000101100000101110
+11011000111000000000000000011000
+00100000001000000101100000101110
+11011000111000000000000000001101
+00100000001000000101100000101110
+11011000111000000000000000001011
+00100000001000000101100000101110
+11011000111000000000000000011100
+00100000001000000101100000101110
+01101111111001000100011100001110
+11111001001000000111111000000000
+01100111111001000100011100001110
+00100000011000000000000000000000
+01101111111001000100011100001110
+11111001001111111111111000000000
+01100111111001000100011100001110
+00100000011000000000000000000000
+01000100110100000100000000010100
+01101111111000001100011100111111
+00011111111000001111111111111111
+01100111111000001100011100111111
+01101000010010001100011001111000
+00011000010001100111110000000001
+00100100010000101101100000000011
+01100000010010001100011001111000
+00100000010000000101100000010001
+00100000010000000110011111000001
+00100000001000000100111000001001
+01000100110100001100000000010100
+01101111111000001100100111111010
+11000001000000011000000000000000
+11000001000001011000000000000000
+01101111111001000100011100001110
+11000100000111000000000000000000
+01101111111000100100011001011101
+00100000011110100000000000000000
+00100000010000000101100011100110
+01011000000000000000000000000011
+00100000010000000101100011011100
+00100000010110100101100011011000
+00100100010110100101100011011010
+01011000000000000000000000000010
+00100000010000000101100011100001
+00100000010110100101100011011000
+01101111111000001100100011111110
+11000000000000001101100001011000
+01101111111001000100011100001110
+11000100000111000000000000000000
+11011111001000000000000000000101
+11011000101000000100100011111110
+00100000001000000111110010100011
+00100000010000000101100001101100
+01101111111000010100100011111111
+01100111111000010000011011101001
+01101111111000010100011001011101
+01100111111000010000011011101011
+00100000010000000101100010100010
+01101111111000010000011011101001
+01100111111000010100100011111111
+01101111111000010000011011101011
+01100111111000010100011001011101
+01101111111000010100100100000001
+01100111111000010000011011101001
+01101111111000010100011001011111
+01100111111000010000011011101011
+00100000010000000101100010101010
+01101111111000010000011011101001
+01100111111000010100100100000001
+01101111111000010000011011101011
+01100111111000010100011001011111
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000100000111001000000000000000
+01000100110100010100000000010100
+01101111111000010100100011111111
+01100111111000010000011011110000
+00100000010000000101100001111111
+01100111111000010100100011111111
+01101111111000010100011001011101
+01100111111000010000011011110000
+00100000010000000101100010001101
+01100111111000010100011001011101
+01101111111000010100100100000001
+01100111111000010000011011110000
+00100000010000000101100001111111
+01100111111000010100100100000001
+01101111111000010100011001011111
+01100111111000010000011011110000
+00100000010000000101100010001101
+00100000001000000101100001101010
+01101111111000001000011011110001
+00100000001110100101100010000010
+00100000001000000101100010000111
+01101111111000001000011011110000
+00100000010000000101100010011010
+01100111111000001000011011110000
+01101111111000010000011011110000
+00100000011000000000000000000000
+01101111111000001000011011110000
+00100000010000000101100011010100
+00100000010000000101100010011010
+00100000010110100111110111001010
+00100000010000000101100011010000
+00100000001000000101100010000101
+01101111111000001000011011110001
+00100000001110100101100010010000
+00100000001000000101100010010100
+01101111111000001000011011110000
+00100000010000000101100010011101
+01100111111000001000011011110000
+00100000001000000101100010000101
+01101111111000001000011011110000
+00100000010000000101100011010100
+00100000010000000101100010011101
+00100000010110100111110111001010
+00100000010000000101100011010000
+00100000001000000101100010000101
+00011111111011111111111000000100
+00011111111001101111110000000101
+00100000001000000101100010011111
+00011111111011111111111000001100
+00011111111001101111110000001010
+00100000010000000111110101100100
+00011000000001111111111000000000
+00100000011000000000000000000000
+01101111111000010000011011101001
+01101000010010010000011011101011
+10011000010000001111111000000000
+01101000010010001100100100000011
+10011000010000001111111000000000
+00011111111000010000010000000001
+01100000010010001100100100000011
+00100000001000000101100010110010
+01101111111000010000011011101001
+01101000010010010000011011101011
+10011000010000001111111000000000
+01101000010010001100100100000100
+10011000010000001111111000000000
+00011111111000010000010000000001
+01100000010010001100100100000100
+00100000001000000101100010110010
+01100111111000011000011011101101
+00101111111011111111111000010000
+00100000001000001101100010111100
+01101111111000001000011011101110
+11000000011111111101100011000011
+01101111111000001000011011101101
+00011111111000110111111000000000
+01100111111000010000011011101001
+01100111111000010000011011101011
+00100000011000000000000000000000
+01101111111000001000011011101110
+11000000000000000101100011000000
+01101111111000011000011011101101
+00100000001000000101100010111000
+01110000000001101110111100000000
+01101111111000001000011011101101
+00100000001000000101100010111000
+01101111111000001000011011101101
+00100000010000000101100011001110
+01100111111000001000011011101001
+01100111111000001000011011101011
+00100000001110100101100011001100
+01011000000000000000000011111111
+01100111111000001000011011101010
+01100111111000001000011011101100
+00100000011000000000000000000000
+01011000000000000000000000000000
+00100000001000000101100011001001
+00100000010000000101100011010100
+00011111111000110111111000000000
+00100000010000000101100011010101
+00011111111001100111111000000000
+01100111111000001000011011110000
+00100000011000000000000000000000
+00011111111001100111111000000000
+01100111111000001000011001100010
+01101111111000001000011001100010
+00100000011000000000000000000000
+01110000010010001111111000000000
+00100000011000000000000000000000
+01110000010010001111111000000001
+00100000011000000000000000000000
+10011010001001100111110000000000
+00100100001000010111110111001010
+10011010010001100111110000000000
+00100100001000010111110111001010
+00100000001000000111110111001100
+10011010001001100111110000000000
+00100100011000010000000000000000
+10011010010001100111110000000000
+00100100011000010000000000000000
+00100000001000000111110111001100
+01101111111000010100011001011101
+00100000010000000101100011101101
+00011111111000100010001000000000
+01101111111000010100011001011111
+00100000010000000101100011101101
+00011111111000100010010000000000
+00100000011000000000000000000000
+01100111111000010000011011101011
+01101111111000001000011011101100
+11000000011111111101100011110011
+01101111111000001000011011101011
+00011111111000010111111011111111
+00100000011000000000000000000000
+01101111111000010000011011101011
+00011111111001100111111000000000
+00100000001000000101100011110001
+11011010011000000100011000110110
+11011010010000000101100011111001
+00100000001000000011011101010101
+01101111111000100100011000101010
+01100111111000100100010111000110
+00100000001000000101010100101100
+01101111111000001100011100111000
+11000000000000000101100100000100
+11000000000000001101100100000110
+11000000000000010101100100000001
+11000000000000011101100100001000
+01011000000011101010011000000000
+01100111111000100100011000101010
+00100000011000000000000000000000
+01011000000001011110011101000000
+00100000001000000101100100000010
+01011000000010010010011111000000
+00100000001000000101100100000010
+01011000000100100100111110000000
+00100000001000000101100100000010
+01000100110100011100000000010100
+01110000010010101100010000000000
+01110000010001100001011100000000
+00100000010000000011011000100000
+01011111111111111111111111111111
+01100111111001000100010111000110
+01011000000000000000000000000000
+01100111111000111100011001011100
+01110000010001110011011100000001
+00100000010000000101001100000011
+00100000010000000100111001000010
+00100000001000000101101011110111
+01000100110100100100000000010100
+01101111111000001100011100110111
+00100100010110100101100100011011
+01110000010001110011011100000000
+00100000011000000000000000000000
+01110000010010101100010000000001
+00100000010000000101001001100011
+01101111111001000100011100001110
+11000100000111100000000000000000
+01101000010010001100011001101000
+00100000010000000100111100001010
+01101000010010001100011001101001
+00100000001000000100111100001010
+00100000010000000101100100100111
+01101111111000001100011100110111
+00100100001110100101101100000010
+00100000001000000011010111101000
+01101111111000100100010111111111
+01101000010010100100010111111011
+10011000010001100111110000000000
+00100000001000101101100100101101
+01110000010000010100001111111111
+00100000011000000000000000000000
+01110000010000010100001100000000
+01110000010000010100000110101010
+00100000011000000000000000000000
+01101111111000001100000101000001
+01100111111000001100011001010110
+00100000011000000000000000000000
+01101111111000001100011001010110
+01100111111000001100000101000001
+00100000011000000000000000000000
+01111001001111111000000000100110
+01110000010001100001001100000000
+11011000111000000000000000000001
+00100000001000000101100000110010
+01101111111001000100011100001110
+11000011000001111101100101001000
+00100000010000000101101001101001
+00100000010000000100111000010100
+00100000001101000101100110001000
+01101111111001000100011100001110
+11000010100110000101100101001101
+11000011000110001101100101001101
+00100000010000000101000110100111
+00011010001000010111111000000111
+01101000010010001100101010111110
+10011000010001100111110000000000
+00100000001000101101100101100101
+00100000001000000101100101001101
+01101111111000001100011100111111
+00100100001110100101100000110110
+00100000011000000000000000000000
+00100000010000000100111000010100
+00100000001101000101100101010110
+01110000010001100111100000000000
+01101111111000010100011100011010
+01100111111000010100010111110101
+01110000010001011111100100000001
+00100000001000000011010100001010
+01101111111000010100010111101101
+01100111111000010100010111110101
+01110000010001011111100100000100
+00100000001000000011010100001010
+01101111111000001100011001111000
+11000000000000000101100110001000
+00100000010000000101001111000001
+00100000010000000101100100110110
+01110000010001100111100000000001
+00100000010000000110011111010101
+00100000001000000100110111111010
+00100000010000000100111000010100
+00100000001101000100111000110101
+00100000001000000101010101000100
+00100000010000000100111000010100
+00100000011101000000000000000000
+01101111111001000100011100001110
+11000010100111110101010101110001
+00100000011000000000000000000000
+00100000010000000101101001101001
+01110000010001011111100100000000
+11011000111000000000000000000001
+00100000010000000101100000101110
+01011000000000000000000000000000
+01100111111000010100010111110101
+00100000010000000101010101100010
+01110000010001011010000000000001
+01101111111001000100011100001110
+11000011000010100011001001101111
+01110000010001011010000000000010
+00100000001000000011001001101111
+00100000010000000101100100101011
+00100000010000000101100100110011
+01101111111000001100011000010111
+00100100001110100101100100001010
+01101111111000001100010111111001
+11000000000000010101100110000000
+11000000000000001101100110000000
+11000000000000100101100110001100
+11000000000000011101100110010001
+00100000010000000101100100110110
+01101111111000001100011100111111
+00100100001110100101100000110110
+01101111111000001100011001111000
+11000000000000000100111000110101
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000010100111110101100101010010
+11000010100110000101100101010010
+11000011000111010101100110001000
+01101111111000100100011010100011
+01101000010010100100011011111000
+10011000010001100111110000000000
+00100000001000101101100101100101
+01101111111000010100010111110011
+01100111111000010100010111110101
+01110000010001011111100100000011
+00100000001000000011010100001010
+01101111111001000100011100001110
+11000011000111110101100101111010
+01101111111000001100011100010110
+11000000000000001101100101111010
+00100000001000000101100101011001
+01101111111001000100011100001110
+11000011000111110101100101111010
+11000010100010001101100101111010
+11000010100010000101100101111010
+11000010100010010101100101111010
+00100000001000000101100101010010
+01101111111000100100010110100110
+01100111111000100100010111111111
+01100111111000100100011010100011
+00100000010000000011010100110000
+00100000010000000101010100110101
+00100000010000000101101001100010
+00100000010000000101001110001101
+01110000010001110011110100000000
+01110000010001100001001100000000
+01110000010001011111100100000000
+01101111111000100100010111111111
+01101000010010100100010111111011
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100000010000000101100100101011
+00100000010000000101100100110011
+00100000001000000101100101100000
+00100000010000000101100100101011
+00100000010000000101100100110011
+00100000010000000101001110001101
+00100000010000000101001110011110
+00100000010000000101101001100010
+00100000010000000101010100110101
+11011000111000000000000000000001
+00100000010000000101100000110010
+01011000000000000000000000000000
+01100111111000010100010111101111
+01100111111000010100010111110101
+01100111111000001100011000010011
+01100111111000001100100011111101
+01100111111000001100010111111001
+01101111111000100100010110100110
+01100111111000100100010111111111
+01100111111000100100011010100011
+00100000001000000101010101110001
+00100000010000000111110111100110
+00100000001000000010001111100001
+01000100110100101100000000010100
+11000110100100110000000000000000
+00100000010000000100111100100110
+00100100011101000000000000000000
+01101111111000001100011100111011
+01110000010001110011101100000000
+00100100010110100101100110111010
+01101111111001000100011100001110
+11000011000010100101100111000111
+01101111111000001100011100101011
+00100100001110100101100111011100
+00100000010000000101001110001110
+01101111111000001100010110100000
+11000010100000001101100111010110
+01101000010010001100010100110001
+01101111111000001100011001011100
+10011000010000011111111000000000
+01100111111000001100011001011100
+01101000010010001100010100110110
+01101111111000001100011001100001
+10011000010000001111111000000000
+01100111111000001100011001100001
+01101000010010001100010100110111
+01101111111000001100011001100010
+10011000010000001111111000000000
+01100111111000001100011001100010
+01110000010001011010000000000001
+11011010001000000000000000000111
+11011010010000000100011001011100
+01101111111000010100011001100001
+00100000011110100000000000000000
+00100000001000000011011010111011
+01110000010001011010000000000010
+11011010001000000000000000001001
+00100000001000000110100001010010
+01101111111000001100011101010010
+00100100011110100000000000000000
+00100000010000000101100111100011
+00100000001000000011011000111011
+11011000111000000000000000001100
+00100000010000000111110011110001
+00100100011110100000000000000000
+00100000010000000101011101110110
+00100000010000000101010011001001
+00100000010000000101100111101101
+00100000010000000101000001010000
+11011000111000000000000000001100
+01011000000000000000000010100000
+00100000001000000111110011100011
+01101111111001000100011100001110
+11000100000101000000000000000000
+00100000001000000100111111011011
+00100000010000000110111101001011
+00100000001000000110100011000100
+01101111111000001100100010100001
+11000001011111111000000000000000
+01101111111000010100011101000001
+00100000011110100000000000000000
+01101111111000010100011100011110
+01101000010010010100011101000001
+10011000010001100000010000000000
+01101111111000010100100010111011
+10011000010001100111111000000000
+00100000001000010101100111111110
+01101000010010001100100010100001
+00100000001000000101101010110110
+01101000010010001100100010100001
+00100000001000000101101010110101
+11011010011000000100100010111101
+11011010010000000101101000000011
+00100000001000000011011101010101
+01000100110100110100000000010100
+01101111111001000100011100001110
+11000010100011100101101000001011
+01101111111000001100011010100010
+11000000000000000101101000010011
+11000000000000001101101000010101
+11000000000000010101101000010001
+00100000011000000000000000000000
+01101111111000001100011010100010
+11000000000000000101101000010101
+11000000000000001101101000010111
+11000000000000010101101000010001
+11000000000000011101101000010011
+00100000011000000000000000000000
+01011000000000000000000000000010
+00100000001000000101101000011001
+01011000000000000000000000000100
+00100000001000000101101000011001
+01011000000000000000000000000110
+00100000001000000101101000011001
+01011000000000000000000000001000
+00100000001000000101101000011001
+01100111111000001100100010111000
+01110000010010001010101100000100
+00100000010000000101101001011001
+01110000010010001010100100000001
+00100000001000000101101001100110
+01101111111000001100101011000100
+00100000011110100000000000000000
+01101111111000001100100010111110
+00100000001110100101101000000011
+01100111111000001100100010111101
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101111111000001100100010101011
+00011111111001100111110000000100
+00100100011000101000000000000000
+00100000001000000111110110111100
+01101111111001000100011100001110
+11000100000100011000000000000000
+11000100000000100000000000000000
+01101111111000001100101011000100
+00100000011110100000000000000000
+00100000010000000101101000100100
+00100000011101000000000000000000
+01101111111000001100100010111010
+00100000001110100101101001000111
+01101000010010001100011001001101
+00011000010000001000010000000001
+01100000010010001100011001001101
+01101111111000001100100010110100
+10011000010001100111110000000000
+00100100010000010101101000111111
+01101111111000001100100010110101
+10011000010001100111110000000000
+00100100001000010101101001000011
+01101111111001000100011100001110
+11000010100100100101101010101010
+01101000010010001100100010100101
+00100000001000000101101010110101
+01110000010001100100110100000001
+01101111111000001100100010111010
+00011111111000001111111111111111
+01100111111000001100100010111010
+01101111111001000100011100001110
+11000010100100100101101010111100
+01101000010010001100100010100101
+00100000001000000101101010110110
+01101111111001000100011100001110
+11000010100100010101101001000011
+00100000010000000101101001010010
+00100000001000000101101000110010
+01110000010010001010100000000000
+00100000010000000101101011001110
+01110000010010001010101100000000
+01101111111000001100100010110100
+00011111111000110111111000000000
+01100111111000001100100010110101
+00100000011000000000000000000000
+01101111111000001100100010111001
+01100111111000001100100010111010
+00100000011000000000000000000000
+01101111111000001100100010101011
+11000000000000001101101001011100
+11000000000000010101101001011110
+11000000000000011101101001100000
+01101111111000001100100010110010
+01100111111000001100100010110011
+00100000011000000000000000000000
+01101111111000001100100010101111
+00100000001000000101101001011010
+01101111111000001100100010110000
+00100000001000000101101001011010
+01101111111000001100100010110001
+00100000001000000101101001011010
+01000100110100111100000000010100
+01101111111000001100100010101101
+01100111111000001100100010101110
+01110000010010001010100100000000
+01110000010010001010101000000000
+01110000010010001010100000000001
+00100000011000000000000000000000
+01000100110101000100000000010101
+00100000010000000101101001111100
+01110000010010001010101100000001
+01101111111000001100100010101100
+00100000011110100000000000000000
+01101111111000001100100010110110
+00100000001000000101101001111000
+01000111011010011100000000111010
+01101111111001000100011100001110
+11000100000100001000000000000000
+00100000010000000101101001111100
+01110000010010001010101100000011
+01101111111000001100100010101100
+00100000011110100000000000000000
+01101111111000001100100010110111
+01100111111000001100100010111000
+00100000011000000000000000000000
+01110000010010001010110000000000
+01110000010010001010101100000010
+01000111011010100100000000111010
+01110000010010001011001100001010
+01110000010010001010100000000001
+01110000010010001010100100000001
+00100000001000000101101010101001
+01101111111000001100100010101000
+00100000011110100000000000000000
+01101111111000001100100010101001
+11000000000000001101101010001110
+01101111111000001100100010101110
+00100000001110100101101010001010
+00011111111000001111111111111111
+01100111111000001100100010101110
+00100000001000000101101010101010
+01110000010010001010100000000000
+01110000010010101100010000000001
+00100000010000000101101001010010
+00100000001000000101101010111100
+01000100110101001100000000010101
+01101111111000001100100010101011
+00100000011110100000000000000000
+11000000000000100101101010010110
+00100000001000000101101010010011
+01101111111000001100100010101100
+11000000000000001101101010010110
+00100000001000000101101010011000
+01101111111000001100100010111000
+00100000001110100101101010110111
+11011010011000000100100010110011
+11011010010000000101101010011011
+00100000001000000011011101010101
+01101111111000001100100010101011
+11000000000000100101101010100011
+01101111111000001100100010101100
+11000000000000001101101010100011
+00100000010000000101101001010101
+01101111111000001100100010101010
+11000000000000001101101010111001
+00100000001000000101101010100111
+01101111111000001100100010111000
+00011111111000001111111111111111
+01100111111000001100100010111000
+00100000001000000101101010011111
+01101111111000001100100010101011
+11000000000000100101101011011000
+01110000010010001010101000000001
+01000100110101010100000000010101
+01101111111000001100011001111000
+11000000000000000101101010110000
+11000000000000001101101010110010
+11000000000000010101101010110100
+00100000011000000000000000000000
+01101000010010001100100010100010
+00100000001000000101101010110101
+01101000010010001100100010100011
+00100000001000000101101010110101
+01101000010010001100100010100100
+00100000001000000110111011110001
+00100000001000000110111011101101
+01110000010010001010100000000000
+01110000010010001010101100000000
+01101111111000001100100010101011
+11000000000000100101101011010011
+01110000010010001010101000000000
+01000100110101011100000000010101
+01101111111000001100011001111000
+11000000000000000101101011000010
+11000000000000001101101011000110
+11000000000000010101101011001010
+00100000011000000000000000000000
+01101000010010001100100010100010
+01101111111001000100011100001110
+11000011000100000101101010110110
+00100000001000000110111100000101
+01101000010010001100100010100011
+01101111111001000100011100001110
+11000011000100000101101010110110
+00100000001000000110111100000101
+01101000010010001100100010100100
+01101111111001000100011100001110
+11000011000100000101101010110110
+00100000001000000110111100000101
+00100000010000000101101011000010
+00100000010000000101101011000110
+00100000010000000101101011001010
+00100000010000000101101001000011
+00100000001000000101101011010011
+01110000010010001010101000000000
+01101111111001000100011100001110
+11000010100100101101101010111011
+01101000010010001100100010100110
+00100000001000000101101010110110
+01110000010010001010101000000001
+01101111111001000100011100001110
+11000010100100101101101010101001
+01101000010010001100100010100110
+00100000001000000101101010110101
+01101111111001000100011100001110
+11000100000000100000000000000000
+01101111111000001100011001001101
+01101000010010001100100010110101
+00011111111001100111110000000010
+00100000001000010101101011101001
+01101111111000001100011001111000
+11000000000000000101101011100110
+00100000001000000110100000100000
+01101111111001000100011100001110
+11000011100011000000000000000000
+00100000001000000011011010101010
+01101111111000001100011001111000
+11000000000000000011011010111011
+00100000001000000110100000100010
+01101111111000001000000000001001
+00100000001000000011010110100011
+00100000010000000101101011101100
+00100000001000000011011011001000
+01101111111000010100010100000000
+11000100000001001000000000000000
+01101111111000001100100010000010
+00101111111000000000011000000011
+00100100001000001111110111001010
+00100000010000000011011110100000
+00100000001000000111110111001100
+01000100110101100100000000010101
+00100000010000000011011010010100
+00100100011101000000000000000000
+01110000010001110011101100000001
+00100000010000000011011010011110
+01110000010010001111000100000000
+00100000010000000101101101111111
+01101111111000001100011100110111
+00100100010110100100111001000010
+01101111111001000100010111000110
+00100000001000000011010111111010
+01101111111000001100100011111010
+00100000001110100011010111101110
+00100000010000000011011010010100
+00100100011101000000000000000000
+01101111111000001100100011110001
+01110000010010001111000100000000
+00011111111001100111110000000000
+00100100001000101101101100001111
+01101000010010010100011000111001
+00011000010001100111110000000000
+00100000001000101101101100100010
+01101111111000100100100011100110
+00100000001110100101101100100010
+01101000010010100100100011110110
+00101000010011111111111000011111
+00100000001000001101101100101110
+01101111111000100100100011100110
+10011000010000001111111000000000
+01101000010010100100100011001100
+10011000010001100000010000000000
+01100000010010100100100011110110
+00100100001000010101101100100101
+01101111111000011100011000011111
+10011000010001100111111000000000
+00100100001000010101101100101100
+11011000010000000000011000000000
+10011000010001100111110000000000
+00100100001000010101101100101100
+01110000010010001111000011111010
+00100000010000000111110100100111
+01100000010010100100000010101001
+00100000001000000010010000000110
+00100000010000000101101100101001
+01101111111000011100011000011111
+00100000001000000101101100011110
+00011000010001100000010000000000
+01101111111000011100011000011111
+10011000010000001111111000000000
+00100000001000000101101100011110
+01011000000000000000000000000000
+01100111111000100100100011110110
+00100000011000000000000000000000
+01110000010010001111000100000001
+00100000011000000000000000000000
+11011111111111111111111111111111
+10011000010001100101111000000000
+01101111111000100100100011100110
+10011101111001100111111000000000
+00100000001000000101101100010100
+00100000010000000101101100110101
+00100000001000000101100100010110
+01101111111000001100100011111010
+00100000011110100000000000000000
+01101111111000001100011000101111
+11000000000000001101101101111011
+01101111111000001100100011011111
+00100000001110100101101101111011
+00011011001000100111111000000000
+01101000010010110100100011100000
+01100111111000110100100011100000
+00100000010000000111110100010010
+01100111111000100100100011100110
+01101111111000001100100011110001
+00100100011110100000000000000000
+01101111111000010100011000111001
+00100100011110100000000000000000
+01101111111000100100100011110110
+00100100011110100000000000000000
+01101111111000100100100011100110
+01101000010010100100100011001100
+00011000010000111000010000000000
+10011000010001100111110000000000
+00100000001000010101101101111111
+01101000010010101100100011101010
+10011000010000001111111000000000
+01100111111000101100100011101010
+01101000010010001100100011011111
+01101111111000001100100011101111
+10011000010001100111110000000000
+00100000001000101101101101010101
+00011000010000001000010000000001
+01100000010010001100100011011111
+00100000011000000000000000000000
+01110000010010001101111100000001
+11011000010000000000000000000000
+01101111111000101100100011101010
+01100000010010101100100011101010
+01101000010010001100100011101111
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111010001000000000
+01101111111000100100100011001100
+01101000010010001100100011110000
+10011000010001100000010000000000
+00011010001000100111111000000000
+10011000010001100111111000000000
+00100000001000010101101101101111
+00011111111001100111111000000000
+00011111111010110111111000000000
+01101000010010011100011000011111
+10011000010000001000010000000000
+01000100110101101100000000010101
+01101111111000011100100011011100
+11011010001000000001100000000000
+10011010001000001111111000000000
+10011000010001100111110000000000
+00100100001000010101101101111001
+01100000010010011100011000011111
+00100000011000000000000000000000
+00011111111010110000010000000000
+01101111111000011100011000011111
+10011000010001100000010000000000
+01000100110101110100000000010101
+01101111111000011100100011011100
+11011010001000000001100000000000
+10011010001001100111111000000000
+10011000010001100111110000000000
+00100000001000010101101101111001
+00100000001000000101101101101101
+01100111111000011100011000011111
+00100000011000000000000000000000
+01110000010010001101111100000001
+00011011001000100111111000000000
+01100111111000110100100011100000
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000001100100011011111
+01100111111000101100100011101010
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000100000001100000000000000000
+01110000010001100111011010100101
+00100000011000000000000000000000
+00100000010000000101101110001011
+01101111111000001100011001110110
+11000001101011010000000000000000
+00100000001000000111100011110110
+01000100110101111100000000010101
+01101000010010001000100001001010
+00100000010000000110111011100000
+00100100001000001101101110100100
+01101111111000001100011001110110
+11000001001011010000000000000000
+01110000010001100111011001011010
+01011000000000000000000000000000
+01100111111000010100010111101111
+01100111111000010100010111110101
+01110000010000001001010000000000
+00100000010000000111000100101100
+00100000010000000101100100110110
+00100000010000000101001111000011
+01111000010101011111110000000000
+00100000010000000101001110001101
+01011000000000000101101111010111
+01100111111000010000100000110111
+01101111111000001100101010010101
+01100111111000001000100000111001
+11011000110000000100101010010110
+11011000101000000000100000111010
+11011111001000000000000000001001
+00100000010000000111110011011100
+00100000001000000111100100000010
+01101111111000001100011001110111
+11000001010100101000000000000000
+01110000010001100111011010100101
+01110000000010001110110000000000
+01110000000001101110011100000000
+01110000000010001101111000000000
+01101111111100010000000001010000
+01111001001000000111111000001010
+01100111111100010000000001010000
+01110000010000001001010000000001
+00100000010000000111000100101100
+00100000001000000101100000000001
+01101111111100001000110000000001
+01100111111000001100011001110101
+11000100000000111000000000000000
+00100000010000000101101111000010
+00100100011101000000000000000000
+00100000010000000100111100100110
+00100100011101000000000000000000
+01101111111100001000110000100101
+11000011100000010000000000000000
+00100000001000000101101110111010
+01101111111100001000110000000001
+11000100000000111000000000000000
+01000100110110000100000000010110
+01101111111001000100011100001110
+11000011000010100110100001010110
+01101111111000001100011100101011
+11000000000000001110100001011011
+00100000001000000110100001010110
+00100000010000000111110110111110
+01101000010010100100011101001011
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010101101111010001
+00011111111000100010010000000000
+01101111111000100100011101001011
+01101000010010001100011001110100
+10011000010000001000010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01111001001111111111111000011100
+01100111111000100100011101001011
+00100000001000000111110110111100
+00100000011000101000000000000000
+01111001001000000111111000011100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000100100011101001011
+00100000011000000000000000000000
+01000100110110001100000000010110
+00100000010000000101101111100001
+00100000010000000101101111101010
+00100000010000000101101111100110
+01101111111000001100101010011111
+00100000011110100000000000000000
+11011000110000000100101010011111
+11011000101000000000011111111011
+11011111001000000000000000011110
+00100000001000000111110011011100
+01110000010001100111011111000000
+01101111111001000100011100001110
+11000100000010100000000000000000
+01110000010001100111011101011010
+00100000011000000000000000000000
+00100000010000000111100101010110
+00100000010000000011110100100000
+01101111111000001100011001110111
+00100000001000000011110100101010
+00100000010000000101101111010100
+01101111111001000100011100001110
+11000010100011101101101111110001
+11000010100011110101101111110011
+11000010100011111101101111110101
+01110000010001100111010000100000
+00100000011000000000000000000000
+01110000010001100111010000010000
+00100000011000000000000000000000
+01110000010001100111010000001000
+00100000011000000000000000000000
+01110000010001100111010000000100
+00100000011000000000000000000000
+01011000000000000101101111111010
+01100111111000010100001111100100
+00100000011000000000000000000000
+00100000010000000101101111111100
+00100000011000000000000000000000
+01000100110110010100000000010110
+11011010001000000000000000000000
+01101000010010100100100111110010
+00011100010000100010010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100010000010111011111110100
+00011010010000100111111000000000
+00011000010000001000010000001000
+10011000010001100111110000000000
+00100100001000010101110000001110
+00011010001000001010001000000001
+00011010001000010111111000001111
+00100100001110100101110000000011
+11011010001000000000000000000000
+00100000010000000101110000010011
+01100100010000100100100111110010
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00011000010000001000010111111000
+01111001001111111000010000011100
+01100000010010100100100111110010
+01100111111000001100100111110110
+01101111111000001100100111110110
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100100111110110
+01101111111000010100100111110111
+00100000010000000111110101111011
+00100000001000000101110000010100
+01000100110110011100000000010110
+01101111111000001100100111111011
+00100000011110100000000000000000
+01110000010010100000000000000000
+01110000010010100001011100000000
+00100000010000000101110100001010
+00100000010000000101110010100011
+01101111111000001100101000100010
+00100100011110100000000000000000
+00100000010000000101110100011011
+00100000010000000010001111100001
+01000100110110100100000000010110
+00100000010000000101110000101100
+00100000010000000101110000110010
+00100000010000000101110000111111
+00100000010000000101110001110111
+00100000001000000101110001111010
+11011010001000000100101000001101
+01101111111000001100101000000000
+10011010001000001010001000000000
+01100010001000010100100111111101
+11101000010000001000000000010001
+00100000001000000110111011110001
+01101111111000001100100111111011
+00100000011110100000000000000000
+01101000010010001100101000000000
+10011000010001100111111000000000
+10011000000000000111001000000000
+11011010001000000100101000000011
+01101111111000001100101000000000
+10011010001000001010001000000000
+11101111111000001000000000010001
+00100000010000000101110011110011
+00011010001000001010001000000001
+11000010000000000101110000111010
+00100000011000000000000000000000
+01110000010010011111111100000000
+01101111111000001100100111111011
+01101000010010001100101000000000
+10011000010001100111111000000000
+01100111111000001100101000011001
+11011010001000000100101000000011
+01101111111000001100101000000000
+10011010001000001010001000000000
+11101000010000001000000000010001
+01100000010010001100101001101101
+00100000010000000101110011100100
+00100100011101000000000000000000
+00100000010000001101110001011100
+00011010001000001010001000000001
+01101111111000001100100111111111
+00011111111000001111111000000001
+01100111111000001100100111111111
+01101000010010001100101000010111
+00011000010000001000010000000001
+01100000010010001100101000010111
+01101000010010001100101000011001
+10011000010001100111110000000000
+00100100001000010101110001000111
+01101111111000010100101000000001
+00100000011110100000000000000000
+01100111111000010100101001100111
+01011000000000000000000000000000
+01100111111000010100101000000001
+00100000011000000000000000000000
+01100010001000010100101001100101
+01101111111000001100100111111111
+00011111111000100000111000000000
+01101000010010001100101000000001
+11111001001000000000010000000000
+01100000010010001100101000000001
+01101111111000001100101000000000
+00011111111000100000111000000000
+01101000010010001100101000000010
+11111001001000000000010000000000
+01100000010010001100101000000010
+00100000010000000101110001101010
+01101010001000010100101001100101
+00100000011000000000000000000000
+01101000010010010100101000000001
+11011010001000000100101000100011
+11101111111000010000000000010001
+00100000011110100000000000000000
+10011000010001100111110000000000
+00100000010000101101110001110010
+00011010001000001010001000000010
+00100000001000000101110001101100
+01101000111000001100101000010111
+01101111111001000100101001010101
+11111001001000000111111000000000
+01100111111001000100101001010101
+00100000011000000000000000000000
+01101111111000010100100111111101
+11101111111000001000000000111111
+00100000001000000101110011110011
+01101111111000001100101000000000
+00011111111000001111111000000001
+01100111111000001100101000000000
+01101000010010001100100111111100
+10011000010001100111110000000000
+00100100001000010101110000100110
+01101111111000010100101001100111
+00100000001110100101110010001110
+01100111111000010100101000011100
+01101111111000001100101000011110
+00100100001110100101110010100000
+01101111111000001100101000011011
+11000001000000001000000000000000
+01110000010010100001101100000001
+01110000010010100001111000000001
+01000100110110101100000000010110
+00100000010000000101110010011100
+01101111111000010100010100000000
+11000011100001011000000000000000
+00100000001000000101110110110111
+01101111111000001100101000011011
+11000001000000000000000000000000
+01110000010010100001101100000000
+01101111111000010100010100000000
+11000010100001011101110010010110
+01101111111000001000110110100000
+00100100001110100101110010010110
+00100000010000000101110110111001
+01011000000000000000000000000000
+01100111111001000100101001010101
+01100111111000001100101000011110
+01110000010010100001111100000000
+11011010011000000100101111101111
+00100000001000000110000110001110
+00100000010000000101110101001100
+01011000000000000000000000000000
+01100111111000010100101000011100
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010100101001100111
+00100000011000000000000000000000
+11011010001000000000000000000000
+11011010010000000000000000000000
+00011000000000000111000000000000
+01101111111000001100101000011000
+10011000000000000111001000000000
+11011010011000000100101000001101
+00100000010000000101110100001011
+00100000010000000101110100010000
+11101111111000001000000000010011
+00100000010000000101110011110011
+00100000010000000101110100010010
+00100000010000000101110100001101
+11101000010000001000000000010011
+01100000010010001100101001101101
+00100000010000000101110011100100
+00100100011101000000000000000000
+00011010010000100000111000000000
+00100000010000001101110011011100
+00100100010000001101110011011110
+00011010011000001010011000000001
+00011010010000001010010000000001
+11000010000000000101110010101001
+00011010001000100111111000000000
+00100000001110100101110011000101
+01100111111000001100101000100001
+01101111111000001100101000011010
+11000001000000001000000000000000
+01110000010010100001101000000001
+01110000010010100010001000000001
+01000100110110110100000000010110
+00100000010000000101110011001111
+01101111111000010100010100000000
+11000011100001011000000000000000
+00100000001000000101110110110111
+01101111111000001100101000011010
+11000001000000000000000000000000
+01110000010010100001101000000000
+01101111111000010100010100000000
+11000010100001011101110011001101
+01101111111000001000110110100000
+00100100001110100101110011001101
+00100000010000000101110110111001
+01110000010010100010001000000000
+00100000001000000101110010011001
+00100000010000000101110011010010
+01110000010010100010000100000000
+00100000011000000000000000000000
+01101000010010001100101000100001
+11011010001000000100101001001011
+11011010010000000000000000000000
+11101111111000001000000000010001
+00100000011110100000000000000000
+10011000010001100111110000000000
+00100000001000101101110100111111
+00011010001000001010001000000001
+00011010010000001010010000000001
+00100000001000000101110011010101
+11111001001000000010001000000000
+00100000011000000000000000000000
+11111001001111111010001000000000
+00100000011000000000000000000000
+01110000010010100110101100000001
+00100000011000000000000000000000
+01110000010010100110110000000001
+00100000011000000000000000000000
+00100000010000000111110110111110
+01110000010010100110101100000000
+01110000010010100110110000000000
+01101000010010001100101001101101
+00100000010000000110111011100000
+00100000010000001101110011100000
+00100000000000000000010010110000
+01101000010010001100101001101101
+00100000010000000110111011100000
+00100000010000001101110011100010
+01101111111000001100101001101011
+01101000010010001100101001101100
+10011000010001100111110000000000
+00100100011000101000000000000000
+00100000001000000111110110111100
+01100111111000001100101001101110
+00100000010000000101110100000111
+01101111111000001100101001101110
+11011010011000000000000000000001
+00011111111001101111110000000010
+00100000010000000111110101100100
+00011000000001111000010000000000
+00011000000001110111111000000000
+00100100010110100101110100000101
+00011000010000100111111000000000
+11011000101000001000000101001101
+00110111110110011000001000000000
+00110111110110011000001000000000
+10011000101000001000101000000000
+11101111111000001000000000000101
+10011010011000011111111000000000
+11100111111000001000000000000101
+00100000001000000010001111000100
+11011010011000000000000000010000
+00100000011000000000000000000000
+00011111111000011111111010000000
+11011000010000000000000000000000
+00100000001000000110111100011100
+00100000001000000110111101001110
+00011010011000100111111000000000
+00100000001000000101110100010101
+00100000010000000101110100011000
+00011111111000100010011000000000
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000001000000101110100010101
+00100000010000000101110100011000
+00011111111000100010001000000000
+00100000011000000000000000000000
+00011111000000001111000000000001
+00011111111000100101111000000000
+00100000011000000000000000000000
+00011101111000100111111000000000
+00011111000000001111000111111111
+00100000011000000000000000000000
+00100000010000000101110100100001
+00100000010000000101110100100100
+00100000010000000101110100001010
+01011000000000000000000011110000
+01100111111100001000000101000001
+00100000001000000010001111000100
+01101111111000001100101000011000
+11011010001000000100101000001101
+00100000001000000101110100101000
+01101010010000001100101000100000
+01101111111000001100101000011000
+11011010001000000100101000001101
+00100000001000000101110100101110
+00011111111000100111001000000000
+11101000010000001000000000010001
+00100000010000000110111100001011
+00011010001000001010001000000001
+11000010000000000101110100101001
+00100000011000000000000000000000
+00011111111000100111001000000000
+11101000010000001000000000010001
+00011000010000110111111000000000
+11011000101000000000000000010110
+10011000101000001000101000000000
+00100000010000000101110100111010
+11101000010000001000000000000101
+10011000010000011111111000000000
+11100111111000001000000000000101
+00011010001000001010001000000001
+11000010000000000101110100101111
+00100000011000000000000000000000
+00011010010000100111111000000000
+00101000010011000000000000000000
+00100000011000001000000000000000
+00011111111100100111111000000000
+00100000011000000000000000000000
+01000100110110111100000000010110
+00011010010000100111111000000000
+01101000010010001100110000000111
+10011000010000001111111000000000
+11011010011000000100101111110010
+10011010011000001010011000000000
+11101111111000001000000000010011
+01100111111000001100101000011111
+00011111111000001111111111111111
+00011111111011111111111000000011
+11011010011000000100101110110000
+10011010011000001010011000000000
+00100000001000000101110101011001
+01101000010010010100101000011100
+11011010001000000100101000100011
+11011010010000000000000000000000
+11101111111000010000000000010001
+00100000011110100000000000000000
+10011000010001100111110000000000
+00100000001000101101110101010110
+00011010001000001010001000000010
+00011010010000001010010000000001
+00100000001000000101110101001111
+01000100110111000100000000010111
+00011010010000100111111000000000
+00100000001000000101110101000011
+01000100110111001100000000010111
+01101111111000001100110000001011
+00100100001110100101110101011110
+00100000010000000101110101100001
+00100000001000000110000110001110
+01101111111000001100110000001001
+00100000011110100000000000000000
+00100000001000000101110101011100
+11101111111000001000000000010011
+00011010011000001010011000000001
+11000000000000000101110101101000
+11000000000000001101110101101010
+11000000000000010101110101101100
+11000000000000011101110101101110
+00100000011000000000000000000000
+01110000010010100110111100000000
+00100000011000000000000000000000
+01110000010010100110111100000001
+00100000011000000000000000000000
+01110000010010100110111100000010
+00100000011000000000000000000000
+01110000010010100110111100000011
+00100000011000000000000000000000
+01000100110111010100000000010111
+00100000010000000110000110100010
+00100100011101000000000000000000
+01100111111000001100110000001000
+01101111111000001100101000011111
+00100000010110100101111000000101
+01101111111000010100010100000000
+11000011000001001101110101111110
+01101111111000001100101001101111
+11000000000000000101110110001000
+11000000000000001101110110011100
+11000000000000010101110110101001
+11000000000000011101110101111110
+00100000011000000000000000000000
+01101111111000001100101000011111
+11000000000000000101111000000101
+01101111111000001100110000001000
+00011111111000001111111111111111
+00011111111011111111111000000011
+11011000010000000100101110000000
+10011000010000001000110000000000
+11101111111000010000000000000110
+11101000010000001000000000000110
+00100000001000000101111000000001
+00100000010000000010101000000110
+00100100011110100000000000000000
+01101111111000001100110000001000
+00011111111000001111111111111111
+00011111111011111111111000000011
+11011000010000000100101100010000
+10011000010000001000110000000000
+11011111001000000000000000000011
+11011000101000000000011001001110
+00100000010000000111110011011100
+01110000010011000000101000000011
+01101000010010010100110000001110
+01101111111000001100110000001001
+00100000011110100000000000000000
+01101010001000001100110000001010
+00100000010000000010110111001100
+01101000010010001100110000001010
+00011000010000100111001000000000
+11011000110000000000011001001110
+00100000001000000111110011011100
+00100000010000000010101000000110
+00100100011110100000000000000000
+01101111111000001100110000001000
+00011111111000001111111111111111
+00011111111011111111111000000100
+11011000010000000100101101000000
+10011000010000001000110000000000
+11011111001000000000000000000100
+11011000101000000000011001001110
+00100000010000000111110011011100
+01110000010011000000101000000100
+01101000010010010100110000010010
+00100000001000000101110110010100
+00100000010000000010101000000110
+00100100011110100000000000000000
+01101111111000001100110000001000
+00011111111000001111111111111111
+00011111111011111111111000001010
+11011000010000000100101001110000
+10011000010000001000110000000000
+11101111111000010000000000000110
+11011111001000000000000000001000
+11011000101000000000011001001110
+00100000010000000111110011011100
+01110000010011000000101000001000
+01101000010010010100110000001100
+00100000001000000101110110010100
+11011010001000000000000000000000
+00100000001000000111011110101000
+11011010001000000000000000000000
+00100000001000000111011110101101
+01100111111000010000110110010110
+01100000010010001000110110011000
+00011000000000000111000000000000
+00100000010000000101110111001101
+00100000010000000101110111011001
+01101111111000001000110110010110
+00100000010000000101110111100101
+01101111111000001000110110010111
+00100000010000000101110111100101
+01101111111000001000110110011000
+00100000010000000101110111100101
+01101111111000001000110110011000
+00011111111001000111111000000000
+00100000010000000101110111100101
+01011000000000000000001000111010
+00100000010000000101110111011110
+01011000000000000000000000000001
+00100000001000000101110111011100
+01011000000000000000000000000000
+00100000010000000111000010111100
+00100000010000000111000100000011
+00100000010000000101110111010011
+01101111111000001100111000110011
+00100000001000000111000100000000
+11011010001000000000000010011101
+11011010010000000000000010011101
+11011111111000000000000000000000
+00100000010000000111000011011110
+01110000100000001001101000000000
+00100000011000000000000000000000
+01011000000000000010001100101000
+00100000010000000101110111011110
+01011000000000000001000110010100
+01110000100000001001101000000000
+00100000001000000101110111100000
+01110000100000001001101000000001
+00100000001000000101110111100000
+00100000011110100000000000000000
+00011111111000001111111111111111
+00100000000000000000000000001000
+00100100001110100101110111100001
+00100000011000000000000000000000
+11011111001000000000000000001000
+00100000010000000101110100010101
+00100000010000000101110111101100
+00100000010000000101110100011000
+00011111111000110111111000000000
+11000010000000000101110111100110
+00100000011000000000000000000000
+11000011000000000101110111101111
+11000010100000000101110111110010
+00100000011000000000000000000000
+11011010001000000000001000111010
+11011010010000000000001000100110
+00100000001000000101110111110101
+11011010001000000000001000111010
+11011010010000000000011010010000
+00100000001000000101110111110101
+00011010001000100111111000000000
+00100000010000000101110111011110
+00011010010000100111111000000000
+00100000001000000101110111011100
+01011000000000000010001100101000
+00100000010000000101110111011110
+01011000000000000000100011001010
+00100000010000000101110111011100
+01011000000000000000001000110000
+00100000010000000101110111011110
+01011000000000000000000000000001
+00100000001000000101110111011100
+00100000010000000101110110111011
+00100000010000000101111000001100
+01110000000011011001010000010000
+00100000011000000000000000000000
+00100000010000000101111000010000
+00100000010000000111000100000011
+01101111111000001100111000110011
+11011000010000000000000000111110
+00100000001000000110111100011101
+11011000010000000000000000111111
+00100000001000000110111100011101
+01011000000000000000000000101011
+01100111111000001000110110010101
+01100111111000001000110110010100
+00100000011000000000000000000000
+01011000000000000000000000000000
+00100000001000000101111000001101
+01101111111100010000000100100000
+01101000010110010000000001100110
+10011000010001100111111000000000
+00100100001000010101111000010111
+00100000011000000000000000000000
+01101000010110010000000100100000
+01101111111100010000000001100110
+10011000010001100000010000000000
+01011000000000000000000100000000
+10011000010001100111111000000000
+00100000011000000000000000000000
+01101111111100010000000001100110
+11101000010000011000000000111111
+01100000010010001000110111010010
+00011000010011001000010000000000
+01100000010010001000110111010011
+00011000010011001000010000000000
+01100000010010001000110111010100
+01101111111000001000110111010010
+00011111111000010111111010000000
+11000000110000000101111000101000
+00100000001000000101111000110011
+01101111111000001000110111010010
+01100111111000001000110111010101
+01101111111100010000000001100110
+01101000010110010000000001100100
+10011000010001100111111000000000
+00100000001000010101111001011011
+01101111111100010000000001100110
+00011111111000001111111000000001
+01100111111100010000000001100110
+01110000000011011101100000000001
+00100000011000000000000000000000
+01101111111000001000110111010100
+00011111111000010111111010000000
+11000000010000000101111001000110
+01101111111000001000110111010011
+00011111111011010111111000000000
+00011111111000110111111000000000
+01101000010010001000110111010010
+00011000010000010000010001111111
+10011000010000011111111000000000
+01100111111000010000110111010101
+01101111111100010000000001100110
+01101000010110010000000001100100
+10011000010001100111111000000000
+00100000001000010101111001011011
+01101111111100010000000001100110
+00011111111000001111111000000010
+01100111111100010000000001100110
+01110000000011011101100000000010
+00100000011000000000000000000000
+01101111111000001000110111010100
+00011111111000010111111001111111
+00011111111100000111111000000000
+00011111111000110010001000000000
+01101111111000001000110111010011
+00011111111011010111111000000000
+00011111111000110111111000000000
+01101000010010001000110111010010
+00011000010000010000010001111111
+10011000010000011111111000000000
+10011010001000011111111000000000
+01100111111000011000110111010101
+01101111111100010000000001100110
+01101000010110010000000001100100
+10011000010001100111111000000000
+00100000001000010101111001011011
+01101111111100010000000001100110
+00011111111000001111111000000011
+01100111111100010000000001100110
+01110000000011011101100000000011
+00100000011000000000000000000000
+11011000010000000000101010001000
+10011000010000001111111000000000
+01100111111100010000000001100110
+00100000011000000000000000000000
+01011000000000000000101110001000
+01100111111000010000110111001100
+01100111111000010000110111010000
+00100000011000000000000000000000
+00100000010000000101111001101100
+01101111111000001000110111010101
+01101000010010010000110111011100
+10011000010000001111111000000000
+01100111111000010000110111011100
+01011000000000000000000000000000
+01100111111000011000110111010101
+01100111111000001000110111011000
+00100000011000000000000000000000
+01101111111000001000110110110111
+00011111111001100111110000010100
+00100000011000101000000000000000
+00011111111000001111111000000001
+01100111111000001000110110110111
+01101111111000001000110111010101
+01101000010010010000110110110101
+11100111111000001000000000000010
+00011000010000001000010000000001
+01100000010010010000110110110101
+00100000011000000000000000000000
+01101111111100100000000100000000
+01101000010010100000110111011110
+10011000010001100111111000000000
+00100000011000000000000000000000
+01101000010010100000110111100110
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101111111100100000000100000000
+01100111111000100000110111011110
+01011000000000000000001001101100
+01100111111000100000110111100110
+00100000011000000000000000000000
+01101111111000001000110110010011
+00100000011110100000000000000000
+00011111111011111111111000000100
+00011111111000001111111111110110
+00011111111000100111001000000000
+01100111111000001000110010010000
+11011000110000000000101110001000
+00011000110000001000110000000110
+11011000101000000000110010010011
+00100000001000000111110011011100
+01110000010011011011010100101000
+01101111111000010100110111110010
+01100111111000010100110110110110
+01011000000000000000101000100100
+01100111111000010100110110111000
+01101111111000100100110110101101
+01100111111000100100110111000000
+01101111111000100100110110110001
+01100111111000100100110111000100
+01101111111000001100110111000100
+00011111111010111111111000000000
+11011000010000000100110001001001
+10011000010000001000010000000000
+11101111111000100000000000000010
+01100111111000100100110110111100
+01110000010011011101000000000001
+00100000010000000101111100111100
+01101111111000100100110111010001
+01101000010010100100110111000000
+10011000010001100111111000000000
+01100111111000100100110111011001
+00100000010000000101111011010111
+00100000010000000101111011011110
+01110000010011011011101100000000
+01101111111000100100110110111100
+00011111111010010111111000000000
+01100111111000100100110111001000
+00100000010000000101111011100101
+01101111111000100100110110111100
+00011111111000110111111000000000
+01100111111000100100110110111100
+00100000010000000101111011110011
+01101111111000100100110110111100
+00011111111000110111111000000000
+01100111111000100100110110111100
+00100000010000000101111011111011
+00100000010000000101111100000011
+00100000010000000101111100001110
+01101111111000001100110110111011
+01101000010010001100110110111010
+10011000010000011111111000000000
+01100111111000001100110110111011
+01101111111000001100110110111011
+11011000010000000100110000111001
+10011000010000001000010000000000
+11101111111000001000000000000010
+00100000010000000101111101001001
+01101000010010100100110111000100
+10011000010000001111111000000000
+01100111111000100100110111000100
+00100000010000000101111100011011
+00100000010000000101111100100000
+01101111111000100100110111000100
+00011111111010111111111000000000
+11011000010000000100110001001001
+10011000010000001000010000000000
+11101111111000100000000000000010
+01100111111000100100110110111100
+00100000010000000101111100101010
+01101111111000001100110111010000
+11011000010000000000000000000001
+10011000010000101111111000000000
+01100111111000001100110111010000
+01101111111000001100110110110101
+00011111111000001111111111111111
+01100111111000001100110110110101
+00100100001110100101111010011101
+01101111111000001100110111010000
+00100000010110100101111100111010
+01101111111000100100110111000000
+01100111111000100100110110101101
+01101111111000100100110111000100
+01100111111000100100110110110001
+00100000011000000000000000000000
+01101111111000100100110111011001
+11000010100011111101111011011100
+01011000000000000000000000000000
+01100111111000001100110110111010
+00100000011000000000000000000000
+01011000000000000000000000001000
+00100000001000000101111011011010
+01101111111000001100110110111010
+00100100001110100101111011100001
+00100000011000000000000000000000
+01101111111000100100110111011001
+00011111111001100111111000000000
+01100111111000100100110111011001
+00100000011000000000000000000000
+01101111111000100100110111011001
+01101000010010100100110110111100
+10011000010001100111111000000000
+11000011100011111000000000000000
+01110000010011011011101100000100
+01101111111000100100110111011001
+01101000010010100100110110111100
+10011000010001100111111000000000
+01100111111000100100110111011001
+01101111111000100100110111001000
+01101000010010100100110110111100
+10011000010000001111111000000000
+01100111111000100100110111001000
+00100000011000000000000000000000
+01101111111000100100110111011001
+01101000010010100100110110111100
+10011000010001100111111000000000
+11000011100011111000000000000000
+01101111111000001100110110111011
+00011111111000011111111000000010
+01100111111000001100110110111011
+00100000001000000101111011101010
+01101111111000100100110111011001
+01101000010010100100110110111100
+10011000010001100111111000000000
+11000011100011111000000000000000
+01101111111000001100110110111011
+00011111111000011111111000000001
+01100111111000001100110110111011
+00100000001000000101111011101110
+01101111111000001100110110111010
+00100000001110100101111100001010
+01101111111000100100110111000000
+01101000010010100100110111001000
+10011000010001100111111000000000
+01100111111000100100110111000000
+00100000011000000000000000000000
+01101111111000100100110111000000
+01101000010010100100110111001000
+10011000010000001111111000000000
+00100000001000000101111100001000
+01101111111000100100110111000000
+11011000010000000111111111111111
+10011000010001100111111000000000
+11000011000011111101111100010111
+01101111111000100100110111000000
+11011000010111111000000000000001
+10011000010001100111111000000000
+11000010100011111101111100011001
+00100000011000000000000000000000
+01011000000000000111111111111111
+00100000001000000101111100001000
+01011111111111111000000000000001
+00100000001000000101111100001000
+01101111111000100100110111000100
+11011000010000000000000000000000
+10011000010001100111111000000000
+11000010100011111101111100100101
+00100000011000000000000000000000
+01101111111000100100110111000100
+11011000010000000000000001011000
+10011000010001100111111000000000
+11000011000011111101111100101000
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000100100110111000100
+00100000011000000000000000000000
+01011000000000000000000001011000
+00100000001000000101111100100110
+01101111111000001100110111010000
+00100000001110100101111100110000
+01101111111000001100110110111011
+00011111111000010111111000001111
+01100111111000100100110111010101
+00100000011000000000000000000000
+01101111111000001100110110111011
+00011111111100100111111000000000
+00011111111000010111111011110000
+01101000010010100100110111010101
+10011000010000011111111000000000
+01101000010010010100110110111000
+11100111111000001000000000000010
+00011000010000001000010000000001
+01100000010010010100110110111000
+00100000011000000000000000000000
+01101111111000100100110111010101
+00100000001000000101111100110101
+01101000010010010100110110110110
+11101111111000010000000000000010
+00011000010000001000010000000010
+01100000010010010100110110110110
+00100000010000000101111101000011
+01100111111000100100110111010001
+00100000011000000000000000000000
+11000010100001111101111101000101
+00100000011000000000000000000000
+11011000010000001111111111111111
+00011000010100000000010000000000
+10011000010000101111111000000000
+00100000011000000000000000000000
+11000010100000111101111101001011
+00100000011000000000000000000000
+11011000010111111111111111111111
+00011000010011010000010000000000
+00100000001000000101111101000111
+11011010001000000000000000010100
+01101000010010010100110111110100
+00100000010000000010110111001100
+11011000110000000100110111011110
+11011111001000000000000000010100
+00100000001000000111110011011100
+01110000000001100100111000000001
+01110000010011000000101000000001
+01101000010010010100110111111000
+00100000001000000101110110010100
+01110000000001100100111000000000
+00100000001000000101111101010101
+11011010001000000000000000010100
+01101000010010010100110111110110
+00100000001000000101111101010000
+01011000000000000000001000100001
+01100111111000011000011001001110
+01110000010011000000101000000011
+01101000010010010100110111111010
+00100000001000000101110110010100
+01011000000000001100110011001100
+00100000001000000101111101011110
+01000100110111011100000000010111
+00011010001000100000110000000000
+11101111111000001000000000000110
+11000001110111010000000000000000
+11101111111000001000000000000110
+01100111111000001100111001010001
+11000000000010000101111101110111
+11000000000010001101111101111111
+11000000000010101101111110000110
+11000000000010110101111110110010
+11000000000010111101111110111111
+11000000000011000101111111001101
+01011111111111111111111111111111
+01100111111000010100111000110101
+01011000000000000000000000000000
+01100111111000100100111001000011
+01100111111000010100111000110111
+01110000010011100101001000000000
+00100000011000000000000000000000
+11011010001000000000000000000101
+00100000010000000101111111000100
+01101111111000010100111001001000
+11100111111000010000000000000101
+01110000010011100110010100000001
+01101111111001000100111001011100
+01100111111001000100001011010101
+00100000001000000010111001110001
+11011010001000000000000000000111
+00100000010000000101111111000100
+01101111111000010100111001001010
+11100111111000010000000000000101
+01101111111000010100111001001100
+11100111111000010000000000000101
+00100000011000000000000000000000
+11101111111000001000000000000110
+01100111111000001100111001000111
+11000000000000000101111110010010
+11011010001000000000000000000100
+01110000010011100101001000000011
+00100000010000000101111111000101
+01101111111000001100111001000111
+00100000001000000111110111001110
+11011010001000000000000000000100
+00100000010000000101111111000100
+01101111111000001100111001000111
+00100000001000000111110111001110
+00100000010000000101111110001110
+00100000010000000101111101110000
+01011000000000000000000000000000
+01100111111000011100111001101011
+01110000010011100110011000000001
+01011000000000000000000000000000
+11011000010000000000000000010000
+11011010001000000000110010001100
+00100000010000000110110001000011
+00100000010000000101111110101000
+01101010001000011100111001101000
+11011111001000000000000000001001
+00011000000000000111000000000000
+00100000010000000110000010001110
+01100010001000011100010000110000
+00100000010000000110000010011111
+00100000010000000110101111101110
+00100000010000000110000010100001
+01011000000000000001000000000000
+10011010001000001010001000000000
+11000010000000000101111110011111
+00100000011000000000000000000000
+01000111011110001100000000111110
+01101000010010011100111001110101
+01100000010010011100111001101000
+01100000010010011100111001000000
+01101111111000001000110010001100
+11000001001100000000000000000000
+01101000010010011100111001110010
+01100000010010011100111001101000
+01100000010010011100111001000000
+00100000011000000000000000000000
+01101000010010010100001100110111
+00011000010000001000010111111000
+01101111111000010100111000110111
+10011000010000001111111000000000
+01100111111000010100111000110111
+00011000010000100111001000000000
+00011010001000100000110000000000
+00011000110000001000110000000101
+00100000010000000110000001010010
+01101111111000010100111000110101
+00011111111000001111111000000001
+01100111111000010100111000110101
+00100000011000000000000000000000
+00100000010000000101111110110010
+01110000010011100101001000000000
+01110000010011100101000100010111
+11011010001000000000000000000011
+00100000001000000101111111000101
+01110000010011100101001000000000
+01101000010010010100111001001111
+00100000010000000010110111001100
+01011000000000000000000010101011
+11100111111000001000000000000101
+01101111111000001100111001010010
+11100111111000001000000000000101
+01101111111000001100111001010001
+00100000001000000111110111001110
+00011000000000000111000000000000
+00100000010000000110000010010111
+00100000010000000101111111110010
+01110000010011100110011000000000
+01011000000000000000000000000000
+01100111111000011100111001101011
+01100111111000100100111001000011
+00100000010000000110000000000111
+00100000010000000110000010011001
+00011000110000001000110000000001
+11101111111000100000000000000110
+01100111111000100000011001001110
+11101111111000100000000000000110
+01100111111000100000011001010010
+01101111111000100000011001001110
+01101000010010100100111000110111
+10011000010001100111110000000000
+00100100001000101101111111101110
+01101111111000100100111001000011
+01101000010010100000011001010010
+10011000010001100111110000000000
+00100100001000101101111111110000
+00100000010000000110000001110000
+01110000010011100110010000000010
+11011010001000000000000000001100
+00100000010000000101111111000101
+01101111111000001100111001000111
+11100111111000001000000000000101
+01101111111000100100111000110111
+11100111111000100000000000000101
+01101111111000100100111001000011
+11100111111000100000000000000101
+00100000011000000000000000000000
+01110000010011100101001000000101
+00100000001000000101111111100101
+01110000010011100101001000000111
+00100000011000000000000000000000
+01101111111000001100111001100110
+00100000011110100000000000000000
+00100000010000000110000000000001
+00100000011000010000000000000000
+01101000010010010100111001101110
+00100000010000000110000010100111
+00011000010000100111001000000000
+11011000101000000000110010001100
+00100000010000000110000001100001
+00100000010000000110000010001110
+00100000010000000110000010101001
+00100000010000000110000010100111
+00100000010000000110000001000001
+00100000010000000110000010101001
+00100000001000000110000000111101
+01101111111000010100111001101110
+11011000010000000000000100000000
+10011000010001100111110000000000
+00100000011000000000000000000000
+11011111001000000000000100000000
+00100000001000000110000000010111
+01101111111000010100111000110111
+01101000010010010100111001101011
+10011000010001100111111000000000
+00100000011000101000000000000000
+00100000010000000101110100010101
+00100000010000000110000000011101
+00100000010000000101110100011000
+00100000010000000110000000010011
+01101111111000100100111001000011
+10011000010000001111111000000000
+01100111111000100100111001000011
+00100000001000000110000000000111
+11011000010000000000000100000000
+10011000010001100111110000000000
+00100000001000010110000000000101
+00011111111000100111001000000000
+11011000110000000000110010001100
+11011000010000000000000000000000
+11101111111000001000000000000110
+10011000010000001000010000000000
+11000010000000000110000000011001
+00100000011000000000000000000000
+11011000010000000000000100000000
+10011000010001100111110000000000
+00100000001000010110000000101011
+00100000010000000101110100010101
+00011111111000100111001000000000
+00100000010000000110000000100110
+00100000010000000101110100011000
+00011111111000100000010000000000
+00100000001000000110000000111101
+01101111111000011100111001101000
+01101010010000011100111001101011
+10011010010000001111111000000000
+11011010001000000000110010001100
+00100000001000000110110001000011
+11011000010000000000000100000000
+00100000010000000110000000100110
+11011000010000000000000100000000
+00100000001000000110000000111101
+01101111111000001100111001100110
+00100100010110100110000000110010
+00100000011000000000000000000000
+01101111111000001100111001100110
+00100000011110100000000000000000
+00100000010000000110000000000001
+00100100011000010000000000000000
+11011111001000000000000100000000
+11011000101000000000110010001100
+00100000010000000110000001100001
+00100000010000000110000010001110
+11011000010000000000000100000000
+00100000010000000110000001000001
+11011000010000000000000100000000
+01101111111000010100111001101011
+10011000010000001111111000000000
+01100111111000010100111001101011
+00100000011000000000000000000000
+01101111111000011100111001101000
+01101010010000011100111001101011
+10011010010000001111111000000000
+11011010001000000000110010001100
+00100000001000000110110000101001
+01011000000000000000011011101111
+01101000010010010100111001110000
+00011000010000001000010111111111
+00011111111000100000101000000000
+00011000101000001000101111111000
+11100111111000010000000000000101
+10011000010000001111111000000000
+11100111111000010000000000000101
+10011000010001100111111000000000
+11100111111000010000000000000101
+11100111111000010000000000000101
+00100000011000000000000000000000
+00100000010000000110000010010111
+01000100110111100100000000010111
+01101111111000010100111001101110
+10011111001000001111111000000000
+01100111111000010100111001101110
+01011000000000000000011011101111
+00100000010000000110000010101100
+00100000010000000110000010011001
+00100000010000000110000011000000
+01101111111000010100111001101110
+01101000010010010100111001110000
+10011000010001100111110000000000
+00100000010000010110000001100000
+00100000011000000000000000000000
+00100000011000000000000000000000
+00100000010000000110000010011011
+01101111111000010100111001101110
+10011111001001100111111000000000
+01100111111000010100111001101110
+01011000000000000000011011101111
+00100000010000000110000010110110
+00100000010000000110000010011101
+00011000011000100111111000000000
+10011000010001100111110000000000
+00100000001000101010001100111110
+11101111111000001000000000000011
+11100111111000001000000000000101
+11000010000000000110000001101011
+11100000011000010000000000010001
+00100000011000000000000000000000
+00100000010000000110000001111001
+01011000000000000000000000000000
+00100000010000000110000010000101
+01000100110111101100000000010111
+01101111111000001000110010001100
+11000000001100000110000001111101
+11000000011110000110000001110111
+01101111111000011100111001110010
+00100000001000000110000001111110
+01011000000000000000000000000000
+11011000010000000000000100000000
+11011010001000000000110010001100
+00100000001000000110110001000011
+01101111111000011100111001110101
+00011111111000001111111000000010
+00011111111100001111111000000000
+01100111111000010000110010001100
+11011000010000000000000100000000
+11011010001000000000110010001100
+01011000000000000000000000000000
+00100000001000000110110000101001
+01100111111000011100010000110000
+00100000010000000110000010001110
+00100000010000000110110000010110
+00100000010000000110110000011100
+11011010001000000000000110111100
+01110000100000001000001000000100
+01101111111000011100010000110000
+11011000010000000000000010000001
+00100000001000000110110000110110
+01011000000000000000000110111100
+01100111111100010000000010000100
+01011000000000000000000111000001
+01100111111100010000000010000110
+01110000100000001000001100000000
+01011000000000000000000000000101
+00100000010000000110101111001101
+11000010100000000110000010001110
+00100000011000000000000000000000
+00011000110000100111111000000000
+00100000001000000101110100010101
+00100000010000000101110100011000
+00100000001000000111110001101010
+00011000101000100111111000000000
+00100000001000000101110100010101
+00100000010000000101110100011000
+00100000001000000111110001100111
+00100000010000000110000010100101
+00100000001000000101110100010000
+00100000010000000101110100010010
+00100000010000000101110100011000
+00011111111000100111001000000000
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000001000000101110100010101
+00011000010000100111111000000000
+00100000001000000101110100010101
+00100000010000000101110100011000
+00011111111000100000010000000000
+00100000011000000000000000000000
+00011111111000001111111111111000
+11101001010000010000000000111111
+00011111111000001111111000000010
+11101010000000010000000000111111
+00011111111000001111111000000010
+11101000010000010000000000111111
+00011111111000001111111000000010
+11101000011000010000000000111111
+00011111111000100010001000000000
+00100000011000000000000000000000
+00011111111000001111111111111000
+11101001010000010000000000111111
+00011111111000001111111000000010
+11101010000000010000000000111111
+00011111111000001111111000000010
+11101000011000010000000000111111
+00011111111000100010001000000000
+00011111111000001111111000000010
+11101000010000010000000000111111
+00100000011000000000000000000000
+11101111111000001000000000000110
+11100111111000001000000000000011
+11000010000000000110000011000000
+11100000011000010000000000010001
+00011000011000100111111000000000
+10011000010001100111110000000000
+00100000001000101010001100111110
+00100000011000000000000000000000
+00100000010000000111001110000100
+00100000011101011000000000000000
+01011000000000000110000101000011
+01100111111000010100001111100100
+01011000000000000110000011110011
+01100111111000010100001111100110
+01011000000000000110000110100111
+01100111111000010100001111101000
+01011000000000000110000100101010
+01100111111000010100001111101100
+01011000000000000110000110000010
+01100111111000010100010100111011
+00100000010000000110000011011100
+01000100110111110100000000010111
+00100000010000000110000110110011
+01101111111000001100010100110001
+11000000000000000110000011101010
+01101111111000001100010100110010
+01100111111000001100010100000011
+00100000001000000110000110111110
+01011000000000000110000101000111
+01100111111000010100001111011110
+01011000000000000110000101000101
+01100111111000010100001111100000
+01011000000000000110000101011101
+01100111111000010100010100110110
+01011000000000000110000110110111
+01100111111000010100010100111000
+01110000010000010110000000000111
+00100000010000000010100101001000
+00100000010000000110000110101010
+00100000010000000111000001011011
+00100000010000000111100010011101
+00100000001000000111011110011010
+01110000010001010000001111111111
+01110000010001010011001100000001
+00100000001000000110000101011101
+01101111111000001100010100110011
+11000000000000010011011101111101
+00100000010000000110100101000101
+01101111111000001100010001011000
+00100100001110100011011101111101
+00100000001000000011011101111111
+00011010011000100111111000000000
+11000000000010100110000011111100
+11000000000010101110000100000000
+11000000000111111110000100000011
+11000000001000000110000100001011
+11000000000010000110000111010011
+11000000000101100110000100010001
+11000000000101101110000100011100
+00100000011000000000000000000000
+00100000010000000110000101001010
+01011000000000000000000000000000
+01100111111000010100010100001111
+00100000001000000011011110011010
+00100000010000000111100010011101
+01110000010001010000100000000000
+00100000001000000110000101011101
+00100000010000000111100010011101
+01110000010001010000100000000001
+00100000010000000110010110110011
+00100000010000000011011110100000
+00100100001110100110001100101011
+01101111111001000100111011001011
+01100111111001000100001011010101
+00100000001000000010111001110001
+01101111111000010100001101000000
+11000001000000000000000000000000
+01101111111001000100010100100001
+00100000011110100000000000000000
+01100111111001000100001011010101
+00100000001000000010111001110001
+01101111111000001100010100110001
+11000001000000000000000000000000
+01101111111000001100010100110011
+11000001100000001000000000000000
+00100000010000000110000100010111
+00100000001000000011011110011000
+01110000010001101001110000000001
+11011111001000000000000000001011
+11011000101000000100011010011101
+11011000110000000100011010000110
+00100000001000000111110011011100
+01101111111000001100010100110001
+11000001000000000000000000000000
+01101111111000001100010100110011
+11000000000000001110000100100001
+00100000001000000110000111001111
+01101111111000001100011010011100
+11000001100000001000000000000000
+01110000010001101001110000000000
+01101111111000010100010100000000
+11000010100001001011011110011010
+11011111001000000000000000001011
+11011000110000000100011010011101
+11011000101000000100011010000110
+00100000001000000111110011011100
+00100000010000000110000100101101
+00100000010000000110000100110100
+00100000001000000110000100111110
+11011010011000000100010100101111
+11011010010000000110000100110000
+00100000001000000011011101011100
+01110000010001010011001100000010
+00100000010000000011011110011010
+00100000010000000110000101101011
+00100000001000000110000110111011
+11011010011000000100011010101001
+11011010010000000110000100110111
+00100000001000000011011101010101
+01101111111000010100010100000000
+11000010100001001110000110111011
+01101111111000001100011010000110
+11000000000000001110000110111011
+11000000000000100110000110111011
+11000000000000101110000110111011
+00100000001000000011011110011100
+01101111111000001100010100110011
+11000001100000001000000000000000
+11011010011000000100010100001111
+11011010010000000110000101001110
+00100000001000000011011101011100
+00100000010000000110000110010011
+00100000001000000111000010001011
+00100000010000000110111100110010
+00100000001000000111000001111111
+01110000010001010000001111111111
+00100000010000000110111100110010
+00100000001000000111001110001000
+01101111111000010100010100101011
+01100111111000010100010100101101
+01100111111000010100010100101111
+00100000001000000011011110001010
+01101111111000001100010100110011
+11000001100000001000000000000000
+01101111111000010100010100000000
+11000011100001001000000000000000
+01101111111000010100010100101001
+01100111111000010100010100101101
+01100111111000010100010100101111
+01101111111000010100010100001011
+00100000010000000110000111100100
+00100000010000000011011110010110
+01101111111000100100010100010101
+01100111111000100100011010001001
+01101111111000010100010100000000
+11000011100001011000000000000000
+00100000001000000011011110001100
+01101111111000001100010100110011
+11000001100000001000000000000000
+01101111111000010100010100001111
+01101000010010010100010100001101
+01100000010010010100010100001111
+00100100011110100000000000000000
+01101111111000010100010100001001
+00100000010000000110000111100100
+00100000010000000011011110010110
+01101111111000100100010100010001
+01100111111000100100011010001001
+01101111111000010100010100000000
+11000011100001011000000000000000
+00100000001000000011011110001100
+01101111111000010100010100000000
+11000010100001001011011110010100
+00100000001000000110000101001010
+00100000010000000111110110111110
+01101111111000010100010100000000
+11000010100001001110000101110010
+00100000011000000000000000000000
+01101111111000001100010100001000
+00100000011110100000000000000000
+00100000001000000111110110111100
+00100000010000000111110110111110
+01101111111000010100010100000000
+11000011100001001000000000000000
+00100000001000000111110110111100
+00100000001000000110000101011101
+01111000010101100111110000000000
+01101111111000010100010100101101
+01100111111000010100010100101111
+00100000010000000110000101110101
+00100000001101000110000101111001
+00100000010000000110000101101110
+00100100011101000000000000000000
+00100000001000000111110111000000
+00100000010000000110000101111010
+00100100011101100000000000000000
+00011010001000100111111000000000
+00100000001110100110000110001001
+00100000010000000011011110011000
+11011010011000000100010100111111
+00100000001000000110000110001011
+00100000010000000011011110011010
+11011010011000000100010101001110
+11011111111000000000000000000101
+10011000111011111111111000000000
+10011010011000001010011000000000
+11101111111000001000000000010011
+00100000011110100000000000000000
+00100000010000000110000110011111
+00011010011000001010011000000001
+00100000001000000110000110001110
+01101111111000010100010100000000
+11000010100001001110000110010110
+00100000011000000000000000000000
+00100000010000000010101000000110
+00100100011110100000000000000000
+00100000010000000110000110100010
+00100100011101000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000000101
+11011000010000000100010101011101
+10011000010000001000110000000000
+00100000001000000110000111101000
+01100111111000001000011001001110
+11011010001000000000011001001110
+00100000001000000111100010100010
+11011010001000000000011001001110
+00100000010000000111100010111010
+00100100011101000000000000000000
+01101111111000001000011001001110
+00100000011000000000000000000000
+01101111111000010100001110011100
+11000000000011000110000100000011
+00100000011000000000000000000000
+01110000010001101010100000000010
+01011000001000000000000000001000
+01100111111000100100010100011001
+01011001001011000000000000000101
+11100111111000100000000000000101
+01110000010000101110001100010111
+01011000000000000000000000011011
+01100111111000010100001100110100
+00100000001000000010101000011111
+11011111001000000000000000101000
+11011000101000000100010101011101
+11011000110000001001011110111101
+00100000001000000111110011001110
+11011010001000000000000000000000
+11011010011000000100011010010001
+00100000010000000111011110111000
+00100000010000000110000101101011
+01101111111000001100011010101000
+01100111111000001100011010101001
+00100000011000000000000000000000
+01011000000000000000000000000000
+00100000010000000110000111001010
+01110000010001001111101100000001
+00100000010000000111011101100100
+00100000010000000111011101101110
+01101111111000001100011010101111
+00100000001110100110000111000111
+01101111111100001000000100110010
+11000010100000100110000111010110
+01101111111000010100010100000000
+11000011100001100000000000000000
+00100000001000000011011110011100
+01101000010010010100010001000111
+11100111111000001000000000000010
+11101111111000001000000000000101
+01100111111000001100010100000010
+00100000011000000000000000000000
+01101111111000010100010001000111
+11101111111000001000000000111111
+11000001100000000000000000000000
+00100000001000000011011110011100
+01101000010010010100010001000111
+11101111111000001000000000000010
+11000000000000001110000111011110
+01011000000000000000000000000001
+01101000010010010100010001000111
+11100111111000001000000000000010
+00011000010000001000110000000010
+11101111111000001000000000000110
+11100111111000001000000000000010
+11101111111000010000000000000110
+00100000001000000111110101111011
+01011000000000000000000000000010
+00100000010000000110000111001010
+00011000010000001000110000000101
+11101111111000010000000000000110
+00100000001110100011011110011100
+00100000001000000111110101111011
+01100111111000010100000010100100
+00011111111000001111111111111100
+01100111111000010100001110001101
+00100000011000000000000000000000
+11101111111000001000000000000110
+00011111111000100010001000000000
+11101000010000010000000000000110
+00100000010000000111110001101111
+00100000010000000010110111001100
+00011010001000100111001000000000
+00100000010000000111110001101001
+00100000001000000111110011011100
+01011000000000001001011010000100
+01100111111000010100001011111001
+00100000011000000000000000000000
+01101111111000010100011010101010
+01100111111000010100010100111101
+01101111111000001100011010101100
+01100111111000001100011010001000
+01100111111000001100011010010011
+01101111111000001100011010101101
+01100111111000001100010100110001
+01101111111000001100011010101110
+01100111111000001100010100110010
+01011000000000000000000000000010
+01100111111000010100010100111111
+01011000000000000000000000000001
+01100111111000010100010101000100
+01011000000000000000000000000110
+01100111111000010100010101001110
+01100111111000010100010101010011
+01011000000000000100010100110011
+01100111111000010100010001000111
+01011000001000000001010000000000
+01100111111000011100010100110011
+01110000010000001001010000000001
+01011000000000000000000100000000
+01100111111000010100000010100100
+01110000010000001010011000001000
+01110000010000001100000000000101
+01110000010000001100000100000010
+01011000000000000000000010010110
+01100111111000010100010100010001
+11100111111000010000000000000101
+01011000000000000000001010010110
+01100111111000010100010100010101
+11100111111000010000000000000101
+00111000000000000000000000010000
+00111000000001001000000000001000
+00111000000010101100000000000000
+00111000000011000000000000000100
+01100111111001000100010100100001
+01110000010001010000010100000001
+01011000000000000100011010000110
+01100111111000010100010100000110
+01011000000000000000000000000000
+01100111111000010100011010000110
+00111000000000000000000110100000
+00111000000001000000000001101000
+00111000000010000000000000000000
+00111000000011000000000000000000
+01100111111001000100011010001001
+01011000000000000000001100000001
+01100111111000010100011010010001
+00111000000000000000000110100000
+00111000000001000000000011101000
+00111000000010000000000000000000
+00111000000011000000000000000000
+01100111111001000100011010010100
+01011000000000000000000000001110
+01100111111000010100010100001001
+01011000000000000000000101000000
+01100111111000010100010100001011
+01100111111000010100001110001101
+01011000000000000000000001010000
+01100111111000010100010100001101
+01110000010000111001011100000111
+01110000010000111000110000000000
+00111000000000000000000011111011
+00111000000001101100001000010010
+00111000000010001000000000001111
+00111000000011000000000000100001
+01100111111001000100001111000100
+00111000000000000000101110111000
+00111000000001000000001011101110
+01100111111000100100010100101001
+01011000000000000100010110110111
+01100111111000010100010000000100
+01011000000000000010000000000001
+01100111111000010100010110110111
+01110000010000110100110000011111
+00111000000000010000000100000010
+00111000000001001000000011000001
+00111000000010011000000100100000
+00111000000011000110010000001100
+01100111111001001100001101001101
+00111000000000000000001111000001
+11100111111000010000000000000101
+01110000010000110110110000011111
+00111000000000100000100100001101
+00111000000001110100110000010101
+00111000000010101000010100110010
+00111000000011011101000111010101
+01100111111001001100001101101101
+00111000000000100110010101110100
+00111000000001000000000000011100
+11100111111000011000000000000101
+01011000000000000100010100111010
+01100111111000010100010001000011
+01110000010001010011101000000010
+01011000000000000100010111011100
+01100111111000010100010000000001
+01110000010001000000001100000101
+01101111111000001100011010110000
+11000000000000000110000111110000
+11000000000000001110001010000011
+00100000011000000000000000000000
+01101111111000110100111010101011
+01100111111000110100010100111101
+01110000010001010011101000000110
+01011000000000000100010100111010
+01100111111000010100010001000011
+00100000011000000000000000000000
+01101111111000111100111010101011
+01100111111000111100010100111101
+01110000010001010011101000000111
+01011000000000000100010100111010
+01100111111000010100010001000011
+00100000011000000000000000000000
+01101111111001000100111010101011
+01100111111001000100010100111101
+01110000010001010011101000001000
+01011000000000000100010100111010
+01100111111000010100010001000011
+00100000011000000000000000000000
+01101111111000001100111010101010
+11000000000000110110001001011001
+11000000000000111110001001011111
+11000000000001000110001001100101
+00100000011000000000000000000000
+01000100110111111100000000010111
+01101111111001000100111011011011
+01100111111001000100010100101001
+01011000000000000000000010010110
+01100111111000010100010100001101
+01101111111000111100111011100101
+01100111111000111100011010000110
+01101111111000111100111011101100
+01100111111000111100011010010001
+01101111111000100100111011110011
+01100111111000100100010100010001
+01101111111000100100111011110111
+01100111111000100100010100010101
+01011000000000000000000000001110
+01100111111000010100010100001001
+01011000000000000000000101000000
+01100111111000010100010100001011
+01100111111000010100001110001101
+00100000011000000000000000000000
+01011000000000000100011110100111
+01100111111000010100001011111001
+00100000011000000000000000000000
+00100000010000000111001110000100
+00100000011101011000000000000000
+00100000010000000110001001101011
+00100000010000000110001001110000
+01011000000000000110001011000001
+01100111111000010100001111100100
+01011000000000000110001100011010
+01100111111000010100001111100110
+01011000000000000110010101001000
+01100111111000010100001111101000
+01011000000000000110001011110010
+01100111111000010100001111101100
+01011000000000000110001101001101
+01100111111000010100010100111011
+01011000000000000110001010101011
+01100111111000010100001111011110
+01011000000000000110001010101001
+01100111111000010100001111100000
+01011000000000000110000101011101
+01100111111000010100010100110110
+01011000000000000110000110110111
+01100111111000010100010100111000
+01110000010000010110000000000111
+00100000010000000010100101001000
+00100000010000000110000110101010
+00100000010000000111000001011011
+00100000010000000111100010011101
+00100000010000000111011110011010
+01101111111000010100111100010010
+01100111111000010100001100110100
+01101111111001000100010100100001
+01100111111001000100010100011001
+00100000010000000110001011001011
+01000100111000000100000000011000
+00100000001000000110000011010111
+00100000010000000110111100110010
+00100000001000000111000001111111
+01110000010001010000001111111111
+00100000010000000110111100110010
+00100000010000000110001010101111
+00100000001000000111001110001000
+01101111111000001100011010101101
+00100000011110100000000000000000
+01101111111000001100111010101010
+00011111111000100111001000000000
+11011010001000000100010100111101
+11101111111000001000000000010001
+01101000010010001100011010101110
+10011000010001100111110000000000
+00100000001000101110001010111100
+00011111111001100111110011111111
+00100000001000101110001010111100
+00011111111000100000010000000000
+00100000010000000110001010111111
+00011010001000001010001000000001
+11000010000000000110001010110100
+00100000011000000000000000000000
+01111001001000000000010000000111
+00100000001000000110111011010111
+00100000010000000110001011011000
+11011000111000000000000000001001
+00100000010000000111110011110001
+00100100011110100000000000000000
+01011000000000000000000000100000
+11011000111000000000000000001001
+00100000010000000111110011100011
+01111000010101000111110000000000
+00100000010000000111000001111111
+00100000001000000110001110110111
+01011000000000000000000000101011
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001010001000000000
+00011010001000001010001000000011
+11011000010000000000111111111111
+11100000010000001000000000010001
+00011010001000001010001000001011
+11011111111000000000111111111111
+10011000010001100111111000000000
+00011111111100100111111000000000
+11100111111000010000000000010001
+00100000011000000000000000000000
+01101111111000010100010100000000
+11000010100001001110001011011101
+11011000101000000100010110111001
+11011111001000000000000000100011
+00100000001000000111110010100011
+00100000010000000010101000000110
+00100100011110100000000000000000
+00100000010000000111100011101010
+00100000011110100000000000000000
+01101000010010100100100101011001
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100000011000101000000000000000
+00100100001000010110001011101001
+01101111111000001100100101011000
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011100010000100111111000000000
+01100111111000100100100101011001
+00100000010000000110000110100010
+00100100011101000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001000110000000000
+00100000001000000110000111101000
+00100000010000000110011011011001
+00100000010000000110010111101111
+00100000010000000110010111011101
+00100000010000000110001011111001
+00100000010000000110001100001110
+00100000010000000110000100101101
+00100000001000000110001100010100
+11011010011000000100111010001000
+11011010010000000110001011111100
+00100000001000000011011101010101
+00100000010000000111100011101010
+00100100011110100000000000000000
+01101111111000010100011010111111
+00100100011110100000000000000000
+00100000010000000110010110110011
+00100000011110100000000000000000
+00011000111000100111111000000000
+00101111111000000000111000000100
+00100000001000001110001100001010
+00011000111000100111111000000000
+00101111111000000000111000000001
+00100000001000001110001100001100
+11011010011000000100111001111101
+00100000001000000110000110001110
+11011010011000000100111010010110
+00100000001000000110000110001110
+11011010011000000100111010100000
+00100000001000000110000110001110
+11011010011000000100110001001000
+11011010010000000110001100010001
+00100000001000000011011101010101
+11011111001000000000000000001010
+11011000101000000100100101100111
+00100000001000000111110010100011
+11011010011000000100011010101001
+11011010010000000110001100010111
+00100000001000000011011101010101
+01101111111000010100010100000000
+11000010100001001110000110111011
+00100000001000000011011110011100
+00011010011000100111111000000000
+11000000000010100110001100111100
+11000000000010101110001100110111
+11000000000110001110001100101110
+11000000001000000110001100100010
+11000001001000000000000000000000
+11000000000110010110010101001011
+00100000001000000110000011110011
+01101111111000010100001101000000
+11000001000000000000000000000000
+01101111111001000100010100100001
+00100000011110100000000000000000
+00100000010000000110010110110011
+00100100001110100110001100101011
+01101111111001000100111011001011
+01100111111001000100001011010101
+00100000001000000010111001110001
+01101111111001000100111011010011
+01100111111001000100001011010101
+00100000001000000010111001110001
+01110000010011101000100100000001
+00100000010000000110011000000110
+01101111111000010100111011111111
+01100111111000010100111001110101
+01101000010010010100111100000001
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111001110111
+00100000011000000000000000000000
+01110000010011100111001000000000
+01110000010011101000100100000000
+00100000010000000110001111110110
+00100000010000000110001101001000
+00100000001000000110000100000000
+00011100010000100111111000000000
+01100111111000100100100101011001
+00100000010000000110010110101100
+00100000001000000110000011111100
+01111000010101100111110000000000
+01101111111000010100010100101101
+01100111111000010100010100101111
+00100000010000000110000101110101
+00100000001101000110000101111001
+00100000010000000110000101101110
+00100100011101000000000000000000
+00100000001000000111110111000000
+01110000010011101000110000000000
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000001100000001000000000000000
+00100000001000000110001101010100
+00100000010000000110001101000000
+00100100011101100000000000000000
+00011010001000100111111000000000
+00100000001110100110001101111111
+01000100111000001100000000011000
+01101111111000001100111100101010
+00100100001110100110001101001010
+01110000010011000100100100000001
+00100000010000000011011110011000
+00100000010000000110001101110100
+00100000010000000110001110101001
+00100000001000010110001101001000
+00011000111000100111111000000000
+01101000010010001100111010001100
+10011000010001100111110000000000
+00100100010000101110001101101110
+00011000111000100111111000000000
+01100111111000001100111010001100
+01101000010010001100111010001111
+10011000010001100111110000000000
+00100000001000101110001101101100
+01101111111000001100111010010000
+00100100001110100110001101100111
+00100000010000000110010110110101
+11011111111000000000000000001010
+00100000001000000110001110100010
+00100000010000000110011000000010
+00011000111000100111111000000000
+11000000000000001110001101100100
+00100000010000000110010010001100
+00100000001000000110010000111101
+01110000010011101000110100000001
+00100000001000000110010000111101
+01000100111000010100000000011000
+01101111111000001100111010010000
+00100000001110100110001100000000
+00011000111000100111111000000000
+11000000000000001110001100000000
+00100000011000000000000000000000
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100100101011101
+10011010011000001010011000000000
+00011100010000100111111000000000
+11100111111000100000000000010011
+00011010011000001010011000000100
+11101111111000001000000000010011
+00011111111000001111111000000001
+11100111111000001000000000010011
+00100000011000000000000000000000
+01000100111000011100000000011000
+01101111111000001100111010010000
+00100000010110100110001110010011
+11011111111000000000000000001010
+10011000111011111111111000000000
+11011010011000000100100101011101
+10011010011000001010011000000000
+11101000010000100000000000010011
+00011000010001100111110000000000
+00100000011000101000000000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111011111110100
+00011010011000001000110000001001
+11101111111000001000000000000110
+00100100001110100110001110101110
+00011010011000001010011000000101
+00011100010000100111111000000000
+11100111111000100000000000010011
+00100000011000000000000000000000
+01101111111000001100111100101010
+00100100001110100011011110011000
+00100000001000000011011110011010
+00011010011000001000110000000100
+11101111111000001000000000000110
+00100000001000000110001110011001
+00100000010000000110001110110100
+01101111111000001100111010010000
+00100100001110100110001110100101
+00100000010000000110001110101001
+00100000001000010110001101001000
+00100000010000000110010110111011
+00011000111000100111111000000000
+11000000000000011110010111000011
+11011111111000000000000000001111
+10011000111011111111111000000000
+10011010011000001010011000000000
+00100000001000000110000110001110
+00011000111000100111111000000000
+11000000000000001110001110011100
+11000000000000011110001110011100
+00100000011000000000000000000000
+00100000010000000111100011110010
+11101000010000001000000000000110
+10011000010001100111111000000000
+00011111111001100111110000001010
+00100000011000000000000000000000
+01110000010011101000011100000001
+00100000010000000110001110110100
+00100000010000000110010111101100
+11011010011000000100101010110011
+11011111111000000000000000000011
+00100000001000000110001110100010
+11011111001000000000000000001010
+00011010011000100000101000000000
+00100000001000000111110010100011
+01101111111000010100011010111111
+01100111111000010100010001000101
+00100000010000000110010000000111
+01101111111000010100010001000101
+01100111111000010100011010111111
+11011000111000000000000000000000
+01101111111000001100010100111010
+00011111111000100111001000000000
+11011010011000000100100101011101
+00011111001000100111111000000000
+01100111111000010000011001010110
+00011010011000100111111000000000
+01100111111000010000011001101010
+00011000111000100111111000000000
+01100111111000010000011001011000
+00100000010000000110001111111101
+01101111111000010000011001101010
+00011111111000100010011000000000
+01101111111000010000011001011000
+00011111111000100000111000000000
+00100000010000000110001111010100
+01101111111000010000011001011000
+00011111111000001000111000000001
+01101111111000010000011001101010
+00011111111000001010011000001010
+01101111111000010000011001010110
+00011111111000100111001000000000
+11000010000000000110001111000000
+00100000011000000000000000000000
+11101111111000100000000000010011
+00100000011110100000000000000000
+00011111111000100000010000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100011000010000000000000000
+01011000000000000000100111000100
+10011000010001100111110000000000
+00100000011000010000000000000000
+00011100010000100111111000000000
+11100111111000100000000000010011
+00011010011000001010011000001001
+01011000000000000000000000000001
+11100111111000001000000000010011
+01101111111000001100111010000111
+00100000011110100000000000000000
+01110000010011101000011100000000
+01000100111000100100000000011000
+00100000010000000110010111011000
+01101111111000001100111010001110
+11000000000000000110001111101011
+11000000000000001110001111101110
+00100000011000000000000000000000
+00100000010000000110001111111000
+11011111111000000000000000000011
+00100000001000000110001110100010
+00011000111000100111111000000000
+01101000010010001100111010001111
+10011000010001100111110000000000
+00100100001000101110001111101011
+01101111111000001100111010010000
+01111001010000000111111000000000
+01100111111000001100111010010000
+00100100011110100000000000000000
+01110000010011101001000000000000
+00100000001000000011011110011010
+11011010011000000100101010011000
+00100000010000000110010110110011
+00100000011110100000000000000000
+11011010011000000100101111111101
+00100000011000000000000000000000
+00011010011000001010010000000101
+11101111111000100000000000010010
+00100000011110100000000000000000
+00011111111000100000010000000000
+00011100010000100111111000000000
+10011000010001100000010000000000
+00100100010000010111011111110100
+01011000000000000000001111101000
+10011000010001100111110000000000
+00100000001000000110001110010110
+01101111111000010100010001000011
+11101111111000001000000000111111
+00100000011110100000000000000000
+01011000000000000000000000000000
+01100111111000010000011011001111
+00100000010000000111000001100111
+00100100001101000111011110010011
+00100000010000000111011110010001
+01111000010101000111110000000000
+01101111111000001100001110001100
+00100100011110100000000000000000
+01000100111000101100000000011000
+01101111111000001100111010001110
+11000000000000001110010000011000
+00100000010000000110010001110010
+00100000010000000110010000100101
+00100000011101000000000000000000
+00100000010000000110010000011110
+01101111111000010000011011001111
+01100111111000010000011011010110
+01110000000001101101100000000000
+00011000000000000000111000000000
+00100000001000000111000010011111
+01101111111000001100111010001100
+01101000010010001100111010001111
+10011000010001100111110000000000
+00100000001000101011011110011000
+01101111111000001100111010010000
+00100100001110100011011110011010
+00100000011000000000000000000000
+11011000111000000000000000000000
+11011010010000000100101011001110
+11011111111000000000000000000010
+10011000111011111111111000000000
+10011010010000001010010000000000
+11101111111000010000000000010010
+00100000011110100000000000000000
+01101000010010010000011011001111
+10011000010000101111110000000000
+00100000001000101110010000110001
+00011000111000001000111000000001
+00100000001000000110010000100110
+01100111111000010100101011011010
+00100000010000000011011110011000
+11011010011000000100101011011100
+11011111111000000000000000001010
+10011000111011111111111000000000
+10011010011000001010011000000000
+00100000010000000110010000111001
+00100000001000000110010001111101
+00100000010000000110011000000010
+11101111111000001000000000010011
+00100000011110100000000000000000
+00100000010000000110010010001100
+00100000010000000110011000000010
+00100000010000000110010110110011
+00100100001110100110010001000100
+11011111111000000000000000011100
+00100000010000000110000110011111
+11011111111000000000000000011101
+00100000001000000110000110011111
+00100000010000000110010001010011
+00100000010000000110010001011110
+00100000010000000110010001101000
+11011111111000000000000000101001
+00100000001000000110000110011111
+01101000010010001100111001110001
+00100000010000000110010110110011
+00100000011110100000000000000000
+01101000010010001100111001110100
+00011000010000001000010000000001
+01101111111000001100111010001101
+00100000011110100000000000000000
+01101000010010001100111001110001
+01110000010011101000110100000000
+00100000011000000000000000000000
+00100000010000000110010001001001
+00011000010000100111111000000000
+00100000011110100000000000000000
+01100111111000001100111001111010
+11011111111000000000000000101011
+00100000010000000110000110011111
+01101111111000001100111001111010
+00011111111000001111111111111111
+01100111111000001100111001111010
+00100000011110100000000000000000
+00100000001000000110010001010111
+01101111111000001100111001110011
+00100000011110100000000000000000
+01100111111000001100111001111011
+11011111111000000000000000101100
+00100000010000000110000110011111
+01101111111000001100111001111011
+00011111111000001111111111111111
+01100111111000001100111001111011
+00100000011110100000000000000000
+00100000001000000110010001100001
+01101111111000001100111001110100
+00100000011110100000000000000000
+01100111111000001100111001111100
+11011111111000000000000000101101
+00100000010000000110000110011111
+01101111111000001100111001111100
+00011111111000001111111111111111
+01100111111000001100111001111100
+00100000011110100000000000000000
+00100000001000000110010001101011
+01101111111000010100101011011010
+00100000011110100000000000000000
+01101000010010010000011011001111
+00011000010001100111110000000000
+00100000001000101110010010000000
+10011000010001100111110000000000
+00100000011000101000000000000000
+01100000010010010100101011011010
+01101111111000010100111010001010
+10011000010001100111110000000000
+00100000010000101011011110011010
+01101111111000010000011011001111
+01100111111000010100010001000101
+00100000001000000111110110111100
+01110000010011101000011100000001
+00100000010000000011011110011010
+11011010011000000100101100011000
+00100000010000000110010000111001
+01011000000000000000000000000000
+01100111111000010100101011011010
+01110000010001101011000100110010
+00100000010000000110010001111101
+01101111111000001100010100111010
+00011111111011111111001000001010
+11011000101000000100100101011101
+00100000001000000111110010100011
+01000100111000110100000000011000
+01101111111000001100111010001110
+11000000000000001110010010010001
+11000000000000000110010010010111
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000000000000101110010011000000
+11000000000000000110010100000111
+11000000000000100110010100001111
+11000000000000010110010100111001
+00100000011000000000000000000000
+11101111111000001000000000010011
+11000000000000001110010011000000
+11000000000000010110010100000111
+11000000000000011110010100001111
+11000000000000100110010100111001
+11000000000000101110010010011110
+00100000011000000000000000000000
+00100000010000000110010110110011
+00100100001110100110010010101000
+01011000000000000000000000011011
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001000101000000000
+00011000101000001000101000000101
+01101111111000100100101100100010
+11100111111000100000000000000101
+00100000011000000000000000000000
+01011000000000000000000000101001
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001000101000000000
+00011000101000001000101000000011
+01101111111000010100111001110101
+11100111111000011000000000000101
+00011000101000001000101000000111
+01101111111000010100111001110111
+00011111111100100111111000000000
+00011111111011010111111000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01101111111000001100111001110011
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100111001110011
+11011111111000000000111111111111
+00100000011000000000000000000000
+11011000010000000000000001010101
+00100000010000000110010110110011
+00100000011110100000000000000000
+11011000010000000000000000000111
+00100000011000000000000000000000
+00100000010000000110010010111011
+01101111111000010100111001110101
+10011000010001100111110000000000
+00100100010000010110010010110101
+00100100011000010000000000000000
+10011000010001100111111000000000
+01100111111000010100111001110101
+01000100111000111100000000011000
+00100000010000000110010110110011
+00100000001110100110010011100010
+01101111111000010100111001110101
+01101000010010010100111001110111
+00011000010011010000010000000000
+00011000010100100000010000000000
+10011000010000001111111000000000
+01100111111000011100101100100010
+00100000010000000110010011010010
+00100000001000000110010011011010
+01011000000000000000000000101000
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001000101000000000
+00011000101000001000101000000011
+01101111111000011100101100100010
+11100111111000011000000000000101
+00100000011000000000000000000000
+01011000000000000000000000101001
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001000101000000000
+00011000101000001000101000000011
+01101111111000011100101100100010
+11100111111000011000000000000101
+00100000011000000000000000000000
+01101111111000010100111001110101
+01101000010010010100111001110111
+00011000010100000000010000000000
+10011000010000001111111000000000
+01100111111000100100101100100010
+00100000010000000110010011101001
+00100000001000000110010011110001
+01011000000000000000000000011011
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001000101000000000
+00011000101000001000101000000101
+01101111111000100100101100100010
+11100111111000100000000000000101
+00100000011000000000000000000000
+01011000000000000000000000011100
+00011111111011111111111000001010
+11011000010000000100110001001011
+10011000010000001000101000000000
+00011000101000001000101000000101
+01101111111000100100101100100010
+11100111111000100000000000000101
+00100000011000000000000000000000
+01101111111000010100111001110101
+11011000010000000000111111111111
+10011000010001100000010000000000
+00100100011000010000000000000000
+00011000010000100111111000000000
+01101000010010001100111001110011
+00011000010001100111110000000011
+00100000001000101110010100000100
+00011000010000001000010000000001
+01100000010010001100111001110011
+00100000001000000110010011000110
+01110000010011100111001100000000
+11011111111000000000000000000000
+00100000001000000110010011000110
+00100000010000000110010110110011
+00100100010110100110010011111001
+00100000010000000110010010111011
+01101111111000010100111001110101
+10011000010000001111111000000000
+11011000010000000000111111111111
+00100000010000000111110101101110
+00100000001000000110010011000110
+00100000010000000110010110110011
+00100000001110100110010100100011
+00100000010000000110010010111011
+01101111111000010100111001110111
+10011000010001100111111000000000
+01100111111000010100111001110111
+01101000010010010100111001110111
+01011000000000000000111111111111
+10011000010001100111111000000000
+11011000010000000000111111111111
+10011000010001100000010000000000
+00100100001000010110010011000111
+01011000000000000000111111111111
+10011000010001100111111000000000
+01101000010010001100111001110100
+00011000010001100111110000000101
+00100000001000101110010100101010
+00011000010000001000010000000001
+01100000010010001100111001110100
+00100000001000000110010100110111
+00100000010000000110010010111011
+01101111111000010100111001110111
+10011000010001100111110000000000
+00100100011000010000000000000000
+10011000010001100111111000000000
+01100111111000010100111001110111
+00100000001000000110010011000111
+01110000010011100111010000000000
+01011000000000000000111111111111
+00100000001000000110010100110111
+00100000010000000110010110110011
+00100000001110100110010100101011
+01101111111000001100111001110100
+00100000001110100110010100101011
+00011111111000001111111111111111
+01100111111000001100111001110100
+01011000000000001111111111111111
+11011000010000000000111111111111
+10011000010001100111111000000000
+10011010001000001111111000000000
+01100111111000010100111001110111
+00100000001000000110010011000111
+00100000010000000110010110110011
+00100000001110100110010101000010
+00100000010000000110010010111011
+01101111111000010100111001110111
+10011000010000001111111000000000
+11011000010000000000111111111111
+10011000010001100010001000000000
+00100000010000010110010100101101
+00100000001000000110010100110111
+00100000010000000110010010111011
+01101111111000010100111001110111
+10011000010000001111111000000000
+11011000010000000000111111111111
+00100000010000000111110101101110
+00100000001000000110010100110111
+01101111111000010100001110011100
+11000000000100100110000100000011
+00100000011000000000000000000000
+11011010001000000000000000010111
+11011010010000000000000000000100
+00100000010000000010100111011001
+01011000000000000000000000000110
+11100111111000001000000000000101
+01011000000000000000000000000001
+11100111111000010000000000000101
+01011000000000001111111111111111
+11100111111000010000000000000101
+01011000000000000010100000000000
+11100111111000010000000000000101
+11011000110000000100100101000111
+00100000001000000111110010010001
+01000100111001000100000000011001
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110011011
+11000000000000111110010110000111
+11000000000000001110010110101000
+11000000000001010110010101110111
+11000000000001100110010101100001
+00100000001000000010101101110110
+11101111111000010000000000000110
+01100111111000010000011010010011
+10011000000000000010001000000000
+01101000010010010100001110011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110100101110
+00100000010000000110010110110011
+00100100001110100110010101101100
+01101000010010010100100101000011
+00100000001000000110010101101101
+01101000010010010100100101000101
+11011000110000000100011011000001
+00100000010000000111110001101111
+00011000010000100111111000000000
+10011010001001100111111000000000
+00100100001000010010110111100001
+00011111111000001111111000000001
+00011111111001100111110000010111
+00100000001000010010110100110111
+00011000000000000111111000010111
+00100000001000000010110100110111
+01101000010010010100001110011100
+01101111111000001100001100100011
+11000010100000011110010101111011
+00100000001000000010110011111011
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110011111011
+00100000010000000010110110100101
+00100100001101000110010110000001
+00100000001000000010110100100100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110011111011
+11011000110000000100011011000001
+00011000000000000111111000010111
+00100000001000000010110100001011
+01000100111001001100000000011001
+01110000010011100111000100000101
+01110000010010010101011100000001
+01110000010011100111100100000001
+01110000010010010101100011110000
+01110000010011101000100000001010
+01110000010011101000110100000001
+00100000010000000110011001000010
+01101111111000001100111010001001
+00100000011110100000000000000000
+00100000010000000110011000000110
+11011000010000000000111111111111
+01101111111000010100111100000011
+11011010001000000100111001110101
+11011010010000000100111001110011
+00100000010000000110010110100001
+11011000010000000000111111111111
+01101111111000010100111100000101
+11011010001000000100111001110111
+11011010010000000100111001110100
+00100000010000000110010110100001
+01011000000000000000111111111111
+01101000010010010100111001110111
+10011000010001100111111000000000
+01100111111000010100111001110111
+00100000011000000000000000000000
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00011000000001110000010000000000
+11100111111000001000000000010010
+11100000010000010000000000010001
+00100000011000000000000000000000
+00011000110000001000110111111110
+11101111111000001000000000000110
+11000000000000110110010110110001
+00100000011000000000000000000000
+01110000010011100111000100000001
+01110000010010010101011100000000
+01110000010011100111100100000000
+01110000010010010101100000001010
+00100000011000000000000000000000
+00100000010000000110010110101100
+00100000001000000110011001000010
+01101111111000001100100101010111
+00100000011000000000000000000000
+11011010011000000100100110110111
+00100000010000000110010110110011
+00100000011110100000000000000000
+01110000010010010101100001111000
+11011010011000000100101100100110
+00100000011000000000000000000000
+11011010011000000100101000010001
+00100000010000000110010110110011
+00100000011110100000000000000000
+11011010011000000100101101110110
+01110000010010010101100000001100
+00011000111000100111111000000000
+11000001000000001000000000000000
+00100000011000000000000000000000
+01000100111001010100000000011001
+01101111111000001100110001000111
+01111001010000000111111000000000
+01100111111000001100110001000111
+11000000000000000110010111001100
+11000000000000001110010111001010
+00100000011000000000000000000000
+00100000010000000110010111010011
+00100000001000000110000110001110
+00100000010000000110010111001110
+00100000001000000110000110001110
+11011010011000000100101000111110
+00100000010000000110010110110011
+00100000011110100000000000000000
+11011010011000000100101110100011
+00100000011000000000000000000000
+11011010011000000100110000110011
+00100000010000000110010110110011
+00100000011110100000000000000000
+11011010011000000100110000111101
+00100000011000000000000000000000
+00011000111000100111111000000000
+11000000000000001110010111111010
+11000000000000010110010111101000
+11000000000000100110010111100100
+00100000011000000000000000000000
+11011010011000000100111100011000
+11011010010000000110010111100000
+00100000001000000011011101010101
+01110000010011110001100000000100
+01101111111000001100110001000111
+00100000001110100110010111100100
+00100000001000000110010111101000
+01110000010011000100011100000000
+01110000010011110001100000000100
+11011010011000000100101010100100
+00100000001000000110000110001110
+01110000010011000100011100000001
+01110000010011110001100000000100
+11011010011000000100101010011110
+00100000001000000110000110001110
+01110000010011000100011100000000
+01110000010011110001100000000000
+00100000011000000000000000000000
+11011010011000000100111100011001
+11011010010000000110010111110010
+00100000001000000011011101010101
+01110000010011110001100100000010
+00100000010000000110010111110101
+00100000001000000110000110001110
+11011010011000000100111100011010
+00100000010000000110010110110011
+00100000011110100000000000000000
+11011010011000000100111100100010
+00100000011000000000000000000000
+01101111111000001100111100101010
+00100100001110100110010111111111
+01110000010011110010101000000001
+01110000010011110001100100000010
+00100000011000000000000000000000
+01110000010011110010101000000000
+01110000010011110001100100000000
+00100000011000000000000000000000
+01101111111000001100111001110010
+00100100011110100000000000000000
+01110000010011100111001000000001
+00100000001000000110010011000111
+01011000000000000000000000000000
+01100111111000111100111001110011
+00100000011000000000000000000000
+00100000010000000110010110110011
+11000000000000001110011000010001
+11000000000000000110011000100011
+00100000011000000000000000000000
+01101111111000001100111100001011
+11000000000000001110011000101010
+11000000000000000110011000111100
+00100000011000000000000000000000
+01101111111000001100111001110011
+00011111111011111111111111111111
+00011111111000100000010000000000
+01101111111000010100111001110101
+10011000010000001111111000000000
+01100111111000010100111100000111
+01101111111000001100111001110100
+00011111111011111111111111111111
+00011111111000100000010000000000
+01101111111000010100111001110111
+00011111111000100010001000000000
+01011000000000000000111111111111
+10011010001001100111111000000000
+10011000010000001111111000000000
+01100111111000010100111100001001
+00100000010000000110010110110011
+01100111111000001100111100001011
+00100000011000000000000000000000
+01101111111000010100111001110101
+01100111111000010100111100000111
+01101111111000010100111001110111
+01100111111000010100111100001001
+00100000010000000110010110110011
+01100111111000001100111100001011
+00100000011000000000000000000000
+01101111111000010100111100000111
+00011111111001101111110111111111
+00100000010000000111110101100100
+00011000000001111111111000000000
+00011000000001110000010000000000
+01100111111000001100111001110011
+00011000010000100111111000000000
+01100111111000010100111001110101
+01101111111000010100111100001001
+00011111111001101111110111111111
+00100000010000000111110101100100
+00011000000001111111111000000000
+00011000000001110000010000000000
+01100111111000001100111001110100
+01011000000000000000111111111111
+10011000010001100111111000000000
+01100111111000010100111001110111
+00100000011000000000000000000000
+01101111111000010100111100000111
+01100111111000010100111001110101
+01101111111000010100111100001001
+01100111111000010100111001110111
+00100000011000000000000000000000
+00100000001000000110011010111101
+00100000001000000110011010100100
+00100000010000000110011001100101
+01101111111000010100111100001110
+00100000010000000110011011010000
+01110000010011110001011000000000
+01101111111000101100111100000111
+01110000010011110001011100000000
+01110000010011110001010000000000
+00100000010000000110011001101001
+01101111111000001100111100010100
+11000001000000000000000000000000
+00100000001000000110011001000011
+01101111111000010100111011111011
+00011111111000001111111111111011
+01100111111000010100111100001110
+00100000011000000000000000000000
+01101111111000010100111100001110
+00011111111000001111111111111011
+01100111111000010100111100001110
+00100000011000000000000000000000
+01101111111000010100111100001110
+00011111111000001111111000000101
+01100111111000010100111100001110
+00100000011000000000000000000000
+01101111111000010100111100010000
+00011111111000001111111000000101
+01100111111000010100111100010000
+01101111111000010100111100010000
+00011111111000100000010000000000
+01101111111000010100111011111011
+10011000010001100111111000000000
+11011000010000000000000000000101
+10011000010001100111110000000000
+00100100001000010110011010001001
+00100000011000000000000000000000
+01101111111000001100111100010110
+11000000000000001110011001001110
+11000000000000000110011001010010
+00100000011000000000000000000000
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000010100111100000111
+10101000010000111111111000000000
+00100100010000001110011001111001
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000010100111100001001
+10101000010000111111111000000000
+00100100010000001110011001111001
+11011010010000000000000000000000
+00011010010000100000010000000000
+01101111111000001100111100001011
+10101000010000011111111000000000
+00100100010000001110011001111001
+00100000011000000000000000000000
+01101111111000001100111100010100
+00011111111000001111111000000001
+01100111111000001100111100010100
+00100000011000000000000000000000
+01110000010011110001010000000001
+00100000010000000110011001011010
+01101111111000010100111100010000
+00100000010000000110011011010000
+00100000010000000110010110110011
+00011111111000100000010000000000
+01101111111000001100111100001011
+10101000010000011111111000000000
+00100000010000001110011010100010
+01101111111000001100111100010100
+11000001000000000000000000000000
+00100000001000000110011001111101
+01000100111001011100000000011001
+00100000010000000110011010100010
+00100000010000000110010110110011
+00100000001110100110011010001110
+00100000001000000110011010010011
+01101111111000010100111011111111
+01100111111000010100111001110101
+01101111111000010100111100000001
+01100111111000010100111001110111
+00100000001000000110011001000001
+11011000010000000000111111111111
+01101111111000010100111100000011
+11011010001000000100111001110101
+11011010010000000100111001110011
+00100000010000000110010110100001
+11011000010000000000111111111111
+01101111111000010100111100000101
+11011010001000000100111001110111
+11011010010000000100111001110100
+00100000010000000110010110100001
+01011000000000000000111111111111
+01101000010010010100111001110111
+10011000010001100111111000000000
+01100111111000010100111001110111
+00100000001000000110011001000001
+01110000010011110001010000000000
+00100000011000000000000000000000
+01000100111001100100000000011001
+01110000010011110001011000000001
+00100000010000000110011001000011
+01101111111000010100111011111101
+00011111111000100000010000000000
+01101111111000010100111100001110
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000010100111100001110
+00011111111000100000010000000000
+01101111111000010100111011111011
+00011111111000001111111111111011
+10011000010001100111111000000000
+01101111111000010100111100001110
+01100111111000010100111100010000
+00100000010000000110011001111101
+01101111111000010100111100010000
+00100100010000101110011011010000
+01110000010011110001010000000000
+00100000010000000110011001101001
+01101111111000001100111100010100
+11000001000000000000000000000000
+00100000001000000110011000001101
+01000100111001101100000000011001
+01110000010011110001011000000001
+00100000010000000110011001000011
+01101000010010010100111011111101
+01101111111000010100111100001110
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101000010010010100111100001110
+01101111111000010100111011111011
+10011000010001100111111000000000
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01101111111000010100111100001110
+01100111111000010100111100001100
+00100000010000000110011000001001
+00100000001000000110011011010101
+00011111111000100010010000000000
+01000100111001110100000000011001
+11011111001000000000000000000101
+11011010001000000100111100000111
+00100000001000000110101101100010
+11011111001000000000000000000101
+11011010001000000100111100000111
+01101010010000010100111100001100
+00100000001000000110101100110011
+11011010011000000100011010110001
+11011010010000000110011001000001
+00100000001000000011011101010101
+01101111111000001100010001010110
+11011000010000000000000000111110
+00100000001000000110111100011100
+01101111111000001100010001010110
+11011000010000000000000000111111
+00100000001000000110111100011100
+00100000010000000110011011011111
+00100000010000000110011011011100
+00100000001000000110011011011111
+00100000010000000110011011100011
+00100000001000000110011011011100
+00100000001000000110011011100011
+00100000010000000110011011100011
+00100000001000000110011011100101
+00100000001000000110011011011100
+01101111111000001100010001010111
+00100000001000000110011011011101
+01101111111000001100010001010111
+00100000001000000110011011100000
+00100000010000000110011011101011
+00100000010000000110011011101101
+00100000001000000110011011101011
+00100000100000000000000000000000
+00100000010000000111000100011101
+00100000010000000110011011111101
+00100000010000000110011011111111
+00100000010000000110011100010011
+00100000010000000110011100101111
+00100000010000000110011100110011
+01110000000001101110110100000001
+01110000000001101110101000000100
+00100000010000000110011100111110
+00100000001000000110011011111011
+01110000100000000100001000000100
+00100000011000000000000000000000
+00100000010000000110011100000011
+00100000010000000110011100000111
+00100000010000000110011100001011
+00100000001000000110011100001111
+01101111111000001100010100001000
+00100100011110100000000000000000
+01110000010001010000100000000111
+00100000011000000000000000000000
+01101111111000001100010100001001
+00100100011110100000000000000000
+01110000010001010000100100000110
+00100000011000000000000000000000
+01101111111000001100010100001010
+00100100011110100000000000000000
+01110000010001010000101000001001
+00100000011000000000000000000000
+01101111111000001100010100001011
+00100100011110100000000000000000
+01110000010001010000101100001010
+00100000011000000000000000000000
+01011000000000000000110000000000
+01100111111000010000011001001110
+01011000000000000000111011111111
+11100111111000010000000000000101
+01011000000000000000111100000000
+11100111111000010000000000000101
+01011000000000000000111111111111
+11100111111000010000000000000101
+01101111111001000000011001001110
+00100000010000000110110101011011
+00100000010000000110110101110101
+11011000010000011100001000000000
+00100000010000000110110101101000
+01101111111000001100010100001000
+11011000010000000000000000001000
+00100000010000000110111100011101
+01101111111000001100010100001001
+11011000010000000000000001001001
+00100000010000000110111100011101
+01101111111000001100010100001010
+11011000010000000000000000001010
+00100000010000000110111100011101
+01101111111000001100010100001011
+11011000010000000000000000001011
+00100000010000000110111100011101
+11011000010000000000000010000001
+01100000010110001000000001100000
+00100000001000000111110101111000
+01101111111000001100010100001100
+00100100011110100000000000000000
+01110000010001010000110000001100
+00100000011000000000000000000000
+01101111111000001100010100001100
+11011000010000000000000000010000
+00100000010000000110111100011101
+11011010001000000000000001000000
+00100000010000000111000010111001
+11011010001000000000000000000000
+11011010010000000000000000000000
+01011000000000000000000000000000
+00100000010000000111000011011110
+11011000111000000000000000000000
+00100000001000000111000100000110
+01101111111100010000000100010010
+00011111111000001010001111111100
+00100100011000010000000000000000
+00100000010000000110110110001001
+11101111111000001000000000000011
+11000000000000001110011101000110
+00100000010000000111110010010111
+00100000001000000110110110010001
+11101111111000010000000000000011
+01100111111000010000011011101110
+11011000010000000000001111111111
+10011000010000010000010000000000
+01100000010010010000011011100111
+00011111111010110111111000000000
+00011111111011001111111000000000
+01100111111000001000011011101001
+11101111111000001000000000000011
+00011111111000001111111111111111
+10011010001001100111110000000000
+00100000011000010000000000000000
+00100000010000000110011101010100
+00100000001000000110011110101111
+01101111111000001000011011101001
+11000000000111111110011101010111
+00100000001000000110011110011011
+01000100111010010100000000011010
+01101111111000001000011011100111
+11000000000000000110011110011010
+11000000000000001110011101100010
+11000000000000010110011101100111
+11000000000000011110011101110101
+11000000000000100110011101111111
+11000000000000101110011110011010
+11000000000010000110011110010000
+11000000000010100110011110010110
+00100000001000000110011110011010
+01110000000001101111000000000000
+01101111111100010000000000000000
+01100111111000010000011011110001
+11011111001000000000000000000011
+00100000001000000110011110100010
+11101111111000010000000000000011
+01100111111100010000000001010010
+00100000011000000000000000000000
+11101111111000001000000000000011
+00011111111000100000010000000000
+01100111111100001000000000100100
+11101111111000001000000000000011
+10011000010000001000010000000000
+01111001001000000111111000000111
+01100111111100001000000000100011
+11101111111000001000000000000011
+10011000010000001000010000000000
+00011111111000100111001000000000
+00100000011000000000000000000000
+00100000010000000110011101101010
+11101111111000001000000000000011
+01100111111100001000000000100101
+10011000010000001000010000000000
+11000010000000000110011101110110
+00011000010000010000010011111111
+11101111111000001000000000000011
+10011000010001100111110000000000
+00100100001000101110011110001110
+00100000001000000110011110011010
+11011111001000000000000000100000
+11011000101000000100000000000000
+11011000010000000000000000000000
+11101111111000001000000000000011
+11100111111000001000000000000101
+10011000010000001000010000000000
+11000010000000000110011110000010
+00011000010000010000010011111111
+11101111111000001000000000000011
+10011000010001100111110000000000
+00100100001000101110011110001110
+01110000100000000010001100000000
+00100000010000000110011110011010
+00100000010000000110110110100001
+00100000001000000010000000000001
+01110000100000000010001100000000
+00100000001000000110011110011011
+11101111111000001000000000000011
+00011111111000100111001000000000
+11101111111000010000000000000011
+00011111111000100000101000000000
+00100000010000000110110111010000
+00100000001000000110011110011010
+01101111111100001000000001100000
+01111001001000000111111000000100
+01100111111100001000000001100000
+00100000001000000110011110011010
+00100000001000000110011110011111
+01110000000001101111000000000001
+00100000001000000110011110100000
+01110000000001101111000000001100
+00100000001000000110011110100000
+01110000000001101111000000000000
+11011111001000000000000000000001
+00100000001000000110011110100010
+01110000000001101110101100001110
+00011111001000001111111000000011
+01100111111000001000011011101100
+00100000010000000110011110101011
+01101111111000011000011011101101
+11100111111000011000000000000011
+11011000110000000000011011110000
+00100000010000000110110110110111
+00100000001000000110110110010111
+00100000010000000110110110010101
+01101111111000011000011011101010
+11100111111000011000000000000011
+00100000011000000000000000000000
+00100000010000000110110110001001
+00011000011000001000011000000011
+11101111111000001000000000000011
+10011000011000001000011000000000
+00100000001000000110110110001111
+01110000010000010001010000000000
+00100000011000000000000000000000
+00100000010000000110110000010110
+00100000010000000101011001011010
+00100000010000000101011001010100
+00100000010000000110110001000011
+00100000001000000101011001100001
+00100000010000000110110000010110
+00100000010000000101011001011010
+00100000010000000101011001101111
+00100000010000000101011001010100
+00100000010000000101011001110010
+00100000001000000101011001100001
+11011010001000000100011001111001
+01101111111000001100011001111000
+00011111111000001111111111111111
+00011111111011111111111000001101
+10011010001000001010001000000000
+01101111111000001000000000110010
+11100111111000001000000000010001
+11000000000110100110011111001010
+00100000011000000000000000000000
+01101111111000110000000101111000
+11100111111000110000000000000101
+01101111111000110100001011011101
+11100111111000110000000000000101
+00100000011000000000000000000000
+01000100111010011100000000011010
+00100000010000000110011111010101
+01101111111000100100011010100011
+01100111111000100100010111111111
+01100111111000100100010110100110
+00100000011000000000000000000000
+01000100111010100100000000011010
+11011010001000000100011001111001
+01101111111000001100011001111000
+11000001000000000000000000000000
+00011111111000001111111111111111
+00011111111011111111111000001101
+10011010001000001010001000000000
+11101111111000001000000000010001
+01100111111000001100001111111100
+11000001100110100000000000000000
+11101111111000110000000000000110
+01100111111000110100000100010110
+11101111111000110000000000000110
+01100111111000110100001011011101
+00100000011000000000000000000000
+01101111111000001000000000110010
+11000001100110100000000000000000
+01100111111000001100100010000100
+01101111111000110000000101111000
+01100111111000110100100010000101
+01101111111000111100100010000100
+11011000110000000100011001111001
+11011111001000000000000000000011
+11101000010000111000000000000110
+10011000010001100111110000000000
+00100000001000101110011111110010
+00011000110000001000110000000111
+11000010000000000110011111101100
+00100000011000000000000000000000
+00011000110000001000110111111010
+00011000110000100000101000000000
+01101000010010110100100010000101
+00011000010000001000010000000011
+11100000010000110000000000000101
+00100000011000000000000000000000
+01101111111000110100001011011101
+01100111111000110100011010000000
+00011111111000001111111100000000
+01100111111000110100011010001101
+00011111111000001111111100000000
+01100111111000110100011010011010
+00100000011000000000000000000000
+01110000010001010000001111111111
+01110000010001010000010100000000
+01101111111000010100011001010001
+01100111111000010100010111101101
+01101111111000001100011001010100
+01100111111000010100010111110011
+01101111111000101100011001010111
+01100111111000101100011000111111
+01101111111000001100011001010101
+01100111111000001100010111101000
+01101111111000001100010111010000
+00100100010110100011001001001010
+00100000011000000000000000000000
+01110000010000001100000100000011
+01110000010000001010011000001000
+01110000010001110011010000000000
+01110000010001110011010100000000
+01011000000000000000001000000000
+01100111111000010100000010100100
+01110000010000101110001100010111
+01110000010000101110010100010111
+01101111111000001100011001111000
+01100111111000001100011100010111
+01101111111000011100001011100000
+01100111111000011100011101010110
+01011000000000000100011110000010
+01100111111000010100001101000011
+01011000000000000000000000100000
+01100111111000010100001101000101
+00100000001000000101100100110000
+01100000010010011100011011111000
+01100000010010011100011011111011
+00100000011000000000000000000000
+01110000010000001001010000000001
+00100000011000000000000000000000
+01110000010000001001010000000000
+00100000011000000000000000000000
+01110000010001110010110000000000
+01000100111010101100000000011010
+01101111111000001100011100101100
+00100000010110100110100001001011
+01101111111000001100011100100001
+11000000000000000110100000101110
+11000000000000101110100000110011
+11000000000000011110100000110110
+11000000000000010110100000111001
+11000000000001000100100010000101
+01101111111000001100001111001111
+11000000000001111100100010001110
+01110000010001110111001100001000
+01101000010010010100011101110100
+00100000001000000110100001000011
+01110000010001110111001100000100
+01101000010010010100011101110110
+00100000001000000110100001000011
+01110000010001110111001100000011
+01101000010010010100011101110110
+00100000001000000110100001000011
+01110000010001110111001100000010
+01101000010010010100011101111000
+00100000001000000110100001000011
+01101111111000001100011100101011
+11000000000000001110100000100101
+01110000010001110111001100000111
+01101111111000111100011001011100
+01100111111000111100011100100010
+01101000010010010100001110011111
+00100000001000000110100001000011
+01000100111010110100000000011010
+01101111111000001100011101110011
+00011111111000100010001000000000
+00100000010000000010110111001100
+01101000010010001100011101110011
+00011000010000100111001000000000
+11011000110000000100011100100010
+00100000001000000111110011011100
+11011111001000000000000000001001
+11011000101000000100011100100010
+00100000001000000111110010100011
+11011111001000000000000000001010
+11011000110000000100100111111101
+11011000101000000100011100100001
+00100000001000000111110011011100
+01101111111000001100011100101100
+00100000010110100110100001001011
+11011010010000000100011100100001
+00100000011000000000000000000000
+01011000000000000000000000000001
+01100111111000001000100011110001
+01101111111000111100011001011100
+11100111111000111000000000000101
+00100000001000000011110101010010
+01101111111000001100011100101100
+00100000010110100110100001001011
+01000100101101011100000000001101
+01101111111000001100011100100001
+11000000000000000110100001100100
+11000000000000010110100001101001
+11000000000000011110100001101111
+11000000000000101110100001110101
+11000000000001000100101000010101
+00100000010000000011110101100001
+11011000110000000100011100100010
+11011000101000000000100100000001
+11011111001000000000000000001001
+00100000001000000111110011011100
+01110000000010001110101000100010
+01011000000000000000000000000010
+01100111111000001000100100101001
+01101111111000001100011100100010
+11100111111000001000000000000101
+00100000001000000011110101010011
+01110000000010001110101000100001
+01011000000000000000000000000011
+01100111111000001000100100100001
+01101111111000011100011100100010
+11100111111000011000000000000101
+00100000001000000011110101010011
+01110000000010001110101000100011
+01011000000000000000000000000101
+00100000001000000110100001110001
+01101111111000001100011101001111
+11000000011111111010110110001010
+01101111111000001100011101001111
+00100000001110100010110110001010
+01101111111000001100100010000010
+11000010100000001010110110001010
+01011000000000000000000000011010
+01101000010010010100001110011100
+10011000010001100111110000000000
+00100100001000101010110110001010
+00100000001000000010110100100100
+01011000000000000000000000000000
+01100111111000011100011100001010
+00100000011000000000000000000000
+01101111111001000100011100001110
+11000100000001101000000000000000
+01101111111000001100011100111101
+00100000011110100000000000000000
+01101111111000001100011000011001
+00100000011110100000000000000000
+01101111111000001100011100000111
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100111111000001100011100000111
+00100100011110100000000000000000
+01110000010001110000100000000000
+01000100111010111100000000011010
+01101111111000001100011100001000
+00011111111000001111111000000001
+01100111111000001100011100001000
+00011111111001100111110000001000
+00100100001000010110100010011110
+00100000010000000011010101010111
+00100000010000000011011000101010
+00100100001011000110100010100100
+00100100001101111110100010100100
+00100000010000000110100010111100
+00100000010000000110100010110001
+00100000010000000011010101010011
+01101111111000001100011100001001
+00011111111000001111111000000001
+01100111111000001100011100001001
+11000000000010000110100010100110
+00100000011000000000000000000000
+00100000010000000011001000000001
+00100000001000000110100010010010
+01000100111011000100000000011011
+01110000010001110000100100000000
+01101111111000001100011100001010
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100111111000001100011100001010
+01101111111000010100011100011100
+01100111111000010100011101000001
+01101111111000001100001111001111
+11000000000001000101001100000011
+00100000011000000000000000000000
+01101111111000001100011000011001
+00100000001110100110100010000011
+01110000010001110000100100000000
+01101111111000001100011100001010
+11000100000000000000000000000000
+01111001001111111111111000000000
+01100111111000001100011100001010
+00100000010000000101010100110101
+01101111111000001100001111001111
+11000000000001000101001001100011
+00100000011000000000000000000000
+00100000010000000011011001000111
+01101111111000001100010100001111
+00101111111000011111000000001000
+00100100011000001000000000000000
+01101111111000001100010100010000
+11000000011111111101100100001010
+01100111111000001100011100001101
+00100000011000000000000000000000
+01101111111000001100011001111000
+11000001100000000000000000000000
+01101111111000001100010111100001
+00100000011110100000000000000000
+01110000100000000100001000000010
+01110000100000010011000011111000
+00100000011000000000000000000000
+01011000000000000100111100011111
+01100111111000010100001111110000
+01011000000000000101101011101110
+01100111111000010100001111101010
+01011000000000000101101011110000
+01100111111000010100001111101110
+00100000011000000000000000000000
+00100000001101011110100011010111
+01011000000000000100010001100111
+11011000101000000100010001011000
+10011000101001100111001000000000
+00100000010000000111110010100011
+00100000011000000000000000000000
+11011000111000000000000000000000
+11011010010000000000000000000000
+00011000111001100111110000000111
+00100100011000010000000000000000
+10101010001011111111111111111111
+00100000001000001110100011011111
+00100000001000000110100011100011
+00011000010000100111111000000000
+00100000001110100110100011100011
+11111001001000000010010000000000
+00011000010000001000010111111111
+00011000111000001000111000000001
+00100000001000000110100011011010
+01101011000000010100001101000011
+01101101011000010100001101000101
+00100000010000000111110110111110
+00100000001000000110100011101001
+01000100111011010100000000011011
+00100000010000000110100100110101
+00100100001110100010001100111110
+00100000010000000110100101000101
+11011111001000000000000000001000
+01101000010010001100010001011000
+00011111001001100000111000001000
+10101000010011111111111111111111
+00100000001000001110100011110110
+00100000010000000110100011111101
+00100100001000010110100011110110
+00100000010000000110100100010011
+00100000001000000110100011111010
+00011101011000100111111000000000
+10011011000000001011000000000000
+11000010000000000110100011101110
+00100000001000000010001100111110
+00011011000000100111111000000000
+00011011000000100000101000000000
+00100000011000000000000000000000
+01000100111011011100000000011011
+00011111001001100000111000001000
+11011000010000000000000000000000
+11011001011000000000000000000000
+00011000111000100111111000000000
+11000000000001000110100100001110
+01101111111000001100010001011000
+10101111111011111111111111111111
+00100000001000001110100100001110
+11111001001000000001011000000000
+00011101011000100111111000000000
+10011000010000001000010000000000
+00011000111000001000111000000001
+00011010001000100111111000000000
+10011000010001100111110000000000
+00100000001000101110100100001110
+00100000001000010110100100000001
+00011000010000100111111000000000
+10011010001001100111110000000000
+00100100011000101000000000000000
+11111001001000000001011000000000
+00100000011000000000000000000000
+01000100111011100100000000011011
+00100000010000000110100100110101
+00100100001110100010001100111110
+00100000010000000110100100111011
+00100000001110100110100100011100
+01101111111001001100010001011100
+01100111111001001100010001011001
+01011000000000000000000000000000
+11100111111000011000000000000101
+01100001011000001100010001100010
+01100011000000010100010001100011
+00100000011000000000000000000000
+01000100111011101100000000011011
+00100000010000000110100100111110
+00011000110000001000110000000001
+11101111111000010000000000000110
+00100000011000000000000000000000
+01000100111011110100000000011011
+00100000010000000110100100111110
+00011000110000100000101000000000
+00011000110000100000010000000000
+01011000000000000000000000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01000100111011111100000000011011
+00100000010000000110100100111011
+00100000001110100010001100111110
+01101111111000011100010001011111
+01100111111000011100010001100010
+01101111111000011100010001011100
+01100111111000011100010001011111
+01101111111000011100010001011001
+01100111111000011100010001011100
+00100000011000000000000000000000
+01000100111100000100000000011100
+01101111111000011100010001011001
+00100000011000000000000000000000
+01000100111100001100000000011100
+01101111111000011100010001011100
+00100000011000000000000000000000
+01000100111100010100000000011100
+01101111111000011100010001100010
+00100000011000000000000000000000
+00100000010000000110100100111011
+00100000001110100110100101000011
+11011000110000000100010001011001
+11101111111000011000000000000110
+00100000001110100110100101000001
+00011000110000001000110111111101
+00100000011000000000000000000000
+01000100111100011100000000011100
+11011111001000000000000000000100
+11011000110000000100010001011001
+11011000010000000000000000000000
+11101111111000011000000000000110
+00011111111000010111111011111111
+10011000010000011000010000000000
+11000010000000000110100101001001
+01100000010010001100010001011000
+00100000011000000000000000000000
+11011000111000000000000000001100
+00100000001000000010010010111110
+11011000111000000000000000001100
+00100000001000000010010011000010
+01000100111100101100000000011100
+00011000010001100111110011111111
+00100000011000101000000000000000
+00011000010000100111111000000000
+00011111111000010111111011111111
+00011111111001100111110000001111
+00100100001000010110100101100101
+11011000101000001000000001110000
+10011000101000001000101000000000
+00011000101000100010001000000000
+11011000010000000000000000111110
+11100000010000001000000000000101
+00100000010000000110100101101000
+00100000000000000000000000011110
+00011010001000100000101000000000
+11011000010000000000000000111111
+11100000010000001000000000000101
+00100000001000000110100101101100
+11011000101000001000000011010100
+00011111111000001111111111110000
+00100000001000000110100101011011
+01101111111100001000000010000001
+00011111111000010111111001111111
+01100111111100001000000010000001
+00100000011000000000000000000000
+01101111111100001000000010000001
+00011111111000011111111010000000
+01100111111100001000000010000001
+00100000011000000000000000000000
+00100000001000000110101111000110
+00100000001000000110101111001101
+01101111111100001000000001101111
+01111001001111111111111000000111
+01100111111100001000000001101111
+00100000011000000000000000000000
+00100100001101000110100101111010
+01101111111100001000000001101111
+01111001001000000111111000000111
+01100111111100001000000001101111
+00011000010000100111110000000000
+00100000001000101110100101111101
+00011010011000100111101000000000
+00101111110011000000000000000000
+00100000001000000110101011101001
+00011000000000000000010000000100
+11011010001000000000000111000101
+00100000010000000110100101110010
+00100000010000000110100101111010
+11011010001000000101010110101010
+01101111111000010000000111000101
+11101000010000010000000000000110
+10011010001001100111110000000000
+00100000011000000000000000000000
+00100000010101000110100110011010
+11011000010000000000000000000010
+11011010001000000100001111001100
+00100000010000000110100101111010
+01101111111000010100001111001100
+01100111111000010000000110111110
+00100000010101000110100110010000
+00100000011000000000000000000000
+11011000010000000000000000010000
+11011010001000000000000111001011
+00100000010000000110100101110010
+00100000010000000110100101111010
+11011000110000000000000111001011
+11011111001000000000000000010000
+00100000010000000111001101000001
+00100000010000000111001011001000
+00100000010000000111001101011101
+00100000001000000111001011000010
+01110000100000000010001100000000
+00100000010000000110100101110010
+00100000001000000111001101011101
+01011000000000000000000000000000
+01100111111000010000011001110111
+01111000010101101111110000000000
+00100000010000000110100101111111
+00100100011000101000000000000000
+01111000001101101111110000000000
+01011000000000001000000000000000
+01100111111100011000000000100010
+11011010001000001000000000100101
+00100000010000000110100101110110
+01110000100000000010001100000000
+01101111111000001000000110111011
+11000100000000000000000000000000
+11011000010000000000000000000110
+00100000010000000110100110000000
+00100100001000101110100110111010
+11101010001000010000000000000110
+00100000010000000110100101111010
+00100000010000000110100110110001
+00100000001000000110100110101010
+01101111111000010000011001110111
+11011111001000000000000000000110
+11011000110000000000000111000101
+00100000010000000111110111010000
+01101111001000010000000111000111
+00011010001000100000110000000000
+00100000010000000111110111010000
+01100111111000010000011001110111
+00100000011000000000000000000000
+01101111111000001000000111111010
+11000000001011010110100111001000
+11011010001000001010101001010101
+01101111111000010000000111000101
+10011010001001100111110000000000
+00100100001000101110100111001010
+11011010001000000101010110101010
+01101111111000010000000111000111
+10011010001001100111110000000000
+00100100001000101110100111001010
+01101111111000010000000111001001
+01101000010010010000011001110111
+10011000010001100111110000000000
+00100100001000101110100111001010
+01111001001000000010001000001111
+00100000001000000110100101111101
+01110000000000011011101100000000
+00100000011000000000000000000000
+00011111111000010111111011111111
+00011111111100011111111000000000
+01100111111000001100001111001111
+00100000001000000110101000010001
+01101111111100010000000101000011
+00100100001110100110100111001100
+00100000010000000110101000010001
+01101111111000010100001111001111
+00100000011110100000000000000000
+00100000010000000110100111010111
+00100000001000000010001110011100
+01101111111000001100001111001111
+00100000011110100000000000000000
+00011111111000010000010000001111
+01100000010010001100001111001111
+00011111111100011111111000000000
+10011000010000101111111000000000
+11000000100001111110101110111000
+00100000001000000110101101111011
+01101111111000001000000111110111
+00100100010110100010001111000010
+01101111111000001000000111111000
+00100000011110100000000000000000
+00100000001000000010001111000111
+01000100111100110100000000011100
+00100100011101011000000000000000
+01101111111000010100000101011101
+00100000011110100000000000000000
+01100111111000010000000111101101
+00100000001000000110100111111011
+00100000010000000110100111011111
+01101111111000100000000111101011
+00100000011110100000000000000000
+00110111110110011000001000000000
+01101111111100001000000100110110
+00011111111000010111111011110000
+01101000010010001000000111101011
+10011000010000011111111000000000
+01100111111100001000000100110110
+00110111110110011000001000000000
+01101111111100001000000100111000
+00011111111000010111111000000111
+01101000010010001000000111101100
+00011000010010011000010000000000
+10011000010000011111111000000000
+01100111111100001000000100111000
+00110111110110011000001000000000
+01101111111100001000101011001011
+00011111111000010111111011110000
+01101000010010001000000111101101
+01100000010010001100000101011101
+10011000010000011111111000000000
+01100111111100001000101011001011
+01101111111000001000000111101110
+01100111111000001100000101011110
+00101111111011111111111000000011
+01101111111100001000101000000110
+01111001001000001111111000000111
+01100111111100001000101000000110
+01101111111000001000000111101110
+00011111111000010000010000000111
+00011000010100100000010000000000
+00011000010000111000010000000000
+01100000010010001100010001001111
+01101111111100001000101000000010
+00011111111000010111111000011111
+10011000010000011111111000000000
+01100111111100001000101000000010
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101111111000001100001111001110
+11000100000000011000000000000000
+00100000010000000110101001100111
+11011111111000000000111111110000
+10011010010000001010010000000000
+00011000000000000111001000010000
+11011010001000000000000111001011
+00100000010000000110101101100010
+01110000100000000000011000001000
+11011000110000000000000111001011
+00100000010000000111001101001101
+11011000101000000000000111001011
+00100000010000000111110010011011
+00100000001000000111110110111100
+01110000100000000101000000100101
+00100000010000000110101100101000
+11011010010000000000000000000000
+00011000000000000111001000001011
+11011010001000000100001111001100
+00100000010000000110101101100011
+01101110111000101100001111001100
+01101101011000110100001111010001
+01101111111000001100001111001110
+11000011000000100110101000110001
+01110000100000000110111100000111
+01101111111100001000000101011110
+11000000100000111110101000101011
+01101111111100001000000101100000
+00011111111100100111111000000000
+01100111111100001000000001101111
+00100000001000000110101000110100
+00100000010000000110101011011100
+00100000010000000111110101111000
+00100000010000000111110101110110
+01100110111000101100001111001100
+01100101011000110100001111010001
+00100000010000000110101001100111
+11011111111000000000111111010000
+10011010010000001010010000000000
+11011111001000000000000000100000
+11011010001000000000000111011011
+00100000010000000110101101100010
+00100000010000000110100111101010
+00100000010000000110100111010000
+01101111111000001100001111001110
+11000011000000011110101001001001
+01101000010010001100001111010000
+11011111111000000000000000000000
+01111001001000000111111000000110
+01111001001000000111111000000111
+10011000010000010010001000000000
+00011010001001100111110000000000
+00100000001000101110101010101011
+10011010001001100111110000000000
+00100000001000101110101010101011
+01110000000000000011000000000000
+11011010011000000110101100001100
+00100000010000000110101010011111
+00100100001000010110101010101011
+01101111111000010100001111001100
+00100000001110100110101001010110
+00100000010000000110100110001101
+00100000010000000110100110011101
+00100100001101101110101001010110
+01101111111000001000000110111011
+00101111111000000000011000000011
+00100100001000001110101001001011
+00100000010000000110101001100100
+00100000010000000110101100100101
+01110000000000000011000000000000
+00100000010000000110101010011111
+00100100001000010110101010101011
+01101111111000001100001111001110
+11000010100000010110101001110111
+00100000010000000110101010010001
+00100000010000000110110010111010
+00100000010000000110101010011001
+00100100001101101110101001101110
+01101111111000001000000110111011
+00101111111000000000011000000011
+00100100001000001110101001011000
+00100000001000000110101001110111
+01011000000000000000000111111111
+11011111101000000000000000000000
+00100000011000000000000000000000
+11011010010000000001000000000000
+01101111111100001000000101000100
+11000010100000111110101001101100
+01101111111000001100001111010000
+11000100000000111000000000000000
+11011010010000000000000000000000
+00100000011000000000000000000000
+00100000010000000110110010110111
+01101111111000001100001111001110
+11000010100000010110101001110111
+00100000010000000110101010011001
+00100100001101101110101001110111
+01101111111000001000000110111011
+00101111111000000000011000000011
+00100100001000001110101001011000
+00100000001000000110101010000111
+01110000000000000011000000000000
+00100000010000000110101010011111
+00100100001000010110101010101011
+01101111111000001100001111001110
+11000010100000001110101010000111
+00100000010000000110110000010110
+00100000000000000000000011001000
+00100000010000000110110000100101
+00100000000000000000000001100100
+11011010011000000110110001100010
+00100000010000000110100110001000
+00100000010000000110100110011101
+00100100001101101110101010000111
+01101111111000001000000110111011
+00101111111000000000011000000011
+00100100001000001110101001111000
+00100000010000000110101010001011
+01101111111000001100001111001110
+11000100000000000000000000000000
+00100000001000000110011011110010
+11011000101000000000000111001011
+00100000010000000111110010011011
+00011000000000000111000000000100
+00100000010000000111001101011110
+01110000100000000101000000100001
+00100000011000000000000000000000
+01101111111000001100010001000000
+01101000010010001100010000111111
+10011000010001100111110000000000
+00100100001000101110110010110010
+01110000010001000011111000000100
+01110000010001000011111100001000
+01110000010001000100000000000111
+00100000001000000110110010110010
+01011000000000000000000000000000
+01100111111000010000000110111110
+11011010011000000110110011011101
+00100000010000000110110010011011
+00100000010000000110100110001000
+00100000001000000110100110011101
+00100000010000000110101010100101
+01101111111000001000000000110000
+00011111111000001111111000000001
+00011111111001100111110000000011
+01100111111000001000000000110000
+00100000011000000000000000000000
+01101111111000001000000000110000
+00100000011110100000000000000000
+01101111111000001000000111111001
+00100000011110100000000000000000
+00011111111000100111001000000000
+00100000001000000111110010011000
+00100000010000000110101010001011
+00100000010000000110100101110010
+00100000010000000111110101111110
+00100000011000000000000000000000
+00100000010000000110101011011100
+00100000010000000110101010110111
+01101111111100001000000001101111
+11000100000000110000000000000000
+00100000010000000110101011010001
+11011111001000000000000000000100
+11011000110000000100001111011000
+00100000001000000110101100000111
+01101111111100001000000001101111
+11000100000000101000000000000000
+01101000010010010100001111010011
+00011000010010010000010000000000
+11011111111000000100000000000000
+10011000010000001000101000000000
+01101111111000001100001111010111
+00100000001000000111110111001110
+01000111011110010100000000111110
+01101111111100001000000001101111
+11000100000000101000000000000000
+01101010001000010100001111010011
+00011010001010010010001000000000
+11011111111000000100000000000000
+10011010001000001000110000000000
+11101111111000001000000000000110
+01100111111000001100001111010111
+00100000011000000000000000000000
+00100000011101011000000000000000
+01101111111100001000000001101111
+11000100000000110000000000000000
+00100000010000000110101011010001
+00100000000000000000000000001010
+11011111001000000000000000000100
+11011000101000000100001111011000
+00100000001000000110101011111010
+01110000100000000010001000000000
+01101111111000010100001111010101
+00011111111100011111111000000000
+00011111111000110111111000000000
+00011111111100011000010000000000
+00011000010010110000010000000000
+01111001001000000000010000000111
+01100000010110001000000000100011
+00011111111010111111111000000000
+01100111111100001000000000100100
+00100000011000000000000000000000
+01101111111000001100001111001110
+00011111111000010111111011100000
+00100000011110100000000000000000
+00011111111000110111111000000000
+01100111111100001000000001101111
+01011000000000000000000000000001
+11011000110000000100001111010001
+11101000010000010000000000000110
+01100000010110010000000001001100
+01100111111100001000000000100000
+00011111111000111111111000000000
+11000011000000011110101011100011
+00100000011000000000000000000000
+01101111111000001000000110111011
+00011111111000111111111000000000
+01111001001000001111111000000000
+00101010001011000000000000001111
+00100000011000001000000000000000
+01100111111000001000000110111011
+00100000011000000000000000000000
+01101111111100001000000001101111
+11000100000000111000000000000000
+00100000001000000110101011110110
+01101111111100001000000100101000
+10101111111011111111111111111111
+00100000011000001000000000000000
+01101111111100001000000100001000
+11000011000000001110101011110011
+00100000010000000111001011000010
+00100000001000000110101011110011
+01101111111100001000000000100101
+11100111111000001000000000000101
+11000010000000000110101011111010
+01110000100000000010001100000000
+00100000011000000000000000000000
+01101111111000010100000011110000
+00100000011110100000000000000000
+01110000100000000010001110000000
+01110000100000000010001000000000
+01110000100000000010010000000000
+01101000010010010100000011110010
+00011000010010111111001000000000
+10011000000000000000110000000000
+11101111111000001000000000000110
+01100111111100001000000000100101
+11000010000000000110101100000111
+01110000100000000010001100000000
+00100000011000000000000000000000
+00011000010000100111001000000000
+01101111111000010000000110111110
+10011000010000001000010000000000
+01100000010010010000000110111110
+10011000000000000010010000000000
+00011010001000100101110000000000
+01110000100000000000011000010000
+00100000010000000110101101100010
+00011101110000100010001000000000
+00101010001011000000000000001111
+00100000011000001000000000000000
+00100000010110100111110111001000
+00100000001000000110101011101001
+01110000100010101100100000000001
+00100000000000000000000100101100
+01110000100010101100100000000101
+00100000000000000000000001100100
+01110000100010101100100000100101
+00100000000000000000001111101000
+01110000100010101100100000100111
+00100000000000000000000100101100
+00100000011000000000000000000000
+00100000010000000110101100011001
+01110000100010101100100000111111
+00100000011000000000000000000000
+01110000100000000100011110000011
+01110000100010101100100000000000
+00100000011000000000000000000000
+00100000010000000110101100011001
+01110000100000000100011110000010
+00100000000000000000000000001100
+01110000100000000100011110000000
+01110000100000000100011110000010
+00100000000000000000000010010110
+00100000011000000000000000000000
+00011010010010011010010000000000
+01100010010100010000000001000100
+01110000100000000100011000000000
+00100000011000000000000000000000
+01000100111101001100000000011101
+00100000010000000110101100100010
+00100000010000000110101100101111
+00100000010000000110101100101001
+11101000010000001000000000010001
+00011010001000001010001000000001
+00011000000000000000111000000000
+10101000010011000000000000000000
+00100000001000001110101101011010
+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
+00100000001000001110101100111010
+01101111111100010000000001000100
+00011111111000001111111000000001
+01100111111100010000000001000100
+00011000111000001000111000000001
+00101000111000000001111000001000
+00100100001000001110101100111010
+11000010000000000110101100110111
+00100000001000000110101100100110
+01000100111101010100000000011101
+00100000010000000110101100101111
+01110000100000000100011110100010
+00011010010000001010010000001000
+11011000111000000000000000000000
+01011111111111111111111111111111
+01101000010110001000000000000111
+11100000010000001000000000010001
+10011000010011000111111000000000
+01110000100000000000011000100000
+01100010010100010000000001000100
+00101010001011111111111000001111
+00100000001000001110101101110001
+00011010001000001010001000000001
+00100000001000000110101101110111
+00100100001101000110101101110111
+00011000111000001000111000000001
+00101000111000000001111000000000
+00100100001000001110101101110111
+00100000010000000111001011000010
+01110000100000000000011000010000
+00011010010000001010010000001000
+11000010000000000110101101101000
+01110000100000000100011110000010
+00100000011000000000000000000000
+01101111111000001100001111001111
+11000000000001010110101110001100
+11000000000000100110101110010000
+11000000000001000110101110010110
+11000000000001001110101110100000
+11000000000000110110101110100000
+11000000000001100110101110001100
+11000000000001101110101110100111
+11000000000001110110101110100100
+11000000000001111110101110001001
+11000000000000001110101110110000
+11000000000000010110101110110101
+11000000000000111110101110011100
+00100000001000000110101110111000
+11011111111000000100101000110001
+11011000010000000110011011011001
+00100000001000000110101110101101
+11011111111000000011011111000001
+11011000010000000100101000101111
+00100000010000000110101110101101
+00100000001000000110101110110101
+11011111111000000011111010001111
+11011000010000000110011011011001
+00100000010000000110101110101101
+11011111111000000011011111000001
+11011000010000000011110011000111
+00100000001000000110101110110010
+11011111111000000011011111000001
+11011000010000000100110100001101
+00100000010000000110101110101101
+11011111111000000101101111110111
+11011000010000000110011011011001
+00100000001000000110101110110010
+11011111111000000011011111000001
+11011000010000000100110100001101
+00100000010000000110101110101101
+00100000001000000110101110110000
+11011111111000000011011111000001
+11011000010000000110000011000000
+00100000010000000110101110101101
+00100000001000000110101110110101
+11011111111000000011110011010001
+11011000010000000110011011011001
+00100000001000000110101110101101
+11011111111000000011110011010001
+11011000010000000110011011011001
+00100000010000000110101110101101
+11011111111000000010101011100011
+11011000010000000011000011101011
+00100000001000000110101110110010
+00011000010100000000010000000000
+10011000010000011111111000000000
+00100000001000000010001110110001
+11011111111000000010101101101110
+11011000010000000011000011101011
+00011000010100000000010000000000
+10011000010000011111111000000000
+00100000001000000010001110111000
+11011111111000000011000011110001
+11011000010000000011011010111111
+00100000001000000110101110110010
+00100000010000000110101110110101
+11011111111000000010101101101110
+11011000010000000011000011101011
+00100000001000000110101110101101
+01000100111101011100000000011101
+01101111111000001100001111111110
+01100111111100001000000010000000
+01101111111000001100001111111111
+01100111111100001000000010000001
+01011000000000000000000110111100
+01100111111100010000000010000100
+01011000000000000000000111000001
+01100111111100010000000010000110
+00100000001000000110100101101000
+01111001001000000111111000000111
+01100111111000010000000110111100
+01000100111101100100000000011101
+01110000100000001000001000000010
+01110000100000001000100000000000
+01110000100000000000011000000010
+00100000001000000110101111010110
+00011000000000000000010000000001
+01100111111000001000000110111100
+01000100111101101100000000011101
+01110000100000001000001000000001
+01100000010110010000000010001000
+01110000100000000000011000000010
+00100000010000000110101111010110
+01101111111000001000000111000001
+00100000011000000000000000000000
+00100000000000000000000000000101
+01101111111100001000000100101000
+11000011000000011110101111010110
+00100000011000000000000000000000
+01111000010101000111110000000000
+00011111111000100010010000000000
+01101111111000001100010000110111
+11000001100000000000000000000000
+01111000001101000111110000000000
+00011010010000100111111000000000
+00100000001000000110101111101000
+01101111111000001100010000110111
+11000000000000001110101111101000
+11000000000000010110101111101110
+11000000000000011110101111110110
+11000000000000100110101111111010
+11000000000000101110110000000001
+00100000011000000000000000000000
+01100111111000011100010000110000
+00011010001000100111111000000000
+01100111111000010100010000110011
+01100000010010010100010000110101
+01110000010001000011011100000010
+00100000001000000110110000010110
+00100000010000000110110000010110
+01110000010001000011011100000011
+00100000010000000110110000011100
+11011010001000000000000110111100
+01110000100000001000001000000100
+01101111111000011100010000110000
+11011000010000000000000000100000
+00100000001000000110110000110110
+00100000010000000110110000010110
+00100000010000000110110001011001
+01110000010001000011011100000100
+00100000011000000000000000000000
+01000100111101110100000000011101
+00100000010000000110110000010110
+01110000010001000011011100000101
+00100000010000000110110000011100
+00100000010000000110110000001110
+00100000010000000110110000110010
+00100000001000000110110000001001
+00100000010000000110110000010110
+00100000010000000110110000011100
+01011000000000000000000000000101
+00100000010000000110101111001101
+11000011100000000000000000000000
+01110000010001000011011100000000
+01101111111000010100001111110000
+00100000001000000111110101111011
+01101111111000100000011001010110
+01101000010010010100010000110011
+00011000010000001000010111111100
+11100111111000100000000000000010
+00100000011000000000000000000000
+01101000010010010100010000110011
+00011000010000100010001000000000
+00011000010000001000010111111100
+11101111111000100000000000000010
+01100111111000100000011001010110
+01101000010010010100010000110101
+01101111111000011100010000110000
+00100000011000000000000000000000
+01000100111101111100000000011101
+00100000010000000110110010000001
+00100000010000000110100101101000
+01011000000000000000000000000000
+01100111111000100000000110111100
+00100000011000000000000000000000
+01110000000000011011110000000110
+01011000000000000000000000000000
+01100111111100010000000010001000
+01011000000000000000000000000001
+01100111111100010000000010000010
+01011000000000000000000110111100
+01100111111100010000000010000100
+01110000100000000000011000000010
+00100000001000000110101111010110
+01110000000000011011110010101011
+00100000001000000110110000011101
+01110000000000011011110010111001
+00100000001000000110110000011101
+01100111111000011000011001001110
+01100000010010010000011001010110
+01100010001000010000011001100010
+01000100111110000100000000011110
+00100000010000000110110000011100
+01101111111000011000011001001110
+01101000010010010000011001010110
+01101010001000010000011001100010
+00100000001000000110110000110010
+00011000010000001000010000000100
+01100000010110010000000010000010
+11011000010000000000000000000010
+00011010001000001010001111111100
+11100000010000001000000000010001
+00011111111100010000010000000000
+11100000010000001000000000000101
+00011111111011001000010000000000
+11100000010000001000000000000101
+11100111111000001000000000000101
+00011010001000100111111000000000
+01100111111100010000000010000100
+01011000000000000000000000000000
+01100111111100010000000010001000
+01110000100000000000011000000010
+00100000010000000110101111010110
+00100000001000000110110001011001
+01100000010110010000000010001000
+00011111111100010000010000000000
+01100000010010001000000110111101
+00011111111011001000010000000000
+01100000010010001000000110111110
+01100111111000001000000110111111
+01011000000000000000000000000100
+01100111111100010000000010000010
+01110000000000011011110000000011
+01011000000000000000000110111100
+01100111111100010000000010000100
+00011010001000100111111000000000
+01100111111100010000000010000110
+01101111111100001000000010000000
+00101010001011000000000000001111
+01111001001000001111111000000110
+01100111111100001000000010000000
+01110000100000000000011000000010
+01101111111100001000000100101000
+11000010100000111110110001010101
+11011000111000000000000000000011
+00100000001000000110101111010110
+01011000000000000000011111010000
+00100000010000000010001101000000
+00100000010000000110110000011100
+01011000000000000000000111000001
+01100111111100010000000010000110
+01011000000000000000000000000101
+00100000010000000110101111001101
+11000010100000000110110001011001
+00100000011000000000000000000000
+01100000010110010000000010001000
+01011000000000000000000000000100
+01100111111100010000000010000010
+01110000000000011011110000000011
+01011000000000000000000110111100
+01100111111100010000000010000100
+00011010001000100111111000000000
+01100111111100010000000010000110
+01101111111100001000000010000000
+00101010001011000000000000001111
+01111001001000001111111000000110
+01100111111100001000000010000000
+01110000100000000000011000000010
+01101111111100001000000100101000
+11000010100000111110110001101111
+11011000111000000000000000000011
+00100000010000000110101011110000
+00100000010000000110101111010110
+00101111111011111111111000000010
+00100000010000000110101011101001
+01101111111000001000000110111101
+00011111111100000010010000000000
+01101111111000010000000110111110
+00011111111100001111111000000000
+10011010010000011111111000000000
+10011000010000001111111000000000
+01100111111000001000000110111111
+00011111111011001111111000000000
+00011111111100001111111000000000
+01100111111000010000000110111101
+00100000011000000000000000000000
+01101111111000001100010000111000
+01101000010010001100010000111010
+10011000010001100111110000000000
+00100100001000101110110010000110
+00100000010000000110110010010010
+01101111111000001100010000111000
+11011000010000000000000000100000
+00100000010000000110111100011101
+01101111111000001100010000111011
+11011000010000000000000000100001
+00100000010000000110111100011101
+01101111111000001100010000111001
+11011000010000000000000000100010
+00100000010000000110111100011101
+01101111111000001100010000111010
+11011000010000000000000000011111
+00100000001000000110111100011101
+01110000010001000011100000000001
+01110000010001000011100100000011
+01110000010001000011101000000000
+01110000010001000011101100000010
+01110000010001000011110000001011
+01110000010001000011110100001010
+00100000011000000000000000000000
+01110000100000000001000000000001
+00100000011000000000000000000000
+01110000100000001000101100000101
+01110000100000001000110000000111
+01110000100000001000110100000111
+01110000100000001000111000000111
+01110000100000001000111100000111
+01110000100000001001000000000101
+01110000100000001001000100000000
+00100000011000000000000000000000
+01110000100000001000101100001100
+01110000100000001000110000001101
+01110000100000001000110100001101
+01110000100000001000111000001101
+01110000100000001000111100001101
+01110000100000001001000000001100
+01110000100000001001000100000000
+00100000011000000000000000000000
+00100000010000000110110011001110
+01101111111000001100010000111111
+11011000010000000000000001101100
+00100000010000000110111100011101
+01101111111000001100010001000000
+11011000010000000000000001101101
+00100000001000000110111100011101
+00100000010000000110110011010101
+00100000001000000110110010101100
+01101111111100001000000100101000
+11000011000000101110110010110100
+00100000011000000000000000000000
+01111001001000000000000000101000
+01110000010000111111110100001000
+00100000011000000000000000000000
+01111001001111111000000000101000
+01110000010000111111110100100000
+00100000011000000000000000000000
+01101111111000001100001111110100
+10011010010000001111111000000000
+01100111111000001000000110111110
+00100000001000000110110011000100
+01101111111000010000000110111110
+00011111111100001111111000000000
+01100111111000001000000110111110
+01011000000000000000000000000011
+01100111111100010000000010010010
+01110000000000011011110110100000
+01110000000000011011111110100001
+00100000001000000110110011100011
+01100000010010010000011001010110
+00100000010000000110110011001110
+01101000010010010000011001010110
+00100000010000000110110011111010
+00100000001000000110110011010101
+01101111111000001100010000111110
+11000001011111111000000000000000
+11000011000000110110110011010011
+01011000000000100100100111110000
+00100000010000000010001101000000
+01101000010010001100010000111110
+00100000001000000110111011110001
+01101000010010001100010000111110
+00100000001000000110111011101101
+01000100111110001100000000011110
+11000101000101000110110010111101
+01101111111000010100001111110100
+10011010010000001111111000000000
+00011111111100001111111000000000
+01100111111000010000000110111110
+01000100111110010100000000011110
+11000101000101000110110011000001
+01011000000000000000000000000100
+01100111111100010000000010010010
+01110000000000011011110110100000
+01110000000000011100000010100001
+01011000000000000000000110111101
+01100111111100010000000010010100
+01100000010110010000000010011000
+01100010001100010000000010010110
+01011000000000000000000000000010
+00101010001011000000000000001111
+01111001001000001111111000000000
+01100111111100001000000010001010
+01110000100000000000011000000100
+11011000111000000000000000000101
+00100000010000000110101011110000
+00100000010000000110110010110100
+00101111111011111111111000000100
+00100000010000000110101011101001
+11000101000101000110110011110101
+01101111111000010000000110111110
+00011111111100001111111000000000
+00100000001000000110110011110110
+01101111111000001000000110111110
+10011000010000001111111000000000
+00011111111100001111111000000000
+01100111111000010000000110111110
+00100000011000000000000000000000
+01101111111000010100001111110100
+10011010010000001111111000000000
+01100111111000010000011001001110
+01000100111110011100000000011110
+01100000010010010000011001010110
+01100010001000010000011001101101
+00100000010000000110110100001111
+01101000010010010000011001100110
+01101010001000010000011001101101
+01101111111000010000011001001110
+00100000010000000110110100110000
+01101111111000010000011001100110
+01101000010010010000011001101101
+10011000010000001000010000000000
+01100000010010010000011001101101
+01101000010010010000011001001110
+10011000010000001000010000000000
+01100000010010010000011001001110
+01101111111000010000011001010110
+00100100001110100110110100000000
+00100000011000000000000000000000
+01000100111110100100000000011110
+01101111111000001100001111111101
+00011111111000001111111111111111
+01101000010010010000011001001110
+10011000010000011111111000000000
+00011111111000001111111000000001
+01100111111000011000011001101010
+01101111111000010000011001010110
+10011000010000001111111000000000
+01101000010010011000011001101010
+10011000010001100111111000000000
+00100100001000010110110100100001
+01100111111000010000011001010110
+01101111111000011000011001101010
+01101000010010010000011001001110
+10011000010001100111111000000000
+01100111111000010000011001100110
+00100000011000000000000000000000
+01101111111000010000011001010110
+01100111111000010000011001100110
+01011000000000000000000000000000
+01100111111000010000011001010110
+00100000011000000000000000000000
+00011010010000100111111000000000
+00011000010000001000010000000010
+01100000010110010000000010010010
+00011010001000001010001111111110
+11101000010000011000000000010001
+00011000010000100010010000000000
+11011000010000000000000010100000
+11100000010000001000000000010001
+11100111111000001000000000000101
+00100000001000000110110100111101
+00011111111000100010010000000000
+01000100111110101100000000011110
+11000101000101000110110100100110
+00011010010000100111111000000000
+00011000010000001000010000000011
+01100000010110010000000010010010
+00011010001000001010001111111101
+11101000010000011000000000010001
+00011000010000100010010000000000
+11011000010000000000000010100000
+11100000010000001000000000010001
+00011111111100001111111000000000
+11100111111000010000000000000101
+01100010001100010000000010010100
+01011000000000000000000000000000
+01100111111100010000000010011000
+01110000100000001000101000000001
+01110000100000000000011000000100
+00100000010000000110110010110100
+11100010010000011000000000010001
+01000100111110110100000000011110
+01110000000000011100000000000000
+01011000000000000000000000000001
+01100111111100010000000010010010
+01110000000000011011110110100000
+01011000000000000000000110111101
+01100111111100010000000010010100
+01011000000000000000000000000000
+01100111111100010000000010011000
+01100111111100010000000010010110
+01011000000000000000000000000011
+01100111111100001000000010001010
+01110000100000000000011000000100
+00100000010000000110110010110100
+01101111111100001000000100101000
+11000100000000110000000000000000
+00100000000000000000010111011100
+01101111111000001000000111000000
+00011111111000001111111000000001
+01100111111000001000000111000000
+00011111111001100111110000101000
+00100100011000010000000000000000
+00100000001000000110110101000110
+00100000010000000111110110111100
+00100000001000000110110101011101
+00011111111100010000010000000000
+00100000010101000110110110000001
+00011111111011110111111000000000
+00011111111100010000010000000000
+00100000010101000110110101111101
+01101111111100010000000001010000
+01111001001111111111111000001111
+01100111111100010000000001010000
+00100000011000000000000000000000
+01100111111100010000000001010010
+00100000011000000000000000000000
+00100000010000000110110101101010
+00100000001000000110110101100110
+00100000010000000110110101101111
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00100000011000000000000000000000
+01101111111100001000000001000011
+11000011000000000110110101110011
+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
+00100000010000000110110110001001
+01101111111100010000000100010010
+10011000011000001000011000000000
+00100000001000000110110110001111
+00100000010000000110110110011001
+00100000001000000110110110000101
+00100000010000000110110110001101
+00100000001000000110110110011101
+01100000011000010000011001110101
+01100001010000010000011001110011
+01100010000000010000011001110001
+00100000011000000000000000000000
+01101000011000010000011001110101
+01101001010000010000011001110011
+01101010000000010000011001110001
+00100000011000000000000000000000
+01101111111100010000000100001110
+00100100001110100110110110100001
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011111001000001111001111111000
+00100000010000010110110110110001
+00100000011000101000000000000000
+00100000001000010110110110100110
+00011111001000001111001000001000
+00011111001000001111001111111100
+00100000010000010110110110110100
+00100000011000101000000000000000
+00100000001000010110110110101011
+00011111001000001111001000000100
+00100000001000000110110110110111
+11101111111001000000000000000110
+11100111111001000000000000000011
+00100000011000000000000000000000
+11101111111000100000000000000110
+11100111111000100000000000000011
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+11101111111000001000000000000110
+11100111111000001000000000000011
+11000010000000000110110110111001
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011111001000001111001111111000
+00100000010000010110110111001010
+00100000011000101000000000000000
+00100000001000010110110110111111
+00011111001000001111001000001000
+00011111001000001111001111111100
+00100000010000010110110111001101
+00100000011000101000000000000000
+00100000001000010110110111000100
+00011111001000001111001000000100
+00100000001000000110110111010000
+11101111111001000000000000000011
+11100111111001000000000000000101
+00100000011000000000000000000000
+11101111111000100000000000000011
+11100111111000100000000000000101
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+11101111111000001000000000000011
+11100111111000001000000000000101
+11000010000000000110110111010010
+00100000011000000000000000000000
+01110000000001100100110100111101
+00100000001000000111100000011001
+01000100111110111100000000011110
+01101111111000001100010000000011
+00100000011110100000000000000000
+00100000010000000110111001111001
+00100000010000101110111001111111
+00100000010000000111110111000010
+00100000010000000110111000001011
+01101111111000001100010000000011
+00011111111000100010011000000000
+01101000010010010100010000000001
+01100000010010010000000000110011
+00011010011000100111111000000000
+00100000001110100110110111010110
+00011010011000001010011111111111
+00011000010000100010001000000000
+11101111111000001000000000010001
+01101000010010001000000000110001
+10011000010001100111110000000000
+00100000010000101110110111110011
+00100000001000010110110111101111
+11101111111000001000000000010001
+00011111111000001111111000000001
+11100111111000001000000000010001
+01101000010010010000000000110011
+00011000010000001000010000100010
+01100000010010010000000000110011
+00100000001000000110110111100011
+01011000000000000000000000000000
+11100111111000001000000000010001
+01101111111000001000000000110010
+11100111111000001000000000000101
+11000000100110011110111000000000
+11101111111000110000000000000110
+11100111111001000000000000000101
+01011000000000000000000000000000
+11100111111001000000000000000101
+00011010010000100000110000000000
+00100000010000000111110010010001
+00011000000000000111110000000001
+00100000011000000000000000000000
+11000000000110110110111000000100
+11000000000110111110111000001000
+11011010010000000100001010001100
+00100000001000000110110111111000
+11011000110000000100001100001111
+00100000010000000111110010010001
+11011000110000000100001010001100
+00100000001000000110110111111101
+11011000110000000100001100000111
+00100000010000000111110010010001
+00100000001000000110111000000110
+01000100111111000100000000011111
+00100000010000000111110110111110
+01101111111000001100010000000011
+00100000011110100000000000000000
+01101111111000010100010100000000
+11000100000001001000000000000000
+01101111111000001100001011001101
+11000000000000000110111000100110
+01101111111000001000000101111101
+00101111111000011000000011000000
+00100000001000001110111000011001
+00101111111000011000000001000000
+00100000001000001110111000101011
+00100000001000000110111000100000
+00100000001101100110111000011101
+01101111111000001100001011000100
+11000011000000001110111000100110
+00100000001000000110111000100000
+00100000010000000110111000100110
+00100000011101000000000000000000
+00100000001000000110111000100000
+01101111111000001100001100000000
+11000010100000111110111000100011
+00100000001000000110111000101001
+01101111111000110000000101111000
+01100111111001000100001100000111
+00100000001000000110111000101001
+01110000000000000011001000110101
+01101111111000110000000101111000
+00100000001000000110111000101101
+01110000000000000011001000110111
+00100000001000000110111000101101
+01110000000000000011001000110110
+00100000001000000110111000101101
+01000100111111001100000000011111
+01101111111000010100010000000001
+11101000010000001000000000111111
+00011111111000001111111000000001
+01100111111000010000000000110011
+01100000010010001000000000110001
+01101111111000001100010000000011
+00011111111000100010011000000000
+01101111111000010000000000110011
+00011111111000100010001000000000
+00100000010000000110111001000101
+00100000011101000000000000000000
+01101000010010010000000000110011
+00011000010000001000010000100010
+01100000010010010000000000110011
+00011000010000001000010111111111
+11101111111000001000000000000010
+01100111111000001000000000110001
+00011010011000001010011111111111
+00100100001000101110111000110101
+01101111111000001100010000000011
+00011111111000001111111111111111
+01100111111000001000000000110001
+00100000011000000000000000000000
+01101111111000001000000000110010
+11000000100110011110111001001100
+11011010010000000000000000110010
+11011111001000000000000000000111
+00100000010000000111110101100110
+00100000001000101111110110111100
+00100000011000000000000000000000
+11000000000110110110111001001111
+11000000000110111110111001101010
+00100000001000000110111001000111
+11101000010000001000000000010001
+10011000010001100111110000000000
+00100100011000101000000000000000
+11011000101000000000011001111111
+11011111001000000000000000010000
+00100000010000000111110010100011
+01101111111000011000000101111011
+01100111111000011000011001111111
+00100000010000000110111001100001
+01101111111000010000011010011100
+00011111111100001111111000000000
+00011111111011010000010000000000
+11101111111000001000000000000110
+10011000010000001111111000000000
+01101000010010011000000101111000
+10011000010001100111110000000000
+00100000001000101111110110111100
+00100000011000000000000000000000
+11011000110000000000011001111111
+00100000010000000111001101001111
+11101111111000001000000000010001
+00100000010000000111001101010000
+00011000000000000110110000111000
+00011000000000000110110000000000
+00100000010000000111001010111101
+11011000101000000000011010001111
+00100000001000000111001101100011
+11101000010000001000000000010001
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011000110000100010001000000000
+00011000110000001010011000001000
+11011010010000000100001100000111
+11011111001000000000000000001000
+00100000010000000111110101100110
+00100000001000101111110110111100
+00011010011000100010001000000000
+11011010010000000100001100001111
+11011111001000000000000000001000
+00100000010000000111110101100110
+00100000001000101111110110111100
+00100000011000000000000000000000
+01101111111000010100010000000001
+11101000010000001000000000111111
+00011111111000001111111000100010
+11101111111000001000000000111111
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101111111000001100010000000011
+00011111111000100111001000000000
+01101000010010010100010000000001
+01011000000000000000000000000000
+11100111111000001000000000000010
+00011000010000001000010000100010
+00011111111000001111111000000001
+11000010000000000110111010000011
+00100000011000000000000000000000
+00100000010000000111110111000000
+00100000010000000110111000001011
+00100100001101000110111010010011
+01101111111000010000000000110011
+00011111111000001000110000000001
+11011000101000000100001100001111
+00100000010000000111110010010001
+11011000101000000100001010001100
+00100000010000000111110010010001
+01110000010000101001110000000001
+00100000011000000000000000000000
+01110000010000101001110000000000
+00100000011000000000000000000000
+01110000000000000011001000110100
+00100000001000000110111010010111
+01101111111000001100001111001111
+11000000000001010110110111011000
+11000000000001000101010101101001
+11000000000001111100100011110010
+00100000011000000000000000000000
+00011000010000010111111000011111
+00011111111000110111111000000000
+11011000101000000000000000010110
+10011000101000001000101000000000
+11011110000000000000000011110000
+00101000010011000000000000000000
+00100000011000001000000000000000
+11011110000000000000000000001111
+00100000011000000000000000000000
+01000100111111010100000000011111
+00011000010001100111110011111111
+00100000011000101000000000000000
+01111001001000000000010000000111
+00100000010000000110111011100000
+00100100001000001110111010111100
+01111101001000001000010000000111
+01000100111111011100000000011111
+00011000010001100111110011111111
+00100000011000101000000000000000
+11011001000000000000000000000100
+00101000010011111111111000000111
+00100000001000001110111010110011
+11011001000000000000000000000010
+00100000010000000110111010011100
+00101000010011000000000000000000
+00100000001000001110111010110111
+00011001000100100001000000000000
+11101111111000001000000000000101
+10011110000000010111111000000000
+10011001000000011111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01110000010010001000110000000001
+00100000010000000110111100001011
+11011001000000000000000000000110
+00100000001000000110111010110011
+01000100111111100100000000011111
+00011000010001100111110011111111
+00100000011000101000000000000000
+11011001000000000000000000000001
+00100000010000000110111010011100
+00101000010011000000000000000000
+00100000001000001110111011001000
+00011001000100100001000000000000
+11101111111000001000000000000101
+10011110000000010111111000000000
+10011001000000011111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+01000100111111101100000000011111
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100000010000000110111010011100
+11101111111000001000000000000101
+10011110000000010111111000000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+00100000010000000110111011001101
+00100000001000000110111011011010
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100100010101011110111010101100
+00100000010000000110111100010000
+01011000000000000000000000000000
+00101000010011111111111000000111
+01111101001000001111111000000110
+01111001001000001111111000000111
+00100000001000000110111100001001
+01000100111111110100000000011111
+11011000101000001000000100011100
+00011000010000010000111000000111
+00011000010010010111111000000000
+00011111111000010111111000000011
+10011000101000001000101000000000
+11101111111000001000000000000101
+00101000010011111111111000000111
+00100000001000001110111011101011
+10101111111011000000000000000000
+00100000011000000000000000000000
+10101111111011111111111111111111
+00100000011000000000000000000000
+00011000010001100111110011111111
+00100000011000101000000000000000
+00101111110011111111111000000111
+00100000001000000110111011110100
+00011000010001100111110011111111
+00100000011000101000000000000000
+00101111110011000000000000000111
+01011000000000000000000000000000
+01111101001000001111111000000111
+10011000010000101000010000000000
+00100000010000000110111100010000
+01011000000000000000000000111111
+00101000010011111111111000000111
+01111001001000001111111000000000
+00100000001000000110111100001001
+00011000010001100111110011111111
+00100000001000101111110111000110
+00100000010000000110111100010000
+11101111111000001000000000000101
+11000010100000000110111100000011
+00101000010011000000000000000111
+00100000011000000000000000000000
+00101000010011111111111000000111
+00100000011000000000000000000000
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100000010000000110111100010000
+01011000000000000000000011000000
+11100111111000001000000000000101
+00100000011000000000000000000000
+00011000010001100111110011111111
+00100000011000101000000000000000
+00100000010000000110111100010000
+01011000000000000000000000000000
+00100000001000000110111100001001
+00011000010000010111111000111111
+00011111111001100111110000001111
+00100100001000010110111100010110
+11011000101000001000000001110000
+10011000101000001000101000000000
+00100000011000000000000000000000
+11011000101000001000000011010100
+00011111111000001111111111110000
+00100000001000000110111100010100
+00011111111000010000010011111111
+00011111111011001111111000000000
+00100000001000000110111100011101
+11000100000000111000000000000000
+11000001011111111000000000000000
+00011111111000010111111000111111
+00011111111001100111110000001111
+00100100001000010110111100100101
+11011000101000001000000001110000
+10011000101000001000101000000000
+11100000010000001000000000000101
+00100000011000000000000000000000
+11011000101000001000000011010100
+00011111111000001111111111110000
+00100000001000000110111100100010
+00011000010000010000010000111111
+00011000010001100111110000001111
+00100100001000010110111100101111
+01011000000000001000000001110000
+10011000010000001000110000000000
+11101111111000001000000000000110
+00100000011000000000000000000000
+01011000000000001000000011010100
+00011000010000001000010111110000
+00100000001000000110111100101100
+11011111001000000000000000010000
+11011000110000001000000001110000
+00011000110000100000101000000000
+11101111111000001000000000000110
+11000000000011111110111101000101
+11000000000100000110111101000101
+11000000000100001110111101000101
+11000000000100010110111101000101
+11000000000100011110111101000101
+11000000000101100110111101000101
+11000000000101101110111101000101
+11000000000000000110111101000101
+11000010000000000110111100110100
+11011111111000001000000011011100
+10011000110001100111110000000000
+00100000011000101000000000000000
+11011111001000000000000000001000
+11011000110000001000000011010100
+00100000001000000110111100110100
+01011000000000000000000001000000
+11100111111000001000000000000101
+00100000001000000110111100111110
+01011000000000000000000010000000
+11100111111000001000000000000101
+00100000001000000110111100111110
+01101111111000001100100010001100
+00100000001110100110111101001110
+00100000001000000110111101010001
+01011000000000000000000000010000
+01100111111100001000000101000001
+00100000001000000010001111000100
+01011000000000000000000010000000
+00100000001000000110111101001111
+01000100111111111100000000011111
+00100000011101011000000000000000
+01110000100010100000011101110111
+01110000100010100000100011001001
+01110000100010100000101100000001
+01101111111000001100010000011111
+01100111111100001000000011001101
+01110000100000001100110000000011
+00100000010000000111000000001110
+01101000010110010000000101100100
+01110000100000001100110000000000
+01110000100010100000100011000001
+11011111001000000000000000001000
+11011010001000000100010000101000
+01110000100010100000101000000101
+01101111111100001000101000001100
+11100111111000001000000000010001
+00011010001000001010001000000001
+01101111111100001000101000001010
+00011111111000001111111000100000
+01100111111100001000101000001010
+11000010000000000110111101100010
+01110000100010100000011100000000
+00100000011000000000000000000000
+01101111111100001000000011001100
+01111001001000000111111000000001
+01100111111100001000000011001100
+11011111001000000000000000001000
+11011010001000000100010000101000
+01110000100010100000101000010101
+11101111111000001000000000010001
+01100111111100001000101000001001
+00011010001000001010001000000001
+01101111111100001000101000001010
+00011111111000001111111000100000
+01100111111100001000101000001010
+11000010000000000110111101110001
+01101111111100001000000011001100
+01111001001111111111111000000001
+01100111111100001000000011001100
+00100000011000000000000000000000
+01000111000000000100000000100000
+01101111111001000000000111011011
+00100000011110100000000000000000
+01100111111001000100010000000110
+00100000010000000110101100101000
+00100000010000000110101001100111
+11011111111000000000111111000000
+10011010010000001010010000000000
+11011111001000000000000000001010
+11011010001000000000000111011011
+00100000010000000110101101100010
+00100000010000000110101100100101
+01101111111001000000000111011011
+00100000011110100000000000000000
+01100111111001000100010000001110
+11101111111000010000000000000110
+11100111111000010000000000000101
+00100000011000000000000000000000
+01000111000000001100000000100000
+01101111111000001100010000011010
+11000000000000001110111110010011
+11000000000000010110111111010001
+00100000001000000110111110010011
+01101111111000001100010000011101
+11000000000000001110111110010111
+11000000000000010110111110011110
+00100000011000000000000000000000
+01011000000000000000001111101000
+01100111111000010100010000011011
+01101000010010010100010000010010
+01101111111000010100010000010100
+11011010011000000000111000010000
+00100000010000000111000000101010
+00100000001000000110111110100100
+01011000000000000000001111101000
+01100111111000010100010000011011
+01101000010010010100010000001110
+01101111111000010100010000010000
+11011010011000000000001111101000
+00100000010000000111000000101010
+01101000010010010100010000010110
+10011000010011111111111000000000
+01101000010010010100010000011000
+10011000010001101111110000000000
+00100000001000000111110101100001
+00100000010000000110111101101011
+01101111111100001000101000001001
+01111001001111111111111000000111
+01100111111100001000101000001001
+01110000100010100000011101110111
+01110000100010100000100011000001
+01110000100010100000110101100001
+01110000100010100000101100000000
+00100000011000000000000000000000
+01000111000000010100000000100000
+01101111111000001100010000011010
+11000000000000001110111110110111
+11000000000000010110111111101110
+00100000001000000110111110110111
+00100000010000000110111110101001
+00100000010000000111000000000111
+01101111111000001100010000011111
+01100111111100001000000011001101
+00100000010000000111000000010001
+01110000100010100000110101100000
+01110000100000001100110100000000
+00100000010000000110111110101001
+01101111111000001100010000011111
+01100111111100001000000011001101
+01110000100010100000101101010000
+01110000100010100000111011000000
+11011111000000000000000000001011
+01101101111000010100010000100000
+01110000100000001100110000000011
+00100000010000000111000000001110
+01101000010110010000000101100100
+01100000010010010100010000011000
+01110000100000001100110000000110
+00100000010000000111000000010111
+11011111000000000000000000001011
+01100101111000010100010000100000
+01110000100010100000110101100000
+01110000100000001100110100000000
+01110000100000001100110000000000
+00100000011000000000000000000000
+01101111111000001100010000011101
+11000000000000001110111111010101
+11000000000000010110111111011011
+00100000011000000000000000000000
+01011000000000000000011111010000
+01100111111000010100010000011011
+01101000010010010100010000001000
+01101111111000010100010000001100
+11011010011000000000101000101000
+00100000001000000111000000101010
+01011000000000000000001111101000
+01100111111000010100010000011011
+01101000010010010100010000000110
+01101111111000010100010000001010
+11011010011000000000011111010000
+10011000010001100010001000000000
+01101111111000010100010000100000
+10011000010001100111111000000000
+00100100001000010110111111101000
+00100000010000000111000000111001
+10011010010001100111111000000000
+00100100001000010111110111001100
+00100000001000000111000000110000
+00011000010000100111111000000000
+01101000010010010100010000100000
+10011000010001100111111000000000
+00100000010000000111000000111001
+10011010010000001111111000000000
+00100000001000000111000000110000
+01101111111000001100010000011101
+11000000000000001110111111111000
+00100000010000000110111101101011
+01101111111100001000101000001001
+01111001001111111111111000000111
+01100111111100001000101000001001
+01110000100010100000011101110111
+01110000100010100000100001000001
+01110000100010101100011000010100
+00100000001000000110111111111111
+00100000010000000110111101101011
+01101111111100001000101000001001
+01111001001111111111111000000111
+01100111111100001000101000001001
+01110000100010100000011101110111
+01110000100010100000100001000001
+01110000100010101100011000010000
+01110000100010100000101100000000
+00100000010000000111000000000111
+01101111111000001100010000011111
+01100111111100001000000011001101
+00100000010000000111000000010001
+01110000100000001100110100000000
+01110000100010101100011000000000
+00100000011000000000000000000000
+01101111111000001100010000011110
+00011111111100100111111000000000
+01101000010110001000101000001011
+00011000010000010000010000001111
+10011000010000011000010000000000
+01100000010110001000101000001011
+00100000011000000000000000000000
+01101111111100001000000100101001
+11000011000000101111000000001110
+00100000011000000000000000000000
+01000111000000011100000000100000
+01110000100000001100110000000011
+00100000010000000111000000001110
+01101000010110010000000101100100
+01100000010010010100010000100000
+01110000100000001100110000000110
+01101111111100001000000100101001
+11000010100000101111000000010111
+01110000100000001100110000000000
+00100000011000000000000000000000
+01101111111000001100010000100111
+00100000011110100000000000000000
+01101111111100001000101000001001
+01111001001000000111111000000111
+01100111111100001000101000001001
+01101111111000001100010000011111
+01100111111100001000000011001101
+01101111111000010100010000100011
+01100111111100010000000011001110
+01101111111000010100010000100101
+01100111111100010000000011010000
+01110000100000001100110000001011
+00100000000000000000001111101000
+01110000100000001100110000000011
+00100000011000000000000000000000
+10011000010001100010001000000000
+01101111111000010100010000100000
+10011000010001100111111000000000
+00100100001000010111000000110010
+00100000010000000111000000111001
+10011010010000001111111000000000
+10011010001001101111110000000000
+00100000001000000111110101100001
+00011000010000100111111000000000
+01101000010010010100010000100000
+10011000010001100111111000000000
+00100000010000000111000000111001
+10011010010001100111111000000000
+00100100001000010111110111001100
+00100000001000000111000000110000
+01101000010010010100010000011011
+10011000010011111010010000000000
+00011010011000100111111000000000
+10011010001011111111111000000000
+00100000011000000000000000000000
+11101111111001000000000000010001
+01100111111001000000011001001110
+01101111111000010000011001001110
+01101000010010010000011001010000
+10011000010001100010001000000000
+01101111111000010000011001010100
+10011000010001100010010000000000
+01101000010010010000011001010010
+10011000010001100111110000000000
+00100100010000010111000001001110
+00011010010011111111111001100100
+10011010001001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00100000010110100111000001010100
+00100000011000000000000000000000
+01101111111000001100010000100010
+01111001001000000111111000000000
+00100000001000000111000001011001
+01101111111000001100010000100010
+01111001001111111111111000000000
+00100000001000000111000001011001
+01101000010010001100010000100010
+01111001001000000000010000000001
+00100000001000000111000001011001
+01101000010010001100010000100010
+01111001001111111000010000000001
+01100000010010001100010000100010
+00100000011000000000000000000000
+01101111111000010100010001000011
+11101111111000001000000000111111
+00100000011110100000000000000000
+00011111111000100111001000000000
+01101111111000010100010001000011
+00011111111000001111111000000011
+00011111111000100010001000000000
+11101000010000001000000000010001
+00100000010000000110111011010111
+00011010001000001010001000000001
+11000010000000000111000001100010
+00100000011000000000000000000000
+01101111111000010100010001000011
+00011111111000001111111000000011
+00011111111000100010001000000000
+00011000000000000010010000000000
+01011000000000000000000000000000
+01100111111000010000011011001111
+11101000010000001000000000010001
+00100000010000000110111011100000
+01000111000000100100000000100000
+01101111111000010000011011001111
+00011010010000100000111000000000
+11111001001000001111111000000000
+01100111111000010000011011001111
+00011010001000001010001000000001
+00011010010000001010010000000001
+01101111111000010100010001000011
+11101111111000001000000000111111
+10011010010000101111110000000000
+00100100001000101111000001101101
+01101111111000010000011011001111
+01101000010010010100010001000101
+10011000010000101111110000000000
+00100000011000101000000000000000
+00100000001000000111110110111100
+01101111111000010100010001000011
+11101111111000001000000000111111
+00100000011110100000000000000000
+00011111111000100111001000000000
+01101111111000010100010001000011
+00011111111000001111111000000011
+00011111111000100010001000000000
+11101000010000001000000000010001
+00100000010000000110111010100101
+00011010001000001010001000000001
+11000010000000000111000010000110
+00100000011000000000000000000000
+11011000111000000000000000001001
+00100000010000000111110011110001
+00100100011110100000000000000000
+01011000000000000000000000100000
+11011000111000000000000000001001
+00100000010000000111110011100011
+01111000010101000111110000000000
+00100000010000000111000001111111
+01000111000000101100000000100000
+01101111111000010100010001000011
+11101111111000001000000000111111
+00100000011110100000000000000000
+00100000010000000111000001100111
+00100100001101000111011110010011
+00100000010000000111011110010001
+01111000010101000111110000000000
+01101111111000010000011011001111
+01100111111000010000011011010110
+01110000000001101101100000000000
+00011000000000000000111000000000
+01101111111000010100010001000101
+00011111111000110000010000000000
+01100000010010010100010001000101
+00011111111000010111111000000001
+01101000010010010000011011010110
+00011000010000010010001000000001
+00011000010000110000010000000000
+01100000010010010000011011010110
+10011010001000101111110000000000
+00100100010000101111000010110100
+01101111111000010100010001000011
+11101111111000001000000000111111
+01101000010010001000011011011000
+00011000010000001000010000000001
+01100000010010001000011011011000
+00011000010000100000111000000000
+10011000111000101111110000000000
+00100100001000101111000010011111
+01101111111000010000011011001111
+01100111111000010100010001000101
+00100000011000000000000000000000
+01000111000000110100000000100000
+01101111111000010100010001000011
+00011111111000001111111000000001
+11101111111000010000000000111111
+00100000001000000111110101111011
+01101111111100001000000001000010
+10011010001000011111111000000000
+01100111111100001000000001000010
+01101111111100010000000001010000
+01111001001111111111111000001101
+01100111111100010000000001010000
+00100000000000000000000001100100
+00100000011000000000000000000000
+01101111111100001000000001000010
+11000010100000110111000011000110
+11000010100000111111000011001000
+01011000101101110001101100000000
+00100000011000000000000000000000
+01011001011011100011011000000000
+00100000011000000000000000000000
+01011000000000001000000011101000
+00100000011000000000000000000000
+01101000010010011000011001010000
+00100000010000000111000011000001
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111000010000000000
+01101111111000001000011001010011
+10011000010011111111111000000000
+00011111111001101111110001100100
+00100000010000000111110101100100
+00011000000001111010001000000000
+00011000010000100111111000000000
+10011010001001100010010000000000
+01101111111000001000011001001111
+00100000010000000111000011011110
+01101111111000001000011001001110
+01101000010010001000011001001111
+00011000010000010000010000001111
+00011000010011010000010000000000
+10011000010000011111111000000000
+00100000001000000111000100000000
+10011000000000000000111000000000
+00100000010000000111000011101100
+00100000001000000111000011100001
+01101111111100001000000010111110
+11111001001000000111111000000000
+01100111111100001000000010111110
+01101000010110001000000001000010
+00101000010011111111111000000111
+00100000010000001111000011101010
+11111001001111111111111000000000
+01100111111100001000000010111110
+00100000011000000000000000000000
+00100000000000000000000111100000
+00100000011000000000000000000000
+00011111111000010111111000001111
+11011000101000001000000010011100
+00011111111011111111111000000100
+10011000101000001000101000000000
+00011010001000100111111000000000
+11100111111000010000000000000101
+00011010010000100111111000000000
+11100111111000010000000000000101
+00100000011000000000000000000000
+00101000111011111111111000000110
+00011000111000010000111000001111
+01101111111100001000000010011011
+11111001001000001111111000000000
+01100111111100001000000010011011
+00100000011000000000000000000000
+00100000010000000111000100001011
+00011111111011010111111000000000
+00011000111000001000010000010000
+10011000010000011111111000000000
+00100000001000000110111100011001
+01111000001101000111110000000000
+00100000010000000111000011111011
+00100000001000000111000100000110
+01111000010101000111110000000000
+00100000010000000111000100001011
+00100000001000000111000100000110
+00011000111000010000111000001111
+01101111111100001000000010011010
+11111001001101000111111000000000
+01100111111100001000000010011010
+00100000011000000000000000000000
+00011111111011001000111000000000
+00011000111000010000111000001111
+00100000011000000000000000000000
+00011111111000100000010000000000
+01000111000000111100000000100000
+00100000010000000111000100011011
+01011000000000000000100000000000
+10011000010001100111111000000000
+00011111111000100000010000000000
+00011000010100011000010000000000
+01100000010110001000000000000100
+00100000000000000000010101111000
+00011111111000100000010000000000
+00011000010000010000010000001111
+01100000010110001000000000001011
+00100000011000000000000000000000
+01111000001101100111110000000000
+00100000001000000111000100011111
+01000111000001000100000000100001
+01111000010101100111110000000000
+01101111111100001000000001000011
+01111001001101100111111000000011
+01100111111100001000000001000011
+00100000011000000000000000000000
+01100111111100100000000001100010
+01100111111100010000000001100110
+01100000010110001000000001100001
+00100000011000000000000000000000
+01110000100000000100001000000100
+01110000010000010100100000001100
+01011000000000000000111010100101
+01100111111100010000000001000000
+00100000011000000000000000000000
+01110000100000000100001000000101
+00100000001000000111000100101000
+01000111000001001100000000100001
+01110000000000100000111001010000
+11011000101000000000001000001111
+11011000110000000100001010101101
+00100000010000000111110010010001
+11011000110000000100010010100110
+00100000010000000111110010001111
+11011000110000000000010111011100
+00100000010000000111110010001111
+00100000010000000111000111101001
+11011000110000000000000101011000
+00100000010000000111000111100100
+00100000010000000111000110101111
+11011000101000000000011010101111
+00100000010000000111000111100000
+01011000000011110100001001000000
+00011111111000100010001000000000
+01101111111000100000011010101111
+10011010001001101111110000000000
+00100000010000000111110101100100
+00011000000001110111111000000000
+01100111111000100000010111011000
+00100000011000000000000000000000
+01110000000000100000111001000001
+11011000101000000000001000001111
+00100000010000000111000110010100
+00100000010000000111000110001111
+01101111111000011100001011000111
+11100111111000011000000000000101
+00100000010000000111000101010101
+11011000110000000000000101011000
+00100000010000000111110010010001
+11011000110000000100001010101101
+00100000010000000111110010010001
+00100000010000000111000111101001
+11011000110000000000011011001111
+11011000101000000000011001111111
+00100000010000000111110010010001
+00100000001000000111000110101111
+01101111111000100100001100000001
+11100111111000100000000000000101
+00100000010000000111110010011101
+00100000001000000111110010011100
+01000111000001010100000000100001
+01110000000000100000111001000001
+11011000101000000000001000001111
+00100000010000000111000110001111
+00100000010000000111000110010100
+01101111111000011100001011000000
+11100111111000011000000000000101
+00100000010000000111000101010101
+11011000110000000100001010101101
+00100000010000000111110010010001
+11011000110000000000000101011000
+00100000010000000111110010010001
+00100000010000000111000111101001
+11011000110000000000011011001111
+11011000101000000000011001111111
+00100000010000000111110010010001
+00100000010000000111000110101111
+11011000101000000000011010101111
+00100000001000000111000111100000
+01110000000000100000111000100000
+11011000110000000000011000011100
+11011000101000000000001000001111
+00100000010000000111110010001111
+00100000010000000111000111101001
+11011000110000000000010111000111
+00100000010000000111000111100100
+00100000010000000111000110101111
+11011000101000000000011001111111
+00100000010000000111001101100011
+11011000010000000000000000000001
+00100000010000000111000101111110
+11011000101000000100001010001100
+00100000010000000111000111100000
+11011000010000000000000000000000
+00100000010000000111000101111110
+11011000101000000000011011001111
+00100000001000000111001101100011
+01000111000001011100000000100001
+01110000000000100000111000110101
+01011000000000000000000100000000
+01100111111000010000001000001111
+00100000010000000111000110001111
+00100000010000000111000110010100
+11011000110000000100001010101101
+00100000010000000111110010010001
+11011000110000000000000101011000
+00100000010000000111110010010001
+01011000000000000110110001100101
+11100111111000010000000000000101
+01011000000000000110001001110100
+11100111111000010000000000000101
+11100000010000001000000000000101
+00100000010000000111000111101001
+00100000001000000111000110101111
+01101111111000110100001011011101
+11100111111000110000000000000101
+01101111111000001100001011010100
+11100111111000001000000000000101
+00100000011000000000000000000000
+01101111111000110000000101111000
+11100111111000110000000000000101
+01101111111000001100001011001101
+11100111111000001000000000000101
+00100000011000000000000000000000
+01110000000000100000111001000001
+01101111111000001100010011100111
+01100111111000001000001000001111
+11011000110000000100010010100110
+00100000010000000111110010001111
+11011000110000000000010111011100
+00100000010000000111110010001111
+00100000010000000111000111101001
+11011000110000000000000101011000
+00100000010000000111000111100100
+00100000001000000111000110101111
+01110000000000100000111001000001
+01101111111000001100010011100111
+01100111111000001000001000001111
+11011000110000000000010111011100
+00100000010000000111110010001111
+11011000110000000100010010100110
+00100000010000000111110010001111
+00100000010000000111000111101001
+11011000110000000100001010101101
+00100000010000000111000111100100
+00100000001000000111000110101111
+01000111000001100100000000100001
+00100000010000000111000111111110
+01101111111000001000001000001110
+00011111111000100000010000000000
+00011111111000001111111000001111
+00011111111100011111111000000000
+00011111111000100010010000000000
+00100000001110100111000111000001
+00011000010000010111111000001111
+00100100001110100111000111000100
+11011010011000000000011010001111
+11011111111000000000001000001111
+00011111111000001111111111110000
+10011000010000001010001000000000
+11011000101000000000011010111111
+11011111001000000000000000000100
+00100000010000000111110010101011
+00100000001000000111000111001111
+11011010010000000000000000000001
+11011010001000000000000000000000
+00100000001000000111000111000101
+00011000010000010010001000001111
+11011111111000000000001000001111
+10011000010000001111111000000000
+10011010001001100000110000000000
+11011000101000000000011010101111
+00100000010000000111001000100100
+11011010011000000000011010011111
+11011010001000000000011010101111
+11011000101000000000011010111111
+11011111001000000000000000000100
+00100000010000000111110010101011
+00100000010000000111001101011101
+00100000010000000111001011001000
+11011000110000000000001000001111
+00011010010000001010010111111111
+00011010010000100111111000000000
+00100000001110100111000111011000
+00100000010000000111001101001111
+00100000010000000111001011000010
+00100000001000000111000111010010
+11011000101000000000011010101111
+00100000010000000111001101100011
+11011000110000000000011010111111
+00100000010000000111001101001111
+00100000010000000111001011001000
+11011000110000000000011010101111
+00100000010000000111001101001111
+00100000001000000111001011000010
+00011000101000100010001000000000
+00100000010000000111001101100011
+11011111001000000000000000010000
+00100000001000000111110010110011
+11011000101000000000011001111111
+00100000010000000111110010010001
+11011111001000000000000000010000
+11011010001000000000011001111111
+00100000001000000111110010110011
+01101111111000001000001000001110
+00011111111000100111001000000000
+11011010001000000000001000001111
+00100000001000000111110010110011
+11101111111000001000000000010001
+00011111111000111111111000000000
+00101010011011111111111000000000
+01111001001000001111111000000000
+00101111111011111111111000001000
+01111001001000001010011000000000
+11100111111000001000000000010001
+00011010001000001010001111111111
+11000010000000000111000111101101
+00100000011000000000000000000000
+11011010001000000000011010001111
+00011010001000001010001000001111
+00011000000000000111001000010000
+00011000000000000010011000000000
+00100000001000000111000111101101
+11011010001000000000011010011111
+00100000001000000111000111111000
+11011000110000000000011001111111
+00100000010000000111001101001101
+00011000000000000111000000001000
+00100000010000000111001101011110
+00100000010000000111001101011101
+00100000010000000111001010111111
+11011000101000000000011010001111
+00100000010000000111001101100011
+01000111000001101100000000100001
+01101111111000001000011010001111
+00101111111011111111111000000111
+00100100001000001111001000001111
+00100000010000000111000111110111
+11011010011000000000011010001111
+11011000101000000000011010001111
+00100000010000000111001000011001
+00100000001000000111001000010000
+00100000010000000111000111110111
+11011000110000000000011010001111
+11011000101000000000011010011111
+00100000010000000111110010010001
+01101111111000001000011010011111
+00101111111011111111111000000111
+00100100001000001111000111111100
+00100000010000000111000111111100
+11011010011000000000011010011111
+11011000101000000000011010011111
+11011111001000000000000000000011
+11011000010000000000000000000000
+00100000010000000111001000100000
+00011010011000001010011000000100
+11000010000000000111001000011010
+11011000010000001000011100000000
+00011000010100000000010000000000
+11101111111000100000000000010011
+10011000010000101111111000000000
+11100111111000100000000000000101
+00100000011000000000000000000000
+01000111000001110100000000100001
+11011111001000000000000000010000
+11011111111000000000000000000000
+10011010001001100111110000000000
+00100000001000101111001000101111
+00100000001000010111001000110010
+11101000010000001000000000000110
+11100000010000001000000000000101
+00011111111000001111111000000001
+11000010000000000111001000100111
+00100000011000000000000000000000
+11011000010000000000000010000000
+11100000010000001000000000000101
+00100000001000000111001000101100
+11011000010000000000000000000000
+00100000001000000111001000110000
+00011000010011010000010000000000
+00011000010100000000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+01000111000001111100000000100001
+00100000010000000111001011110100
+11011000101000000100001010001100
+00100000001000000111001101100011
+11011000101000000100001010101101
+00100000001101001111001000111111
+11011000101000000000000101011000
+00011000110000100010001000000000
+00100000010000000111110010010001
+00100000010000000111001100001001
+11011000110000000100001010011101
+00100000001000000111001101111100
+11011010001000000000000101011000
+00100000001101001111001001000111
+11011010001000000100001010101101
+00011010001000100000101000000000
+00100000010000000111110111101101
+00100000001000000111001100001001
+11011000110000000100001011100111
+00100000010000000111001101001111
+11011000110000000100001010001100
+00100000010000000111001101010000
+00011000000000000110110000111000
+00011000000000000110110000000000
+00100000010000000111001010111101
+11011000101000000000000110101000
+00100000001000000111001101100011
+00011000000000000111000000001000
+00011000000000000111111001001001
+00100000001000000111001001011010
+00011000000000000111111001001001
+00100000001000000111001001011001
+00011000000000000111111000000001
+00011000000000000111000000000000
+00011000010011010101111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+00011000010011001101111000000000
+00011101111100010101111000000000
+01101111111000010100010001110101
+00011111111100000111111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+11101101111000100000000000000110
+00011111000000001111000000000001
+11101111111000010000000000000110
+00011010001100001101111000000000
+00011101111100000101111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+00100000011000000000000000000000
+00011010011000001000110000000001
+11101111111000001000000000000110
+10011000000000000010001000000000
+00100000010000000111001001010110
+00100000010000000111001010111111
+00011000000000000111000000000000
+11101111111000001000000000010011
+00011111111000010111111000000011
+00011111111100000101111000000000
+01111001001000000101111000001000
+00100000010000000111001101011000
+00100000010000000111001011000010
+00011010001000100111001000000000
+00011010011000001000110000000010
+00100000010000000111001100110111
+00100000010000000111001101000001
+00100000010000000111001011000010
+00011111001000100111111000000000
+00100000001110100111001001111111
+00100000001000000111001001111010
+00011000000000000111000000001100
+00011101111000100111111000000000
+01100111111000100000000101010000
+00100000011000000000000000000000
+00011010001000001010001000000001
+00100000010000000111001001011000
+00011010011000100000110000000000
+00100000010000000111001101001011
+00100000010000000111001011000101
+00100000010000000111001101101010
+00011010011000001010011000010000
+00011010010000001010010111110000
+00100000001000010111001010000011
+00100000011000000000000000000000
+00100000010000000111001010110010
+01000111000010000100000000100010
+01110000100000000110110000000000
+01110000100000000110110100000001
+01101111111000001100000101101011
+00011111111000010111111000000011
+01100111111100001000000001101110
+01101111111000010000011001101101
+01100111111100010000000001101000
+01011000000000000100000101101101
+01100111111100010000000001101010
+01101010001000001100000101101100
+01101000010010101100010001100111
+00100000010000000111001001010011
+01110000100000000000101000000010
+01110000100000000000101000000011
+01101111111000001100000101101100
+01100111111100010000000011000000
+00011111111000001111111000000100
+01100111111000001100000101101100
+01101111111000101100010001100111
+00011111111000001111111000000001
+01111001001111111111111000100111
+01100111111000101100010001100111
+00100000011000000000000000000000
+01101111111100010000000100011010
+10011000010001100111110000000000
+00100000011000101000000000000000
+00100100011110100000000000000000
+00100000001000000111001010100110
+01101111111100001000000100001000
+11000011000000110010001100111110
+01011000000000000100000101101101
+10011000010000001000101000000000
+11011111000000000000000000001100
+11100101111000100000000000000101
+00100000001000000111001010111011
+01000111000010001100000000100010
+00011000000000000111000000001100
+00100000010000000111001101011110
+00100000010000000111001101011101
+01011000000000000000000000000000
+01100111111100010000000011000000
+00100000011000000000000000000000
+01101111111100001000000100001000
+11000011000000110111001010111001
+01110000100000000000101000000000
+00100000011000000000000000000000
+00100100001110111111001010111101
+00100000011000000000000000000000
+00011000000000000110110000110000
+00011000000000000110110000000000
+00100000001000000111001010111101
+00011000000000000110110000110010
+00011000000000000110110000000010
+00100000001000000111001010111101
+00011000000000000110110000110100
+00011000000000000110110000000100
+00100000001000000111001010111101
+00011000000000000110110000000001
+00011000000000000110110000000000
+00100000011000000000000000000000
+01101111111100001000000101010101
+11000011000000010111001011001011
+00100000011000000000000000000000
+01100111111100010000000011010010
+00011000000000000110110011000000
+00011000000000000110110010000000
+00100000001000000111001011001011
+00011000000000000111000000000000
+00011010010000100000110000000000
+00011000000000000111001000000100
+00100000010000000111001011100001
+00011000000000000110110110000000
+00011000000000000110110010000000
+00100000010000000111001010111101
+00011000000000000111000000001100
+00011010011000100000101000000000
+00011000000000000111001000000100
+00011101111000100111111000000000
+11100111111000100000000000000101
+00011111000000001111000000000001
+11000010000000000111001011011100
+00100000011000000000000000000000
+11101111111000010000000000000110
+11101000010000010000000000000110
+00011000010100000000010000000000
+10011000010000011101111000000000
+00011111000000001111000000000001
+11000010000000000111001011100001
+00100000011000000000000000000000
+00011000000000000111000000001000
+00011010001000100000110000000000
+00011000000000000111001000000100
+00100000010000000111001011100001
+00011000000000000111000000000000
+00011010010000100000110000000000
+00011000000000000111001000000100
+00100000010000000111001011100001
+00011000000000000110110110000010
+00011000000000000110110010000010
+00100000010000000111001010111101
+00100000001000000111001011011001
+00011000000000000111000000000000
+01101111111000100000000101011000
+10011000000000000101111000000000
+00011111000000001111000000000001
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+01101111111000100100001010101101
+10011000000000000101111000000000
+00011111000000001111000000000001
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+00100000010000000111001101011110
+00011111000000001111000111111100
+01101111111000100100001100000001
+00011111111000100101111000000000
+00011111000000001111000000000100
+00011000000000000110110000111000
+00011000000000000110110000001000
+00100000001000000111001010111101
+01000111000010010100000000100010
+01101111111000110100001011011101
+01101000010010110000000101111000
+00100000001101001111001100001111
+01101111111000110000000101111000
+01101000010010110100001011011101
+00011000000000000111000000001000
+00011000010000100101111000000000
+00011111000000001111000000000001
+00011000010011110101111000000000
+00011111111100000111111000000000
+10011101111000011101111000000000
+00011111000000001111000000000001
+00011111111011110101111000000000
+00011111000000001111000000000001
+00011000000000000101111000000000
+00011000000000000111111000000000
+01101111111000001100001011001101
+01101000010010001100001110010000
+00100100001101001111001100011111
+01101111111000001100001011010100
+01101000010010001100001011001101
+01100111111000001100001010111101
+01100000010010001100001010111110
+00011000000000000111000000000000
+11011010010000000100001010111101
+00011000000000000111001000000100
+11101111111000100000000000010001
+11101000010000100000000000010010
+10011000010000101101111000000000
+00011111000000001111000000000001
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111001100100100
+00100000010000000111001101011110
+00011111000000001111000111111100
+01101111111000100100001100000001
+00011111111000100101111000000000
+00011111000000001111000000000100
+00011000000000000110110000111000
+00011000000000000110110000001100
+00100000010000000111001010111101
+00100000010000000111001101011101
+00011000000000000110110000111010
+00011000000000000110110000001000
+00100000001000000111001010111101
+00101111001000000000011000000000
+00100000011000001000000000000000
+00011000110000100111111000000000
+10011111001000001000101000000000
+00011000000000000111111000000000
+11100111111000001000000000000101
+00011111001000001111001000000001
+00101111001000000000011000000000
+00100000011000001000000000000000
+00100000001000000111001100111100
+00011000000000000111000000000000
+00011111001000100111111000000000
+00100000001110100111001101000110
+11101111111000100000000000000110
+00011111001000001111001111111100
+10011000000000000101111000000000
+00011111000000001111000000000001
+00101111000000000001111000000100
+00100000011000001000000000000000
+00100000001000000111001101000010
+00011000000000000111000000001000
+00100000001000000111001101010000
+00011000000000000111000000000100
+00100000001000000111001101010000
+00011000000000000111000000000000
+00011000000000000111001000000100
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+11000010000000000111001101010001
+00100000011000000000000000000000
+11011000110000000000000110101000
+00100000001000000111001101001101
+00011000000000000111001000000100
+00100000001000000111001101100000
+00011000000000000111000000000000
+00011000000000000111001000010000
+00100000001000000111001101011111
+00011000000000000111000000000000
+00011000000000000111001000000100
+00011000000000000101111000000000
+00011111000000001111000000000001
+11000010000000000111001101011111
+00100000011000000000000000000000
+00011000000000000111000000001100
+00011000000000000111001000000100
+00011101111000100111111000000000
+11100111111000100000000000000101
+00011111000000001111000000000001
+11000010000000000111001101100101
+00100000011000000000000000000000
+00011000000000000111000000001100
+00011010011000100000101000000000
+00011010010000001111001000000001
+00011111001001100111110000001111
+00100000001000010111001101110000
+00011000000000000111001000010000
+00011101111000100111111000000000
+00011111001001100111110000000011
+00100000001000010111001101111000
+11100111111000100000000000000101
+00011111001000001111001111111100
+00100000011000101000000000000000
+00011111000000001111000000000001
+00100000001000000111001101110000
+11100111111000001000000000000101
+00011111111011001111111000000000
+11000010000000000111001101111000
+00100000011000000000000000000000
+00011000000000000111000000001100
+00011000000000000111001000000100
+11101111111000100000000000000110
+10011101111001100111110000000000
+00100100011000101000000000000000
+00011111000000001111000000000001
+11000010000000000111001101111110
+00100000001000000111110110111010
+01101111111100001000000001010000
+01111001001111111111111000000000
+01100111111100001000000001010000
+00100000011000000000000000000000
+01101111111100001000000001010000
+01111001001000000111111000000000
+01100111111100001000000001010000
+00100000011000000000000000000000
+11011000101000000000010010101111
+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
+11011000101000000000010101000111
+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
+00100000001000000111010011101010
+01000111000010011100000000100010
+01101111111000001100010010000011
+00100000011110100000000000000000
+01101111111000001100010010000101
+11000001000000011000000000000000
+01101111111000001100010010000100
+11000000000000000111010011101010
+00100000011000000000000000000000
+01110000010001001000010000000000
+00100000011000000000000000000000
+01000111000010100100000000100010
+01011000000000000000010111011100
+11011000101000000000010111010111
+10011000101001100111001000000000
+00100000010000000111110010100011
+01011000000000000100010011101000
+11011000101000000100010011100110
+10011000101001100111001000000000
+00100000001000000111110010100011
+00100000010000000111010001100100
+11011010001000000000010111111100
+11011000101000000000010010001111
+00100000010000000111011100001010
+11011010001000000000010111011100
+11011000101000000000010001001111
+00100000010000000111011100001010
+11011010001000000000010001001111
+11011010010000000000010111011100
+11011000101000000000010001001111
+00100000010000000111011001110010
+11011010001000000000010101100111
+11011010010000000000010111011100
+11011000101000000000010001101111
+00100000010000000111011001110010
+11011010001000000000010001101111
+11011010010000000000010001001111
+11011000101000000000010001001111
+00100000010000000111011100001110
+11011010001000000000010000101111
+11011010010000000000010001001111
+11011000101000000000010000101111
+00100000010000000111011100001110
+11011111001000000000000000100000
+11011010001000000000010010001111
+11011010010000000000010000101111
+00100000001000000111110101100110
+11011010001000000000010110100111
+11011000101000000000010000101111
+00100000010000000111011100001010
+11011010001000000000010110000111
+11011000101000000000010001001111
+00100000010000000111011100001010
+11011010001000000000010001001111
+11011010010000000000010110000111
+11011000101000000000010001001111
+00100000010000000111011001110010
+11011010001000000000010101100111
+11011010010000000000010110000111
+11011000101000000000010001101111
+00100000010000000111011001110010
+11011010001000000000010001101111
+11011010010000000000010001001111
+11011000101000000000010001001111
+00100000010000000111011100001110
+11011010001000000000010000101111
+11011010010000000000010001001111
+11011000101000000000010000101111
+00100000001000000111011100100111
+00011000111000001000111111111111
+00100100011000010000000000000000
+00011000000010100111111000000000
+11100111111000010000000000000101
+00100000001000000111010001111010
+00011000111000001000111111111111
+00100100001000010111010010001010
+11101111111000100000000000010001
+00011111111000100000010000000000
+11101111111000100000000000010010
+10011000010000101111111000000000
+00100100001000101111010010001001
+00011010001000001010001000000100
+00011010010000001010010000000100
+00100000001000000111010001111111
+00100000001000000111110111000110
+00100000001000000111110111001000
+00011111111000010000111000000111
+00011111111010010111111000000000
+10011000110000001000110000000000
+11101111111000001000000000000110
+10101111111011000000000000000000
+00100000011000000000000000000000
+11101111111001000000000000000110
+00100100011110100000000000000000
+11101111111001000000000000000110
+00100100011110100000000000000000
+11101111111001000000000000000110
+00100000011000000000000000000000
+11101111111000100000000000010001
+10011000000000000000010000000000
+11101111111000100000000000010010
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111010010010111
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011010001000001010001000010100
+00011010010000001010010000010100
+11101111111000100000000000010010
+10011000000000000000010000000000
+11101111111000100000000000010001
+10011000010001100111111000000000
+00100100011000010000000000000000
+00100100011110100000000000000000
+00011010001000001010001111111100
+00011010010000001010010111111100
+11000010000000000111010010100011
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011000000000000010011000000000
+11101111111000100000000000010001
+10011000000000000000010000000000
+11101111111000100000000000010010
+10011000010000001111111000000000
+10011010011000001111111000000000
+11100111111000100000000000000101
+00101111111011111111111000100000
+01111001001000001010011000000000
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111010010101111
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011000000000000010011000000000
+11101111111000100000000000010010
+10011000000000000000010000000000
+11101111111000100000000000010001
+10011000010001100111111000000000
+10011010011001100111111000000000
+11100111111000100000000000000101
+00101111111011111111111000100000
+01111001001000001010011000000000
+00011010001000001010001000000100
+00011010010000001010010000000100
+11000010000000000111010010111101
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011010001000001010001000010100
+00011000000000000010011000000000
+11101111111000100000000000010001
+00101111111011111111111000000000
+01111001001000001010011000000001
+00011111111000110111111000000000
+00101010011011111111111000000000
+01111001001000001111111000011111
+11100111111000100000000000010001
+00011010001000001010001111111100
+00011010011000110010011000000000
+11000010000000000111010011001100
+00100000011000000000000000000000
+00011000000000000111001000000110
+00011000000000000010011000000000
+11101111111000100000000000010001
+00101111111011111111111000011111
+01111001001000001010011000000001
+00011111111000111111111000000000
+00101010011011111111111000000000
+01111001001000001111111000000000
+11100111111000100000000000010001
+00011010001000001010001000000100
+00011010011000110010011000000000
+11000010000000000111010011011001
+00100000011000000000000000000000
+00011000000000000111001000000110
+11101111111000100000000000000110
+10011000000000000101111000000000
+00011111000000001111000000000001
+11000010000000000111010011100101
+00100000011000000000000000000000
+01000111000010101100000000100010
+01101111111000001100010010000011
+00100100001110100111010100001011
+01110000010001001000010000000000
+01110000010001001000010100000000
+00100000011000000000000000000000
+01101111111000001100010010000011
+00100000011110100000000000000000
+01101111111000001100010010000101
+11000001000000011000000000000000
+00100000010000000111010101000000
+00100000001000000111010011110000
+11011000101000000100010010000110
+00111000000000000001101010111101
+00111000000001011011001101001111
+00111000000010011001101110001010
+00111000000011100110010101100010
+11100111111001001000000000000101
+00111000000000110100000010110111
+00111000000001000001111011111010
+00111000000010001010111111110110
+00111000000011001111110101000001
+11100111111001001000000000000101
+00111000000000111101001000010000
+00111000000001100110110011111000
+00111000000010111000011101001100
+00111000000011110001010101111100
+11100111111001001000000000000101
+00111000000000101101010010100011
+00111000000001111101001001111101
+00111000000010000000000000000011
+11100111111000101000000000000101
+00100000011000000000000000000000
+01101111111000001100010010000101
+11000001100000000000000000000000
+01101111111000001100010010000100
+11000001100000000000000000000000
+00100000010000000111001111100011
+11011000101000000100010010000110
+00011000000000000000111000001111
+00100000010000000111010001111010
+00011000000010100111111000000000
+00011111111000110111111000000000
+11100111111000010000000000000101
+01101111111000001100010010000010
+00100100010110100111010011110110
+11011000101000000000001110001111
+11011000110000000100010010000110
+00100000010000000111110010001111
+11011000101000000000001001101111
+11011000110000000000010110000111
+00100000010000000111110010000011
+11011000101000000000001010101111
+00100000010000000111110010011111
+01110000000000101010111100000001
+00100000010000000111010101011000
+01110000010001001000010000000011
+00100000011000000000000000000000
+11011000101000000100010010100110
+11011000110000000000001011001111
+00100000010000000111110010000011
+01110000010001001000010100000011
+01110000010001001000010000000000
+00100000011000000000000000000000
+01101111111000001000010111010111
+11000001100000000000000000000000
+01101111111000001100010010000100
+11000001100000000000000000000000
+11011000101000000000001110001111
+11011000110000000100010010000110
+00100000010000000111110010001111
+11011000101000000000001001101111
+11011000110000000000010111011100
+00100000010000000111110010000011
+11011000101000000000001010101111
+00100000010000000111110010011111
+01110000000000101010111100000001
+00100000010000000111010101011000
+01110000010001001000010000000100
+00100000011000000000000000000000
+11011000101000000000011000011100
+11011000110000000000001011001111
+00100000010000000111110010001111
+01110000000001011101011100000011
+01110000010001001000010000000000
+00100000011000000000000000000000
+01101111111000001100010010000011
+00100000011110100000000000000000
+01101111111000001100010010000100
+00100000011110100000000000000000
+00011111111000001111111010000000
+01100111111000001100010010000100
+11000011100000111000000000000000
+01101111111000010000001000001100
+00100000001110100111010101001010
+00100000001000000111010101010000
+01000111000010110100000000100010
+00100000010000000111010101100101
+01101111111000001100010010000100
+11000000000000011111010100100100
+11000000000000100111010100111010
+00100000011000000000000000000000
+00100000010000000111010101110111
+01101111111000010000001000001100
+00011111111000001111111111111111
+01100111111000010000001000001100
+11011000110000000000001110001111
+00100000010000000111010010001011
+00100000011000001000000000000000
+00100000001000000111010111001000
+01000111000010111100000000100010
+01011000000000000000000100000000
+01100111111000010000001000001100
+01101111111000010000001000001100
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000010000001000001100
+11011000110000000000001110001111
+00100000010000000111010010001011
+00100000001000001111010101011011
+11011000110000000000001001101111
+11011000101000000000001100101111
+00100000001000000111110010000010
+11011010001000000000001101101111
+11011000101000000000010001101111
+00100000010000000111011000110100
+11011010001000000000010001101111
+11011000101000000000010000001111
+00100000010000000111011100001010
+11011010001000000000001100101111
+11011010010000000000010000001111
+11011000101000000000001011001111
+00100000010000000111011001110010
+11011010001000000000010001101111
+11011010010000000000010000001111
+11011000101000000000010001001111
+00100000010000000111011001110010
+11011010001000000000001101001111
+11011010010000000000010001001111
+11011000101000000000001011101111
+00100000001000000111011001110010
+11011010001000000000001101101111
+11011000101000000000010001001111
+00100000010000000111011100001010
+11011010001000000000010001001111
+11011000101000000000010001101111
+00100000010000000111011100001010
+11011010001000000000010101100111
+11011010010000000000010001101111
+11011000101000000000010001101111
+00100000010000000111011001110010
+11011010001000000000001100101111
+11011000101000000000010001001111
+00100000010000000111011100001010
+11011000110000000000010001001111
+11011000101000000000010000001111
+00100000010000000111110010001111
+11011010001000000000010000001111
+00100000010000000111011100010001
+11011010001000000000010001001111
+11011010010000000000010000001111
+11011000101000000000010001001111
+00100000010000000111011100001110
+11011010001000000000010001001111
+11011010010000000000010001101111
+11011000101000000000010001001111
+00100000010000000111011100001110
+11011000110000000000001100101111
+11011000101000000000010000001111
+00100000010000000111110010001111
+11011010001000000000001101001111
+11011000101000000000010001101111
+00100000010000000111011100001010
+11011010001000000000010000001111
+00100000010000000111011100010001
+11011010001000000000010000001111
+00100000010000000111011100010001
+11011010001000000000010000001111
+11011010010000000000010001101111
+11011000101000000000010000001111
+00100000010000000111011001110010
+11011010001000000000010001101111
+11011000101000000000010000101111
+00100000010000000111011100001010
+11011010001000000000010000101111
+00100000010000000111011100010001
+11011010001000000000010000101111
+00100000010000000111011100010001
+11011010001000000000010000101111
+00100000010000000111011100010001
+11011000110000000000001101001111
+11011000101000000000010001101111
+00100000010000000111110010001111
+11011010001000000000010001101111
+00100000010000000111011100010001
+11011010001000000000010001101111
+11011010010000000000001101101111
+11011000101000000000001101101111
+00100000010000000111011001110010
+11011010001000000000010001001111
+11011000101000000000010001101111
+00100000010000000111011100001010
+11011010001000000000010001101111
+11011010010000000000010000001111
+11011000101000000000010001101111
+00100000010000000111011100100111
+11011010001000000000010001101111
+11011010010000000000010000001111
+11011000101000000000001100101111
+00100000010000000111011100100111
+11011010001000000000010000001111
+11011010010000000000001100101111
+11011000101000000000010001101111
+00100000010000000111011100100111
+11011010001000000000010001101111
+11011010010000000000010001001111
+11011000101000000000010001101111
+00100000010000000111011001110010
+11011010001000000000010001101111
+11011010010000000000010000101111
+11011000101000000000001101001111
+00100000001000000111011100100111
+11011010001000000000001010101111
+11011000101000000000010010001111
+00100000010000000111011100001010
+11011010001000000000001100101111
+11011010010000000000010010001111
+11011000101000000000010000101111
+00100000010000000111011001110010
+11011010001000000000001010101111
+11011010010000000000010010001111
+11011000101000000000010010001111
+00100000010000000111011001110010
+11011010001000000000001101001111
+11011010010000000000010010001111
+11011000101000000000010000001111
+00100000010000000111011001110010
+11011010001000000000001101101111
+11011000101000000000010010001111
+00100000010000000111011100001010
+11011010001000000000001001101111
+11011010010000000000010010001111
+11011000101000000000010001001111
+00100000010000000111011001110010
+11011010001000000000001101101111
+11011010010000000000010010001111
+11011000101000000000010010001111
+00100000010000000111011001110010
+11011010001000000000001010001111
+11011010010000000000010010001111
+11011000101000000000010001101111
+00100000010000000111011001110010
+11011010010000000000010000101111
+11011010001000000000010001001111
+11011000101000000000010010001111
+00100000010000000111011100100111
+11011010001000000000010000101111
+11011010010000000000010001001111
+11011000101000000000010000101111
+00100000010000000111011100001110
+11011010010000000000010000001111
+11011010001000000000010001101111
+11011000101000000000010001001111
+00100000010000000111011100100111
+11011010001000000000010000001111
+11011010010000000000010001101111
+11011000101000000000010000001111
+00100000010000000111011100001110
+11011010001000000000010000001111
+11011010010000000000010010001111
+11011000101000000000010000001111
+00100000010000000111011001110010
+11011010001000000000001101101111
+11011010010000000000001010101111
+11011000101000000000010001101111
+00100000010000000111011001110010
+11011010001000000000010001101111
+11011010010000000000010010001111
+11011000101000000000001101101111
+00100000010000000111011001110010
+11011010001000000000010010001111
+11011000101000000000010010001111
+00100000010000000111011100001010
+11011010001000000000010010001111
+11011010010000000000010000101111
+11011000101000000000010001101111
+00100000010000000111011001110010
+11011010001000000000010010001111
+11011010010000000000010000001111
+11011000101000000000010000001111
+00100000010000000111011001110010
+11011010001000000000010001001111
+11011000101000000000001100101111
+00100000010000000111011100001010
+11011010001000000000001100101111
+11011010010000000000010001101111
+11011000101000000000001100101111
+00100000010000000111011100100111
+11011000110000000000001100101111
+11011000101000000000010010001111
+00100000010000000111110010001111
+11011010001000000000010010001111
+00100000010000000111011100010001
+11011010001000000000010001101111
+11011010010000000000010010001111
+11011000101000000000010001101111
+00100000010000000111011100100111
+11011010001000000000010001101111
+11011010010000000000010001001111
+11011000101000000000010001001111
+00100000010000000111011001110010
+11011010001000000000010001001111
+11011010010000000000010000001111
+11011000101000000000001101001111
+00100000010000000111011100100111
+11011010001000000000001101001111
+11011010010000000000010101000111
+11011000101000000000001101001111
+00011000000000000010011000000000
+01101111111000001000001101001111
+00101111111011111111111000000000
+00100000010000001111011100001100
+00011010011000100110000000000000
+11011010001000000000001101001111
+00100000010000000111011100111100
+01101111111000001000001101101110
+00101110000011111111111000000000
+01111001001000001111111000000111
+01100111111000001000001101101110
+00100000011000000000000000000000
+00011000101000100001011000000000
+11011000101000000000010000101111
+00100000010000000111110010011111
+00011000000000000111111000000000
+01100111111000100000010001001111
+01110000000001000010111100000001
+11011000101000000000001110101111
+00100000010000000111110010100001
+11011000110000000000010101000111
+11011000101000000000001111101111
+00100000010000000111110010001111
+00011010001000100000110000000000
+11011000101000000000010000001111
+00100000010000000111110010001111
+11011000110000000000010000001111
+00100000010000000111011101000110
+00100000001110100111011001101011
+11011010001000000000010000001111
+11011010010000000000010000101111
+00100000010000000111011101001001
+11011010001000000000001111101111
+11011010010000000000001110101111
+00100000010000000111011101001001
+11011010001000000000010000001111
+11011010010000000000001111101111
+00100000010000000111011101000010
+00100000001000010111011001011101
+11011010001000000000001111101111
+11011010010000000000010000001111
+00011010001000100000101000000000
+00100000010000000111011100111010
+11011010001000000000010000101111
+11011010010000000000001110101111
+00011010010000100000101000000000
+00100000010000000111011100001100
+11101111111000001000000000010001
+10011010011000001010011000000000
+11101111111000001000000000010010
+10011010011000001111111000000000
+11100111111000001000000000010010
+00100000001000000111011001000010
+11011010001000000000010000001111
+11011010010000000000001111101111
+00011010001000100000101000000000
+00100000010000000111011100111010
+11011010001000000000001110101111
+11011010010000000000010000101111
+00011010010000100000101000000000
+00100000010000000111011100001100
+11101111111000001000000000010001
+10011010011000001010011000000000
+11101111111000001000000000010010
+10011010011000001111111000000000
+11100111111000001000000000010010
+00100000001000000111011001000010
+11011010001000000000001110101111
+00011001011000100000101000000000
+00100000010000000111011010011011
+11011010001000000000010101000111
+00011001011000100010010000000000
+00011001011000100000101000000000
+00100000001000000111011100100111
+00011000101000100001011000000000
+00011000000000000111000000000000
+11011000101000000000001110101111
+00100000010000000111110010100001
+11011000101000000000011010001111
+00100000010000000111110010100001
+00011010001000100000110000000000
+01110000000001101000111100000000
+01011000000000000000000000000000
+00100000010000000111011100000100
+00011010010000100000110000000000
+00100000010000000111011100001000
+00011000000000000000111000000000
+11011000101000000000001110101111
+11011000010000000000011010001111
+00011000111000100010010000000000
+00011010010010111111111000000000
+10011000010000001010010000000000
+00011000000000000000010000000000
+00011000000000000010011000000000
+11101111111000100000000000000101
+10011000000000000010001000000000
+11101111111000100000000000010010
+00011010011000100111000000000000
+10011101111011111111111000000000
+10011010001000001111111000000000
+10011000010000001111111000000000
+11100111111000100000000000000101
+00011111111011110000010000000000
+00011010011000001010011000000001
+00101010011000011111111000001000
+00100100001000001111011010000110
+00011000010000100111111000000000
+11100111111000100000000000000101
+00011000101000001000101111100000
+00011000111000001000111000000001
+00101000111000011111111000001000
+00100100001000001111011010000000
+11011010001000000000001110101111
+00011001011000100000101000000000
+00100000001000000111011010011011
+01000111000011000100000000100011
+00011000101000100001011000000000
+00011010001000100110000000000000
+11011010010000000000001111101111
+00011010010000100000101000000000
+00100000010000000111110010011101
+11100111111001000000000000000101
+00011010001000001000110000101100
+00100000010000000111110010001011
+00100000010000000111110010000101
+00011010010000100010001000000000
+00100000010000000111011100010001
+11011010010000000000001111101111
+00011110000000100010001000000000
+00011001011000100000101000000000
+00100000010000000111011100001110
+11011010010000000000001111101111
+00011010010000100000101000000000
+00100000010000000111110010011101
+11100111111001000000000000000101
+00011110000000001000110000110000
+00100000010000000111110010010001
+00100000010000000111110010011101
+00011010010000100010001000000000
+00100000010000000111011100010001
+11011010010000000000001111101111
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100001110
+11011010010000000000001111101111
+00011010010000100000101000000000
+00011110000000001000110000100000
+00100000010000000111110010000101
+00100000010000000111110010011101
+11100111111001000000000000000101
+00011110000000001000110000111000
+00100000010000000111110010001011
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100001110
+11011010010000000000001111101111
+00011010010000100000101000000000
+00011110000000001000110000100100
+00100000010000000111110010000101
+00011110000000001000110000110100
+00100000010000000111110010000101
+00011110000000001000110000110100
+00100000010000000111110010000110
+00011110000000001000110000100000
+00100000010000000111110010000110
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100001110
+11011010010000000000001111101111
+00011010010000100000101000000000
+00011110000000001000110000101100
+00100000010000000111110010000101
+00100000010000000111110010011101
+11100111111001000000000000000101
+00011110000000001000110000100000
+00100000010000000111110010000110
+00011110000000001000110000101000
+00100000010000000111110010000110
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100100111
+11011010010000000000001111101111
+00011010010000100000101000000000
+00011110000000001000110000110000
+00100000010000000111110010001011
+00100000010000000111110010001011
+00011000000000000111111000000000
+11100111111001000000000000000101
+00011110000000001000110000100100
+00100000010000000111110010000110
+00011110000000001000110000101100
+00100000010000000111110010000110
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100100111
+11011010010000000000001111101111
+00011010010000100000101000000000
+00011110000000001000110000110100
+00100000010000000111110010000101
+00011110000000001000110000100000
+00100000010000000111110010000101
+00100000010000000111110010011101
+00011110000000001000110000110000
+00100000010000000111110010000110
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000010000000111011100100111
+11011010010000000000001111101111
+00011010010000100000101000000000
+00011110000000001000110000111000
+00100000010000000111110010001011
+00100000010000000111110010011101
+00011110000000001000110000100100
+00100000010000000111110010000101
+00100000010000000111110010011101
+00011110000000001000110000110100
+00100000010000000111110010000110
+00011001011000100010001000000000
+00011010001000100000101000000000
+00100000001000000111011100100111
+00011000000000000111001000100000
+11011000101000000000011010001111
+10011000101000001000101000000000
+00100000001000000111110011011100
+00011000000000000111001000001000
+00100000001000000111010011100101
+00011010001000100010010000000000
+00100000001000000111011001110010
+00011000000000000111001000001000
+00100000001000000111010010101110
+00100000010000000111011100001100
+00011000101000100010001000000000
+00100000001000000111011100010010
+00100000010000000111011100111111
+00101010011011111111111000000000
+00100000001000001111011100011011
+11011010010000000000010101000111
+00011010001000100010011000000000
+00011010001000001010001111100000
+00100000010000000111011101000010
+00100100011000010000000000000000
+00011010011000100010001000000000
+00100000001000000111011100100011
+00100000010000000111011100100011
+00011010001000100010011000000000
+00011010001000001010001111100000
+11011010010000000000010101000111
+00100000010000000111011101000010
+00100100011000010000000000000000
+00011010011000100010001000000000
+00100000001000000111011100100011
+00011010001000001010001111100000
+11011010010000000000010101000111
+00011010001000100000101000000000
+00100000001000000111011100111010
+00100000010000000111011100111010
+00100000001000001111011100110001
+00011000101000001010001111100000
+11011010010000000000010101000111
+00100000010000000111011101000010
+00100100011000010000000000000000
+11011010010000000000010101000111
+00011000101000001010001111100000
+00011010001000100000101000000000
+00100000001000000111011100111010
+00011000101000001010001111100000
+11011010010000000000010101000111
+00011010001000100000101000000000
+00100000010000000111011100001100
+00100000011000001000000000000000
+00011000101000001010001111100000
+11011010010000000000010101000111
+00011010001000100000101000000000
+00100000001000000111011100001100
+00011000000000000111001000001000
+00100000001000000111010010111100
+00011000000000000111001000001000
+00011010001000001010001000011100
+00100000001000000111010011001011
+00011000000000000111001000001000
+00011000000000000010011000000000
+00100000001000000111010011011001
+00011000000000000111001000001000
+00011010001000001010001000011100
+00011010010000001010010000011100
+00100000001000000111010010100011
+11101111111001000000000000000110
+00100100011110100000000000000000
+00100000001000000111010010010001
+00011010001000100110000000000000
+00011110000000100010001000000000
+11101111111000001000000000010001
+00101111111011111111111000000000
+00100000011000001000000000000000
+00100000010000000111011100111100
+11101111111000001000000000010010
+00101111111011000000000000000000
+00100000001000001111011101011001
+11011010001000000000010101000111
+00011010010000100000101000000000
+00100000010000000111011100001100
+11101111111000001000000000010010
+10011010011000001111111000000000
+11100111111000001000000000010010
+00011010010000001010010111100000
+00011010010000001010001000100000
+00011000000000000111001000001001
+00100000010000000111010011001011
+00100000001000000111011101001010
+00100000011101011000000000000000
+00100000010000000010001110111010
+00100000010000000111011101100100
+00100000010000000111100000001001
+00100000001000000111011110011010
+00100000010000000111011110111101
+00100000001000000111011111111000
+01101111111000001100010100000011
+11000001011111111000000000000000
+10011000000000000000010000000000
+00100000010000000110111011110001
+01101000010010001100010100000011
+00100000010000000110111011101101
+00100000000000000000000001100100
+01101000010010001100010100000011
+00100000010000000110111011010111
+00100000001000000111011101101110
+01000111000011001100000000100011
+01101111111000001100010100000011
+11000001011111111000000000000000
+00011111111000100000010000000000
+00100000010000000110111011100000
+00100100001000001111011110000000
+00100000010000000111011110001010
+01101111111000010100010100000000
+01111001001000000111111000001100
+01100111111000010100010100000000
+01101111111000001100010011111011
+11000001000000000000000000000000
+01110000010001001111101100000000
+01101111111000001100010100000010
+01100111111000001100010011111010
+00100000010000000111011110010001
+01110000000001100100110100101100
+00100000001000000111100000011001
+01101111111000010100010100000000
+01111001001111111111111000001100
+01100111111000010100010100000000
+01101111111000001100010011111011
+11000001000000001000000000000000
+01110000010001001111101100000001
+01110000010001001111101000000000
+00100000010000000111011110010011
+01110000000001100100110100101101
+00100000001000000111100000011001
+01101111111000001100010011111010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100010011111010
+00100100011110100000000000000000
+01110000000001100100110100010000
+00100000001000000111100000011001
+11011000111000000000000000000111
+00100000001000000010010010111110
+11011000111000000000000000000111
+00100000001000000010010011000010
+01000111000011010100000000100011
+01101111111000010100010100000110
+00011010001011111010010000001011
+10011010010000001010010000000000
+00100000011000000000000000000000
+01101111111000001100010100000101
+00100000011110100000000000000000
+00011111111000100111001000000000
+01101111111000010100010100000110
+00011111111000100010010000000000
+00011010010000001010011000000010
+11101000010000001000000000010011
+00100000010000000111011110100101
+00011010010000001010010000001011
+11000010000000000111011110011111
+00100000011000000000000000000000
+01101111111000001100010100000100
+00100000001110100110111011101101
+00100000001000000110111011110001
+00100000010000000111011110010101
+01011000000000000000000000000010
+11100111111000001000000000010010
+00100000010000000111011111110010
+00100000001000000111011111001001
+00100000010000000111011110010101
+01011000000000000000000000000011
+11100111111000001000000000010010
+00100000010000000111011111110010
+00100000001000000111011111000110
+00100000010000000111011110010101
+01011000000000000000000000000001
+11100111111000001000000000010010
+01011000000000000000000011111111
+11100111111000001000000000000101
+00100000001000000111011111000110
+00100000010000000111011110010101
+11011111001000000000000000001011
+00011010011000100000110000000000
+00011010010000100000101000000000
+00100000001000000111110011001110
+01101111111000001100010100000101
+00100000011110100000000000000000
+11011010001000000000000000000000
+00100000010000000111011111001100
+00011010001000001010001000000001
+01101111111000001100010100000101
+10011010001001100111110000000000
+00100000011000101000000000000000
+00100000001000000111011111000000
+00011010010000001010011000000010
+11101000010000001000000000010011
+00100000001000000110111011101101
+00011010010000001010011000000010
+11101000010000001000000000010011
+00100000001000000110111011110001
+00011010001000001000111000001011
+00100000010000000111110011110001
+00100100011110100000000000000000
+00100000010000000111011110010101
+11101111111000001000000000010010
+11000000000000010111011111001001
+11000000000000011111011111000110
+11000000000000000111011111000110
+11000000000000101111011111100000
+00100000010000000111011111001001
+00011010010000001010011000000111
+00100000010000000111110001001011
+11101111111000010000000000010011
+00100000010000000111110101111011
+00100000010000000111110001010111
+01011000000000000000000000000101
+11100111111000001000000000010010
+00011010010000001010011000000011
+11101111111000010000000000010011
+00100000001000000111011111110000
+00100000010000000111011111000110
+00011010010000001010011000001001
+00100000010000000111110001001011
+11101111111000010000000000010011
+00100000010000000111110101111011
+00100000010000000111110001010111
+00011010010000001010011000000001
+11101111111000001000000000010011
+11000000011111111111011111101100
+00011111111000001111111111111111
+11100111111000001000000000010011
+00100000001110100111011110101101
+01011000000000000000000000000100
+11100111111000001000000000010010
+00011010010000001010011000000101
+11101111111000010000000000010011
+00011010001000001000111000001011
+00100000001000000111110011100011
+01011000000000000000000000000000
+00100000001000000111011111110000
+01011000000000000001000000000000
+00011111111100000111111000000000
+10011010010000001010010000000000
+00100000011000000000000000000000
+01000111000011011100000000100011
+11011010001000000000000000000000
+01101000010010100100010011111100
+00011100010000100010010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100010000010111011111110100
+00011010010000100111111000000000
+00011000010000001000010010100000
+00011000010000001000010010100000
+10011000010001100111110000000000
+00100100001000010111100000001100
+00011010001000001010001000000001
+00011010001000010111111000001111
+00100100001110100111011111111111
+11011010001000000000000000000000
+00100000010000000111100000010010
+00011100010000100111111000000000
+01100111111000100100010011111100
+00100000011000000000000000000000
+00011010001000100111111000000000
+00100000011110100000000000000000
+00011000010000001000010101100000
+00011000010000001000010101100000
+01111001001111111000010000011100
+01100000010010100100010011111100
+00100000001000000011011101001001
+01110000010001001110100000000001
+01101111111000001100010011101001
+00100100001110100111100000010100
+00100000011000000000000000000000
+01110000010001001110100000000000
+00100000011000000000000000000000
+01000111000011100100000000100011
+01101111111000001100001111001111
+11000000000001111100101000011101
+00100000010000000111100000010011
+00011010001000100111111000000000
+01100111111000100000011001100010
+11011010001000000100010011101010
+00100000010000000111110110001101
+01101111111000100000011001100010
+00011111111000100010001000000000
+00100000001000000111100000010111
+01000111000011101100000000100011
+00100000010000000111100000010011
+00011010001000100111111000000000
+01100111111000100000011001100010
+11011010001000000100010011110010
+00100000010000000111110110001101
+01101111111000100000011001100010
+00011111111000100010001000000000
+00100000001000000111100000010111
+01011000000000000000000000000000
+01100111111001000100010011110010
+01100111111001000100010011101010
+00100000011000000000000000000000
+01000111000011110100000000100011
+01101111111000001100000100010100
+00100100011110100000000000000000
+11011010001000000100010011110010
+00100000010000000111110110100101
+00100000011110100000000000000000
+01110000000001100100110000000000
+00100000010000000111100000111100
+01101111111000001000011001001100
+00100000001110100111100000110001
+00100000011000000000000000000000
+00100000010000000111100000010011
+11011010001000000100010011110010
+00100000010000000111110110011001
+00011111111000100000010000000000
+00100000010000000111100000010111
+01000111000011111100000000100011
+00011000010000100111111000000000
+00100000011110100000000000000000
+11000000000001101111100001100000
+11000000000001110111100001100110
+11000000000001111111100001101011
+11000000000010000111100001110001
+11000000000010011111100001111011
+11000000000010100111100001111101
+11000000000010101111100001111111
+11000000000010110111100010001001
+11000000000010111111100010001100
+11000000000011000111100010001110
+11000000000011001111100010010001
+01100111111000001000011001001101
+01101111111000001000011001001101
+11000101100001001111100001011001
+01000111000100000100000000100100
+01101111111000001000011001001101
+11000000000010001111100001110110
+11000000000011011111100010011001
+11000000000010010111100001111010
+11000000000011111110111010010101
+00100000011000000000000000000000
+01100111111000001000011001001101
+00100000010000000010000001011101
+00100000001000101111100001011110
+00100000010000000010000001100010
+00100100011000101000000000000000
+01110000000001100100110000000001
+00100000001000000111100000100100
+01110000010000111000110000000001
+01110000010000111000111100000000
+01101111111000010100010100000000
+01111001001000000111111000001011
+01100111111000010100010100000000
+00100000011000000000000000000000
+01101111111000010100010100000000
+01111001001111111111111000001011
+01100111111000010100010100000000
+01110000010000111000110000000000
+00100000011000000000000000000000
+01110000010000111000110000000001
+01110000010000111000111100000001
+01101111111000010100010100000000
+01111001001000000111111000001011
+01100111111000010100010100000000
+00100000011000000000000000000000
+01101111111000010100010100000000
+01111001001111111111111000001011
+01100111111000010100010100000000
+01110000010000111000110000000000
+00100000011000000000000000000000
+01011000000000000000000000010100
+01100111111000010000000110010110
+01100111111000010100001011110111
+00100000001000000011000010100011
+00100000001000000010111001110001
+11011010001000000000000000000000
+00100000001000000111011110101101
+11011010001000000000000000000000
+00100000001000000111011110101000
+11011010001000000000000000000000
+00100000010000000111011110010101
+11101111111000001000000000010010
+11000000000000001111100010000110
+11000000000000100111100010000110
+11000000000000101111100010000110
+00100000001000000111011110110010
+11101111111000001000000000000110
+11000001011111111000000000000000
+00100000001000000111011110110010
+01110000010000110100011100000001
+01110000010000010001010000011011
+00100000011000000000000000000000
+01110000010000110100011100000001
+00100000011000000000000000000000
+01110000010000110100011100000000
+01110000010000010001010000000000
+00100000011000000000000000000000
+01101111111000010100001111011110
+00100000010000000111110101111011
+01101111111000001100010100000011
+11000000011111111111100010010111
+00011111111000100000010000000000
+00100000010000000110111011010111
+00100000010000000111100000101101
+00100000001000000010001111111111
+00100000001000000010111010110011
+01101111111000001100010100000000
+11000100000001100000000000000000
+00100000011000000000000000000000
+01101111111000010100010000000100
+00011111111000001000101000000010
+01011000000000000000000000000000
+11100111111000011000000000000101
+00100000011000000000000000000000
+01000111000100001100000000100100
+00100000010000000111110110111110
+00100000010000000111100011101110
+00100000011110100000000000000000
+01101111111000010100010000000100
+00011111111000001010010000000010
+11101000010000001000000000010010
+00011000010000001000010000000001
+11100000010000001000000000010010
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000100
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000101000000000
+00011010001000100000110000000000
+00100000010000000111110011011100
+00100000010000000111100011110010
+00011111111000001111111111111111
+11101000010000001000000000010010
+00011000010000001000010000000001
+10011000010000010000010000000000
+11100000010000001000000000010010
+00100000001000000111110110111100
+01000111000100010100000000100100
+00100000010000000111110110111110
+00100000010000000111100011101010
+00100000011110100000000000000000
+01101111111000010100010000000100
+00011111111000001010010000000010
+11101000010000001000000000010010
+00011000010000001000010111111111
+11100000010000001000000000010010
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000011
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000110000000000
+00011000110000001000110000000001
+00011010001000100000101000000000
+00100000001000000111100010110010
+00100000010000000111110110111110
+00100000010000000111100011101010
+00100000011110100000000000000000
+01101111111000010100010000000100
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000011
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000110000000000
+00011000110000001000110000000001
+00011000110000100010010000000000
+00011010001000100000101000000000
+00100000010000000111110011011100
+00100000001000000111110110111100
+00100000010000000111110110111110
+00100000010000000111100011101010
+00100000011110100000000000000000
+01101111111000010100010000000100
+11101000010000001000000000111111
+00011000010000100111001000000000
+00011111111000001010010000000011
+11101111111000001000000000010010
+10011000010011111111111000000000
+10011000110000001000110000000000
+00011000110000001000101000000010
+00011010001000100000110000000000
+00011111001000001111001111111111
+00100000010000000111110011011100
+00100000001000000111110110111100
+01101111111000010100010000000100
+00011111111000001000110000000010
+11101111111000001000000000000110
+00100000011000000000000000000000
+00100000010000000111100011110010
+11101000010000001000000000000110
+10011000010001100111111000000000
+00100000011000000000000000000000
+01101111111000010100010000000100
+00011111111000001000110000000001
+11101111111000001000000000000110
+00100000011000000000000000000000
+01000111000100011100000000100100
+01101111111100001000110000100010
+00101111111011111111111000000011
+00100000010000001111100100000101
+01101111111100010000110000100010
+01100111111100010000110000100010
+01100111111000010000011011100111
+00100000010000000111100101100011
+00100000010000000111100110010100
+00100000010000000111101110001010
+00100000010000000111101111010011
+00100000001000000111100101011011
+01000111000100100100000000100100
+00100000010000000111001110000100
+00100000010000000111100100100010
+01110000100011000000000000000000
+00100000000000000010011100010000
+01110000100011000001001000000000
+01101111111100010000000001010000
+01111001001111111111111000001010
+01100111111100010000000001010000
+01110000100011000001000000100001
+01110000100011000001000110011101
+01110000100011000000000000111100
+01011000000000000000011101000001
+01100111111100010000110000000010
+01100111111100010000110000000110
+01011000000000000000011110000001
+01100111111100010000110000000100
+01110000100011000001001010000000
+01110000100011000000000100000000
+01110000100011000010001011111111
+01011000000000000000100100111101
+11011000101000000000100001001011
+10011000101001100111001000000000
+00100000001000000111110010100011
+01101000010010001000100001001010
+00100000001000000110111011010111
+01101111111000001000100011101100
+00100000011110100000000000000000
+01101000010010001000100001001010
+00100000010000000110111011100000
+00100000001000001111100100000101
+00100000011000000000000000000000
+01110000000010000100100100000010
+01011000000000000000000000000000
+01100111111000001000011110000100
+01100111111000010000100001000011
+00011111111000001111111000000001
+01100111111000010000100001000101
+00011111111000001111111000000001
+01100111111000010000100001000111
+11011000101000000000011111011000
+01011000000000110000010000000100
+11100111111000011000000000000101
+01011000000000000000010000001001
+11100111111000010000000000000101
+11011000101000000000011111011101
+00111000000000010101100100000110
+00111000000001100001000011010010
+00111000000010010000010010010100
+00111000000011000000000000000001
+11100111111001001000000000000101
+11011000101000000000011111111011
+00111000000000010101011100001111
+00111000000001010101110010011010
+00111000000010100101011011000110
+00111000000011011100110111001101
+11100111111001001000000000000101
+00111000000000010100010000100000
+00111000000001100101110110011001
+00111000000010100101011000110110
+00111000000011000000000000000001
+11100111111000111000000000000101
+11011000101000000000100000011001
+00111000000000010110001000001010
+00111000000001000000110010001100
+00111000000010110000001100110011
+00111000000011001100000011000000
+11100111111001001000000000000101
+00111000000000000011000100110000
+11100111111000010000000000000101
+01011000000000001001001010101010
+01100111111000010000011110000101
+01011000000000001001001100000111
+01100111111000010000011110000111
+11011000110000001001001111111011
+11011000101000000000011110001001
+11011111001000000000000000010011
+00100000010000000111110011011100
+11011000110000001001010000001110
+11011000101000000000011110011100
+11011111001000000000000000111100
+00100000010000000111110011011100
+01101111111000010000100000110111
+00100000001000000111110101111011
+01101111111000001000100000111001
+00100000011110100000000000000000
+01100111111000001000011110111110
+01100111111000001000011111010111
+00100000011000000000000000000000
+11011000111000000000000000000001
+00100000010000000111110011110001
+00100100011110100000000000000000
+01101111111000001000100011101101
+00100100011110100000000000000000
+01101111111000001000100011101100
+00100100010110100111110000111010
+00100000011000000000000000000000
+01101111111000001000011011100111
+11000010100000010111100101100110
+00100000011000000000000000000000
+00100000010000000111100101101011
+00100000010000000111110011110000
+01011000000000000000001010000000
+11011000111000000000000000000001
+00100000001000000111110011100011
+01101111111000001000100011011110
+11000000100000010111100101110000
+01110000000010001110110100000000
+01110000000010001110111000000000
+00100000011000000000000000000000
+01101111111000001000100011110000
+00100000011110100000000000000000
+01110000000010001111000000000000
+01110000000010001101111000000010
+01110000000010001110110000000001
+00100000011000000000000000000000
+01101111111000001000011011100111
+11000010100000000111100110100001
+00100000011000000000000000000000
+01101001010100010000110000000010
+01101010000100010000110000000100
+01101000011100010000110000000110
+11101111111000010000000000000011
+00011111111011001000010000000000
+00011000010100011000010000000000
+11011000110000000000111111111111
+10011000110000010111001000000000
+01100111001000010000011011101010
+00100000011000000000000000000000
+01101111111100001000110000100101
+11000011100000110000000000000000
+00100000010000000111100101111001
+11101111111000001000000000000011
+11100111111000001000000000000101
+11000010000000000111100110000110
+01100000011100010000110000000110
+00100000011000000000000000000000
+11011000101000000000100100111101
+00100000010000000111100110000110
+11011000010000000000100101000001
+01100000010110010000110000001110
+01101111111000001000100100111110
+00011111111000001111111000000110
+11100111111000001000000000000010
+01110000100011000001100000001000
+00100000011000000000000000000000
+01000111000100101100000000100100
+01101111111000001000011011100111
+11000100000000101000000000000000
+00100000010000000111100101111001
+00101000010000011111111000001101
+00100000001000001111100110001011
+11011000101000000000100001001011
+00100000010000000111100110000110
+01101111111000001000011011101010
+11000000000000000111100101110110
+11000000000000001111100110101000
+00011111111001100111110000000111
+00100000011000010000000000000000
+01000111000100110100000000100100
+01111001001111111000000000100011
+01101111111000001000100001001011
+00011111111000010111111010000000
+11000000010000000111100110101100
+11000000000000000111100110110100
+00100000001000000010001100111110
+01101111111000001000100001001011
+11000011100000111000000000000000
+00100000010000000111101101011110
+00100000001000000111100111011011
+01101111111000001000100001001011
+00011111111100011111111000000000
+00011111111000110111111000000000
+00011111111000010111111000000011
+11000000000000000111100110111100
+11000000000000001111100111000010
+11000000000000010111100111000111
+00100000001000000010001100111110
+01101111111000001000100001001011
+00011111111100011111111000000000
+00011111111000110111111000000000
+00011111111000010111111000000011
+11000000000000000111100111001000
+11000000000000001111100111010000
+11000000000000010111100111010101
+00100000001000000010001100111110
+01101111111000001000100001001100
+11000000000001000111100111011101
+11000000000000110111100111110011
+11000000000001010111101000111000
+11000000000000000111101001001010
+00100000001000000111100111010110
+01101111111000001000100001001100
+11000000000000010111101001111111
+11000000000000001111101010000011
+11000000000000011111101010010101
+00100000001000000111100111010110
+00100000001000000111100111010110
+01101111111000001000100001001100
+11000000000000001111101010011111
+11000000000000011111101011001111
+11000000000000101111101011111011
+11000000000001001111101100010100
+11000000000001011111101100101111
+11000000000000111111100111010110
+00100000001000000111100111010110
+01101111111000001000100001001100
+11000000000001010111101101000000
+11000000000001001111101101010010
+11000000000001011111101101110000
+00100000001000000111100111010110
+00100000001000000111100111010110
+01000111000100111100000000100100
+01101111111100001000110000011001
+01111001001000000111111000000000
+01100111111100001000110000011001
+00100000001000000111100111011011
+01110000100011000001101100000001
+00100000011000000000000000000000
+01101111111000001000100001001011
+11000000110000000111100111010110
+01101111111000001000100001001111
+11000000100000000111100111010110
+01101111111000001000100001010000
+11000000100000000111100111010110
+01101111111000001000100001010001
+11000000100000001111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001001101
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001001001
+11000000000000100111100111101111
+11000000000000011111100111110001
+00100000001000000111100111010110
+11011010010000000000000000000001
+00100000001000000111101001100100
+11011010010000000000000000000001
+00100000001000000111101001100010
+01000111000101000100000000100101
+01101111111000001000100001001110
+11000000000000001111101000000110
+11000000000000010111101000011111
+11000000000000011111101000100010
+11000000000100001111100111111011
+11000000000100010111101000110000
+00100000001000000111100111010110
+01110000000010001101101100000000
+01101111111000001000100001001111
+11000000000000000111101000000000
+11000000000000001111101000000011
+00100000001000000111100111010110
+01101010010000001000011110101111
+11011010001000000000011110101111
+00100000001000000111101101111111
+01101010010000001000011111001000
+11011010001000000000011111001000
+00100000001000000111101101111111
+01101111111000001000100011101111
+00100100010110100111101000010111
+01011000000000000000011110001001
+01101000010010001000011110001001
+01100111111000010000100011100110
+01100000010010001000100011101000
+01101111111000001000100001010001
+10011000010001100111110000000000
+00100100001000010111101000010101
+01101111111000001000100011101000
+10011000000000000010010000000000
+01101111111000010000100011100110
+00011111111000001111111000000001
+10011000000000000010001000000000
+00100000001000000111101101111111
+01101111111000001000100001010001
+00100000001000000111101000010000
+01101111111100001000110000000001
+00100100010110100111101000011011
+01110000000010001110111100000000
+00100000011000000000000000000000
+01101111111100001000110000000001
+01111001001000000111111000000111
+01100111111100001000110000000001
+00100000011000000000000000000000
+01011000000000000000011110011100
+01101000010010001000011110011100
+00100000001000000111101000001010
+01101111111000001000100001001101
+00011111111001100111110000000011
+00100100001000010111100111010110
+01101111111000001000100001001101
+11011010001000000000011111011000
+11000000000000000111101101111101
+01111001001000000000000000100011
+11011010001000000000011111011101
+11000000000000001111101101111101
+11011010001000000000011111111011
+11000000000000010111101101111101
+11011010001000000000100000011001
+11000000000000011111101101111101
+00100000011000000000000000000000
+01101111111000010000100001001111
+11000000000000001111101000110100
+01101010001000010000011110000101
+00100000001000000111101101111101
+01110000000010001110110000000001
+01110000000010001101111000000001
+01101010001000010000011110000111
+00100000001000000111101101111101
+01101111111000001000100001001001
+11000000100000100111100111010110
+01101111111000001000100001001011
+11000000110000001111100111010110
+01101111111000001000100001001101
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001010001
+11000000100000001111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001001111
+11000000100000000111100111010110
+01101111111000001000100001010000
+11000000100000000111100111010110
+11011010010000000000000000000001
+00100000001000000111101001100010
+01101111111000001000100001001001
+11000000000000010111100111010110
+01101111111000001000100001001101
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001010001
+11000000100000010111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001010000
+11000000100000000111100111010110
+01101111111000001000100001001011
+11000000010000000111101001011101
+11000000010000001111101001101000
+11000000010000010111101001101100
+00100000001000000111100111010110
+01110000000010001110000100000001
+00100000001000000111101001100110
+01101111111000001000100001001111
+11000000100000000111100111010110
+11011010010000000000000000000010
+01101111111000001000100011011111
+11000000000000001111101001011011
+11011010001000000000100001000011
+00100000001000000111101101111111
+11011010001000000000100001000101
+00100000001000000111101101111111
+11011010001000000000100001000111
+00100000001000000111101101111111
+01101111111000001000100001001001
+11000000100000100111100111010110
+11011010010000000000000000000010
+00100000001000000111101001100010
+01101111111000001000100001001001
+11000000100000100111100111010110
+01101111111000001000100001001111
+11000000010000001111101001111001
+11000000010000010111101001111011
+11000000010000011111101001111101
+00011111111000010111111001111111
+11000000000000000111101001110101
+00100000001000000111100111010110
+01101111111000001000100011100010
+11011010010000000000000000000010
+11000000000000001111101001100100
+00100000001000000111101001100010
+01101111111000001000100011100011
+00100000001000000111101001110110
+01101111111000001000100011100100
+00100000001000000111101001110110
+01101111111000001000100011100101
+00100000001000000111101001110110
+01110000000010001101100100000001
+11011010001000000000100011011010
+11011010010000000000000000000001
+00100000001000000111101101111111
+01000111000101001100000000100101
+01101111111000010000100001001101
+11011000010000000000000110111010
+10011000010001100111110000000000
+00100100001000101111100111010110
+01101111111000001000100011010110
+00100100001110100111101010010010
+01110000000010001001001100000000
+01101111111000001000100001010001
+10011000000000000010010000000000
+11011010001000000000100010010011
+00100000010000000111101101111111
+11011000101000000000100010010011
+11011111001000000000000001000000
+00100000001000000111110010100101
+01110000000010001101011000000000
+01110000000010001001001100000001
+00100000001000000111101010001011
+01101111111000001000100001010001
+11000000100000001111100111010110
+01110000000010001101101100000001
+11011010010000000000000000000001
+01101111111000001000100011011101
+11000000000000000111101010011101
+11000000000000001111101010011110
+00100000001000000111101001100010
+00100000001000000111101001100100
+00100000001000000111101001100010
+01101111111000001000100001001001
+11000000100000100111100111010110
+01101111111000001000100001010001
+11000000100000000111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001010000
+11000000100000000111100111010110
+01101111111000001000100001001011
+11000000000000000111101010101110
+11000000000000001111101010111100
+11000000000000010111101010111101
+00100000001000000111100111010110
+01000111000101010100000000100101
+01101111111000001000100001001101
+11000000100000001111100111010110
+01101111111100001000110000000000
+01111001001111111111111000000111
+01100111111100001000110000000000
+01110000000010001101111100000000
+01110000000010001110000000000001
+01101111111000001000100011100001
+00100000001110100111100111011011
+01110000000010001110000100000000
+01110000000010001110000000000000
+01110000000010001101111000000010
+00100000001000000111100111011011
+00100000001000000111100111010110
+01101111111000001000100001001101
+11000000100000000111100111010110
+01101111111000001000100001001111
+11000000010000001111101011001000
+11000000010000010111101011001011
+11000000010000011111101011001101
+00011111111000010111111001111111
+11000000000000000111101011000110
+00100000001000000111100111010110
+01110000000010001110001000000000
+00100000001000000111100111011011
+01110000000010001110001100000000
+01110000000010001111000000000001
+00100000001000000111100111011011
+01110000000010001110010000000000
+00100000001000000111101011001001
+01110000000010001110010100000000
+00100000001000000111101011001001
+01101111111000001000100001010001
+11000000100000000111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001001011
+11000000000000000111101011011000
+11000000000000001111101011100111
+11000000000000010111101011101000
+00100000001000000111100111010110
+01000111000101011100000000100101
+01101111111000001000100001001101
+11000000100000001111100111010110
+00100000010000000011110111010110
+01101111111100001000110000000000
+01111001001000000111111000000111
+01100111111100001000110000000000
+01110000000010001101111100000001
+01110000000010001101111000000011
+01110000000010001101011100000000
+00100000010000000111100111011011
+00100000010000000111110011110000
+01011000000000000001001110001000
+11011000111000000000000000001111
+00100000001000000111110011100011
+00100000001000000111100111010110
+01101111111000001000100001001101
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001001111
+11000000010000001111101011110101
+11000000010000010111101011110111
+11000000010000011111101011111001
+00011111111000010111111001111111
+11000000000000000111101011110011
+00100000001000000111100111010110
+01110000000010001110001000000001
+00100000001000000111100111011011
+01110000000010001110001100000001
+00100000001000000111100111011011
+01110000000010001110010000000001
+00100000001000000111100111011011
+01110000000010001110010100000001
+00100000001000000111100111011011
+01101111111000001000100001001011
+11000000100000000111100111010110
+01101111111000001000100001001111
+11000000100000000111100111010110
+01101111111000001000100001010000
+11000000100000000111100111010110
+01101111111000001000100001010001
+11000000100000000111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001001101
+00011111111000010111111010000000
+11000000100000000111100111010110
+01101111111000001000100001001101
+11000000100000000111101100010010
+01110000000010000100100100000010
+01101111111000001000100001001101
+01100111111100001000110000000001
+00100000010000000111100111011011
+01110000000010001110111100000001
+00100000011000000000000000000000
+01110000000010000100100100000011
+00100000001000000111101100001101
+01101111111000001000100001001001
+11000000000000010111100111010110
+01101111111000001000100001001011
+11000000100000000111100111010110
+01101111111000001000100001001111
+11000000100000000111100111010110
+01101111111000001000100001010000
+11000000100000000111100111010110
+01101111111000001000100001010001
+11000000100000000111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001001101
+00011111111001100111110000000001
+00100100001000010111100111010110
+01101111111000001000100001001001
+11000000000000011111101100101001
+11000000000000100111101100101001
+00100000001000000111100111010110
+01101111111000001000100001001101
+11000000000000000111101100101101
+01110000000010000100100100000100
+00100000001000000111100111011011
+01110000000010000100100100000011
+00100000001000000111100111011011
+01101111111000001000100001001001
+11000000100000100111100111010110
+01101111111000001000100001001011
+11000000100000001111100111010110
+01101111111000001000100001001101
+11000000100000000111100111010110
+01101111111000001000100001001110
+11000000100000000111100111010110
+01101111111000001000100001010001
+11000000100000000111100111010110
+01101111111000001000100001010010
+11000000100000000111100111010110
+01101111111000001000100001001111
+11000000100000000111100111010110
+01101111111000001000100001010000
+11000000100000000111100111010110
+00100000001000000111100111011011
+01000111000101100100000000100101
+01110000000010001101100100000001
+01101111111000001000100001001110
+01100111111000001000100011011010
+01101111111000001000100001001111
+00011111111001100111110000000001
+00100000010000101111101101001110
+01101111111000001000100011011110
+11000000100000100111100111011011
+01110000000010001101111000000010
+00100000010000000111100111011011
+00100000000000000111010100110000
+00100000000000000111010100110000
+00100000011000000000000000000000
+01110000000010001110110000000001
+01110000000010001110000000000000
+01110000000010001101111000000100
+00100000011000000000000000000000
+01000111000101101100000000100101
+00100000000000000011101010011000
+11011000101000000000100001010011
+00100000010000000111100110000011
+01110000000010001101010100000001
+00100000010000000111101101100010
+01101111111000010000100001001101
+01100111111000010000100011010011
+01110000100011000001101100000010
+01101111111000001000100011010111
+00100000011110100000000000000000
+01101111111000001000100001010011
+01100111111000001100011000111000
+01110000000010001101011100000000
+01110000010001100010100000000011
+00100000011000000000000000000000
+01101111111000010000100001001101
+11011000010000000000001000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000010000100001001111
+11011000010000000000000000000000
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101111111000010000100001010001
+11011000010000000000000000000001
+10011000010001100111110000000000
+00100100011000101000000000000000
+01110000000010001101011100000001
+00100000011000000000000000000000
+01101111111000001000100001010001
+11000000100000000111100111010110
+01101111111000001000100001001101
+11000000000000000111101101110110
+11000000000000001111101101111001
+00100000001000000111100111010110
+01110000000010001101110000000000
+01110000000010001101110100000001
+00100000001000000111100111011011
+01110000000010001101100000000001
+01110000000010001101110000000001
+01110000000010001101110100000000
+00100000001000000111100111011011
+11101010010000001000000000010001
+00011010001000001010001000000001
+01000111000101110100000000100101
+01111001001000000000000000001110
+11000101100100011111101110000100
+00011010010000001010010000000001
+00011010010000111010010000000000
+01100010001000010000011110000010
+01100010010000001000011110000100
+00100000001000000111101110001010
+00100000011000000000000000000000
+11011000111000000000000000000000
+00100000001000000111101111001011
+01000111000101111100000000100101
+01101111111100001000110000100101
+11000011100000000000000000000000
+01101111111000001000011110000100
+00100000011110100000000000000000
+00011111111000100111001000000000
+10011000000000000000010000000000
+01101111111000010000100001010001
+00011111111001100111110001000000
+00100000001000010111101110011000
+00011111001001100111110001000000
+00100000001000010111101110011100
+00011000000000000111001001000000
+00100000001000000111101110011100
+10011111001001100111110000000000
+00100000001000010111101110011100
+10011000000000000111001000000000
+01100111111000001000011110000100
+01101111111000001000011110000100
+10011111001001100111111000000000
+01100111111000001000011110000100
+00011111001000001111111111111111
+01100111111000001000011011101100
+11000101100100011111101110101110
+00011111111000110111111000000000
+00011111001000001111111111111111
+01100111111000001000011011101100
+11000101100001110111101110101110
+01111001001111111000000000001110
+11100000010000001000000000000101
+01011000000000000000000000000011
+11100111111000001000000000000101
+00011111001000001111001111111111
+00011111001000100111111000000000
+00100100001000101111101110101110
+00011111001000001111001000000001
+01101111111000010000011110000010
+00011111111000100000110000000000
+11101111111000001000000000000110
+11100111111000001000000000000101
+11000101100100011111101110110101
+01011000000000000000000000000000
+11100111111000001000000000000101
+11000010000000000111101110110000
+00011000110000100111111000000000
+01100111111000010000011110000010
+01011000000000000000011011101100
+01100111111100010000110000001000
+11011000111000000000000000000000
+00100000010000000111101111001011
+01101111111000001000011110000100
+00100100011110100000000000000000
+01110000100011000001101100000010
+01101111111000001000100011011110
+11000001100000001000000000000000
+01110000000010001101111000000010
+00100000011000000000000000000000
+11011010001000000000011100101101
+11011000111000000000000000000001
+01100010001100010000110000001010
+00011111001000001111111111111111
+11100111111000001000000000010001
+11101111111000001000000000000110
+11100111111000001000000000000101
+11000010000000000111101111001000
+01011000000000000000000000000000
+11111001001000000111111000000000
+01100111111100001000110000011000
+00100000011000000000000000000000
+11011000111000000000000000000010
+11011010001000000000011100110111
+01100010001100010000110000001100
+00100000001000000111101111000110
+01000111000110000100000000100110
+01101111111000001000100011101011
+00100000011110100000000000000000
+01101111111100001000110000100101
+00011111111000010111111000001111
+00100100001110100111110000110010
+01101111111000001000100011101100
+00100000001110100111101111111110
+01101111111000001000100011011110
+11000000000000011111110001000010
+11000000100000010111101111111110
+01101111111000001000100011100000
+00100100001110100111101111111110
+00100000010000000111101111100010
+00100000001000000111101111101110
+01101111111100001000110000100101
+11000011100000001000000000000000
+01101111111000001000100011101011
+11000100000000001000000000000000
+01101111111000001000100011101011
+01111001001111111111111000000001
+01100111111000001000100011101011
+01000111000110001100000000100110
+01101111111000001000100011101001
+00100000011110100000000000000000
+11000000000010000111110000100000
+00100000001000000010001100111110
+01101111111100001000110000100101
+11000011100000010000000000000000
+01101111111000001000100011101011
+11000100000000010000000000000000
+01101111111000001000100011101011
+01111001001111111111111000000010
+01100111111000001000100011101011
+01000111000110010100000000100110
+01101111111000001000100011101010
+00100000011110100000000000000000
+11000000000100000111110000000001
+11000000000100001111110000011100
+11000000000100010111110000100110
+11000000000100011111110000101010
+11000000000100100111110000101110
+00100000001000000010001100111110
+11011000101000000000100011110001
+11011111001000000000000001000000
+00100000001000000111110010100101
+01101111111000001000100011011001
+01101000010010001000100011011011
+10011000010000010111111000000000
+00100000001110100111110000011000
+01101000010010001000100011011100
+10011000010000001111111000000000
+11000000000000001111110000001001
+00100000001000000111110000011000
+01110000000010001110101000000000
+01101111111000001000100011110010
+11000000000000010111110000011001
+11000000000000011111110000011001
+01101111111000001000100011110010
+01100111111000001000100011110001
+01101111111000001000100011110011
+11100111111000001000000000000101
+01101111111000001000100011110101
+11100111111000001000000000000101
+01101111111000001000100011110111
+11100111111000001000000000000101
+11011111001000000000000000000100
+11011000110000000000100011110001
+00100000001000000111101111001111
+01110000000010001110101000000000
+11011111001000000000000000001000
+11011000110000000000100011110001
+00100000001000000111101111001111
+01110000000010001110101000000000
+11011111001000000000000000000011
+11011000110000000000100100100001
+00100000001000000111101111001111
+01101111111000001100001111001111
+11000000000001111100101000010000
+01110000000010001110100100000000
+11011111001000000000000000001000
+11011000110000000000100100000001
+00100000001000000111101111000011
+01110000000010001110101000000000
+11011111001000000000000000000010
+11011000110000000000100100101001
+00100000001000000111101111001111
+01110000000010001110101000000000
+11011111001000000000000000000100
+11011000110000000000100100100001
+00100000001000000111101111001111
+01110000000010001110101000000000
+11011111001000000000000000001111
+11011000110000000000100100010001
+00100000001000000111101111001111
+01101111111000001000100011011110
+11000000000000010111110000110101
+00100000011000000000000000000000
+01101111111100001000110000000000
+01111001001000000111111000000111
+01100111111100001000110000000000
+01110000000010001110111000000001
+00100000011000000000000000000000
+01101111111000001000100011011110
+11000001000000011000000000000000
+11000000000000010111110000111110
+00100000011000000000000000000000
+01101111111000001000100011101110
+00100000011110100000000000000000
+01110000000010001110110100000001
+00100000001000000111110001000101
+11011000111000000000000000001111
+00100000010000000111110011110001
+00100100011110100000000000000000
+01101111111100001000110000000000
+11000100000000111000000000000000
+01110000100011000000000011111100
+00100000000000000111010100110000
+01110000100011000000000000111100
+00100000011000000000000000000000
+01100000101000010000011001101111
+01100000010011000000011001010110
+01100001011000100000011001011110
+00100000010000000111110001010011
+01100000110000010000011001101101
+01100111001000010000011001111001
+01100000111000010000011001110111
+00100000011000000000000000000000
+01100010001000100000011001100010
+01100010010000100000011001100110
+01100010011000011000011001101010
+00100000011000000000000000000000
+01000111000110011100000000100110
+01101111111000010000011001101111
+10011000000000000000101000000000
+01101000010011000000011001010110
+01101001011000100000011001011110
+00100000010000000111110001100010
+01101111001000010000011001111001
+01101000111000010000011001110111
+01101111111000010000011001101101
+10011000000000000000110000000000
+00100000011000000000000000000000
+01101010001000100000011001100010
+01101010010000100000011001100110
+01101010011000011000011001101010
+00100000011000000000000000000000
+01101111111000010000011001101111
+00011111111000100000101000000000
+00100000011000000000000000000000
+01101111111000010000011001101101
+00011111111000100000110000000000
+00100000011000000000000000000000
+00011000101000100111111000000000
+01100111111000010000011001101111
+00100000011000000000000000000000
+00011000110000100111111000000000
+01100111111000010000011001101101
+00100000011000000000000000000000
+00011000101000100111111000000000
+01100111111000010000011001101111
+00011000110000100111111000000000
+01100111111000010000011001101101
+00100000011000000000000000000000
+01101111111000010000011001101111
+00011111111000100000101000000000
+01101111111000010000011001101101
+00011111111000100000110000000000
+00100000011000000000000000000000
+10011000010001100010001000000000
+00100000011000010000000000000000
+11011010001000000000000100000000
+10011010001000001111111000000000
+10011000010001100010001000000000
+00100000011000000000000000000000
+00100000010000000111110010001111
+00100000010000000111110010001111
+00100000001000000111110010001111
+00100000010000000111110010001011
+11101111111000001000000000000110
+11100111111000001000000000000101
+11101111111000011000000000000110
+11100111111000011000000000000101
+00100000011000000000000000000000
+11101111111001000000000000000110
+11100111111001000000000000000101
+00100000011000000000000000000000
+00100000010000000111110010010001
+00100000010000000111110010001011
+00100000010000000111110010001011
+00100000010000000111110010001011
+00100000001000000111110010001011
+00011111111000001111111111111111
+00100000000000000000000000100110
+00100100001110100111110010010011
+00100000011000000000000000000000
+11011111001000000000000000001010
+00100000000000000010111011100000
+11000010000000000111110010011000
+00100000011000000000000000000000
+00100000010000000111110010011100
+00100000010000000111110010011101
+00011000000000000111001000000100
+00100000001000000111110010100101
+00011000000000000111001000100000
+00100000001000000111110010100101
+00011000000000000111001001000000
+00100000001000000111110010100101
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011000000000000111111000000000
+11100111111000000000000000000101
+00100000011000000000000000000000
+11011111001000000000000000100000
+11011000101000000000011001111111
+00100000001000000111110010100011
+11101111111000100000000000010011
+11101000010000100000000000010001
+10011000010000101111111000000000
+11100111111000100000000000000101
+00011010001000001010001000000100
+00011010011000001010011000000100
+11000010000000000111110010101011
+00100000011000000000000000000000
+01000111000110100100000000100110
+00011111001000100111111000000000
+00011111111001100111110000000001
+00100000011000010000000000000000
+10011010001000001010010000000000
+00011010010000001010010111111111
+00011111001000110111001000000000
+11101000010000001000000000010001
+11101111111000001000000000010010
+11100111111000001000000000010001
+11100000010000001000000000010010
+00011010010000001010010111111111
+00011010001000001010001000000001
+11000010000000000111110010111010
+00100000011000000000000000000000
+00011111111011110000010000000000
+00100000010000000111110011001000
+00011000010100001000010000000000
+00011111111100000111111000000000
+10011000010000011111111000000000
+00100000011000000000000000000000
+00011111111100010000110000000000
+00011000110100001000110000000000
+00011111111100001111111000000000
+00011111111100000111111000000000
+10011000110000011111111000000000
+00100000011000000000000000000000
+01000111000110101100000000100110
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011111001000001111001111111000
+00100000010000010111110010001011
+00100000011000101000000000000000
+00100000001000010111110011010001
+00011111001000001111001000001000
+00011111001000001111001111111100
+00100000010000010111110010000110
+00100000011000101000000000000000
+00100000001000010111110011010110
+00011111001000001111001000000100
+00100000001000000111110011011100
+00011111001000100111111000000000
+00100000011110100000000000000000
+11101111111000001000000000000110
+11100111111000001000000000000101
+11000010000000000111110011011110
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100111111000010000011001001110
+01000111000110110100000000100110
+00100000010000000111110011110001
+01101000010010010000011001001110
+11011000101000000100000011110100
+00011000111000111111111000000000
+10011000101000001000101000000000
+11100000010000010000000000000101
+00100000011000000000000000000000
+11011001011000000000100000000000
+00011001011100000001011000000000
+10011001011000001111111000000000
+00100000011000000000000000000000
+11011000111000000000000000000000
+01000111000110111100000000100110
+01101000010010100100000010010101
+00011100010000110111111000000000
+01100111111000100100000010010101
+10011000010001100111110000000000
+00100100010000010111110011101100
+10011000010001100001011000000000
+00011001011000100000010000000000
+11011000110000000100000011110100
+00011000110000100000101000000000
+11011111001000000000000000010000
+11101111111000010000000000000110
+10011000010001100111111000000000
+00100000001000010111110100000000
+00011000000000000111111000000000
+11100111111000010000000000000101
+11000010000000000111110011111100
+11011000110000000100000011110100
+00011000111000111111111000000000
+10011000110000001000110000000000
+11101111111000010000000000000110
+00100000011000000000000000000000
+10011000010000001000010000000000
+00011000010000100111001000000000
+01101111111000010000000001000100
+10011111001001100111111000000000
+00100000011000010000000000000000
+00011111111001100111111000000000
+00011000010100010000010000000000
+00011000010000001000010000000001
+00011000010100000000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+00100000010000000111110100010100
+00100000001000000111110100100001
+01111000010101000111110000000000
+10011000010001100111111000000000
+00100000001000010111110100011001
+01111000001101000111110000000000
+00011111111001100111111000000000
+11000100000001111000000000000000
+00011111111000100010100000000000
+11011000010000010000000000000000
+01101111111000010000000001000100
+10011000010001100111111000000000
+10011010100000001111111000000000
+01111001001111111111111001000000
+00100000011000000000000000000000
+01101000010010010000000001000100
+10011000000000000000110000000000
+00011111111100010111111000000000
+10011000010011111111111000000000
+10011000110000001111111000000000
+00100000011000000000000000000000
+00011111111011010111111000000000
+00011111111100100111111000000000
+01101000010010011100000010111101
+10011000010001101111110000000000
+00100000010000000111110101100100
+00011000000001111000010000000000
+00100000011000000000000000000000
+01101000010010010000000001000100
+10011000010001101111110000000000
+00100000010000000111110101100001
+00011111111100000111111000000000
+00011000000001110000010000000000
+10011000010000011000010000000000
+00100000011000000000000000000000
+11011000010000000000000000000000
+00011000010000100010100000000000
+11101111111000001000000000000011
+00100000010000000111110101000001
+00011010100000100000010000000000
+00100000010000000111110101110010
+11011010010000000000000000001010
+10011010010011111111111000000000
+10011000010000001111111000000000
+00011111111000100000010000000000
+11000010000000000111110100110110
+00100000011000000000000000000000
+11011000010000000000000000111010
+10011000010001100111110000000000
+00100100001000010111110101001010
+11011000010000000000000001100001
+10011000010001100111110000000000
+00100000001000010111110101001101
+11011000010000000000000000110111
+10011000010001100111111000000000
+00100000011000000000000000000000
+11011000010000000000000000110000
+10011000010001100111111000000000
+00100000011000000000000000000000
+11011000010000000000000001010111
+10011000010001100111111000000000
+00100000011000000000000000000000
+00011111001001100111110000000000
+00100000011000101000000000000000
+00011111111000110111111000000000
+11000010000000000111110101010010
+00100000011000000000000000000000
+00011000000000000111111000000001
+00011111001001100111110000000000
+00100000011000101000000000000000
+00011111111000111111111000000000
+11000010000000000111110101011000
+00100000011000000000000000000000
+01011000000000000000000000000000
+00011111001000100010001000000000
+11101000010000010000000000000110
+10011000010000001111111000000000
+11000010000000000111110101011101
+10011010001001101111110000000000
+00100000010000000111110101100100
+00011000000001111111111000000000
+00100000011000000000000000000000
+00100000011110101000000000000000
+00100000001000000111110101100100
+11101111111000001000000000010001
+11101000010000001000000000010010
+10011000010001100111110000000000
+00100100011000101000000000000000
+00011010001000001010001000000001
+00011010010000001010010000000001
+11000010000000000111110101100110
+00100000001000000111110110111010
+10011000010001100111110000000000
+00100100011000010000000000000000
+00011000010000100111111000000000
+00100000011000000000000000000000
+10011000010000001111111000000000
+10011000010001100000010000000000
+10011000010001100111111000000000
+00100000011000000000000000000000
+11011000101000000000000000000000
+00100000001000000111110101111001
+11011000101000000100000000000000
+11011111001000000001000000000000
+00100000001000000111110010100101
+00100000011110100000000000000000
+00011111111000100111101000000000
+00100000010000000111000100011101
+01110000100000100000001100000001
+00100000011000000000000000000000
+01100111111100010000001000000101
+01101111111100001000001000000011
+01111001001000000111111000000100
+01100111111100001000001000000011
+00100000011000000000000000000000
+01100111111100010000001000000111
+01101111111100001000001000000011
+01111001001000000111111000000110
+01100111111100001000001000000011
+00100000011000000000000000000000
+01100111111100010000001000000101
+01110000100000100000001100110000
+00100000011000000000000000000000
+01000111000111000100000000100111
+11101000010001000000000000010001
+00011000010000010111111011111111
+00100100001110100111110110010011
+00011000010011001111111000000000
+11100111111001000000000000010001
+00011010001000001010001000000111
+11101111111000001000000000010001
+00100100001110100010001100111110
+01101111111000001000011001001101
+11100111111000001000000000010001
+00100000011000000000000000000000
+01000111000111001100000000100111
+11011111001000000000000000001000
+11101111111001000000000000010001
+00100000011110100000000000000000
+11101111111000001000000000010001
+00100100001110100111110110100010
+00011010001000001010001000000001
+11000010000000000111110110011101
+00100000001000000010001100111110
+11011000010000000000000000000000
+11100000010000001000000000010001
+00100000011000000000000000000000
+11101111111001000000000000010001
+00100000011000000000000000000000
+11101111111000001000000000010001
+00100000011000000000000000000000
+11101111111000010000000000010001
+00100000011000000000000000000000
+11011000010000000000000000000000
+01101111111000001000000000000110
+11000010000000000111110110101100
+00011000010000001000010000000001
+11000010000000000111110110101100
+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
+11100111111000001000000000000101
+00100000011000000000000000000000
+00011111001001100111110000000000
+00100000011000101000000000000000
+11101000010000001000000000000110
+10011000010000001111111000000000
+11000010000000000111110111010010
+00100000011000000000000000000000
+00011111001000100111111000000000
+00100000011110100000000000000000
+00011000110000100111111000000000
+10011111001000001111111000000000
+00011111111000001111111111111111
+00011111111000100000110000000000
+11101111111000001000000000000110
+00011000110000001000110111111110
+11100111111000001000000000000101
+11000010000000000111110111011100
+00100000011000000000000000000000
+00011111111100000111111000000000
+00011111111010110111111000000000
+00100000011000000000000000000000
+00011111111011010111111000000000
+00100000001000000111110111100010
+01000111000111010100000000100111
+01011000000000000000000000000000
+01111001001000000111111000010101
+01100111111001000000000000010110
+01011000000000000000000000000000
+11100111111000100000000000000101
+00100000011000000000000000000000
+11011111001000000000000000010000
+00011000000010100111111000000000
+11100111111000001000000000000101
+11000010000000000111110111101110
+00100000011000000000000000000000
Index: GK308_keyboard_only_24g/output/eeprom.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/eeprom.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/eeprom.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+e0
+0b
+ca
+22
+e1
+72
+1f
+77
+25
+b7
+f3
+b4
+40
+cf
+3b
+d0
+68
+1e
+99
+99
+56
+4b
+f0
+95
+4f
+4f
+6d
+bb
+be
+cf
+b7
+45
+0a
+82
+eb
+6a
+35
+cf
+b7
+e8
+8c
+4c
+3b
+bc
+da
+7a
+65
+94
+ae
+ed
+46
+e4
+60
+7b
+14
+de
+ab
+a7
+07
+38
+03
+c8
+28
+32
+08
+95
+8a
+51
+c8
+53
+8e
+70
+9d
+05
+ba
+97
+15
+73
+c4
+ed
+50
+12
+62
+22
+43
+9f
+e9
+32
+e6
+9b
+12
+fe
+5e
+c9
+b1
+0c
+e3
+0e
+a5
+76
+8c
+a7
+4f
+19
+a5
+1d
+88
+20
+17
+42
+eb
+a2
+8f
+66
+87
+14
+3a
+02
+e1
+e7
+e2
+af
+8a
+8d
+cd
+93
+e1
+79
+d5
+b3
+a2
+27
+f7
+6e
+d5
+d8
+02
+32
+dd
+1b
+4f
+a9
+07
+67
+2e
+87
+f9
+5d
+11
+91
+65
+3c
+e6
+ed
+c3
+22
+ea
+c7
+0c
+8c
+95
+c6
+6c
+9f
+55
+4c
+10
+a5
+08
+89
+f1
+ad
+4b
+ba
+c0
+68
+5b
+7d
+c1
+d0
+d6
+b4
+c6
+37
+be
+a1
+50
+db
+93
+f4
+da
+a3
+19
+98
+3a
+8f
+96
+a6
+07
+a2
+5c
+bb
+d0
+e8
+3d
+de
+0f
+ac
+44
+13
+63
+b6
+c0
+48
+05
+4c
+fd
+12
+a8
+ce
+fe
+2b
+98
+e3
+12
+df
+49
+20
+51
+60
+2d
+40
+81
+97
+23
+71
+33
+85
+dc
+3c
+4c
+4a
+62
+62
+e5
+db
+2c
+d4
+4e
+f6
+34
+e1
+3c
+9a
+60
+8b
+98
+45
+7f
+6f
+42
+fd
+b6
+4b
+88
+00
+5f
+24
+d4
+8a
+1a
+ea
+0d
+df
+e4
+67
+ea
+f3
+7a
+50
+19
+6f
+5f
+f9
+bd
+da
+cc
+27
+f9
+b5
+40
+58
+aa
+d9
+aa
+56
+b2
+6c
+87
+87
+69
+50
+70
+8e
+de
+81
+6e
+a3
+e4
+46
+9b
+ef
+7d
+af
+43
+6a
+cb
+33
+03
+20
+ae
+c7
+47
+b5
+d3
+38
+0b
+f1
+3f
+6e
+fb
+94
+2d
+b1
+76
+ca
+72
+3e
+52
+c7
+df
+2c
+b2
+fa
+3a
+7c
+42
+84
+76
+cd
+54
+a8
+fd
+a6
+7b
+89
+67
+0d
+07
+c2
+40
+b5
+4e
+4d
+be
+00
+3f
+c5
+67
+a2
+f7
+05
+39
+67
+4e
+b2
+29
+0b
+04
+a0
+2c
+c4
+fa
+ec
+29
+fc
+b8
+95
+51
+ee
+48
+8c
+22
+5b
+55
+0f
+ad
+2d
+1e
+72
+a7
+8b
+d4
+9a
+51
+75
+9f
+47
+e6
+da
+30
+f2
+a1
+ea
+04
+30
+3c
+75
+ee
+18
+7b
+61
+56
+2b
+80
+48
+90
+ec
+04
+91
+15
+47
+a1
+28
+e4
+f0
+22
+19
+b8
+6f
+81
+c5
+b1
+49
+ce
+10
+17
+06
+60
+af
+af
+75
+e7
+50
+d6
+6e
+64
+19
+d5
+20
+14
+5e
+db
+ec
+42
+73
+1b
+90
+8d
+03
+f8
+2d
+be
+7d
+34
+4d
+f6
+fc
+65
+94
+b7
+2b
+0f
+f4
+4d
+5b
+f2
+7c
+c5
+8e
+1c
+28
+34
+84
+de
+32
+f6
+2f
+c1
+54
+2d
+f8
+c6
+22
+5c
+78
+74
+0e
+42
+3a
+ae
+15
+8a
+92
+f2
+c7
+6f
+30
+63
+de
+8b
+e6
+76
+8a
+7d
+2d
+44
+93
+0c
+c8
+e2
+30
+f6
+9f
+3a
+86
+04
+89
+84
+31
+69
+43
+a6
+20
+8b
+ef
+36
+34
+80
+3a
+93
+29
+bd
+2d
+2c
+c7
+b4
+a5
+8e
+a3
+f4
+97
+1d
+d0
+19
+35
+68
+4e
+35
+5b
+af
+0a
+d9
+b4
+82
+a5
+1f
+88
+1f
+6b
+e3
+5f
+db
+3d
+63
+a0
+94
+0d
+c9
+89
+d1
+23
+b1
+aa
+69
+e5
+99
+42
+a3
+7f
+95
+63
+f6
+42
+df
+57
+46
+b0
+0c
+cd
+ff
+74
+9a
+1e
+fe
+cb
+9b
+6d
+c1
+f7
+4d
+d1
+0d
+73
+a5
+c7
+ca
+10
+aa
+00
+0b
+e5
+8d
+24
+07
+d6
+1c
+85
+4f
+c7
+f5
+94
+ba
+f5
+e5
+6d
+29
+39
+bd
+ad
+4b
+e9
+4f
+df
+15
+59
+78
+ab
+54
+36
+2e
+a2
+3c
+2c
+8a
+ab
+c1
+45
+70
+7c
+ad
+46
+3f
+de
+d1
+d0
+5d
+06
+e2
+2b
+21
+95
+5b
+a7
+47
+a6
+09
+a5
+5b
+87
+0d
+0c
+b6
+37
+a4
+2b
+d9
+5f
+58
+a2
+47
+c8
+67
+5b
+f9
+20
+aa
+ef
+0e
+af
+9d
+e5
+6f
+e3
+2b
+4d
+97
+75
+e3
+26
+09
+b7
+b3
+6e
+03
+7b
+24
+91
+f7
+2e
+87
+59
+80
+8c
+f1
+45
+01
+32
+a5
+ea
+10
+07
+aa
+7b
+12
+f8
+5e
+d6
+36
+3e
+57
+9a
+ba
+ed
+34
+a0
+49
+22
+79
+f2
+6c
+b7
+f3
+48
+e7
+33
+ef
+73
+16
+b4
+aa
+cc
+64
+dc
+eb
+6d
+49
+07
+dc
+5d
+1f
+e2
+f1
+0e
+be
+8e
+99
+8e
+00
+12
+5a
+12
+0e
+f4
+94
+e8
+31
+39
+83
+ad
+ac
+72
+82
+5f
+69
+f4
+16
+c0
+c1
+1a
+97
+58
+92
+4b
+55
+1c
+ec
+30
+ea
+b2
+d5
+ed
+a8
+17
+0d
+fd
+48
+16
+55
+6a
+54
+45
+dc
+f8
+a3
+ae
+58
+35
+c7
+38
+04
+6a
+b5
+06
+2c
+e3
+2c
+82
+3f
+1b
+6b
+df
+5a
+cd
+c3
+a6
+ef
+71
+3f
+98
+9a
+66
+92
+c4
+08
+d3
+ac
+97
+b1
+0f
+fd
+60
+08
+c2
+49
+02
+d0
+ca
+4b
+d7
+e9
+c5
+a0
+8a
+f7
+28
+aa
+3b
+c9
+cc
+db
+07
+9c
+f7
+ab
+32
+f1
+2e
+44
+87
+a3
+3d
+65
+72
+a4
+97
+ae
+80
+6a
+a2
+c0
+62
+8f
+b6
+e1
+3a
+4b
+8b
+27
+8b
+6d
+6d
+ea
+3d
+52
+e0
+ea
+c7
+b9
+b6
+ed
+d8
+4f
+d8
+ff
+7b
+53
+2d
+de
+01
+88
+bb
+58
+d6
+1c
+d8
+cf
+07
+13
+e1
+ad
+d6
+54
+bb
+aa
+33
+33
+69
+50
+c1
+64
+63
+0d
+66
+c4
+cd
+e9
+e2
+9e
+6c
+5d
+f1
+04
+49
+f2
+c7
+bc
+7f
+23
+ab
+25
+2a
+3c
+d3
+34
+cd
+bb
+92
+e1
+05
+0e
+aa
+21
+55
+cb
+b1
+0d
+da
+66
+ca
+8e
+cd
+9b
+be
+33
+2c
+2c
+11
+11
+c0
+60
+ec
+1e
+2f
+02
+46
+7f
+e8
+a3
+d1
+25
+b7
+c2
+5c
+b9
+e7
+2b
+3e
+87
+61
+31
+b2
+80
+e5
+e3
+9f
+b3
+e6
+d8
+2f
+37
+74
+39
+95
+33
+0c
+d4
+38
+81
+f9
+59
+4c
+02
+ce
+ad
+3e
+02
+c3
+35
+1d
+a4
+71
+14
+a2
+d7
+38
+8b
+cd
+fe
+2e
+42
+cc
+30
+41
+b7
+76
+b9
+6f
+29
+b8
+d7
+18
+f9
+c5
+71
+a6
+b2
+31
+d4
+4b
+a4
+e3
+63
+27
+e9
+93
+16
+99
+76
+8e
+d7
+5a
+04
+78
+3e
+ab
+79
+86
+b8
+c2
+2f
+94
+1d
+6d
+de
+4f
+5f
+2e
+9e
+16
+7a
+58
+ad
+68
+14
+bf
+2a
+9c
+e8
+39
+fd
+47
+43
+72
+8a
+1a
+4d
+35
+0f
+ce
+aa
+af
+2d
+56
+b9
+e7
+1b
+f1
+2a
+80
+87
+48
+08
+02
+26
+0c
+1a
+d8
+7b
+ae
+1d
+78
+84
+29
+83
+20
+08
+3e
+eb
+4e
+d5
+2a
+37
+aa
+22
+e1
+93
+da
+af
+0a
+7b
+70
+ac
+d0
+f2
+01
+aa
+fb
+19
+97
+b4
+f2
+5f
+7f
+26
+93
+6f
+2b
+00
+b5
+1f
+33
+38
+a1
+de
+97
+a6
+fb
+39
+7c
+9a
+be
+d3
+55
+04
+d1
+8f
+72
+94
+b8
+6d
+e8
+9d
+80
+20
+55
+66
+86
+d5
+cc
+15
+dc
+be
+5d
+8d
+ec
+83
+c7
+1b
+5e
+a3
+bb
+08
+05
+b2
+dc
+30
+a2
+c1
+d0
+be
+e5
+8f
+9a
+4e
+0f
+3e
+bd
+7f
+2b
+82
+87
+c2
+cd
+ad
+f3
+a0
+61
+1f
+17
+b4
+cd
+0d
+2b
+0c
+1f
+ec
+03
+96
+5d
+aa
+61
+88
+8c
+85
+91
+cb
+44
+e5
+0c
+8e
+ea
+df
+91
+9b
+73
+c1
+48
+e5
+77
+01
+51
+3c
+1a
+80
+50
+bb
+32
+15
+d0
+ef
+81
+77
+a8
+c0
+6b
+85
+5a
+a4
+41
+bb
+c7
+39
+3c
+37
+91
+d9
+11
+3e
+94
+f7
+af
+31
+53
+01
+b0
+a2
+73
+49
+61
+55
+e4
+79
+1f
+d5
+d1
+bb
+db
+7a
+51
+6f
+31
+6d
+45
+a3
+97
+fc
+e5
+01
+26
+13
+04
+c5
+51
+ba
+60
+2f
+b2
+a8
+14
+f8
+25
+38
+9b
+d3
+85
+4d
+20
+36
+12
+9d
+c8
+e2
+29
+71
+4c
+f5
+61
+74
+9f
+c7
+15
+ee
+67
+b5
+0d
+bd
+f9
+f0
+73
+41
+fa
+36
+ee
+2c
+a9
+03
+ca
+bd
+51
+c5
+90
+cc
+6e
+b4
+c0
+d6
+fd
+a6
+d4
+40
+8d
+89
+01
+5c
+0c
+41
+9a
+8a
+5c
+ae
+82
+a7
+72
+86
+f9
+b1
+96
+97
+c7
+ea
+b0
+79
+39
+33
+5b
+28
+68
+7b
+45
+7f
+b2
+d7
+0e
+7b
+55
+f7
+40
+32
+ee
+8c
+82
+c1
+5f
+52
+70
+33
+36
+86
+b7
+34
+c4
+ce
+dd
+7f
+f8
+13
+b8
+62
+66
+d9
+3c
+7e
+47
+70
+0a
+b2
+00
+f4
+7c
+f8
+ba
+00
+25
+64
+24
+6f
+e4
+ef
+e9
+a5
+a3
+dc
+49
+51
+d0
+39
+e0
+bc
+4c
+1d
+4f
+dd
+03
+9e
+e7
+b8
+3b
+e6
+b1
+e8
+82
+50
+47
+db
+50
+a2
+74
+56
+86
+8b
+d3
+67
+fc
+7a
+2a
+8a
+2b
+10
+1f
+2f
+1e
+f3
+56
+40
+ad
+72
+47
+ad
+5f
+be
+8d
+a0
+18
+ba
+76
+86
+bb
+e9
+b8
+2c
+94
+8a
+78
+e9
+bd
+4f
+d3
+20
+00
+db
+ce
+4f
+79
+fa
+1d
+65
+7e
+2e
+08
+c4
+b2
+7e
+3b
+7e
+92
+89
+0d
+78
+6d
+77
+c8
+a2
+84
+03
+22
+29
+f2
+45
+f2
+4d
+2b
+48
+fe
+43
+e4
+cb
+37
+01
+b1
+8b
+54
+ca
+75
+80
+bf
+b9
+a0
+59
+af
+5a
+55
+e8
+d6
+51
+6b
+85
+2c
+28
+e6
+c9
+4c
+d2
+98
+e4
+fd
+43
+14
+c3
+c9
+f5
+6e
+44
+bd
+08
+b2
+b2
+34
+fb
+3a
+3c
+2b
+f6
+4a
+f1
+e6
+ac
+d8
+32
+c8
+bf
+31
+2e
+ea
+bf
+15
+92
+9c
+5b
+99
+bb
+d2
+c2
+f2
+59
+bd
+c9
+93
+b7
+bc
+71
+0c
+84
+68
+9f
+e8
+41
+f4
+a0
+ca
+8d
+8c
+76
+e5
+60
+06
+08
+79
+0e
+aa
+28
+34
+d6
+82
+1a
+43
+32
+d1
+b5
+08
+24
+77
+1d
+73
+76
+fd
+7c
+63
+3f
+ec
+4d
+b5
+5a
+ee
+a4
+5b
+c2
+aa
+4c
+cc
+1f
+e7
+d1
+e8
+55
+b1
+4e
+18
+e9
+ca
+0a
+25
+a1
+aa
+7b
+01
+68
+2a
+8a
+9d
+47
+71
+76
+41
+0c
+c5
+74
+d2
+97
+d9
+2f
+3e
+a7
+d3
+71
+96
+05
+a9
+ca
+b1
+27
+66
+f2
+31
+83
+97
+21
+48
+48
+46
+e0
+b0
+6e
+7e
+9f
+86
+f2
+40
+60
+31
+a5
+aa
+11
+1a
+6b
+b4
+b7
+cc
+ee
+2b
+f7
+63
+29
+99
+9b
+60
+8f
+17
+4f
+e0
+67
+39
+b0
+45
+a9
+fa
+58
+e2
+03
+ec
+4e
+78
+c4
+c1
+e1
+d4
+bf
+89
+15
+85
+58
+7a
+d2
+f4
+28
+4b
+76
+a5
+a3
+db
+45
+cf
+3d
+7c
+1a
+1b
+ae
+f6
+0e
+29
+30
+23
+2d
+34
+99
+39
+34
+61
+3f
+1b
+91
+65
+ba
+35
+90
+86
+cf
+dd
+73
+b5
+e5
+40
+25
+36
+b1
+bf
+be
+10
+52
+b5
+28
+61
+96
+b7
+47
+e4
+46
+27
+20
+ea
+9f
+00
+00
+f6
+6b
+e9
+40
+a3
+be
+f9
+05
+b2
+3f
+66
+b3
+88
+d7
+41
+bf
+c4
+0a
+4d
+c3
+2f
+27
+3c
+b6
+37
+bf
+03
+af
+e6
+d2
+ba
+02
+a6
+7b
+24
+40
+7a
+00
+ca
+fc
+5d
+bc
+9e
+f0
+a4
+59
+99
+66
+eb
+e1
+13
+e4
+41
+75
+fa
+22
+f8
+e8
+c2
+1e
+9d
+c8
+07
+6b
+b8
+75
+38
+3e
+19
+67
+0c
+3f
+fc
+ca
+9e
+5a
+bf
+b6
+ae
+ae
+04
+cb
+e2
+e3
+97
+f0
+cc
+ba
+d6
+24
+a0
+9f
+26
+ac
+0a
+83
+9a
+10
+ba
+fe
+e2
+5f
+04
+fa
+b1
+45
+79
+91
+89
+15
+b4
+4b
+60
+6d
+f3
+5b
+10
+cf
+bb
+18
+30
+73
+5d
+5c
+75
+3f
+2b
+be
+26
+f2
+79
+fe
+6f
+bb
+73
+87
+58
+a8
+40
+6e
+82
+94
+c3
+71
+87
+d1
+fd
+c4
+6a
+59
+7d
+1e
+b5
+81
+f0
+1d
+be
+0a
+ca
+40
+d6
+84
+a8
+55
+c1
+e5
+67
+b0
+ef
+10
+c3
+5a
+52
+ad
+01
+d8
+eb
+d0
+cb
+7e
+b1
+9a
+46
+a4
+98
+67
+5b
+0f
+59
+89
+1a
+29
+6f
+e1
+e4
+60
+96
+a7
+5c
+4c
+6e
+a3
+3f
+86
+77
+56
+9d
+de
+0a
+36
+f6
+de
+e9
+56
+a4
+c7
+1a
+34
+11
+31
+75
+83
+a0
+6f
+d2
+16
+37
+e7
+27
+05
+2a
+0c
+f3
+9e
+17
+b6
+aa
+00
+94
+57
+d7
+a7
+cd
+6f
+96
+8a
+cf
+f7
+d4
+cd
+ca
+15
+6b
+5d
+09
+d4
+7d
+a5
+0a
+13
+e1
+f6
+d0
+d0
+1d
+79
+06
+ee
+59
+d3
+c2
+cd
+83
+04
+4e
+99
+91
+a2
+b4
+75
+17
+8b
+39
+db
+d1
+3c
+c1
+a4
+d0
+19
+83
+ea
+83
+0e
+82
+5c
+c9
+58
+cb
+1b
+3d
+85
+9b
+1c
+f6
+2b
+3a
+6f
+bc
+a0
+09
+e1
+1a
+d3
+05
+9d
+d5
+1d
+47
+5e
+79
+7e
+3a
+5a
+2f
+7d
+cb
+0f
+f2
+0e
+bb
+9b
+4e
+3c
+1d
+c2
+ce
+b3
+9c
+b9
+a7
+b1
+88
+a7
+aa
+f8
+ed
+74
+c3
+e3
+5c
+e8
+59
+dd
+22
+8d
+7c
+54
+86
+b1
+63
+03
+1b
+2a
+58
+8e
+c9
+ca
+6d
+52
+4a
+b6
+1f
+e1
+57
+d5
+fe
+bb
+d1
+03
+9b
+8d
+c3
+48
+89
+ec
+4f
+5f
+06
+52
+71
+48
+0e
+1d
+35
+f6
+0a
+4a
+19
+9b
+18
+23
+43
+c2
+03
+35
+0e
+5f
+51
+a3
+b4
+bd
+ec
+32
+01
+92
+6a
+bd
+79
+d4
+88
+2a
+88
+ba
+d7
+81
+75
+f6
+40
+0a
+96
+e7
+a9
+1a
+9c
+48
+81
+33
+1f
+98
+10
+85
+47
+b6
+10
+f3
+2d
+39
+0a
+93
+37
+88
+d0
+47
+24
+e2
+cc
+8b
+b3
+c9
+84
+95
+bd
+35
+c0
+a6
+06
+ae
+e5
+fe
+a4
+e9
+76
+5c
+1c
+e7
+44
+bf
+a8
+37
+81
+01
+1b
+26
+88
+b6
+b0
+5a
+50
+80
+ea
+fd
+33
+e8
+9a
+e5
+cc
+cf
+2f
+95
+19
+4b
+3f
+f1
+5c
+89
+03
+59
+f1
+b8
+fa
+1d
+82
+89
+a8
+b9
+8c
+f3
+08
+eb
+80
+c6
+8e
+6b
+cf
+35
+09
+84
+c9
+5e
+12
+52
+60
+f4
+b5
+14
+ce
+40
+b8
+46
+93
+b0
+21
+c8
+3f
+f6
+fe
+b6
+49
+e7
+6a
+98
+8a
+c6
+01
+f3
+46
+f5
+50
+a2
+be
+74
+10
+17
+de
+d0
+b2
+0b
+98
+4b
+cf
+67
+54
+21
+a6
+a7
+18
+66
+fe
+76
+87
+5a
+c8
+00
+5a
+60
+a8
+9e
+2c
+99
+49
+b2
+ce
+11
+b0
+da
+91
+7e
+d1
+17
+5a
+08
+02
+cd
+6e
+3c
+bb
+7e
+2f
+e8
+16
+fb
+a5
+8a
+76
+6b
+be
+ae
+51
+62
+3e
+9e
+32
+5c
+d8
+97
+43
+28
+17
+18
+33
+03
+65
+80
+68
+8a
+b8
+3a
+ae
+93
+0f
+b8
+54
+76
+c0
+41
+e1
+77
+00
+a0
+16
+00
+cf
+bb
+9c
+05
+29
+5a
+fe
+e0
+0d
+6a
+e8
+d6
+e1
+e2
+8a
+ac
+9b
+70
+c4
+fe
+6b
+31
+cf
+3a
+dc
+9b
+9e
+24
+38
+70
+25
+9e
+01
+57
+06
+e7
+29
+48
+30
+10
+45
+35
+5d
+34
+b3
+7e
+01
+76
+32
+78
+3e
+3e
+49
+89
+d0
+57
+a5
+b8
+00
+c9
+50
+ea
+7c
+8a
+b3
+b1
+4e
+fa
+c0
+5c
+a9
+2e
+5a
+6c
+96
+16
+8f
+15
+f2
+aa
+92
+95
+66
+98
+95
+04
+f6
+6d
+e0
+22
+fb
+a1
+17
+0e
+79
+7c
+d9
+76
+a0
+5c
+fb
+e5
+42
+71
+7b
+0f
+af
+b7
+df
+1c
+bf
+69
+1b
+5e
+04
+8b
+42
+65
+88
+d1
+f4
+a5
+7a
+3b
+4d
+41
+36
+7d
+3c
+4b
+15
+b5
+41
+29
+7e
+99
+01
+6b
+01
+9d
+9c
+86
+06
+f9
+81
+d7
+2e
+5f
+51
+8c
+64
+3c
+5d
+18
+bc
+91
+ff
+12
+9b
+c0
+a6
+d7
+1f
+65
+84
+7f
+e0
+07
+73
+b9
+51
+cd
+26
+87
+4c
+63
+0f
+35
+05
+7b
+c0
+05
+85
+de
+e0
+5e
+fd
+9c
+7c
+a0
+fd
+86
+86
+7a
+9b
+b1
+b0
+65
+43
+1c
+c8
+8c
+40
+e3
+6a
+b9
+1b
+fa
+d8
+6c
+95
+cd
+53
+7a
+10
+6f
+14
+2c
+6d
+21
+5f
+12
+c7
+45
+9e
+c9
+a6
+b5
+8d
+e7
+65
+f7
+0a
+77
+78
+91
+52
+68
+16
+20
+05
+d1
+1f
+a6
+ff
+f4
+5e
+5d
+40
+1a
+00
+cc
+5f
+8b
+c5
+8b
+4d
+91
+71
+9b
+e8
+b9
+34
+41
+cf
+f4
+c0
+fd
+75
+93
+cb
+39
+a5
+74
+f7
+67
+33
+ef
+8b
+06
+f1
+9e
+f6
+ae
+3d
+6e
+05
+28
+55
+83
+2e
+cf
+cc
+86
+74
+e0
+c2
+2e
+48
+b2
+af
+9e
+dc
+6e
+6b
+00
+97
+06
+fc
+f0
+86
+2c
+0f
+e7
+de
+e6
+a0
+7a
+99
+61
+b0
+bc
+3f
+98
+81
+bd
+f6
+fe
+b5
+39
+3e
+f3
+24
+22
+0e
+21
+a5
+e9
+79
+0f
+cf
+b0
+c2
+69
+34
+fa
+a2
+29
+25
+73
+3b
+d9
+77
+4c
+ff
+3f
+5f
+70
+5c
+a2
+e4
+42
+33
+c0
+85
+0e
+8f
+5d
+3c
+9c
+d6
+3d
+4e
+9c
+51
+ec
+b5
+59
+57
+7b
+6b
+13
+ef
+40
+55
+cd
+db
+fb
+06
+f4
+83
+ae
+a4
+04
+9e
+dc
+80
+79
+48
+c6
+cd
+38
+10
+fc
+62
+5b
+98
+fa
+be
+86
+9e
+b1
+29
+11
+09
+36
+04
+f6
+c2
+3b
+bb
+79
+0a
+4d
+ec
+0c
+9e
+65
+ce
+76
+c4
+fb
+09
+1b
+c6
+28
+65
+17
+f8
+d2
+f6
+45
+07
+33
+31
+73
+16
+09
+b1
+ed
+58
+cb
+cd
+68
+33
+69
+9d
+14
+64
+6f
+6e
+e2
+85
+c6
+95
+e3
+19
+5a
+0b
+bc
+ac
+3f
+2b
+76
+93
+e1
+3b
+67
+00
+82
+db
+19
+e4
+e2
+d5
+33
+58
+56
+5a
+fb
+e1
+88
+10
+26
+ac
+40
+c7
+aa
+55
+40
+00
+00
+40
+00
+00
+00
+04
+00
+01
+00
+40
+19
+12
+50
+12
+00
+04
+00
+10
+04
+00
+00
+00
+08
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+20
+04
+00
+00
+00
+00
+00
+08
+00
+aa
+55
+08
+00
+8e
+48
+04
+89
+0d
+00
+00
+06
+1f
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+35
+0e
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+94
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+5f
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+6c
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6d
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+07
+00
+ab
+48
+ac
+01
+b4
+00
+d2
+00
+01
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+00
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+00
+aa
+55
+01
+00
+53
+46
+00
+aa
+55
+02
+00
+4f
+46
+58
+02
+aa
+55
+02
+00
+1e
+47
+64
+00
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+02
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+06
+00
+95
+4a
+ff
+ff
+29
+0e
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+01
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+01
+00
+14
+49
+81
+aa
+55
+01
+00
+13
+49
+80
+aa
+55
+02
+00
+16
+49
+80
+80
+aa
+55
+01
+00
+15
+49
+ff
+aa
+55
+04
+00
+18
+49
+80
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+07
+06
+ff
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+10
+11
+12
+13
+14
+15
+0c
+09
+0d
+03
+04
+c6
+c5
+c4
+c3
+80
+0a
+0b
+85
+83
+82
+81
+c7
+84
+0e
+0f
+ff
+ff
+aa
+55
+98
+00
+c7
+49
+48
+66
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+00
+35
+1e
+1a
+39
+16
+64
+1b
+00
+3a
+1f
+08
+3c
+07
+3d
+06
+00
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+b1
+7f
+e2
+00
+e6
+b0
+46
+89
+2a
+00
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+66
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+6b
+58
+52
+00
+50
+4a
+4d
+00
+e1
+e5
+00
+00
+00
+00
+00
+00
+e3
+00
+00
+00
+00
+00
+00
+00
+00
+e7
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+0f
+00
+84
+4a
+00
+fb
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+45
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+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
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+ef
+8a
+26
+a9
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+89
+52
Index: GK308_keyboard_only_24g/output/flash.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/flash.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/flash.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+e0
+0b
+ca
+22
+e1
+72
+1f
+77
+25
+b7
+f3
+b4
+40
+cf
+3b
+d0
+68
+1e
+99
+99
+56
+4b
+f0
+95
+4f
+4f
+6d
+bb
+be
+cf
+b7
+45
+0a
+82
+eb
+6a
+35
+cf
+b7
+e8
+8c
+4c
+3b
+bc
+da
+7a
+65
+94
+ae
+ed
+46
+e4
+60
+7b
+14
+de
+ab
+a7
+07
+38
+03
+c8
+28
+32
+08
+95
+8a
+51
+c8
+53
+8e
+70
+9d
+05
+ba
+97
+15
+73
+c4
+ed
+50
+12
+62
+22
+43
+9f
+e9
+32
+e6
+9b
+12
+fe
+5e
+c9
+b1
+0c
+e3
+0e
+a5
+76
+8c
+a7
+4f
+19
+a5
+1d
+88
+20
+17
+42
+eb
+a2
+8f
+66
+87
+14
+3a
+02
+e1
+e7
+e2
+af
+8a
+8d
+cd
+93
+e1
+79
+d5
+b3
+a2
+27
+f7
+6e
+d5
+d8
+02
+32
+dd
+1b
+4f
+a9
+07
+67
+2e
+87
+f9
+5d
+11
+91
+65
+3c
+e6
+ed
+c3
+22
+ea
+c7
+0c
+8c
+95
+c6
+6c
+9f
+55
+4c
+10
+a5
+08
+89
+f1
+ad
+4b
+ba
+c0
+68
+5b
+7d
+c1
+d0
+d6
+b4
+c6
+37
+be
+a1
+50
+db
+93
+f4
+da
+a3
+19
+98
+3a
+8f
+96
+a6
+07
+a2
+5c
+bb
+d0
+e8
+3d
+de
+0f
+ac
+44
+13
+63
+b6
+c0
+48
+05
+4c
+fd
+12
+a8
+ce
+fe
+2b
+98
+e3
+12
+df
+49
+20
+51
+60
+2d
+40
+81
+97
+23
+71
+33
+85
+dc
+3c
+4c
+4a
+62
+62
+e5
+db
+2c
+d4
+4e
+f6
+34
+e1
+3c
+9a
+60
+8b
+98
+45
+7f
+6f
+42
+fd
+b6
+4b
+88
+00
+5f
+24
+d4
+8a
+1a
+ea
+0d
+df
+e4
+67
+ea
+f3
+7a
+50
+19
+6f
+5f
+f9
+bd
+da
+cc
+27
+f9
+b5
+40
+58
+aa
+d9
+aa
+56
+b2
+6c
+87
+87
+69
+50
+70
+8e
+de
+81
+6e
+a3
+e4
+46
+9b
+ef
+7d
+af
+43
+6a
+cb
+33
+03
+20
+ae
+c7
+47
+b5
+d3
+38
+0b
+f1
+3f
+6e
+fb
+94
+2d
+b1
+76
+ca
+72
+3e
+52
+c7
+df
+2c
+b2
+fa
+3a
+7c
+42
+84
+76
+cd
+54
+a8
+fd
+a6
+7b
+89
+67
+0d
+07
+c2
+40
+b5
+4e
+4d
+be
+00
+3f
+c5
+67
+a2
+f7
+05
+39
+67
+4e
+b2
+29
+0b
+04
+a0
+2c
+c4
+fa
+ec
+29
+fc
+b8
+95
+51
+ee
+48
+8c
+22
+5b
+55
+0f
+ad
+2d
+1e
+72
+a7
+8b
+d4
+9a
+51
+75
+9f
+47
+e6
+da
+30
+f2
+a1
+ea
+04
+30
+3c
+75
+ee
+18
+7b
+61
+56
+2b
+80
+48
+90
+ec
+04
+91
+15
+47
+a1
+28
+e4
+f0
+22
+19
+b8
+6f
+81
+c5
+b1
+49
+ce
+10
+17
+06
+60
+af
+af
+75
+e7
+50
+d6
+6e
+64
+19
+d5
+20
+14
+5e
+db
+ec
+42
+73
+1b
+90
+8d
+03
+f8
+2d
+be
+7d
+34
+4d
+f6
+fc
+65
+94
+b7
+2b
+0f
+f4
+4d
+5b
+f2
+7c
+c5
+8e
+1c
+28
+34
+84
+de
+32
+f6
+2f
+c1
+54
+2d
+f8
+c6
+22
+5c
+78
+74
+0e
+42
+3a
+ae
+15
+8a
+92
+f2
+c7
+6f
+30
+63
+de
+8b
+e6
+76
+8a
+7d
+2d
+44
+93
+0c
+c8
+e2
+30
+f6
+9f
+3a
+86
+04
+89
+84
+31
+69
+43
+a6
+20
+8b
+ef
+36
+34
+80
+3a
+93
+29
+bd
+2d
+2c
+c7
+b4
+a5
+8e
+a3
+f4
+97
+1d
+d0
+19
+35
+68
+4e
+35
+5b
+af
+0a
+d9
+b4
+82
+a5
+1f
+88
+1f
+6b
+e3
+5f
+db
+3d
+63
+a0
+94
+0d
+c9
+89
+d1
+23
+b1
+aa
+69
+e5
+99
+42
+a3
+7f
+95
+63
+f6
+42
+df
+57
+46
+b0
+0c
+cd
+ff
+74
+9a
+1e
+fe
+cb
+9b
+6d
+c1
+f7
+4d
+d1
+0d
+73
+a5
+c7
+ca
+10
+aa
+00
+0b
+e5
+8d
+24
+07
+d6
+1c
+85
+4f
+c7
+f5
+94
+ba
+f5
+e5
+6d
+29
+39
+bd
+ad
+4b
+e9
+4f
+df
+15
+59
+78
+ab
+54
+36
+2e
+a2
+3c
+2c
+8a
+ab
+c1
+45
+70
+7c
+ad
+46
+3f
+de
+d1
+d0
+5d
+06
+e2
+2b
+21
+95
+5b
+a7
+47
+a6
+09
+a5
+5b
+87
+0d
+0c
+b6
+37
+a4
+2b
+d9
+5f
+58
+a2
+47
+c8
+67
+5b
+f9
+20
+aa
+ef
+0e
+af
+9d
+e5
+6f
+e3
+2b
+4d
+97
+75
+e3
+26
+09
+b7
+b3
+6e
+03
+7b
+24
+91
+f7
+2e
+87
+59
+80
+8c
+f1
+45
+01
+32
+a5
+ea
+10
+07
+aa
+7b
+12
+f8
+5e
+d6
+36
+3e
+57
+9a
+ba
+ed
+34
+a0
+49
+22
+79
+f2
+6c
+b7
+f3
+48
+e7
+33
+ef
+73
+16
+b4
+aa
+cc
+64
+dc
+eb
+6d
+49
+07
+dc
+5d
+1f
+e2
+f1
+0e
+be
+8e
+99
+8e
+00
+12
+5a
+12
+0e
+f4
+94
+e8
+31
+39
+83
+ad
+ac
+72
+82
+5f
+69
+f4
+16
+c0
+c1
+1a
+97
+58
+92
+4b
+55
+1c
+ec
+30
+ea
+b2
+d5
+ed
+a8
+17
+0d
+fd
+48
+16
+55
+6a
+54
+45
+dc
+f8
+a3
+ae
+58
+35
+c7
+38
+04
+6a
+b5
+06
+2c
+e3
+2c
+82
+3f
+1b
+6b
+df
+5a
+cd
+c3
+a6
+ef
+71
+3f
+98
+9a
+66
+92
+c4
+08
+d3
+ac
+97
+b1
+0f
+fd
+60
+08
+c2
+49
+02
+d0
+ca
+4b
+d7
+e9
+c5
+a0
+8a
+f7
+28
+aa
+3b
+c9
+cc
+db
+07
+9c
+f7
+ab
+32
+f1
+2e
+44
+87
+a3
+3d
+65
+72
+a4
+97
+ae
+80
+6a
+a2
+c0
+62
+8f
+b6
+e1
+3a
+4b
+8b
+27
+8b
+6d
+6d
+ea
+3d
+52
+e0
+ea
+c7
+b9
+b6
+ed
+d8
+4f
+d8
+ff
+7b
+53
+2d
+de
+01
+88
+bb
+58
+d6
+1c
+d8
+cf
+07
+13
+e1
+ad
+d6
+54
+bb
+aa
+33
+33
+69
+50
+c1
+64
+63
+0d
+66
+c4
+cd
+e9
+e2
+9e
+6c
+5d
+f1
+04
+49
+f2
+c7
+bc
+7f
+23
+ab
+25
+2a
+3c
+d3
+34
+cd
+bb
+92
+e1
+05
+0e
+aa
+21
+55
+cb
+b1
+0d
+da
+66
+ca
+8e
+cd
+9b
+be
+33
+2c
+2c
+11
+11
+c0
+60
+ec
+1e
+2f
+02
+46
+7f
+e8
+a3
+d1
+25
+b7
+c2
+5c
+b9
+e7
+2b
+3e
+87
+61
+31
+b2
+80
+e5
+e3
+9f
+b3
+e6
+d8
+2f
+37
+74
+39
+95
+33
+0c
+d4
+38
+81
+f9
+59
+4c
+02
+ce
+ad
+3e
+02
+c3
+35
+1d
+a4
+71
+14
+a2
+d7
+38
+8b
+cd
+fe
+2e
+42
+cc
+30
+41
+b7
+76
+b9
+6f
+29
+b8
+d7
+18
+f9
+c5
+71
+a6
+b2
+31
+d4
+4b
+a4
+e3
+63
+27
+e9
+93
+16
+99
+76
+8e
+d7
+5a
+04
+78
+3e
+ab
+79
+86
+b8
+c2
+2f
+94
+1d
+6d
+de
+4f
+5f
+2e
+9e
+16
+7a
+58
+ad
+68
+14
+bf
+2a
+9c
+e8
+39
+fd
+47
+43
+72
+8a
+1a
+4d
+35
+0f
+ce
+aa
+af
+2d
+56
+b9
+e7
+1b
+f1
+2a
+80
+87
+48
+08
+02
+26
+0c
+1a
+d8
+7b
+ae
+1d
+78
+84
+29
+83
+20
+08
+3e
+eb
+4e
+d5
+2a
+37
+aa
+22
+e1
+93
+da
+af
+0a
+7b
+70
+ac
+d0
+f2
+01
+aa
+fb
+19
+97
+b4
+f2
+5f
+7f
+26
+93
+6f
+2b
+00
+b5
+1f
+33
+38
+a1
+de
+97
+a6
+fb
+39
+7c
+9a
+be
+d3
+55
+04
+d1
+8f
+72
+94
+b8
+6d
+e8
+9d
+80
+20
+55
+66
+86
+d5
+cc
+15
+dc
+be
+5d
+8d
+ec
+83
+c7
+1b
+5e
+a3
+bb
+08
+05
+b2
+dc
+30
+a2
+c1
+d0
+be
+e5
+8f
+9a
+4e
+0f
+3e
+bd
+7f
+2b
+82
+87
+c2
+cd
+ad
+f3
+a0
+61
+1f
+17
+b4
+cd
+0d
+2b
+0c
+1f
+ec
+03
+96
+5d
+aa
+61
+88
+8c
+85
+91
+cb
+44
+e5
+0c
+8e
+ea
+df
+91
+9b
+73
+c1
+48
+e5
+77
+01
+51
+3c
+1a
+80
+50
+bb
+32
+15
+d0
+ef
+81
+77
+a8
+c0
+6b
+85
+5a
+a4
+41
+bb
+c7
+39
+3c
+37
+91
+d9
+11
+3e
+94
+f7
+af
+31
+53
+01
+b0
+a2
+73
+49
+61
+55
+e4
+79
+1f
+d5
+d1
+bb
+db
+7a
+51
+6f
+31
+6d
+45
+a3
+97
+fc
+e5
+01
+26
+13
+04
+c5
+51
+ba
+60
+2f
+b2
+a8
+14
+f8
+25
+38
+9b
+d3
+85
+4d
+20
+36
+12
+9d
+c8
+e2
+29
+71
+4c
+f5
+61
+74
+9f
+c7
+15
+ee
+67
+b5
+0d
+bd
+f9
+f0
+73
+41
+fa
+36
+ee
+2c
+a9
+03
+ca
+bd
+51
+c5
+90
+cc
+6e
+b4
+c0
+d6
+fd
+a6
+d4
+40
+8d
+89
+01
+5c
+0c
+41
+9a
+8a
+5c
+ae
+82
+a7
+72
+86
+f9
+b1
+96
+97
+c7
+ea
+b0
+79
+39
+33
+5b
+28
+68
+7b
+45
+7f
+b2
+d7
+0e
+7b
+55
+f7
+40
+32
+ee
+8c
+82
+c1
+5f
+52
+70
+33
+36
+86
+b7
+34
+c4
+ce
+dd
+7f
+f8
+13
+b8
+62
+66
+d9
+3c
+7e
+47
+70
+0a
+b2
+00
+f4
+7c
+f8
+ba
+00
+25
+64
+24
+6f
+e4
+ef
+e9
+a5
+a3
+dc
+49
+51
+d0
+39
+e0
+bc
+4c
+1d
+4f
+dd
+03
+9e
+e7
+b8
+3b
+e6
+b1
+e8
+82
+50
+47
+db
+50
+a2
+74
+56
+86
+8b
+d3
+67
+fc
+7a
+2a
+8a
+2b
+10
+1f
+2f
+1e
+f3
+56
+40
+ad
+72
+47
+ad
+5f
+be
+8d
+a0
+18
+ba
+76
+86
+bb
+e9
+b8
+2c
+94
+8a
+78
+e9
+bd
+4f
+d3
+20
+00
+db
+ce
+4f
+79
+fa
+1d
+65
+7e
+2e
+08
+c4
+b2
+7e
+3b
+7e
+92
+89
+0d
+78
+6d
+77
+c8
+a2
+84
+03
+22
+29
+f2
+45
+f2
+4d
+2b
+48
+fe
+43
+e4
+cb
+37
+01
+b1
+8b
+54
+ca
+75
+80
+bf
+b9
+a0
+59
+af
+5a
+55
+e8
+d6
+51
+6b
+85
+2c
+28
+e6
+c9
+4c
+d2
+98
+e4
+fd
+43
+14
+c3
+c9
+f5
+6e
+44
+bd
+08
+b2
+b2
+34
+fb
+3a
+3c
+2b
+f6
+4a
+f1
+e6
+ac
+d8
+32
+c8
+bf
+31
+2e
+ea
+bf
+15
+92
+9c
+5b
+99
+bb
+d2
+c2
+f2
+59
+bd
+c9
+93
+b7
+bc
+71
+0c
+84
+68
+9f
+e8
+41
+f4
+a0
+ca
+8d
+8c
+76
+e5
+60
+06
+08
+79
+0e
+aa
+28
+34
+d6
+82
+1a
+43
+32
+d1
+b5
+08
+24
+77
+1d
+73
+76
+fd
+7c
+63
+3f
+ec
+4d
+b5
+5a
+ee
+a4
+5b
+c2
+aa
+4c
+cc
+1f
+e7
+d1
+e8
+55
+b1
+4e
+18
+e9
+ca
+0a
+25
+a1
+aa
+7b
+01
+68
+2a
+8a
+9d
+47
+71
+76
+41
+0c
+c5
+74
+d2
+97
+d9
+2f
+3e
+a7
+d3
+71
+96
+05
+a9
+ca
+b1
+27
+66
+f2
+31
+83
+97
+21
+48
+48
+46
+e0
+b0
+6e
+7e
+9f
+86
+f2
+40
+60
+31
+a5
+aa
+11
+1a
+6b
+b4
+b7
+cc
+ee
+2b
+f7
+63
+29
+99
+9b
+60
+8f
+17
+4f
+e0
+67
+39
+b0
+45
+a9
+fa
+58
+e2
+03
+ec
+4e
+78
+c4
+c1
+e1
+d4
+bf
+89
+15
+85
+58
+7a
+d2
+f4
+28
+4b
+76
+a5
+a3
+db
+45
+cf
+3d
+7c
+1a
+1b
+ae
+f6
+0e
+29
+30
+23
+2d
+34
+99
+39
+34
+61
+3f
+1b
+91
+65
+ba
+35
+90
+86
+cf
+dd
+73
+b5
+e5
+40
+25
+36
+b1
+bf
+be
+10
+52
+b5
+28
+61
+96
+b7
+47
+e4
+46
+27
+20
+ea
+9f
+00
+00
+f6
+6b
+e9
+40
+a3
+be
+f9
+05
+b2
+3f
+66
+b3
+88
+d7
+41
+bf
+c4
+0a
+4d
+c3
+2f
+27
+3c
+b6
+37
+bf
+03
+af
+e6
+d2
+ba
+02
+a6
+7b
+24
+40
+7a
+00
+ca
+fc
+5d
+bc
+9e
+f0
+a4
+59
+99
+66
+eb
+e1
+13
+e4
+41
+75
+fa
+22
+f8
+e8
+c2
+1e
+9d
+c8
+07
+6b
+b8
+75
+38
+3e
+19
+67
+0c
+3f
+fc
+ca
+9e
+5a
+bf
+b6
+ae
+ae
+04
+cb
+e2
+e3
+97
+f0
+cc
+ba
+d6
+24
+a0
+9f
+26
+ac
+0a
+83
+9a
+10
+ba
+fe
+e2
+5f
+04
+fa
+b1
+45
+79
+91
+89
+15
+b4
+4b
+60
+6d
+f3
+5b
+10
+cf
+bb
+18
+30
+73
+5d
+5c
+75
+3f
+2b
+be
+26
+f2
+79
+fe
+6f
+bb
+73
+87
+58
+a8
+40
+6e
+82
+94
+c3
+71
+87
+d1
+fd
+c4
+6a
+59
+7d
+1e
+b5
+81
+f0
+1d
+be
+0a
+ca
+40
+d6
+84
+a8
+55
+c1
+e5
+67
+b0
+ef
+10
+c3
+5a
+52
+ad
+01
+d8
+eb
+d0
+cb
+7e
+b1
+9a
+46
+a4
+98
+67
+5b
+0f
+59
+89
+1a
+29
+6f
+e1
+e4
+60
+96
+a7
+5c
+4c
+6e
+a3
+3f
+86
+77
+56
+9d
+de
+0a
+36
+f6
+de
+e9
+56
+a4
+c7
+1a
+34
+11
+31
+75
+83
+a0
+6f
+d2
+16
+37
+e7
+27
+05
+2a
+0c
+f3
+9e
+17
+b6
+aa
+00
+94
+57
+d7
+a7
+cd
+6f
+96
+8a
+cf
+f7
+d4
+cd
+ca
+15
+6b
+5d
+09
+d4
+7d
+a5
+0a
+13
+e1
+f6
+d0
+d0
+1d
+79
+06
+ee
+59
+d3
+c2
+cd
+83
+04
+4e
+99
+91
+a2
+b4
+75
+17
+8b
+39
+db
+d1
+3c
+c1
+a4
+d0
+19
+83
+ea
+83
+0e
+82
+5c
+c9
+58
+cb
+1b
+3d
+85
+9b
+1c
+f6
+2b
+3a
+6f
+bc
+a0
+09
+e1
+1a
+d3
+05
+9d
+d5
+1d
+47
+5e
+79
+7e
+3a
+5a
+2f
+7d
+cb
+0f
+f2
+0e
+bb
+9b
+4e
+3c
+1d
+c2
+ce
+b3
+9c
+b9
+a7
+b1
+88
+a7
+aa
+f8
+ed
+74
+c3
+e3
+5c
+e8
+59
+dd
+22
+8d
+7c
+54
+86
+b1
+63
+03
+1b
+2a
+58
+8e
+c9
+ca
+6d
+52
+4a
+b6
+1f
+e1
+57
+d5
+fe
+bb
+d1
+03
+9b
+8d
+c3
+48
+89
+ec
+4f
+5f
+06
+52
+71
+48
+0e
+1d
+35
+f6
+0a
+4a
+19
+9b
+18
+23
+43
+c2
+03
+35
+0e
+5f
+51
+a3
+b4
+bd
+ec
+32
+01
+92
+6a
+bd
+79
+d4
+88
+2a
+88
+ba
+d7
+81
+75
+f6
+40
+0a
+96
+e7
+a9
+1a
+9c
+48
+81
+33
+1f
+98
+10
+85
+47
+b6
+10
+f3
+2d
+39
+0a
+93
+37
+88
+d0
+47
+24
+e2
+cc
+8b
+b3
+c9
+84
+95
+bd
+35
+c0
+a6
+06
+ae
+e5
+fe
+a4
+e9
+76
+5c
+1c
+e7
+44
+bf
+a8
+37
+81
+01
+1b
+26
+88
+b6
+b0
+5a
+50
+80
+ea
+fd
+33
+e8
+9a
+e5
+cc
+cf
+2f
+95
+19
+4b
+3f
+f1
+5c
+89
+03
+59
+f1
+b8
+fa
+1d
+82
+89
+a8
+b9
+8c
+f3
+08
+eb
+80
+c6
+8e
+6b
+cf
+35
+09
+84
+c9
+5e
+12
+52
+60
+f4
+b5
+14
+ce
+40
+b8
+46
+93
+b0
+21
+c8
+3f
+f6
+fe
+b6
+49
+e7
+6a
+98
+8a
+c6
+01
+f3
+46
+f5
+50
+a2
+be
+74
+10
+17
+de
+d0
+b2
+0b
+98
+4b
+cf
+67
+54
+21
+a6
+a7
+18
+66
+fe
+76
+87
+5a
+c8
+00
+5a
+60
+a8
+9e
+2c
+99
+49
+b2
+ce
+11
+b0
+da
+91
+7e
+d1
+17
+5a
+08
+02
+cd
+6e
+3c
+bb
+7e
+2f
+e8
+16
+fb
+a5
+8a
+76
+6b
+be
+ae
+51
+62
+3e
+9e
+32
+5c
+d8
+97
+43
+28
+17
+18
+33
+03
+65
+80
+68
+8a
+b8
+3a
+ae
+93
+0f
+b8
+54
+76
+c0
+41
+e1
+77
+00
+a0
+16
+00
+cf
+bb
+9c
+05
+29
+5a
+fe
+e0
+0d
+6a
+e8
+d6
+e1
+e2
+8a
+ac
+9b
+70
+c4
+fe
+6b
+31
+cf
+3a
+dc
+9b
+9e
+24
+38
+70
+25
+9e
+01
+57
+06
+e7
+29
+48
+30
+10
+45
+35
+5d
+34
+b3
+7e
+01
+76
+32
+78
+3e
+3e
+49
+89
+d0
+57
+a5
+b8
+00
+c9
+50
+ea
+7c
+8a
+b3
+b1
+4e
+fa
+c0
+5c
+a9
+2e
+5a
+6c
+96
+16
+8f
+15
+f2
+aa
+92
+95
+66
+98
+95
+04
+f6
+6d
+e0
+22
+fb
+a1
+17
+0e
+79
+7c
+d9
+76
+a0
+5c
+fb
+e5
+42
+71
+7b
+0f
+af
+b7
+df
+1c
+bf
+69
+1b
+5e
+04
+8b
+42
+65
+88
+d1
+f4
+a5
+7a
+3b
+4d
+41
+36
+7d
+3c
+4b
+15
+b5
+41
+29
+7e
+99
+01
+6b
+01
+9d
+9c
+86
+06
+f9
+81
+d7
+2e
+5f
+51
+8c
+64
+3c
+5d
+18
+bc
+91
+ff
+12
+9b
+c0
+a6
+d7
+1f
+65
+84
+7f
+e0
+07
+73
+b9
+51
+cd
+26
+87
+4c
+63
+0f
+35
+05
+7b
+c0
+05
+85
+de
+e0
+5e
+fd
+9c
+7c
+a0
+fd
+86
+86
+7a
+9b
+b1
+b0
+65
+43
+1c
+c8
+8c
+40
+e3
+6a
+b9
+1b
+fa
+d8
+6c
+95
+cd
+53
+7a
+10
+6f
+14
+2c
+6d
+21
+5f
+12
+c7
+45
+9e
+c9
+a6
+b5
+8d
+e7
+65
+f7
+0a
+77
+78
+91
+52
+68
+16
+20
+05
+d1
+1f
+a6
+ff
+f4
+5e
+5d
+40
+1a
+00
+cc
+5f
+8b
+c5
+8b
+4d
+91
+71
+9b
+e8
+b9
+34
+41
+cf
+f4
+c0
+fd
+75
+93
+cb
+39
+a5
+74
+f7
+67
+33
+ef
+8b
+06
+f1
+9e
+f6
+ae
+3d
+6e
+05
+28
+55
+83
+2e
+cf
+cc
+86
+74
+e0
+c2
+2e
+48
+b2
+af
+9e
+dc
+6e
+6b
+00
+97
+06
+fc
+f0
+86
+2c
+0f
+e7
+de
+e6
+a0
+7a
+99
+61
+b0
+bc
+3f
+98
+81
+bd
+f6
+fe
+b5
+39
+3e
+f3
+24
+22
+0e
+21
+a5
+e9
+79
+0f
+cf
+b0
+c2
+69
+34
+fa
+a2
+29
+25
+73
+3b
+d9
+77
+4c
+ff
+3f
+5f
+70
+5c
+a2
+e4
+42
+33
+c0
+85
+0e
+8f
+5d
+3c
+9c
+d6
+3d
+4e
+9c
+51
+ec
+b5
+59
+57
+7b
+6b
+13
+ef
+40
+55
+cd
+db
+fb
+06
+f4
+83
+ae
+a4
+04
+9e
+dc
+80
+79
+48
+c6
+cd
+38
+10
+fc
+62
+5b
+98
+fa
+be
+86
+9e
+b1
+29
+11
+09
+36
+04
+f6
+c2
+3b
+bb
+79
+0a
+4d
+ec
+0c
+9e
+65
+ce
+76
+c4
+fb
+09
+1b
+c6
+28
+65
+17
+f8
+d2
+f6
+45
+07
+33
+31
+73
+16
+09
+b1
+ed
+58
+cb
+cd
+68
+33
+69
+9d
+14
+64
+6f
+6e
+e2
+85
+c6
+95
+e3
+19
+5a
+0b
+bc
+ac
+3f
+2b
+76
+93
+e1
+3b
+67
+00
+82
+db
+19
+e4
+e2
+d5
+33
+58
+56
+5a
+fb
+e1
+88
+10
+26
+ac
+40
+c7
+aa
+55
+40
+00
+00
+40
+00
+00
+00
+04
+00
+01
+00
+40
+19
+12
+50
+12
+00
+04
+00
+10
+04
+00
+00
+00
+08
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+20
+04
+00
+00
+00
+00
+00
+08
+00
+aa
+55
+08
+00
+8e
+48
+04
+89
+0d
+00
+00
+06
+1f
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+35
+0e
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+94
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+5f
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+6c
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6d
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+07
+00
+ab
+48
+ac
+01
+b4
+00
+d2
+00
+01
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+00
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+00
+aa
+55
+01
+00
+53
+46
+00
+aa
+55
+02
+00
+4f
+46
+58
+02
+aa
+55
+02
+00
+1e
+47
+64
+00
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+02
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+06
+00
+95
+4a
+ff
+ff
+29
+0e
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+01
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+01
+00
+14
+49
+81
+aa
+55
+01
+00
+13
+49
+80
+aa
+55
+02
+00
+16
+49
+80
+80
+aa
+55
+01
+00
+15
+49
+ff
+aa
+55
+04
+00
+18
+49
+80
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+07
+06
+ff
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+10
+11
+12
+13
+14
+15
+0c
+09
+0d
+03
+04
+c6
+c5
+c4
+c3
+80
+0a
+0b
+85
+83
+82
+81
+c7
+84
+0e
+0f
+ff
+ff
+aa
+55
+98
+00
+c7
+49
+48
+66
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+00
+35
+1e
+1a
+39
+16
+64
+1b
+00
+3a
+1f
+08
+3c
+07
+3d
+06
+00
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+b1
+7f
+e2
+00
+e6
+b0
+46
+89
+2a
+00
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+66
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+6b
+58
+52
+00
+50
+4a
+4d
+00
+e1
+e5
+00
+00
+00
+00
+00
+00
+e3
+00
+00
+00
+00
+00
+00
+00
+00
+e7
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+0f
+00
+84
+4a
+00
+fb
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+45
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+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
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+ef
+8a
+26
+a9
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+89
+52
Index: GK308_keyboard_only_24g/output/memmap.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/memmap.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/memmap.format	(working copy)
@@ -0,0 +1,2035 @@
+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_ucode_status
+0x01bc mem_spid_tbuf
+0x01bd mem_iicd_tbuf
+0x01bd mem_addr_hi
+0x01be mem_addr_mi
+0x01bf mem_addr_lo
+0x01c0 mem_iicd_addr
+0x01c1 mem_spid_rbuf
+0x01c5 mem_ucode_buf
+0x01c7 mem_ucode_len
+0x01c9 mem_sched_addr
+0x01cb mem_ucode_keybuf
+0x01db mem_otp_temp
+0x01fb mem_app_evt_timer_count
+0x01fc mem_input_store
+0x020c mem_ec_loopc
+0x020e mem_aes_cmac_data_length
+0x020f mem_dat
+0x026f mem_ax_256//32 bytes
+0x028f mem_ay_256// 32 bytes
+0x02af mem_az_256// 32 bytes
+0x02cf mem_bx_256// 32 bytes
+0x02ef mem_by_256// 31 bytes
+0x030f mem_bz_256//32 bytes
+0x030f mem_tmp1
+0x030f memahbak
+0x0327 mem_tmp5
+0x032f mem_cx_256//32 bytes
+0x034f mem_cy_256// 32 bytes
+0x036e mem_cy5_256// 1 byte
+0x036f mem_cz_256// 32 bytes
+0x038f mem_k_256//32 bytes
+0x03af mem_tmp1_256//32 bytes
+0x03cf mem_tmp5_256
+0x03ef mem_tmp2_256
+0x040f mem_tmp3_256
+0x040f mem_t1_256
+0x042f mem_tmp0_256
+0x042f mem_t0_256
+0x044f mem_t2_256
+0x046f mem_t3_256
+0x048f mem_t7_256
+0x04af mem_p
+0x04c7 mem_a
+0x04df mem_b
+0x04f7 mem_gx
+0x050f mem_gy
+0x0527 memh0
+0x0547 mem_p_256
+0x0567 mem_a_256
+0x0587 mem_gx_256
+0x05a7 mem_gy_256
+0x05c7 mem_le_slat
+0x05d7 mem_sp_state_start
+0x05d7 mem_sp_dhkey_invalid
+0x05d8 mem_gkey
+0x05dc mem_sp_state_end
+0x05dc mem_le_pubkey_remote_x_256
+0x05fc mem_le_pubkey_remote_y_256
+0x061c mem_le_dhkey_256
+0x063c mem_sp_confirm_remote
+0x064c mem_ipc_skip_continue_proc
+0x064d mem_fifo_temp
+0x064e mem_pdatatemp
+0x0656 mem_temp//8 bytes
+0x065e mem_timeup// 4 bytes
+0x0662 mem_rega//4 bytes
+0x0666 mem_regb//4 bytes
+0x066a mem_regc//3 bytes
+0x066d mem_contr//2 bytes
+0x066f mem_contw//2 bytes
+0x0671 mem_contus
+0x0673 mem_contue
+0x0675 mem_contu
+0x0677 mem_queue
+0x0679 mem_loopcnt
+0x067b mem_saved_gpio_in
+0x067f mem_module_rx_error_data_buffer
+0x067f mem_le_adv_channel_map_temp
+0x067f mem_le_data_len_temp//1byte
+0x067f mem_event_cmd_response_content//2byte
+0x067f mem_le_prand//16byte
+0x067f mem_AES_CMAC_k//16 bytes
+0x067f mem_regext_index//1 bytes
+0x067f mem_temp_block0
+0x0680 mem_le_data_temp//15bytes
+0x0680 mem_temp_block1
+0x068f mem_le_tx_buf_temp//48byte
+0x068f mem_le_aes_128//16byte
+0x068f mem_regext//64 bytes
+0x068f mem_AES_CMAC_k1//16 bytes
+0x068f mem_temp_block2
+0x069f mem_AES_CMAC_k2//16 bytes
+0x069f mem_temp_block3
+0x06af mem_AES_CMAC_temp// 16 bytes
+0x06af mem_temp_block4
+0x06bf mem_AES_CMAC_M_last// 16 bytes
+0x06bf mem_module_uart_cmd
+0x06c0 mem_module_uart_opcode
+0x06c1 mem_module_uart_len
+0x06c2 mem_module_temp_nl_discard_packet
+0x06c3 mem_temp_block5
+0x06cf mem_le_mackey//16 bytes
+0x06cf mem_app_receive_temp
+0x06cf mem_key_value_temp
+0x06d1 mem_key_value
+0x06d3 mem_key_value_temp1
+0x06d4 mem_key_value_temp2
+0x06d5 mem_key_value_temp3
+0x06d6 mem_key_value_temp4
+0x06d7 mem_key_value_temp5
+0x06d8 mem_key_value_temp6
+0x06d9 mem_temp_block6
+0x06df mem_scale_ratio
+0x06e2 mem_xcnt
+0x06e5 mem_scale_ratio_temp
+0x06e7 mem_hci_opcode_ocf
+0x06e9 mem_hci_opcode_ogf
+0x06ea mem_hci_event_head_type
+0x06eb mem_hci_event_head_event_code
+0x06ec mem_hci_event_para_total_length
+0x06ed mem_hci_command_complete_num_hci_command_packet
+0x06ee mem_hci_command_complete_command_opcode
+0x06ee mem_hci_opcode
+0x06f0 mem_hci_command_complete_return_parameter
+0x06f0 mem_hci_command_complete_return_parameter_status
+0x06f1 mem_hci_command_complete_return_parameter_chip_id
+0x06e7 mem_module_le_rx_data_len
+0x06e9 mem_module_le_rx_data_address
+0x06eb mem_module_le_rx_data_handle
+0x06e7 mem_init_cnt
+0x06e9 mem_data_pre
+0x06eb mem_data_current
+0x06ed mem_data_sum
+0x06f0 mem_data_value
+0x06e7 mem_malloc_rec_start
+0x06e7 mem_rec_queue_ota_sptr
+0x06e9 mem_rec_queue_ota_eptr
+0x06eb mem_rec_queue_ota_rptr
+0x06ed mem_rec_queue_ota_wptr
+0x06ef mem_rec_queue_ota_buf//1280
+0x06ef mem_rec_voice_raw_start
+0x06ef mem_rec_voice_raw
+0x0a0e mem_rec_voice_raw_end
+0x0a0f mem_rec_voice_queue_count
+0x0a10 mem_rec_queue_buf
+0x0a24 mem_rec_adpcm
+0x0a88 mem_rec_nec_rx_start
+0x0b87 mem_rec_nec_rx_end
+0x0b88 mem_rec_nec_rx_store_start
+0x0c87 mem_rec_nec_rx_store_end
+0x0c88 mem_rec_ota_flash_buf_head
+0x0c8c mem_rec_ota_flash_buf//300
+0x0c8c mem_rec_nec_flash_write_head
+0x0c90 mem_rec_nec_rx_info
+0x0c90 mem_rec_nec_rx_len
+0x0c91 mem_rec_nec_rx_perid_freq
+0x0c93 mem_rec_nec_rx_data
+0x0d92 mem_rec_nec_rx_analysis_end
+0x0d93 mem_rec_nec_rx_count
+0x0d94 mem_rec_nec_timer
+0x0d95 mem_rec_nec_timeout
+0x0d96 mem_rec_nec_usercode
+0x0d98 mem_rec_nec_datacode
+0x0d99 mem_rec_nec_learn_key_num
+0x0d9a mem_rec_nec_learn_key_state
+0x0d9b mem_rec_nec_learn_enable_flag
+0x0d9c mem_rec_nec_learn_timeout
+0x0da0 mem_rec_nec_learn_state
+0x0da1 mem_rec_period_cal
+0x0db5 mem_rec_period_cal_ptr
+0x0db7 mem_rec_period_cal_count
+0x0db8 mem_rec_nec_period_array
+0x0dcc mem_rec_nec_store_sptr
+0x0dce mem_rec_nec_store_eptr
+0x0dd0 mem_rec_nec_store_wptr
+0x0dd2 mem_rec_nec_receive_data0
+0x0dd3 mem_rec_nec_receive_data1
+0x0dd4 mem_rec_nec_receive_data2
+0x0dd5 mem_rec_nec_receive_data
+0x0dd8 mem_rec_nec_data
+0x0dd9 mem_rec_nec_period
+0x0dda mem_rec_nec_duty
+0x0ddb mem_rec_nec_freq
+0x0ddc mem_rec_nec_carry_time
+0x0dde mem_rec_nec_learn_stime
+0x0de2 mem_rec_nec_learn_ntime
+0x0de6 mem_rec_nec_learn_outtime
+0x0dea mem_rec_nec_learn_succ
+0x0deb mem_rec_nec_learn_succ_ptr
+0x0ded mem_rec_nec_learn_send_flag
+0x0dee mem_rec_nec_led_state
+0x0def mem_rec_nec_led_blink_count
+0x0df0 mem_malloc_rec_end
+0x06e7 mem_le_test_sync
+0x06e9 mem_le_test_pcnt
+0x06eb mem_tst_pktcnt_crc
+0x06ed mem_tst_pktcnt_dmh
+0x06ef mem_tmp_buffer_head
+0x06f2 mem_tmp_buffer
+0x06e7 mem_usb_status
+0x06e9 mem_usb_fifo_empty
+0x06ea mem_usb_read_len
+0x06ec mem_usb_txbuf
+0x072d mem_usb_txbuf1
+0x0737 mem_usb_txbuf2
+0x0741 mem_usb_rxbuf
+0x0781 mem_usb_rxbuf_end
+0x0782 mem_bufptr
+0x0784 mem_remain
+0x0785 mem_hidreportdesc_kb
+0x0787 mem_hidreportdesc_m
+0x0789 mem_devicedesc
+0x079c mem_confdesc
+0x07d8 mem_string0
+0x07dd mem_string1
+0x07fb mem_string2
+0x0819 mem_string3
+0x0837 mem_cb_usb_config
+0x0839 mem_usb_tx_interval
+0x083a mem_usb_vid_pid
+0x0843 mem_usb_zero_packet
+0x0845 mem_usb_ones_packet
+0x0847 mem_usb_two_packet
+0x0849 mem_usb0_state
+0x084a mem_usb_offline_check_gpio
+0x084b mem_usb_clear_mem_start
+0x084b mem_usb_setup
+0x084b mem_usb_setup_bmRequestType
+0x084c mem_usb_setup_bRequest
+0x084d mem_usb_setup_bValue
+0x084e mem_usb_setup_bValueH
+0x084f mem_usb_setup_wIndex
+0x0851 mem_usb_setup_bLength
+0x0852 mem_usb_setup_bLengthH
+0x0853 mem_usb0_set_report_data
+0x0893 mem_usb0_get_report_data
+0x08d3 mem_usb_setup_bValue_temp
+0x08d5 mem_usb0_get_set_report
+0x08d6 mem_usb0_data_ready_report
+0x08d7 mem_usb_tx_win_enable
+0x08d8 mem_usb_tx_mac_enable
+0x08d9 mem_usb_idle_flag
+0x08da mem_usb_idle_rate
+0x08db mem_usb_get_protocol_flag
+0x08dc mem_usb_set_protocol_status
+0x08dd mem_usb_set_protocol_value
+0x08de mem_usb_state
+0x08df mem_usb_remote_wakeup
+0x08e0 mem_usb_clear_remote_wakeup
+0x08e1 mem_sdsystem_wakeup_flag
+0x08e2 mem_usb_ep0_stall_status
+0x08e3 mem_usb_ep1_stall_status
+0x08e4 mem_usb_ep2_stall_status
+0x08e5 mem_usb_ep3_stall_status
+0x08e6 mem_dsc_info_data_pointer
+0x08e8 mem_dsc_info_len
+0x08e9 mem_usb_ep1_data
+0x08ea mem_usb_ep2_data
+0x08eb mem_usb_tx_enable
+0x08ec mem_usb_device_enumeration_endflag
+0x08ed mem_usb_wakestate_onetime_flag
+0x08ee mem_usb_mac_wakeup_trig
+0x08ef mem_usb_set_high_addr_flag
+0x08f0 mem_usb_clear_halt
+0x08f1 mem_usb_mouse_data
+0x0901 mem_usb_kb_data
+0x0911 mem_usb_kb_n_key_rollvoer_data
+0x0921 mem_usb_kb_multikey
+0x0929 mem_usb_kb_system
+0x0931 mem_usb_test_cnt
+0x0933 mem_usb_test_kb
+0x093d mem_usb_clear_mem_end
+0x093d mem_usb_ccid_buf
+0x097d mem_dg_rssi_noise_buffer
+0x0a7d mem_dg_rssi_noise_dg_buffer
+0x0b7d mem_dg_rssi_noise_ms_buffer
+0x0c7d 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
+0x068f mem_le_search_handle_start
+0x0691 mem_le_search_handle_end
+0x0693 mem_le_att_offset
+0x0693 mem_le_search_att_type_length
+0x0694 mem_le_search_att_type
+0x06a4 mem_le_curr_att_len
+0x06a5 mem_le_cur_attlist_start_ptr
+0x06a7 mem_le_cur_handle_start
+0x06a9 mem_le_cur_handle_end
+0x06ab mem_le_cur_uuid_length
+0x06ac mem_le_cur_uuid
+0x06bc 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
+0x01db mem_otp_adc
+0x01e3 mem_otp_adc_ratio
+0x01e4 mem_otp_coordinate
+0x01eb mem_otp_core_ldo
+0x01ec mem_otp_verf_bg
+0x01ed mem_otp_charge_pump
+0x01ee mem_otp_dpll_ibais
+0x01ef mem_otp_temp1
+0x01f7 mem_otp_hv_sel
+0x01f8 mem_otp_ldo_vsel
+0x01f9 mem_otp_load_delay
+0x01fa 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
+0x415d mem_otp_charge_pump_x
+0x415e mem_otp_dpll_ibais_x
+0x415f mem_xtal_freq
+0x4160 mem_version
+0x4161 mem_company_id
+0x4163 mem_sub_version
+0x4165 mem_le_dsniff
+0x4167 mem_le_conn_interval
+0x4169 mem_le_tx_ifs_defference
+0x416a mem_le_tx2m_delay
+0x416b mem_le_txheader
+0x416c mem_le_txlen
+0x416d mem_le_txpayload
+0x426d mem_le_name_len
+0x426e mem_le_name
+0x428c mem_le_ltk
+0x429c mem_ltk_exists
+0x429d mem_le_rconfirm
+0x42ad mem_le_srand
+0x42bd mem_le_iat
+0x42be mem_le_rat
+0x42bf mem_le_preq
+0x42c0 mem_le_preq_iocap
+0x42c1 mem_le_preq_oob
+0x42c2 mem_le_preq_auth
+0x42c3 mem_le_preq_max_keysize
+0x42c4 mem_le_preq_init_key_distribution
+0x42c5 mem_le_preq_resp_key_distribution
+0x42c6 mem_le_pres
+0x42c7 mem_le_pres_iocap
+0x42c8 mem_le_pres_oob
+0x42c9 mem_le_pres_auth
+0x42ca mem_le_pres_max_keysize
+0x42cb mem_le_pres_init_key_distribution
+0x42cc mem_le_pres_resp_key_distribution
+0x42cd mem_le_conn_param
+0x42cd mem_le_conn_peer_addr_type
+0x42ce mem_le_conn_peer_addr
+0x42d4 mem_le_conn_own_addr_type
+0x42d5 mem_le_interval_min
+0x42d7 mem_le_interval_max
+0x42d9 mem_le_latency
+0x42db mem_le_timeout
+0x42dd mem_le_lap
+0x42e0 mem_le_uap
+0x42e1 mem_le_nap
+0x42e3 mem_le_local_mtu
+0x42e5 mem_le_remote_mtu
+0x42e7 mem_le_skdm
+0x42ef mem_le_skds
+0x42f7 mem_le_init_superto
+0x42f9 mem_ui_le_uuid_table
+0x42fb mem_le_secure_connect_flag
+0x42fc mem_le_secure_connect_state
+0x42fd mem_le_sc_confirm_gkey_flag
+0x42fe mem_le_pairing_state
+0x42ff mem_le_enc_state
+0x4300 mem_le_pairing_mode
+0x4301 mem_le_tk
+0x4305 mem_le_ediv
+0x4307 mem_le_rand
+0x430f mem_le_irk
+0x431f mem_le_transmit_window
+0x4323 mem_le_configuration
+0x4324 mem_le_fixed_ltk
+0x4334 mem_le_pairing_handle
+0x4336 mem_le_packet_llid
+0x4337 mem_le_l2cap_size
+0x4339 mem_le_packet_len_recved
+0x433b mem_le_payload_ptr
+0x433d mem_le_testtype
+0x433e mem_cmd_le_create_conn
+0x433f mem_le_signaling_identifier
+0x4340 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x4342 mem_le_md_count
+0x4343 mem_ble_l2cap_tx_buff0_ptr
+0x4345 mem_ble_l2cap_tx_buff_size_ptr
+0x4347 mem_le_scan_enable
+0x4348 mem_le_scan_interval
+0x434a mem_le_scan_window
+0x434c mem_le_adv_data_len
+0x434d mem_le_adv_data
+0x436c mem_le_scan_data_len
+0x436d mem_le_scan_data
+0x438c mem_le_adv_enable
+0x438d mem_le_adv_param
+0x438d mem_le_adv_interval
+0x438f mem_le_adv_type
+0x4390 mem_le_adv_own_addr_type
+0x4391 mem_le_adv_direct_addr
+0x4397 mem_le_adv_channel_map
+0x4398 mem_le_scan_params
+0x4398 mem_le_scan_type
+0x4399 mem_le_scan_own_addr_type
+0x439a mem_le_l2cap_att_states
+0x439b mem_le_att_opcode
+0x439c mem_le_att_handle
+0x439e mem_le_search_res
+0x439f mem_le_notify_handle
+0x43a1 mem_le_search_uuid_length
+0x43a2 mem_le_search_uuid
+0x43b2 mem_le_local_feature
+0x43ba mem_le_tx_phys
+0x43bb mem_le_rx_phys
+0x43bc mem_remote_rx_max_octets
+0x43be mem_remote_rx_max_time
+0x43c0 mem_remote_tx_max_octets
+0x43c2 mem_remote_tx_max_time
+0x43c4 mem_local_rx_max_octets
+0x43c6 mem_local_rx_max_time
+0x43c8 mem_local_tx_max_octets
+0x43ca mem_local_tx_max_time
+0x43cc mem_ucode_ptr
+0x43ce mem_ucode_flag
+0x43cf mem_device_option
+0x43d0 mem_peripheral_lock_flag
+0x43d1 mem_bistfix_val
+0x43d1 mem_bistfix_addr_sched
+0x43d3 mem_bistfix_addr_x
+0x43d5 mem_bistfix_addr_patch
+0x43d7 mem_bistfix_val_xram
+0x43d8 mem_bistfix_val_patchram
+0x43dc mem_cb_check_wakelock
+0x43de mem_cb_before_hibernate
+0x43e0 mem_cb_before_lpm
+0x43e2 mem_cb_le_process
+0x43e4 mem_cb_idle_process
+0x43e6 mem_cb_bb_event_process
+0x43e8 mem_cb_att_write
+0x43ea mem_cb_ble_transmit
+0x43ec mem_cb_event_timer
+0x43ee mem_cb_bt_set_mult
+0x43f0 mem_cb_spi_flash_write_complate
+0x43f2 mem_cb_before_lpm_sleep
+0x43f4 mem_eeprom_base
+0x43f6 mem_wake_up_delay_timer
+0x43f7 mem_app_connection_options
+0x43f8 mem_app_disconn_reason
+0x43fa mem_app_disconn_reason_flag
+0x43fc mem_xrecord_mode
+0x43fd mem_eeprom_block_size
+0x43fe mem_spi_init_clk
+0x43ff mem_spi_init_delay_time
+0x4400 mem_spi_ncs_gpio
+0x4401 mem_nv_data_ptr
+0x4403 mem_nv_data_number
+0x4404 mem_queue_ptr
+0x4406 mem_reference_inter1p8v_2v_adc_io_data
+0x4408 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x440a mem_reference_inter1p8v_1v_adc_io_data
+0x440c mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x440e mem_adc_reference3v_ft_data
+0x440e mem_adc_reference3v_gpio1v_ft_data
+0x4410 mem_adc_reference3v_gpio2v_ft_data
+0x4412 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4414 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4416 mem_adc_reference3v_inter1v_ft_data
+0x4418 mem_adc_reference3v_inter1v_now_data
+0x441a mem_adc_reference_mode
+0x441b mem_reference_voltage
+0x441d mem_adc_config_flag
+0x441e mem_adc_channel
+0x441f mem_adc_clkdiv
+0x4420 mem_adc_current_value
+0x4422 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4423 mem_adc_saddr_ptr
+0x4425 mem_adc_eaddr_ptr
+0x4427 mem_adc_dma_enable
+0x4428 mem_adc_cal_c0
+0x4429 mem_adc_cal_c1
+0x442a mem_adc_cal_c2
+0x442b mem_adc_cal_c3
+0x442c mem_adc_cal_c4
+0x442d mem_adc_cal_c5
+0x442e mem_adc_cal_c6
+0x442f mem_adc_cal_c7
+0x4430 mem_spi_write_addr
+0x4433 mem_spi_write_ptr
+0x4435 mem_spi_write_len
+0x4437 mem_spi_write_flash_sm
+0x4438 mem_spi_cs_gpio
+0x4439 mem_spi_si_gpio
+0x443a mem_spi_so_gpio
+0x443b mem_spi_sclk_gpio
+0x443c mem_spi_wp_gpio
+0x443d mem_spi_hold_gpio
+0x443e mem_eeprom_wp_gpio
+0x443f mem_eeprom_scl_gpio
+0x4440 mem_eeprom_sda_gpio
+0x4441 mem_kscan_ptr
+0x4443 mem_key_num_ptr
+0x4443 mem_keyscan_ptr
+0x4445 mem_key_value_retention
+0x4447 mem_power_param_ptr
+0x4449 mem_seqi
+0x444a mem_set_cdb_on
+0x444b mem_syn_cal_ctrl
+0x444c mem_nec_decode_error_value
+0x444d mem_wdt_always_work
+0x444e mem_power_ctrl_disable
+0x444f mem_ring_ibias_trim
+0x4450 mem_ring_ibias_vtune_low
+0x4452 mem_ring_ibias_vtune_high
+0x4454 mem_ring_ibias_calc_adc_gpio
+0x4455 mem_ring_ibias_calc_adc_channel
+0x4456 mem_rf_debug_rx_gpio
+0x4457 mem_rf_debug_tx_gpio
+0x4458 mem_l2cap_xmem_start
+0x4458 mem_used_map
+0x4459 mem_tx_fifo0
+0x4459 mem_tx_fifo0_map
+0x445a mem_tx_fifo0_ptr
+0x445c mem_tx_fifo1
+0x445c mem_tx_fifo1_map
+0x445d mem_tx_fifo1_ptr
+0x445f mem_tx_fifo2
+0x445f mem_tx_fifo2_map
+0x4460 mem_tx_fifo2_ptr
+0x4462 mem_tx_fifo3
+0x4462 mem_tx_fifo3_map
+0x4463 mem_tx_fifo3_ptr
+0x4465 mem_tx_fifo_end
+0x4465 mem_l2cap_lpm_txbuf_ptr
+0x4467 mem_l2cap_xmem_end
+0x4467 mem_ccm_pcnt_tx
+0x446c mem_ccm_pcnt_rx
+0x4471 mem_ccm_last_mic
+0x4475 mem_ccm_iv
+0x4475 mem_ccm_ivm
+0x4479 mem_ccm_ivs
+0x447d mem_ccm_len
+0x447f mem_ccm_rx_ptr
+0x4481 mem_sc_only_mode
+0x4482 mem_sp_debug_mode
+0x4483 mem_secure_connections_enable
+0x4484 mem_sc_calc
+0x4485 mem_sc_local_key_invalid
+0x4486 mem_sc_private_key_256
+0x44a6 mem_sc_pubkey_local_x_256
+0x44c6 mem_sc_pubkey_local_y_256
+0x44e6 mem_sp_state_xmem
+0x44e6 mem_authentication_passkey_times
+0x44e7 mem_passkey_1bit
+0x44e8 mem_sp_state_xmem_end
+0x44e8 mem_ipc_lock_bt
+0x44e9 mem_ipc_lock_c51
+0x44ea mem_ipc_fifo_bt2c51
+0x44f2 mem_ipc_fifo_c512bt
+0x44fa mem_ui_button_timer
+0x44fb mem_ui_button_last_state
+0x44fc mem_ui_timer_last_btclk
+0x4500 mem_ui_state_map
+0x4502 mem_ui_button_timeout
+0x4503 mem_ui_button_gpio
+0x4504 mem_ui_led_init_state_set
+0x4505 mem_ui_led_struct_num
+0x4506 mem_ui_led_struct_ptr
+0x4508 mem_24g_lap
+0x450e mem_24g_rxbuf
+0x4530 mem_24g_txbuf
+0x4550 mem_24g_txpayload
+0x4574 mem_24g_rxpayload
+0x4594 mem_24g_rxdata_length
+0x4595 mem_24g_pid
+0x4596 mem_24g_no_ack
+0x4597 mem_24g_sta_crc
+0x459a mem_24g_last_crc
+0x459d mem_24g_sta_pid
+0x459e mem_24g_last_pid
+0x459f mem_24g_datalen
+0x45a0 mem_24g_data_type
+0x45a1 mem_24g_txlen
+0x45a2 mem_24g_rx_window
+0x45a4 mem_24g_ch
+0x45a5 mem_24g_current_ch_number
+0x45a6 mem_24g_addr
+0x45aa mem_24g_ch_map1
+0x45ae mem_24g_ch_map2
+0x45b2 mem_24g_ch_map3
+0x45b6 mem_24g_ch_map4
+0x45ba mem_24g_tx_btclk
+0x45be mem_24g_interval
+0x45bf mem_24g_interval_min
+0x45c0 mem_24g_interval_max
+0x45c1 mem_24g_syncword
+0x45c3 mem_24g_syncword_crc8
+0x45c4 mem_24g_get_syncword_crc8
+0x45c5 mem_24g_pair_switch
+0x45c6 mem_24g_enter_hibernate
+0x45ce mem_24g_rx_phy
+0x45cf mem_24g_tx_phy
+0x45d0 mem_24g_ch_map_update
+0x45d1 mem_24g_ch_update_map1
+0x45d5 mem_24g_ch_update_map2
+0x45d9 mem_24g_ch_update_map3
+0x45dd mem_24g_ch_update_map4
+0x45e1 mem_24g_disable_fec1
+0x45e2 mem_24g_off_type
+0x45e3 mem_24g_pair_addr
+0x45e7 mem_24g_pair_ch
+0x45e8 mem_24g_pair_tx_power
+0x45e9 mem_rssi_buff_index
+0x45ea mem_24g_device1_bind_step
+0x45eb mem_24g_device2_bind_step
+0x45ec mem_24g_bind_device_status
+0x45ed mem_24g_bind_payload
+0x45f5 mem_24g_device1_bind_disable
+0x45f6 mem_24g_device2_bind_disable
+0x45f7 mem_cb_24g_receive_process
+0x45f9 mem_cb_24g_ackpayload
+0x45fb mem_cb_24g_data_device1
+0x45fd mem_cb_24g_data_device2
+0x45ff mem_24g_rxdata_temp
+0x4621 mem_24g_abort_packet
+0x4622 mem_24g_hop_btclk
+0x4626 mem_24g_hop_interval
+0x4627 mem_24g_pair_mode
+0x4628 mem_24g_ackpayload_enable
+0x4629 mem_24g_hop_packet
+0x462a mem_24g_mode_switch
+0x462b mem_24g_nodata_timer_enable
+0x462c mem_24g_mode_init
+0x462d mem_24g_work_mode
+0x462e mem_24g_time_slice
+0x462f mem_24g_self_last_ch
+0x4630 mem_24g_self_ch_number
+0x4631 mem_24g_self_config_ch_once
+0x4632 mem_24g_device1_last_ch
+0x4633 mem_24g_device1_ch_number
+0x4634 mem_24g_device1_config_ch_once
+0x4635 mem_24g_device2_last_ch
+0x4636 mem_24g_device2_ch_number
+0x4637 mem_24g_device2_config_ch_once
+0x4638 mem_24g_led_status
+0x4639 mem_24g_bind_mode_continue
+0x463a mem_tx_power_temp
+0x463b mem_24g_mode_B_S_switch
+0x463c mem_24g_mode_B_S_switch_init
+0x463d mem_24g_mode_B_S_switch_cnt
+0x463f mem_24g_mode_B_S_switch_exit
+0x4640 mem_24g_B_S_time_slice
+0x4641 mem_24g_B_S_mode_switch_disable
+0x4642 mem_24g_bind_device_living
+0x4643 mem_24g_transmitter_addr
+0x4647 mem_24g_device1_addr
+0x464b mem_24g_device2_addr
+0x464f mem_rssi_noise_avg
+0x4650 mem_rssi_noise_index
+0x4651 mem_rssi_noise_self_avg
+0x4652 mem_rssi_noise_device1_avg
+0x4653 mem_rssi_noise_device2_avg
+0x4654 mem_rssi_noise_self_index
+0x4655 mem_rssi_noise_device1_index
+0x4656 mem_rssi_noise_device2_index
+0x4657 mem_rssi_noise_buffer_ptr
+0x4659 mem_rssi_noise_self_buffer_ptr
+0x465b mem_rssi_noise_device1_buffer_ptr
+0x465d mem_rssi_noise_device2_buffer_ptr
+0x465f mem_car_le_24g_tx_pair_mode
+0x4660 mem_car_le_24g_ch_count
+0x4662 mem_car_24g_addr_other
+0x4666 mem_car_24g_tx_payload_temp
+0x4672 mem_car_24g_rx_payload_temp
+0x467e mem_car_24g_loselink_count
+0x467f mem_car_ble_connted_flag
+0x4680 mem_car_full_control_remote_lap
+0x4684 mem_100ms_adv_control_timer
+0x4686 mem_100ms_factory_test_control_timer
+0x4688 mem_pwm_flag
+0x4689 mem_period_count
+0x468a mem_timer_count
+0x468b mem_car_motor_gpio_num
+0x468c mem_car_motor_gpio_map
+0x468c mem_car_motor_left_gpio
+0x468d mem_car_motor_right_gpio
+0x468e mem_car_motor_front_gpio
+0x468f mem_car_motor_back_gpio
+0x4690 mem_car_pwm_gpio
+0x4691 mem_otp_lot_xy_temp
+0x4697 mem_f_flag
+0x4698 mem_b_flag
+0x4699 mem_adv_control_start_flag
+0x469a mem_stop_4w1_flag
+0x469b mem_factory_control_flag
+0x469c mem_car_gpio_control_mode
+0x469d mem_car_le_queue_each_size
+0x469e mem_car_le_queue_length
+0x469f mem_car_le_queue_current_num
+0x46a0 mem_car_le_queue_read_ptr
+0x46a1 mem_car_le_queue_write_ptr
+0x46a2 mem_car_le_queue_ele
+0x46f2 mem_car_ble_write_data
+0x46fd mem_car_ble_att_list
+0x488d mem_otp_sys_cfg_temp
+0x48c9 mem_ad_indexTable
+0x48d9 mem_ad_stepsizeTable
+0x4a3d mem_ad_state_valpred
+0x4a41 mem_ad_state_index
+0x4a45 mem_ad_in_numSamples
+0x4a46 mem_ad_in_ptr
+0x4a48 mem_ad_out_ptr
+0x4a4a mem_ad_sign
+0x4a4b mem_ad_delta
+0x4a4c mem_ad_step
+0x4a50 mem_ad_valpred
+0x4a54 mem_ad_index
+0x4a58 mem_ad_vpdiff
+0x4a5c mem_ad_inputbuffer
+0x4a60 mem_ad_bufferstep
+0x465f mem_dg_kb_bind_flag
+0x4660 mem_dg_kb_data_sta_data
+0x4668 mem_dg_kb_data_last_data
+0x4670 mem_dg_kb_multikey_sta_data
+0x4673 mem_dg_kb_multikey_last_data
+0x4676 mem_dg_kb_system_sta_data
+0x4679 mem_dg_kb_system_last_data
+0x467c mem_dg_kb_blank_data_enable
+0x467d mem_dg_kb_mul_blank_data_enable
+0x467e mem_dg_kb_system_crtl_blank_data_enable
+0x467f mem_dg_ms_blank_data_enable
+0x4680 mem_dg_sys_config
+0x4681 mem_dg_usb_vid_pid
+0x468a mem_dg_usb_tx_interval
+0x468b mem_dg_usb_device_name
+0x46ab mem_dg_kb_bind_success
+0x46ac mem_dg_pc_sleep_flag
+0x46ad mem_dg_24g_tx_power_default
+0x46ae mem_dg_kb_bit_consumer_blank_data_enable
+0x46af mem_dg_kb_bit_consumer_sta_data
+0x46b3 mem_dg_kb_bit_consumer_last_data
+0x46b7 mem_dg_device_version
+0x45ea mem_rssi_hex_received
+0x45eb mem_24g_pair_sm
+0x45ec mem_24g_pair_no_ack
+0x45ed mem_24g_pair_timeout_init
+0x45ef mem_24g_pair_timeout
+0x45f1 mem_24g_pair_count
+0x45f3 mem_24g_reconn_timeout_init
+0x45f5 mem_24g_reconn_timeout
+0x45f7 mem_24g_reconn_count
+0x45f9 mem_24g_reconn_type
+0x45fa mem_24g_fast_conn_enable
+0x45fb mem_24g_fast_conn_addr
+0x45ff mem_24g_receiver_addr
+0x4603 mem_24g_fast_conn_temp_ch
+0x4604 mem_24g_receiver_temp_ch
+0x4605 mem_24g_device_temp_ch
+0x4606 mem_rssi_signal_index
+0x4607 mem_rssi_signal_buf_ptr
+0x4609 mem_cb_24g_transmit_data
+0x460b mem_cb_24g_search_receiver
+0x460d mem_cb_24g_lpm_before
+0x460f mem_cb_24g_transmit_short_sleep
+0x4611 mem_cb_24g_transmit_long_sleep
+0x4613 mem_24g_conn_sm
+0x4614 mem_24g_ensure
+0x4615 mem_24g_txfail_cnt
+0x4617 mem_24g_attempt_fail_flag
+0x4618 mem_24g_retry
+0x4619 mem_24g_abort_pac
+0x461a mem_24g_max_retry
+0x461b mem_24g_device_addr
+0x461f mem_24g_short_sleep_set
+0x4622 mem_24g_long_sleep_set
+0x462a mem_24g_long_sleep_set1
+0x462e mem_24g_pac_index
+0x462f mem_24g_transmit_by_interrupt
+0x4630 mem_24g_transmit_by_interrupt_exit_count
+0x4632 mem_24g_transmit_by_interrupt_exit_count_init
+0x4634 mem_24g_long_sleep_param_update_timer_init
+0x4636 mem_24g_long_sleep_param_update_timer
+0x4638 mem_24g_fast_hop_count
+0x4639 mem_24g_retransmit
+0x463b mem_rssi_avg_received
+0x463c mem_power_ctrl_level
+0x463d mem_power_ctrl_pac_succ_cnt
+0x463e mem_power_ctrl_pac_succ_cnt_init
+0x463f mem_rssi_dis_min_24g
+0x4640 mem_rssi_dis_max_24g
+0x4641 mem_rssi_hex_received_max_value
+0x4642 mem_rssi_dis_min_ble
+0x4643 mem_rssi_dis_max_ble
+0x4644 mem_device_vdd_calculate_set
+0x4644 mem_device_vdd_full_vol
+0x4646 mem_device_vdd_empty_vol
+0x4648 mem_device_vdd_low_vol
+0x464a mem_device_vdd_now_vol
+0x464c mem_adc_channel_gpio
+0x464d mem_adc_low_volatage_led_timer_count
+0x464e mem_device_adc_last_low_voltage_flag
+0x464f mem_device_discovery_timeout
+0x4651 mem_device_24g_pair_timeout_init
+0x4653 mem_device_direct_timeout
+0x4654 mem_device_24g_reconn_timeout_init
+0x4655 mem_device_24g_pair_tx_power
+0x4656 mem_device_normal_tx_power
+0x4657 mem_rssi_dis_min_24g_init
+0x4658 mem_rssi_dis_max_24g_init
+0x4659 mem_rssi_hex_received_max_value_init
+0x465a mem_rssi_dis_min_ble_init
+0x465b mem_rssi_dis_max_ble_init
+0x465c mem_mouse_key
+0x465d mem_mouse_x
+0x465f mem_mouse_y
+0x4661 mem_mouse_z
+0x4662 mem_mouse_tz
+0x4663 mem_mouse_xy_h
+0x4664 mem_mouse_key_last
+0x4665 mem_device_switch_gpio
+0x4666 mem_device_reuse_2ice_gpio
+0x4667 mem_sensor_motion_gpio
+0x4668 mem_whee_a_data_gpio
+0x4669 mem_whee_b_data_gpio
+0x466a mem_wheel_tb_old_pinlevel
+0x466b mem_wheel_tb_new_pinlevel
+0x466c mem_wheel_tog
+0x466d mem_mouse_tz_data
+0x466e mem_mwheel_b_old_pinlevel
+0x466f mem_mwheel_b_new_pinlevel
+0x4670 mem_mwheel_tog
+0x4671 mem_mouse_z_data
+0x4672 mem_mouse_wheel_trigger
+0x4673 mem_mouse_wheel_trigger_timer
+0x4674 mem_wire_usb_interval
+0x4675 mem_usb_addr
+0x4676 mem_usb_vdd_status
+0x4677 mem_usb_keyboard_flag
+0x4678 mem_device_information_start
+0x4678 mem_device_flag
+0x4679 mem_device1_type
+0x467a mem_device1_addr
+0x4680 mem_device1_locall_addr
+0x4686 mem_device2_type
+0x4687 mem_device2_addr
+0x468d mem_device2_locall_addr
+0x4693 mem_device3_type
+0x4694 mem_device3_addr
+0x469a mem_device3_locall_addr
+0x46a0 mem_store_flag
+0x46a2 mem_mouse_dpi
+0x46a3 mem_device_24g_addr
+0x46a7 mem_random_addr_increase_count
+0x46a9 mem_keyboard_24g_fn_lock
+0x46aa mem_keyboard_bt1_fn_lock
+0x46ab mem_keyboard_bt2_fn_lock
+0x46ac mem_keyboard_bt3_fn_lock
+0x46ad mem_keyboard_usb_fn_lock
+0x46ae mem_keyboard_bt1_computer_system
+0x46af mem_keyboard_bt2_computer_system
+0x46b0 mem_keyboard_bt3_computer_system
+0x46b1 mem_backlight_on_flag
+0x46b2 mem_backlight_on_type
+0x46b3 mem_backlight_on_level
+0x46b4 mem_backlight_breath_speed
+0x46b5 mem_mouse_retention
+0x46f8 mem_device_information_end
+0x46f8 mem_device_compare_addr
+0x46fe mem_flash_base
+0x4701 mem_write_flash_head_temp
+0x4705 mem_store_information_delay_timer
+0x4706 mem_store_information_delay_timer_init
+0x4707 mem_device_search_dongle_interval
+0x4708 mem_device_search_dongle_ch
+0x4709 mem_device_search_dongle_count
+0x470a mem_device_search_dongle_action
+0x470b mem_24g_enter_lpm_timer
+0x470c mem_mouse_24g_enter_lpm_enable
+0x470d mem_keyboard_led_status
+0x470e mem_mouse_flag
+0x4716 mem_device_number
+0x4717 mem_device_flag_temp
+0x4718 mem_device_otp_flag_temp
+0x4719 mem_device_fast_direct_timeout
+0x471a mem_device_24g_power_on_fast_conn_timer
+0x471c mem_device_24g_search_dongle_time_init
+0x471e mem_device_no_data_timeout
+0x4720 mem_device_direct_timer
+0x4721 mem_customer_key_press
+0x472b mem_customer_key
+0x472c mem_customer_data_trigger
+0x472d mem_customer_data_trigger_last
+0x472e mem_device_set_analog_bit_set
+0x4731 mem_bt_discovery_count
+0x4732 mem_select_device_count
+0x4733 mem_mouse_commbination_key
+0x4734 mem_select_device_button_statue
+0x4735 mem_commbination_key_statue
+0x4736 mem_combination_ui_button_count
+0x4737 mem_24g_shutdown_flag
+0x4738 mem_24g_long_sleep_set_level
+0x4739 mem_tx_power_factory_param
+0x473b mem_mouse_24g_long_sleep_flag
+0x473c mem_mouse_long_mult_count
+0x473d mem_mouse_long_mult_flag
+0x473e mem_mouse_current_mult_timer
+0x473f mem_reconn_times
+0x4740 mem_reconn_times_init
+0x4741 mem_device_no_data_timer
+0x4743 mem_mouse_rssi_signal_buf
+0x474b mem_btclk_sensor
+0x474f mem_device_fast_conn_flag
+0x4750 mem_device_discovery_timer
+0x4752 mem_device_need_soft_reset
+0x4753 mem_device_le_bb_connected_flag
+0x4754 mem_device_le_reconnect_flag
+0x4755 mem_device_send_secutiry_request_timer
+0x4756 mem_device_le_lap_temp
+0x4759 mem_le_adv_ind
+0x475c mem_le_adv_direct_ind
+0x475f mem_le_adv_swift_pair
+0x4773 mem_le_data_len
+0x4774 mem_le_keyboard_handle
+0x4776 mem_le_multimedia_handle
+0x4778 mem_le_systemctrl_handle
+0x477a mem_le_battery_level_handle
+0x477c mem_le_battery_level_percentage
+0x477d mem_le_battery_level_updata_timer_init
+0x477f mem_le_battery_level_updata_timer
+0x4781 mem_le_conn_param_reject
+0x4782 mem_le_tx_buffer0_omemalloc
+0x47c2 mem_le_tx_buffer1_omemalloc
+0x4802 mem_le_tx_buffer2_omemalloc
+0x4842 mem_le_tx_buffer3_omemalloc
+0x4882 mem_le_connect_status_flag
+0x4883 mem_le_start_encrypt_timer
+0x4884 mem_device_addr_temp
+0x488b mem_lpm_mult_init
+0x488c mem_qdec_set_flag
+0x488d mem_power_on_flag
+0x488e mem_keyboard_flag
+0x4896 mem_keyboard_switch_count_temp
+0x4897 mem_keyboard_switch_device_to_g24
+0x489a mem_keyboard_switch_device_to_bt1
+0x489d mem_keyboard_switch_device_to_bt2
+0x48a0 mem_keyboard_switch_device_to_bt3
+0x48a3 mem_keyboard_switch_device_to_usb
+0x48a6 mem_keyboard_switch_device_flag
+0x48a7 mem_keyboard_switch_g24_enable
+0x48a8 mem_keyboard_switch_bt_enable
+0x48a9 mem_keyboard_switch_g24_press_timer
+0x48aa mem_keyboard_switch_bt_press_timer
+0x48ab mem_keyboard_vdd_full_vol
+0x48ad mem_keyboard_vdd_empty_vol
+0x48af mem_keyboard_vdd_low_vol
+0x48b1 mem_keyboard_power_type
+0x48b2 mem_rgb_pwm_conf
+0x48b8 mem_rgb_pwm_breathe_flag
+0x48b9 mem_rgb_on_color_temp
+0x48ba mem_rgb_on_color
+0x48c1 mem_pwm_lpm_mode_flag
+0x48c2 mem_keyboard_rgb_on_timer
+0x48c4 mem_ui_check_timer_setup
+0x48c8 mem_customize_timer_setup
+0x48ca mem_backlight_breathe_type
+0x48cb mem_keyboard_le_lap_temp
+0x48ce mem_keyboard_le_change_vid_pid_flag
+0x48cf mem_keybaord_le_pnp_vid_source
+0x48d0 mem_keyboard_le_vid
+0x48d2 mem_keyboard_le_pid
+0x48d4 mem_keyboard_le_product_version
+0x48d6 mem_keyboard_le_hid_map
+0x48d8 mem_keyboard_blob_response_consumer_customize
+0x48ee mem_le_search_service_uuid
+0x48fe mem_le_connect_ios_mac_flag
+0x48ff mem_le_search_mac_uuid
+0x4901 mem_le_search_mac_manu_name
+0x490a mem_keybord_appearance
+0x490c mem_keyboard_le_send_conn_param_update
+0x490d mem_keyboard_le_send_conn_param_update_timer
+0x490e mem_le_start_auto_reco_timer
+0x490f mem_keyboard_pb_button_gpio
+0x4910 mem_mcu_stb_gpio
+0x4911 mem_mcu_clk_gpio
+0x4912 mem_mcu_rstb_gpio
+0x4913 mem_keyboard_num_led_gpio
+0x4914 mem_keyboard_caps_led_gpio
+0x4915 mem_keyboard_scroll_led_gpio
+0x4916 mem_keyboard_power_led_gpio
+0x4917 mem_keyboard_low_voltage_alarm_gpio
+0x4918 mem_keyboard_24g_led_gpio
+0x4919 mem_keyboard_bt1_led_gpio
+0x491a mem_keyboard_bt2_led_gpio
+0x491b mem_keyboard_bt3_led_gpio
+0x491c mem_keyboard_led_r_gpio
+0x491d mem_keyboard_led_g_gpio
+0x491e mem_keyboard_led_b_gpio
+0x491f mem_key_row_gpio
+0x4927 mem_key_col_gpio
+0x493c mem_key_excol_gpio
+0x4948 mem_kb_row_ptr
+0x494a mem_kb_col_ptr
+0x494c mem_kb_excol_ptr
+0x494e mem_keyscan_value_current
+0x4963 mem_keyscan_value_check
+0x4978 mem_keyscan_value_old
+0x498d mem_keyscan_exmcu_value
+0x4998 mem_keyscan_value_ptr
+0x499a mem_keyscan_exmcu_value_ptr
+0x499c mem_keyscan_value_temp
+0x499d mem_keyscan_col_loop_count
+0x499e mem_keyscan_exmcu_wait_wake_count
+0x49a0 mem_same_keyvalue_timerout_flag
+0x49a1 mem_same_keyvalue_timer_init
+0x49a3 mem_same_keyvalue_timer
+0x49a5 mem_keyboard_current_col_press_key_count
+0x49a6 mem_keyboard_all_press_key_count
+0x49a7 mem_keyboard_same_row_press_key_count
+0x49a8 mem_keyboard_ghost_flag
+0x49a9 mem_keyboard_data_change_flag
+0x49aa mem_keyboard_keyvalue_temp
+0x49ab mem_keyboard_press_flag_temp
+0x49ac mem_keyboard_keyvalue_bit_loop_count
+0x49ad mem_keyboard_keyvalue_buffer
+0x49b7 mem_keboard_n_key_rollover_send_flag
+0x49b8 mem_keyboard_n_key_rollover_data
+0x49c7 mem_keyboard_keyvalue_map
+0x4a6f mem_keyboard_tx_data
+0x4a79 mem_keyboard_data_send_flag
+0x4a7a mem_keyboard_fn_flag
+0x4a7b mem_keyboard_control_key_flag
+0x4a7c mem_keyboard_alt_flag
+0x4a7d mem_keyboard_shift_flag
+0x4a7e mem_keyboard_bt_button_flag
+0x4a7f mem_keyboard_pairing_type
+0x4a80 mem_24g_repeat_send_flag
+0x4a81 mem_keyboard_led_status_get
+0x4a82 mem_keyboard_led_status_get_timer
+0x4a83 mem_keyboard_led_status_get_timer_last
+0x4a84 mem_keyboard_fn_esc_f1_f12
+0x4a84 mem_keyboard_fn_first
+0x4a85 mem_keyboard_fn_esc
+0x4a86 mem_keyboard_fn_f1
+0x4a87 mem_keyboard_fn_f2
+0x4a88 mem_keyboard_fn_f3
+0x4a89 mem_keyboard_fn_f4
+0x4a8a mem_keyboard_fn_f5
+0x4a8b mem_keyboard_fn_f6
+0x4a8c mem_keyboard_fn_f7
+0x4a8d mem_keyboard_fn_f8
+0x4a8e mem_keyboard_fn_f9
+0x4a8f mem_keyboard_fn_f10
+0x4a90 mem_keyboard_fn_f11
+0x4a91 mem_keyboard_fn_f12
+0x4a92 mem_keyboard_fn_del
+0x4a93 mem_keyboard_fn_lock_flag
+0x4a94 mem_keyboard_fn_lock_keyvalue
+0x4a95 mem_keyboard_commbination_key_bt
+0x4a97 mem_keyboard_commbination_key_24g
+0x4a99 mem_keyboard_commbination_fast_conn_bt
+0x4a9b mem_keyboard_commbination_press_type
+0x4a9c mem_keyboard_commbination_key_step
+0x4a9d mem_keyboard_commbination_control_key_value
+0x4a9e mem_keyboard_commbination_standard_key_value
+0x4a9f mem_keyboard_commbination_control_key_delay_release_timer
+0x4aa0 mem_keyboard_consumer_key_status
+0x4aa1 mem_kb_computer_system
+0x4aa2 mem_keyboard_device_info_store_flag
+0x4aa3 mem_otp_store_device_info_flag
+0x4aa4 mem_otp_store_system_flag
+0x4aa5 mem_otp_read_retention_memory
+0x4abd mem_otp_read_retention_offset
+0x4abf mem_otp_read_retention_max_size
+0x4ac1 mem_keyboard_device_poweron_timer_init
+0x4ac2 mem_keyboard_device_poweron_timer
+0x4ac3 mem_keyboard_num_caps_scoll_led_on_timer
+0x4ac5 mem_keyboard_mode_led_on_timer
+0x4ac6 mem_keyboard_adc_low_volatage_led_timer_count
+0x4ac7 mem_adc_low_volatage_led_blink_timer
+0x4ac9 mem_keyboard_low_volatage_led_flag
+0x4aca mem_keyboard_low_volatage_led_blink_count
+0x4acb mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4acc mem_keyboard_pair_led_flag
+0x4acd mem_keyboard_pair_led_blink_count
+0x4ace mem_usb_vdd_status_current
+0x4acf mem_usb_vdd_status_last
+0x4ad0 mem_usb_wait_updata_timer
+0x4ad1 mem_keyboard_usb_vid_pid
+0x4ada mem_keyboard_recognition_code
+0x4adc mem_keyscan_exmcu_value_new
+0x4ae8 mem_keyboard_le_table
+0x4b99 mem_keyboard_delay_lpm_flag
+0x4b9a mem_keyboard_evt_btclk
+0x4b9e mem_keyboard_evt_timer_count
+0x4b9f mem_keyboard_scan_enter_lpm
+0x4ba0 mem_keyboard_reuse_led_bit
+0x4ba1 mem_keyboard_end
+0x488d mem_mouse_param_config
+0x488d mem_lbutton_gpio
+0x488e mem_mbutton_gpio
+0x488f mem_rbutton_gpio
+0x4890 mem_bk_button_gpio
+0x4891 mem_fw_button_gpio
+0x4892 mem_dpi_button_gpio
+0x4893 mem_mouse_sensor_sclk_gpio
+0x4894 mem_mouse_sensor_sdio_gpio
+0x4895 mem_select_sensor_angle_gpio
+0x4896 mem_sensor_angle_default
+0x4897 mem_sensor_angle_gnd
+0x4898 mem_sensor_angle_vin
+0x4899 mem_config_sensor_dpi
+0x489a mem_whee_ta_data_gpio
+0x489b mem_whee_tb_data_gpio
+0x489c mem_matrix_public_gpio
+0x489d mem_config_select_device_button_gpio
+0x489e mem_customer_key_gpio
+0x489f mem_firebutton_gpio
+0x48a0 mem_dpi_another_button_gpio
+0x48a1 mem_mouse_logo_led_gpio
+0x48a2 mem_mouse_1io2led_multi_24gled
+0x48a3 mem_mouse_1io2led_multi_bt1led
+0x48a4 mem_mouse_1io2led_multi_bt2led
+0x48a5 mem_mouse_low_voltage_alarm_gpio
+0x48a6 mem_mouse_dpi_gpio
+0x48a7 mem_mouse_param_config_end
+0x48a7 mem_device_temp_gpio
+0x48a8 mem_mouse_multi_led_blink_enable
+0x48a9 mem_mouse_multi_led_type
+0x48aa mem_mouse_multi_led_state
+0x48ab mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x48ac mem_mouse_le_reconn_blink_limit
+0x48ad mem_mouse_multi_led_powon_timer_init//power on time
+0x48ae mem_mouse_multi_led_powon_timer
+0x48af mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x48b0 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x48b1 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x48b2 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x48b3 mem_mouse_multi_led_blink_timer
+0x48b4 mem_mouse_low_led_blink_timer//low blink time
+0x48b5 mem_mouse_low_led_blink_half_timer
+0x48b6 mem_mouse_multi_24gled_blink_count_init//24g count
+0x48b7 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x48b8 mem_mouse_multi_led_blink_count
+0x48b9 mem_mouse_multi_lowled_blink_count_init//low count
+0x48ba mem_mouse_multi_low_led_blink_count
+0x48bb mem_mouse_logo_led_on_time_init
+0x48bd mem_mouse_dpi_led_delay_count
+0x48be mem_mouse_dpi_led_delay_count_init
+0x48bf mem_mouse_24g_fast_hop_count_2ms
+0x48c0 mem_mouse_24g_short_sleep_set_4ms
+0x48c3 mem_mouse_24g_long_sleep_set_4ms
+0x48c6 mem_mouse_24g_short_sleep_set_8ms
+0x48c9 mem_mouse_24g_long_sleep_set_8ms
+0x48cc mem_mouse_24g_tsniff
+0x48d0 mem_mouse_24g_tsniff_2ms
+0x48d4 mem_mouse_24g_tsniff_4ms
+0x48d8 mem_mouse_24g_tsniff_8ms
+0x48dc mem_mouse_24g_short_sleep_set_init
+0x48df mem_mouse_24g_tx_count
+0x48e0 mem_mouse_24g_tx_time_last
+0x48e6 mem_mouse_24g_tx_time_last_delt
+0x48ea mem_mouse_24g_tx_time_sum
+0x48ef mem_mouse_24g_tx_time_sum_count
+0x48f0 mem_mouse_24g_tx_time_offset
+0x48f1 mem_mouse_24g_sleep_miss
+0x48f2 mem_mouse_24g_sleep_time_temp
+0x48f6 mem_mouse_24g_sleep_miss_temp
+0x48fa mem_mouse_sleep_deal_type
+0x48fb mem_sensor_id1
+0x48fc mem_sensor_id2
+0x48fd mem_mouse_move_flag
+0x48fe mem_mouse_asm_flag
+0x48ff mem_mouse_x_pre
+0x4901 mem_mouse_y_pre
+0x4903 mem_mouse_data_xtemp
+0x4904 mem_mouse_data_ytemp
+0x4905 mem_mouse_dpi_seting
+0x4905 mem_320x_dpi_0
+0x4906 mem_320x_dpi_1
+0x4907 mem_320x_dpi_2
+0x4908 mem_320x_dpi_3
+0x4909 mem_3212_dpi_0
+0x490a mem_3212_dpi_1
+0x490b mem_3212_dpi_2
+0x490c mem_3212_dpi_3
+0x490d mem_ka8g2_dpi_0
+0x490e mem_ka8g2_dpi_1
+0x490f mem_ka8g2_dpi_2
+0x4910 mem_ka8g2_dpi_3
+0x4911 mem_sensor_s201_dpi
+0x4911 mem_sensor_s201_dpi_0
+0x4912 mem_sensor_s201_dpi_1
+0x4913 mem_sensor_s201_dpi_2
+0x4914 mem_sensor_s201_dpi_3
+0x4915 mem_sensor_s201_dpi_4
+0x4916 mem_mouse_cpi_count
+0x4917 mem_mouse_dpi_button_state
+0x4918 mem_mouse_dpi_long_press_flag
+0x4919 mem_sensor_3212_init
+0x4923 mem_sensor_3204_init
+0x492d mem_sensor_3205_init
+0x4937 mem_sensor_32xx_init
+0x4951 mem_sensor_32xx_init_1
+0x4973 mem_sensor_8650_init
+0x4991 mem_sensor_ka8ul_init
+0x49af mem_sensor_8009_init
+0x49bf mem_sensor_ka8g2_init
+0x49d1 mem_sensor_p6520_init
+0x49dd mem_sensor_ka5857_init
+0x49e9 mem_sensor_poweron_init
+0x49f1 mem_sensor_ka8g2_poweron_init
+0x49f9 mem_mouse_clear_sensor_data_flag
+0x49fa mem_config_sensor_type
+0x49fb mem_config_sensor_angle
+0x49fc mem_bluetooth_125hz_cnt
+0x49fd mem_customer_key_press_init
+0x4a07 mem_mouse_lkey_press_status
+0x4a08 mem_mouse_rkey_press_status
+0x4a09 mem_mouse_mkey_press_status
+0x4a0a mem_mouse_bkkey_press_status
+0x4a0b mem_mouse_fwkey_press_status
+0x4a0c mem_mouse_dpikey_press_status
+0x4a0d mem_mouse_pbkey_press_status
+0x4a0e mem_mouse_customerkey_press_status
+0x4a0f mem_mouse_key_temp
+0x4a10 mem_mouse_key_status
+0x4a11 mem_mouse_matrix_key_cow_count
+0x4a12 mem_mouse_matrix_key_row_count
+0x4a13 mem_mouse_ghost_flag
+0x4a14 mem_fire_key_status
+0x4a15 mem_fire_key_delay
+0x4a19 mem_fire_key_flag
+0x4a1a mem_dpi_another_press_status
+0x4a1b mem_dpi_another_button_state
+0x4a1c mem_dpi_another_button_down_enable
+0x4a1d mem_mouse_key_temp_patch
+0x4a1e mem_le_name_patch_len
+0x4a1f mem_le_name_patch
+0x4a32 mem_device_flag_last
+0x4a33 mem_device_flag_value
+0x4a34 mem_mouse_le_addr1_last
+0x4a3a mem_mouse_le_addr1_temp
+0x4a40 mem_mouse_le_locall_addr1_last
+0x4a46 mem_mouse_le_locall_addr1_temp
+0x4a4c mem_mouse_le_addr2_last
+0x4a52 mem_mouse_le_addr2_temp
+0x4a58 mem_mouse_le_locall_addr2_last
+0x4a5e mem_mouse_le_locall_addr2_temp
+0x4a64 mem_mouse_dpi_last
+0x4a65 mem_mouse_dpi_temp
+0x4a66 mem_mouse_otp_dpi_value
+0x4a67 mem_mouse_24g_addr_last
+0x4a6b mem_mouse_24g_addr_temp
+0x4a6f mem_random_addr_increase_count_last
+0x4a71 mem_random_addr_increase_count_temp
+0x4a73 mem_otp_offset_le_addr2
+0x4a75 mem_otp_offset_le_addr2_end
+0x4a77 mem_otp_offset_le_locall_addr2
+0x4a79 mem_otp_offset_le_locall_addr2_end
+0x4a7b mem_otp_offset_dpi
+0x4a7d mem_otp_offset_dpi_end
+0x4a7f mem_otp_offset_device_flag
+0x4a81 mem_otp_offset_device_flag_end
+0x4a83 mem_otp_offset_24g_addr
+0x4a85 mem_otp_offset_24g_addr_end
+0x4a87 mem_otp_offset_le_addr1
+0x4a89 mem_otp_offset_le_addr1_end
+0x4a8b mem_otp_offset_le_locall_addr1
+0x4a8d mem_otp_offset_le_locall_addr1_end
+0x4a8f mem_otp_offset_le_addr_increase_count
+0x4a91 mem_otp_offset_le_addr_increase_count_end
+0x4a93 mem_otp_offset_app_initflag
+0x4a95 mem_usb_tx_interval_retention
+0x4a96 mem_usb_vid_pid_retention
+0x4a9f mem_usb_device_name_retention
+0x4abd mem_mouse_commbination_key_bt
+0x4abe mem_mouse_commbination_key_24g
+0x4abf mem_mouse_commbination_key_dpi
+0x4ac0 mem_mouse_commbination_key_select_device
+0x4ac1 mem_mouse_commbination_dpi_timer
+0x4ac2 mem_mouse_commbination_select_device_timer
+0x4ac3 mem_mouse_commbination_key_count
+0x4ac4 mem_mouse_pair_flag
+0x4644 mem_remote_lpm_gpio_config_flag
+0x4648 mem_remote_lpm_gpio_config_io_temp
+0x4649 mem_24g_tx_led_map
+0x464a mem_24g_led_count
+0x464b mem_24g_lpm_timer_count
+0x464d mem_24g_lpm_enter_count
+0x464f mem_remote_otp_lot_xy_temp
+0x4655 mem_remote_full_control_remote_lap
+0x4659 mem_remote_car_key_conf0
+0x4659 mem_remote_car_key_conf0_pin
+0x465a mem_remote_car_key_conf1
+0x465a mem_remote_car_key_conf1_pin
+0x465b mem_remote_car_key_conf2
+0x465b mem_remote_car_key_conf2_pin
+0x465c mem_remote_car_key_conf3
+0x465c mem_remote_car_key_conf3_pin
+0x465d mem_remote_car_key_conf4
+0x465d mem_remote_car_key_conf4_pin
+0x465e mem_remote_car_key_conf5
+0x465e mem_remote_car_key_conf5_pin
+0x465f mem_remote_car_key_conf6
+0x465f mem_remote_car_key_conf6_pin
+0x4660 mem_remote_le_24g_recv_ack_flag
+0x4661 mem_key_public_gpio
+0x4662 mem_remote_mult_key
+0x4663 mem_remote_le_24g_ch_count
+0x4665 mem_le_24g_tx_send_flag
+0x4666 mem_remote_le_24g_tx_pair_mode
+0x4667 mem_remote_24g_addr_other
+0x466b mem_remote_24g_tx_payload_temp
+0x4677 mem_remote_24g_rx_payload_temp
+0x4508 mem_hci_uart_tx_gpio
+0x4509 mem_hci_uart_rx_gpio
+0x450a mem_hci_uart_rts_gpio
+0x450b mem_hci_uart_cts_gpio
+0x450c mem_hci_pwm_12mhz_gpio
+0x4508 mem_soft_version_num
+0x450a mem_module_wake_up_gpio
+0x450b mem_module_state_gpio
+0x450c mem_module_connect_state_gpio
+0x450d mem_current_packet_length
+0x450f mem_module_state
+0x4510 mem_module_mcu_wake_pin
+0x4511 mem_module_mcu_wake_delay_us
+0x4515 mem_module_le_lpm_mult
+0x4516 mem_module_bluetooth_stauts_by_command
+0x4517 mem_module_uart_rx_buffer
+0x4519 mem_module_uart_rx_buffer_end
+0x451b mem_module_uart_tx_buffer
+0x451d mem_module_uart_tx_buffer_end
+0x451f mem_module_uarta_baud_rate
+0x4521 mem_module_read_vdd_flag
+0x4522 mem_module_read_vdd_count
+0x4523 mem_module_vdd_quotient
+0x4524 mem_module_vdd_remainder
+0x4525 mem_module_ble_data_uart_max_length
+0x4526 mem_module_flag
+0x4528 mem_module_hci_notify_len
+0x4529 mem_module_hci_notify_handle
+0x452b mem_module_hci_nofiy_addr
+0x452d mem_module_hci_notify_type
+0x452e mem_le_conn_flag
+0x452f mem_module_le_att_list
+0x4787 mem_module_le_att_list_end
+0x4787 mem_module_nv_data
+0x4787 mem_module_nv_data0
+0x47a9 mem_module_nv_data1
+0x47cb mem_module_nv_data2
+0x47ed mem_module_nv_data3
+0x480f mem_module_nv_data4
+0x4831 mem_module_nv_data_end
+0x4508 mem_xmalloc_rec_start
+0x4508 mem_rec_le_att_list
+0x49c7 mem_rec_led_style
+0x49c7 mem_rec_led_style_type
+0x49c8 mem_rec_led_style_blink_count
+0x49c9 mem_rec_led_style_gpio
+0x49ca mem_rec_led_style_on_time
+0x49cc mem_rec_led_style_off_time
+0x49ce mem_rec_led_style_on_callback
+0x49d0 mem_rec_led_style_off_callback
+0x49d2 mem_rec_led2_style
+0x49d2 mem_rec_led2_style_type
+0x49d3 mem_rec_led2_style_blink_count
+0x49d4 mem_rec_led2_style_gpio
+0x49d5 mem_rec_led2_style_on_time
+0x49d7 mem_rec_led2_style_off_time
+0x49d9 mem_rec_led2_style_on_callback
+0x49db mem_rec_led2_style_off_callback
+0x49dd mem_rec_le_pair_led_style
+0x49dd mem_rec_le_pair_led_style_type
+0x49de mem_rec_le_pair_led_style_blink_count
+0x49df mem_rec_le_pair_led_style_gpio
+0x49e0 mem_rec_le_pair_led_style_on_time
+0x49e2 mem_rec_le_pair_led_style_off_time
+0x49e4 mem_rec_le_reconn_led_style
+0x49e4 mem_rec_le_reconn_led_style_type
+0x49e5 mem_rec_le_reconn_led_style_blink_count
+0x49e6 mem_rec_le_reconn_led_style_gpio
+0x49e7 mem_rec_le_reconn_led_style_on_time
+0x49e9 mem_rec_le_reconn_led_style_off_time
+0x49eb mem_rec_adc_low_led_style
+0x49eb mem_rec_adc_low_led_style_type
+0x49ec mem_rec_adc_low_led_style_blink_count
+0x49ed mem_rec_adc_low_led_style_gpio
+0x49ee mem_rec_adc_low_led_style_on_time
+0x49f0 mem_rec_adc_low_led_style_off_time
+0x49f2 mem_rec_ui_timer_btclk
+0x49f6 mem_rec_ui_timer_count
+0x49f7 mem_rec_cb_timer
+0x49f9 mem_rec_tscan_timer
+0x49fa mem_rec_tscan_timeout
+0x49fb mem_rec_tscan_row_nums
+0x49fc mem_rec_tscan_col_nums
+0x49fd mem_rec_tscan_col_gpio_ptr
+0x49ff mem_rec_tscan_row_scanned
+0x4a00 mem_rec_tscan_col_scanned
+0x4a01 mem_rec_tscan_record_row
+0x4a02 mem_rec_tscan_record_col
+0x4a03 mem_rec_tscan_row_gpio
+0x4a0d mem_rec_tscan_col_gpio
+0x4a17 mem_rec_tscan_sequence
+0x4a18 mem_rec_tscan_gpio_nums
+0x4a19 mem_rec_tscan_row_scan_loop_count
+0x4a1a mem_rec_key_state
+0x4a1a mem_rec_tscan_gndkey_state
+0x4a1b mem_rec_tscan_key_state
+0x4a1c mem_rec_tscan_record_temp
+0x4a1e mem_rec_tscan_key_need_send_flag
+0x4a1f mem_rec_tscan_current_key_num
+0x4a20 mem_rec_gpio_wakeup_source
+0x4a21 mem_rec_tscan_gndkey_record_temp
+0x4a22 mem_rec_tscan_gndkey_need_send_flag
+0x4a23 mem_rec_tscan_key_nums_list
+0x4a4b mem_rec_tscan_gndkey_nums_list
+0x4a55 mem_rec_tscan_key_num_bit
+0x4a5d mem_rec_tscan_combin_key_num_bit
+0x4a65 mem_rec_tscan_current_gpio_ptr
+0x4a67 mem_rec_tscan_record_now
+0x4a69 mem_rec_combin_key_timeout
+0x4a6a mem_rec_combin_key_timer
+0x4a6b mem_rec_gpio_bit_first
+0x4a6c mem_rec_gpio_bit_second
+0x4a6d mem_rec_gpio_bit_check
+0x4a6e mem_rec_gpio_for_wake_pullup
+0x4a6f mem_rec_keypad_type
+0x4a70 mem_rec_key_keyboard_value_list
+0x4b10 mem_rec_key_consumer_value_list
+0x4b40 mem_rec_key_mouse_value_list
+0x4b80 mem_rec_key_nec_value_list
+0x4bb0 mem_rec_key_press_le
+0x4bb0 mem_rec_key1_press_le
+0x4bb3 mem_rec_key2_press_le
+0x4bb6 mem_rec_key3_press_le
+0x4bb9 mem_rec_key4_press_le
+0x4bbc mem_rec_key5_press_le
+0x4bbf mem_rec_key6_press_le
+0x4bc2 mem_rec_key7_press_le
+0x4bc5 mem_rec_key8_press_le
+0x4bc8 mem_rec_key9_press_le
+0x4bcb mem_rec_key10_press_le
+0x4bce mem_rec_key11_press_le
+0x4bd1 mem_rec_key12_press_le
+0x4bd4 mem_rec_key13_press_le
+0x4bd7 mem_rec_key14_press_le
+0x4bda mem_rec_key15_press_le
+0x4bdd mem_rec_key16_press_le
+0x4be0 mem_rec_key17_press_le
+0x4be3 mem_rec_key18_press_le
+0x4be6 mem_rec_key19_press_le
+0x4be9 mem_rec_key20_press_le
+0x4bec mem_rec_key21_press_le
+0x4bef mem_rec_key_release_le
+0x4bf2 mem_rec_key_map
+0x4c07 mem_rec_gnd_key_offset
+0x4c08 mem_rec_keypad_fun
+0x4c09 mem_rec_le_enable_notify
+0x4c0a mem_rec_le_data_len
+0x4c0b mem_rec_le_connect_state
+0x4c0c mem_rec_report_id1_handle
+0x4c0e mem_rec_report_id2_handle
+0x4c10 mem_rec_report_id3_handle
+0x4c12 mem_rec_report_id4_handle
+0x4c14 mem_rec_queue_each_size
+0x4c15 mem_rec_queue_length
+0x4c16 mem_rec_queue_curr_num
+0x4c17 mem_rec_queue_read_ptr
+0x4c18 mem_rec_queue_write_ptr
+0x4c19 mem_rec_queue_ele
+0x4c39 mem_rec_ad_indexTable1
+0x4c49 mem_rec_ad_stepsizeTable1
+0x4dad mem_rec_ad_state_valpred1
+0x4db1 mem_rec_ad_state_index1
+0x4db5 mem_rec_ad_in_numSamples1
+0x4db6 mem_rec_ad_in_ptr1
+0x4db8 mem_rec_ad_out_ptr1
+0x4dba mem_rec_ad_sign1
+0x4dbb mem_rec_ad_delta1
+0x4dbc mem_rec_ad_step1
+0x4dc0 mem_rec_ad_valpred1
+0x4dc4 mem_rec_ad_index1
+0x4dc8 mem_rec_ad_vpdiff1
+0x4dcc mem_rec_ad_inputbuffer1
+0x4dd0 mem_rec_ad_bufferstep1
+0x4dd1 mem_rec_ad_val1
+0x4dd5 mem_rec_ad_outputbuffer1
+0x4dd9 mem_rec_ad_diff1
+0x4ddd mem_rec_voice_enable
+0x4dde mem_rec_voice_notify
+0x4df2 mem_rec_adc_dma_rptr
+0x4df4 mem_rec_voice_notify_apk_handle
+0x4df6 mem_rec_voice_notify_box_handle
+0x4df8 mem_rec_control_notify_apk_handle
+0x4dfa mem_rec_control_notify_box_handle
+0x4dfc mem_rec_white_list_num
+0x4dfd mem_rec_le_scan_filter_policy
+0x4dfe mem_rec_white_list_flash_write_head
+0x4e02 mem_rec_white_list
+0x4e32 mem_rec_le_req_type
+0x4e33 mem_rec_nec_send_gpio
+0x4e34 mem_rec_nec_receive_gpio
+0x4e35 mem_rec_ota_write_index
+0x4e37 mem_rec_ota_write_length
+0x4e3b mem_rec_ota_write_data_addr
+0x4e3d mem_rec_ota_write_flash_addr
+0x4e40 mem_rec_ota_write_flash_addr_start
+0x4e43 mem_rec_ota_total_sum
+0x4e47 mem_rec_ota_update_flash_mode
+0x4e48 mem_rec_ota_version
+0x4e4a mem_rec_ota_buck_size
+0x4e4c mem_rec_ota_packet_max_len
+0x4e4e mem_rec_ota_work_mode
+0x4e4f mem_rec_ota_notify_handle
+0x4e51 mem_rec_ota_notify_opcode
+0x4e52 mem_rec_ota_notify_result
+0x4e53 mem_rec_ota_notify_data
+0x4e5c mem_rec_ota_le_conn_update_param
+0x4e5c mem_rec_ota_le_interval_min
+0x4e5e mem_rec_ota_le_interval_max
+0x4e60 mem_rec_ota_le_latency
+0x4e62 mem_rec_ota_le_timeout
+0x4e64 mem_rec_ota_reset_timeout
+0x4e65 mem_rec_ota_le_conn_param_update
+0x4e66 mem_rec_ota_enable
+0x4e67 mem_rec_le_packet_size
+0x4e68 mem_rec_ota_flash_base_addr
+0x4e6b mem_rec_ota_flash_offset_addr
+0x4e6e mem_rec_queue_ota_count
+0x4e70 mem_rec_ota_queue_size
+0x4e72 mem_rec_code_a_flash_addr
+0x4e75 mem_rec_code_b_flash_addr
+0x4e78 mem_xmalloc_rec_end
+0x4508 mem_ble_shutter_enable_notify
+0x4509 mem_ble_shutter_reconn_adv_interval
+0x450b mem_ble_shutter_discovery_adv_interval
+0x450d mem_ble_shutter_reconn_timeout
+0x450f mem_ble_shutter_reconn_timer
+0x4511 mem_ble_shutter_reconn_blink_on_time
+0x4513 mem_ble_shutter_reconn_blink_off_time
+0x4515 mem_ble_shutter_discovery_blink_on_time
+0x4517 mem_ble_shutter_discovery_blink_off_time
+0x4519 mem_ble_shutter_interval_min
+0x451b mem_ble_shutter_interval_max
+0x451d mem_ble_shutter_latency
+0x451f mem_ble_shutter_timeout
+0x4521 mem_ble_shutter_interval_min_new
+0x4523 mem_ble_shutter_interval_max_new
+0x4525 mem_ble_shutter_latency_new
+0x4527 mem_ble_shutter_timeout_new
+0x4529 mem_ble_shutter_discovery_timeout
+0x452b mem_ble_shutter_connect_timeout
+0x452d mem_shutter_sleep_timeout
+0x452f mem_shutter_sleep_timer
+0x4531 mem_shutter_hard_soft_switch_case
+0x4532 mem_shutter_soft_switch_button_gpio
+0x4533 mem_shutter_soft_switch_power_state
+0x4534 mem_shutter_soft_switch_poweron_time
+0x4535 mem_shutter_soft_switch_poweroff_time
+0x4536 mem_shutter_soft_switch_poweron_callback_function
+0x4538 mem_shutter_soft_switch_poweroff_callback_function
+0x453a mem_shutter_keyscan
+0x453a mem_shutter_key_num
+0x453b mem_cb_shutter_keycan
+0x453d mem_shutter_key_conf0
+0x453e mem_shutter_key_conf1
+0x453f mem_key0_press
+0x4544 mem_key1_press
+0x4549 mem_key2_press
+0x454e mem_key0_release
+0x4553 mem_key1_release
+0x4558 mem_key2_release
+0x455d mem_ble_data_buffer1
+0x4562 mem_ble_data_buffer2
+0x4567 mem_ble_data_buffer3
+0x456c mem_ble_data_buffer4
+0x4571 mem_ble_data_buffer5
+0x4576 mem_ble_data_buffer6
+0x457b mem_ble_data_buffer7
+0x4580 mem_ble_data_buffer8
+0x4585 mem_ble_data_buffer9_58
+0x45b7 mem_queue_each_size
+0x45b8 mem_queue_length
+0x45b9 mem_queue_curr_num
+0x45ba mem_queue_read_ptr
+0x45bb mem_queue_write_ptr
+0x45bc mem_queue_ele
+0x45dc mem_shutter_nv_data
+0x4686 mem_shutter_led_struct_app_led
+0x4686 mem_shutter_led_struct_app_led_type
+0x4687 mem_shutter_led_struct_app_led_blink_count
+0x4688 mem_shutter_led_struct_app_led_gpio
+0x4689 mem_shutter_led_struct_app_led_on_time
+0x468b mem_shutter_led_struct_app_led_off_time
+0x468d mem_shutter_led_struct_app_led_on_callback
+0x468f mem_shutter_led_struct_app_led_off_callback
+0x4691 mem_shutter_power_off_led_style
+0x4691 mem_shutter_power_off_led_style_type
+0x4692 mem_shutter_power_off_led_style_blink_count
+0x4693 mem_shutter_power_off_led_style_gpio
+0x4694 mem_shutter_power_off_led_style_on_time
+0x4696 mem_shutter_power_off_led_style_off_time
+0x4698 mem_shutter_power_off_led_style_on_callback
+0x469a mem_shutter_power_off_led_style_off_callback
+0x469c mem_shutter_soft_swtich_botton_down
+0x469d mem_shutter_soft_swtich_led_struct_temp
+0x46a8 mem_shutter_power_off_timeout
+0x46a9 mem_shutter_power_off_timer
+0x46aa mem_shutter_key_conf0_temp
+0x46ac mem_shutter_led_struct_app_led_gpio_temp
+0x46ad mem_shutter_hard_soft_switch_case_temp
+0x46ae mem_shutter_soft_switch_button_gpio_temp
+0x46af mem_shutter_soft_switch_first_power_on
+0x46b0 mem_shutter_dy_conf
+0x46b1 mem_shutter_1s_timer
+0x46b2 mem_shutter_timer_625us
+0x46b4 mem_rf_init_data_new
+0x46bf mem_key_value_xmem
+0x46c1 mem_shutter_le_hid_map
+0x47a7 mem_shutter_le_uuid_sup
+0x4943 mem_shutter_le_map_len_android
+0x4945 mem_shutter_le_map_len_ios
+0x4947 mem_dy_le_search_service_uuid
+0x4957 mem_iphone_flag
+0x4958 mem_send_data_delay
+0x4959 mem_key_send_clk
+0x495d mem_shutter_key_state0
+0x4967 mem_shutter_key_state1
+0x4971 mem_shutter_key_state2
+0x497b mem_shutter_key_state3
+0x4985 mem_shutter_key_state4
+0x498f mem_shutter_key_state5
+0x4999 mem_shutter_key_state6
+0x49a3 mem_shutter_key_state7
+0x49ad mem_shutter_key_state8
+0x49b7 mem_dy_key0_press
+0x49c1 mem_dy_key1_press
+0x49cb mem_dy_key2_press
+0x49d5 mem_dy_key3_press
+0x49df mem_dy_key4_press
+0x49e9 mem_dy_key5_press
+0x49f3 mem_dy_key6_press
+0x49fd mem_dy_key7_press
+0x4a07 mem_dy_key8_press
+0x4a11 mem_key0_release_new
+0x4a20 mem_key1_release_new
+0x4a2f mem_key2_release_new
+0x4a3e mem_key3_release_new
+0x4a4d mem_key4_release_new
+0x4a5c mem_key5_release_new
+0x4a6b mem_key6_release_new
+0x4a7a mem_key7_release_new
+0x4a89 mem_key8_release_new
+0x4a98 mem_key0_long_press
+0x4a9b mem_key1_long_press
+0x4a9e mem_key2_long_press
+0x4aa1 mem_key3_long_press
+0x4aa4 mem_key4_long_press
+0x4aa7 mem_key5_long_press
+0x4aaa mem_key6_long_press
+0x4aad mem_key7_long_press
+0x4ab0 mem_key8_long_press
+0x4ab3 mem_key0_long_release
+0x4ab6 mem_key1_long_release
+0x4ab9 mem_key2_long_release
+0x4abc mem_key3_long_release
+0x4abf mem_key4_long_release
+0x4ac2 mem_key5_long_release
+0x4ac5 mem_key6_long_release
+0x4ac8 mem_key7_long_release
+0x4acb mem_key8_long_release
+0x4ace mem_combine_key0
+0x4ad0 mem_combine_key1
+0x4ad2 mem_combine_key2
+0x4ad4 mem_combine_key3
+0x4ad6 mem_combine_key4
+0x4ad8 mem_combine_key5
+0x4ada mem_combine_key_state0
+0x4adc mem_combine_key0_press
+0x4ae6 mem_combine_key1_press
+0x4af0 mem_combine_key2_press
+0x4afa mem_combine_key3_press
+0x4b04 mem_combine_key4_press
+0x4b0e mem_combine_key5_press
+0x4b18 mem_combine_key_release
+0x4b22 mem_shutter_move_data
+0x4b26 mem_key0_press_i
+0x4b30 mem_key1_press_i
+0x4b3a mem_key2_press_i
+0x4b44 mem_key3_press_i
+0x4b4e mem_key4_press_i
+0x4b58 mem_key5_press_i
+0x4b62 mem_key6_press_i
+0x4b6c mem_key7_press_i
+0x4b76 mem_key0_release_new_i
+0x4b85 mem_key1_release_new_i
+0x4b94 mem_key2_release_new_i
+0x4ba3 mem_key3_release_new_i
+0x4bb2 mem_key4_release_new_i
+0x4bc1 mem_key5_release_new_i
+0x4bd0 mem_key6_release_new_i
+0x4bdf mem_key7_release_new_i
+0x4bee mem_key8_release_new_i
+0x4bfd mem_key0_long_press_i
+0x4c00 mem_key1_long_press_i
+0x4c03 mem_key2_long_press_i
+0x4c06 mem_key3_long_press_i
+0x4c09 mem_key4_long_press_i
+0x4c0c mem_key5_long_press_i
+0x4c0f mem_key6_long_press_i
+0x4c12 mem_key7_long_press_i
+0x4c15 mem_key8_long_press_i
+0x4c18 mem_key0_long_release_i
+0x4c1b mem_key1_long_release_i
+0x4c1e mem_key2_long_release_i
+0x4c21 mem_key3_long_release_i
+0x4c24 mem_key4_long_release_i
+0x4c27 mem_key5_long_release_i
+0x4c2a mem_key6_long_release_i
+0x4c2d mem_key7_long_release_i
+0x4c30 mem_key8_long_release_i
+0x4c33 mem_key3_release_new_t
+0x4c3d mem_key3_release_new_i_t
+0x4c47 mem_key3_press_count
+0x4c48 mem_shutter_like_timeout
+0x4c49 mem_shutter_key_pressed
+0x4c4a mem_shutter_combine_key_release
+0x4c4b mem_shutter_mousekey_value_list
+0x4e71 mem_shutter_back_count
+0x4e72 mem_shutter_le_conned
+0x4e73 mem_move_config
+0x4e73 mem_shutter_iphone_beyond_x_count
+0x4e74 mem_shutter_iphone_beyond_y_count
+0x4e75 mem_shutter_move_data_x
+0x4e77 mem_shutter_move_data_y
+0x4e79 mem_last_shutter_le_iphone_flag
+0x4e7a mem_move_config_end
+0x4e7a mem_shutter_back_count_cache
+0x4e7b mem_shutter_iphone_beyond_x_cache
+0x4e7c mem_shutter_iphone_beyond_y_cache
+0x4e7d mem_shutter_iphone_move_mid
+0x4e87 mem_shutter_long_key_released_flag
+0x4e88 mem_shutter_move_mid_timer
+0x4e89 mem_shutter_pairing_success
+0x4e8a mem_combine_key_release_value
+0x4e8c mem_last_press_key_value
+0x4e8d mem_shutter_first_move
+0x4e8e mem_move_mode_set
+0x4e8f mem_move_mode_key_index
+0x4e90 mem_move_mode_trigger_enable
+0x4e91 mem_shutter_android_move_mid
+0x4e96 mem_shutter_iphone_up_mid
+0x4ea0 mem_shutter_iphone_like_mid
+0x4eaa mem_shutter_key_num_conf
+0x4eab mem_shutter_dy_key_conf
+0x4eb4 mem_le_dy_adv_data
+0x4ebf mem_le_dy_scan_data
+0x4ecb mem_ble_shutter_dy_interval_min_android
+0x4ed3 mem_ble_shutter_dy_interval_min_ios
+0x4edb mem_shutter_ble_discovery_time_conf
+0x4ee3 mem_queue_dy_each_size
+0x4ee5 mem_shutter_led_on_light_dark_led_conf
+0x4eec mem_shutter_led_off_light_dark_led_conf
+0x4ef3 mem_shutter_reconn_blink_on_time_conf
+0x4ef7 mem_shutter_discovery_blink_on_time_conf
+0x4efb mem_shutter_efuse_start_offset
+0x4efd mem_shutter_efuse_end_offset
+0x4eff mem_initial_move_conf
+0x4eff mem_android_initial_move_x
+0x4f01 mem_android_initial_move_y
+0x4f03 mem_iphone_initial_move_x
+0x4f05 mem_iphone_initial_move_y
+0x4f07 mem_otp_move_config
+0x4f07 mem_otp_shutter_move_data_x
+0x4f09 mem_otp_shutter_move_data_y
+0x4f0b mem_otp_last_shutter_le_iphone_flag
+0x4f0c mem_otp_move_config_end
+0x4f0c mem_otp_write_offset_addr
+0x4f0e mem_otp_read_offset_addr
+0x4f10 mem_otp_read_ios_android_addr
+0x4f12 mem_shutter_le_pairing_handle
+0x4f14 mem_shutter_temp_count
+0x4f16 mem_shutter_first_read_flag
+0x4f17 mem_shutter_valid_data_flag
+0x4f18 mem_shutter_volume_timer
+0x4f19 mem_shutter_link_timer
+0x4f1a mem_shutter_link_data
+0x4f22 mem_shutter_link_data_i
+0x4f2a mem_shutter_link_loop_flag
+0x4f2b mem_shutter_dy_le_enc_timer
+0x4f2c mem_shutter_end
+
Index: GK308_keyboard_only_24g/output/otp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/otp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/otp.dat	(working copy)
@@ -0,0 +1,4624 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+e0
+0b
+ca
+22
+e1
+72
+1f
+77
+25
+b7
+f3
+b4
+40
+cf
+3b
+d0
+68
+1e
+99
+99
+56
+4b
+f0
+95
+4f
+4f
+6d
+bb
+be
+cf
+b7
+45
+0a
+82
+eb
+6a
+35
+cf
+b7
+e8
+8c
+4c
+3b
+bc
+da
+7a
+65
+94
+ae
+ed
+46
+e4
+60
+7b
+14
+de
+ab
+a7
+07
+38
+03
+c8
+28
+32
+08
+95
+8a
+51
+c8
+53
+8e
+70
+9d
+05
+ba
+97
+15
+73
+c4
+ed
+50
+12
+62
+22
+43
+9f
+e9
+32
+e6
+9b
+12
+fe
+5e
+c9
+b1
+0c
+e3
+0e
+a5
+76
+8c
+a7
+4f
+19
+a5
+1d
+88
+20
+17
+42
+eb
+a2
+8f
+66
+87
+14
+3a
+02
+e1
+e7
+e2
+af
+8a
+8d
+cd
+93
+e1
+79
+d5
+b3
+a2
+27
+f7
+6e
+d5
+d8
+02
+32
+dd
+1b
+4f
+a9
+07
+67
+2e
+87
+f9
+5d
+11
+91
+65
+3c
+e6
+ed
+c3
+22
+ea
+c7
+0c
+8c
+95
+c6
+6c
+9f
+55
+4c
+10
+a5
+08
+89
+f1
+ad
+4b
+ba
+c0
+68
+5b
+7d
+c1
+d0
+d6
+b4
+c6
+37
+be
+a1
+50
+db
+93
+f4
+da
+a3
+19
+98
+3a
+8f
+96
+a6
+07
+a2
+5c
+bb
+d0
+e8
+3d
+de
+0f
+ac
+44
+13
+63
+b6
+c0
+48
+05
+4c
+fd
+12
+a8
+ce
+fe
+2b
+98
+e3
+12
+df
+49
+20
+51
+60
+2d
+40
+81
+97
+23
+71
+33
+85
+dc
+3c
+4c
+4a
+62
+62
+e5
+db
+2c
+d4
+4e
+f6
+34
+e1
+3c
+9a
+60
+8b
+98
+45
+7f
+6f
+42
+fd
+b6
+4b
+88
+00
+5f
+24
+d4
+8a
+1a
+ea
+0d
+df
+e4
+67
+ea
+f3
+7a
+50
+19
+6f
+5f
+f9
+bd
+da
+cc
+27
+f9
+b5
+40
+58
+aa
+d9
+aa
+56
+b2
+6c
+87
+87
+69
+50
+70
+8e
+de
+81
+6e
+a3
+e4
+46
+9b
+ef
+7d
+af
+43
+6a
+cb
+33
+03
+20
+ae
+c7
+47
+b5
+d3
+38
+0b
+f1
+3f
+6e
+fb
+94
+2d
+b1
+76
+ca
+72
+3e
+52
+c7
+df
+2c
+b2
+fa
+3a
+7c
+42
+84
+76
+cd
+54
+a8
+fd
+a6
+7b
+89
+67
+0d
+07
+c2
+40
+b5
+4e
+4d
+be
+00
+3f
+c5
+67
+a2
+f7
+05
+39
+67
+4e
+b2
+29
+0b
+04
+a0
+2c
+c4
+fa
+ec
+29
+fc
+b8
+95
+51
+ee
+48
+8c
+22
+5b
+55
+0f
+ad
+2d
+1e
+72
+a7
+8b
+d4
+9a
+51
+75
+9f
+47
+e6
+da
+30
+f2
+a1
+ea
+04
+30
+3c
+75
+ee
+18
+7b
+61
+56
+2b
+80
+48
+90
+ec
+04
+91
+15
+47
+a1
+28
+e4
+f0
+22
+19
+b8
+6f
+81
+c5
+b1
+49
+ce
+10
+17
+06
+60
+af
+af
+75
+e7
+50
+d6
+6e
+64
+19
+d5
+20
+14
+5e
+db
+ec
+42
+73
+1b
+90
+8d
+03
+f8
+2d
+be
+7d
+34
+4d
+f6
+fc
+65
+94
+b7
+2b
+0f
+f4
+4d
+5b
+f2
+7c
+c5
+8e
+1c
+28
+34
+84
+de
+32
+f6
+2f
+c1
+54
+2d
+f8
+c6
+22
+5c
+78
+74
+0e
+42
+3a
+ae
+15
+8a
+92
+f2
+c7
+6f
+30
+63
+de
+8b
+e6
+76
+8a
+7d
+2d
+44
+93
+0c
+c8
+e2
+30
+f6
+9f
+3a
+86
+04
+89
+84
+31
+69
+43
+a6
+20
+8b
+ef
+36
+34
+80
+3a
+93
+29
+bd
+2d
+2c
+c7
+b4
+a5
+8e
+a3
+f4
+97
+1d
+d0
+19
+35
+68
+4e
+35
+5b
+af
+0a
+d9
+b4
+82
+a5
+1f
+88
+1f
+6b
+e3
+5f
+db
+3d
+63
+a0
+94
+0d
+c9
+89
+d1
+23
+b1
+aa
+69
+e5
+99
+42
+a3
+7f
+95
+63
+f6
+42
+df
+57
+46
+b0
+0c
+cd
+ff
+74
+9a
+1e
+fe
+cb
+9b
+6d
+c1
+f7
+4d
+d1
+0d
+73
+a5
+c7
+ca
+10
+aa
+00
+0b
+e5
+8d
+24
+07
+d6
+1c
+85
+4f
+c7
+f5
+94
+ba
+f5
+e5
+6d
+29
+39
+bd
+ad
+4b
+e9
+4f
+df
+15
+59
+78
+ab
+54
+36
+2e
+a2
+3c
+2c
+8a
+ab
+c1
+45
+70
+7c
+ad
+46
+3f
+de
+d1
+d0
+5d
+06
+e2
+2b
+21
+95
+5b
+a7
+47
+a6
+09
+a5
+5b
+87
+0d
+0c
+b6
+37
+a4
+2b
+d9
+5f
+58
+a2
+47
+c8
+67
+5b
+f9
+20
+aa
+ef
+0e
+af
+9d
+e5
+6f
+e3
+2b
+4d
+97
+75
+e3
+26
+09
+b7
+b3
+6e
+03
+7b
+24
+91
+f7
+2e
+87
+59
+80
+8c
+f1
+45
+01
+32
+a5
+ea
+10
+07
+aa
+7b
+12
+f8
+5e
+d6
+36
+3e
+57
+9a
+ba
+ed
+34
+a0
+49
+22
+79
+f2
+6c
+b7
+f3
+48
+e7
+33
+ef
+73
+16
+b4
+aa
+cc
+64
+dc
+eb
+6d
+49
+07
+dc
+5d
+1f
+e2
+f1
+0e
+be
+8e
+99
+8e
+00
+12
+5a
+12
+0e
+f4
+94
+e8
+31
+39
+83
+ad
+ac
+72
+82
+5f
+69
+f4
+16
+c0
+c1
+1a
+97
+58
+92
+4b
+55
+1c
+ec
+30
+ea
+b2
+d5
+ed
+a8
+17
+0d
+fd
+48
+16
+55
+6a
+54
+45
+dc
+f8
+a3
+ae
+58
+35
+c7
+38
+04
+6a
+b5
+06
+2c
+e3
+2c
+82
+3f
+1b
+6b
+df
+5a
+cd
+c3
+a6
+ef
+71
+3f
+98
+9a
+66
+92
+c4
+08
+d3
+ac
+97
+b1
+0f
+fd
+60
+08
+c2
+49
+02
+d0
+ca
+4b
+d7
+e9
+c5
+a0
+8a
+f7
+28
+aa
+3b
+c9
+cc
+db
+07
+9c
+f7
+ab
+32
+f1
+2e
+44
+87
+a3
+3d
+65
+72
+a4
+97
+ae
+80
+6a
+a2
+c0
+62
+8f
+b6
+e1
+3a
+4b
+8b
+27
+8b
+6d
+6d
+ea
+3d
+52
+e0
+ea
+c7
+b9
+b6
+ed
+d8
+4f
+d8
+ff
+7b
+53
+2d
+de
+01
+88
+bb
+58
+d6
+1c
+d8
+cf
+07
+13
+e1
+ad
+d6
+54
+bb
+aa
+33
+33
+69
+50
+c1
+64
+63
+0d
+66
+c4
+cd
+e9
+e2
+9e
+6c
+5d
+f1
+04
+49
+f2
+c7
+bc
+7f
+23
+ab
+25
+2a
+3c
+d3
+34
+cd
+bb
+92
+e1
+05
+0e
+aa
+21
+55
+cb
+b1
+0d
+da
+66
+ca
+8e
+cd
+9b
+be
+33
+2c
+2c
+11
+11
+c0
+60
+ec
+1e
+2f
+02
+46
+7f
+e8
+a3
+d1
+25
+b7
+c2
+5c
+b9
+e7
+2b
+3e
+87
+61
+31
+b2
+80
+e5
+e3
+9f
+b3
+e6
+d8
+2f
+37
+74
+39
+95
+33
+0c
+d4
+38
+81
+f9
+59
+4c
+02
+ce
+ad
+3e
+02
+c3
+35
+1d
+a4
+71
+14
+a2
+d7
+38
+8b
+cd
+fe
+2e
+42
+cc
+30
+41
+b7
+76
+b9
+6f
+29
+b8
+d7
+18
+f9
+c5
+71
+a6
+b2
+31
+d4
+4b
+a4
+e3
+63
+27
+e9
+93
+16
+99
+76
+8e
+d7
+5a
+04
+78
+3e
+ab
+79
+86
+b8
+c2
+2f
+94
+1d
+6d
+de
+4f
+5f
+2e
+9e
+16
+7a
+58
+ad
+68
+14
+bf
+2a
+9c
+e8
+39
+fd
+47
+43
+72
+8a
+1a
+4d
+35
+0f
+ce
+aa
+af
+2d
+56
+b9
+e7
+1b
+f1
+2a
+80
+87
+48
+08
+02
+26
+0c
+1a
+d8
+7b
+ae
+1d
+78
+84
+29
+83
+20
+08
+3e
+eb
+4e
+d5
+2a
+37
+aa
+22
+e1
+93
+da
+af
+0a
+7b
+70
+ac
+d0
+f2
+01
+aa
+fb
+19
+97
+b4
+f2
+5f
+7f
+26
+93
+6f
+2b
+00
+b5
+1f
+33
+38
+a1
+de
+97
+a6
+fb
+39
+7c
+9a
+be
+d3
+55
+04
+d1
+8f
+72
+94
+b8
+6d
+e8
+9d
+80
+20
+55
+66
+86
+d5
+cc
+15
+dc
+be
+5d
+8d
+ec
+83
+c7
+1b
+5e
+a3
+bb
+08
+05
+b2
+dc
+30
+a2
+c1
+d0
+be
+e5
+8f
+9a
+4e
+0f
+3e
+bd
+7f
+2b
+82
+87
+c2
+cd
+ad
+f3
+a0
+61
+1f
+17
+b4
+cd
+0d
+2b
+0c
+1f
+ec
+03
+96
+5d
+aa
+61
+88
+8c
+85
+91
+cb
+44
+e5
+0c
+8e
+ea
+df
+91
+9b
+73
+c1
+48
+e5
+77
+01
+51
+3c
+1a
+80
+50
+bb
+32
+15
+d0
+ef
+81
+77
+a8
+c0
+6b
+85
+5a
+a4
+41
+bb
+c7
+39
+3c
+37
+91
+d9
+11
+3e
+94
+f7
+af
+31
+53
+01
+b0
+a2
+73
+49
+61
+55
+e4
+79
+1f
+d5
+d1
+bb
+db
+7a
+51
+6f
+31
+6d
+45
+a3
+97
+fc
+e5
+01
+26
+13
+04
+c5
+51
+ba
+60
+2f
+b2
+a8
+14
+f8
+25
+38
+9b
+d3
+85
+4d
+20
+36
+12
+9d
+c8
+e2
+29
+71
+4c
+f5
+61
+74
+9f
+c7
+15
+ee
+67
+b5
+0d
+bd
+f9
+f0
+73
+41
+fa
+36
+ee
+2c
+a9
+03
+ca
+bd
+51
+c5
+90
+cc
+6e
+b4
+c0
+d6
+fd
+a6
+d4
+40
+8d
+89
+01
+5c
+0c
+41
+9a
+8a
+5c
+ae
+82
+a7
+72
+86
+f9
+b1
+96
+97
+c7
+ea
+b0
+79
+39
+33
+5b
+28
+68
+7b
+45
+7f
+b2
+d7
+0e
+7b
+55
+f7
+40
+32
+ee
+8c
+82
+c1
+5f
+52
+70
+33
+36
+86
+b7
+34
+c4
+ce
+dd
+7f
+f8
+13
+b8
+62
+66
+d9
+3c
+7e
+47
+70
+0a
+b2
+00
+f4
+7c
+f8
+ba
+00
+25
+64
+24
+6f
+e4
+ef
+e9
+a5
+a3
+dc
+49
+51
+d0
+39
+e0
+bc
+4c
+1d
+4f
+dd
+03
+9e
+e7
+b8
+3b
+e6
+b1
+e8
+82
+50
+47
+db
+50
+a2
+74
+56
+86
+8b
+d3
+67
+fc
+7a
+2a
+8a
+2b
+10
+1f
+2f
+1e
+f3
+56
+40
+ad
+72
+47
+ad
+5f
+be
+8d
+a0
+18
+ba
+76
+86
+bb
+e9
+b8
+2c
+94
+8a
+78
+e9
+bd
+4f
+d3
+20
+00
+db
+ce
+4f
+79
+fa
+1d
+65
+7e
+2e
+08
+c4
+b2
+7e
+3b
+7e
+92
+89
+0d
+78
+6d
+77
+c8
+a2
+84
+03
+22
+29
+f2
+45
+f2
+4d
+2b
+48
+fe
+43
+e4
+cb
+37
+01
+b1
+8b
+54
+ca
+75
+80
+bf
+b9
+a0
+59
+af
+5a
+55
+e8
+d6
+51
+6b
+85
+2c
+28
+e6
+c9
+4c
+d2
+98
+e4
+fd
+43
+14
+c3
+c9
+f5
+6e
+44
+bd
+08
+b2
+b2
+34
+fb
+3a
+3c
+2b
+f6
+4a
+f1
+e6
+ac
+d8
+32
+c8
+bf
+31
+2e
+ea
+bf
+15
+92
+9c
+5b
+99
+bb
+d2
+c2
+f2
+59
+bd
+c9
+93
+b7
+bc
+71
+0c
+84
+68
+9f
+e8
+41
+f4
+a0
+ca
+8d
+8c
+76
+e5
+60
+06
+08
+79
+0e
+aa
+28
+34
+d6
+82
+1a
+43
+32
+d1
+b5
+08
+24
+77
+1d
+73
+76
+fd
+7c
+63
+3f
+ec
+4d
+b5
+5a
+ee
+a4
+5b
+c2
+aa
+4c
+cc
+1f
+e7
+d1
+e8
+55
+b1
+4e
+18
+e9
+ca
+0a
+25
+a1
+aa
+7b
+01
+68
+2a
+8a
+9d
+47
+71
+76
+41
+0c
+c5
+74
+d2
+97
+d9
+2f
+3e
+a7
+d3
+71
+96
+05
+a9
+ca
+b1
+27
+66
+f2
+31
+83
+97
+21
+48
+48
+46
+e0
+b0
+6e
+7e
+9f
+86
+f2
+40
+60
+31
+a5
+aa
+11
+1a
+6b
+b4
+b7
+cc
+ee
+2b
+f7
+63
+29
+99
+9b
+60
+8f
+17
+4f
+e0
+67
+39
+b0
+45
+a9
+fa
+58
+e2
+03
+ec
+4e
+78
+c4
+c1
+e1
+d4
+bf
+89
+15
+85
+58
+7a
+d2
+f4
+28
+4b
+76
+a5
+a3
+db
+45
+cf
+3d
+7c
+1a
+1b
+ae
+f6
+0e
+29
+30
+23
+2d
+34
+99
+39
+34
+61
+3f
+1b
+91
+65
+ba
+35
+90
+86
+cf
+dd
+73
+b5
+e5
+40
+25
+36
+b1
+bf
+be
+10
+52
+b5
+28
+61
+96
+b7
+47
+e4
+46
+27
+20
+ea
+9f
+00
+00
+f6
+6b
+e9
+40
+a3
+be
+f9
+05
+b2
+3f
+66
+b3
+88
+d7
+41
+bf
+c4
+0a
+4d
+c3
+2f
+27
+3c
+b6
+37
+bf
+03
+af
+e6
+d2
+ba
+02
+a6
+7b
+24
+40
+7a
+00
+ca
+fc
+5d
+bc
+9e
+f0
+a4
+59
+99
+66
+eb
+e1
+13
+e4
+41
+75
+fa
+22
+f8
+e8
+c2
+1e
+9d
+c8
+07
+6b
+b8
+75
+38
+3e
+19
+67
+0c
+3f
+fc
+ca
+9e
+5a
+bf
+b6
+ae
+ae
+04
+cb
+e2
+e3
+97
+f0
+cc
+ba
+d6
+24
+a0
+9f
+26
+ac
+0a
+83
+9a
+10
+ba
+fe
+e2
+5f
+04
+fa
+b1
+45
+79
+91
+89
+15
+b4
+4b
+60
+6d
+f3
+5b
+10
+cf
+bb
+18
+30
+73
+5d
+5c
+75
+3f
+2b
+be
+26
+f2
+79
+fe
+6f
+bb
+73
+87
+58
+a8
+40
+6e
+82
+94
+c3
+71
+87
+d1
+fd
+c4
+6a
+59
+7d
+1e
+b5
+81
+f0
+1d
+be
+0a
+ca
+40
+d6
+84
+a8
+55
+c1
+e5
+67
+b0
+ef
+10
+c3
+5a
+52
+ad
+01
+d8
+eb
+d0
+cb
+7e
+b1
+9a
+46
+a4
+98
+67
+5b
+0f
+59
+89
+1a
+29
+6f
+e1
+e4
+60
+96
+a7
+5c
+4c
+6e
+a3
+3f
+86
+77
+56
+9d
+de
+0a
+36
+f6
+de
+e9
+56
+a4
+c7
+1a
+34
+11
+31
+75
+83
+a0
+6f
+d2
+16
+37
+e7
+27
+05
+2a
+0c
+f3
+9e
+17
+b6
+aa
+00
+94
+57
+d7
+a7
+cd
+6f
+96
+8a
+cf
+f7
+d4
+cd
+ca
+15
+6b
+5d
+09
+d4
+7d
+a5
+0a
+13
+e1
+f6
+d0
+d0
+1d
+79
+06
+ee
+59
+d3
+c2
+cd
+83
+04
+4e
+99
+91
+a2
+b4
+75
+17
+8b
+39
+db
+d1
+3c
+c1
+a4
+d0
+19
+83
+ea
+83
+0e
+82
+5c
+c9
+58
+cb
+1b
+3d
+85
+9b
+1c
+f6
+2b
+3a
+6f
+bc
+a0
+09
+e1
+1a
+d3
+05
+9d
+d5
+1d
+47
+5e
+79
+7e
+3a
+5a
+2f
+7d
+cb
+0f
+f2
+0e
+bb
+9b
+4e
+3c
+1d
+c2
+ce
+b3
+9c
+b9
+a7
+b1
+88
+a7
+aa
+f8
+ed
+74
+c3
+e3
+5c
+e8
+59
+dd
+22
+8d
+7c
+54
+86
+b1
+63
+03
+1b
+2a
+58
+8e
+c9
+ca
+6d
+52
+4a
+b6
+1f
+e1
+57
+d5
+fe
+bb
+d1
+03
+9b
+8d
+c3
+48
+89
+ec
+4f
+5f
+06
+52
+71
+48
+0e
+1d
+35
+f6
+0a
+4a
+19
+9b
+18
+23
+43
+c2
+03
+35
+0e
+5f
+51
+a3
+b4
+bd
+ec
+32
+01
+92
+6a
+bd
+79
+d4
+88
+2a
+88
+ba
+d7
+81
+75
+f6
+40
+0a
+96
+e7
+a9
+1a
+9c
+48
+81
+33
+1f
+98
+10
+85
+47
+b6
+10
+f3
+2d
+39
+0a
+93
+37
+88
+d0
+47
+24
+e2
+cc
+8b
+b3
+c9
+84
+95
+bd
+35
+c0
+a6
+06
+ae
+e5
+fe
+a4
+e9
+76
+5c
+1c
+e7
+44
+bf
+a8
+37
+81
+01
+1b
+26
+88
+b6
+b0
+5a
+50
+80
+ea
+fd
+33
+e8
+9a
+e5
+cc
+cf
+2f
+95
+19
+4b
+3f
+f1
+5c
+89
+03
+59
+f1
+b8
+fa
+1d
+82
+89
+a8
+b9
+8c
+f3
+08
+eb
+80
+c6
+8e
+6b
+cf
+35
+09
+84
+c9
+5e
+12
+52
+60
+f4
+b5
+14
+ce
+40
+b8
+46
+93
+b0
+21
+c8
+3f
+f6
+fe
+b6
+49
+e7
+6a
+98
+8a
+c6
+01
+f3
+46
+f5
+50
+a2
+be
+74
+10
+17
+de
+d0
+b2
+0b
+98
+4b
+cf
+67
+54
+21
+a6
+a7
+18
+66
+fe
+76
+87
+5a
+c8
+00
+5a
+60
+a8
+9e
+2c
+99
+49
+b2
+ce
+11
+b0
+da
+91
+7e
+d1
+17
+5a
+08
+02
+cd
+6e
+3c
+bb
+7e
+2f
+e8
+16
+fb
+a5
+8a
+76
+6b
+be
+ae
+51
+62
+3e
+9e
+32
+5c
+d8
+97
+43
+28
+17
+18
+33
+03
+65
+80
+68
+8a
+b8
+3a
+ae
+93
+0f
+b8
+54
+76
+c0
+41
+e1
+77
+00
+a0
+16
+00
+cf
+bb
+9c
+05
+29
+5a
+fe
+e0
+0d
+6a
+e8
+d6
+e1
+e2
+8a
+ac
+9b
+70
+c4
+fe
+6b
+31
+cf
+3a
+dc
+9b
+9e
+24
+38
+70
+25
+9e
+01
+57
+06
+e7
+29
+48
+30
+10
+45
+35
+5d
+34
+b3
+7e
+01
+76
+32
+78
+3e
+3e
+49
+89
+d0
+57
+a5
+b8
+00
+c9
+50
+ea
+7c
+8a
+b3
+b1
+4e
+fa
+c0
+5c
+a9
+2e
+5a
+6c
+96
+16
+8f
+15
+f2
+aa
+92
+95
+66
+98
+95
+04
+f6
+6d
+e0
+22
+fb
+a1
+17
+0e
+79
+7c
+d9
+76
+a0
+5c
+fb
+e5
+42
+71
+7b
+0f
+af
+b7
+df
+1c
+bf
+69
+1b
+5e
+04
+8b
+42
+65
+88
+d1
+f4
+a5
+7a
+3b
+4d
+41
+36
+7d
+3c
+4b
+15
+b5
+41
+29
+7e
+99
+01
+6b
+01
+9d
+9c
+86
+06
+f9
+81
+d7
+2e
+5f
+51
+8c
+64
+3c
+5d
+18
+bc
+91
+ff
+12
+9b
+c0
+a6
+d7
+1f
+65
+84
+7f
+e0
+07
+73
+b9
+51
+cd
+26
+87
+4c
+63
+0f
+35
+05
+7b
+c0
+05
+85
+de
+e0
+5e
+fd
+9c
+7c
+a0
+fd
+86
+86
+7a
+9b
+b1
+b0
+65
+43
+1c
+c8
+8c
+40
+e3
+6a
+b9
+1b
+fa
+d8
+6c
+95
+cd
+53
+7a
+10
+6f
+14
+2c
+6d
+21
+5f
+12
+c7
+45
+9e
+c9
+a6
+b5
+8d
+e7
+65
+f7
+0a
+77
+78
+91
+52
+68
+16
+20
+05
+d1
+1f
+a6
+ff
+f4
+5e
+5d
+40
+1a
+00
+cc
+5f
+8b
+c5
+8b
+4d
+91
+71
+9b
+e8
+b9
+34
+41
+cf
+f4
+c0
+fd
+75
+93
+cb
+39
+a5
+74
+f7
+67
+33
+ef
+8b
+06
+f1
+9e
+f6
+ae
+3d
+6e
+05
+28
+55
+83
+2e
+cf
+cc
+86
+74
+e0
+c2
+2e
+48
+b2
+af
+9e
+dc
+6e
+6b
+00
+97
+06
+fc
+f0
+86
+2c
+0f
+e7
+de
+e6
+a0
+7a
+99
+61
+b0
+bc
+3f
+98
+81
+bd
+f6
+fe
+b5
+39
+3e
+f3
+24
+22
+0e
+21
+a5
+e9
+79
+0f
+cf
+b0
+c2
+69
+34
+fa
+a2
+29
+25
+73
+3b
+d9
+77
+4c
+ff
+3f
+5f
+70
+5c
+a2
+e4
+42
+33
+c0
+85
+0e
+8f
+5d
+3c
+9c
+d6
+3d
+4e
+9c
+51
+ec
+b5
+59
+57
+7b
+6b
+13
+ef
+40
+55
+cd
+db
+fb
+06
+f4
+83
+ae
+a4
+04
+9e
+dc
+80
+79
+48
+c6
+cd
+38
+10
+fc
+62
+5b
+98
+fa
+be
+86
+9e
+b1
+29
+11
+09
+36
+04
+f6
+c2
+3b
+bb
+79
+0a
+4d
+ec
+0c
+9e
+65
+ce
+76
+c4
+fb
+09
+1b
+c6
+28
+65
+17
+f8
+d2
+f6
+45
+07
+33
+31
+73
+16
+09
+b1
+ed
+58
+cb
+cd
+68
+33
+69
+9d
+14
+64
+6f
+6e
+e2
+85
+c6
+95
+e3
+19
+5a
+0b
+bc
+ac
+3f
+2b
+76
+93
+e1
+3b
+67
+00
+82
+db
+19
+e4
+e2
+d5
+33
+58
+56
+5a
+fb
+e1
+88
+10
+26
+ac
+40
+c7
+aa
+55
+40
+00
+00
+40
+00
+00
+00
+04
+00
+01
+00
+40
+19
+12
+50
+12
+00
+04
+00
+10
+04
+00
+00
+00
+08
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+20
+00
+20
+04
+00
+00
+00
+00
+00
+08
+00
+aa
+55
+08
+00
+8e
+48
+04
+89
+0d
+00
+00
+06
+1f
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+35
+0e
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+94
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+10
+00
+5f
+47
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+6c
+43
+1f
+0f
+09
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+0f
+00
+6d
+42
+0e
+42
+54
+35
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+07
+00
+ab
+48
+ac
+01
+b4
+00
+d2
+00
+01
+aa
+55
+01
+00
+1d
+44
+01
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+00
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+00
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+00
+aa
+55
+01
+00
+53
+46
+00
+aa
+55
+02
+00
+4f
+46
+58
+02
+aa
+55
+02
+00
+1e
+47
+64
+00
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+02
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+06
+00
+95
+4a
+ff
+ff
+29
+0e
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+01
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+01
+00
+14
+49
+81
+aa
+55
+01
+00
+13
+49
+80
+aa
+55
+02
+00
+16
+49
+80
+80
+aa
+55
+01
+00
+15
+49
+ff
+aa
+55
+04
+00
+18
+49
+80
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+07
+06
+ff
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+10
+11
+12
+13
+14
+15
+0c
+09
+0d
+03
+04
+c6
+c5
+c4
+c3
+80
+0a
+0b
+85
+83
+82
+81
+c7
+84
+0e
+0f
+ff
+ff
+aa
+55
+98
+00
+c7
+49
+48
+66
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+00
+35
+1e
+1a
+39
+16
+64
+1b
+00
+3a
+1f
+08
+3c
+07
+3d
+06
+00
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+b1
+7f
+e2
+00
+e6
+b0
+46
+89
+2a
+00
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+66
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+6b
+58
+52
+00
+50
+4a
+4d
+00
+e1
+e5
+00
+00
+00
+00
+00
+00
+e3
+00
+00
+00
+00
+00
+00
+00
+00
+e7
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+0f
+00
+84
+4a
+00
+fb
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+45
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+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
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+ef
+8a
+26
+a9
Index: GK308_keyboard_only_24g/output/program.lis
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/program.lis	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/program.lis	(working copy)
@@ -0,0 +1,33301 @@
+              include "bt_format "
+              org 0x0000
+0000 c2840016 bbit1 8 ,pf_patch_ext 
+0001 c00d0052 beq patch03_2 ,p_initialize_radio_cont 
+0002 c0140093 beq patch05_0 ,p_lpm_dispatch 
+0003 c01f0153 beq patch07_6 ,p_keyboard_setting_config_next 
+0004 c02000d8 beq patch08_0 ,p_keyboard_store_device_info 
+0005 c021810c beq patch08_3 ,p_keyboard_bb_event_timer 
+0006 c0220269 beq patch08_4 ,p_keyboard_adc_vol_init 
+0007 c024827b beq patch09_1 ,p_keyboard_idle 
+0008 c02600f2 beq patch09_4 ,p_kscan_dispatch 
+0009 c02a02e7 beq patch0a_4 ,p_keyboard_commbination_key_press_check 
+000a c02b0152 beq patch0a_6 ,p_keyboard_long_button_bt_discovery 
+000b c02c81bd beq patch0b_1 ,p_keyboard_motion_data_check 
+000c c02e01c0 beq patch0b_4 ,p_keyboard_value_tpye_consumer_set 
+000d c03501a8 beq patch0d_2 ,p_keyboard_le_parse_att 
+000e c03e0256 beq patch0f_4 ,p_keyboard_app_enter_hibernate 
+000f c0410257 beq patch10_2 ,p_mouse_adc_bat_percent_lowpower_out 
+0010 c051c7fb beq patch14_3 ,keyboard_24g_hibernate_set 
+0011 c074805d beq patch1d_1 ,p_otp_write 
+0012 c075005a beq patch1d_2 ,p_otp_read_data 
+0013 c06780a1 beq patch19_7 ,p_keyboard_init 
+0014 c07d008f beq patch1f_2 ,p_gpio_set_wake_by_current_state 
+0015 2020233e branch assert 
+
+pf_patch_ext:
+0016 c056803a beq patch35_5 ,p_g24_pair_sm_common 
+0017 c05e803d beq patch37_5 ,p_g24_reconn_dispatch_next 
+0018 c06102e6 beq patch38_2 ,p_g24_transmit_no_interrupt 
+0019 c079801c beq patch3e_3 ,p_initialize_radio2 
+001a c17f8000 rtneq patch3f_7 
+001b 2020233e branch assert 
+
+p_initialize_radio2:
+001c 37d98200 until null ,lpo_edge 
+001d 708a8660 jam 0x60 ,0x8a86 
+001e 708a8b3b jam 0x3b ,0x8a8b 
+001f 2040229d call dpll_on 
+0020 70804300 jam 0 ,core_config 
+0021 70804205 jam clksel_dpll ,core_clksel 
+0022 58557474 setarg 0x557474 
+0023 67f18968 store 3 ,0x8968 
+0024 7089606e jam 0x6e ,0x8960 
+0025 20402135 call rx_dcoc 
+0026 20402287 call rfpll_aac_ghpc 
+0027 20402281 call set_xtal_cap 
+0028 7041480c jam system_clk_12m ,mem_system_clk 
+0029 20406f53 call sadc_calibration 
+002a 204022cb call dpll_ring_ibias_calc 
+002b 20206ac9 branch set_bistfix_save_patchram 
+
+p_soft_reset:
+002c 2435802f nbranch p_soft_reset_next ,wake 
+002d 37d98200 until null ,lpo_edge 
+002e 37d98200 until null ,lpo_edge 
+
+p_soft_reset_next:
+002f 20403e9a call keyboard_wakeup_from_power_check 
+0030 24342002 nbranch soft_reset + 1 ,user 
+0031 6fe0c88d fetch 1 ,mem_power_on_flag 
+0032 203a2002 branch soft_reset + 1 ,blank 
+0033 6fe0c90f fetch 1 ,mem_keyboard_pb_button_gpio 
+0034 c17f8000 rtneq ui_button_gpio_disable 
+0035 1fe20e00 copy pdata ,queue 
+0036 6fe2067b fetch 4 ,mem_saved_gpio_in 
+0037 afec0000 qisolate0 pdata 
+0038 2040c69b call keyboard_pb_set ,true 
+0039 20202002 branch soft_reset + 1 
+
+p_g24_pair_sm_common:
+003a 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+003b 207a0000 rtn blank 
+003c 202032ad branch g24_pair_sm_common + 12 
+
+p_g24_reconn_dispatch_next:
+003d 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+003e 1fe17ee0 and_into 0xe0 ,pdata 
+003f 203a0044 branch p_keyboard_g24_reconn_dispatch_next ,blank 
+0040 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+0041 1fe0fe01 increase 1 ,pdata 
+0042 67e145f7 store 2 ,mem_24g_reconn_count 
+0043 20600000 rtn 
+
+p_keyboard_g24_reconn_dispatch_next:
+0044 20403557 call g24_reconn_data_prep 
+0045 2040362a call g24_transmit_receive_ack 
+0046 242c355e nbranch g24_reconn_device_fail ,sync 
+0047 2437b55e nbranch g24_reconn_device_fail ,user3 
+0048 2040004a call p_keyboard_g24_ackpayload_parse 
+0049 20203540 branch g24_reconn_dispatch_next + 5 
+
+p_keyboard_g24_ackpayload_parse:
+004a 20403647 call g24_ackpayload_parse 
+004b 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
+004c 2fe1f008 compare 0x08 ,pdata ,0xf8 
+004d 24608000 nrtn true 
+004e 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
+004f c07fc7fb beq 0xff ,keyboard_24g_hibernate_set 
+0050 67e0c70d store 1 ,mem_keyboard_led_status 
+0051 20600000 rtn 
+
+p_initialize_radio_cont:
+0052 37d98200 until null ,lpo_edge 
+0053 7089460d jam 0x0d ,0x8946 
+0054 70896f10 jam 0x10 ,0x896f 
+0055 708a13cd jam 0xcd ,0x8a13 
+0056 6ff08a06 fetch 1 ,0x8a06 
+0057 1fe17efc and pdata ,0xfc ,pdata 
+0058 67f08a06 store 1 ,0x8a06 
+0059 20202255 branch initialize_radio_cont + 6 
+
+p_otp_read_data:
+005a 20406b28 call enable_otp_read 
+005b 20406b63 call otp_read_data1 
+005c 20206b26 branch otp_disable_chgpump 
+
+p_otp_write:
+005d 20406b22 call otp_enable_chgpump65 
+005e 20406b2f call otp_set_addr 
+005f 20406b29 call otp_reset 
+
+p_otp_program:
+0060 e8408011 ifetcht 1 ,rega 
+0061 1a20a201 increase 1 ,rega 
+0062 18000e00 force 0 ,queue 
+
+p_otp_program_bit:
+0063 793f8022 set0 mark_otp_write ,mark 
+
+p_otp_program_bit2:
+0064 a84c0000 qisolate0 temp 
+0065 20208087 branch p_otp_skip_0 ,true 
+0066 6ff08046 fetch 1 ,core_otp_din 
+0067 79207e06 set1 6 ,pdata 
+0068 79207e07 set1 7 ,pdata 
+0069 67f08046 store 1 ,core_otp_din 
+006a 70804702 jam 0x02 ,core_otp_ctrl 
+006b 70804782 jam 0x82 ,core_otp_ctrl 
+006c 793ffe07 set0 7 ,pdata 
+006d 67f08046 store 1 ,core_otp_din 
+006e 7080478a jam 0x8a ,core_otp_ctrl 
+006f 2000000b nop 11 
+0070 708047ca jam 0xca ,core_otp_ctrl 
+0071 20000021 nop 33 
+0072 7080474a jam 0x4a ,core_otp_ctrl 
+0073 2000002c nop 44 
+0074 708047ca jam 0xca ,core_otp_ctrl 
+0075 20000016 nop 22 
+0076 7080478a jam 0x8a ,core_otp_ctrl 
+0077 20000021 nop 33 
+0078 70804782 jam 0x82 ,core_otp_ctrl 
+0079 20000001 nop 1 
+007a 70804792 jam 0x92 ,core_otp_ctrl 
+007b 2000000a nop 10 
+007c 708047b2 jam 0xb2 ,core_otp_ctrl 
+007d 6ff08007 fetch 1 ,core_otp_rdata 
+007e 70804792 jam 0x92 ,core_otp_ctrl 
+007f 20000001 nop 1 
+0080 70804782 jam 0x82 ,core_otp_ctrl 
+0081 20000001 nop 1 
+0082 afec0000 qisolate0 pdata 
+0083 20208063 branch p_otp_program_bit ,true 
+0084 c5110087 bmark1 mark_otp_write ,p_otp_skip_0 
+0085 79200022 set1 mark_otp_write ,mark 
+0086 20200064 branch p_otp_program_bit2 
+
+p_otp_skip_0:
+0087 6ff10044 fetch 2 ,core_otp_addr 
+0088 1fe0fe01 increase 1 ,pdata 
+0089 67f10044 store 2 ,core_otp_addr 
+008a 18e08e01 increase 1 ,queue 
+008b 28e01e08 compare 8 ,queue ,0xf 
+008c 24208063 nbranch p_otp_program_bit ,true 
+008d c2000060 loop p_otp_program 
+008e 20206b26 branch otp_disable_chgpump 
+
+p_gpio_set_wake_by_current_state:
+008f 79200407 set1 gpio_active_bit ,temp 
+0090 20406ee0 call gpio_get_bit 
+0091 7d208407 nsetflag true ,gpio_active_bit ,temp 
+0092 20206eac branch gpio_set_wake 
+
+p_lpm_dispatch:
+0093 204023f0 call lpo_calibration 
+0094 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+0095 207a0000 rtn blank 
+0096 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
+0097 247a0000 nrtn blank 
+0098 6fe0ca7b fetch 1 ,mem_keyboard_control_key_flag 
+0099 247a0000 nrtn blank 
+009a 6fe0c720 fetch 1 ,mem_device_direct_timer 
+009b 247a0000 nrtn blank 
+009c 6fe14750 fetch 2 ,mem_device_discovery_timer 
+009d 247a0000 nrtn blank 
+009e 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+009f 247a0000 nrtn blank 
+00a0 20202467 branch lpm_dispatch + 4 
+
+p_keyboard_init:
+00a1 20403717 call app_param_init 
+00a2 20407384 call enable_authrom 
+00a3 204000a6 call p_keyboard_setting_config 
+00a4 204000bf call p_keyboard_led_reuse_judge 
+00a5 20203eb0 branch keyboard_init + 2 
+
+p_keyboard_setting_config:
+00a6 20758000 rtn wake 
+00a7 204035c8 call g24_transmit_init 
+00a8 2040323a call g24_chmap_param_init 
+00a9 204000ac call p_keyboard_param_init 
+00aa 7040a60a jam 0x0a ,mem_lpm_overhead 
+00ab 20203ec1 branch keyboard_setting_config + 4 
+
+p_keyboard_param_init:
+00ac 20403ef4 call keyboard_compare_addr_init 
+00ad 204000af call p_keyboard_param_common_init 
+00ae 20203edd branch keyboard_param_init + 2 
+
+p_keyboard_param_common_init:
+00af 58009000 setarg mouse_ble_att_list_addr 
+00b0 67e142f9 store 2 ,mem_ui_le_uuid_table 
+00b1 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00b2 c291e80c bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+00b3 580095b8 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+00b4 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+00b5 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00b6 c290680c bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+00b7 c290e80c bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+00b8 580094fc setarg keyboard_ble_hid_map_magic_keyboard_addr 
+00b9 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+00ba 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00bb c291680c bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+00bc 58004ae8 setarg mem_keyboard_le_table 
+00bd 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+00be 2020680c branch hid_device_param_common_init 
+
+p_keyboard_led_reuse_judge:
+00bf 6fe0c917 fetch 1 ,mem_keyboard_low_voltage_alarm_gpio 
+00c0 6848c914 fetcht 1 ,mem_keyboard_caps_led_gpio 
+00c1 98467c00 isub temp ,null 
+00c2 204280cc call p_keyboard_caps_led_reuse ,zero 
+00c3 6fe0c917 fetch 1 ,mem_keyboard_low_voltage_alarm_gpio 
+00c4 6848c913 fetcht 1 ,mem_keyboard_num_led_gpio 
+00c5 98467c00 isub temp ,null 
+00c6 204280d0 call p_keyboard_num_led_reuse ,zero 
+00c7 6fe0c917 fetch 1 ,mem_keyboard_low_voltage_alarm_gpio 
+00c8 6848c915 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+00c9 98467c00 isub temp ,null 
+00ca 202280d4 branch p_keyboard_scroll_led_reuse ,zero 
+00cb 20600000 rtn 
+
+p_keyboard_caps_led_reuse:
+00cc 6fe0cba0 fetch 1 ,mem_keyboard_reuse_led_bit 
+00cd 79207e01 set1 kb_pc_keysel_capslock ,pdata 
+00ce 67e0cba0 store 1 ,mem_keyboard_reuse_led_bit 
+00cf 20600000 rtn 
+
+p_keyboard_num_led_reuse:
+00d0 6fe0cba0 fetch 1 ,mem_keyboard_reuse_led_bit 
+00d1 79207e00 set1 kb_pc_keysel_numlock ,pdata 
+00d2 67e0cba0 store 1 ,mem_keyboard_reuse_led_bit 
+00d3 20600000 rtn 
+
+p_keyboard_scroll_led_reuse:
+00d4 6fe0cba0 fetch 1 ,mem_keyboard_reuse_led_bit 
+00d5 79207e02 set1 kb_pc_keysel_scrolllock ,pdata 
+00d6 67e0cba0 store 1 ,mem_keyboard_reuse_led_bit 
+00d7 20600000 rtn 
+
+p_keyboard_store_device_info:
+00d8 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00d9 c28780db bbit1 keyboard_enable_otp ,p_keyboard_store_otp_device_info 
+00da 20203fd8 branch keyboard_store_device_info + 1 
+
+p_keyboard_store_otp_device_info:
+00db 6fe14abd fetch 2 ,mem_otp_read_retention_offset 
+00dc 68494abf fetcht 2 ,mem_otp_read_retention_max_size 
+00dd 98467c00 isub temp ,null 
+00de 20610000 rtn positive 
+00df 6fe0c678 fetch 1 ,mem_device_flag 
+00e0 c00000e3 beq mode_24g_device ,p_keyboard_store_otp_device_info_g24 
+00e1 c000bfeb beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+00e2 20600000 rtn 
+
+p_keyboard_store_otp_device_info_g24:
+00e3 68494abd fetcht 2 ,mem_otp_read_retention_offset 
+00e4 58001fb0 setarg 0x1fb0 
+00e5 98462400 isub temp ,regb 
+00e6 da2046a3 arg mem_device_24g_addr ,rega 
+00e7 df200004 arg 4 ,loopcnt 
+00e8 20406b33 call otp_write 
+00e9 68494abd fetcht 2 ,mem_otp_read_retention_offset 
+00ea 18408404 increase 4 ,temp 
+00eb 60494abd storet 2 ,mem_otp_read_retention_offset 
+00ec 20600000 rtn 
+
+p_keyboard_device_led_all_off:
+00ed 2040413c call keyboard_power_led_off 
+00ee 20404166 call keyboard_device_led_off 
+00ef 2040419d call keyboard_numlock_led_off 
+00f0 204041a3 call keyboard_capslock_led_off 
+00f1 202041a9 branch keyboard_scrolllock_led_off 
+
+p_kscan_dispatch:
+00f2 204000f5 call p_keyboard_keyscan 
+00f3 20400275 call p_keyboard_key_process 
+00f4 20204333 branch kscan_dispatch + 3 
+
+p_keyboard_keyscan:
+00f5 20403ef9 call keyboard_gpio_init 
+00f6 58000000 setarg 0 
+00f7 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+00f8 d8c0494e arg mem_keyscan_value_current ,contr 
+00f9 d8a04963 arg mem_keyscan_value_check ,contw 
+00fa df200014 arg 20 ,loopcnt 
+00fb 20407cdc call memcpy 
+00fc 204043af call keyboard_stb_state_low 
+00fd 5800494e setarg mem_keyscan_value_current 
+00fe 67e14998 store 2 ,mem_keyscan_value_ptr 
+00ff 58004adc setarg mem_keyscan_exmcu_value_new 
+0100 67e1499a store 2 ,mem_keyscan_exmcu_value_ptr 
+0101 204043ad call keyboard_stb_state_high 
+0102 204043ab call keyboard_clk_input 
+
+p_keyboard_keyscan_exmcu_start_check:
+0103 6fe1499e fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0104 1fe0fe01 increase 1 ,pdata 
+0105 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0106 c28480f5 bbit1 9 ,p_keyboard_keyscan 
+0107 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+0108 20406ee0 call gpio_get_bit 
+0109 24208103 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+010a 204043af call keyboard_stb_state_low 
+010b 2020434a branch keyboard_keyscan_wait_wake_next 
+
+p_keyboard_bb_event_timer:
+010c 204040e0 call keyboard_low_voltage_param_set 
+010d 204040cc call keyboard_adc_read 
+010e 204040dd call keyboard_adc_gpio_set_before_hibernate 
+010f 20400124 call p_keyboard_key_press_timer 
+0110 2040428f call keyboard_commbination_key_process 
+0111 204042c4 call keyboard_same_key_long_press_timer 
+0112 2040326c call g24_pair_timeout_timer 
+0113 20403507 call g24_reconn_timeout_timer 
+0114 204058f6 call mouse_24g_long_sleep_param_update_timer 
+0115 204042b5 call keyboard_24g_repeat_send_data 
+0116 204042bf call keyboard_24g_led_status_get_timer 
+0117 20404299 call keyboard_check_discovery_timeout_timer 
+0118 204042a4 call keyboard_check_direct_timeout_timer 
+0119 2040550d call mouse_le_enable_att_list_timer 
+011a 204042ad call keyboard_le_battery_updata_timer 
+011b 20405510 call mouse_le_send_smp_security_request_timer 
+011c 204042b2 call keyboard_le_send_conn_param_update_timer 
+011d 204042a1 call keyboard_le_auto_recognize_timer 
+011e 20405527 call mouse_current_mult_update_timer 
+011f 2040429e call keyboard_store_information_delay_timer 
+0120 204042c9 call keyboard_commbination_delay_release_timer 
+0121 204042cc call keyboard_usb_updata_timer 
+0122 204002a3 call p_keyboard_led_dispatch_timer 
+0123 202042d5 branch keyboard_check_no_data_timeout_timer 
+
+p_keyboard_key_press_timer:
+0124 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+0125 c280012a bbit1 keyboard_flag_g24_device_button ,p_keyboard_device_select_g24_press_timer 
+0126 20400142 call p_keyboard_device_select_g24_nopress_timer 
+0127 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+0128 c2808136 bbit1 keyboard_flag_bt_device_button ,p_keyboard_device_select_bt_press_timer 
+0129 20200148 branch p_keyboard_device_select_bt_nopress_timer 
+
+p_keyboard_device_select_g24_press_timer:
+012a 6fe0c8a9 fetch 1 ,mem_keyboard_switch_g24_press_timer 
+012b 1fe67c64 sub pdata ,100 ,null 
+012c 24610000 nrtn positive 
+012d 1fe0fe01 increase 1 ,pdata 
+012e 67e0c8a9 store 1 ,mem_keyboard_switch_g24_press_timer 
+012f c18c8000 rtnne 25 
+0130 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
+0131 6fe0c678 fetch 1 ,mem_device_flag 
+0132 c1020000 rtneq mode_usb_device 
+0133 2040014e call p_keyboard_store_device_number 
+0134 204048e6 call keyboard_stop_bluetooth_mode 
+0135 20204680 branch keyboard_24g_start_pair_mode 
+
+p_keyboard_device_select_bt_press_timer:
+0136 6fe0c8aa fetch 1 ,mem_keyboard_switch_bt_press_timer 
+0137 1fe67c64 sub pdata ,100 ,null 
+0138 24610000 nrtn positive 
+0139 1fe0fe01 increase 1 ,pdata 
+013a 67e0c8aa store 1 ,mem_keyboard_switch_bt_press_timer 
+013b c18c8000 rtnne 25 
+013c 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
+013d 6fe0c678 fetch 1 ,mem_device_flag 
+013e c1020000 rtneq mode_usb_device 
+013f 2040014e call p_keyboard_store_device_number 
+0140 20406824 call hid_device_le_send_empty_packet 
+0141 20204675 branch keyboard_long_button_bt_discovery 
+
+p_keyboard_device_select_g24_nopress_timer:
+0142 7048a900 jam 0 ,mem_keyboard_switch_g24_press_timer 
+0143 6fe0c8a7 fetch 1 ,mem_keyboard_switch_g24_enable 
+0144 207a0000 rtn blank 
+0145 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
+0146 2040014e call p_keyboard_store_device_number 
+0147 20206c99 branch soft_reset_chip 
+
+p_keyboard_device_select_bt_nopress_timer:
+0148 7048aa00 jam 0 ,mem_keyboard_switch_bt_press_timer 
+0149 6fe0c8a8 fetch 1 ,mem_keyboard_switch_bt_enable 
+014a 207a0000 rtn blank 
+014b 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
+014c 20404045 call keyboard_store_device_number 
+014d 20206c99 branch soft_reset_chip 
+
+p_keyboard_store_device_number:
+014e 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+014f c287d594 bbit1 keyboard_enable_otp ,mouse_write_otp_device_flag 
+0150 c2874045 bbit1 keyboard_enable_eeprom ,keyboard_store_device_number 
+0151 20600000 rtn 
+
+p_keyboard_long_button_bt_discovery:
+0152 20204677 branch keyboard_long_button_bt_discovery + 2 
+
+p_keyboard_setting_config_next:
+0153 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0154 c2878163 bbit1 keyboard_enable_otp ,p_keyboard_load_otp_info 
+0155 20203ec8 branch keyboard_setting_config + 11 
+
+p_keyboard_load_2k_eeprom_info:
+0156 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0157 c31e815d bbit0 keyboard_enable_sda_multi_r_line ,p_keyboard_load_2k_eeprom_device_info_next 
+0158 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+0159 20404f0a call device_gpio_config_input_pu 
+015a 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+015b 20406ee0 call gpio_get_bit 
+015c 20208156 branch p_keyboard_load_2k_eeprom_info ,true 
+
+p_keyboard_load_2k_eeprom_device_info_next:
+015d 20404049 call keyboard_eeprom_init 
+015e d8400080 arg 128 ,temp 
+015f da204678 arg mem_device_flag ,rega 
+0160 da400000 arg keyboard_device_number_eeprom_offect ,regb 
+0161 20406cd7 call iicd_read_eep_data 
+0162 20203fa2 branch keyboard_load_info_check 
+
+p_keyboard_load_otp_info:
+0163 6fe0c678 fetch 1 ,mem_device_flag 
+0164 c0000166 beq mode_24g_device ,p_keyboard_load_otp_device_info_g24_init 
+0165 20203f33 branch keyboard_load_otp_info + 2 
+
+p_keyboard_load_otp_device_info_g24_init:
+0166 db000008 arg 8 ,regd 
+0167 6fe14abf fetch 2 ,mem_otp_read_retention_max_size 
+0168 9b06fc00 idiv regd 
+0169 20407d64 call wait_div_end 
+016a 1807fe00 quotient pdata 
+016b 67e1064e store 2 ,mem_pdatatemp 
+016c dfe01fac arg 0x1fac ,pdata 
+016d d8400004 arg 4 ,temp 
+016e dd600004 arg 4 ,rege 
+016f 20200170 branch p_keyboard_load_otp_device_info 
+
+p_keyboard_load_otp_device_info:
+0170 67e10650 store 2 ,mem_pdatatemp + 2 
+0171 60488656 storet 1 ,mem_temp 
+0172 da204aa5 arg mem_otp_read_retention_memory ,rega 
+0173 da600000 arg 0 ,regc 
+
+p_keyboard_load_otp_info_check_page_loop:
+0174 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+0175 1fe22400 copy pdata ,regb 
+0176 6f208656 fetchr loopcnt ,1 ,mem_temp 
+0177 da204aa5 arg mem_otp_read_retention_memory ,rega 
+0178 20406b62 call otp_read_data 
+0179 6fe44aa5 fetch 8 ,mem_otp_read_retention_memory 
+017a 684c4aad fetcht 8 ,mem_otp_read_retention_memory + 8 
+017b 9841fe00 ior temp ,pdata 
+017c 684c4ab5 fetcht 8 ,mem_otp_read_retention_memory + 16 
+017d 9841fe00 ior temp ,pdata 
+017e 203a0186 branch p_keyboard_load_otp_info_check_first_time ,blank 
+017f 1a60a601 increase 1 ,regc 
+0180 6fe1064e fetch 2 ,mem_pdatatemp 
+0181 9a667c00 isub regc ,null 
+0182 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+0183 9b067e00 isub regd ,pdata 
+0184 67e10650 store 2 ,mem_pdatatemp + 2 
+0185 20200174 branch p_keyboard_load_otp_info_check_page_loop 
+
+p_keyboard_load_otp_info_check_first_time:
+0186 1a667c00 sub regc ,0 ,null 
+0187 20228199 branch p_keyboard_load_otp_info_check_first_time_process ,zero 
+
+p_keyboard_load_otp_info_check_first_time_loop_init:
+0188 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+0189 9b00fe00 iadd regd ,pdata 
+
+p_keyboard_load_otp_info_check_first_time_loop:
+018a 9d667e00 isub rege ,pdata 
+018b 67e10650 store 2 ,mem_pdatatemp + 2 
+018c 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+018d 1fe22400 copy pdata ,regb 
+018e 6f208656 fetchr loopcnt ,1 ,mem_temp 
+018f da204aa5 arg mem_otp_read_retention_memory ,rega 
+0190 20406b62 call otp_read_data 
+0191 6fe44aa5 fetch 8 ,mem_otp_read_retention_memory 
+0192 684c4aad fetcht 8 ,mem_otp_read_retention_memory + 8 
+0193 9841fe00 ior temp ,pdata 
+0194 684c4ab5 fetcht 8 ,mem_otp_read_retention_memory + 16 
+0195 9841fe00 ior temp ,pdata 
+0196 203a019b branch p_keyboard_load_otp_info_check_offset_process ,blank 
+0197 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+0198 2020018a branch p_keyboard_load_otp_info_check_first_time_loop 
+
+p_keyboard_load_otp_info_check_first_time_process:
+0199 6560cabd storer rege ,1 ,mem_otp_read_retention_offset 
+019a 20600000 rtn 
+
+p_keyboard_load_otp_info_check_offset_process:
+019b 58001fb0 setarg 0x1fb0 
+019c 68490650 fetcht 2 ,mem_pdatatemp + 2 
+019d 98467e00 isub temp ,pdata 
+019e 67e14abd store 2 ,mem_otp_read_retention_offset 
+019f 18427e00 copy temp ,pdata 
+01a0 9d60a400 iadd rege ,regb 
+01a1 6f208656 fetchr loopcnt ,1 ,mem_temp 
+01a2 da204aa5 arg mem_otp_read_retention_memory ,rega 
+01a3 20406b62 call otp_read_data 
+01a4 6fe0c678 fetch 1 ,mem_device_flag 
+01a5 c0003f81 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+01a6 c000bf87 beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
+01a7 20600000 rtn 
+
+p_keyboard_le_parse_att:
+01a8 1a220c00 copy rega ,contr 
+01a9 efe18006 ifetch 3 ,contr 
+01aa 67e1c39b store 3 ,mem_le_att_opcode 
+01ab c000c919 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+01ac c003c95c beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+01ad c004c938 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+01ae c005c952 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+01af c0044971 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+01b0 c00601b5 beq attop_read_blob_request ,p_keyboard_le_parse_att_read_blob_request 
+01b1 c005499f beq attop_read_request ,keyboard_le_parse_att_read_request 
+01b2 c00949c5 beq attop_write_request ,keyboard_le_parse_att_write_request 
+01b3 c02949cb beq attop_write_command ,keyboard_le_parse_att_write_command 
+01b4 20202b76 branch le_parse_att2 
+
+p_keyboard_le_parse_att_read_blob_request:
+01b5 efe10006 ifetch 2 ,contr 
+01b6 67e10693 store 2 ,mem_le_att_offset 
+01b7 98002200 iforce rega 
+01b8 6849439c fetcht 2 ,mem_le_att_handle 
+01b9 6fe14334 fetch 2 ,mem_le_pairing_handle 
+01ba 98467c00 isub temp ,null 
+01bb 2422ad2e nbranch le_send_att_read_blob_response ,zero 
+01bc 20204999 branch keyboard_le_send_att_read_blob_response 
+
+p_keyboard_motion_data_check:
+01bd 6fe0caa0 fetch 1 ,mem_keyboard_consumer_key_status 
+01be c00101de beq keyboard_consumer_key_release ,p_keyboard_value_consumer_release 
+01bf 202046cd branch keyboard_motion_data_check + 3 
+
+p_keyboard_value_tpye_consumer_set:
+01c0 18427e00 copy temp ,pdata 
+01c1 704a6f05 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+01c2 6848c9a6 fetcht 1 ,mem_keyboard_all_press_key_count 
+01c3 18467c00 sub temp ,hid_key_null ,null 
+01c4 2022c74b branch keyboard_value_consumer_all_key_release ,zero 
+01c5 c07401ea beq hid_key_multikey_media ,p_keyboard_value_media 
+01c6 c07481f0 beq hid_key_multikey_vol_down ,p_keyboard_value_vol_down 
+01c7 c07501f4 beq hid_key_multikey_vol_up ,p_keyboard_value_vol_up 
+01c8 c07581f8 beq hid_key_multikey_mute ,p_keyboard_value_mute 
+01c9 c07601fc beq hid_key_multikey_pre_track ,p_keyboard_value_pre_track 
+01ca c0768200 beq hid_key_multikey_next_track ,p_keyboard_value_next_track 
+01cb c0770204 beq hid_key_multikey_paly ,p_keyboard_value_play 
+01cc c0778208 beq hid_key_multikey_stop ,p_keyboard_value_stop 
+01cd c078020c beq hid_key_ac_home ,p_keyboard_value_ac_home 
+01ce c0788210 beq hid_key_mail ,p_keyboard_value_mail 
+01cf c0790214 beq hid_key_my_computer ,p_keyboard_value_my_computer 
+01d0 c0798218 beq hid_key_ac_favorites ,p_keyboard_value_ac_favorites 
+01d1 c07a021c beq hid_key_calculator ,p_keyboard_value_calculator 
+01d2 c07a8220 beq hid_key_ac_search ,p_keyboard_value_ac_search 
+01d3 c07b0227 beq hid_key_ac_back ,p_keyboard_value_ac_back 
+01d4 c07b822b beq hid_key_os_soft_kb ,p_keyboard_value_os_soft_kb 
+01d5 c07c0233 beq hid_key_light_down ,p_keyboard_value_light_down 
+01d6 c07c8237 beq hid_key_light_up ,p_keyboard_value_light_up 
+01d7 c07d023b beq hid_key_ios_android_os_lock ,p_keyboard_value_os_lock 
+01d8 c07d823f beq hid_key_mac_eject ,p_keyboard_value_mac_eject 
+01d9 c07e0243 beq hid_key_ac_forward ,p_keyboard_value_ac_forward 
+01da c07e8247 beq hid_key_ac_stop ,p_keyboard_value_ac_stop 
+01db c07f024b beq hid_key_ac_refresh ,p_keyboard_value_ac_refresh 
+01dc c07f824f beq hid_key_system_sleep ,p_keyboard_value_system_sleep 
+01dd 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_consumer_all_key_release:
+
+p_keyboard_value_consumer_release:
+01de 7049a902 jam 2 ,mem_keyboard_data_change_flag 
+01df 6fe0c9a6 fetch 1 ,mem_keyboard_all_press_key_count 
+01e0 205a46ef call keyboard_value_release_all_key ,blank 
+01e1 704aa000 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+01e2 6fe0c678 fetch 1 ,mem_device_flag 
+01e3 c00001e7 beq mode_24g_device ,p_keyboard_24g_consumer_release 
+01e4 58000005 setarg hid_reportid_bit_consumer_key 
+01e5 67e1ca6f store 3 ,mem_keyboard_tx_data 
+01e6 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_24g_consumer_release:
+01e7 58000003 setarg hid_reportid_consumer_key 
+01e8 67e1ca6f store 3 ,mem_keyboard_tx_data 
+01e9 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_media:
+01ea 6fe0c678 fetch 1 ,mem_device_flag 
+01eb c0804715 bne mode_24g_device ,keyboard_value_media 
+01ec 58000183 setarg 0x0183 
+
+p_keyboard_24g_standard_data_send:
+01ed 67e14a70 store 2 ,mem_keyboard_tx_data + 1 
+01ee 704a6f03 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+01ef 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_vol_down:
+01f0 6fe0c678 fetch 1 ,mem_device_flag 
+01f1 c0804718 bne mode_24g_device ,keyboard_value_vol_down 
+01f2 580000ea setarg 0x00ea 
+01f3 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_vol_up:
+01f4 6fe0c678 fetch 1 ,mem_device_flag 
+01f5 c080471a bne mode_24g_device ,keyboard_value_vol_up 
+01f6 580000e9 setarg 0x00e9 
+01f7 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mute:
+01f8 6fe0c678 fetch 1 ,mem_device_flag 
+01f9 c080471c bne mode_24g_device ,keyboard_value_mute 
+01fa 580000e2 setarg 0x00e2 
+01fb 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_pre_track:
+01fc 6fe0c678 fetch 1 ,mem_device_flag 
+01fd c080471e bne mode_24g_device ,keyboard_value_pre_track 
+01fe 580000b6 setarg 0x00b6 
+01ff 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_next_track:
+0200 6fe0c678 fetch 1 ,mem_device_flag 
+0201 c0804720 bne mode_24g_device ,keyboard_value_next_track 
+0202 580000b5 setarg 0x00b5 
+0203 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_play:
+0204 6fe0c678 fetch 1 ,mem_device_flag 
+0205 c0804722 bne mode_24g_device ,keyboard_value_play 
+0206 580000cd setarg 0x00cd 
+0207 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_stop:
+0208 6fe0c678 fetch 1 ,mem_device_flag 
+0209 c0804724 bne mode_24g_device ,keyboard_value_stop 
+020a 580000b7 setarg 0x00b7 
+020b 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_home:
+020c 6fe0c678 fetch 1 ,mem_device_flag 
+020d c0804726 bne mode_24g_device ,keyboard_value_ac_home 
+020e 58000223 setarg 0x0223 
+020f 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mail:
+0210 6fe0c678 fetch 1 ,mem_device_flag 
+0211 c0804728 bne mode_24g_device ,keyboard_value_mail 
+0212 5800018a setarg 0x018a 
+0213 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_my_computer:
+0214 6fe0c678 fetch 1 ,mem_device_flag 
+0215 c080472a bne mode_24g_device ,keyboard_value_my_computer 
+0216 58000194 setarg 0x0194 
+0217 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_favorites:
+0218 6fe0c678 fetch 1 ,mem_device_flag 
+0219 c080472c bne mode_24g_device ,keyboard_value_ac_favorites 
+021a 5800022a setarg 0x022a 
+021b 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_calculator:
+021c 6fe0c678 fetch 1 ,mem_device_flag 
+021d c080472e bne mode_24g_device ,keyboard_value_calculator 
+021e 58000192 setarg 0x0192 
+021f 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_search:
+0220 6fe0c678 fetch 1 ,mem_device_flag 
+0221 c0804730 bne mode_24g_device ,keyboard_value_ac_search 
+0222 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+0223 c001020c beq system_os_ios ,p_keyboard_value_ac_home 
+0224 c001820c beq system_os_mac ,p_keyboard_value_ac_home 
+0225 58000221 setarg 0x0221 
+0226 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_back:
+0227 6fe0c678 fetch 1 ,mem_device_flag 
+0228 c0804732 bne mode_24g_device ,keyboard_value_ac_back 
+0229 58000224 setarg 0x0224 
+022a 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_soft_kb:
+022b 6fe0c678 fetch 1 ,mem_device_flag 
+022c c0804737 bne mode_24g_device ,keyboard_value_os_soft_kb 
+022d 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+022e c0008231 beq system_os_android ,p_keyboard_value_os_soft_kb_android 
+022f 580001ae setarg 0x01ae 
+0230 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_soft_kb_android:
+0231 58000307 setarg 0x0307 
+0232 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_light_down:
+0233 6fe0c678 fetch 1 ,mem_device_flag 
+0234 c080473d bne mode_24g_device ,keyboard_value_light_down 
+0235 58000070 setarg 0x0070 
+0236 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_light_up:
+0237 6fe0c678 fetch 1 ,mem_device_flag 
+0238 c080473f bne mode_24g_device ,keyboard_value_light_up 
+0239 5800006f setarg 0x006f 
+023a 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_lock:
+023b 6fe0c678 fetch 1 ,mem_device_flag 
+023c c0804741 bne mode_24g_device ,keyboard_value_os_lock 
+023d 58000030 setarg 0x0030 
+023e 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mac_eject:
+023f 6fe0c678 fetch 1 ,mem_device_flag 
+0240 c0804743 bne mode_24g_device ,keyboard_value_mac_eject 
+0241 580000b8 setarg 0x00b8 
+0242 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_forward:
+0243 6fe0c678 fetch 1 ,mem_device_flag 
+0244 c0804745 bne mode_24g_device ,keyboard_value_ac_forward 
+0245 58000225 setarg 0x0225 
+0246 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_stop:
+0247 6fe0c678 fetch 1 ,mem_device_flag 
+0248 c0804747 bne mode_24g_device ,keyboard_value_ac_stop 
+0249 58000226 setarg 0x0226 
+024a 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_refresh:
+024b 6fe0c678 fetch 1 ,mem_device_flag 
+024c c0804749 bne mode_24g_device ,keyboard_value_ac_refresh 
+024d 58000227 setarg 0x0227 
+024e 202001ed branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_system_sleep:
+024f 6fe0c678 fetch 1 ,mem_device_flag 
+0250 c0804752 bne mode_24g_device ,keyboard_value_system_sleep 
+0251 704a6f02 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0252 58000002 setarg 0x02 
+0253 67e0ca70 store 1 ,mem_keyboard_tx_data + 1 
+0254 202046e6 branch keyboard_motion_data_check_next 
+0255 c076c720 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+
+p_keyboard_app_enter_hibernate:
+0256 2020379c branch app_enter_hibernate 
+
+p_mouse_adc_bat_percent_lowpower_out:
+0257 efe40011 ifetch 8 ,rega 
+0258 67e4064e store 8 ,mem_pdatatemp 
+
+p_mouse_adc_bat_percent_lowpower_out_battery:
+0259 20407057 call adc_clear_no_power_flag 
+025a 20400263 call p_adc_clear_low_power_flag 
+025b 6fe10654 fetch 2 ,mem_pdatatemp + 6 
+025c 68490650 fetcht 2 ,mem_pdatatemp + 2 
+025d 98467c00 isub temp ,null 
+025e 24417054 ncall adc_set_no_power_flag ,positive 
+025f 68490652 fetcht 2 ,mem_pdatatemp + 4 
+0260 98467c00 isub temp ,null 
+0261 24410266 ncall p_adc_set_low_power_flag ,positive 
+0262 20204ed0 branch mouse_adc_bat_level_set 
+
+p_adc_clear_low_power_flag:
+0263 6848c422 fetcht 1 ,mem_adc_power_flag 
+0264 793f8400 set0 0 ,temp 
+0265 20207059 branch adc_set_power_flag 
+
+p_adc_set_low_power_flag:
+0266 6848c422 fetcht 1 ,mem_adc_power_flag 
+0267 79200400 set1 0 ,temp 
+0268 20207059 branch adc_set_power_flag 
+
+p_keyboard_adc_vol_init:
+0269 6fe148ab fetch 2 ,mem_keyboard_vdd_full_vol 
+026a 67e14644 store 2 ,mem_device_vdd_full_vol 
+026b 6fe148ad fetch 2 ,mem_keyboard_vdd_empty_vol 
+026c 67e14646 store 2 ,mem_device_vdd_empty_vol 
+026d 6fe148af fetch 2 ,mem_keyboard_vdd_low_vol 
+026e 67e14648 store 2 ,mem_device_vdd_low_vol 
+026f 20600000 rtn 
+
+p_keyboard_adc_vol_4v2_init:
+0270 582c1270 setarg 0x2c1270 
+0271 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
+0272 58014001 setarg 0x014001 
+0273 e7e18005 istore 3 ,contw 
+0274 20600000 rtn 
+
+p_keyboard_key_process:
+0275 da20494e arg mem_keyscan_value_current ,rega 
+0276 da404963 arg mem_keyscan_value_check ,regb 
+0277 df200014 arg 20 ,loopcnt 
+0278 20407d66 call string_compare 
+0279 242282a0 nbranch p_keyboard_press_change_or_no_key ,zero 
+027a 202043ba branch keyboard_key_process + 5 
+
+p_keyboard_idle:
+027b 2040027d call p_keyboard_evt_ui_timer_check 
+027c 202042de branch keyboard_idle + 1 
+
+p_keyboard_evt_ui_timer_check:
+027d da200000 arg 0 ,rega 
+027e 684a4b9a fetcht 4 ,mem_keyboard_evt_btclk 
+027f 1c422400 copy clkn_bt ,regb 
+0280 1a427e00 copy regb ,pdata 
+0281 98467c00 isub temp ,null 
+0282 244177f4 ncall ui_timer_timeout ,positive 
+
+p_keyboard_evt_ui_timer_check_loop:
+0283 1a427e00 copy regb ,pdata 
+0284 18408428 increase 40 ,temp 
+0285 98467c00 isub temp ,null 
+0286 2421028f nbranch p_keyboard_evt_ui_timer_check_end ,positive 
+0287 1a20a201 increase 1 ,rega 
+0288 1a217e0f and rega ,0x0f ,pdata 
+0289 243a0283 nbranch p_keyboard_evt_ui_timer_check_loop ,blank 
+028a da200000 arg 0 ,rega 
+028b 20400294 call p_keyboard_evt_ui_timer_check_send_evt 
+
+p_keyboard_evt_ui_timer_init:
+028c 1c427e00 copy clkn_bt ,pdata 
+028d 67e24b9a store 4 ,mem_keyboard_evt_btclk 
+028e 20600000 rtn 
+
+p_keyboard_evt_ui_timer_check_end:
+028f 1a227e00 copy rega ,pdata 
+0290 207a0000 rtn blank 
+0291 184085d8 increase -40 ,temp 
+0292 793f841c set0 28 ,temp 
+0293 604a4b9a storet 4 ,mem_keyboard_evt_btclk 
+
+p_keyboard_evt_ui_timer_check_send_evt:
+0294 67e0cb9e store 1 ,mem_keyboard_evt_timer_count 
+
+p_keyboard_evt_50ms_loop:
+0295 6fe0cb9e fetch 1 ,mem_keyboard_evt_timer_count 
+0296 207a0000 rtn blank 
+0297 1fe0ffff increase -1 ,pdata 
+0298 67e0cb9e store 1 ,mem_keyboard_evt_timer_count 
+0299 2040029b call p_keyboard_delay_lpm_timer 
+029a 20200295 branch p_keyboard_evt_50ms_loop 
+
+p_keyboard_delay_lpm_timer:
+029b 6fe0cb99 fetch 1 ,mem_keyboard_delay_lpm_flag 
+029c 207a0000 rtn blank 
+029d 70409401 jam 1 ,mem_lpm_mode 
+029e 704b9900 jam 0 ,mem_keyboard_delay_lpm_flag 
+029f 20600000 rtn 
+
+p_keyboard_press_change_or_no_key:
+02a0 70409400 jam 0 ,mem_lpm_mode 
+02a1 704b9901 jam 1 ,mem_keyboard_delay_lpm_flag 
+02a2 202043b1 branch keyboard_press_change_or_no_key 
+
+p_keyboard_led_dispatch_timer:
+02a3 204041ab call keyboard_rgb_on_timer 
+02a4 204002ab call p_keyboard_device_poweron_timer 
+02a5 2040413e call keyboard_mode_led_timer 
+02a6 204002e1 call p_keyboard_check_system_is_mac_timer 
+02a7 20404186 call keyboard_num_capslock_led_on_timer 
+02a8 204002cf call p_keyboard_device_pair_led_timer 
+02a9 204002b7 call p_keyboard_low_voltage_led_timer 
+02aa 20600000 rtn 
+
+p_keyboard_device_poweron_timer:
+02ab 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+02ac 207a0000 rtn blank 
+02ad 1fe0ffff increase -1 ,pdata 
+02ae 67e0cac2 store 1 ,mem_keyboard_device_poweron_timer 
+02af 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+02b0 c29402b4 bbit1 keyboard_enable_030_power_led ,p_keyboard_device_poweron_030_led 
+02b1 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+02b2 203a4166 branch keyboard_device_led_off ,blank 
+02b3 2020416c branch keyboard_device_led_on 
+
+p_keyboard_device_poweron_030_led:
+02b4 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+02b5 203a413c branch keyboard_power_led_off ,blank 
+02b6 2020413a branch keyboard_power_led_on 
+
+p_keyboard_low_voltage_led_timer:
+02b7 704acb00 jam 0 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+02b8 6fe14750 fetch 2 ,mem_device_discovery_timer 
+02b9 247a0000 nrtn blank 
+02ba 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+02bb 247a0000 nrtn blank 
+02bc 6fe145f5 fetch 2 ,mem_24g_reconn_timeout 
+02bd 247a0000 nrtn blank 
+02be 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+02bf 247a0000 nrtn blank 
+02c0 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+02c1 c4058000 rtnbit0 keyboard_enable_adc 
+02c2 c4148000 rtnbit0 keyboard_enable_low_led 
+02c3 c4010000 rtnbit0 keyboard_low_voltage_flag 
+02c4 c295411b bbit1 keyboard_enable_low_voltage_led_blink_n_second ,keyboard_low_voltage_led_blink_new_data 
+02c5 44a2c008 bpatch patch08_5 ,mem_patch08 
+02c6 6fe0cac6 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+02c7 1fe0fe01 increase 1 ,pdata 
+02c8 67e0cac6 store 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+02c9 1fe67c06 sub pdata ,6 ,null 
+02ca 24414119 ncall keyboard_adc_low_volatage_led_timer_count_clean ,positive 
+02cb 1fe67c03 sub pdata ,3 ,null 
+02cc 24414184 ncall keyboard_low_voltage_led_off ,positive 
+02cd 20404182 call keyboard_low_voltage_led_on 
+02ce 20600000 rtn 
+
+p_keyboard_device_pair_led_timer:
+02cf 6fe0c613 fetch 1 ,mem_24g_conn_sm 
+02d0 c1020000 rtneq 4 
+02d1 6fe0c678 fetch 1 ,mem_device_flag 
+02d2 c00002d4 beq mode_24g_device ,p_keyboard_device_24g_pair_led 
+02d3 20204148 branch keyboard_device_pair_led_timer + 2 
+
+p_keyboard_device_24g_pair_led:
+02d4 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+02d5 203a02d7 branch p_keyboard_pair_success_led_remove ,blank 
+02d6 2020414d branch keyboard_device_pair_led 
+
+p_keyboard_pair_success_led_remove:
+02d7 6fe0c422 fetch 1 ,mem_adc_power_flag 
+02d8 c28002e0 bbit1 0 ,p_keyboard_pair_sucess_led_move_next 
+02d9 6fe0c70d fetch 1 ,mem_keyboard_led_status 
+02da c28002e0 bbit1 kb_pc_keysel_numlock ,p_keyboard_pair_sucess_led_move_next 
+02db 6fe145f5 fetch 2 ,mem_24g_reconn_timeout 
+02dc 243a414b nbranch keyboard_device_24g_pair_led ,blank 
+02dd 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+02de 247a0000 nrtn blank 
+02df 20204172 branch keyboard_device_24g_led_off 
+
+p_keyboard_pair_sucess_led_move_next:
+02e0 20600000 rtn 
+
+p_keyboard_check_system_is_mac_timer:
+02e1 704aa103 jam system_os_mac ,mem_kb_computer_system 
+02e2 6fe0c70d fetch 1 ,mem_keyboard_led_status 
+02e3 c3838000 rtnbit1 7 
+02e4 704aa100 jam system_os_windows ,mem_kb_computer_system 
+02e5 20600000 rtn 
+
+p_g24_transmit_no_interrupt:
+02e6 20204815 branch keyboard_g24_transmit_no_interrupt 
+
+p_keyboard_commbination_key_press_check:
+02e7 704a9b00 jam 0 ,mem_keyboard_commbination_press_type 
+02e8 6fe0c678 fetch 1 ,mem_device_flag 
+02e9 c08045d7 bne mode_24g_device ,keyboard_commbination_key_press_check_bt 
+02ea 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+02eb c4098000 rtnbit0 keyboard_enable_commbination_key_by_24g_pairing 
+02ec 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+02ed 68494a97 fetcht 2 ,mem_keyboard_commbination_key_24g 
+02ee 98467c00 isub temp ,null 
+02ef 202282f4 branch p_keyboard_commbination_key_down_24g ,zero 
+02f0 18508400 byteswap temp ,temp 
+02f1 98467c00 isub temp ,null 
+02f2 202282f4 branch p_keyboard_commbination_key_down_24g ,zero 
+02f3 202054e6 branch mouse_commbination_key_up 
+
+p_keyboard_commbination_key_down_24g:
+02f4 20204680 branch keyboard_24g_start_pair_mode 
+              org 0x2000
+
+start:
+2000 20402369 call lpmstate 
+
+soft_reset:
+2001 44804000 bpatch patch00_0 ,mem_patch00 
+2002 20800000 clear_stack 
+2003 204069e4 call load_otp_set_init 
+2004 20403717 call app_param_init 
+2005 20402244 call initialize_radio 
+2006 20406ca3 call iic_init_360khz 
+2007 20402347 call init_param 
+2008 204068d2 call l2cap_init 
+2009 4480c000 bpatch patch00_1 ,mem_patch00 
+200a 2040775d call ui_init 
+200b 2040370a call app_init 
+200c 20407435 call publickey_init 
+200d 2055a421 call lpm_recover_clk ,wake 
+
+main_loop:
+200e 44814000 bpatch patch00_2 ,mem_patch00 
+200f 20407540 call sp_calc_sequence_256 
+2010 20407436 call sp_calc_sequence_256_check 
+2011 20402a23 call le_advertising_dispatch 
+2012 2040202a call idle_dispatch 
+2013 20403722 call app_process_idle 
+2014 20402018 call connection_dispatch 
+2015 204030ed call g24_dispatch 
+2016 20402463 call lpm_dispatch 
+2017 2020200e 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 20202591 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 c280250d 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 2020233e 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 70433e1b 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 c2807cdc 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 20207cdc 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 20207dba 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 20207dba 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 67e48656 store 9 ,mem_temp 
+2089 44854001 bpatch patch01_2 ,mem_patch01 
+208a 6fe0c484 fetch 1 ,mem_sc_calc 
+208b 243a2090 nbranch context_search_sniff_sc ,blank 
+208c 6fe48656 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 6fe48656 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 20207dba 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 20207dba 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 202025de 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 20207dba 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 2030a155 branch shutdown_radio ,is_rx 
+20d9 37d38200 until null ,tx_clear 
+20da 20000064 nop 100 
+20db 20202155 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 20207dbc 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 20407d61 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 58000f00 setarg mem_dcoc_buf 
+2124 67f10982 store 2 ,0x8982 
+2125 58000ff0 setarg mem_dcoc_buf_end 
+2126 67f10984 store 2 ,0x8984 
+2127 70898109 jam 0x9 ,0x8981 
+2128 70898103 jam 0x3 ,0x8981 
+2129 70898006 jam 0x6 ,0x8980 
+212a 2000003c nop 60 
+212b da200000 arg 0 ,rega 
+212c da400000 arg 0 ,regb 
+212d df200010 arg 16 ,loopcnt 
+212e d8c00f00 arg mem_dcoc_buf ,contr 
+
+rx_dcoc_loop:
+212f efe10006 ifetch 2 ,contr 
+2130 9a20a200 iadd rega ,rega 
+2131 efe10006 ifetch 2 ,contr 
+2132 9a40a400 iadd regb ,regb 
+2133 c200212f loop rx_dcoc_loop 
+2134 20600000 rtn 
+
+rx_dcoc:
+2135 4487c001 bpatch patch01_7 ,mem_patch01 
+2136 20758000 rtn wake 
+2137 20402164 call set_sync_on 
+2138 d8400027 arg 39 ,temp 
+2139 20402173 call set_freq_rx 
+213a 204021aa call rf_rx_enable 
+213b 708a257f jam 0x7f ,0x8a25 
+213c 708a301a jam 0x1a ,0x8a30 
+213d 708a3178 jam 0x78 ,0x8a31 
+213e 708a8fb2 jam 0xb2 ,0x8a8f 
+213f 708ac200 jam 0 ,0x8ac2 
+2140 708ac300 jam 0 ,0x8ac3 
+2141 d8e00006 arg 6 ,queue 
+2142 20402122 call rx_dcoc_avg 
+2143 2a2ffe0d isolate1 13 ,rega 
+2144 2040211d call qset_start 
+2145 2a4ffe0d isolate1 13 ,regb 
+2146 2040211e call qset_p 
+2147 d8e00005 arg 5 ,queue 
+
+rx_dcoc_loop2:
+2148 2040211c call qset1_p 
+2149 2040211e call qset_p 
+214a 20402122 call rx_dcoc_avg 
+214b d8a08ac2 arg 0x8ac2 ,contw 
+214c 1a31fe00 rshift4 rega ,pdata 
+214d 20402117 call qsetxor 
+214e 1a51fe00 rshift4 regb ,pdata 
+214f 20402117 call qsetxor 
+2150 18e08fff increase -1 ,queue 
+2151 20212148 branch rx_dcoc_loop2 ,positive 
+2152 708a8f52 jam 0x52 ,0x8a8f 
+2153 708a3002 jam 2 ,0x8a30 
+2154 70898100 jam 0 ,0x8981 
+
+shutdown_radio:
+2155 44884002 bpatch patch02_0 ,mem_patch02 
+2156 204066e5 call rf_debug_shutdown_radio_line 
+2157 78507c00 disable is_tx 
+2158 7850fc00 disable is_rx 
+2159 58000200 setarg 0x0200 
+215a 67f20a23 store 4 ,0x8a23 
+215b 708a01fa jam 0xfa ,0x8a01 
+215c 2000000c nop 12 
+215d 708a0f00 jam 0 ,0x8a0f 
+215e 708a121a jam 0x1a ,0x8a12 
+215f 708a142b jam 0x2b ,0x8a14 
+2160 18002a08 force 8 ,radio_ctrl 
+2161 18002a00 force 0 ,radio_ctrl 
+2162 70890000 jam 0 ,0x8900 
+2163 202022f3 branch gain_control 
+
+set_sync_on:
+2164 4488c002 bpatch patch02_1 ,mem_patch02 
+2165 708a0f60 jam 0x60 ,0x8a0f 
+2166 708a10aa jam 0xaa ,0x8a10 
+2167 708a127a jam 0x7a ,0x8a12 
+2168 708a2500 jam 0x00 ,0x8a25 
+2169 708a2600 jam 0x00 ,0x8a26 
+216a 2000003c nop 60 
+216b 708a2020 jam 0x20 ,0x8a20 
+216c 708a23f5 jam 0xf5 ,0x8a23 
+216d 708a2412 jam 0x12 ,0x8a24 
+216e 708a2410 jam 0x10 ,0x8a24 
+216f 2000003c nop 60 
+2170 708a1260 jam 0x60 ,0x8a12 
+2171 708a23dd jam 0xdd ,0x8a23 
+2172 20600000 rtn 
+
+set_freq_rx:
+2173 44894002 bpatch patch02_2 ,mem_patch02 
+2174 70890001 jam 0x01 ,0x8900 
+2175 708a239d jam 0x9d ,0x8a23 
+2176 708a2402 jam 0x02 ,0x8a24 
+2177 20000014 nop 20 
+2178 708a7065 jam 0x65 ,0x8a70 
+2179 708a239f jam 0x9f ,0x8a23 
+217a 20402193 call set_lemode 
+217b 60488008 storet 1 ,mem_last_freq 
+217c 18408401 increase 1 ,temp 
+
+aac_res_lookup:
+217d 4489c002 bpatch patch02_3 ,mem_patch02 
+217e 1851fe00 rshift4 temp ,pdata 
+217f d8c04135 arg mem_aac_res_table ,contr 
+2180 98c08c00 iadd contr ,contr 
+2181 efe08006 ifetch 1 ,contr 
+2182 6a308a71 fetchr rega ,1 ,0x8a71 
+2183 1a21220f and_into 0xf ,rega 
+2184 9a21fe00 ior rega ,pdata 
+2185 67f08a71 store 1 ,0x8a71 
+2186 204021d4 call calc_freq 
+2187 20000090 nop 144 
+2188 6fe0c099 fetch 1 ,mem_fcomp_div 
+2189 c00c218b beq xtal_24m ,aac_res_lookup_end 
+218a 20000024 nop 36 
+
+aac_res_lookup_end:
+218b 708a2080 jam 0x80 ,0x8a20 
+218c 20600000 rtn 
+
+set_lemode_2m_16m:
+218d 58008312 setarg 0x8312 
+218e 67f10907 store 2 ,0x8907 
+218f 2020219b branch set_lemode_2m 
+
+set_lemode_1m_16m:
+2190 58004189 setarg 0x4189 
+2191 67f10907 store 2 ,0x8907 
+2192 202021a6 branch set_lemode_1m 
+
+set_lemode:
+2193 448a4002 bpatch patch02_4 ,mem_patch02 
+2194 708a8211 jam 0x11 ,0x8a82 
+2195 708a8d12 jam 0x12 ,0x8a8d 
+2196 708a8e0a jam 0x0a ,0x8a8e 
+2197 6fe0c099 fetch 1 ,mem_fcomp_div 
+2198 c008218d beq xtal_16m ,set_lemode_2m_16m 
+2199 58005762 setarg 0x5762 
+219a 67f10907 store 2 ,0x8907 
+
+set_lemode_2m:
+219b 70890103 jam 3 ,0x8901 
+219c 70893003 jam 3 ,0x8930 
+219d c6168000 rtnmark1 mark_ble_2m 
+219e 70890101 jam 1 ,0x8901 
+219f 708a8207 jam 0x07 ,0x8a82 
+21a0 708a8d44 jam 0x44 ,0x8a8d 
+21a1 708a8e0a jam 0x0a ,0x8a8e 
+21a2 6fe0c099 fetch 1 ,mem_fcomp_div 
+21a3 c0082190 beq xtal_16m ,set_lemode_1m_16m 
+21a4 58002bb1 setarg 0x2bb1 
+21a5 67f10907 store 2 ,0x8907 
+
+set_lemode_1m:
+21a6 c6978000 rtnmark0 mark_ble_lr 
+21a7 70893024 jam 0x24 ,0x8930 
+21a8 70890105 jam 5 ,0x8901 
+21a9 20600000 rtn 
+
+rf_rx_enable:
+21aa 448ac002 bpatch patch02_5 ,mem_patch02 
+21ab 204066df call rf_debug_rx_gpio_high 
+21ac 204021be call rf_rx_agc_set 
+21ad 18002a08 force 8 ,radio_ctrl 
+21ae 18002a00 force 0 ,radio_ctrl 
+21af 580aaada setarg 0x0aaada 
+21b0 67f18a0f store 3 ,0x8a0f 
+21b1 708a2540 jam 0x40 ,0x8a25 
+21b2 708a2610 jam 0x10 ,0x8a26 
+21b3 2000003c nop 60 
+21b4 708a01fb jam 0xfb ,0x8a01 
+21b5 708a25ff jam 0xff ,0x8a25 
+21b6 708a2630 jam 0x30 ,0x8a26 
+21b7 708a16fe jam 0xfe ,0x8a16 
+21b8 20000014 nop 20 
+21b9 708a1000 jam 0x00 ,0x8a10 
+21ba 708a1108 jam 0x08 ,0x8a11 
+21bb 20000078 nop 120 
+21bc 7089000d jam 0xd ,0x8900 
+21bd 20600000 rtn 
+
+rf_rx_agc_set:
+21be 6fe0c143 fetch 1 ,mem_gain_fix 
+21bf c07fa1c5 beq 0xff ,rf_rx_enable_no_soft_agc 
+21c0 d8c04144 arg mem_gain_table ,contr 
+21c1 98c08c00 iadd contr ,contr 
+21c2 efe08006 ifetch 1 ,contr 
+21c3 67f08961 store 1 ,core_rf_rx_gain_fix 
+21c4 70896027 jam 0x27 ,core_rf_rx_agc_ctrl 
+
+rf_rx_enable_no_soft_agc:
+21c5 6848c147 fetcht 1 ,mem_gain_second_agc_en 
+21c6 6ff08960 fetch 1 ,core_rf_rx_agc_ctrl 
+21c7 9841fe00 ior temp ,pdata 
+21c8 67f08960 store 1 ,core_rf_rx_agc_ctrl 
+21c9 20600000 rtn 
+
+set_freq_tx_int:
+21ca 70890003 jam 0x03 ,0x8900 
+21cb 708a2402 jam 0x02 ,0x8a24 
+21cc 20000014 nop 20 
+21cd 708a7065 jam 0x65 ,0x8a70 
+21ce 708a23df jam 0xdf ,0x8a23 
+21cf 20402193 call set_lemode 
+21d0 204021ee call ghp_lookup 
+21d1 60488008 storet 1 ,mem_last_freq 
+21d2 18408402 increase 2 ,temp 
+21d3 2020217d branch aac_res_lookup 
+
+calc_freq:
+21d4 448b4002 bpatch patch02_6 ,mem_patch02 
+21d5 58000960 setarg 2400 
+21d6 9840fe00 iadd temp ,pdata 
+21d7 1fe22200 copy pdata ,rega 
+21d8 6848c099 fetcht 1 ,mem_fcomp_div 
+21d9 18430400 rshift temp ,temp 
+21da 9846fc00 idiv temp 
+21db 20407d64 call wait_div_end 
+21dc 1807fe00 quotient pdata 
+21dd 1fec8e00 rshift8 pdata ,queue 
+21de 60f0890a storer queue ,1 ,0x890a 
+21df 67f08909 store 1 ,0x8909 
+21e0 18077e00 remainder pdata 
+21e1 1ff07e00 lshift16 pdata ,pdata 
+21e2 1fed7e00 lshift8 pdata ,pdata 
+21e3 9846fc00 idiv temp 
+21e4 20407d64 call wait_div_end 
+21e5 1807fe00 quotient pdata 
+21e6 67f1890b store 3 ,0x890b 
+21e7 62308a22 storer rega ,1 ,0x8a22 
+21e8 1a2ca200 rshift8 rega ,rega 
+21e9 62308a21 storer rega ,1 ,0x8a21 
+21ea 708a20a0 jam 0xa0 ,0x8a20 
+21eb 708a20e0 jam 0xe0 ,0x8a20 
+21ec 708a20a0 jam 0xa0 ,0x8a20 
+21ed 20600000 rtn 
+
+ghp_lookup:
+21ee 1840fe02 add temp ,2 ,pdata 
+21ef 1fe97e00 rshift3 pdata ,pdata 
+21f0 1fe17ffe and_into -2 ,pdata 
+21f1 d8c0411d arg mem_ghpc_table ,contr 
+21f2 c596a1f4 bmark0 mark_ble_2m ,ghp_1m 
+21f3 18c08c0c increase 12 ,contr 
+
+ghp_1m:
+21f4 98c08c00 iadd contr ,contr 
+21f5 ea210006 ifetchr rega ,2 ,contr 
+21f6 efe10006 ifetch 2 ,contr 
+21f7 9a267e00 isub rega ,pdata 
+21f8 18408c02 add temp ,2 ,contr 
+21f9 18c10c0f and_into 0xf ,contr 
+21fa 98cffe00 imul32 contr ,pdata 
+21fb 1ff1fe00 rshift4 pdata ,pdata 
+21fc 9a20fe00 iadd rega ,pdata 
+21fd 67f10905 store 2 ,0x8905 
+21fe 20600000 rtn 
+
+set_freq_tx:
+21ff 448bc002 bpatch patch02_7 ,mem_patch02 
+2200 204021ca call set_freq_tx_int 
+2201 20000258 nop 600 
+
+txon:
+2202 448c4003 bpatch patch03_0 ,mem_patch03 
+2203 580aaa7e setarg 0x0aaa7e 
+2204 67f18a0f store 3 ,0x8a0f 
+2205 2000003c nop 60 
+2206 708a2500 jam 0x00 ,0x8a25 
+2207 708a260d jam 0x0d ,0x8a26 
+2208 708a16f6 jam 0xf6 ,0x8a16 
+2209 2000001e nop 30 
+220a 708a151b jam 0x1b ,0x8a15 
+220b 20402212 call set_tx_power 
+220c 20000014 nop 20 
+220d 708a260f jam 0x0f ,0x8a26 
+220e 20000014 nop 20 
+220f 708a10a8 jam 0xa8 ,0x8a10 
+2210 708a1100 jam 0x00 ,0x8a11 
+2211 20600000 rtn 
+
+set_tx_power:
+2212 448cc003 bpatch patch03_1 ,mem_patch03 
+2213 6fe0c141 fetch 1 ,mem_tx_power 
+2214 c000221d beq tx_power_0db ,set_tx_power_0db 
+2215 c001a222 beq tx_power_3db ,set_tx_power_3db 
+2216 c002a227 beq tx_power_5db ,set_tx_power_5db 
+2217 c003a22b beq tx_power_7db ,set_tx_power_7db 
+2218 c005222f beq tx_power_10db ,set_tx_power_10db 
+2219 c041a234 beq tx_power_f3db ,set_tx_power_f3db 
+221a c042a238 beq tx_power_f5db ,set_tx_power_f5db 
+221b c045223c beq tx_power_f10db ,set_tx_power_f10db 
+221c c04a2240 beq tx_power_f20db ,set_tx_power_f20db 
+
+set_tx_power_0db:
+221d 708a1417 jam 0x17 ,0x8a14 
+221e 58251a3f setarg 0x251a3f 
+221f 67f18a60 store 3 ,0x8a60 
+
+set_tx_power_8a63_28:
+2220 708a6328 jam 0x28 ,0x8a63 
+2221 20600000 rtn 
+
+set_tx_power_3db:
+2222 708a1425 jam 0x25 ,0x8a14 
+2223 58a91c2d setarg 0xa91c2d 
+2224 67f18a60 store 3 ,0x8a60 
+
+set_tx_power_8a63_2f:
+2225 708a632f jam 0x2f ,0x8a63 
+2226 20600000 rtn 
+
+set_tx_power_5db:
+2227 708a1425 jam 0x25 ,0x8a14 
+2228 58a91c3f setarg 0xa91c3f 
+2229 67f18a60 store 3 ,0x8a60 
+222a 20202225 branch set_tx_power_8a63_2f 
+
+set_tx_power_7db:
+222b 708a1425 jam 0x25 ,0x8a14 
+222c 58a9383f setarg 0xa9383f 
+222d 67f18a60 store 3 ,0x8a60 
+222e 20202225 branch set_tx_power_8a63_2f 
+
+set_tx_power_10db:
+222f 708a1425 jam 0x25 ,0x8a14 
+2230 58a93f3f setarg 0xa93f3f 
+2231 67f18a60 store 3 ,0x8a60 
+2232 708a631f jam 0x1f ,0x8a63 
+2233 20600000 rtn 
+
+set_tx_power_f3db:
+2234 708a1417 jam 0x17 ,0x8a14 
+2235 58251827 setarg 0x251827 
+2236 67f18a60 store 3 ,0x8a60 
+2237 20202220 branch set_tx_power_8a63_28 
+
+set_tx_power_f5db:
+2238 708a1417 jam 0x17 ,0x8a14 
+2239 5825181c setarg 0x25181c 
+223a 67f18a60 store 3 ,0x8a60 
+223b 20202220 branch set_tx_power_8a63_28 
+
+set_tx_power_f10db:
+223c 708a1417 jam 0x17 ,0x8a14 
+223d 5825180b setarg 0x25180b 
+223e 67f18a60 store 3 ,0x8a60 
+223f 20202220 branch set_tx_power_8a63_28 
+
+set_tx_power_f20db:
+2240 708a1417 jam 0x17 ,0x8a14 
+2241 58251000 setarg 0x251000 
+2242 67f18a60 store 3 ,0x8a60 
+2243 20202220 branch set_tx_power_8a63_28 
+
+initialize_radio:
+2244 70804206 jam clksel_rc ,core_clksel 
+
+initialize_radio_wait:
+2245 6fe1409c fetch 2 ,mem_rf_init_ptr 
+2246 c3072245 bbit0 14 ,initialize_radio_wait 
+2247 98000c00 iforce contr 
+2248 d8408a00 arg 0x8a00 ,temp 
+
+initialize_radio_loop:
+2249 efe08006 ifetch 1 ,contr 
+224a c07fa24f beq 0xff ,initialize_radio_cont 
+224b 98418a00 ior temp ,contw 
+224c efe08006 ifetch 1 ,contr 
+224d e7e08005 istore 1 ,contw 
+224e 20202249 branch initialize_radio_loop 
+
+initialize_radio_cont:
+224f 448d4003 bpatch patch03_2 ,mem_patch03 
+2250 37d98200 until null ,lpo_edge 
+2251 7089460d jam 0x0d ,0x8946 
+2252 70896f10 jam 0x10 ,0x896f 
+2253 708a13cd jam 0xcd ,0x8a13 
+2254 708a0610 jam 0x10 ,0x8a06 
+2255 708a844a jam 0x4a ,0x8a84 
+2256 708a8540 jam 0x40 ,0x8a85 
+2257 708a16fe jam 0xfe ,0x8a16 
+2258 6fe0c44d fetch 1 ,mem_wdt_always_work 
+2259 205a711d call wdt_set_disable ,blank 
+225a 37d98200 until null ,lpo_edge 
+225b 70813b5f jam 0x5f ,0x813b 
+225c 6fe0c099 fetch 1 ,mem_fcomp_div 
+225d c0082276 beq xtal_16m ,initialize_radio_16m 
+225e 6fe0c44f fetch 1 ,mem_ring_ibias_trim 
+225f 1fe1fe04 or_into 0x04 ,pdata 
+2260 67f08a02 store 1 ,0x8a02 
+2261 70890f01 jam 0x01 ,0x890f 
+2262 708a8024 jam 0x24 ,0x8a80 
+2263 708a8162 jam 0x62 ,0x8a81 
+2264 58e61212 setarg 0xe61212 
+2265 67f18a73 store 3 ,0x8a73 
+
+initialize_radio2:
+2266 4779c03e bpatchx patch3e_3 ,mem_patch3e 
+2267 708a8660 jam 0x60 ,0x8a86 
+2268 708a8b3b jam 0x3b ,0x8a8b 
+2269 2040229d call dpll_on 
+226a 70804300 jam 0 ,core_config 
+226b 70804205 jam clksel_dpll ,core_clksel 
+226c 58557474 setarg 0x557474 
+226d 67f18968 store 3 ,0x8968 
+226e 7089606e jam 0x6e ,0x8960 
+226f 20402135 call rx_dcoc 
+2270 20402287 call rfpll_aac_ghpc 
+2271 20402281 call set_xtal_cap 
+2272 7041480c jam system_clk_12m ,mem_system_clk 
+2273 20406f53 call sadc_calibration 
+2274 204022cb call dpll_ring_ibias_calc 
+2275 20206ac9 branch set_bistfix_save_patchram 
+
+initialize_radio_16m:
+2276 6fe0c44f fetch 1 ,mem_ring_ibias_trim 
+2277 1fe1fe06 or_into 0x06 ,pdata 
+2278 67f08a02 store 1 ,0x8a02 
+2279 70890f00 jam 0x00 ,0x890f 
+227a 708a8023 jam 0x23 ,0x8a80 
+227b 708a81b0 jam 0xb0 ,0x8a81 
+227c 58e40909 setarg 0xe40909 
+227d 67f18a73 store 3 ,0x8a73 
+227e 708a762a jam 0x2a ,0x8a76 
+227f 70890204 jam 0x04 ,0x8902 
+2280 20202266 branch initialize_radio2 
+
+set_xtal_cap:
+2281 20758000 rtn wake 
+2282 37d98200 until null ,lpo_edge 
+2283 6fe0c11c fetch 1 ,mem_xtal_c_sel 
+2284 67f0813a store 1 ,core_xtal_cap 
+2285 37d98200 until null ,lpo_edge 
+2286 20600000 rtn 
+
+rfpll_aac_ghpc:
+2287 448dc003 bpatch patch03_3 ,mem_patch03 
+2288 20758000 rtn wake 
+2289 20402164 call set_sync_on 
+228a 70890003 jam 3 ,0x8900 
+228b 708a7001 jam 0x1 ,0x8a70 
+228c da40411d arg mem_ghpc_table ,regb 
+228d db004135 arg mem_aac_res_table ,regd 
+228e 20402293 call rfpll_aac_ghpc_once 
+228f 7920002d set1 mark_ble_2m ,mark 
+2290 20402293 call rfpll_aac_ghpc_once 
+2291 708a7061 jam 0x61 ,0x8a70 
+2292 20202155 branch shutdown_radio 
+
+rfpll_aac_ghpc_once:
+2293 20402193 call set_lemode 
+2294 df200006 arg 6 ,loopcnt 
+2295 da600000 arg 0 ,regc 
+
+rfpll_cal_loop:
+2296 1a620400 copy regc ,temp 
+2297 204022ab call aac_ghpc 
+2298 1a40a402 increase 2 ,regb 
+2299 1b00b001 increase 1 ,regd 
+229a 1a60a610 increase 16 ,regc 
+229b c2002296 loop rfpll_cal_loop 
+229c 20600000 rtn 
+
+dpll_on:
+229d 6fe0c099 fetch 1 ,mem_fcomp_div 
+229e c00c22a3 beq xtal_24m ,dpll_on_24m 
+229f 6fe0c44f fetch 1 ,mem_ring_ibias_trim 
+22a0 1fe1fe06 or_into 0x06 ,pdata 
+22a1 67f08a02 store 1 ,0x8a02 
+22a2 708a05e0 jam 0xe0 ,0x8a05 
+
+dpll_on_24m:
+22a3 708a00d8 jam 0xd8 ,0x8a00 
+22a4 2000003c nop 60 
+22a5 708a01a0 jam 0xa0 ,0x8a01 
+22a6 708a00df jam 0xdf ,0x8a00 
+22a7 708a01fa jam 0xfa ,0x8a01 
+22a8 20000014 nop 20 
+22a9 708a009f jam 0x9f ,0x8a00 
+22aa 20600000 rtn 
+
+aac_ghpc:
+22ab 448e4003 bpatch patch03_4 ,mem_patch03 
+22ac 708a2030 jam 0x30 ,0x8a20 
+22ad 708a23dd jam 0xdd ,0x8a23 
+22ae 204021d4 call calc_freq 
+
+wait_cal_done:
+22af 6ff08a7c fetch 1 ,0x8a7c 
+22b0 c30022af bbit0 0 ,wait_cal_done 
+22b1 708a7b30 jam 0x30 ,0x8a7b 
+22b2 204022c5 call read_cal_result 
+22b3 98002200 iforce rega 
+22b4 708a7b40 jam 0x40 ,0x8a7b 
+22b5 204022c5 call read_cal_result 
+22b6 9a267e00 isub rega ,pdata 
+22b7 1fef847d mul32 pdata ,125 ,temp 
+22b8 58b00000 setarg 0xb00000 
+22b9 9846fc00 idiv temp 
+22ba 20407d64 call wait_div_end 
+22bb 1807fe00 quotient pdata 
+22bc c596a2be bmark0 mark_ble_2m ,aac_ghpc_1m 
+22bd 1fe3fe00 lshift pdata ,pdata 
+
+aac_ghpc_1m:
+22be e7e10012 istore 2 ,regb 
+22bf 708a7b20 jam 0x20 ,0x8a7b 
+22c0 6ff08a7e fetch 1 ,0x8a7e 
+22c1 1ff27e00 lshift4 pdata ,pdata 
+22c2 e7e08018 istore 1 ,regd 
+22c3 708a7b00 jam 0 ,0x8a7b 
+22c4 20600000 rtn 
+
+read_cal_result:
+22c5 6ff10a7d fetch 2 ,0x8a7d 
+22c6 1ff0fe00 byteswap pdata ,pdata 
+22c7 68588a7c fetcht 1 ,0x8a7c 
+22c8 18500400 lshift16 temp ,temp 
+22c9 9841fe00 ior temp ,pdata 
+22ca 20600000 rtn 
+
+dpll_ring_ibias_calc:
+22cb 448ec003 bpatch patch03_5 ,mem_patch03 
+22cc 20600000 rtn 
+
+save_rssi:
+22cd 448f4003 bpatch patch03_6 ,mem_patch03 
+22ce 6ff089a2 fetch 1 ,modem_nb_pow 
+22cf 2feffe06 isolate1 6 ,pdata 
+22d0 7920fe07 setflag true ,7 ,pdata 
+22d1 67e0c142 store 1 ,mem_modem_rssi 
+22d2 6ff089a3 fetch 1 ,modem_gain 
+22d3 1fe1040f and pdata ,0x0f ,temp 
+22d4 18438400 lshift temp ,temp 
+22d5 1ff1fe00 rshift4 pdata ,pdata 
+22d6 98408400 iadd temp ,temp 
+22d7 184fa203 mul32 temp ,3 ,rega 
+22d8 6fe0c142 fetch 1 ,mem_modem_rssi 
+22d9 204022e3 call byte_sign_extern 
+22da 1fe67e00 sub pdata ,0 ,pdata 
+22db 9a20fe00 iadd rega ,pdata 
+22dc 1fe0fff7 increase -9 ,pdata 
+22dd 1fe17fff and pdata ,0x1ff ,pdata 
+22de 2feffe08 isolate1 8 ,pdata 
+22df 2420a2e1 nbranch save_rssi_store ,true 
+22e0 58000000 setarg 0 
+
+save_rssi_store:
+22e1 67e08035 store 1 ,mem_rssi_hex 
+22e2 202022e8 branch rssi_hex2dec 
+
+byte_sign_extern:
+22e3 2feffe07 isolate1 7 ,pdata 
+22e4 24608000 nrtn true 
+22e5 d840ff00 arg 0xff00 ,temp 
+22e6 9841fe00 ior temp ,pdata 
+22e7 20600000 rtn 
+
+rssi_hex2dec:
+22e8 6fe08035 fetch 1 ,mem_rssi_hex 
+22e9 204022ec call bcd 
+22ea 67e08009 store 1 ,mem_rssi 
+22eb 20600000 rtn 
+
+bcd:
+22ec 1fe17eff and_into 0xff ,pdata 
+22ed 1fe6fc0a div pdata ,10 
+22ee 20407d61 call get_div_result 
+22ef 1ff27e00 lshift4 pdata ,pdata 
+22f0 18070400 remainder temp 
+22f1 9841fe00 ior temp ,pdata 
+22f2 20600000 rtn 
+
+gain_control:
+22f3 448fc003 bpatch patch03_7 ,mem_patch03 
+22f4 6fe0c143 fetch 1 ,mem_gain_fix 
+22f5 c17f8000 rtneq 0xff 
+22f6 242c231a nbranch gain_increase ,sync 
+22f7 6fe0c142 fetch 1 ,mem_modem_rssi 
+22f8 1fe67cf0 sub pdata ,0xf0 ,null 
+22f9 2421231e nbranch gain_descend ,positive 
+22fa 1fe67c7f sub pdata ,0x7f ,null 
+22fb 2021231e branch gain_descend ,positive 
+22fc 6a308961 fetchr rega ,1 ,core_rf_rx_gain_fix 
+22fd 6fe0c143 fetch 1 ,mem_gain_fix 
+22fe c1000000 rtneq 0 
+22ff d8c04144 arg mem_gain_table ,contr 
+2300 98c08c00 iadd contr ,contr 
+2301 efe08006 ifetch 1 ,contr 
+2302 9a267c00 isub rega ,null 
+2303 24628000 nrtn zero 
+2304 18c08dfe increase -2 ,contr 
+2305 e8408006 ifetcht 1 ,contr 
+2306 1851fe00 rshift4 temp ,pdata 
+2307 1a31a400 rshift4 rega ,regb 
+2308 9a462400 isub regb ,regb 
+2309 18417e0f and temp ,0xf ,pdata 
+230a 1a21220f and rega ,0xf ,rega 
+230b 9a262200 isub rega ,rega 
+230c 1a23fe00 lshift rega ,pdata 
+230d 9a40a400 iadd regb ,regb 
+230e 1a4fa403 mul32 regb ,3 ,regb 
+230f 6848c142 fetcht 1 ,mem_modem_rssi 
+2310 18417e80 and temp ,0x80 ,pdata 
+2311 207a0000 rtn blank 
+
+add_negative:
+2312 58000100 setarg 0x100 
+2313 98460400 isub temp ,temp 
+2314 1a427e00 copy regb ,pdata 
+2315 98467e00 isub temp ,pdata 
+2316 20610000 rtn positive 
+2317 1fe17eff and pdata ,0xff ,pdata 
+2318 c17f8000 rtneq 0xff 
+2319 c17f0000 rtneq 0xfe 
+
+gain_increase:
+231a 6fe0c143 fetch 1 ,mem_gain_fix 
+231b c000a323 beq 1 ,set_rx_gain0 
+231c c0012325 beq 2 ,set_rx_gain1 
+231d 20202323 branch set_rx_gain0 
+
+gain_descend:
+231e 6fe0c143 fetch 1 ,mem_gain_fix 
+231f c0002325 beq 0 ,set_rx_gain1 
+2320 c000a321 beq 1 ,set_rx_gain2 
+
+set_rx_gain2:
+2321 70414302 jam 2 ,mem_gain_fix 
+2322 20600000 rtn 
+
+set_rx_gain0:
+2323 70414300 jam 0 ,mem_gain_fix 
+2324 20600000 rtn 
+
+set_rx_gain1:
+2325 70414301 jam 1 ,mem_gain_fix 
+2326 20600000 rtn 
+
+ahead_window:
+2327 1fe20400 copy pdata ,temp 
+2328 44904004 bpatch patch04_0 ,mem_patch04 
+2329 18427e00 copy temp ,pdata 
+232a 20407d2e call clk2bt 
+232b 1c307e00 lshift16 bt_clk ,pdata 
+232c 79207e2c set1 44 ,pdata 
+232d 20407d14 call clk_diff 
+232e 793ffe2c set0 44 ,pdata 
+232f 20402336 call get_clk 
+2330 20407d14 call clk_diff 
+2331 20740000 rtn user 
+2332 20407d21 call clk2rt 
+2333 98003600 iforce stop_watch 
+2334 37c18200 until null ,timeout 
+2335 20600000 rtn 
+
+get_clk:
+2336 1b220400 copy clkn ,temp 
+2337 20748000 rtn master 
+2338 1b420400 copy clke ,temp 
+2339 20600000 rtn 
+
+get_clkbt:
+233a 1c427e00 deposit clkn_bt 
+233b 20748000 rtn master 
+233c 1d027e00 deposit clke_bt 
+233d 20600000 rtn 
+
+assert:
+233e 4490c004 bpatch patch04_1 ,mem_patch04 
+233f 2020233e branch assert 
+
+sleep:
+2340 207a0000 rtn blank 
+2341 1fe37e00 rshift pdata ,pdata 
+2342 1fe0fffd increase -3 ,pdata 
+
+sleep_loop:
+2343 1fe0ffff increase -1 ,pdata 
+2344 2422a343 nbranch sleep_loop ,zero 
+2345 18007e00 force 0 ,pdata 
+2346 20600000 rtn 
+
+init_param:
+2347 58000e43 setarg param_tx_setup 
+2348 67e10036 store 2 ,mem_param_tx_setup 
+2349 58000600 setarg param_rf_setup 
+234a 67e10038 store 2 ,mem_param_rf_setup 
+234b 58000600 setarg param_conn_access 
+234c 67e1003a store 2 ,mem_param_conn_access 
+234d 58000d00 setarg param_rx_setup 
+234e 67e10040 store 2 ,mem_param_rx_setup 
+234f 580003bb setarg param_clke_cal 
+2350 67e1003c store 2 ,mem_param_clke_cal 
+2351 58000500 setarg param_pll_setup 
+2352 67e1003e store 2 ,mem_param_pll_setup 
+2353 580007d0 setarg param_dpll_start_delay 
+2354 67e10042 store 2 ,mem_param_dpll_start_delay 
+2355 58000ea6 setarg param_rt_rthalfslot 
+2356 67e10044 store 2 ,mem_param_rt_rthalfslot 
+2357 580001e0 setarg param_clke_cal_le_1m 
+2358 67e10046 store 2 ,mem_param_clke_cal_le_1m 
+2359 58000120 setarg param_clke_cal_le_2m 
+235a 67e10048 store 2 ,mem_param_clke_cal_le_2m 
+235b 5800011a setarg param_clke_cal_le_coded 
+235c 67e1004a store 2 ,mem_param_clke_cal_le_coded 
+235d 44914004 bpatch patch04_2 ,mem_patch04 
+235e 20758000 rtn wake 
+235f 58000017 setarg att_default_mtu 
+2360 67e142e5 store 2 ,mem_le_remote_mtu 
+2361 7041698b jam param_t_ifs_150us + param_sync_time_difference ,mem_le_tx_ifs_defference 
+2362 58000d00 setarg mem_ble_tx_buff0 
+2363 67e14343 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+2364 58000060 setarg mem_ble_l2cap_tx_buff_size 
+2365 67e14345 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+2366 1c437e00 rshift clkn_bt ,pdata 
+2367 67e24095 store 4 ,mem_last_clkn 
+2368 20600000 rtn 
+
+lpmstate:
+2369 5800ee21 setarg 0xee21 
+236a 67f10050 store 2 ,core_clkoff 
+236b 6e12011c fetchr alarm ,4 ,core_gpio_in 
+236c 6ff08132 fetch 1 ,core_lpm_isogate 
+236d c302a383 bbit0 gpio_latch ,power_up 
+236e 7835fc00 enable wake 
+236f c2822377 bbit1 cold_wake ,lpmwake 
+2370 7855fc00 disable wake 
+2371 1ce27e00 deposit auxcnt 
+2372 243a2377 nbranch lpmwake ,blank 
+2373 6ff08142 fetch 1 ,core_lpm_sysctl 
+2374 c2822377 bbit1 reload_code ,lpmwake 
+2375 d85fffff arg param_hibernate_clks ,temp 
+2376 2020241d branch lpm_enter_sleep 
+
+lpmwake:
+2377 20402387 call lpm_poweron_retmem 
+2378 2055a3c9 call lpm_load_context ,wake 
+2379 37d98200 until null ,lpo_edge 
+237a 6ff08132 fetch 1 ,core_lpm_isogate 
+237b 793ffe05 set0 gpio_latch ,pdata 
+237c 67f08132 store 1 ,core_lpm_isogate 
+237d 37d98200 until null ,lpo_edge 
+237e 2435a384 nbranch boot_load ,wake 
+237f 20406aaf call set_bistfix_wake 
+2380 6602067b storer alarm ,4 ,mem_saved_gpio_in 
+2381 70800608 jam otp_key_lock ,core_misc_ctrl 
+2382 20600000 rtn 
+
+power_up:
+2383 20402387 call lpm_poweron_retmem 
+
+boot_load:
+2384 20406a20 call loadcode 
+2385 6602067b storer alarm ,4 ,mem_saved_gpio_in 
+2386 20600000 rtn 
+
+lpm_poweron_retmem:
+2387 37d98200 until null ,lpo_edge 
+2388 6ff08133 fetch 1 ,core_lpm_ldosel 
+2389 1fe17e88 and_into 0x88 ,pdata 
+238a 67f08133 store 1 ,core_lpm_ldosel 
+238b 37d98200 until null ,lpo_edge 
+238c 6ff08132 fetch 1 ,core_lpm_isogate 
+238d 1fe1fe0f or_into 0xf ,pdata 
+238e 67f08132 store 1 ,core_lpm_isogate 
+238f 37d98200 until null ,lpo_edge 
+2390 79207e07 set1 isogate ,pdata 
+2391 67f08132 store 1 ,core_lpm_isogate 
+2392 37d98200 until null ,lpo_edge 
+2393 79207e06 set1 retmem_cs ,pdata 
+2394 67f08132 store 1 ,core_lpm_isogate 
+2395 37d98200 until null ,lpo_edge 
+2396 20600000 rtn 
+
+xtal_fast_wake:
+2397 37d98200 until null ,lpo_edge 
+2398 70813d76 jam 0x76 ,core_xtal_ib 
+2399 37d98200 until null ,lpo_edge 
+239a 70813a37 jam 0x37 ,core_xtal_cap 
+239b 20600000 rtn 
+
+lpm_write_lock:
+239c 6fe0c3cf fetch 1 ,mem_device_option 
+239d 1ff27e00 lshift4 pdata ,pdata 
+239e 67f08143 store 1 ,core_ucode_flag 
+239f 37d98200 until null ,lpo_edge 
+23a0 6fe0c3d0 fetch 1 ,mem_peripheral_lock_flag 
+23a1 79207e05 set1 rom_lock_bit ,pdata 
+23a2 79207e06 set1 option_lock ,pdata 
+23a3 67f08144 store 1 ,core_peripheral_lock 
+23a4 202023c4 branch lpm_write_wait 
+
+lpm_write_ice_disable:
+23a5 6ff08142 fetch 1 ,core_lpm_sysctl 
+23a6 793ffe03 set0 ice_mode ,pdata 
+23a7 67f08142 store 1 ,core_lpm_sysctl 
+23a8 20600000 rtn 
+
+lpm_write_ice_enable:
+23a9 6ff08142 fetch 1 ,core_lpm_sysctl 
+23aa 79207e03 set1 ice_mode ,pdata 
+23ab 67f08142 store 1 ,core_lpm_sysctl 
+23ac 20600000 rtn 
+
+lpm_preon_counter:
+23ad 6fe1c0c3 fetch 3 ,mem_lpm_xtalcnt 
+23ae d8a0813e arg core_lpm_xtalcnt ,contw 
+
+lpm_write_3bytes:
+23af df200003 arg 3 ,loopcnt 
+23b0 202023b3 branch lpm_write_loop 
+
+lpm_write_mpu_s0:
+23b1 d8a08145 arg core_mpu_s0_saddr ,contw 
+
+lpm_write_dword:
+23b2 df200004 arg 4 ,loopcnt 
+
+lpm_write_loop:
+23b3 37d98200 until null ,lpo_edge 
+23b4 e7e08005 istore 1 ,contw 
+23b5 1fecfe00 rshift8 pdata ,pdata 
+23b6 c20023b3 loop lpm_write_loop 
+23b7 202023c4 branch lpm_write_wait 
+
+lpm_write_mpu_s1:
+23b8 d8a08149 arg core_mpu_s1_saddr ,contw 
+23b9 202023b2 branch lpm_write_dword 
+
+lpm_disable_exen_output:
+23ba 6ff08133 fetch 1 ,core_lpm_ldosel 
+23bb 793ffe03 set0 3 ,pdata 
+23bc 67f08133 store 1 ,core_lpm_ldosel 
+23bd 20600000 rtn 
+
+lpm_disable_io_dozed:
+23be 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
+23bf 207a0000 rtn blank 
+23c0 793ffe04 set0 lpm_doze_en_bit ,pdata 
+23c1 202023c3 branch lpm_write_sel_hv 
+
+lpm_save_sel_hv:
+23c2 67e0c0cb store 1 ,mem_lpm_hv_sel 
+
+lpm_write_sel_hv:
+23c3 67f08135 store 1 ,core_io_doze_en 
+
+lpm_write_wait:
+23c4 37d98200 until null ,lpo_edge 
+23c5 37d98200 until null ,lpo_edge 
+23c6 20600000 rtn 
+
+lpm_write_io_vsel:
+23c7 67f08134 store 1 ,core_io_vsel 
+23c8 202023c4 branch lpm_write_wait 
+
+lpm_load_context:
+23c9 204023be call lpm_disable_io_dozed 
+23ca 6fe0c0ef fetch 1 ,mem_saved_spidctrl 
+23cb 67f08080 store 1 ,core_spid_ctrl 
+23cc d8c040cc arg mem_saved_gpio ,contr 
+23cd d8a08070 arg core_gpio_conf ,contw 
+23ce 20407c91 call memcpy16 
+23cf d8a080d4 arg core_gpio_conf_hi ,contw 
+23d0 20407c8b call memcpy8 
+23d1 680440e7 fetchr mark ,8 ,mem_saved_mark 
+23d2 d8c0814d arg core_gpio_wakeup_cfg ,contr 
+23d3 d8a00016 arg mem_gpio_wakeup_cfg ,contw 
+23d4 df20000c arg 12 ,loopcnt 
+23d5 20407cdc call memcpy 
+23d6 20206aff branch load_ucode 
+
+lpm_save_context:
+23d7 600440e7 storer mark ,8 ,mem_saved_mark 
+23d8 d8c08070 arg core_gpio_conf ,contr 
+23d9 d8a040cc arg mem_saved_gpio ,contw 
+23da 20407c91 call memcpy16 
+23db d8c080d4 arg core_gpio_conf_hi ,contr 
+23dc 20407c8b call memcpy8 
+23dd 6ff08080 fetch 1 ,core_spid_ctrl 
+23de 67e0c0ef store 1 ,mem_saved_spidctrl 
+23df 18422400 copy temp ,regb 
+23e0 202023e1 branch lpm_write_gpio_wakeup 
+
+lpm_write_gpio_wakeup:
+23e1 df20000c arg 12 ,loopcnt 
+23e2 da200016 arg mem_gpio_wakeup_cfg ,rega 
+23e3 da60814d arg core_gpio_wakeup_cfg ,regc 
+23e4 37d98200 until null ,lpo_edge 
+
+lpm_write_gpio_loop:
+23e5 efe08011 ifetch 1 ,rega 
+23e6 e8408013 ifetcht 1 ,regc 
+23e7 98467c00 isub temp ,null 
+23e8 2022a3eb branch lpm_write_gpio_loop_next ,zero 
+23e9 e7e08013 istore 1 ,regc 
+23ea 37d98200 until null ,lpo_edge 
+
+lpm_write_gpio_loop_next:
+23eb 1a20a201 increase 1 ,rega 
+23ec 1a60a601 increase 1 ,regc 
+23ed c20023e5 loop lpm_write_gpio_loop 
+23ee 1a420400 copy regb ,temp 
+23ef 20600000 rtn 
+
+lpo_calibration:
+23f0 4491c004 bpatch patch04_3 ,mem_patch04 
+23f1 6ff080cb fetch 1 ,core_ccnt_bit 
+23f2 243a23f7 nbranch lpo_cal_inited ,blank 
+23f3 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+23f4 247a0000 nrtn blank 
+23f5 7080cb0c jam 0xc ,core_ccnt_bit 
+23f6 70800680 jam ccnt_start ,core_misc_ctrl 
+
+lpo_cal_inited:
+23f7 6ff08129 fetch 1 ,core_perf_status 
+23f8 c4008000 rtnbit0 1 
+23f9 6ff1815b fetch 3 ,core_clk_counter 
+23fa 67e1c0bd store 3 ,mem_clks_per_lpo 
+23fb 20600000 rtn 
+
+lpm_doze:
+23fc 6fe0c0ca fetch 1 ,mem_lpm_sysctl 
+23fd 79207e04 set1 reload_code ,pdata 
+23fe 67e0c0ca store 1 ,mem_lpm_sysctl 
+
+lpm_hibernate:
+23ff 44924004 bpatch patch04_4 ,mem_patch04 
+2400 d85fffff arg param_hibernate_clks ,temp 
+2401 6fe0c0a7 fetch 1 ,mem_lpm_hibernate_switch 
+2402 67e0c0c8 store 1 ,mem_lpm_isogate_final 
+2403 6fe0c0ca fetch 1 ,mem_lpm_sysctl 
+2404 67f08142 store 1 ,core_lpm_sysctl 
+2405 37d98200 until null ,lpo_edge 
+
+lpm_sleep:
+2406 4492c004 bpatch patch04_5 ,mem_patch04 
+2407 6fe143f2 fetch 2 ,mem_cb_before_lpm_sleep 
+2408 20407d7b call callback_func 
+
+lpm_sleep_skip_cb_function:
+2409 6fe240ad fetch 4 ,mem_sleep_counter_all 
+240a 9840fe00 iadd temp ,pdata 
+240b 67e240ad store 4 ,mem_sleep_counter_all 
+240c 204023d7 call lpm_save_context 
+240d 6fe0c0cb fetch 1 ,mem_lpm_hv_sel 
+240e 79207e04 set1 lpm_doze_en_bit ,pdata 
+240f 204023c3 call lpm_write_sel_hv 
+2410 2455a3ad ncall lpm_preon_counter ,wake 
+2411 37d98200 until null ,lpo_edge 
+2412 632340b1 storer clkn ,6 ,mem_sleep_clkn 
+2413 20406abf call set_bistfix_save_xram 
+2414 6fe1c0c6 fetch 3 ,mem_lpm_isogate 
+2415 6a20c0c9 fetchr rega ,1 ,mem_lpm_ldo_sel 
+2416 df200003 arg 3 ,loopcnt 
+
+lpm_sleep_loop:
+2417 37d98200 until null ,lpo_edge 
+2418 67f08132 store 1 ,core_lpm_isogate 
+2419 1fecfe00 rshift8 pdata ,pdata 
+241a c2002417 loop lpm_sleep_loop 
+241b 37d98200 until null ,lpo_edge 
+241c 62308133 storer rega ,1 ,core_lpm_ldosel 
+
+lpm_enter_sleep:
+241d 37d98200 until null ,lpo_edge 
+241e 605a004c storet 4 ,core_lpm_reg 
+241f 70800501 jam lpmreg_sel_counter ,core_lpm_wr 
+2420 37df8200 until null ,never 
+
+lpm_recover_clk:
+2421 44934004 bpatch patch04_6 ,mem_patch04 
+2422 58000000 setarg 0 
+2423 1ce27c00 copy auxcnt ,null 
+2424 2022a42c branch lpm_recover_timeout ,zero 
+2425 6ff0813e fetch 1 ,core_lpm_xtalcnt 
+2426 6858813f fetcht 1 ,core_lpm_buckcnt 
+2427 98467c00 isub temp ,null 
+2428 2021242a branch lpm_recover_xtal ,positive 
+2429 18427e00 deposit temp 
+
+lpm_recover_xtal:
+242a 9ce67e00 isub auxcnt ,pdata 
+242b 1fe0fe01 increase 1 ,pdata 
+
+lpm_recover_timeout:
+242c 1fe0fe08 increase 8 ,pdata 
+242d 37d98200 until null ,lpo_edge 
+242e 9e20fe00 iadd lpo_time ,pdata 
+242f 684a40a9 fetcht 4 ,mem_sleep_counter 
+2430 9840fe00 iadd temp ,pdata 
+2431 6849c0bd fetcht 3 ,mem_clks_per_lpo 
+2432 984ffe00 imul32 temp ,pdata 
+2433 1fecfe00 rshift8 pdata ,pdata 
+2434 1ff1fe00 rshift4 pdata ,pdata 
+2435 1fe0fe6e increase param_lpm_fix ,pdata 
+2436 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+2437 9846fc00 idiv temp 
+2438 20407d61 call get_div_result 
+2439 1ff07e00 lshift16 pdata ,pdata 
+243a 18070400 remainder temp 
+243b 9841fe00 ior temp ,pdata 
+243c 684b40b1 fetcht 6 ,mem_sleep_clkn 
+243d 20407d07 call clk_add 
+243e 18423200 copy temp ,clkn 
+243f 6fe34048 fetch 6 ,mem_context + coffset_clk_offset 
+2440 20402109 call calc_clke2 
+2441 1b427e00 deposit clke 
+2442 67e3064e store 6 ,mem_pdatatemp 
+2443 1ce27e00 deposit auxcnt 
+2444 e7e08005 istore 1 ,contw 
+2445 6ff0811d fetch 1 ,core_gpio_in1 
+2446 1fe1fef0 or_into 0xf0 ,pdata 
+2447 e7e08005 istore 1 ,contw 
+2448 20600000 rtn 
+
+lpm_adjust_clk:
+2449 4493c004 bpatch patch04_7 ,mem_patch04 
+244a c584a460 bmark0 mark_context ,lpm_clear_counter 
+244b 684a40ad fetcht 4 ,mem_sleep_counter_all 
+244c dfe00600 arg 0x600 ,pdata 
+244d 98467c00 isub temp ,null 
+244e 20610000 rtn positive 
+244f 18422200 copy temp ,rega 
+2450 684b000f fetcht 6 ,mem_sync_clke 
+2451 1d627e00 deposit rege 
+2452 20407d12 call clk_diff_rt 
+2453 1a220400 copy rega ,temp 
+2454 1fed7e00 lshift8 pdata ,pdata 
+2455 1ff27e00 lshift4 pdata ,pdata 
+2456 9846fc00 idiv temp 
+2457 20407d61 call get_div_result 
+2458 d84000c8 arg param_lpm_adjmax ,temp 
+2459 20407d6e call ceiling 
+245a 67e0800e store 1 ,mem_lpm_adjust 
+245b 2434245d nbranch lpm_adjust_positive ,user 
+245c 1fe67e00 sub pdata ,0 ,pdata 
+
+lpm_adjust_positive:
+245d 6849c0bd fetcht 3 ,mem_clks_per_lpo 
+245e 9840fe00 iadd temp ,pdata 
+245f 67e1c0bd store 3 ,mem_clks_per_lpo 
+
+lpm_clear_counter:
+2460 58000000 setarg 0 
+2461 67e240ad store 4 ,mem_sleep_counter_all 
+2462 20600000 rtn 
+
+lpm_dispatch:
+2463 44944005 bpatch patch05_0 ,mem_patch05 
+2464 204023f0 call lpo_calibration 
+2465 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+2466 207a0000 rtn blank 
+2467 6fe0c094 fetch 1 ,mem_lpm_mode 
+2468 207a0000 rtn blank 
+2469 6fe0c483 fetch 1 ,mem_secure_connections_enable 
+246a 203a246d branch lpm_dispatch_next ,blank 
+246b 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
+246c 207a0000 rtn blank 
+
+lpm_dispatch_next:
+246d 6fe0c484 fetch 1 ,mem_sc_calc 
+246e 247a0000 nrtn blank 
+246f da6020af arg context_check_a_wack ,regc 
+2470 20402069 call context_search 
+2471 20628000 rtn zero 
+2472 204024c6 call lpm_check_wake_lock 
+2473 247a0000 nrtn blank 
+2474 2040205d call context_check_idle 
+2475 2422a494 nbranch lpm_dispatch_unconn ,zero 
+2476 20758000 rtn wake 
+2477 4494c005 bpatch patch05_1 ,mem_patch05 
+2478 68488015 fetcht 1 ,mem_lpm_current_mult 
+2479 6fe14042 fetch 2 ,mem_context + coffset_tsniff 
+247a 984ffe00 imul32 temp ,pdata 
+247b 18518400 rshift4 temp ,temp 
+247c 184b0400 rshift2 temp ,temp 
+247d 98467e00 isub temp ,pdata 
+247e 684a4044 fetcht 4 ,mem_context + coffset_sniff_anchor 
+247f 9840fe00 iadd temp ,pdata 
+2480 6848c0a6 fetcht 1 ,mem_lpm_overhead 
+2481 98467e00 isub temp ,pdata 
+2482 1ff06000 lshift16 pdata ,alarm 
+2483 6fe1404e fetch 2 ,mem_context + coffset_rx_window 
+2484 1fe37e00 rshift pdata ,pdata 
+2485 20407d2e call clk2bt 
+2486 1e027e00 deposit alarm 
+2487 20407d14 call clk_diff 
+2488 1b420400 copy clke ,temp 
+2489 20407d12 call clk_diff_rt 
+248a 20740000 rtn user 
+
+lpm_dispatch_sleep:
+248b 20407d27 call clk2lpo 
+
+lpm_dispatch_lpo:
+248c 44954005 bpatch patch05_2 ,mem_patch05 
+248d 6fe0c0c3 fetch 1 ,mem_lpm_xtalcnt 
+248e 98467c00 isub temp ,null 
+248f 20212460 branch lpm_clear_counter ,positive 
+2490 604a40a9 storet 4 ,mem_sleep_counter 
+2491 2040373a call app_will_enter_lpm 
+2492 684a40a9 fetcht 4 ,mem_sleep_counter 
+2493 20202406 branch lpm_sleep 
+
+lpm_dispatch_unconn:
+2494 4495c005 bpatch patch05_3 ,mem_patch05 
+2495 6fe0c38c fetch 1 ,mem_le_adv_enable 
+2496 243a2498 nbranch lpm_unconn_cont ,blank 
+2497 20600000 rtn 
+
+lpm_unconn_cont:
+2498 6fe140a4 fetch 2 ,mem_lpm_interval 
+2499 207a0000 rtn blank 
+
+lpm_sleep_btclk:
+249a 6848c0a6 fetcht 1 ,mem_lpm_overhead 
+249b 98467e00 isub temp ,pdata 
+249c d8401d4c arg 7500 ,temp 
+249d 984ffe00 imul32 temp ,pdata 
+249e 2020248b branch lpm_dispatch_sleep 
+
+lpm_mult_wait_timeout:
+249f 6fe143ee fetch 2 ,mem_cb_bt_set_mult 
+24a0 20407d7b call callback_func 
+24a1 243a24b7 nbranch lpm_mult_short ,blank 
+24a2 70001500 jam 0 ,mem_lpm_current_mult 
+24a3 c586a4b7 bmark0 mark_lpm_mult_enable ,lpm_mult_short 
+24a4 6fe0c0c2 fetch 1 ,mem_lpm_mult_cnt 
+24a5 203a24bb branch lpm_mult_long ,blank 
+24a6 1fe0ffff increase -1 ,pdata 
+24a7 67e0c0c2 store 1 ,mem_lpm_mult_cnt 
+24a8 20600000 rtn 
+
+lpm_match:
+24a9 7040a800 jam 0 ,mem_sniff_unint_lost 
+24aa 6fe1c0b7 fetch 3 ,mem_sniff_rcv 
+24ab 1fe0fe01 increase 1 ,pdata 
+24ac 67e1c0b7 store 3 ,mem_sniff_rcv 
+24ad 20600000 rtn 
+
+lpm_lost:
+24ae 44964005 bpatch patch05_4 ,mem_patch05 
+24af 70001500 jam 0 ,mem_lpm_current_mult 
+24b0 6fe1c0ba fetch 3 ,mem_sniff_lost 
+24b1 1fe0fe01 increase 1 ,pdata 
+24b2 67e1c0ba store 3 ,mem_sniff_lost 
+24b3 6fe0c0a8 fetch 1 ,mem_sniff_unint_lost 
+24b4 1fe0fe01 increase 1 ,pdata 
+24b5 67e0c0a8 store 1 ,mem_sniff_unint_lost 
+24b6 20600000 rtn 
+
+lpm_mult_short:
+24b7 70001500 jam 0 ,mem_lpm_current_mult 
+24b8 6fe0c0c1 fetch 1 ,mem_lpm_mult_timeout 
+24b9 67e0c0c2 store 1 ,mem_lpm_mult_cnt 
+24ba 20600000 rtn 
+
+lpm_mult_long:
+24bb 6848c0c0 fetcht 1 ,mem_lpm_mult 
+24bc 60488015 storet 1 ,mem_lpm_current_mult 
+24bd 20600000 rtn 
+
+lpm_get_wake_lock:
+24be 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
+24bf f9207e00 qset1 pdata 
+24c0 67e140a2 store 2 ,mem_lpm_wake_lock 
+24c1 20600000 rtn 
+
+lpm_put_wake_lock:
+24c2 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
+24c3 f93ffe00 qset0 pdata 
+24c4 67e140a2 store 2 ,mem_lpm_wake_lock 
+24c5 20600000 rtn 
+
+lpm_check_wake_lock:
+24c6 4496c005 bpatch patch05_5 ,mem_patch05 
+24c7 20403738 call app_check_wake_lock 
+24c8 6fe140a2 fetch 2 ,mem_lpm_wake_lock 
+24c9 1fe22200 copy pdata ,rega 
+24ca 6fe1c462 fetch 3 ,mem_tx_fifo3 
+24cb 7d3a2201 nsetflag blank ,wake_lock_ble_tx ,rega 
+24cc 6fe444ea fetch util_fifo_len ,mem_ipc_fifo_bt2c51 
+24cd 7d3a220f nsetflag blank ,wake_lock_ipc_bt2c51 ,rega 
+24ce 6fe444f2 fetch util_fifo_len ,mem_ipc_fifo_c512bt 
+24cf 7d3a220e nsetflag blank ,wake_lock_ipc_c512bt ,rega 
+24d0 6fe0c114 fetch 1 ,mem_hci_cmd 
+24d1 7d3a2208 nsetflag blank ,wake_lock_cmd ,rega 
+24d2 6fe0c3cf fetch 1 ,mem_device_option 
+24d3 2fe1fe0a compare dvc_op_module ,pdata ,0xff 
+24d4 2040a4d8 call lpm_uart_wake_lock ,true 
+24d5 1a227e00 copy rega ,pdata 
+24d6 67e140a2 store 2 ,mem_lpm_wake_lock 
+24d7 20600000 rtn 
+
+lpm_uart_wake_lock:
+24d8 6ff10112 fetch 2 ,core_uart_rxitems 
+24d9 7d3a2206 nsetflag blank ,wake_lock_uart_rx ,rega 
+24da 6ff1010e fetch 2 ,core_uart_txitems 
+24db 7d3a2205 nsetflag blank ,wake_lock_uart_tx ,rega 
+24dc 20600000 rtn 
+
+le_init_conn:
+24dd 471dc027 bpatchx patch27_3 ,mem_patch27 
+24de 7855fc00 disable wake 
+24df 70017e01 jam 1 ,mem_le_conn_handle 
+24e0 70016803 jam 3 ,mem_le_state 
+24e1 70017f01 jam 1 ,mem_le_arq 
+24e2 5fffffff setarg -1 
+24e3 67e10182 store 2 ,mem_le_event_count 
+24e4 18007e00 force 0 ,pdata 
+24e5 67e08180 store 1 ,mem_le_ch 
+24e6 67e0818b store 1 ,mem_le_op 
+24e7 67e1c0b7 store 3 ,mem_sniff_rcv 
+24e8 67e1c0ba store 3 ,mem_sniff_lost 
+24e9 2040283a call le_clear_enc 
+24ea 70416b01 jam 1 ,mem_le_txheader 
+24eb 70416c00 jam 0 ,mem_le_txlen 
+24ec 70019d01 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+24ed 70019e01 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+24ee 70439a00 jam 0 ,mem_le_l2cap_att_states 
+24ef 20202914 branch le_supervision_flush 
+
+le_init_master:
+24f0 471e4027 bpatchx patch27_4 ,mem_patch27 
+24f1 7834fc00 enable master 
+24f2 70016903 jam lemode_master ,mem_le_mode 
+24f3 70439c01 jam 1 ,mem_le_att_handle 
+24f4 70068f01 jam 1 ,mem_le_search_handle_start 
+24f5 5800ffff setarg 0xffff 
+24f6 67e10691 store 2 ,mem_le_search_handle_end 
+24f7 18007e00 force 0 ,pdata 
+24f8 67e2c46c store 5 ,mem_ccm_pcnt_rx 
+24f9 79207e27 set1 le_ccm_directionbit ,pdata 
+24fa 67e2c467 store 5 ,mem_ccm_pcnt_tx 
+24fb 202024dd branch le_init_conn 
+
+le_init_slave:
+24fc 471ec027 bpatchx patch27_5 ,mem_patch27 
+24fd 7854fc00 disable master 
+24fe 58000017 setarg 0x17 
+24ff 67e142e5 store 2 ,mem_le_remote_mtu 
+2500 1fe0fe04 increase 4 ,pdata 
+2501 67e143bc store 2 ,mem_remote_rx_max_octets 
+2502 70016901 jam lemode_slave ,mem_le_mode 
+2503 70438c00 jam 0 ,mem_le_adv_enable 
+2504 70001500 jam 0 ,mem_lpm_current_mult 
+2505 20402567 call le_clear_pairing_state 
+2506 6fe10196 fetch 2 ,mem_le_superto 
+2507 67e142f7 store 2 ,mem_le_init_superto 
+2508 6fe1016a fetch 2 ,mem_le_tsniff 
+2509 1feffe05 mul32 pdata ,5 ,pdata 
+250a 1ff1fe00 rshift4 pdata ,pdata 
+250b 67e10196 store 2 ,mem_le_superto 
+250c 202024dd branch le_init_conn 
+
+le_conn_dispatch:
+250d 471f4027 bpatchx patch27_6 ,mem_patch27 
+250e 2040258d call le_enable 
+250f 6fe08168 fetch 1 ,mem_le_state 
+2510 2feffe04 isolate1 lestate_encryption ,pdata 
+2511 79208032 setflag true ,mark_ble_encryption ,mark 
+2512 20403727 call app_process_ble 
+2513 6fe08169 fetch 1 ,mem_le_mode 
+2514 c280a516 bbit1 mode_master ,le_master_dispatch 
+2515 20202527 branch le_slave_dispatch 
+
+le_master_dispatch:
+2516 471fc027 bpatchx patch27_7 ,mem_patch27 
+2517 7834fc00 enable master 
+2518 2040290a call le_supervision_update 
+2519 20212524 branch le_master_disconn ,positive 
+251a 204025d0 call le_setup 
+251b 2040284f call le_prepare_tx 
+251c 7856fc00 disable match 
+251d 2040270e call le_transmit_receive_sifs 
+251e 24768000 nrtn match 
+251f 6fe08005 fetch 1 ,mem_le_conn_rcv 
+2520 1fe0fe01 increase 1 ,pdata 
+2521 67e08005 store 1 ,mem_le_conn_rcv 
+2522 20402801 call le_acknowledge 
+2523 20202525 branch le_disable_master 
+
+le_master_disconn:
+2524 2040255b call le_disconnect 
+
+le_disable_master:
+2525 7854fc00 disable master 
+2526 20600000 rtn 
+
+le_slave_dispatch:
+2527 47204028 bpatchx patch28_0 ,mem_patch28 
+2528 70434200 jam 0 ,mem_le_md_count 
+2529 793f8030 set0 mark_ble_crc_fail ,mark 
+252a 20407540 call sp_calc_sequence_256 
+252b 20402fd3 call le_secure_connect_sm 
+252c 78577c00 disable attempt 
+252d 2040290a call le_supervision_update 
+252e 2021255b branch le_slave_disconn ,positive 
+252f 6fe0819d fetch 1 ,mem_le_rx_phy 
+2530 20402579 call le_enable_phy_by_pdata 
+2531 204025d0 call le_setup 
+2532 20402627 call le_receive_slave 
+2533 242c254d nbranch le_slave_unsync ,sync 
+2534 2040256c call le_got_first_packet 
+2535 2036a538 branch le_slave_match ,match 
+2536 c5182538 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+2537 20202547 branch le_slave_cont 
+
+le_slave_crc_fail:
+
+le_slave_match:
+2538 4720c028 bpatchx patch28_1 ,mem_patch28 
+2539 6fe0c342 fetch 1 ,mem_le_md_count 
+253a 1fe0fe01 pincrease 1 
+253b 67e0c342 store 1 ,mem_le_md_count 
+253c c0062547 beq le_md_max_count ,le_slave_cont 
+253d 20402801 call le_acknowledge 
+253e 2040284f call le_prepare_tx 
+253f 6fe0819e fetch 1 ,mem_le_tx_phy 
+2540 20402579 call le_enable_phy_by_pdata 
+2541 2040271f call le_transmit 
+2542 204028b2 call le_parse 
+2543 6fe143ea fetch 2 ,mem_cb_ble_transmit 
+2544 20407d7b call callback_func 
+2545 20402551 call le_check_md 
+2546 20342555 branch le_slave_more_data ,user 
+
+le_slave_cont:
+2547 47214028 bpatchx patch28_2 ,mem_patch28 
+2548 20402f98 call le_pairing_sm 
+2549 20402f8f call le_check_paring_time 
+254a 20407831 call check_51cmd 
+254b 6fe0818b fetch 1 ,mem_le_op 
+254c c281a55b bbit1 op_disconn ,le_slave_disconn 
+
+le_slave_unsync:
+254d 4721c028 bpatchx patch28_3 ,mem_patch28 
+254e 204020cf call end_of_packet 
+254f 20402984 call le_lpm_set_mult 
+2550 202020f7 branch calc_clke_offset 
+
+le_check_md:
+2551 c5157dbc bmark1 mark_ble_rx_md ,enable_user 
+2552 c514fdbc bmark1 mark_ble_tx_md ,enable_user 
+2553 c5187dbc bmark1 mark_ble_crc_fail ,enable_user 
+2554 20207dbe branch disable_user 
+
+le_slave_more_data:
+2555 47224028 bpatchx patch28_4 ,mem_patch28 
+2556 78377c00 enable attempt 
+2557 20402712 call le_transmit_receive_sifs_notx 
+2558 2036a538 branch le_slave_match ,match 
+2559 c5182538 bmark1 mark_ble_crc_fail ,le_slave_crc_fail 
+255a 20202547 branch le_slave_cont 
+
+le_slave_disconn:
+
+le_disconnect:
+255b 4722c028 bpatchx patch28_5 ,mem_patch28 
+255c 20402562 call le_clear_connection_info 
+255d 20403777 call app_disconn_reason_collect_ble 
+255e 20402567 call le_clear_pairing_state 
+255f 20402fe1 call le_sc_state_clear 
+2560 70064d15 jam bt_evt_le_disconnected ,mem_fifo_temp 
+2561 20207819 branch ui_ipc_send_event 
+
+le_clear_connection_info:
+2562 d8a04458 arg mem_used_map ,contw 
+2563 20407c9b call memset0_16 
+2564 70017e00 jam 0 ,mem_le_conn_handle 
+2565 70016900 jam lemode_idle ,mem_le_mode 
+2566 70016800 jam 0 ,mem_le_state 
+
+le_clear_pairing_state:
+2567 47234028 bpatchx patch28_6 ,mem_patch28 
+2568 7042ff00 jam flag_le_enc_null ,mem_le_enc_state 
+2569 7042fe00 jam flag_le_pairing_null ,mem_le_pairing_state 
+256a 20407440 call sp_clear_flags 
+256b 20600000 rtn 
+
+le_got_first_packet:
+256c 4723c028 bpatchx patch28_7 ,mem_patch28 
+256d 6fe08005 fetch 1 ,mem_le_conn_rcv 
+256e 1fe0fe01 increase 1 ,pdata 
+256f 67e08005 store 1 ,mem_le_conn_rcv 
+2570 6fe08168 fetch 1 ,mem_le_state 
+2571 c3818000 rtnbit1 lestate_got_first_packet 
+2572 79207e03 set1 lestate_got_first_packet ,pdata 
+2573 67e08168 store 1 ,mem_le_state 
+2574 6fe142f7 fetch 2 ,mem_le_init_superto 
+2575 67e10196 store 2 ,mem_le_superto 
+2576 58000000 setarg 0 
+2577 67e2431f store 4 ,mem_le_transmit_window 
+2578 20600000 rtn 
+
+le_enable_phy_by_pdata:
+2579 1fe20400 copy pdata ,temp 
+257a 47244029 bpatchx patch29_0 ,mem_patch29 
+
+le_enable_phy_by_pdata1:
+257b 18427e00 copy temp ,pdata 
+257c c280258d bbit1 bit_le_1m_phy ,le_enable 
+257d c280a582 bbit1 bit_le_2m_phy ,le_enable_2m 
+257e c301258d bbit0 bit_le_coded_phy ,le_enable 
+257f c283a589 bbit1 bit_le_coded_phy_s8 ,le_enable_coded_s8 
+2580 c2812585 bbit1 bit_le_coded_phy_s2 ,le_enable_coded_s2 
+2581 2020258d branch le_enable 
+
+le_enable_2m:
+2582 793f802f set0 mark_ble_lr ,mark 
+2583 7920002d set1 mark_ble_2m ,mark 
+2584 20600000 rtn 
+
+le_enable_coded_s2:
+
+le_enable_coded:
+2585 793f802d set0 mark_ble_2m ,mark 
+2586 7920002f set1 mark_ble_lr ,mark 
+2587 793f802e set0 mark_ble_lr_s8 ,mark 
+2588 20600000 rtn 
+
+le_enable_coded_s8:
+2589 793f802d set0 mark_ble_2m ,mark 
+258a 7920002f set1 mark_ble_lr ,mark 
+258b 7920002e set1 mark_ble_lr_s8 ,mark 
+258c 20600000 rtn 
+
+le_enable:
+258d 4724c029 bpatchx patch29_1 ,mem_patch29 
+258e 793f802d set0 mark_ble_2m ,mark 
+258f 793f802f set0 mark_ble_lr ,mark 
+2590 20600000 rtn 
+
+le_disable:
+2591 47254029 bpatchx patch29_2 ,mem_patch29 
+2592 793f8032 set0 mark_ble_encryption ,mark 
+2593 70890101 jam 0x01 ,0x8901 
+2594 70892080 jam 0x80 ,0x8920 
+2595 70893003 jam 0x03 ,0x8930 
+2596 20600000 rtn 
+
+le_prep:
+2597 4725c029 bpatchx patch29_3 ,mem_patch29 
+2598 7844fc00 disable enable_crc 
+2599 7843fc00 disable enable_white 
+259a 6fe18190 fetch 3 ,mem_le_crcinit 
+259b 98001e00 iforce crc24_init 
+259c 6fe08007 fetch 1 ,mem_le_ch_mapped 
+
+le_prep_next:
+259d 1fed8400 reverse pdata ,temp 
+259e 79200401 set1 1 ,temp 
+259f 18431c00 rshift temp ,white_init 
+25a0 20600000 rtn 
+
+le_rx_setfreq:
+25a1 204025aa call le_setfreq 
+
+le_rf_rx_enable:
+25a2 20402173 call set_freq_rx 
+25a3 6fe1003e fetch 2 ,mem_param_pll_setup 
+25a4 20402340 call sleep 
+25a5 202021aa branch rf_rx_enable 
+
+le_tx_setfreq:
+25a6 2036a202 branch txon ,match 
+25a7 c5182202 bmark1 mark_ble_crc_fail ,txon 
+
+le_tx_setfreq0:
+25a8 204025aa call le_setfreq 
+25a9 202021ff branch set_freq_tx 
+
+le_setfreq:
+25aa 47264029 bpatchx patch29_4 ,mem_patch29 
+25ab 20402164 call set_sync_on 
+25ac 6fe0c33d fetch 1 ,mem_le_testtype 
+25ad 243a25bd nbranch le_ctf_test ,blank 
+25ae 6fe08007 fetch 1 ,mem_le_ch_mapped 
+25af 1fe67c24 sub pdata ,36 ,null 
+25b0 202125b7 branch le_ctf_normal ,positive 
+25b1 18000400 force 0 ,temp 
+25b2 c1128000 rtneq 37 
+25b3 18000418 force 24 ,temp 
+25b4 c1130000 rtneq 38 
+25b5 1800044e force 78 ,temp 
+25b6 20600000 rtn 
+
+le_ctf_normal:
+25b7 1fe67c0a sub pdata ,10 ,null 
+25b8 202125ba branch le_ctf_low ,positive 
+25b9 1fe0fe01 increase 1 ,pdata 
+
+le_ctf_low:
+25ba 1fe3fe00 lshift pdata ,pdata 
+25bb 1fe08402 add pdata ,2 ,temp 
+25bc 20600000 rtn 
+
+le_ctf_test:
+25bd 6fe08007 fetch 1 ,mem_le_ch_mapped 
+25be 1fe38400 lshift pdata ,temp 
+25bf 20600000 rtn 
+
+le_sca_map:
+25c0 d84001f4 arg 500 ,temp 
+25c1 207a0000 rtn blank 
+25c2 d84000fa arg 250 ,temp 
+25c3 c1008000 rtneq 1 
+25c4 d8400096 arg 150 ,temp 
+25c5 c1010000 rtneq 2 
+25c6 d8400064 arg 100 ,temp 
+25c7 c1018000 rtneq 3 
+25c8 d840004b arg 75 ,temp 
+25c9 c1020000 rtneq 4 
+25ca d8400032 arg 50 ,temp 
+25cb c1028000 rtneq 5 
+25cc d8400028 arg 40 ,temp 
+25cd c1030000 rtneq 6 
+25ce d8400014 arg 20 ,temp 
+25cf 20600000 rtn 
+
+le_setup:
+25d0 4726c029 bpatchx patch29_5 ,mem_patch29 
+25d1 78287c00 enable swfine 
+25d2 6fe2018c fetch 4 ,mem_le_access 
+25d3 98001200 iforce access 
+25d4 20402605 call le_map_channel 
+25d5 58000200 setarg 0x200 
+25d6 2034a5d9 branch le_setup_master ,master 
+25d7 6fe10176 fetch 2 ,mem_le_receive_window 
+25d8 1fe37e00 rshift pdata ,pdata 
+
+le_setup_master:
+25d9 6849003e fetcht 2 ,mem_param_pll_setup 
+25da 9840fe00 iadd temp ,pdata 
+25db 20402327 call ahead_window 
+25dc 1b427e00 deposit clke 
+25dd 20600000 rtn 
+
+le_context_nextevent:
+25de 47274029 bpatchx patch29_6 ,mem_patch29 
+25df 20407c53 call push_stack_rega_b_c 
+25e0 67210679 storer loopcnt ,2 ,mem_loopcnt 
+25e1 1a208c01 add rega ,coffset_mode ,contr 
+25e2 efe08006 ifetch 1 ,contr 
+25e3 c4000000 rtnbit0 mode_le 
+25e4 1a208a1a add rega ,coffset_le_event_cnt ,contw 
+25e5 efe10005 ifetch 2 ,contw 
+25e6 1fe0fe01 increase 1 ,pdata 
+25e7 e7e10005 istore 2 ,contw 
+25e8 20402780 call le_update_param 
+25e9 204027a2 call le_update_channel_map 
+25ea 204027ab call le_update_phy 
+25eb 204025ef call le_context_nexthop 
+25ec 20407c62 call pop_stack_rega_b_c 
+25ed 6f210679 fetchr loopcnt ,2 ,mem_loopcnt 
+25ee 20600000 rtn 
+
+le_context_nexthop:
+25ef 1a208c19 add rega ,coffset_le_hop ,contr 
+25f0 efe08006 ifetch 1 ,contr 
+25f1 1a208a18 add rega ,coffset_le_ch ,contw 
+25f2 e8408005 ifetcht 1 ,contw 
+25f3 9840fe00 iadd temp ,pdata 
+25f4 1fe67c24 sub pdata ,36 ,null 
+25f5 202125f7 branch le_nexthop_nowrap ,positive 
+25f6 1fe0ffdb increase -37 ,pdata 
+
+le_nexthop_nowrap:
+25f7 e7e08005 istore 1 ,contw 
+25f8 20600000 rtn 
+
+le_calc_channel_map:
+25f9 1a208c30 add rega ,coffset_le_channel_map ,contr 
+25fa efe28006 ifetch 5 ,contr 
+25fb 18000400 force 0 ,temp 
+25fc 18007225 force 37 ,loopcnt 
+
+le_count_channels_loop:
+25fd c30025ff bbit0 0 ,le_count_channels_notused 
+25fe 18408401 increase 1 ,temp 
+
+le_count_channels_notused:
+25ff 1fe37e00 rshift pdata ,pdata 
+2600 c20025fd loop le_count_channels_loop 
+2601 1840ffff add temp ,-1 ,pdata 
+2602 1a208a22 add rega ,coffset_le_channels ,contw 
+2603 e7e08005 istore 1 ,contw 
+2604 20600000 rtn 
+
+le_map_channel:
+2605 4727c029 bpatchx patch29_7 ,mem_patch29 
+2606 6fe08180 fetch 1 ,mem_le_ch 
+2607 98000e00 iforce queue 
+2608 684a8198 fetcht 5 ,mem_le_channel_map 
+2609 a84fffff qisolate1 temp 
+260a 2020a61a branch le_map_channel_end ,true 
+
+le_map_channel_next:
+260b 6fe0818a fetch 1 ,mem_le_channels 
+260c 98e67e00 isub queue ,pdata 
+260d 20212610 branch le_map_channel_cont ,positive 
+260e 1fe60fff sub pdata ,-1 ,queue 
+260f 2020260b branch le_map_channel_next 
+
+le_map_channel_cont:
+2610 18e27200 copy queue ,loopcnt 
+2611 18000e00 force 0 ,queue 
+
+le_map_channel_loop:
+2612 a84fffff qisolate1 temp 
+2613 2020a615 branch le_map_channel_skip ,true 
+2614 1f20f201 increase 1 ,loopcnt 
+
+le_map_channel_skip:
+2615 1f227e00 deposit loopcnt 
+2616 203a261a branch le_map_channel_end ,blank 
+2617 18e08e01 increase 1 ,queue 
+2618 1f20f3ff increase -1 ,loopcnt 
+2619 20202612 branch le_map_channel_loop 
+
+le_map_channel_end:
+261a 18e27e00 deposit queue 
+261b 67e08007 store 1 ,mem_le_ch_mapped 
+261c 20600000 rtn 
+
+le_wait_tx:
+261d 2034a620 branch le_wait_master ,master 
+261e 37c18200 until null ,timeout 
+261f 20600000 rtn 
+
+le_wait_master:
+2620 d9600ea0 arg 0xea0 ,timeup 
+2621 34730200 until clkn_rt ,meet 
+2622 20600000 rtn 
+
+le_receive_adv:
+2623 78487c00 disable swfine 
+2624 6fe1434a fetch 2 ,mem_le_scan_window 
+2625 1fe21600 copy pdata ,timeup 
+2626 2020262d branch le_receive_packet 
+
+le_receive_slave:
+2627 4728402a bpatchx patch2a_0 ,mem_patch2a 
+2628 20402692 call le_dec_init 
+2629 78287c00 enable swfine 
+262a 6fe10176 fetch 2 ,mem_le_receive_window 
+262b 684a431f fetcht 4 ,mem_le_transmit_window 
+262c 98409600 iadd temp ,timeup 
+
+le_receive_packet:
+262d 204025a1 call le_rx_setfreq 
+
+le_receive_rxon:
+262e 4728c02a bpatchx patch2a_1 ,mem_patch2a 
+262f 20402597 call le_prep 
+2630 c597a635 bmark0 mark_ble_lr ,le_receive_nolr 
+2631 783cfc00 pulse dewhiten_code_calc 
+2632 2000001e nop 30 
+2633 20402597 call le_prep 
+2634 19699600 lshift3 timeup ,timeup 
+
+le_receive_nolr:
+2635 7856fc00 disable match 
+2636 7826fc00 enable decode_fec0 
+2637 7830fc00 enable is_rx 
+2638 78507c00 disable is_tx 
+2639 19623600 copy timeup ,stop_watch 
+263a 37c18400 correlate null ,timeout 
+263b 2037263e branch le_receive_on_attempt ,attempt 
+263c 1b420400 copy clke ,temp 
+263d 604b000f storet 6 ,mem_sync_clke 
+
+le_receive_on_attempt:
+263e 242c26ce nbranch le_unsync_end ,sync 
+263f 78287c00 enable swfine 
+2640 6fe0c169 fetch 1 ,mem_le_tx_ifs_defference 
+2641 d8404e20 arg param_20ms_init ,temp 
+2642 98408400 iadd temp ,temp 
+2643 6fe0c148 fetch 1 ,mem_system_clk 
+2644 984fb600 imul32 temp ,stop_watch 
+2645 204066e7 call rf_debug_rx_sync_line 
+2646 2037264b branch le_receive_skip ,attempt 
+2647 204026d3 call calc_clke_all_modem 
+2648 6fe08168 fetch 1 ,mem_le_state 
+2649 c301a64b bbit0 lestate_got_first_packet ,le_receive_skip 
+264a 2055a449 call lpm_adjust_clk ,wake 
+
+le_receive_skip:
+264b 204022cd call save_rssi 
+264c 7823fc00 enable enable_white 
+264d 7824fc00 enable enable_crc 
+264e 09800008 parse demod ,bucket ,8 
+264f 19897e00 rshift3 pwindow ,pdata 
+2650 67e0804c store 1 ,mem_le_rxbuf_data_header 
+2651 09800008 parse demod ,bucket ,8 
+2652 19897e00 rshift3 pwindow ,pdata 
+2653 67e0804d store 1 ,mem_le_rxbuf_data_length 
+2654 1fe27200 copy pdata ,loopcnt 
+2655 2022a671 branch le_rx_nopayload ,zero 
+2656 c519265c bmark1 mark_ble_encryption ,le_rx_dec 
+
+le_rx_loop:
+2657 09800008 parse demod ,bucket ,8 
+2658 19897e00 rshift3 pwindow ,pdata 
+2659 e7e08005 istore 1 ,contw 
+265a c2002657 loop le_rx_loop 
+265b 20202671 branch le_rx_nopayload 
+
+le_rx_dec:
+265c 18a22400 copy contw ,regb 
+265d 4729402a bpatchx patch2a_2 ,mem_patch2a 
+265e 204027fa call le_check_retransmit 
+265f 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
+2660 1a20a3fc increase -4 ,rega 
+2661 242126ce nbranch le_crc_fail_consecutive ,positive 
+2662 20402697 call le_dec_start 
+2663 1a420a00 copy regb ,contw 
+2664 d8400000 arg 0 ,temp 
+2665 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+2666 1f20f3fc increase -4 ,loopcnt 
+2667 2022a66f branch le_rx_dec_loop_end ,zero 
+
+le_rx_dec_loop:
+2668 09800008 parse demod ,bucket ,8 
+2669 19897e00 rshift3 pwindow ,pdata 
+266a e7e08005 istore 1 ,contw 
+266b 18408401 increase 1 ,temp 
+266c 18417c0f and temp ,0xf ,null 
+266d 2042a6b5 call le_dec ,zero 
+266e c2002668 loop le_rx_dec_loop 
+
+le_rx_dec_loop_end:
+266f 204026bd call le_dec_end 
+2670 1a420a00 copy regb ,contw 
+
+le_rx_nopayload:
+2671 4729c02a bpatchx patch2a_3 ,mem_patch2a 
+2672 09800018 parse demod ,bucket ,24 
+2673 1fef7e00 rshift32 pdata ,pdata 
+2674 1ff17e00 rshift16 pdata ,pdata 
+2675 e7e18005 istore 3 ,contw 
+2676 78287c00 enable swfine 
+2677 204026eb call le_set_until_tx_timer 
+2678 202326c9 branch le_crc_fail ,crc_failed 
+2679 c5992683 bmark0 mark_ble_encryption ,le_rx_match 
+267a 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+267b 203a2683 branch le_rx_match ,blank 
+267c 1fe0fffc increase -4 ,pdata 
+267d 67e0804d store 1 ,mem_le_rxbuf_data_length 
+267e 204072b9 call wait_ccm_done 
+267f 6ff08108 fetch 1 ,core_misc_status 
+2680 c303a6ce bbit0 7 ,le_crc_fail_consecutive 
+2681 1800700c force regidx_result ,regext_index 
+2682 65e20154 storer regext ,4 ,mem_le_peer_mic 
+
+le_rx_match:
+2683 204066e6 call rf_debug_rx_crc_line 
+2684 7836fc00 enable match 
+2685 793f8030 set0 mark_ble_crc_fail ,mark 
+
+le_crc_fail_tx:
+2686 472a402a bpatchx patch2a_4 ,mem_patch2a 
+2687 204072bb call ccm_ctrl_clr 
+2688 6fe0819d fetch 1 ,mem_le_rx_phy 
+2689 7d3e7e07 nsetflag ble_coded_info ,bit_le_coded_phy_s8 ,pdata 
+268a 67e0819d store 1 ,mem_le_rx_phy 
+268b 2040268d call le_match_set_sync_on 
+268c 2020268f branch le_match_set_txfreq 
+
+le_match_set_sync_on:
+268d 7846fc00 disable decode_fec0 
+268e 20202164 branch set_sync_on 
+
+le_match_set_txfreq:
+268f 472ac02a bpatchx patch2a_5 ,mem_patch2a 
+2690 68488008 fetcht 1 ,mem_last_freq 
+2691 202021ca branch set_freq_tx_int 
+
+le_dec_init:
+2692 c6990000 rtnmark0 mark_ble_encryption 
+2693 20407356 call load_sk 
+2694 1800700c force regidx_result ,regext_index 
+2695 2040735e call aes_clear 
+2696 2020735d branch aes_clear_data 
+
+le_dec_start:
+2697 472b402a bpatchx patch2a_6 ,mem_patch2a 
+2698 70806c00 jam 0 ,core_ccm_aad0 
+2699 70806d01 jam 1 ,core_ccm_aad1 
+269a 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+269b 1fe17e03 and_into 0x3 ,pdata 
+269c 67f0806e store 1 ,core_ccm_aad2 
+269d 5800004e setarg mem_le_rxbuf_data_payload 
+269e 67f10068 store 2 ,core_ccm_input_playload_addr 
+269f 67f1006a store 2 ,core_ccm_output_playload_addr 
+26a0 6a20804d fetchr rega ,1 ,mem_le_rxbuf_data_length 
+26a1 1a20a3fc increase -4 ,rega 
+26a2 684ac46c fetcht 5 ,mem_ccm_pcnt_rx 
+26a3 280ffe0f isolate1 mark_old_packet ,mark 
+26a4 2040a6ab call le_pcnt_rx_sub1 ,true 
+26a5 20407253 call ccm_b0 
+26a6 58000000 setarg 0 
+26a7 67f100c0 store 2 ,core_ccm_inptr 
+26a8 70800a06 jam 6 ,core_ccm_ctrl 
+26a9 70800a07 jam 7 ,core_ccm_ctrl 
+26aa 20600000 rtn 
+
+le_pcnt_rx_sub1:
+26ab 18467c00 sub temp ,0 ,null 
+26ac 2022a6b0 branch le_pcnt_rx_sub1_0 ,zero 
+26ad 184085ff increase -1 ,temp 
+26ae 79200427 set1 le_ccm_directionbit ,temp 
+26af 20600000 rtn 
+
+le_pcnt_rx_sub1_0:
+26b0 58ffffff setarg 0xffffff 
+26b1 1ff07e00 lshift16 pdata ,pdata 
+26b2 d840ffff arg 0xffff ,temp 
+26b3 98418400 ior temp ,temp 
+26b4 20600000 rtn 
+
+le_dec:
+26b5 18a22400 copy contw ,regb 
+26b6 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+26b7 1fe0fffc increase -4 ,pdata 
+26b8 98467c00 isub temp ,null 
+26b9 20628000 rtn zero 
+26ba 605900c0 storet 2 ,core_ccm_inptr 
+26bb 1a420a00 copy regb ,contw 
+26bc 20600000 rtn 
+
+le_dec_end:
+26bd 09800020 parse demod ,bucket ,32 
+26be 1fef7e00 rshift32 pdata ,pdata 
+26bf 1fecfe00 rshift8 pdata ,pdata 
+26c0 e7e20005 istore 4 ,contw 
+26c1 18a22400 copy contw ,regb 
+26c2 18007000 force regidx_data ,regext_index 
+26c3 1fe25e00 copy pdata ,regext 
+26c4 605900c0 storet 2 ,core_ccm_inptr 
+26c5 20600000 rtn 
+
+le_retransmit_end_of_packet:
+26c6 204026eb call le_set_until_tx_timer 
+26c7 204020cf call end_of_packet 
+26c8 20202683 branch le_rx_match 
+
+le_crc_fail:
+26c9 204066e8 call rf_debug_rx_crc_fail_line 
+26ca c50826ce bmark1 mark_adv ,le_crc_fail_consecutive 
+26cb c51826ce bmark1 mark_ble_crc_fail ,le_crc_fail_consecutive 
+26cc 79200030 set1 mark_ble_crc_fail ,mark 
+26cd 20202686 branch le_crc_fail_tx 
+
+le_unsync_end:
+
+le_crc_fail_consecutive:
+26ce 793f8030 set0 mark_ble_crc_fail ,mark 
+26cf 202026d0 branch le_end_of_packet 
+
+le_end_of_packet:
+26d0 472bc02a bpatchx patch2a_7 ,mem_patch2a 
+26d1 204072bb call ccm_ctrl_clr 
+26d2 202020cf branch end_of_packet 
+
+calc_clke_all_modem:
+26d3 684b000f fetcht 6 ,mem_sync_clke 
+26d4 1b427e00 copy clke ,pdata 
+26d5 20407d14 call clk_diff 
+26d6 1fe20400 copy pdata ,temp 
+26d7 204026dd call calc_clke_all_modem_1 
+26d8 1b425600 copy clke ,rege 
+26d9 1d227e00 copy clke_rt ,pdata 
+26da 9840fe00 iadd temp ,pdata 
+26db 1fe25200 copy pdata ,clke_rt 
+26dc 20600000 rtn 
+
+calc_clke_all_modem_1:
+26dd c517a6e3 bmark1 mark_ble_lr ,calc_clke_modem_coded 
+26de c516a6e7 bmark1 mark_ble_2m ,calc_clke_modem_2m 
+26df 6fe10046 fetch 2 ,mem_param_clke_cal_le_1m 
+26e0 1fe25200 copy pdata ,clke_rt 
+26e1 1c225000 copy bt_clk ,clke_bt 
+26e2 20600000 rtn 
+
+calc_clke_modem_coded:
+26e3 6fe1004a fetch 2 ,mem_param_clke_cal_le_coded 
+26e4 1fe25200 copy pdata ,clke_rt 
+26e5 1c20d001 add bt_clk ,1 ,clke_bt 
+26e6 20600000 rtn 
+
+calc_clke_modem_2m:
+26e7 6fe10048 fetch 2 ,mem_param_clke_cal_le_2m 
+26e8 1fe25200 copy pdata ,clke_rt 
+26e9 1c225000 copy bt_clk ,clke_bt 
+26ea 20600000 rtn 
+
+le_set_until_tx_timer:
+26eb 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+26ec 1fe08405 add pdata ,5 ,temp 
+26ed 18498400 lshift3 temp ,temp 
+26ee 6fe0819d fetch 1 ,mem_le_rx_phy 
+26ef c517a6f2 bmark1 mark_ble_lr ,le_set_until_tx_timer_rx_lr 
+26f0 c28026f4 bbit1 bit_le_1m_phy ,le_set_until_tx_timer_rx_1m 
+26f1 c280a6f5 bbit1 bit_le_2m_phy ,le_set_until_tx_timer_rx_2m 
+
+le_set_until_tx_timer_rx_lr:
+26f2 203e26f7 branch le_set_until_tx_timer_rx_coded_s2 ,ble_coded_info 
+26f3 202026fa branch le_set_until_tx_timer_rx_coded_s8 
+
+le_set_until_tx_timer_rx_1m:
+26f4 202026ff branch le_calc_stop_watch 
+
+le_set_until_tx_timer_rx_2m:
+26f5 18430400 rshift temp ,temp 
+26f6 202026ff branch le_calc_stop_watch 
+
+le_set_until_tx_timer_rx_coded_s2:
+26f7 18408403 add temp ,3 ,temp 
+26f8 18438400 lshift temp ,temp 
+26f9 202026fc branch le_set_until_tx_timer_rx_coded 
+
+le_set_until_tx_timer_rx_coded_s8:
+26fa 18408403 add temp ,3 ,temp 
+26fb 18498400 lshift3 temp ,temp 
+
+le_set_until_tx_timer_rx_coded:
+26fc 58000028 setarg param_coded_c1_term1_time_40us 
+26fd 98408400 iadd temp ,temp 
+26fe 202026ff branch le_calc_stop_watch 
+
+le_calc_stop_watch:
+26ff 6fe0c148 fetch 1 ,mem_system_clk 
+2700 984f8400 imul32 temp ,temp 
+2701 da204e20 arg param_20ms_init ,rega 
+2702 9a2ffe00 imul32 rega ,pdata 
+2703 98460400 isub temp ,temp 
+2704 1b627e00 copy stop_watch ,pdata 
+2705 98463600 isub temp ,stop_watch 
+2706 20600000 rtn 
+
+le_transmit_receive_sifs_without_change_mode:
+2707 2040271f call le_transmit 
+2708 68488008 fetcht 1 ,mem_last_freq 
+2709 20402173 call set_freq_rx 
+270a 204021aa call rf_rx_enable 
+270b 78287c00 enable swfine 
+270c d960157c arg 5500 ,timeup 
+270d 2020262e branch le_receive_rxon 
+
+le_transmit_receive_sifs:
+270e 472c402b bpatchx patch2b_0 ,mem_patch2b 
+270f 6fe0819e fetch 1 ,mem_le_tx_phy 
+2710 20402579 call le_enable_phy_by_pdata 
+2711 2040271f call le_transmit 
+
+le_transmit_receive_sifs_notx:
+2712 6fe0819d fetch 1 ,mem_le_rx_phy 
+2713 20402579 call le_enable_phy_by_pdata 
+2714 68488008 fetcht 1 ,mem_last_freq 
+2715 20402173 call set_freq_rx 
+2716 204021aa call rf_rx_enable 
+2717 78287c00 enable swfine 
+2718 d960157c arg 5500 ,timeup 
+2719 c597a62e bmark0 mark_ble_lr ,le_receive_rxon 
+271a d9602134 arg 8500 ,timeup 
+271b 2020262e branch le_receive_rxon 
+
+le_transmit_norx:
+271c 472cc02b bpatchx patch2b_1 ,mem_patch2b 
+271d 2040271f call le_transmit 
+271e 202020cf branch end_of_packet 
+
+le_transmit:
+271f 472d402b bpatchx patch2b_2 ,mem_patch2b 
+2720 20402597 call le_prep 
+2721 204025a6 call le_tx_setfreq 
+2722 204066ed call rf_debug_tx_on_line 
+2723 79202a00 set1 txgfsk ,radio_ctrl 
+2724 782efc00 enable encode_fec0 
+2725 78307c00 enable is_tx 
+2726 7850fc00 disable is_rx 
+2727 2040261d call le_wait_tx 
+2728 785d7c00 disable lr_s2en 
+2729 c517a762 bmark1 mark_ble_lr ,le_transmit_lr 
+272a c516a774 bmark1 mark_ble_2m ,le_transmit_2m 
+272b 19317e00 rshift16 access ,pdata 
+272c 1fecfe00 rshift8 pdata ,pdata 
+272d 1ff1fe00 rshift4 pdata ,pdata 
+272e 08008628 inject mod ,40 
+
+le_transmit_packet:
+272f 7823fc00 enable enable_white 
+2730 7824fc00 enable enable_crc 
+2731 472dc02b bpatchx patch2b_3 ,mem_patch2b 
+2732 6fe0c16b fetch 1 ,mem_le_txheader 
+2733 08008608 inject mod ,8 
+2734 efe08006 ifetch 1 ,contr 
+2735 1fe27200 copy pdata ,loopcnt 
+2736 08008608 inject mod ,8 
+2737 1f267c00 sub loopcnt ,0 ,null 
+2738 2022a740 branch le_tr_nopayload ,zero 
+2739 6ff0800a fetch 1 ,core_ccm_ctrl 
+273a 203a273c branch le_transmit_packet_not_enc ,blank 
+273b c5192757 bmark1 mark_ble_encryption ,le_transmit_packet_enc 
+
+le_transmit_packet_not_enc:
+273c d8c0416d arg mem_le_txpayload ,contr 
+
+le_tr_loop:
+273d efe08006 ifetch 1 ,contr 
+273e 08008608 inject mod ,8 
+273f c200273d loop le_tr_loop 
+
+le_tr_nopayload:
+2740 78247c00 enable enable_parity 
+2741 08008618 inject mod ,24 
+2742 78447c00 disable enable_parity 
+2743 c597a747 bmark0 mark_ble_lr ,le_transmit_skip 
+2744 7843fc00 disable enable_white 
+2745 58000000 setarg 0 
+2746 08008603 inject mod ,3 
+
+le_transmit_skip:
+2747 37d38200 until null ,tx_clear 
+2748 20000064 nop 100 
+2749 472e402b bpatchx patch2b_4 ,mem_patch2b 
+274a 784efc00 disable encode_fec0 
+274b 785c7c00 disable encode_fec3 
+274c 20402164 call set_sync_on 
+274d 204066eb call rf_debug_tx_off_line 
+
+le_check_start_pause_enc:
+274e 6fe0c16b fetch 1 ,mem_le_txheader 
+274f 1fe17e03 and pdata ,llid_le_ll ,pdata 
+2750 c1818000 rtnne llid_le_ll 
+2751 6fe0c2ff fetch 1 ,mem_le_enc_state 
+2752 c001283a beq flag_le_enc_pause ,le_clear_enc 
+2753 c1828000 rtnne flag_le_send_start_enc_req 
+2754 6fe0c16d fetch 1 ,mem_le_txpayload 
+2755 c002a835 beq ll_start_enc_req ,le_set_enc 
+2756 20600000 rtn 
+
+le_transmit_packet_enc:
+2757 1f20f3fc increase -4 ,loopcnt 
+2758 1f220400 copy loopcnt ,temp 
+2759 204072a6 call ccm_wait_enc 
+275a d8c0416d arg mem_le_txpayload ,contr 
+
+le_transmit_packet_enc_loop:
+275b efe08006 ifetch 1 ,contr 
+275c 08008608 inject mod ,8 
+275d c200275b loop le_transmit_packet_enc_loop 
+275e 204072ab call ccm_check_enc_done 
+275f 1de27e00 copy regext ,pdata 
+2760 08008620 inject mod ,32 
+2761 20202740 branch le_tr_nopayload 
+
+le_transmit_lr:
+2762 df20000a arg 10 ,loopcnt 
+
+le_transmit_lr_preamble_loop:
+2763 5800003c setarg 0x3c 
+2764 08008608 inject mod ,8 
+2765 c2002763 loop le_transmit_lr_preamble_loop 
+2766 784efc00 disable encode_fec0 
+2767 783c7c00 enable encode_fec3 
+2768 19317e00 rshift16 access ,pdata 
+2769 1ff17e00 rshift16 pdata ,pdata 
+276a 1ff1fe00 rshift4 pdata ,pdata 
+276b 08008620 inject mod ,32 
+276c c5172771 bmark1 mark_ble_lr_s8 ,le_transmit_lr_s8 
+
+le_transmit_lr_s2:
+276d 58000001 setarg 1 
+276e 08008605 inject mod ,5 
+276f 783d7c00 enable lr_s2en 
+2770 2020272f branch le_transmit_packet 
+
+le_transmit_lr_s8:
+2771 58000000 setarg 0 
+2772 08008605 inject mod ,5 
+2773 2020272f branch le_transmit_packet 
+
+le_transmit_2m:
+2774 6fe0c148 fetch 1 ,mem_system_clk 
+2775 6848c16a fetcht 1 ,mem_le_tx2m_delay 
+2776 9840fe00 iadd temp ,pdata 
+2777 20402340 call sleep 
+2778 19317e00 rshift16 access ,pdata 
+2779 1fecfe00 rshift8 pdata ,pdata 
+277a 1ff18400 rshift4 pdata ,temp 
+277b 18427e00 copy temp ,pdata 
+277c 08008608 inject mod ,8 
+277d 18427e00 copy temp ,pdata 
+277e 08008628 inject mod ,40 
+277f 2020272f branch le_transmit_packet 
+
+le_update_param:
+2780 da602784 arg le_update_param_ahead1_cb ,regc 
+2781 da40279a arg le_update_param_cb ,regb 
+2782 d8e00005 arg lestate_update_param ,queue 
+2783 202027d9 branch le_check_update_flag 
+
+le_update_param_ahead1_cb:
+2784 1a208c04 add rega ,coffset_sniff_anchor ,contr 
+2785 e8420006 ifetcht 4 ,contr 
+2786 1a208c37 add rega ,coffest_le_new_transmitwindowsize ,contr 
+2787 efe08006 ifetch 1 ,contr 
+2788 1a208a2b add rega ,coffset_le_window_size ,contw 
+2789 e7e08005 istore 1 ,contw 
+278a efe10006 ifetch 2 ,contr 
+278b 1febfe00 lshift2 pdata ,pdata 
+278c 98409600 iadd temp ,timeup 
+278d 1a208a04 add rega ,coffset_sniff_anchor ,contw 
+278e 19627e00 deposit timeup 
+278f e7e20005 istore 4 ,contw 
+2790 efe10006 ifetch 2 ,contr 
+2791 1febfe00 lshift2 pdata ,pdata 
+2792 1a208a02 add rega ,coffset_tsniff ,contw 
+2793 e7e10005 istore 2 ,contw 
+2794 efe10006 ifetch 2 ,contr 
+2795 1a208a2c add rega ,coffset_le_slave_latency ,contw 
+2796 e7e10005 istore 2 ,contw 
+2797 efe10006 ifetch 2 ,contr 
+2798 67e142f7 store 2 ,mem_le_init_superto 
+2799 20202917 branch le_receive_window_size 
+
+le_update_param_cb:
+279a efe08011 ifetch 1 ,rega 
+279b 793ffe03 set0 lestate_got_first_packet ,pdata 
+279c e7e08011 istore 1 ,rega 
+279d 62210662 storer rega ,2 ,mem_rega 
+279e 70064d44 jam bt_evt_le_parse_conn_param_accepted ,mem_fifo_temp 
+279f 20407819 call ui_ipc_send_event 
+27a0 6a210662 fetchr rega ,2 ,mem_rega 
+27a1 20600000 rtn 
+
+le_update_channel_map:
+27a2 da600000 arg 0 ,regc 
+27a3 da4027a6 arg le_update_channel_map_cb ,regb 
+27a4 d8e00006 arg lestate_update_map ,queue 
+27a5 202027d9 branch le_check_update_flag 
+
+le_update_channel_map_cb:
+27a6 1a208c37 add rega ,coffset_le_new_map ,contr 
+27a7 efe28006 ifetch 5 ,contr 
+27a8 1a208a30 add rega ,coffset_le_channel_map ,contw 
+27a9 e7e28005 istore 5 ,contw 
+27aa 202025f9 branch le_calc_channel_map 
+
+le_update_phy:
+27ab da600000 arg 0 ,regc 
+27ac da4027af arg le_update_phy_cb ,regb 
+27ad d8e00007 arg lestate_update_phy ,queue 
+27ae 202027d9 branch le_check_update_flag 
+
+le_update_phy_cb:
+27af 1a208c37 add rega ,coffset_le_new_m2s_phy ,contr 
+27b0 efe08006 ifetch 1 ,contr 
+27b1 204027bc call le_update_phy_cb_m2s 
+27b2 e7e08005 istore 1 ,contw 
+27b3 1a208c38 add rega ,coffset_le_new_s2m_phy ,contr 
+27b4 efe08006 ifetch 1 ,contr 
+27b5 204027ca call le_update_phy_cb_s2m 
+27b6 e7e08005 istore 1 ,contw 
+27b7 62210662 storer rega ,2 ,mem_rega 
+27b8 70064d42 jam bt_evt_le_update_phy ,mem_fifo_temp 
+27b9 20407819 call ui_ipc_send_event 
+27ba 6a210662 fetchr rega ,2 ,mem_rega 
+27bb 20600000 rtn 
+
+le_update_phy_cb_m2s:
+27bc 205a27c4 call le_update_phy_cb_m2s_no_change ,blank 
+27bd 1a208a35 add rega ,coffset_le_rx_phy ,contw 
+27be 24748000 nrtn master 
+27bf 6848c3ba fetcht 1 ,mem_le_tx_phys 
+27c0 284ffe07 isolate1 bit_le_coded_phy_s8 ,temp 
+27c1 7920fe07 setflag true ,bit_le_coded_phy_s8 ,pdata 
+27c2 1a208a36 add rega ,coffset_le_tx_phy ,contw 
+27c3 20600000 rtn 
+
+le_update_phy_cb_m2s_no_change:
+27c4 1a208c35 add rega ,coffset_le_rx_phy ,contr 
+27c5 efe08006 ifetch 1 ,contr 
+27c6 24748000 nrtn master 
+27c7 1a208c36 add rega ,coffset_le_tx_phy ,contr 
+27c8 efe08006 ifetch 1 ,contr 
+27c9 20600000 rtn 
+
+le_update_phy_cb_s2m:
+27ca 205a27d3 call le_update_phy_cb_s2m_no_change ,blank 
+27cb 6848c3ba fetcht 1 ,mem_le_tx_phys 
+27cc 284ffe07 isolate1 bit_le_coded_phy_s8 ,temp 
+27cd 7920fe07 setflag true ,bit_le_coded_phy_s8 ,pdata 
+27ce 1a208a36 add rega ,coffset_le_tx_phy ,contw 
+27cf 24748000 nrtn master 
+27d0 793ffe07 set0 bit_le_coded_phy_s8 ,pdata 
+27d1 1a208a35 add rega ,coffset_le_rx_phy ,contw 
+27d2 20600000 rtn 
+
+le_update_phy_cb_s2m_no_change:
+27d3 1a208c36 add rega ,coffset_le_tx_phy ,contr 
+27d4 efe08006 ifetch 1 ,contr 
+27d5 24748000 nrtn master 
+27d6 1a208c35 add rega ,coffset_le_rx_phy ,contr 
+27d7 efe08006 ifetch 1 ,contr 
+27d8 20600000 rtn 
+
+le_check_update_flag:
+27d9 472ec02b bpatchx patch2b_5 ,mem_patch2b 
+27da efe08011 ifetch 1 ,rega 
+27db afec0000 qisolate0 pdata 
+27dc 20608000 rtn true 
+27dd 1a208c1a add rega ,coffset_le_event_cnt ,contr 
+27de e8410006 ifetcht 2 ,contr 
+27df 1a208c20 add rega ,coffset_le_instant ,contr 
+27e0 efe10006 ifetch 2 ,contr 
+27e1 98467e00 isub temp ,pdata 
+27e2 2022a7e9 branch le_update ,zero 
+27e3 242127ee nbranch le_check_update_small ,positive 
+27e4 1fe67c01 sub pdata ,1 ,null 
+27e5 2022a7e7 branch le_update_ahead1 ,zero 
+27e6 20600000 rtn 
+
+le_update_ahead1:
+27e7 1a627e00 copy regc ,pdata 
+27e8 20207d7b branch callback_func 
+
+le_update:
+27e9 efe08011 ifetch 1 ,rega 
+27ea f93ffe00 qset0 pdata 
+27eb e7e08011 istore 1 ,rega 
+27ec 1a427e00 copy regb ,pdata 
+27ed 20207d7b branch callback_func 
+
+le_check_update_small:
+27ee 1a208c1a add rega ,coffset_le_event_cnt ,contr 
+27ef efe10006 ifetch 2 ,contr 
+27f0 1a208c20 add rega ,coffset_le_instant ,contr 
+27f1 efe10006 ifetch 2 ,contr 
+27f2 98467e00 isub temp ,pdata 
+27f3 d840ffff arg 0xffff ,temp 
+27f4 98467c00 isub temp ,null 
+27f5 2022a7e9 branch le_update ,zero 
+27f6 d840f000 arg 0xf000 ,temp 
+27f7 98467c00 isub temp ,null 
+27f8 242127e9 nbranch le_update ,positive 
+27f9 20600000 rtn 
+
+le_check_retransmit:
+27fa 6848817f fetcht 1 ,mem_le_arq 
+27fb 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+27fc 1fe37e00 rshift pdata ,pdata 
+27fd 9842fe00 ixor temp ,pdata 
+27fe 2feffe02 isolate1 nesn ,pdata 
+27ff 7920800f setflag true ,mark_old_packet ,mark 
+2800 20600000 rtn 
+
+le_acknowledge:
+2801 472f402b bpatchx patch2b_6 ,mem_patch2b 
+2802 20402914 call le_supervision_flush 
+2803 c6180000 rtnmark1 mark_ble_crc_fail 
+2804 20402828 call le_check_wak 
+2805 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+2806 2feffe04 isolate1 md ,pdata 
+2807 7920802a setflag true ,mark_ble_rx_md ,mark 
+2808 1fe37e00 rshift pdata ,pdata 
+2809 9842fe00 ixor temp ,pdata 
+280a 2feffe02 isolate1 nesn ,pdata 
+280b 7920800f setflag true ,mark_old_packet ,mark 
+280c c6078000 rtnmark1 mark_old_packet 
+280d 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+280e 203a281a branch le_ack_unenc ,blank 
+280f 6fe08168 fetch 1 ,mem_le_state 
+2810 c302281a bbit0 lestate_encryption ,le_ack_unenc 
+2811 684a0154 fetcht 4 ,mem_le_peer_mic 
+2812 6fe24471 fetch 4 ,mem_ccm_last_mic 
+2813 98467c00 isub temp ,null 
+2814 2022a33e branch assert ,zero 
+2815 604a4471 storet 4 ,mem_ccm_last_mic 
+2816 6fe2c46c fetch 5 ,mem_ccm_pcnt_rx 
+2817 1fe0fe01 increase 1 ,pdata 
+2818 79207e27 set1 le_ccm_directionbit ,pdata 
+2819 67e2c46c store 5 ,mem_ccm_pcnt_rx 
+
+le_ack_unenc:
+281a 6848817f fetcht 1 ,mem_le_arq 
+281b 79400402 setflip nesn ,temp 
+281c 6048817f storet 1 ,mem_le_arq 
+281d 6fe0c323 fetch 1 ,mem_le_configuration 
+281e c4030000 rtnbit0 bit_ble_deal_bb_packet 
+281f 472fc02b bpatchx patch2b_7 ,mem_patch2b 
+2820 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+2821 207a0000 rtn blank 
+2822 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+2823 2fe00601 compare llid_continue ,pdata ,3 
+2824 2020ae43 branch le_parse_writing_attribute_continue ,true 
+2825 2fe00602 compare llid_start ,pdata ,3 
+2826 2020ae31 branch le_parse_writing_attribute_start ,true 
+2827 20600000 rtn 
+
+le_check_wak:
+2828 4730402c bpatchx patch2c_0 ,mem_patch2c 
+2829 6848817f fetcht 1 ,mem_le_arq 
+282a 284c0005 isolate0 wak ,temp 
+282b 20608000 rtn true 
+282c 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+282d 1fe3fe00 lshift pdata ,pdata 
+282e 9842fe00 ixor temp ,pdata 
+282f c4018000 rtnbit0 sn 
+2830 793f8405 set0 wak ,temp 
+2831 79400403 setflip sn ,temp 
+2832 6048817f storet 1 ,mem_le_arq 
+2833 28400603 compare 3 ,temp ,3 
+2834 20600000 rtn 
+
+le_set_enc:
+2835 6fe08168 fetch 1 ,mem_le_state 
+2836 79207e04 set1 lestate_encryption ,pdata 
+2837 67e08168 store 1 ,mem_le_state 
+2838 79200032 set1 mark_ble_encryption ,mark 
+2839 20600000 rtn 
+
+le_clear_enc:
+283a 4730c02c bpatchx patch2c_1 ,mem_patch2c 
+283b 7042ff00 jam flag_le_enc_null ,mem_le_enc_state 
+283c dfe00000 arg 0 ,pdata 
+283d 67e24471 store 4 ,mem_ccm_last_mic 
+283e 67e2c467 store 5 ,mem_ccm_pcnt_tx 
+283f 79207e27 set1 le_ccm_directionbit ,pdata 
+2840 67e2c46c store 5 ,mem_ccm_pcnt_rx 
+2841 6fe08168 fetch 1 ,mem_le_state 
+2842 793ffe04 set0 lestate_encryption ,pdata 
+2843 67e08168 store 1 ,mem_le_state 
+2844 793f8032 set0 mark_ble_encryption ,mark 
+2845 20600000 rtn 
+
+le_scan_check_sender_addr_type:
+2846 da200001 arg 1 ,rega 
+2847 6fe0804c fetch 1 ,mem_le_rxbuf_adv_connect_ind_header 
+2848 c3830000 rtnbit1 le_sender_addr_bit 
+2849 da200000 arg 0 ,rega 
+284a 20600000 rtn 
+
+le_get_master_rx_max:
+284b 18c20a00 copy contr ,contw 
+284c 684943bc fetcht 2 ,mem_remote_rx_max_octets 
+284d 18a20c00 copy contw ,contr 
+284e 20600000 rtn 
+
+le_prepare_tx:
+284f 4731402c bpatchx patch2c_2 ,mem_patch2c 
+2850 6fe0817f fetch 1 ,mem_le_arq 
+2851 c3828000 rtnbit1 wak 
+2852 20402870 call le_check_tx_md 
+2853 204029ee call le_fifo_get_first_tx_ptr 
+2854 203a2894 branch le_send_empty ,blank 
+2855 efe10006 ifetch 2 ,contr 
+2856 e8410006 ifetcht 2 ,contr 
+2857 18422200 copy temp ,rega 
+2858 9a267e00 isub rega ,pdata 
+2859 2040284b call le_get_master_rx_max 
+285a 20407db2 call not_greater_than 
+285b 1fe20400 copy pdata ,temp 
+285c e8208006 ifetchr type ,1 ,contr 
+285d 1a227e00 copy rega ,pdata 
+285e 98c0fe00 iadd contr ,pdata 
+285f 67e1066d store 2 ,mem_contr 
+2860 20402884 call le_update_tx_type 
+2861 20402896 call le_send_packet 
+2862 204029ee call le_fifo_get_first_tx_ptr 
+2863 efe10006 ifetch 2 ,contr 
+2864 1fe22200 copy pdata ,rega 
+2865 18c22600 copy contr ,regc 
+2866 e8410006 ifetcht 2 ,contr 
+2867 18422400 copy temp ,regb 
+2868 9a467e00 isub regb ,pdata 
+2869 2040284b call le_get_master_rx_max 
+286a 20407db2 call not_greater_than 
+286b 9a40fe00 iadd regb ,pdata 
+286c e7e10013 istore 2 ,regc 
+286d 9a267c00 isub rega ,null 
+286e 24628000 nrtn zero 
+286f 20202a08 branch le_fifo_release_first_node 
+
+le_check_tx_md:
+2870 20402877 call le_check_continue 
+2871 c6148000 rtnmark1 mark_ble_tx_md 
+2872 6fe0c323 fetch 1 ,mem_le_configuration 
+2873 c3012882 bbit0 bit_ble_transmit_packet_by_md ,le_clear_md 
+2874 204029f2 call le_fifo_get_second_tx_ptr 
+2875 203a2882 branch le_clear_md ,blank 
+2876 20202880 branch le_set_md 
+
+le_check_continue:
+2877 204029ee call le_fifo_get_first_tx_ptr 
+2878 203a2882 branch le_clear_md ,blank 
+2879 efe10006 ifetch 2 ,contr 
+287a e8410006 ifetcht 2 ,contr 
+287b 98462200 isub temp ,rega 
+287c 2040284b call le_get_master_rx_max 
+287d 18427e00 copy temp ,pdata 
+287e 9a267c00 isub rega ,null 
+287f 20212882 branch le_clear_md ,positive 
+
+le_set_md:
+2880 79200029 set1 mark_ble_tx_md ,mark 
+2881 20600000 rtn 
+
+le_clear_md:
+2882 793f8029 set0 mark_ble_tx_md ,mark 
+2883 20600000 rtn 
+
+le_update_tx_type:
+2884 1a227e00 copy rega ,pdata 
+2885 207a0000 rtn blank 
+2886 d8200001 arg llid_continue ,type 
+2887 20600000 rtn 
+
+le_att_check_notification_enable:
+2888 4731c02c bpatchx patch2c_3 ,mem_patch2c 
+2889 18408401 increase 1 ,temp 
+288a 20402cad call le_att_get_handle_ptr 
+288b 18c08dfe increase -2 ,contr 
+288c efe10006 ifetch 2 ,contr 
+288d d8402902 arg client_charactertic_configuration ,temp 
+288e 98467c00 isub temp ,null 
+288f 24628000 nrtn zero 
+2890 18c08c01 increase 1 ,contr 
+2891 18c22200 copy contr ,rega 
+2892 efe08006 ifetch 1 ,contr 
+2893 20600000 rtn 
+
+le_send_empty:
+2894 18000400 force 0 ,temp 
+2895 18000201 force 1 ,type 
+
+le_send_packet:
+2896 4732402c bpatchx patch2c_4 ,mem_patch2c 
+2897 6048c16c storet 1 ,mem_le_txlen 
+2898 6848817f fetcht 1 ,mem_le_arq 
+2899 79200405 set1 wak ,temp 
+289a 18417efc and temp ,0xfc ,pdata 
+289b 9821fe00 ior type ,pdata 
+289c 67e0817f store 1 ,mem_le_arq 
+289d 1fe17e1f and_into 0x1f ,pdata 
+289e 280ffe29 isolate1 mark_ble_tx_md ,mark 
+289f 7920fe04 setflag true ,md ,pdata 
+28a0 67e0c16b store 1 ,mem_le_txheader 
+28a1 6fe0c16b fetch 1 ,mem_le_txheader 
+28a2 28200601 compare 1 ,type ,3 
+28a3 2420a8a6 nbranch le_send_no_txlen ,true 
+28a4 6fe0c16c fetch 1 ,mem_le_txlen 
+28a5 207a0000 rtn blank 
+
+le_send_no_txlen:
+28a6 c51928ac bmark1 mark_ble_encryption ,le_send_packet_enc 
+28a7 6f20c16c fetchr loopcnt ,1 ,mem_le_txlen 
+28a8 6fe1066d fetch 2 ,mem_contr 
+28a9 1fe20c00 copy pdata ,contr 
+28aa d8a0416d arg mem_le_txpayload ,contw 
+28ab 20207cce branch memcpy_fast 
+
+le_send_packet_enc:
+28ac 20407356 call load_sk 
+28ad 2020728d branch le_encrypt_new_start 
+
+get_lpm_wake_ble_rx_lock:
+28ae d8e00000 arg wake_lock_ble_rx ,queue 
+28af 202024be branch lpm_get_wake_lock 
+
+put_lpm_wake_ble_rx_lock:
+28b0 d8e00000 arg wake_lock_ble_rx ,queue 
+28b1 202024c2 branch lpm_put_wake_lock 
+
+le_parse:
+28b2 4732c02c bpatchx patch2c_5 ,mem_patch2c 
+28b3 c6078000 rtnmark1 mark_old_packet 
+28b4 c6180000 rtnmark1 mark_ble_crc_fail 
+28b5 6fe0804c fetch 1 ,mem_le_rxbuf_data_header 
+28b6 1fe17e03 and pdata ,0x3 ,pdata 
+28b7 67e0c336 store 1 ,mem_le_packet_llid 
+28b8 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+28b9 207a0000 rtn blank 
+28ba 5800004e setarg mem_le_rxbuf_data_payload 
+28bb 67e1433b store 2 ,mem_le_payload_ptr 
+28bc 4733402c bpatchx patch2c_6 ,mem_patch2c 
+28bd 6fe0c336 fetch 1 ,mem_le_packet_llid 
+28be c1000000 rtneq llid_reserved 
+28bf c001b028 beq llid_le_ll ,le_parse_ll 
+
+le_parse_l2cap:
+28c0 204028cd call le_check_l2cap_complete 
+28c1 243428ae nbranch get_lpm_wake_ble_rx_lock ,user 
+28c2 204028b0 call put_lpm_wake_ble_rx_lock 
+28c3 58000000 setarg 0 
+28c4 67e14339 store 2 ,mem_le_packet_len_recved 
+28c5 6fe1433b fetch 2 ,mem_le_payload_ptr 
+28c6 1fe08c02 add pdata ,2 ,contr 
+28c7 4733c02c bpatchx patch2c_7 ,mem_patch2c 
+28c8 efe10006 ifetch 2 ,contr 
+28c9 c0022b6e beq le_l2cap_cid_att ,le_parse_att 
+28ca c0032ea6 beq le_l2cap_cid_smp ,le_parse_smp 
+28cb c002ae68 beq le_l2cap_cid_signal ,le_parse_signaling 
+28cc 20600000 rtn 
+
+le_check_l2cap_complete:
+28cd 6fe0c336 fetch 1 ,mem_le_packet_llid 
+28ce c00128dc beq llid_start ,le_check_l2cap_llid_start 
+28cf c000a8f3 beq llid_continue ,le_check_l2cap_llid_continue 
+28d0 20600000 rtn 
+
+le_check_l2cap_cid_legal:
+28d1 20407dbc call enable_user 
+28d2 d8400004 arg le_l2cap_cid_att ,temp 
+28d3 9fe67c00 isub pdata ,null 
+28d4 20628000 rtn zero 
+28d5 d8400005 arg le_l2cap_cid_signal ,temp 
+28d6 9fe67c00 isub pdata ,null 
+28d7 20628000 rtn zero 
+28d8 d8400006 arg le_l2cap_cid_smp ,temp 
+28d9 9fe67c00 isub pdata ,null 
+28da 20628000 rtn zero 
+28db 20207dbe branch disable_user 
+
+le_check_l2cap_llid_start:
+28dc 6fe1433b fetch 2 ,mem_le_payload_ptr 
+28dd 1fe20c00 copy pdata ,contr 
+28de efe10006 ifetch 2 ,contr 
+28df 67e14337 store 2 ,mem_le_l2cap_size 
+28e0 efe10006 ifetch 2 ,contr 
+28e1 204028d1 call le_check_l2cap_cid_legal 
+28e2 24740000 nrtn user 
+28e3 6848804d fetcht 1 ,mem_le_rxbuf_data_length 
+28e4 60494339 storet 2 ,mem_le_packet_len_recved 
+28e5 6fe14337 fetch 2 ,mem_le_l2cap_size 
+28e6 1fe0fe04 increase 4 ,pdata 
+28e7 98467c00 isub temp ,null 
+28e8 2022fdbc branch enable_user ,zero 
+28e9 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+28ea d8a00f00 arg mem_le_l2cap_buf ,contw 
+28eb 6fe1433b fetch 2 ,mem_le_payload_ptr 
+28ec 1fe20c00 copy pdata ,contr 
+28ed 20407cce call memcpy_fast 
+28ee 20207dbe branch disable_user 
+
+le_check_l2cap_continue_legal:
+28ef 20407dbc call enable_user 
+28f0 6fe14339 fetch 2 ,mem_le_packet_len_recved 
+28f1 247a0000 nrtn blank 
+28f2 20207dbe branch disable_user 
+
+le_check_l2cap_llid_continue:
+28f3 204028ef call le_check_l2cap_continue_legal 
+28f4 24740000 nrtn user 
+28f5 6fe14339 fetch 2 ,mem_le_packet_len_recved 
+28f6 d8a00f00 arg mem_le_l2cap_buf ,contw 
+28f7 98a0a200 iadd contw ,rega 
+28f8 6848804d fetcht 1 ,mem_le_rxbuf_data_length 
+28f9 9840fe00 iadd temp ,pdata 
+28fa 67e14339 store 2 ,mem_le_packet_len_recved 
+28fb 6f20804d fetchr loopcnt ,1 ,mem_le_rxbuf_data_length 
+28fc 1a220a00 copy rega ,contw 
+28fd 6fe1433b fetch 2 ,mem_le_payload_ptr 
+28fe 1fe20c00 copy pdata ,contr 
+28ff 20407cce call memcpy_fast 
+2900 58000f00 setarg mem_le_l2cap_buf 
+2901 67e1433b store 2 ,mem_le_payload_ptr 
+2902 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2903 1fe0fe04 increase 4 ,pdata 
+2904 68494339 fetcht 2 ,mem_le_packet_len_recved 
+2905 98467c00 isub temp ,null 
+2906 2022fdbc branch enable_user ,zero 
+2907 20207dbe branch disable_user 
+
+le_writeatt_cb:
+2908 6fe143e8 fetch 2 ,mem_cb_att_write 
+2909 20207d7b branch callback_func 
+
+le_supervision_update:
+290a 4734402d bpatchx patch2d_0 ,mem_patch2d 
+290b 684a0184 fetcht 4 ,mem_le_supervision_timer 
+290c 2040233a call get_clkbt 
+290d 98461600 isub temp ,timeup 
+290e 19627e00 deposit timeup 
+290f 68490196 fetcht 2 ,mem_le_superto 
+2910 18520400 lshift4 temp ,temp 
+2911 18438400 lshift temp ,temp 
+2912 98467e00 isub temp ,pdata 
+2913 20600000 rtn 
+
+le_supervision_flush:
+2914 2040233a call get_clkbt 
+2915 67e20184 store 4 ,mem_le_supervision_timer 
+2916 20600000 rtn 
+
+le_receive_window_size:
+2917 4734c02d bpatchx patch2d_1 ,mem_patch2d 
+2918 1a208c50 add rega ,coffset_le_peer_sca ,contr 
+2919 efe08006 ifetch 1 ,contr 
+291a 204025c0 call le_sca_map 
+291b 1a208c02 add rega ,coffset_tsniff ,contr 
+291c efe10006 ifetch 2 ,contr 
+291d 984ffe00 imul32 temp ,pdata 
+291e 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+291f 984ffe00 imul32 temp ,pdata 
+2920 d84f4240 arg 1000000 ,temp 
+2921 9846fc00 idiv temp 
+2922 d8400682 arg param_windown_size ,temp 
+2923 6fe0c148 fetch 1 ,mem_system_clk 
+2924 984f8400 imul32 temp ,temp 
+2925 1a208c2b add rega ,coffset_le_window_size ,contr 
+2926 efe08006 ifetch 1 ,contr 
+2927 984ffe00 imul32 temp ,pdata 
+2928 9840fe00 iadd temp ,pdata 
+2929 67e2431f store 4 ,mem_le_transmit_window 
+292a 6fe1409a fetch 2 ,mem_rx_window_sniff 
+292b 20407d64 call wait_div_end 
+292c 18078400 quotient temp 
+292d 9840fe00 iadd temp ,pdata 
+292e 1a208a0e add rega ,coffset_rx_window ,contw 
+292f e7e10005 istore 2 ,contw 
+2930 20600000 rtn 
+
+le_modified_name:
+2931 4735402d bpatchx patch2d_2 ,mem_patch2d 
+2932 20402934 call le_modified_name_att_list 
+2933 20202948 branch le_modified_name_adv 
+
+le_modified_name_att_list:
+2934 70069302 jam 2 ,mem_le_search_att_type_length 
+2935 d8402a00 arg uuid_chrctr_device_name ,temp 
+2936 60490694 storet 2 ,mem_le_search_att_type 
+2937 20402cbe call le_att_get_uuid_ptr 
+2938 207a0000 rtn blank 
+2939 efe08006 ifetch 1 ,contr 
+293a 18c20a00 copy contr ,contw 
+293b 6848c26d fetcht 1 ,mem_le_name_len 
+293c 18427200 copy temp ,loopcnt 
+293d 98467c00 isub temp ,null 
+293e 24212945 nbranch le_name_length_longer_than_att ,positive 
+293f 98460400 isub temp ,temp 
+2940 d8c0426e arg mem_le_name ,contr 
+2941 20407cce call memcpy_fast 
+2942 18427200 copy temp ,loopcnt 
+2943 2442a980 ncall memcpy_empty ,zero 
+2944 20600000 rtn 
+
+le_name_length_longer_than_att:
+2945 1fe27200 copy pdata ,loopcnt 
+2946 d8c0426e arg mem_le_name ,contr 
+2947 20207cce branch memcpy_fast 
+
+le_modified_name_adv:
+2948 da60436c arg mem_le_adv_data_len + 32 ,regc 
+2949 da20434d arg mem_le_adv_data ,rega 
+294a 20402955 call le_modified_name_adv_and_scan 
+294b 58000000 setarg 0 
+294c 79347e00 setflag user ,0 ,pdata 
+294d 67e0864e store 1 ,mem_pdatatemp 
+294e da60438c arg mem_le_scan_data_len + 32 ,regc 
+294f da20436d arg mem_le_scan_data ,rega 
+2950 20402955 call le_modified_name_adv_and_scan 
+2951 20740000 rtn user 
+2952 6fe0864e fetch 1 ,mem_pdatatemp 
+2953 203a233e branch assert ,blank 
+2954 20600000 rtn 
+
+le_modified_name_adv_and_scan:
+2955 4735c02d bpatchx patch2d_3 ,mem_patch2d 
+2956 20407dbc call enable_user 
+2957 20407ca8 call clear_temp_block 
+2958 da400000 arg 0 ,regb 
+2959 d8a00680 arg mem_le_data_temp ,contw 
+295a 2040296f call le_modified_name_adv_loop 
+295b 6fe0c26d fetch 1 ,mem_le_name_len 
+295c 1fe08401 add pdata ,1 ,temp 
+295d 9a40a200 iadd regb ,rega 
+295e 1a20a202 increase 2 ,rega 
+295f 1a267c1f sub rega ,0x1f ,null 
+2960 2421296d nbranch le_modified_name_adv_and_scan_name_overflow ,positive 
+2961 e0408005 istoret 1 ,contw 
+2962 d8400009 arg gap_adtype_local_name_complete ,temp 
+2963 e0408005 istoret 1 ,contw 
+2964 98007200 iforce loopcnt 
+2965 20407cce call memcpy_fast 
+2966 1a222400 copy rega ,regb 
+
+le_modified_name_adv_and_scan_store_data:
+2967 1a427e00 deposit regb 
+2968 67e0867f store 1 ,mem_le_data_len_temp 
+2969 d8c0067f arg mem_le_data_len_temp ,contr 
+296a 5fffffe0 setarg -32 
+296b 9a608a00 iadd regc ,contw 
+296c 20207c8f branch memcpy32 
+
+le_modified_name_adv_and_scan_name_overflow:
+296d 20407dbe call disable_user 
+296e 20202967 branch le_modified_name_adv_and_scan_store_data 
+
+le_modified_name_adv_loop:
+296f efe08011 ifetch 1 ,rega 
+2970 207a0000 rtn blank 
+2971 1fe0fe01 pincrease 1 
+2972 e8408006 ifetcht 1 ,contr 
+2973 18467c09 sub temp ,gap_adtype_local_name_complete ,null 
+2974 2022a97e branch le_modified_name_adv_found_name ,zero 
+2975 9a40a400 iadd regb ,regb 
+2976 1a220c00 copy rega ,contr 
+2977 98007200 iforce loopcnt 
+2978 20407cce call memcpy_fast 
+2979 18c22200 copy contr ,rega 
+
+le_modified_name_adv_loop2:
+297a 1a227e00 deposit rega 
+297b 9a667c00 isub regc ,null 
+297c 20610000 rtn positive 
+297d 2020296f branch le_modified_name_adv_loop 
+
+le_modified_name_adv_found_name:
+297e 9a20a200 iadd rega ,rega 
+297f 2020297a branch le_modified_name_adv_loop2 
+
+memcpy_empty:
+2980 58000020 setarg space 
+2981 e7e08005 istore 1 ,contw 
+2982 c2002980 loop memcpy_empty 
+2983 20600000 rtn 
+
+le_lpm_set_mult:
+2984 4736402d bpatchx patch2d_4 ,mem_patch2d 
+2985 7855fc00 disable wake 
+2986 20372988 branch le_lpm_set_mult_attempt ,attempt 
+2987 2436a997 nbranch le_lpm_lost ,match 
+
+le_lpm_set_mult_attempt:
+2988 204024a9 call lpm_match 
+2989 6fe1409a fetch 2 ,mem_rx_window_sniff 
+298a 67e10176 store 2 ,mem_le_receive_window 
+298b 6fe0c323 fetch 1 ,mem_le_configuration 
+298c c282a4b7 bbit1 bit_ble_short_mult ,lpm_mult_short 
+298d c507a4b7 bmark1 mark_old_packet ,lpm_mult_short 
+298e 6fe0804d fetch 1 ,mem_le_rxbuf_data_length 
+298f 243a24b7 nbranch lpm_mult_short ,blank 
+2990 6fe0c16c fetch 1 ,mem_le_txlen 
+2991 243a24b7 nbranch lpm_mult_short ,blank 
+2992 6fe08168 fetch 1 ,mem_le_state 
+2993 c282a4b7 bbit1 lestate_update_param ,lpm_mult_short 
+2994 c283a4b7 bbit1 lestate_update_phy ,lpm_mult_short 
+2995 c28324b7 bbit1 lestate_update_map ,lpm_mult_short 
+2996 2020249f branch lpm_mult_wait_timeout 
+
+le_lpm_lost:
+2997 6fe0c0a8 fetch 1 ,mem_sniff_unint_lost 
+2998 1fe67c1e sub pdata ,30 ,null 
+2999 242124ae nbranch lpm_lost ,positive 
+299a 6849409a fetcht 2 ,mem_rx_window_sniff 
+299b 18430400 rshift temp ,temp 
+299c 6fe10176 fetch 2 ,mem_le_receive_window 
+299d 9840fe00 iadd temp ,pdata 
+299e 67e10176 store 2 ,mem_le_receive_window 
+299f 202024ae branch lpm_lost 
+
+le_set_config_fixed_tk:
+29a0 d8e00000 arg bit_ble_passkey_fixed_key ,queue 
+29a1 202029b5 branch le_set_config 
+
+le_clr_config_fixed_tk:
+29a2 d8e00000 arg bit_ble_passkey_fixed_key ,queue 
+29a3 202029ba branch le_clr_config 
+
+le_set_config_fixed_ltk:
+29a4 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
+29a5 202029b5 branch le_set_config 
+
+le_clr_config_fixed_ltk:
+29a6 d8e00001 arg bit_ble_pairing_fixed_ltk ,queue 
+29a7 202029ba branch le_clr_config 
+
+le_set_config_more_data:
+29a8 d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
+29a9 202029b5 branch le_set_config 
+
+le_clr_config_more_data:
+29aa d8e00002 arg bit_ble_transmit_packet_by_md ,queue 
+29ab 202029ba branch le_clr_config 
+
+le_set_config_read_authentication:
+29ac d8e00003 arg bit_ble_read_auth ,queue 
+29ad 202029b5 branch le_set_config 
+
+le_clr_config_read_authentication:
+29ae d8e00003 arg bit_ble_read_auth ,queue 
+29af 202029ba branch le_clr_config 
+
+le_set_config_write_authentication:
+29b0 d8e00004 arg bit_ble_write_auth ,queue 
+29b1 202029b5 branch le_set_config 
+
+le_clr_config_write_authentication:
+29b2 d8e00004 arg bit_ble_write_auth ,queue 
+29b3 202029ba branch le_clr_config 
+
+le_set_config_short_mult:
+29b4 d8e00005 arg bit_ble_short_mult ,queue 
+
+le_set_config:
+29b5 6fe0c323 fetch 1 ,mem_le_configuration 
+29b6 f9207e00 qset1 pdata 
+29b7 67e0c323 store 1 ,mem_le_configuration 
+29b8 20600000 rtn 
+
+le_clr_config_short_mult:
+29b9 d8e00005 arg bit_ble_short_mult ,queue 
+
+le_clr_config:
+29ba 6fe0c323 fetch 1 ,mem_le_configuration 
+29bb f93ffe00 qset0 pdata 
+29bc 67e0c323 store 1 ,mem_le_configuration 
+29bd 20600000 rtn 
+
+le_set_fixed_ltk:
+29be 58112233 setarg 0x112233 
+29bf 67e1c324 store 3 ,mem_le_fixed_ltk 
+29c0 58445566 setarg 0x445566 
+29c1 e7e18005 istore 3 ,contw 
+29c2 58778899 setarg 0x778899 
+29c3 e7e18005 istore 3 ,contw 
+29c4 58001122 setarg 0x001122 
+29c5 e7e18005 istore 3 ,contw 
+29c6 58334455 setarg 0x334455 
+29c7 e7e18005 istore 3 ,contw 
+29c8 58000066 setarg 0x66 
+29c9 20207dce branch istore_1_contw_rtn 
+
+le_set_justwork:
+29ca 59000302 setarg 0x01000302 
+29cb 67e242c6 store 4 ,mem_le_pres 
+29cc 58010010 setarg 0x010010 
+29cd 67e1c2ca store 3 ,mem_le_pres_max_keysize 
+29ce 70430001 jam 1 ,mem_le_pairing_mode 
+29cf 20600000 rtn 
+
+le_fifo_malloc_tx_empty:
+29d0 da200000 arg 0 ,rega 
+29d1 d8200001 arg llid_empty ,type 
+29d2 202029e3 branch le_fifo_malloc_tx 
+
+le_fifo_malloc_tx_ll:
+29d3 4736c02d bpatchx patch2d_5 ,mem_patch2d 
+29d4 d8200003 arg llid_le_ll ,type 
+29d5 204029e3 call le_fifo_malloc_tx 
+29d6 1a427e00 copy regb ,pdata 
+29d7 e7e08005 istore 1 ,contw 
+29d8 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap:
+29d9 4737402d bpatchx patch2d_6 ,mem_patch2d 
+29da 18000202 force llid_start ,type 
+29db 1a20a204 increase 4 ,rega 
+29dc 204029e3 call le_fifo_malloc_tx 
+29dd 1a20a3fc increase -4 ,rega 
+29de 1a227e00 copy rega ,pdata 
+29df e7e10005 istore 2 ,contw 
+29e0 1a427e00 copy regb ,pdata 
+29e1 e7e10005 istore 2 ,contw 
+29e2 20600000 rtn 
+
+le_fifo_malloc_tx:
+29e3 4737c02d bpatchx patch2d_7 ,mem_patch2d 
+29e4 1a20a205 increase 5 ,rega 
+29e5 204068e5 call ble_l2cap_malloc 
+29e6 1a20a3fb increase -5 ,rega 
+29e7 1a227e00 copy rega ,pdata 
+29e8 e7e10005 istore 2 ,contw 
+29e9 58000000 setarg 0 
+29ea e7e10005 istore 2 ,contw 
+29eb 18227e00 copy type ,pdata 
+29ec e7e08005 istore 1 ,contw 
+29ed 20600000 rtn 
+
+le_fifo_get_first_tx_ptr:
+29ee 4738402e bpatchx patch2e_0 ,mem_patch2e 
+29ef 2040691f call l2cap_malloc_fifo_out 
+29f0 1fe20c00 copy pdata ,contr 
+29f1 20600000 rtn 
+
+le_fifo_get_second_tx_ptr:
+29f2 6fe14460 fetch 2 ,mem_tx_fifo2_ptr 
+29f3 20600000 rtn 
+
+le_fifo_get_last_tx_ptr:
+29f4 204029f7 call le_fifo_get_last_tx_ptr0 
+29f5 1fe20c00 copy pdata ,contr 
+29f6 20600000 rtn 
+
+le_fifo_get_last_tx_ptr0:
+29f7 6fe14463 fetch 2 ,mem_tx_fifo3_ptr 
+29f8 20600000 rtn 
+
+le_fifo_get_first_l2cap_ptr:
+29f9 204029ee call le_fifo_get_first_tx_ptr 
+29fa 18c08c05 increase 5 ,contr 
+29fb 20600000 rtn 
+
+le_fifo_get_first_att_ptr:
+29fc 204029ee call le_fifo_get_first_tx_ptr 
+29fd 18c08c09 increase 9 ,contr 
+29fe 20600000 rtn 
+
+le_fifo_get_last_att_ptr:
+29ff 204029f4 call le_fifo_get_last_tx_ptr 
+2a00 18c08c09 increase 9 ,contr 
+2a01 20600000 rtn 
+
+le_fifo_get_last_l2cap_ptr:
+2a02 204029f4 call le_fifo_get_last_tx_ptr 
+2a03 18c08c05 increase 5 ,contr 
+2a04 20600000 rtn 
+
+le_fifo_check_full:
+2a05 20206935 branch l2cap_malloc_is_fifo_full 
+
+le_fifo_check_nearly_full:
+2a06 20206938 branch l2cap_malloc_is_fifo_nearly_full 
+
+le_fifo_check_empty:
+2a07 2020693b branch l2cap_malloc_is_fifo_empty 
+
+le_fifo_release_first_node:
+2a08 20206924 branch l2cap_malloc_free 
+
+le_set_dle:
+2a09 67e443c4 store 8 ,mem_local_rx_max_octets 
+2a0a 20202a1a branch le_set_feature_data_packet_length_extension 
+
+le_set_phys:
+2a0b 184122ff and temp ,0xff ,rega 
+2a0c 20402a10 call le_set_tx_phy 
+2a0d 184ca200 rshift8 temp ,rega 
+
+le_set_rx_phy:
+2a0e 6220c3bb storer rega ,1 ,mem_le_rx_phys 
+2a0f 20202a11 branch le_set_phy_common 
+
+le_set_tx_phy:
+2a10 6220c3ba storer rega ,1 ,mem_le_tx_phys 
+
+le_set_phy_common:
+2a11 2a2ffe01 isolate1 bit_le_2m_phy ,rega 
+2a12 2040aa16 call le_set_feature_2m_phy ,true 
+2a13 2a2ffe02 isolate1 bit_le_coded_phy ,rega 
+2a14 2040aa18 call le_set_feature_coded_phy ,true 
+2a15 20600000 rtn 
+
+le_set_feature_2m_phy:
+2a16 d8e00008 arg bit_ll_feature_le_2m_phy ,queue 
+2a17 20202a1b branch le_set_feature 
+
+le_set_feature_coded_phy:
+2a18 d8e0000b arg bit_ll_feature_le_coded_phy ,queue 
+2a19 20202a1b branch le_set_feature 
+
+le_set_feature_data_packet_length_extension:
+2a1a d8e00005 arg bit_ll_feature_le_data_packet_length_extension ,queue 
+
+le_set_feature:
+2a1b 6fe443b2 fetch 8 ,mem_le_local_feature 
+2a1c f9207e00 qset1 pdata 
+2a1d 67e443b2 store 8 ,mem_le_local_feature 
+2a1e 20600000 rtn 
+
+le_set_fixed_ltk_justwork:
+2a1f 204029a4 call le_set_config_fixed_ltk 
+2a20 204029ca call le_set_justwork 
+2a21 204029be call le_set_fixed_ltk 
+2a22 202029ac branch le_set_config_read_authentication 
+
+le_advertising_dispatch:
+2a23 70019d01 jam fun_rx_ll_1m_phy ,mem_le_rx_phy 
+2a24 70019e01 jam fun_tx_ll_1m_phy ,mem_le_tx_phy 
+2a25 793f8030 set0 mark_ble_crc_fail ,mark 
+2a26 79200010 set1 mark_adv ,mark 
+2a27 793f8032 set0 mark_ble_encryption ,mark 
+2a28 2040258d call le_enable 
+2a29 20402a2d call le_scan 
+2a2a 20402aad call le_adv 
+2a2b 793f8010 set0 mark_adv ,mark 
+2a2c 20202591 branch le_disable 
+
+le_scan:
+2a2d 4738c02e bpatchx patch2e_1 ,mem_patch2e 
+2a2e 6fe0c347 fetch 1 ,mem_le_scan_enable 
+2a2f c1808000 rtnne le_scan_enable 
+2a30 d8e00002 arg le_scan_interval_timer ,queue 
+2a31 20407cf1 call timer_check 
+2a32 247a0000 nrtn blank 
+2a33 6fe14348 fetch 2 ,mem_le_scan_interval 
+2a34 6849434a fetcht 2 ,mem_le_scan_window 
+2a35 98467e00 isub temp ,pdata 
+2a36 d8e00002 arg le_scan_interval_timer ,queue 
+2a37 20407ce3 call timer_init 
+2a38 7854fc00 disable master 
+2a39 20402ada call le_init_adv 
+2a3a 20402a4c call le_wait_adv 
+2a3b 24768000 nrtn match 
+2a3c 4739402e bpatchx patch2e_2 ,mem_patch2e 
+2a3d 6fe3004e fetch 6 ,mem_le_rxbuf + 2 
+2a3e 67e30178 store 6 ,mem_le_plap 
+2a3f 6fe08002 fetch 1 ,mem_le_adv_rcv 
+2a40 1fe0fe01 increase 1 ,pdata 
+2a41 67e08002 store 1 ,mem_le_adv_rcv 
+2a42 20402a53 call le_create_conn 
+2a43 20748000 rtn master 
+2a44 20402b01 call le_send_scan_request 
+2a45 24768000 nrtn match 
+2a46 6fe08004 fetch 1 ,mem_le_scanrsp_rcv 
+2a47 1fe0fe01 increase 1 ,pdata 
+2a48 67e08004 store 1 ,mem_le_scanrsp_rcv 
+2a49 6fe48054 fetch 9 ,mem_le_rxbuf + 8 
+2a4a 67e4867f store 9 ,mem_temp_block0 
+2a4b 20600000 rtn 
+
+le_wait_adv:
+2a4c 4739c02e bpatchx patch2e_3 ,mem_patch2e 
+2a4d 20402b4d call le_next_adv_channel 
+2a4e 20402623 call le_receive_adv 
+2a4f 6fe08001 fetch 1 ,mem_le_adv_waitcnt 
+2a50 1fe0fe01 increase 1 ,pdata 
+2a51 67e08001 store 1 ,mem_le_adv_waitcnt 
+2a52 20600000 rtn 
+
+le_create_conn:
+2a53 473a402e bpatchx patch2e_4 ,mem_patch2e 
+2a54 6fe0c33e fetch 1 ,mem_cmd_le_create_conn 
+2a55 c18d8000 rtnne hci_cmd_le_create_conn 
+2a56 6fe30178 fetch 6 ,mem_le_plap 
+2a57 684b42ce fetcht 6 ,mem_le_conn_peer_addr 
+2a58 98467c00 isub temp ,null 
+2a59 24628000 nrtn zero 
+2a5a 20402056 call context_new 
+2a5b 24628000 nrtn zero 
+2a5c 20402a66 call le_connect_request 
+2a5d 204024f0 call le_init_master 
+2a5e 204030cb call le_send_version_ind 
+2a5f 70064d14 jam bt_evt_le_connected ,mem_fifo_temp 
+2a60 20407819 call ui_ipc_send_event 
+2a61 70411400 jam 0 ,mem_hci_cmd 
+2a62 7001b800 jam 0 ,mem_le_peer_sca 
+2a63 70434700 jam 0 ,mem_le_scan_enable 
+2a64 70433e00 jam 0 ,mem_cmd_le_create_conn 
+2a65 20202041 branch context_save 
+
+le_connect_request:
+2a66 473ac02e bpatchx patch2e_5 ,mem_patch2e 
+2a67 18007fff force -1 ,pdata 
+2a68 38080001 setsect 2 ,1 
+2a69 67e28198 store 5 ,mem_le_channel_map 
+2a6a da200168 arg mem_le_state ,rega 
+2a6b 204025f9 call le_calc_channel_map 
+2a6c 18007204 force 4 ,loopcnt 
+2a6d d8a0018c arg mem_le_access ,contw 
+2a6e 20407dee call generate_random_loop 
+2a6f 6fe142db fetch 2 ,mem_le_timeout 
+2a70 67e10196 store 2 ,mem_le_superto 
+
+le_con_req_hop_retry:
+2a71 180a7e00 random pdata 
+2a72 1fe17e0f and_into 0xf ,pdata 
+2a73 1fe67c04 sub pdata ,4 ,null 
+2a74 20212a71 branch le_con_req_hop_retry ,positive 
+2a75 67e08181 store 1 ,mem_le_hop 
+2a76 473b402e bpatchx patch2e_6 ,mem_patch2e 
+2a77 68494167 fetcht 2 ,mem_le_conn_interval 
+2a78 6049016a storet 2 ,mem_le_tsniff 
+2a79 18422600 copy temp ,regc 
+2a7a 1c40fe07 add clkn_bt ,7 ,pdata 
+2a7b 9a66fc00 idiv regc 
+2a7c 20407d64 call wait_div_end 
+2a7d 18072200 remainder rega 
+2a7e 9a267e00 isub rega ,pdata 
+2a7f 9a60fe00 iadd regc ,pdata 
+2a80 68494165 fetcht 2 ,mem_le_dsniff 
+2a81 9840fe00 iadd temp ,pdata 
+2a82 67e2016c store 4 ,mem_le_anchor 
+2a83 9c462200 isub clkn_bt ,rega 
+2a84 1a20a3fa increase -6 ,rega 
+2a85 da402205 arg 0x2205 ,regb 
+2a86 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
+2a87 7d3a2406 nsetflag blank ,le_sender_addr_bit ,regb 
+2a88 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
+2a89 7d3a2407 nsetflag blank ,le_receiver_addr_bit ,regb 
+2a8a 1a427e00 copy regb ,pdata 
+2a8b 67e1416b store 2 ,mem_le_txheader 
+2a8c 6fe342dd fetch 6 ,mem_le_lap 
+2a8d e7e30005 istore 6 ,contw 
+2a8e 6fe30178 fetch 6 ,mem_le_plap 
+2a8f e7e30005 istore 6 ,contw 
+2a90 6fe2018c fetch 4 ,mem_le_access 
+2a91 e7e20005 istore 4 ,contw 
+2a92 180a7e00 random pdata 
+2a93 e7e10005 istore 2 ,contw 
+2a94 180a7e00 random pdata 
+2a95 e7e08005 istore 1 ,contw 
+2a96 18007e02 force 2 ,pdata 
+2a97 e7e08005 istore 1 ,contw 
+2a98 1a2b7e00 rshift2 rega ,pdata 
+2a99 e7e10005 istore 2 ,contw 
+2a9a 1a6b7e00 rshift2 regc ,pdata 
+2a9b e7e10005 istore 2 ,contw 
+2a9c 473bc02e bpatchx patch2e_7 ,mem_patch2e 
+2a9d 58000000 setarg 0 
+2a9e e7e10005 istore 2 ,contw 
+2a9f 6fe142db fetch 2 ,mem_le_timeout 
+2aa0 e7e10005 istore 2 ,contw 
+2aa1 6fe28198 fetch 5 ,mem_le_channel_map 
+2aa2 e7e28005 istore 5 ,contw 
+2aa3 6fe08181 fetch 1 ,mem_le_hop 
+2aa4 d84000a0 arg param_le_sca ,temp 
+2aa5 9841fe00 ior temp ,pdata 
+2aa6 e7e08005 istore 1 ,contw 
+2aa7 2040271c call le_transmit_norx 
+2aa8 5800416b setarg mem_le_txheader 
+2aa9 1fe08c12 add pdata ,18 ,contr 
+2aaa efe18006 ifetch 3 ,contr 
+2aab 67e18190 store 3 ,mem_le_crcinit 
+2aac 20600000 rtn 
+
+le_adv:
+2aad 70000724 jam 36 ,mem_le_ch_mapped 
+2aae 70067f00 jam 0 ,mem_le_adv_channel_map_temp 
+2aaf 20402ad4 call le_send_adv_protect_txbuf 
+2ab0 20402ab2 call le_adv_loop 
+2ab1 20202ad7 branch le_send_adv_recover_txbuf 
+
+le_adv_loop:
+2ab2 473c402f bpatchx patch2f_0 ,mem_patch2f 
+2ab3 6fe0c38c fetch 1 ,mem_le_adv_enable 
+2ab4 207a0000 rtn blank 
+2ab5 d8e00000 arg le_adv_interval_timer ,queue 
+2ab6 20407cf1 call timer_check 
+2ab7 247a0000 nrtn blank 
+2ab8 78287c00 enable swfine 
+2ab9 20402ada call le_init_adv 
+2aba 20402b4d call le_next_adv_channel 
+2abb 20402ae3 call le_send_adv_ind 
+2abc 2436aac4 nbranch le_adv_not_match ,match 
+2abd 6fe08003 fetch 1 ,mem_le_req_rcv 
+2abe 1fe0fe01 increase 1 ,pdata 
+2abf 67e08003 store 1 ,mem_le_req_rcv 
+2ac0 6fe0804c fetch 1 ,mem_le_rxbuf_adv_header 
+2ac1 1fe17e0f and pdata ,0x0f ,pdata 
+2ac2 c001ab12 beq scan_req ,le_send_scan_response 
+2ac3 c002ab25 beq connect_req ,le_parse_connect_req 
+
+le_adv_not_match:
+2ac4 473cc02f bpatchx patch2f_1 ,mem_patch2f 
+2ac5 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
+2ac6 6848c397 fetcht 1 ,mem_le_adv_channel_map 
+2ac7 98467c00 isub temp ,null 
+2ac8 2422aab2 nbranch le_adv_loop ,zero 
+2ac9 6fe0c3cf fetch 1 ,mem_device_option 
+2aca 1fe67c0e sub pdata ,dvc_op_car ,null 
+2acb 2022bad9 branch car_le_stop_random_delay_check ,zero 
+2acc 180a7e00 random pdata 
+2acd d84001ff arg 0x1ff ,temp 
+2ace 98417e00 iand temp ,pdata 
+2acf 1fe0fefa add pdata ,250 ,pdata 
+2ad0 20407c93 call delay 
+2ad1 d8e00000 arg le_adv_interval_timer ,queue 
+2ad2 6fe1438d fetch 2 ,mem_le_adv_interval 
+2ad3 20207ce3 branch timer_init 
+
+le_send_adv_protect_txbuf:
+2ad4 d8a0068f arg mem_le_tx_buf_temp ,contw 
+2ad5 d8c0416b arg mem_le_txheader ,contr 
+2ad6 20207c8e branch memcpy48 
+
+le_send_adv_recover_txbuf:
+2ad7 d8c0068f arg mem_le_tx_buf_temp ,contr 
+2ad8 d8a0416b arg mem_le_txheader ,contw 
+2ad9 20207c8e branch memcpy48 
+
+le_init_adv:
+2ada 473d402f bpatchx patch2f_2 ,mem_patch2f 
+2adb 7854fc00 disable master 
+
+le_adv_access:
+2adc 588e89be setarg 0x8e89be 
+2add 1fed7e00 lshift8 pdata ,pdata 
+2ade 1fe1fed6 or_into 0xd6 ,pdata 
+2adf 98001200 iforce access 
+2ae0 58555555 setarg 0x555555 
+2ae1 67e18190 store 3 ,mem_le_crcinit 
+2ae2 20600000 rtn 
+
+le_send_adv_ind:
+2ae3 473dc02f bpatchx patch2f_3 ,mem_patch2f 
+2ae4 6fe0c38f fetch 1 ,mem_le_adv_type 
+2ae5 6848c390 fetcht 1 ,mem_le_adv_own_addr_type 
+2ae6 18520400 lshift4 temp ,temp 
+2ae7 184b8400 lshift2 temp ,temp 
+2ae8 98408400 iadd temp ,temp 
+2ae9 6048c16b storet 1 ,mem_le_txheader 
+2aea c000aaf4 beq adv_direct_ind ,le_send_adv_direct_ind 
+2aeb 6848c34c fetcht 1 ,mem_le_adv_data_len 
+2aec 1840fe06 add temp ,6 ,pdata 
+2aed 67e0c16c store 1 ,mem_le_txlen 
+2aee 6fe342dd fetch 6 ,mem_le_lap 
+2aef 67e3416d store 6 ,mem_le_txpayload 
+2af0 18427200 copy temp ,loopcnt 
+2af1 d8c0434d arg mem_le_adv_data ,contr 
+2af2 20407cce call memcpy_fast 
+2af3 20202afa branch le_send_adv_transmit 
+
+le_send_adv_direct_ind:
+2af4 5800000c setarg 12 
+2af5 67e0c16c store 1 ,mem_le_txlen 
+2af6 6fe342dd fetch 6 ,mem_le_lap 
+2af7 67e3416d store 6 ,mem_le_txpayload 
+2af8 6fe34116 fetch 6 ,mem_hci_plap 
+2af9 e7e30005 istore 6 ,contw 
+
+le_send_adv_transmit:
+2afa 473e402f bpatchx patch2f_4 ,mem_patch2f 
+2afb 6fe08000 fetch 1 ,mem_le_adv_transmit 
+2afc 1fe0fe01 increase 1 ,pdata 
+2afd 67e08000 store 1 ,mem_le_adv_transmit 
+2afe db600708 arg 1800 ,stop_watch 
+2aff 7856fc00 disable match 
+2b00 20202707 branch le_transmit_receive_sifs_without_change_mode 
+
+le_send_scan_request:
+2b01 473ec02f bpatchx patch2f_5 ,mem_patch2f 
+2b02 6fe0c398 fetch 1 ,mem_le_scan_type 
+2b03 c1808000 rtnne le_scan_type_active 
+2b04 6fe08000 fetch 1 ,mem_le_adv_transmit 
+2b05 1fe0fe01 increase 1 ,pdata 
+2b06 67e08000 store 1 ,mem_le_adv_transmit 
+2b07 d8400c03 arg 0x0c03 ,temp 
+2b08 6fe0c399 fetch 1 ,mem_le_scan_own_addr_type 
+2b09 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
+2b0a 1a227e00 copy rega ,pdata 
+2b0b 7d3a0407 nsetflag blank ,le_receiver_addr_bit ,temp 
+2b0c 6049416b storet 2 ,mem_le_txheader 
+2b0d 6fe342dd fetch 6 ,mem_le_lap 
+2b0e e7e30005 istore 6 ,contw 
+2b0f 6fe30178 fetch 6 ,mem_le_plap 
+2b10 e7e30005 istore 6 ,contw 
+2b11 20202707 branch le_transmit_receive_sifs_without_change_mode 
+
+le_send_scan_response:
+2b12 473f402f bpatchx patch2f_6 ,mem_patch2f 
+2b13 6fe30054 fetch 6 ,mem_le_rxbuf_adv_scan_req_adv_address 
+2b14 684b42dd fetcht 6 ,mem_le_lap 
+2b15 98467c00 isub temp ,null 
+2b16 24628000 nrtn zero 
+2b17 d8400004 arg scan_rsp ,temp 
+2b18 6fe0c390 fetch 1 ,mem_le_adv_own_addr_type 
+2b19 7d3a0406 nsetflag blank ,le_sender_addr_bit ,temp 
+2b1a 6048c16b storet 1 ,mem_le_txheader 
+2b1b 6848c36c fetcht 1 ,mem_le_scan_data_len 
+2b1c 1840fe06 add temp ,6 ,pdata 
+2b1d 67e0c16c store 1 ,mem_le_txlen 
+2b1e 6fe342dd fetch 6 ,mem_le_lap 
+2b1f 67e3416d store 6 ,mem_le_txpayload 
+2b20 d8c0436d arg mem_le_scan_data ,contr 
+2b21 18427200 copy temp ,loopcnt 
+2b22 20407cce call memcpy_fast 
+2b23 2040271c call le_transmit_norx 
+2b24 20202ac4 branch le_adv_not_match 
+
+le_parse_connect_req:
+2b25 6fe30054 fetch 6 ,mem_le_rxbuf_adv_connect_ind_adv_address 
+2b26 684b42dd fetcht 6 ,mem_le_lap 
+2b27 98467c00 isub temp ,null 
+2b28 24628000 nrtn zero 
+2b29 20402846 call le_scan_check_sender_addr_type 
+2b2a 6220c2cd storer rega ,1 ,mem_le_conn_peer_addr_type 
+2b2b 6fe3004e fetch 6 ,mem_le_rxbuf_adv_connect_ind_init_address 
+2b2c 67e30178 store 6 ,mem_le_plap 
+2b2d 6fe4005a fetch 8 ,mem_le_rxbuf_adv_connect_ind_access_address 
+2b2e 67e4018c store 8 ,mem_le_access 
+2b2f 68490062 fetcht 2 ,mem_le_rxbuf_adv_connect_ind_win_offset 
+2b30 473fc02f bpatchx patch2f_7 ,mem_patch2f 
+2b31 184b8400 lshift2 temp ,temp 
+2b32 6fe10064 fetch 2 ,mem_le_rxbuf_adv_connect_ind_interval 
+2b33 1febfe00 lshift2 pdata ,pdata 
+2b34 67e1016a store 2 ,mem_le_tsniff 
+2b35 67e2016c store 4 ,mem_le_anchor 
+2b36 98467e00 isub temp ,pdata 
+2b37 1fe0d1fe add pdata ,-2 ,clke_bt 
+2b38 6fe48066 fetch 9 ,mem_le_rxbuf_adv_connect_ind_latency 
+2b39 67e48194 store 9 ,mem_le_slave_latency 
+2b3a 6fe0806f fetch 1 ,mem_le_rxbuf_adv_connect_ind_hop_and_sca 
+2b3b 1fe1041f and pdata ,0x1f ,temp 
+2b3c 60488181 storet 1 ,mem_le_hop 
+2b3d 1ff18400 rshift4 pdata ,temp 
+2b3e 18430400 rshift temp ,temp 
+2b3f 604881b8 storet 1 ,mem_le_peer_sca 
+2b40 da200168 arg mem_le_state ,rega 
+2b41 20402917 call le_receive_window_size 
+2b42 da200168 arg mem_le_state ,rega 
+2b43 204025f9 call le_calc_channel_map 
+2b44 204024fc call le_init_slave 
+2b45 20402056 call context_new 
+2b46 24628000 nrtn zero 
+2b47 47404030 bpatchx patch30_0 ,mem_patch30 
+2b48 204020f7 call calc_clke_offset 
+2b49 20402e85 call le_l2cap_reset_signaling_identifier 
+2b4a 70064d14 jam bt_evt_le_connected ,mem_fifo_temp 
+2b4b 20407819 call ui_ipc_send_event 
+2b4c 20202041 branch context_save 
+
+le_next_adv_channel:
+2b4d 4740c030 bpatchx patch30_1 ,mem_patch30 
+2b4e 6fe08007 fetch 1 ,mem_le_ch_mapped 
+2b4f c012ab5c beq 37 ,le_next_adv_channel_curr_channel_37 
+2b50 c0132b65 beq 38 ,le_next_adv_channel_curr_channel_38 
+2b51 c013ab52 beq 39 ,le_next_adv_channel_curr_channel_39 
+
+le_next_adv_channel_curr_channel_39:
+2b52 6848c397 fetcht 1 ,mem_le_adv_channel_map 
+2b53 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
+2b54 2020ab61 branch set_le_next_adv_channel_37 ,true 
+2b55 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
+2b56 2020ab6a branch set_le_next_adv_channel_38 ,true 
+
+set_le_next_adv_channel_39:
+2b57 70000727 jam 39 ,mem_le_ch_mapped 
+2b58 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
+2b59 79207e02 set1 bit_adv_channel_map_39 ,pdata 
+
+set_le_adv_channel_map_temp:
+2b5a 67e0867f store 1 ,mem_le_adv_channel_map_temp 
+2b5b 20600000 rtn 
+
+le_next_adv_channel_curr_channel_37:
+2b5c 6848c397 fetcht 1 ,mem_le_adv_channel_map 
+2b5d 284ffe01 isolate1 bit_adv_channel_map_38 ,temp 
+2b5e 2020ab6a branch set_le_next_adv_channel_38 ,true 
+2b5f 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
+2b60 2020ab57 branch set_le_next_adv_channel_39 ,true 
+
+set_le_next_adv_channel_37:
+2b61 70000725 jam 37 ,mem_le_ch_mapped 
+2b62 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
+2b63 79207e00 set1 bit_adv_channel_map_37 ,pdata 
+2b64 20202b5a branch set_le_adv_channel_map_temp 
+
+le_next_adv_channel_curr_channel_38:
+2b65 6848c397 fetcht 1 ,mem_le_adv_channel_map 
+2b66 284ffe02 isolate1 bit_adv_channel_map_39 ,temp 
+2b67 2020ab57 branch set_le_next_adv_channel_39 ,true 
+2b68 284ffe00 isolate1 bit_adv_channel_map_37 ,temp 
+2b69 2020ab61 branch set_le_next_adv_channel_37 ,true 
+
+set_le_next_adv_channel_38:
+2b6a 70000726 jam 38 ,mem_le_ch_mapped 
+2b6b 6fe0867f fetch 1 ,mem_le_adv_channel_map_temp 
+2b6c 79207e01 set1 bit_adv_channel_map_38 ,pdata 
+2b6d 20202b5a branch set_le_adv_channel_map_temp 
+
+le_parse_att:
+2b6e 18c22200 copy contr ,rega 
+2b6f 6fe0c3cf fetch 1 ,mem_device_option 
+2b70 c0036558 beq dvc_op_shutter_dy ,shutter_dy_le_parse_att 
+2b71 c007c90b beq dvc_op_keyboard ,keyboard_le_parse_att 
+2b72 c0045469 beq dvc_op_mouse ,mouse_le_parse_att 
+2b73 1a220c00 copy rega ,contr 
+2b74 efe18006 ifetch 3 ,contr 
+2b75 67e1c39b store 3 ,mem_le_att_opcode 
+
+le_parse_att2:
+2b76 c0012b8b beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+2b77 c001ab90 beq attop_exchange_mtu_response ,le_parse_att_exchange_mtu_response 
+2b78 c0022b93 beq attop_find_information_request ,le_parse_att_find_information_request 
+2b79 c0032bd5 beq attop_find_by_type_value_request ,le_parse_att_find_by_type_value_request 
+2b7a c0042c22 beq attop_read_by_type_request ,le_parse_att_read_by_type_request 
+2b7b c0052cf7 beq attop_read_request ,le_parse_att_read_request 
+2b7c c0062d2a beq attop_read_blob_request ,le_parse_att_read_blob_request 
+2b7d c0082d41 beq attop_read_by_group_type_request ,le_parse_att_read_by_group_type_request 
+2b7e c0092d86 beq attop_write_request ,le_parse_att_write_request 
+2b7f c00b2dac beq attop_prepare_write_request ,le_parse_att_prepare_write_request 
+2b80 c00c2dbf beq attop_execute_write_request ,le_parse_att_execute_write_request 
+2b81 c00f2dc4 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+2b82 c0292dc8 beq attop_write_command ,le_parse_att_write_command 
+2b83 20600000 rtn 
+
+le_send_att_exchange_mtu_requset:
+2b84 18002203 force 3 ,rega 
+2b85 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2b86 58000002 setarg attop_exchange_mtu_request 
+
+le_send_att_exchange_mtu_common:
+2b87 e7e08005 istore 1 ,contw 
+2b88 6fe142e3 fetch 2 ,mem_le_local_mtu 
+2b89 e7e10005 istore 2 ,contw 
+2b8a 20600000 rtn 
+
+le_parse_att_exchange_mtu_request:
+2b8b 20402b90 call le_parse_att_exchange_mtu_response 
+
+le_send_att_exchange_mtu_response:
+2b8c 18002203 force 3 ,rega 
+2b8d 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2b8e 58000003 setarg attop_exchange_mtu_response 
+2b8f 20202b87 branch le_send_att_exchange_mtu_common 
+
+le_parse_att_exchange_mtu_response:
+2b90 1fecfe00 rshift8 pdata ,pdata 
+2b91 67e142e5 store 2 ,mem_le_remote_mtu 
+2b92 20600000 rtn 
+
+le_parse_att_find_information_request:
+2b93 20402e1f call le_get_search_handle_start_end_common 
+2b94 20407dbc call enable_user 
+2b95 20202ba1 branch le_send_att_find_information_response 
+
+le_att_handle_inrange:
+2b96 efe10006 ifetch 2 ,contr 
+2b97 1fe17eff and_into 0xff ,pdata 
+2b98 207a0000 rtn blank 
+2b99 9a467c00 isub regb ,null 
+2b9a 20628000 rtn zero 
+2b9b 24610000 nrtn positive 
+2b9c 9a667c00 isub regc ,null 
+2b9d 20628000 rtn zero 
+2b9e 20217dcc branch enable_blank ,positive 
+2b9f 18007c01 force 1 ,null 
+2ba0 20600000 rtn 
+
+le_send_att_find_information_response:
+2ba1 d9600003 arg 3 ,timeup 
+2ba2 20402ca5 call le_init_attlist_search 
+
+le_send_att_find_information_res_loop:
+2ba3 20402b96 call le_att_handle_inrange 
+2ba4 203a2bd3 branch le_send_att_find_information_res_end ,blank 
+2ba5 24212bd1 nbranch le_send_att_find_information_res_next ,positive 
+2ba6 18c08dfe increase -2 ,contr 
+2ba7 20407c6f call store_contr 
+2ba8 20407c66 call get_contw 
+2ba9 24342bc1 nbranch le_send_att_find_information_res_store_info2 ,user 
+2baa 20407c53 call push_stack_rega_b_c 
+2bab 6162065e storer timeup ,4 ,mem_timeup 
+2bac 1800221e force 30 ,rega 
+2bad 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2bae 6962065e fetchr timeup ,4 ,mem_timeup 
+2baf 20407c62 call pop_stack_rega_b_c 
+2bb0 20407dbe call disable_user 
+2bb1 58000005 setarg attop_find_information_response 
+2bb2 e7e08005 istore 1 ,contw 
+2bb3 20407c69 call get_contr 
+2bb4 efe10006 ifetch 2 ,contr 
+2bb5 ea208006 ifetchr rega ,1 ,contr 
+2bb6 1a267c10 sub rega ,16 ,null 
+2bb7 2022abbd branch le_send_att_find_information_res_uuid128 ,zero 
+2bb8 1a267c02 sub rega ,2 ,null 
+2bb9 2422ade1 nbranch le_send_att_error_response_notfound ,zero 
+
+le_send_att_find_information_res_uuid16:
+2bba 58000001 setarg uuid_size_16bit 
+2bbb e7e08005 istore 1 ,contw 
+2bbc 20202bc6 branch le_send_att_find_information_res_store_info 
+
+le_send_att_find_information_res_uuid128:
+2bbd 58000002 setarg uuid_size_128bit 
+2bbe e7e08005 istore 1 ,contw 
+2bbf d9600001 arg 1 ,timeup 
+2bc0 20202bc6 branch le_send_att_find_information_res_store_info 
+
+le_send_att_find_information_res_store_info2:
+2bc1 20407c69 call get_contr 
+2bc2 efe10006 ifetch 2 ,contr 
+2bc3 efe08006 ifetch 1 ,contr 
+2bc4 9a267c00 isub rega ,null 
+2bc5 2422abd3 nbranch le_send_att_find_information_res_end ,zero 
+
+le_send_att_find_information_res_store_info:
+2bc6 20407c69 call get_contr 
+2bc7 efe10006 ifetch 2 ,contr 
+2bc8 1fe17eff and_into 0xff ,pdata 
+2bc9 e7e10005 istore 2 ,contw 
+2bca ef208006 ifetchr loopcnt ,1 ,contr 
+2bcb 20407cdc call memcpy 
+2bcc 20407c6c call store_contw 
+2bcd 196097ff increase -1 ,timeup 
+2bce 2022abd3 branch le_send_att_find_information_res_end ,zero 
+
+le_send_att_find_information_res_cont:
+2bcf 20402cbb call le_att_contr_add_len 
+2bd0 20202ba3 branch le_send_att_find_information_res_loop 
+
+le_send_att_find_information_res_next:
+2bd1 20402cbb call le_att_contr_add_len 
+2bd2 20202bcf branch le_send_att_find_information_res_cont 
+
+le_send_att_find_information_res_end:
+2bd3 20342de1 branch le_send_att_error_response_notfound ,user 
+2bd4 20202e12 branch le_send_auto_len_by_mem 
+
+le_parse_att_find_by_type_value_request:
+2bd5 20402e1f call le_get_search_handle_start_end_common 
+2bd6 efe10006 ifetch 2 ,contr 
+2bd7 67e143a2 store 2 ,mem_le_search_uuid 
+2bd8 20407c6f call store_contr 
+2bd9 d8a00693 arg mem_le_search_att_type_length ,contw 
+2bda 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2bdb 1fe0fff9 increase -7 ,pdata 
+2bdc 20402e2d call le_get_search_common2 
+2bdd 20202be8 branch le_send_att_find_by_type_value_response 
+
+le_start_end_handle_check_1:
+2bde 78547c00 disable user 
+2bdf 6849068f fetcht 2 ,mem_le_search_handle_start 
+2be0 6fe10691 fetch 2 ,mem_le_search_handle_end 
+2be1 98467c00 isub temp ,null 
+2be2 24212be5 nbranch le_start_end_handle_check_1_fail ,positive 
+2be3 18427e00 deposit temp 
+2be4 c1800000 rtnne 0 
+
+le_start_end_handle_check_1_fail:
+2be5 78347c00 enable user 
+2be6 7001b901 jam att_err_invalid_handle ,mem_le_err_code 
+2be7 20202de3 branch le_send_att_error_response 
+
+le_send_att_find_by_type_value_response:
+2be8 20402bde call le_start_end_handle_check_1 
+2be9 20740000 rtn user 
+2bea 684943a2 fetcht 2 ,mem_le_search_uuid 
+2beb 58002800 setarg uuid_gatt_primary_service 
+2bec 98467c00 isub temp ,null 
+2bed 2022abef branch le_send_att_find_by_type_value_res_primary ,zero 
+2bee 20202de1 branch le_send_att_error_response_notfound 
+
+le_send_att_find_by_type_value_res_primary:
+2bef 70439e00 jam le_find_by_type_val_res_not_found ,mem_le_search_res 
+2bf0 6849068f fetcht 2 ,mem_le_search_handle_start 
+2bf1 60490656 storet 2 ,mem_temp 
+2bf2 20402ce2 call le_att_get_handle_info 
+2bf3 243a2de1 nbranch le_send_att_error_response_notfound ,blank 
+
+le_send_att_find_primary_search_loop:
+2bf4 68490656 fetcht 2 ,mem_temp 
+2bf5 20402ce2 call le_att_get_handle_info 
+2bf6 243a2c08 nbranch le_send_att_error_response_notfound2 ,blank 
+2bf7 18c22200 copy contr ,rega 
+2bf8 6fe086a4 fetch 1 ,mem_le_curr_att_len 
+2bf9 1fe27200 copy pdata ,loopcnt 
+2bfa 68488693 fetcht 1 ,mem_le_search_att_type_length 
+2bfb 98467c00 isub temp ,null 
+2bfc 2422ac04 nbranch le_send_att_find_primary_search_loop1 ,zero 
+2bfd da400694 arg mem_le_search_att_type ,regb 
+2bfe 20407d66 call string_compare 
+2bff 2022ac0b branch le_send_att_find_primary_search_end_start_handle_found ,zero 
+2c00 6fe106ac fetch 2 ,mem_le_cur_uuid 
+2c01 684943a2 fetcht 2 ,mem_le_search_uuid 
+2c02 98467c00 isub temp ,null 
+2c03 2022ac13 branch le_send_att_find_primary_search_end_ending_handle_found ,zero 
+
+le_send_att_find_primary_search_loop1:
+2c04 6fe10656 fetch 2 ,mem_temp 
+2c05 1fe0fe01 increase 1 ,pdata 
+2c06 67e10656 store 2 ,mem_temp 
+2c07 20202bf4 branch le_send_att_find_primary_search_loop 
+
+le_send_att_error_response_notfound2:
+2c08 6fe0c39e fetch 1 ,mem_le_search_res 
+2c09 c000ac13 beq le_find_by_type_val_res_found_starting_handle ,le_send_att_find_primary_search_end_ending_handle_found 
+2c0a 20202de1 branch le_send_att_error_response_notfound 
+
+le_send_att_find_primary_search_end_start_handle_found:
+2c0b 6fe106ac fetch 2 ,mem_le_cur_uuid 
+2c0c 684943a2 fetcht 2 ,mem_le_search_uuid 
+2c0d 98467c00 isub temp ,null 
+2c0e 2422ac04 nbranch le_send_att_find_primary_search_loop1 ,zero 
+2c0f 70439e01 jam le_find_by_type_val_res_found_starting_handle ,mem_le_search_res 
+2c10 68490656 fetcht 2 ,mem_temp 
+2c11 604906a7 storet 2 ,mem_le_cur_handle_start 
+2c12 20202c04 branch le_send_att_find_primary_search_loop1 
+
+le_send_att_find_primary_search_end_ending_handle_found:
+2c13 6fe0c39e fetch 1 ,mem_le_search_res 
+2c14 c0002c04 beq le_find_by_type_val_res_not_found ,le_send_att_find_primary_search_loop1 
+2c15 70439e02 jam le_find_by_type_val_res_found_ending_handle ,mem_le_search_res 
+2c16 68490656 fetcht 2 ,mem_temp 
+2c17 184085ff increase -1 ,temp 
+2c18 604906a9 storet 2 ,mem_le_cur_handle_end 
+
+le_send_att_find_primary_search_end:
+2c19 da200005 arg 5 ,rega 
+2c1a 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2c1b 58000007 setarg attop_find_by_type_value_response 
+2c1c e7e08005 istore 1 ,contw 
+2c1d 6fe106a7 fetch 2 ,mem_le_cur_handle_start 
+2c1e e7e10005 istore 2 ,contw 
+2c1f 6fe106a9 fetch 2 ,mem_le_cur_handle_end 
+2c20 e7e10005 istore 2 ,contw 
+2c21 20600000 rtn 
+
+le_parse_att_read_by_type_request:
+2c22 20402e1f call le_get_search_handle_start_end_common 
+2c23 20402e28 call le_get_search_att_type 
+2c24 20202c25 branch le_send_att_read_by_type_response 
+
+le_send_att_read_by_type_response:
+2c25 6849068f fetcht 2 ,mem_le_search_handle_start 
+2c26 60490656 storet 2 ,mem_temp 
+2c27 20402ca5 call le_init_attlist_search 
+2c28 20402cb0 call le_att_get_handle_ptr2 
+2c29 18c08dfe increase -2 ,contr 
+2c2a 18c27e00 copy contr ,pdata 
+2c2b 67e106a5 store 2 ,mem_le_cur_attlist_start_ptr 
+2c2c 68490694 fetcht 2 ,mem_le_search_att_type 
+2c2d 58002a00 setarg uuid_chrctr_device_name 
+2c2e 98467c00 isub temp ,null 
+2c2f 2022ac90 branch le_send_att_read_by_type_res_device_name ,zero 
+2c30 58002803 setarg uuid_gatt_characteristic 
+2c31 98467c00 isub temp ,null 
+2c32 2422ac7a nbranch le_send_att_read_by_type_res_not_characteristic ,zero 
+2c33 d9600002 arg 2 ,timeup 
+
+le_send_att_read_by_type_response_loop:
+2c34 20402df5 call le_att_check_handle_end 
+2c35 24212c57 nbranch le_send_att_read_by_type_response_end ,positive 
+2c36 68490656 fetcht 2 ,mem_temp 
+2c37 20402ce0 call le_att_get_handle_info_from_ptr 
+2c38 243a2c57 nbranch le_send_att_read_by_type_response_end ,blank 
+2c39 20402df9 call le_att_same_type 
+2c3a 2422ac55 nbranch le_send_att_read_by_type_response_next_handle ,zero 
+2c3b 24342c59 nbranch le_send_att_read_by_type_res_found_next ,user 
+2c3c 78547c00 disable user 
+2c3d 20402e24 call le_get_search_max_mtu_data 
+2c3e 1fe22200 copy pdata ,rega 
+2c3f 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2c40 58000009 setarg attop_read_by_type_response 
+2c41 e7e08005 istore 1 ,contw 
+2c42 18a26000 copy contw ,alarm 
+2c43 18a08a01 increase 1 ,contw 
+2c44 20402c67 call le_send_att_read_by_type_write_properties 
+2c45 20402df1 call le_att_next_handle 
+2c46 20402ce0 call le_att_get_handle_info_from_ptr 
+2c47 20402c6e call le_send_att_read_by_type_write_uuid 
+2c48 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
+2c49 1fe0a205 add pdata ,5 ,rega 
+2c4a e2208030 istorer rega ,1 ,alarm 
+2c4b 1a267c07 sub rega ,7 ,null 
+2c4c 2442fdc0 ncall enable_user2 ,zero 
+2c4d 2042fdc2 call disable_user2 ,zero 
+2c4e 20402e24 call le_get_search_max_mtu_data 
+2c4f 1fe0fffe increase -2 ,pdata 
+2c50 9a26fc00 idiv rega 
+2c51 20407d64 call wait_div_end 
+2c52 18079600 quotient timeup 
+2c53 196097ff increase -1 ,timeup 
+2c54 2022ac57 branch le_send_att_read_by_type_response_end ,zero 
+
+le_send_att_read_by_type_response_next_handle:
+2c55 20402df1 call le_att_next_handle 
+2c56 20202c34 branch le_send_att_read_by_type_response_loop 
+
+le_send_att_read_by_type_response_end:
+2c57 20342de1 branch le_send_att_error_response_notfound ,user 
+2c58 20202e12 branch le_send_auto_len_by_mem 
+
+le_send_att_read_by_type_res_found_next:
+2c59 20402e02 call le_store_att_record 
+2c5a 20402df1 call le_att_next_handle 
+2c5b 20402ce0 call le_att_get_handle_info_from_ptr 
+2c5c 20402d74 call le_send_att_read_by_type_res_check_pair_length_type 
+2c5d 243a2c57 nbranch le_send_att_read_by_type_response_end ,blank 
+2c5e 20407c66 call get_contw 
+2c5f 6fe10656 fetch 2 ,mem_temp 
+2c60 1fe0ffff increase -1 ,pdata 
+2c61 e7e10005 istore 2 ,contw 
+2c62 20402e0e call le_write_att_record_common 
+2c63 20402c6e call le_send_att_read_by_type_write_uuid 
+2c64 196097ff increase -1 ,timeup 
+2c65 2022ac57 branch le_send_att_read_by_type_response_end ,zero 
+2c66 20202c55 branch le_send_att_read_by_type_response_next_handle 
+
+le_send_att_read_by_type_write_properties:
+2c67 6fe10656 fetch 2 ,mem_temp 
+2c68 e7e10005 istore 2 ,contw 
+2c69 6fe086a4 fetch 1 ,mem_le_curr_att_len 
+2c6a 1fe27200 copy pdata ,loopcnt 
+2c6b 20407c69 call get_contr 
+2c6c 20407cce call memcpy_fast 
+2c6d 20207c6c branch store_contw 
+
+le_send_att_read_by_type_write_uuid:
+2c6e 20407c66 call get_contw 
+2c6f 6fe10656 fetch 2 ,mem_temp 
+2c70 e7e10005 istore 2 ,contw 
+2c71 20407c6c call store_contw 
+2c72 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
+2c73 1fe27200 copy pdata ,loopcnt 
+2c74 20407c66 call get_contw 
+2c75 20407c69 call get_contr 
+2c76 9f260c00 isub loopcnt ,contr 
+2c77 18c08dff increase -1 ,contr 
+2c78 20407cce call memcpy_fast 
+2c79 20207c6c branch store_contw 
+
+le_send_att_read_by_type_res_not_characteristic:
+2c7a 47414030 bpatchx patch30_2 ,mem_patch30 
+2c7b 20402cbe call le_att_get_uuid_ptr 
+2c7c 203a2de1 branch le_send_att_error_response_notfound ,blank 
+2c7d 18c22600 copy contr ,regc 
+2c7e 20402e24 call le_get_search_max_mtu_data 
+2c7f 1a620c00 copy regc ,contr 
+2c80 e8408006 ifetcht 1 ,contr 
+2c81 18408404 increase 4 ,temp 
+2c82 20407db2 call not_greater_than 
+2c83 1fe22600 copy pdata ,regc 
+2c84 1fe22200 copy pdata ,rega 
+2c85 20407c6f call store_contr 
+2c86 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2c87 58000009 setarg attop_read_by_type_response 
+2c88 e7e08005 istore 1 ,contw 
+2c89 1a60fffe add regc ,-2 ,pdata 
+2c8a 1fe0f3fe add pdata ,-2 ,loopcnt 
+2c8b e7e08005 istore 1 ,contw 
+2c8c 6fe106bc fetch 2 ,mem_le_cur_handle 
+2c8d e7e10005 istore 2 ,contw 
+2c8e 20407c69 call get_contr 
+2c8f 20207cce branch memcpy_fast 
+
+le_send_att_read_by_type_res_device_name:
+2c90 20402cbe call le_att_get_uuid_ptr 
+2c91 203a2de1 branch le_send_att_error_response_notfound ,blank 
+2c92 18c08dfb increase -5 ,contr 
+2c93 efe10006 ifetch 2 ,contr 
+2c94 67e10656 store 2 ,mem_temp 
+2c95 20402e24 call le_get_search_max_mtu_data 
+2c96 6848c26d fetcht 1 ,mem_le_name_len 
+2c97 18408404 increase 4 ,temp 
+2c98 20407db2 call not_greater_than 
+2c99 1fe22600 copy pdata ,regc 
+2c9a 1fe22200 copy pdata ,rega 
+2c9b 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2c9c 58000009 setarg attop_read_by_type_response 
+2c9d e7e08005 istore 1 ,contw 
+2c9e 1a60fffe add regc ,-2 ,pdata 
+2c9f 1fe0f3fe add pdata ,-2 ,loopcnt 
+2ca0 e7e08005 istore 1 ,contw 
+2ca1 6fe10656 fetch 2 ,mem_temp 
+2ca2 e7e10005 istore 2 ,contw 
+2ca3 d8c0426e arg mem_le_name ,contr 
+2ca4 20207cce branch memcpy_fast 
+
+le_init_attlist_search:
+2ca5 4741c030 bpatchx patch30_3 ,mem_patch30 
+2ca6 6fe1068f fetch 2 ,mem_le_search_handle_start 
+2ca7 98002400 iforce regb 
+2ca8 6fe10691 fetch 2 ,mem_le_search_handle_end 
+2ca9 98002600 iforce regc 
+2caa 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
+2cab 98000c00 iforce contr 
+2cac 20207dbc branch enable_user 
+
+le_att_get_handle_ptr:
+2cad 20402cb0 call le_att_get_handle_ptr2 
+2cae 2022acbb branch le_att_get_handle_ptr_found ,zero 
+2caf 20600000 rtn 
+
+le_att_get_handle_ptr2:
+2cb0 47424030 bpatchx patch30_4 ,mem_patch30 
+2cb1 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
+2cb2 98000c00 iforce contr 
+
+le_att_get_handle_loop1:
+2cb3 efe10006 ifetch 2 ,contr 
+2cb4 1fe17eff and_into 0xff ,pdata 
+2cb5 207a0000 rtn blank 
+2cb6 98467c00 isub temp ,null 
+2cb7 20628000 rtn zero 
+2cb8 20402cbb call le_att_contr_add_len 
+2cb9 20402cbb call le_att_contr_add_len 
+2cba 20202cb3 branch le_att_get_handle_loop1 
+
+le_att_get_handle_ptr_found:
+
+le_att_contr_add_len:
+2cbb efe08006 ifetch 1 ,contr 
+2cbc 98c08c00 iadd contr ,contr 
+2cbd 20600000 rtn 
+
+le_att_get_uuid_ptr:
+2cbe 4742c030 bpatchx patch30_5 ,mem_patch30 
+2cbf 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
+2cc0 98000c00 iforce contr 
+
+le_att_get_uuid_loop:
+2cc1 efe10006 ifetch 2 ,contr 
+2cc2 1fe17eff and_into 0xff ,pdata 
+2cc3 207a0000 rtn blank 
+2cc4 67e106bc store 2 ,mem_le_cur_handle 
+2cc5 efe08006 ifetch 1 ,contr 
+2cc6 18c20a00 copy contr ,contw 
+2cc7 98c08c00 iadd contr ,contr 
+2cc8 68488693 fetcht 1 ,mem_le_search_att_type_length 
+2cc9 98467c00 isub temp ,null 
+2cca 2422acd1 nbranch le_att_get_uuid_ptr_next ,zero 
+2ccb 1fe27200 copy pdata ,loopcnt 
+2ccc 18a22400 copy contw ,regb 
+2ccd da200694 arg mem_le_search_att_type ,rega 
+2cce 20407d66 call string_compare 
+2ccf 20628000 rtn zero 
+2cd0 6fe08693 fetch 1 ,mem_le_search_att_type_length 
+
+le_att_get_uuid_ptr_next:
+2cd1 98a08c00 iadd contw ,contr 
+2cd2 20402cbb call le_att_contr_add_len 
+2cd3 20202cc1 branch le_att_get_uuid_loop 
+
+le_att_get_last_handle:
+2cd4 d8400001 arg 0x01 ,temp 
+2cd5 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
+2cd6 98000c00 iforce contr 
+2cd7 18c20a00 copy contr ,contw 
+
+le_att_get_last_handle_loop:
+2cd8 efe10006 ifetch 2 ,contr 
+2cd9 1fe17eff and_into 0xff ,pdata 
+2cda 207a0000 rtn blank 
+2cdb 1fe08401 add pdata ,1 ,temp 
+2cdc 20402cbb call le_att_contr_add_len 
+2cdd 20402cbb call le_att_contr_add_len 
+2cde 18c20a00 copy contr ,contw 
+2cdf 20202cd8 branch le_att_get_last_handle_loop 
+
+le_att_get_handle_info_from_ptr:
+2ce0 6fe106a5 fetch 2 ,mem_le_cur_attlist_start_ptr 
+2ce1 20202ce4 branch le_att_get_handle_info_fast 
+
+le_att_get_handle_info:
+2ce2 47434030 bpatchx patch30_6 ,mem_patch30 
+2ce3 6fe142f9 fetch 2 ,mem_ui_le_uuid_table 
+
+le_att_get_handle_info_fast:
+2ce4 98000c00 iforce contr 
+
+le_att_get_handle_loop:
+2ce5 efe10006 ifetch 2 ,contr 
+2ce6 1fe17eff and_into 0xff ,pdata 
+2ce7 203a2ced branch le_att_unfind_handle ,blank 
+2ce8 98467c00 isub temp ,null 
+2ce9 2022acee branch le_att_finded_handle ,zero 
+2cea 20402cbb call le_att_contr_add_len 
+2ceb 20402cbb call le_att_contr_add_len 
+2cec 20202ce5 branch le_att_get_handle_loop 
+
+le_att_unfind_handle:
+2ced 20207dca branch disable_blank 
+
+le_att_finded_handle:
+2cee efe08006 ifetch 1 ,contr 
+2cef 67e086ab store 1 ,mem_le_cur_uuid_length 
+2cf0 1fe27200 copy pdata ,loopcnt 
+2cf1 d8a006ac arg mem_le_cur_uuid ,contw 
+2cf2 20407cce call memcpy_fast 
+2cf3 efe08006 ifetch 1 ,contr 
+2cf4 67e086a4 store 1 ,mem_le_curr_att_len 
+2cf5 20407c6f call store_contr 
+2cf6 20207dcc branch enable_blank 
+
+le_parse_att_read_request:
+2cf7 20402da5 call le_check_encrypt_state 
+2cf8 6849439c fetcht 2 ,mem_le_att_handle 
+2cf9 6fe0c323 fetch 1 ,mem_le_configuration 
+2cfa c281ad20 bbit1 bit_ble_read_auth ,le_send_att_read_response_check_auth 
+
+le_send_att_read_response:
+2cfb 20402cb0 call le_att_get_handle_ptr2 
+2cfc 2422ade1 nbranch le_send_att_error_response_notfound ,zero 
+2cfd 20542d26 call le_send_att_read_response_check_handle ,user 
+2cfe 20740000 rtn user 
+2cff 20402cbb call le_att_get_handle_ptr_found 
+2d00 18c08dfe increase -2 ,contr 
+2d01 efe10006 ifetch 2 ,contr 
+2d02 d8402a00 arg uuid_chrctr_device_name ,temp 
+2d03 98467c00 isub temp ,null 
+2d04 2022ad14 branch le_send_device_name ,zero 
+2d05 18c22600 copy contr ,regc 
+2d06 20402e24 call le_get_search_max_mtu_data 
+2d07 1a620c00 copy regc ,contr 
+2d08 e8408006 ifetcht 1 ,contr 
+2d09 18408401 increase 1 ,temp 
+2d0a 20407db2 call not_greater_than 
+
+le_send_att_read_response_less:
+2d0b 1fe22600 copy pdata ,regc 
+2d0c 1fe22200 copy pdata ,rega 
+2d0d 20407c6f call store_contr 
+2d0e 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2d0f 5800000b setarg attop_read_response 
+2d10 e7e08005 istore 1 ,contw 
+2d11 1a60f3ff add regc ,-1 ,loopcnt 
+2d12 20407c69 call get_contr 
+2d13 20207cdc branch memcpy 
+
+le_send_device_name:
+2d14 20402e24 call le_get_search_max_mtu_data 
+2d15 6848c26d fetcht 1 ,mem_le_name_len 
+2d16 18408401 increase 1 ,temp 
+2d17 20407db2 call not_greater_than 
+2d18 1fe22600 copy pdata ,regc 
+2d19 1fe22200 copy pdata ,rega 
+2d1a 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2d1b 5800000b setarg attop_read_response 
+2d1c e7e08005 istore 1 ,contw 
+2d1d 1a60f3ff add regc ,-1 ,loopcnt 
+2d1e d8c0426e arg mem_le_name ,contr 
+2d1f 20207cdc branch memcpy 
+
+le_send_att_read_response_check_auth:
+2d20 6fe14334 fetch 2 ,mem_le_pairing_handle 
+2d21 98467c00 isub temp ,null 
+2d22 2422acfb nbranch le_send_att_read_response ,zero 
+2d23 24342cfb nbranch le_send_att_read_response ,user 
+
+le_send_att_read_response_error_insufficient_auth:
+2d24 7001b905 jam att_err_insufficient_authentication ,mem_le_err_code 
+2d25 20202de3 branch le_send_att_error_response 
+
+le_send_att_read_response_check_handle:
+2d26 18c08dfe increase -2 ,contr 
+2d27 efe10006 ifetch 2 ,contr 
+2d28 c2872d24 bbit1 bit_of_att_handle_read_authenticated ,le_send_att_read_response_error_insufficient_auth 
+2d29 20207dbe branch disable_user 
+
+le_parse_att_read_blob_request:
+2d2a efe10006 ifetch 2 ,contr 
+2d2b 67e10693 store 2 ,mem_le_att_offset 
+2d2c 98002200 iforce rega 
+2d2d 6849439c fetcht 2 ,mem_le_att_handle 
+
+le_send_att_read_blob_response:
+2d2e 20402cad call le_att_get_handle_ptr 
+2d2f 203a2de1 branch le_send_att_error_response_notfound ,blank 
+2d30 efe08006 ifetch 1 ,contr 
+2d31 9a267200 isub rega ,loopcnt 
+2d32 24212de1 nbranch le_send_att_error_response_notfound ,positive 
+2d33 20407c6f call store_contr 
+2d34 20402e24 call le_get_search_max_mtu_data 
+2d35 1f208401 add loopcnt ,1 ,temp 
+2d36 20407db2 call not_greater_than 
+
+le_send_att_read_blob_response_less:
+2d37 1fe22200 copy pdata ,rega 
+2d38 1fe22600 copy pdata ,regc 
+2d39 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2d3a 5800000d setarg attop_read_blob_response 
+2d3b e7e08005 istore 1 ,contw 
+2d3c 1a60f3ff add regc ,-1 ,loopcnt 
+2d3d 68490693 fetcht 2 ,mem_le_att_offset 
+2d3e 20407c69 call get_contr 
+2d3f 98408c00 iadd temp ,contr 
+2d40 20207cce branch memcpy_fast 
+
+le_parse_att_read_by_group_type_request:
+2d41 20402e1f call le_get_search_handle_start_end_common 
+2d42 20402e28 call le_get_search_att_type 
+2d43 20202d44 branch le_send_att_read_by_group_type_response 
+
+le_send_att_read_by_group_type_response:
+2d44 d9600002 arg 2 ,timeup 
+2d45 6849068f fetcht 2 ,mem_le_search_handle_start 
+2d46 60490656 storet 2 ,mem_temp 
+2d47 20402cb0 call le_att_get_handle_ptr2 
+2d48 18c08dfe increase -2 ,contr 
+2d49 18c27e00 copy contr ,pdata 
+2d4a 67e106a5 store 2 ,mem_le_cur_attlist_start_ptr 
+
+le_send_att_read_by_group_type_response_loop:
+2d4b 20402df5 call le_att_check_handle_end 
+2d4c 24212d7c nbranch le_send_att_read_by_group_type_end0 ,positive 
+2d4d 68490656 fetcht 2 ,mem_temp 
+2d4e 20402ce0 call le_att_get_handle_info_from_ptr 
+2d4f 243a2d7f nbranch le_send_att_read_by_group_type_end1 ,blank 
+2d50 20402df9 call le_att_same_type 
+2d51 2422ad72 nbranch le_send_att_read_by_group_type_next_handle ,zero 
+2d52 19627e00 copy timeup ,pdata 
+2d53 c0002d7f beq 0 ,le_send_att_read_by_group_type_end1 
+2d54 24342d68 nbranch le_send_att_read_by_group_type_store_write_record ,user 
+2d55 78547c00 disable user 
+2d56 20402e24 call le_get_search_max_mtu_data 
+2d57 1fe22200 copy pdata ,rega 
+2d58 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2d59 58000011 setarg attop_read_by_group_type_response 
+2d5a e7e08005 istore 1 ,contw 
+2d5b 6fe086a4 fetch 1 ,mem_le_curr_att_len 
+2d5c 1fe0a204 add pdata ,4 ,rega 
+2d5d e2208005 istorer rega ,1 ,contw 
+2d5e 20407c6c call store_contw 
+2d5f 1a267c06 sub rega ,6 ,null 
+2d60 2442fdc0 ncall enable_user2 ,zero 
+2d61 2042fdc2 call disable_user2 ,zero 
+2d62 20402e24 call le_get_search_max_mtu_data 
+2d63 1fe0fffe increase -2 ,pdata 
+2d64 9a26fc00 idiv rega 
+2d65 20407d64 call wait_div_end 
+2d66 18079600 quotient timeup 
+2d67 20202d6e branch le_send_att_read_by_group_type_store_record 
+
+le_send_att_read_by_group_type_store_write_record:
+2d68 20402d76 call le_send_att_read_by_group_type_check_pair_length_type 
+2d69 243a2d7f nbranch le_send_att_read_by_group_type_end1 ,blank 
+2d6a 6fe10656 fetch 2 ,mem_temp 
+2d6b 1fe0ffff increase -1 ,pdata 
+2d6c 67e106a9 store 2 ,mem_le_cur_handle_end 
+2d6d 20402e08 call le_write_att_record 
+
+le_send_att_read_by_group_type_store_record:
+2d6e 6fe10656 fetch 2 ,mem_temp 
+2d6f 67e106a7 store 2 ,mem_le_cur_handle_start 
+2d70 20402e02 call le_store_att_record 
+2d71 196097ff increase -1 ,timeup 
+
+le_send_att_read_by_group_type_next_handle:
+2d72 20402df1 call le_att_next_handle 
+2d73 20202d4b branch le_send_att_read_by_group_type_response_loop 
+
+le_send_att_read_by_type_res_check_pair_length_type:
+2d74 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
+2d75 20202d77 branch le_send_att_read_by_group_type_check_pair_length_type + 1 
+
+le_send_att_read_by_group_type_check_pair_length_type:
+2d76 6fe086a4 fetch 1 ,mem_le_curr_att_len 
+2d77 20362d7a branch le_send_att_read_by_group_type_check_pair_length_type_16byte ,user2 
+2d78 1fe0fffe increase -2 ,pdata 
+2d79 20600000 rtn 
+
+le_send_att_read_by_group_type_check_pair_length_type_16byte:
+2d7a 1fe0fff0 increase -16 ,pdata 
+2d7b 20600000 rtn 
+
+le_send_att_read_by_group_type_end0:
+2d7c 6fe10656 fetch 2 ,mem_temp 
+2d7d 67e106a9 store 2 ,mem_le_cur_handle_end 
+2d7e 20202d83 branch le_send_att_read_by_group_type_end_common 
+
+le_send_att_read_by_group_type_end1:
+2d7f 6fe10656 fetch 2 ,mem_temp 
+2d80 1fe0ffff increase -1 ,pdata 
+2d81 67e106a9 store 2 ,mem_le_cur_handle_end 
+2d82 20202d83 branch le_send_att_read_by_group_type_end_common 
+
+le_send_att_read_by_group_type_end_common:
+2d83 20342de1 branch le_send_att_error_response_notfound ,user 
+2d84 20402e08 call le_write_att_record 
+2d85 20202e12 branch le_send_auto_len_by_mem 
+
+le_parse_att_write_request:
+2d86 18c22200 copy contr ,rega 
+2d87 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2d88 1fe0a5fd add pdata ,-3 ,regb 
+2d89 20402908 call le_writeatt_cb 
+
+le_send_att_write_response_check_auth:
+2d8a 4743c030 bpatchx patch30_7 ,mem_patch30 
+2d8b 20402da5 call le_check_encrypt_state 
+2d8c 6849439c fetcht 2 ,mem_le_att_handle 
+2d8d 20402cb0 call le_att_get_handle_ptr2 
+2d8e 2422ada3 nbranch le_send_att_write_response_error_invalid_handle ,zero 
+2d8f 20542d9f call le_send_att_write_response_check_handle ,user 
+2d90 20740000 rtn user 
+2d91 6fe0c323 fetch 1 ,mem_le_configuration 
+2d92 c3022d9a bbit0 bit_ble_write_auth ,le_send_att_write_response 
+2d93 6849439c fetcht 2 ,mem_le_att_handle 
+2d94 6fe14334 fetch 2 ,mem_le_pairing_handle 
+2d95 98467c00 isub temp ,null 
+2d96 2422ad9a nbranch le_send_att_write_response ,zero 
+2d97 20402da5 call le_check_encrypt_state 
+2d98 24342d9a nbranch le_send_att_write_response ,user 
+2d99 20202d24 branch le_send_att_read_response_error_insufficient_auth 
+
+le_send_att_write_response:
+2d9a 18002201 force 1 ,rega 
+2d9b 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2d9c 58000013 setarg attop_write_response 
+2d9d e7e08005 istore 1 ,contw 
+2d9e 20600000 rtn 
+
+le_send_att_write_response_check_handle:
+2d9f 18c08dfe increase -2 ,contr 
+2da0 efe10006 ifetch 2 ,contr 
+2da1 c287ad24 bbit1 bit_of_att_handle_write_authenticated ,le_send_att_read_response_error_insufficient_auth 
+2da2 20207dbe branch disable_user 
+
+le_send_att_write_response_error_invalid_handle:
+2da3 7001b901 jam att_err_invalid_handle ,mem_le_err_code 
+2da4 20202de3 branch le_send_att_error_response 
+
+le_check_encrypt_state:
+2da5 47444031 bpatchx patch31_0 ,mem_patch31 
+2da6 20407dbe call disable_user 
+2da7 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2da8 c1000000 rtneq le_pairing_mode_none 
+2da9 6fe0c040 fetch 1 ,mem_context 
+2daa c3820000 rtnbit1 lestate_encryption 
+2dab 20207dbc branch enable_user 
+
+le_parse_att_prepare_write_request:
+2dac 18c0a202 add contr ,2 ,rega 
+2dad 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2dae 1fe0a5fb add pdata ,-5 ,regb 
+2daf 20402908 call le_writeatt_cb 
+2db0 20202db1 branch le_send_att_prepare_write_response 
+
+le_send_att_prepare_write_response:
+2db1 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2db2 1fe22200 copy pdata ,rega 
+2db3 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2db4 58000017 setarg attop_prepare_write_response 
+2db5 e7e08005 istore 1 ,contw 
+2db6 6fe1439c fetch 2 ,mem_le_att_handle 
+2db7 e7e10005 istore 2 ,contw 
+2db8 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2db9 1fe0f3fb add pdata ,-5 ,loopcnt 
+2dba 6fe1433b fetch 2 ,mem_le_payload_ptr 
+2dbb 1fe08c07 add pdata ,7 ,contr 
+2dbc efe10006 ifetch 2 ,contr 
+2dbd e7e10005 istore 2 ,contw 
+2dbe 20207cce branch memcpy_fast 
+
+le_parse_att_execute_write_request:
+
+le_send_att_execute_write_response:
+2dbf 18002201 force 1 ,rega 
+2dc0 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2dc1 58000019 setarg attop_execute_write_response 
+2dc2 e7e08005 istore 1 ,contw 
+2dc3 20600000 rtn 
+
+le_parse_handle_value_confirmation:
+2dc4 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
+2dc5 793ffe00 set0 ble_l2cap_recv_confirmation_packet ,pdata 
+2dc6 67e0c39a store 1 ,mem_le_l2cap_att_states 
+2dc7 20600000 rtn 
+
+le_parse_att_write_command:
+2dc8 18c22200 copy contr ,rega 
+2dc9 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2dca 1fe0a5fd add pdata ,-3 ,regb 
+2dcb 20202908 branch le_writeatt_cb 
+
+le_att_malloc_tx_notify:
+2dcc 18422600 copy temp ,regc 
+2dcd 1a20a203 increase 3 ,rega 
+2dce 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2dcf 1a20a3fd increase -3 ,rega 
+2dd0 5800001b setarg attop_handle_value_notification 
+2dd1 e7e08005 istore 1 ,contw 
+2dd2 1a620400 copy regc ,temp 
+2dd3 e0410005 istoret 2 ,contw 
+2dd4 20600000 rtn 
+
+le_att_malloc_tx_indication:
+2dd5 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
+2dd6 79207e00 set1 ble_l2cap_send_indication_packet ,pdata 
+2dd7 67e0c39a store 1 ,mem_le_l2cap_att_states 
+2dd8 18422600 copy temp ,regc 
+2dd9 1a20a203 increase 3 ,rega 
+2dda 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2ddb 1a20a3fd increase -3 ,rega 
+2ddc 5800001d setarg attop_handle_value_indication 
+2ddd e7e08005 istore 1 ,contw 
+2dde 1a620400 copy regc ,temp 
+2ddf e0410005 istoret 2 ,contw 
+2de0 20600000 rtn 
+
+le_send_att_error_response_notfound:
+2de1 4744c031 bpatchx patch31_1 ,mem_patch31 
+2de2 7001b90a jam att_err_attribute_not_found ,mem_le_err_code 
+
+le_send_att_error_response:
+2de3 18002205 force 5 ,rega 
+2de4 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+2de5 58000001 setarg attop_error_response 
+2de6 e7e08005 istore 1 ,contw 
+2de7 6fe0c39b fetch 1 ,mem_le_att_opcode 
+2de8 e7e08005 istore 1 ,contw 
+2de9 6fe1439c fetch 2 ,mem_le_att_handle 
+2dea e7e10005 istore 2 ,contw 
+2deb 6fe081b9 fetch 1 ,mem_le_err_code 
+2dec e7e08005 istore 1 ,contw 
+2ded 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap_gatt:
+2dee 47454031 bpatchx patch31_2 ,mem_patch31 
+2def 18002404 force le_l2cap_cid_att ,regb 
+2df0 202029d9 branch le_fifo_malloc_tx_l2cap 
+
+le_att_next_handle:
+2df1 68490656 fetcht 2 ,mem_temp 
+2df2 18408401 increase 1 ,temp 
+2df3 60490656 storet 2 ,mem_temp 
+2df4 20600000 rtn 
+
+le_att_check_handle_end:
+2df5 68490656 fetcht 2 ,mem_temp 
+2df6 6fe10691 fetch 2 ,mem_le_search_handle_end 
+2df7 98467c00 isub temp ,null 
+2df8 20600000 rtn 
+
+le_att_same_type:
+2df9 4745c031 bpatchx patch31_3 ,mem_patch31 
+2dfa 68488693 fetcht 1 ,mem_le_search_att_type_length 
+2dfb da200694 arg mem_le_search_att_type ,rega 
+
+le_att_check_same_common:
+2dfc 6fe086ab fetch 1 ,mem_le_cur_uuid_length 
+2dfd 1fe27200 copy pdata ,loopcnt 
+2dfe 98467c00 isub temp ,null 
+2dff 24628000 nrtn zero 
+2e00 da4006ac arg mem_le_cur_uuid ,regb 
+2e01 20207d66 branch string_compare 
+
+le_store_att_record:
+2e02 47464031 bpatchx patch31_4 ,mem_patch31 
+2e03 6fe086a4 fetch 1 ,mem_le_curr_att_len 
+2e04 67e0867f store 1 ,mem_temp_block0 
+2e05 1fe27200 copy pdata ,loopcnt 
+2e06 20407c69 call get_contr 
+2e07 20207cce branch memcpy_fast 
+
+le_write_att_record:
+2e08 4746c031 bpatchx patch31_5 ,mem_patch31 
+2e09 20407c66 call get_contw 
+2e0a 6fe106a7 fetch 2 ,mem_le_cur_handle_start 
+2e0b e7e10005 istore 2 ,contw 
+2e0c 6fe106a9 fetch 2 ,mem_le_cur_handle_end 
+2e0d e7e10005 istore 2 ,contw 
+
+le_write_att_record_common:
+2e0e 6fe0867f fetch 1 ,mem_temp_block0 
+2e0f 1fe27200 copy pdata ,loopcnt 
+2e10 20407cce call memcpy_fast 
+2e11 20207c6c branch store_contw 
+
+le_send_auto_len_by_mem:
+2e12 47474031 bpatchx patch31_6 ,mem_patch31 
+2e13 20407c66 call get_contw 
+2e14 204029ff call le_fifo_get_last_att_ptr 
+2e15 18a27e00 copy contw ,pdata 
+2e16 98c62200 isub contr ,rega 
+2e17 20402a02 call le_fifo_get_last_l2cap_ptr 
+2e18 1a227e00 copy rega ,pdata 
+2e19 e7e10006 istore 2 ,contr 
+2e1a 1a20a204 increase 4 ,rega 
+2e1b 204029f4 call le_fifo_get_last_tx_ptr 
+2e1c 1a227e00 copy rega ,pdata 
+2e1d e7e08006 istore 1 ,contr 
+2e1e 20600000 rtn 
+
+le_get_search_handle_start_end_common:
+2e1f 1fecfe00 rshift8 pdata ,pdata 
+2e20 67e1068f store 2 ,mem_le_search_handle_start 
+2e21 efe10006 ifetch 2 ,contr 
+2e22 67e10691 store 2 ,mem_le_search_handle_end 
+2e23 20600000 rtn 
+
+le_get_search_max_mtu_data:
+2e24 4747c031 bpatchx patch31_7 ,mem_patch31 
+2e25 6fe142e5 fetch 2 ,mem_le_remote_mtu 
+2e26 684942e3 fetcht 2 ,mem_le_local_mtu 
+2e27 20207db2 branch not_greater_than 
+
+le_get_search_att_type:
+2e28 47484032 bpatchx patch32_0 ,mem_patch32 
+2e29 20407c6f call store_contr 
+2e2a d8a00693 arg mem_le_search_att_type_length ,contw 
+
+le_get_search_common:
+2e2b 6fe14337 fetch 2 ,mem_le_l2cap_size 
+2e2c 1fe0fffb increase -5 ,pdata 
+
+le_get_search_common2:
+2e2d e7e08005 istore 1 ,contw 
+2e2e 1fe27200 copy pdata ,loopcnt 
+2e2f 20407c69 call get_contr 
+2e30 20207cce branch memcpy_fast 
+
+le_parse_writing_attribute_start:
+2e31 6fe10050 fetch 2 ,mem_le_rxbuf_data_att_cid 
+2e32 c1820000 rtnne le_l2cap_cid_att 
+2e33 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
+2e34 79207e01 set1 ble_l2cap_deal_with_continue_packet ,pdata 
+2e35 67e0c39a store 1 ,mem_le_l2cap_att_states 
+2e36 6fe18052 fetch 3 ,mem_le_rxbuf_data_att_opcode 
+2e37 67e1c39b store 3 ,mem_le_att_opcode 
+2e38 7920000f set1 mark_old_packet ,mark 
+2e39 c0092e4c beq attop_write_request ,le_parse_attribute_write_request 
+2e3a c0292e51 beq attop_write_command ,le_parse_attribute_write_command 
+2e3b c00c2dbf beq attop_execute_write_request ,le_parse_att_execute_write_request 
+2e3c c0012b8b beq attop_exchange_mtu_request ,le_parse_att_exchange_mtu_request 
+2e3d c00f2dc4 beq attop_handle_value_confirmation ,le_parse_handle_value_confirmation 
+2e3e 793f800f set0 mark_old_packet ,mark 
+
+le_clear_l2cap_att_states_deal_with_contiune_packet:
+2e3f 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
+2e40 793ffe01 set0 ble_l2cap_deal_with_continue_packet ,pdata 
+2e41 67e0c39a store 1 ,mem_le_l2cap_att_states 
+2e42 20600000 rtn 
+
+le_parse_writing_attribute_continue:
+2e43 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
+2e44 c4008000 rtnbit0 ble_l2cap_deal_with_continue_packet 
+2e45 7920000f set1 mark_old_packet ,mark 
+2e46 20402e5c call le_parse_l2cap_continue_common 
+2e47 20402e62 call le_parse_attribute_check_complete_packet 
+2e48 20542e3f call le_clear_l2cap_att_states_deal_with_contiune_packet ,user 
+2e49 6fe0c39b fetch 1 ,mem_le_att_opcode 
+2e4a c0092d8a beq attop_write_request ,le_send_att_write_response_check_auth 
+2e4b 20600000 rtn 
+
+le_parse_attribute_write_request:
+2e4c 20402e51 call le_parse_attribute_write_command 
+2e4d 20202e4e branch le_send_attribute_write_response_check_auth 
+
+le_send_attribute_write_response_check_auth:
+2e4e 20402e62 call le_parse_attribute_check_complete_packet 
+2e4f 24740000 nrtn user 
+2e50 20202d8a branch le_send_att_write_response_check_auth 
+
+le_parse_attribute_write_command:
+2e51 4748c032 bpatchx patch32_1 ,mem_patch32 
+2e52 20402e55 call le_parse_attribute_check_complete_packet_init 
+2e53 da200055 arg mem_le_rxbuf_data_att_write_payload ,rega 
+2e54 20202908 branch le_writeatt_cb 
+
+le_parse_attribute_check_complete_packet_init:
+2e55 6fe0804d fetch 1 ,mem_le_rxbuf_data_att_write_length 
+2e56 1fe0a5f9 add pdata ,-7 ,regb 
+2e57 1fe0fffc increase -4 ,pdata 
+2e58 67e14339 store 2 ,mem_le_packet_len_recved 
+2e59 6849004e fetcht 2 ,mem_le_rxbuf_data_att_write_l2cap_length 
+2e5a 60494337 storet 2 ,mem_le_l2cap_size 
+2e5b 20600000 rtn 
+
+le_parse_l2cap_continue_common:
+2e5c 6a40804d fetchr regb ,1 ,mem_le_rxbuf_data_continue_length 
+2e5d 6fe14339 fetch 2 ,mem_le_packet_len_recved 
+2e5e 9a408400 iadd regb ,temp 
+2e5f 60494339 storet 2 ,mem_le_packet_len_recved 
+2e60 da20004e arg mem_le_rxbuf_data_continue_payload ,rega 
+2e61 20202908 branch le_writeatt_cb 
+
+le_parse_attribute_check_complete_packet:
+2e62 20407dbe call disable_user 
+2e63 6fe14339 fetch 2 ,mem_le_packet_len_recved 
+2e64 68494337 fetcht 2 ,mem_le_l2cap_size 
+2e65 98467c00 isub temp ,null 
+2e66 24628000 nrtn zero 
+2e67 20207dbc branch enable_user 
+
+le_parse_signaling:
+2e68 efe08006 ifetch 1 ,contr 
+2e69 e8408006 ifetcht 1 ,contr 
+2e6a e8410006 ifetcht 2 ,contr 
+2e6b c009ae6d beq l2cap_connection_parameter_update_response ,le_l2cap_parse_conn_parameter_update_rsp 
+2e6c 20600000 rtn 
+
+le_l2cap_parse_conn_parameter_update_rsp:
+2e6d efe10006 ifetch 2 ,contr 
+2e6e 67e14340 store 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+2e6f 70064d40 jam bt_evt_le_parse_conn_papa_update_rsp ,mem_fifo_temp 
+2e70 20207819 branch ui_ipc_send_event 
+
+le_l2cap_tx_update_req:
+2e71 da20000c arg 0x0c ,rega 
+2e72 da600012 arg l2cap_connection_parameter_update_request ,regc 
+2e73 20402e79 call le_fifo_malloc_tx_l2cap_signaling 
+2e74 58000008 setarg 0x08 
+2e75 e7e10005 istore 2 ,contw 
+2e76 6fe442d5 fetch 8 ,mem_le_interval_min 
+2e77 e7e40005 istore 8 ,contw 
+2e78 20600000 rtn 
+
+le_fifo_malloc_tx_l2cap_signaling:
+2e79 20402e81 call le_l2cap_update_signaling_identifier 
+2e7a da400005 arg le_l2cap_cid_signal ,regb 
+2e7b 204029d9 call le_fifo_malloc_tx_l2cap 
+2e7c 1a627e00 copy regc ,pdata 
+2e7d e7e08005 istore 1 ,contw 
+2e7e 6fe0c33f fetch 1 ,mem_le_signaling_identifier 
+2e7f e7e08005 istore 1 ,contw 
+2e80 20600000 rtn 
+
+le_l2cap_update_signaling_identifier:
+2e81 6fe0c33f fetch 1 ,mem_le_signaling_identifier 
+2e82 1fe0fe01 pincrease 1 
+2e83 67e0c33f store 1 ,mem_le_signaling_identifier 
+2e84 c1800000 rtnne 0 
+
+le_l2cap_reset_signaling_identifier:
+2e85 70433f01 jam 1 ,mem_le_signaling_identifier 
+2e86 20600000 rtn 
+
+le_pairing_mode_init:
+2e87 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2e88 c0002e96 beq le_pairing_mode_none ,le_set_no_pairing 
+2e89 c000ae99 beq le_pairing_mode_lagacy_justwork ,le_set_pairing_mode_lagacy_just_work 
+2e8a c0012e9b beq le_pairing_mode_lagacy_passkey ,le_set_pairing_mode_lagacy_passkey 
+2e8b c040ae8f beq le_pairing_mode_secure_connect_justwork ,le_set_pairing_mode_secure_justwork 
+2e8c c0412e91 beq le_pairing_mode_secure_connect_numeric ,le_set_pairing_mode_secure_numeric 
+2e8d c041ae94 beq le_pairing_mode_secure_connect_passkey ,le_set_pairing_mode_secure_passkey 
+2e8e 20600000 rtn 
+
+le_set_pairing_mode_secure_justwork:
+2e8f 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+2e90 20202e97 branch le_set_noinputnooutput 
+
+le_set_pairing_mode_secure_numeric:
+2e91 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+2e92 7042c701 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+2e93 20600000 rtn 
+
+le_set_pairing_mode_secure_passkey:
+2e94 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+2e95 20202e9c branch le_set_displayonly 
+
+le_set_no_pairing:
+2e96 7042c900 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+
+le_set_noinputnooutput:
+2e97 7042c703 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+2e98 20600000 rtn 
+
+le_set_pairing_mode_lagacy_just_work:
+2e99 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+2e9a 20202e97 branch le_set_noinputnooutput 
+
+le_set_pairing_mode_lagacy_passkey:
+2e9b 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+
+le_set_displayonly:
+2e9c 7042c700 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+2e9d 20600000 rtn 
+
+le_secure_connection_enable:
+2e9e 6fe0c483 fetch 1 ,mem_secure_connections_enable 
+2e9f 79207e00 set1 secure_connections_le_bit ,pdata 
+2ea0 67e0c483 store 1 ,mem_secure_connections_enable 
+2ea1 20600000 rtn 
+
+le_secure_connection_disable:
+2ea2 6fe0c483 fetch 1 ,mem_secure_connections_enable 
+2ea3 793ffe00 set0 secure_connections_le_bit ,pdata 
+2ea4 67e0c483 store 1 ,mem_secure_connections_enable 
+2ea5 20600000 rtn 
+
+le_parse_smp:
+2ea6 efe08006 ifetch 1 ,contr 
+2ea7 c000aeba beq smp_pairing_request ,le_parse_smp_pairing_request 
+2ea8 c001aee1 beq smp_pairing_confirm ,le_parse_smp_pairing_confirm 
+2ea9 c0022f02 beq smp_pairing_random ,le_parse_smp_pairing_random 
+2eaa c002af0f beq smp_pairing_failed ,le_parse_smp_pairing_failed 
+2eab c003af78 beq smp_master_identification ,le_parse_smp_master_identification 
+2eac c0042f64 beq smp_identity_information ,le_parse_smp_identity_information 
+2ead c004af74 beq smp_identity_address_information ,le_parse_smp_identity_address_information 
+2eae c0052f78 beq smp_signing_information ,le_parse_smp_signing_information 
+2eaf c005af78 beq smp_security_request ,le_parse_smp_security_request 
+2eb0 c0062f79 beq smp_pairing_public_key ,le_parse_smp_public_key 
+2eb1 c006af7e beq smp_pairing_dhkey_check ,le_parse_smp_dhkey_check 
+2eb2 20600000 rtn 
+
+le_send_smp_security_request:
+2eb3 18002202 force 2 ,rega 
+2eb4 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2eb5 5800000b setarg smp_security_request 
+2eb6 e7e08005 istore 1 ,contw 
+2eb7 6fe0c2c9 fetch 1 ,mem_le_pres_auth 
+2eb8 e7e08005 istore 1 ,contw 
+2eb9 20600000 rtn 
+
+le_parse_smp_pairing_request:
+2eba 67e0c2bf store 1 ,mem_le_preq 
+2ebb efe30006 ifetch 6 ,contr 
+2ebc e7e30005 istore 6 ,contw 
+2ebd 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2ebe c0002f15 beq le_pairing_mode_none ,le_smp_pairing_fail_reason_not_support_pairing 
+2ebf 20402edc call le_send_smp_pairing_response 
+2ec0 6fe0c481 fetch 1 ,mem_sc_only_mode 
+2ec1 203a2ec6 branch le_parse_smp_pairing_request2 ,blank 
+2ec2 6fe0c2c2 fetch 1 ,mem_le_preq_auth 
+2ec3 c301b794 bbit0 le_auth_secure_connection_pairing_bit ,app_ble_disconnect 
+2ec4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2ec5 c303b794 bbit0 le_pairing_mode_secure_connect_bit ,app_ble_disconnect 
+
+le_parse_smp_pairing_request2:
+2ec6 7042fe03 jam flag_le_pairing_rcv_pairing_req ,mem_le_pairing_state 
+2ec7 6fe0c2c0 fetch 1 ,mem_le_preq_iocap 
+2ec8 c0002ece beq flag_iocap_displayonly ,le_set_tk_0 
+2ec9 c000aece beq flag_iocap_displayyesno ,le_set_tk_0 
+2eca c001aece beq flag_iocap_noinputnooutput ,le_set_tk_0 
+2ecb 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2ecc c0012ed1 beq le_pairing_mode_lagacy_passkey ,le_parse_smp_pairing_req_passkey 
+2ecd c1418000 rtneq le_pairing_mode_secure_connect_passkey 
+
+le_set_tk_0:
+2ece dfe00000 arg 0 ,pdata 
+2ecf 67e24301 store 4 ,mem_le_tk 
+2ed0 20600000 rtn 
+
+le_parse_smp_pairing_req_passkey:
+2ed1 6fe0c323 fetch 1 ,mem_le_configuration 
+2ed2 c2802eda bbit1 bit_ble_passkey_fixed_key ,le_parse_smp_pairing_req_fixed_passkey 
+
+le_genernate_tk:
+2ed3 da204301 arg mem_le_tk ,rega 
+2ed4 1a220a00 copy rega ,contw 
+2ed5 df200003 arg 3 ,loopcnt 
+2ed6 20407dee call generate_random_loop 
+2ed7 6fe14303 fetch 2 ,mem_le_tk + 2 
+2ed8 1fe17e07 and_into 0x7 ,pdata 
+2ed9 67e14303 store 2 ,mem_le_tk + 2 
+
+le_parse_smp_pairing_req_fixed_passkey:
+2eda 70064d34 jam bt_evt_le_tk_generate ,mem_fifo_temp 
+2edb 20207819 branch ui_ipc_send_event 
+
+le_send_smp_pairing_response:
+2edc 18002207 force 7 ,rega 
+2edd 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2ede 6fe3c2c6 fetch 7 ,mem_le_pres 
+2edf e7e38005 istore 7 ,contw 
+2ee0 20600000 rtn 
+
+le_parse_smp_pairing_confirm:
+2ee1 7042fe05 jam flag_le_pairing_receive_pairing_confirm ,mem_le_pairing_state 
+2ee2 d8a0429d arg mem_le_rconfirm ,contw 
+2ee3 20407c91 call memcpy16 
+2ee4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2ee5 c0022ee9 beq le_pairing_mode_lagacy_passkey_res_input ,le_parse_smp_pairing_confirm_passkey_res_input 
+2ee6 c041aeeb beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_confirm_secure_passkey 
+2ee7 c0422eee beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_confirm_sc_passkey_res_input 
+2ee8 20202ef1 branch le_send_smp_pairing_confirm 
+
+le_parse_smp_pairing_confirm_passkey_res_input:
+2ee9 70064d43 jam bt_evt_le_get_passkey ,mem_fifo_temp 
+2eea 20207819 branch ui_ipc_send_event 
+
+le_parse_smp_pairing_confirm_secure_passkey:
+2eeb 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2eec 7042fc08 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+2eed 20600000 rtn 
+
+le_parse_smp_pairing_confirm_sc_passkey_res_input:
+2eee 6fe24301 fetch 4 ,mem_le_tk 
+2eef 203a2ee9 branch le_parse_smp_pairing_confirm_passkey_res_input ,blank 
+2ef0 20202eeb branch le_parse_smp_pairing_confirm_secure_passkey 
+
+le_send_smp_pairing_confirm:
+2ef1 7042fe06 jam flag_le_pairing_send_pairing_confirm ,mem_le_pairing_state 
+2ef2 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2ef3 c283aefa bbit1 le_pairing_mode_secure_connect_bit ,le_send_smp_pairing_confirm_sc 
+2ef4 20407244 call generate_confirm 
+2ef5 18002211 force 17 ,rega 
+2ef6 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2ef7 58000003 setarg smp_pairing_confirm 
+2ef8 e7e08005 istore 1 ,contw 
+2ef9 20207363 branch store_aes_result 
+
+le_send_smp_pairing_confirm_sc:
+2efa d8a042ad arg mem_le_srand ,contw 
+2efb 20407ded call generate_random 
+2efc 204071a4 call function_f4_cb 
+2efd 18002211 force 17 ,rega 
+2efe 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2eff 58000003 setarg smp_pairing_confirm 
+2f00 e7e08005 istore 1 ,contw 
+2f01 202071e0 branch load_inverse_result 
+
+le_parse_smp_pairing_random:
+2f02 18c22200 copy contr ,rega 
+2f03 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2f04 c283af17 bbit1 le_pairing_mode_secure_connect_bit ,le_parse_smp_pairing_random_sc 
+2f05 1a220c00 copy rega ,contr 
+2f06 2040723c call authenticate_rconfirm 
+2f07 2022af2c branch le_parse_smp_pairing_random_success ,zero 
+
+le_send_pairing_confirm_value_failed:
+2f08 7001ba04 jam pairing_failed_confirm_value_failed ,mem_le_ll_pairing_fail_reason 
+
+le_send_pairing_failed:
+2f09 18002202 force 2 ,rega 
+2f0a 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f0b 58000005 setarg smp_pairing_failed 
+2f0c e7e08005 istore 1 ,contw 
+2f0d 6fe081ba fetch 1 ,mem_le_ll_pairing_fail_reason 
+2f0e e7e08005 istore 1 ,contw 
+
+le_parse_smp_pairing_failed:
+2f0f 47494032 bpatchx patch32_2 ,mem_patch32 
+2f10 18000e07 force smp_pairing_timer ,queue 
+2f11 20407ce2 call timer_stop 
+2f12 7042fe00 jam flag_le_pairing_null ,mem_le_pairing_state 
+2f13 70064d30 jam bt_evt_le_pairing_fail ,mem_fifo_temp 
+2f14 20207819 branch ui_ipc_send_event 
+
+le_smp_pairing_fail_reason_not_support_pairing:
+2f15 7001ba05 jam pairing_failed_pairing_not_supported ,mem_le_ll_pairing_fail_reason 
+2f16 20202f09 branch le_send_pairing_failed 
+
+le_parse_smp_pairing_random_sc:
+2f17 d8a00158 arg mem_le_mrand ,contw 
+2f18 1a220c00 copy rega ,contr 
+2f19 20407c91 call memcpy16 
+2f1a 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2f1b c041af23 beq le_pairing_mode_secure_connect_passkey ,le_parse_smp_pairing_random_sc_passkey 
+2f1c c0422f23 beq le_pairing_mode_secure_connect_passkey_res_input ,le_parse_smp_pairing_random_sc_passkey 
+2f1d 2040712e call function_g2 
+2f1e 20402f31 call le_send_smp_pairing_random 
+2f1f 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2f20 c1c10000 rtnne le_pairing_mode_secure_connect_numeric 
+2f21 70064d3b jam bt_evt_le_gkey_generate ,mem_fifo_temp 
+2f22 20207819 branch ui_ipc_send_event 
+
+le_parse_smp_pairing_random_sc_passkey:
+2f23 20407199 call function_f4_ca 
+2f24 d8a006af arg mem_aes_cmac_temp ,contw 
+2f25 204071e0 call load_inverse_result 
+2f26 da2006af arg mem_aes_cmac_temp ,rega 
+2f27 da40429d arg mem_le_rconfirm ,regb 
+2f28 df200010 arg 16 ,loopcnt 
+2f29 20407d66 call string_compare 
+2f2a 2422af08 nbranch le_send_pairing_confirm_value_failed ,zero 
+2f2b 20202f31 branch le_send_smp_pairing_random 
+
+le_parse_smp_pairing_random_success:
+2f2c 20407238 call generate_stk 
+2f2d 70064d31 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+2f2e 20407819 call ui_ipc_send_event 
+2f2f 70429c01 jam 1 ,mem_ltk_exists 
+2f30 7042fe09 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+
+le_send_smp_pairing_random:
+2f31 18002211 force 17 ,rega 
+2f32 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f33 58000004 setarg smp_pairing_random 
+2f34 e7e08005 istore 1 ,contw 
+2f35 d8c042ad arg mem_le_srand ,contr 
+2f36 20207c91 branch memcpy16 
+
+le_send_smp_encryption_information:
+2f37 18002211 force 17 ,rega 
+2f38 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f39 58000006 setarg smp_encryption_information 
+2f3a e7e08005 istore 1 ,contw 
+2f3b 6fe0c323 fetch 1 ,mem_le_configuration 
+2f3c c280af3f bbit1 bit_ble_pairing_fixed_ltk ,le_send_fixed_ltk 
+2f3d d8c0428c arg mem_le_ltk ,contr 
+2f3e 20207c91 branch memcpy16 
+
+le_send_fixed_ltk:
+2f3f d8c04324 arg mem_le_fixed_ltk ,contr 
+2f40 20207c91 branch memcpy16 
+
+le_send_smp_master_identification:
+2f41 d8a04305 arg mem_le_ediv ,contw 
+2f42 1800720a force 10 ,loopcnt 
+2f43 20407dee call generate_random_loop 
+2f44 1800220b force 11 ,rega 
+2f45 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f46 58000007 setarg smp_master_identification 
+2f47 e7e08005 istore 1 ,contw 
+2f48 6fe14305 fetch 2 ,mem_le_ediv 
+2f49 e7e10005 istore 2 ,contw 
+2f4a 6fe44307 fetch 8 ,mem_le_rand 
+2f4b e7e40005 istore 8 ,contw 
+2f4c 20600000 rtn 
+
+le_send_smp_identity_information:
+2f4d 18002211 force 17 ,rega 
+2f4e 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f4f 58000008 setarg smp_identity_information 
+2f50 e7e08005 istore 1 ,contw 
+2f51 58000000 setarg 0 
+2f52 e7e40005 istore 8 ,contw 
+2f53 e7e40005 istore 8 ,contw 
+2f54 20600000 rtn 
+
+le_send_smp_identity_address_information:
+2f55 18002208 force 8 ,rega 
+2f56 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f57 58000009 setarg smp_identity_address_information 
+2f58 e7e08005 istore 1 ,contw 
+2f59 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
+2f5a e7e08005 istore 1 ,contw 
+2f5b 6fe342dd fetch 6 ,mem_le_lap 
+2f5c e7e30005 istore 6 ,contw 
+2f5d 20600000 rtn 
+
+le_send_pairing_fail_unspecified_reason:
+2f5e 7001ba08 jam pairing_failed_unspecified_reason ,mem_le_ll_pairing_fail_reason 
+2f5f 20202f09 branch le_send_pairing_failed 
+
+le_check_init_key_distribution:
+2f60 6fe0c2cb fetch 1 ,mem_le_pres_init_key_distribution 
+2f61 6848c2cb fetcht 1 ,mem_le_pres_init_key_distribution 
+2f62 98417e00 iand temp ,pdata 
+2f63 20600000 rtn 
+
+le_parse_smp_identity_information:
+2f64 d8a0430f arg mem_le_irk ,contw 
+2f65 20407c91 call memcpy16 
+2f66 20402f60 call le_check_init_key_distribution 
+2f67 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+2f68 2020af5e branch le_send_pairing_fail_unspecified_reason ,true 
+2f69 6fe0c3cf fetch 1 ,mem_device_option 
+2f6a c1850000 rtnne dvc_op_module 
+2f6b 20402f6e call le_check_master_addr_type 
+2f6c 24740000 nrtn user 
+2f6d 2020379e branch app_ble_store_reconn_info 
+
+le_check_master_addr_type:
+2f6e 20407dbe call disable_user 
+2f6f 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
+2f70 c1000000 rtneq master_public_addr 
+2f71 6fe0c2c4 fetch 1 ,mem_le_preq_init_key_distribution 
+2f72 c4008000 rtnbit0 le_initator_irk_bit 
+2f73 20207dbc branch enable_user 
+
+le_parse_smp_identity_address_information:
+2f74 20402f60 call le_check_init_key_distribution 
+2f75 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+2f76 2020af5e branch le_send_pairing_fail_unspecified_reason ,true 
+2f77 20600000 rtn 
+
+le_parse_smp_master_identification:
+
+le_parse_smp_signing_information:
+
+le_parse_smp_security_request:
+2f78 20600000 rtn 
+
+le_parse_smp_public_key:
+2f79 d8a005dc arg mem_le_pubkey_remote_x_256 ,contw 
+2f7a 20407c83 call memcpy64 
+2f7b 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2f7c 7042fc01 jam le_sc_stat_receive_public_key ,mem_le_secure_connect_state 
+2f7d 20600000 rtn 
+
+le_parse_smp_dhkey_check:
+2f7e d8a0063c arg mem_sp_confirm_remote ,contw 
+2f7f 20407c91 call memcpy16 
+2f80 7042fc06 jam le_sc_stat_receive_dhkey ,mem_le_secure_connect_state 
+2f81 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2f82 20600000 rtn 
+
+le_send_smp_pairing_public_key:
+2f83 18002241 force 65 ,rega 
+2f84 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f85 5800000c setarg smp_pairing_public_key 
+2f86 e7e08005 istore 1 ,contw 
+2f87 d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
+2f88 20207c83 branch memcpy64 
+
+le_send_smp_pairing_dhkey_check:
+2f89 20407145 call function_f6_eb 
+2f8a 18002211 force 17 ,rega 
+2f8b 20403025 call le_fifo_malloc_tx_l2cap_smp 
+2f8c 5800000d setarg smp_pairing_dhkey_check 
+2f8d e7e08005 istore 1 ,contw 
+2f8e 202071e0 branch load_inverse_result 
+
+le_check_paring_time:
+2f8f 6fe0c2fe fetch 1 ,mem_le_pairing_state 
+2f90 c17f8000 rtneq flag_le_pairing_end 
+2f91 d8400003 arg flag_le_pairing_rcv_pairing_req ,temp 
+2f92 98467c00 isub temp ,null 
+2f93 24610000 nrtn positive 
+2f94 d8e00007 arg smp_pairing_timer ,queue 
+2f95 20407cf1 call timer_check 
+2f96 247a0000 nrtn blank 
+2f97 20202f5e branch le_send_pairing_fail_unspecified_reason 
+
+le_pairing_sm:
+2f98 4749c032 bpatchx patch32_3 ,mem_patch32 
+2f99 20402a06 call le_fifo_check_nearly_full 
+2f9a 247a0000 nrtn blank 
+2f9b 6fe0c2fe fetch 1 ,mem_le_pairing_state 
+2f9c c0002fa5 beq flag_le_pairing_null ,le_pairing_sm_null 
+2f9d c000afab beq flag_le_pairing_start ,le_pairing_sm_start 
+2f9e c0012fa5 beq flag_le_pairing_send_recurity_req ,le_pairing_sm_send_sec_req 
+2f9f c001afad beq flag_le_pairing_rcv_pairing_req ,le_pairing_sm_rcv_pairing_req 
+2fa0 c004afb1 beq flag_le_pairing_after_auth ,le_pairing_sm_after_auth 
+2fa1 c005afc1 beq flag_le_paring_send_enc_information ,le_pairng_sm_send_enc_information 
+2fa2 c0062fc3 beq flag_le_paring_send_master_identification ,le_pairng_sm_send_master_indentification 
+2fa3 c006afca beq flag_le_paring_send_indentity_information ,le_pairng_sm_send_indentity_information 
+2fa4 20600000 rtn 
+
+le_pairing_sm_null:
+
+le_pairing_sm_send_sec_req:
+2fa5 6fe0c2ff fetch 1 ,mem_le_enc_state 
+2fa6 c1820000 rtnne flag_le_send_start_enc_rsp 
+2fa7 7042ffff jam flag_le_enc_end ,mem_le_enc_state 
+2fa8 7042feff jam flag_le_pairing_end ,mem_le_pairing_state 
+2fa9 70064d3f jam bt_evt_le_reconnect_complete ,mem_fifo_temp 
+2faa 20207819 branch ui_ipc_send_event 
+
+le_pairing_sm_start:
+2fab 7042fe02 jam flag_le_pairing_send_recurity_req ,mem_le_pairing_state 
+2fac 20202eb3 branch le_send_smp_security_request 
+
+le_pairing_sm_rcv_pairing_req:
+2fad 7042fe04 jam flag_le_pairing_wait_stk_generation ,mem_le_pairing_state 
+2fae 58017700 setarg timer_smp_pairing_timeout 
+2faf d8e00007 arg smp_pairing_timer ,queue 
+2fb0 20207ce3 branch timer_init 
+
+le_pairing_sm_after_auth:
+2fb1 6fe0c2ff fetch 1 ,mem_le_enc_state 
+2fb2 c0022fb4 beq flag_le_send_start_enc_rsp ,le_pairing_sm_after_auth_start_enc 
+2fb3 20600000 rtn 
+
+le_pairing_sm_after_auth_start_enc:
+2fb4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2fb5 c283afbf bbit1 le_pairing_mode_secure_connect_bit ,le_pairing_sm_after_auth_start_enc_sc 
+2fb6 7042fe0b jam flag_le_paring_send_enc_information ,mem_le_pairing_state 
+2fb7 20402f37 call le_send_smp_encryption_information 
+
+le_pairing_sm_after_auth_start_enc_common:
+2fb8 70064d29 jam bt_evt_le_enc_info ,mem_fifo_temp 
+2fb9 20407819 call ui_ipc_send_event 
+2fba 6fe0c3cf fetch 1 ,mem_device_option 
+2fbb c1850000 rtnne dvc_op_module 
+2fbc 20402f6e call le_check_master_addr_type 
+2fbd 20740000 rtn user 
+2fbe 2020379e branch app_ble_store_reconn_info 
+
+le_pairing_sm_after_auth_start_enc_sc:
+2fbf 7042fe0c jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+2fc0 20202fb8 branch le_pairing_sm_after_auth_start_enc_common 
+
+le_pairng_sm_send_enc_information:
+2fc1 7042fe0c jam flag_le_paring_send_master_identification ,mem_le_pairing_state 
+2fc2 20202f41 branch le_send_smp_master_identification 
+
+le_pairng_sm_send_master_indentification:
+2fc3 6fe0c2c5 fetch 1 ,mem_le_preq_resp_key_distribution 
+2fc4 6848c2cc fetcht 1 ,mem_le_pres_resp_key_distribution 
+2fc5 98417e00 iand temp ,pdata 
+2fc6 2fec0001 isolate0 le_initator_irk_bit ,pdata 
+2fc7 2020afcc branch le_parse_start_enc_rsp_after_auth_end ,true 
+2fc8 7042fe0d jam flag_le_paring_send_indentity_information ,mem_le_pairing_state 
+2fc9 20202f4d branch le_send_smp_identity_information 
+
+le_pairng_sm_send_indentity_information:
+2fca 20402f55 call le_send_smp_identity_address_information 
+2fcb 20202fcc branch le_parse_start_enc_rsp_after_auth_end 
+
+le_parse_start_enc_rsp_after_auth_end:
+2fcc 474a4032 bpatchx patch32_4 ,mem_patch32 
+2fcd 18000e07 force smp_pairing_timer ,queue 
+2fce 20407ce2 call timer_stop 
+2fcf 7042ffff jam flag_le_enc_end ,mem_le_enc_state 
+2fd0 7042feff jam flag_le_pairing_end ,mem_le_pairing_state 
+2fd1 70064d3e jam bt_evt_le_pairing_complete ,mem_fifo_temp 
+2fd2 20207819 branch ui_ipc_send_event 
+
+le_secure_connect_sm:
+2fd3 474ac032 bpatchx patch32_5 ,mem_patch32 
+2fd4 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2fd5 c4038000 rtnbit0 le_pairing_mode_secure_connect_bit 
+2fd6 6fe0c2fb fetch 1 ,mem_le_secure_connect_flag 
+2fd7 c1810000 rtnne le_sp_flag_commit_256 
+2fd8 7042fb00 jam sp_flag_standby ,mem_le_secure_connect_flag 
+2fd9 6fe0c2fc fetch 1 ,mem_le_secure_connect_state 
+2fda c000b01b beq le_sc_stat_receive_public_key ,le_sc_sm_receive_public_key 
+2fdb c0013022 beq le_sc_stat_wait_send_public_key ,le_sc_sm_wait_send_public_key 
+2fdc c001b013 beq le_sc_stat_send_public_key ,le_sc_sm_send_public_key 
+2fdd c0032ff8 beq le_sc_stat_receive_dhkey ,le_sc_sm_receive_dhkey 
+2fde c003afef beq le_sc_stat_wait_confirm_gkey ,le_sc_sm_wait_confirm_gkey 
+2fdf c0042fe5 beq le_sc_stat_passkey_wait_confirm ,le_sc_sm_passkey_wait_confirm 
+2fe0 20600000 rtn 
+
+le_sc_state_clear:
+2fe1 7042fb00 jam sp_flag_standby ,mem_le_secure_connect_flag 
+2fe2 7042fc00 jam le_sc_stat_null ,mem_le_secure_connect_state 
+2fe3 7042fd00 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+2fe4 20600000 rtn 
+
+le_sc_sm_passkey_wait_confirm:
+2fe5 6fe0c4e6 fetch 1 ,mem_authentication_passkey_times 
+2fe6 1fe20e00 copy pdata ,queue 
+2fe7 1fe0fe01 increase 1 ,pdata 
+2fe8 67e0c4e6 store 1 ,mem_authentication_passkey_times 
+2fe9 6fe24301 fetch 4 ,mem_le_tk 
+2fea afefffff qisolate1 pdata 
+2feb 58000080 setarg 0x80 
+2fec 7920fe00 setflag true ,0 ,pdata 
+2fed 67e0c4e7 store 1 ,mem_passkey_1bit 
+2fee 20203017 branch le_sc_sm_ready_send_pairing_confirm 
+
+le_sc_sm_wait_confirm_gkey:
+2fef 6fe0c2fd fetch 1 ,mem_le_sc_confirm_gkey_flag 
+2ff0 7042fd00 jam flag_le_sc_confrim_null ,mem_le_sc_confirm_gkey_flag 
+2ff1 c000aff4 beq flag_le_sc_confrim_gkey_ok ,le_sc_confirm_gkey_ok 
+2ff2 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2ff3 20600000 rtn 
+
+le_sc_confirm_gkey_ok:
+2ff4 70064d31 jam bt_evt_le_pairing_success ,mem_fifo_temp 
+2ff5 20407819 call ui_ipc_send_event 
+2ff6 7042fe09 jam flag_le_pairing_after_auth ,mem_le_pairing_state 
+2ff7 20202f89 branch le_send_smp_pairing_dhkey_check 
+
+le_sc_sm_receive_dhkey:
+2ff8 6fe085d7 fetch 1 ,mem_sp_dhkey_invalid 
+2ff9 c001affc beq sp_key_valid_256 ,le_dhkey_ready 
+2ffa 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+2ffb 20600000 rtn 
+
+le_dhkey_ready:
+2ffc 2040716c call function_f5 
+2ffd 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+2ffe c041b001 beq le_pairing_mode_secure_connect_passkey ,le_dhkey_ready_common 
+2fff c0423001 beq le_pairing_mode_secure_connect_passkey_res_input ,le_dhkey_ready_common 
+3000 20402ece call le_set_tk_0 
+
+le_dhkey_ready_common:
+3001 20407159 call function_f6_ea 
+3002 da2006af arg mem_aes_cmac_temp ,rega 
+3003 da40063c arg mem_sp_confirm_remote ,regb 
+3004 df200010 arg 16 ,loopcnt 
+3005 20407d66 call string_compare 
+3006 2022b009 branch le_dhkey_check_ok ,zero 
+
+le_dhkey_check_fail:
+3007 7001ba0b jam pairing_failed_dhkey_check_failed ,mem_le_ll_pairing_fail_reason 
+3008 20202f09 branch le_send_pairing_failed 
+
+le_dhkey_check_ok:
+3009 20407449 call sp_calc_check_publickey_256 
+300a 2422b007 nbranch le_dhkey_check_fail ,zero 
+300b 70429c01 jam 1 ,mem_ltk_exists 
+300c 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+300d c040aff4 beq le_pairing_mode_secure_connect_justwork ,le_sc_confirm_gkey_ok 
+300e c041aff4 beq le_pairing_mode_secure_connect_passkey ,le_sc_confirm_gkey_ok 
+300f c0422ff4 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_confirm_gkey_ok 
+3010 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+3011 7042fc07 jam le_sc_stat_wait_confirm_gkey ,mem_le_secure_connect_state 
+3012 20600000 rtn 
+
+le_sc_sm_send_public_key:
+3013 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+3014 c041b018 beq le_pairing_mode_secure_connect_passkey ,le_sc_sm_send_public_key_passkey 
+3015 c0423018 beq le_pairing_mode_secure_connect_passkey_res_input ,le_sc_sm_send_public_key_passkey 
+3016 7044e700 jam 0 ,mem_passkey_1bit 
+
+le_sc_sm_ready_send_pairing_confirm:
+3017 20202ef1 branch le_send_smp_pairing_confirm 
+
+le_sc_sm_send_public_key_passkey:
+3018 7044e600 jam 0 ,mem_authentication_passkey_times 
+3019 c1420000 rtneq le_pairing_mode_secure_connect_passkey_res_input 
+301a 20202ed1 branch le_parse_smp_pairing_req_passkey 
+
+le_sc_sm_receive_public_key:
+301b 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+301c 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
+301d c001b01f beq sp_key_valid_256 ,le_public_key_ready 
+301e 20600000 rtn 
+
+le_public_key_ready:
+301f 7042fc02 jam le_sc_stat_wait_send_public_key ,mem_le_secure_connect_state 
+3020 7005d700 jam sp_key_invalid ,mem_sp_dhkey_invalid 
+3021 2020752a branch sp_dhkey_calc_256 
+
+le_sc_sm_wait_send_public_key:
+3022 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+3023 7042fc03 jam le_sc_stat_send_public_key ,mem_le_secure_connect_state 
+3024 20202f83 branch le_send_smp_pairing_public_key 
+
+le_fifo_malloc_tx_l2cap_smp:
+3025 474b4032 bpatchx patch32_6 ,mem_patch32 
+3026 18002406 force le_l2cap_cid_smp ,regb 
+3027 202029d9 branch le_fifo_malloc_tx_l2cap 
+
+le_parse_ll:
+3028 6fe0804e fetch 1 ,mem_le_rxbuf_data_ll_opcode 
+3029 c000303f beq ll_connection_update_ind ,le_parse_connection_update_ind 
+302a c000b047 beq ll_channel_map_ind ,le_parse_channel_map_ind 
+302b c001304f beq ll_terminate_ind ,le_parse_terminate_ind 
+302c c001b053 beq ll_enc_req ,le_parse_enc_req 
+302d c0023071 beq ll_enc_rsp ,le_parse_enc_rsp 
+302e c002b076 beq ll_start_enc_req ,le_parse_start_enc_req 
+302f c003307a beq ll_start_enc_rsp ,le_parse_start_enc_rsp 
+3030 c003b07f beq ll_unknown_rsp ,le_parse_unknown_rsp 
+3031 c0043080 beq ll_feature_req ,le_parse_feature_req 
+3032 c004b081 beq ll_feature_rsp ,le_parse_feature_rsp 
+3033 c0053082 beq ll_pause_enc_req ,le_parse_pause_enc_req 
+3034 c005b086 beq ll_pause_enc_rsp ,le_parse_pause_enc_rsp 
+3035 c0063087 beq ll_version_ind ,le_parse_version_ind 
+3036 c006b089 beq ll_reject_ind ,le_parse_reject_ind 
+3037 c009308a beq ll_ping_req ,le_parse_ping_req 
+3038 c009b08b beq ll_ping_rsp ,le_parse_ping_rsp 
+3039 c00a308c beq ll_length_req ,le_parse_length_req 
+303a c00ab08e beq ll_length_rsp ,le_parse_length_rsp 
+303b c00b3099 beq ll_phy_req ,le_parse_phy_req 
+303c c00c309a beq ll_phy_update_ind ,le_parse_phy_update_ind 
+303d 6a60804e fetchr regc ,1 ,mem_le_rxbuf_data_ll_opcode 
+303e 202030bd branch le_send_unknown_rsp 
+
+le_parse_connection_update_ind:
+303f efe48006 ifetch 9 ,contr 
+3040 67e4819f store 9 ,mem_le_new_param 
+3041 efe10006 ifetch 2 ,contr 
+3042 67e10188 store 2 ,mem_le_instant 
+3043 6fe08168 fetch 1 ,mem_le_state 
+3044 79207e05 set1 lestate_update_param ,pdata 
+3045 67e08168 store 1 ,mem_le_state 
+3046 20600000 rtn 
+
+le_parse_channel_map_ind:
+3047 efe28006 ifetch 5 ,contr 
+3048 67e2819f store 5 ,mem_le_new_map 
+3049 efe10006 ifetch 2 ,contr 
+304a 67e10188 store 2 ,mem_le_instant 
+
+le_update_map_enable:
+304b 6fe08168 fetch 1 ,mem_le_state 
+304c 79207e06 set1 lestate_update_map ,pdata 
+304d 67e08168 store 1 ,mem_le_state 
+304e 20600000 rtn 
+
+le_parse_terminate_ind:
+304f 58000014 setarg 20 
+3050 67e10196 store 2 ,mem_le_superto 
+3051 67e142f7 store 2 ,mem_le_init_superto 
+3052 20600000 rtn 
+
+le_parse_enc_req:
+3053 efe40006 ifetch 8 ,contr 
+3054 67e44307 store 8 ,mem_le_rand 
+3055 efe10006 ifetch 2 ,contr 
+3056 67e14305 store 2 ,mem_le_ediv 
+3057 efe40006 ifetch 8 ,contr 
+3058 67e442e7 store 8 ,mem_le_skdm 
+3059 efe20006 ifetch 4 ,contr 
+305a 67e24475 store 4 ,mem_ccm_ivm 
+305b 204030aa call le_send_enc_rsp 
+305c 474bc032 bpatchx patch32_7 ,mem_patch32 
+305d 6fe0c2fe fetch 1 ,mem_le_pairing_state 
+305e c004b065 beq flag_le_pairing_after_auth ,le_parse_enc_req_after_auth 
+305f 6fe0c323 fetch 1 ,mem_le_configuration 
+3060 c280b068 bbit1 bit_ble_pairing_fixed_ltk ,le_parse_enc_req_fixed_ltk 
+3061 6fe0c403 fetch 1 ,mem_nv_data_number 
+3062 245a6e88 ncall load_device_list_mode_4 ,blank 
+3063 6fe0c29c fetch 1 ,mem_ltk_exists 
+3064 c000306d beq 0 ,le_ltk_lost 
+
+le_parse_enc_req_after_auth:
+3065 7042ff01 jam flag_le_rcv_enc_start ,mem_le_enc_state 
+3066 204030b8 call le_send_start_enc_req 
+3067 2020724a branch generate_sk 
+
+le_parse_enc_req_fixed_ltk:
+3068 70429c01 jam 1 ,mem_ltk_exists 
+3069 d8c04324 arg mem_le_fixed_ltk ,contr 
+306a d8a0428c arg mem_le_ltk ,contw 
+306b 20407c91 call memcpy16 
+306c 20203065 branch le_parse_enc_req_after_auth 
+
+le_ltk_lost:
+306d 7042ff00 jam flag_le_enc_null ,mem_le_enc_state 
+306e 7042fe00 jam flag_le_enc_null ,mem_le_pairing_state 
+306f 70064d41 jam bt_evt_le_ltk_lost ,mem_fifo_temp 
+3070 20207819 branch ui_ipc_send_event 
+
+le_parse_enc_rsp:
+3071 efe40006 ifetch 8 ,contr 
+3072 67e442ef store 8 ,mem_le_skds 
+3073 efe20006 ifetch 4 ,contr 
+3074 67e24479 store 4 ,mem_ccm_ivs 
+3075 2020724a branch generate_sk 
+
+le_parse_start_enc_req:
+3076 6fe08168 fetch 1 ,mem_le_state 
+3077 79207e04 set1 lestate_encryption ,pdata 
+3078 67e08168 store 1 ,mem_le_state 
+3079 20600000 rtn 
+
+le_parse_start_enc_rsp:
+307a 20748000 rtn master 
+307b 70064d32 jam bt_evt_le_start_enc ,mem_fifo_temp 
+307c 20407819 call ui_ipc_send_event 
+307d 7042ff04 jam flag_le_send_start_enc_rsp ,mem_le_enc_state 
+307e 202030bb branch le_send_start_enc_rsp 
+
+le_parse_unknown_rsp:
+307f 20600000 rtn 
+
+le_parse_feature_req:
+3080 202030c2 branch le_send_feature_rsp 
+
+le_parse_feature_rsp:
+3081 20600000 rtn 
+
+le_parse_pause_enc_req:
+3082 7042ff02 jam flag_le_enc_pause ,mem_le_enc_state 
+3083 204030c9 call le_send_pause_enc_rsp 
+3084 70064d33 jam bt_evt_le_pause_enc ,mem_fifo_temp 
+3085 20207819 branch ui_ipc_send_event 
+
+le_parse_pause_enc_rsp:
+3086 20600000 rtn 
+
+le_parse_version_ind:
+3087 20748000 rtn master 
+3088 202030cb branch le_send_version_ind 
+
+le_parse_reject_ind:
+3089 20600000 rtn 
+
+le_parse_ping_req:
+308a 202030d7 branch le_send_ping_rsp 
+
+le_parse_ping_rsp:
+308b 20600000 rtn 
+
+le_parse_length_req:
+308c 2040308e call le_parse_length_rsp 
+308d 202030db branch le_send_data_length_res 
+
+le_parse_length_rsp:
+308e efe40006 ifetch 8 ,contr 
+308f 67e443bc store 8 ,mem_remote_rx_max_octets 
+3090 6fe143bc fetch 2 ,mem_remote_rx_max_octets 
+3091 684943c8 fetcht 2 ,mem_local_tx_max_octets 
+3092 20407db2 call not_greater_than 
+3093 67e143bc store 2 ,mem_remote_rx_max_octets 
+3094 6fe143c0 fetch 2 ,mem_remote_tx_max_octets 
+3095 684943c4 fetcht 2 ,mem_local_rx_max_octets 
+3096 20407db2 call not_greater_than 
+3097 67e143c0 store 2 ,mem_remote_tx_max_octets 
+3098 20600000 rtn 
+
+le_parse_phy_req:
+3099 202030e1 branch le_send_phy_rsp 
+
+le_parse_phy_update_ind:
+309a efe10006 ifetch 2 ,contr 
+309b 67e1019f store 2 ,mem_le_new_m2s_phy 
+309c efe10006 ifetch 2 ,contr 
+309d 67e10188 store 2 ,mem_le_instant 
+309e 207a0000 rtn blank 
+309f 6fe08168 fetch 1 ,mem_le_state 
+30a0 79207e07 set1 lestate_update_phy ,pdata 
+30a1 67e08168 store 1 ,mem_le_state 
+30a2 20600000 rtn 
+
+le_send_terminate_ind_user_terminated:
+30a3 da600013 arg error_remote_user_terminated_connection ,regc 
+
+le_send_terminate_ind:
+30a4 da200002 arg 2 ,rega 
+30a5 da400002 arg ll_terminate_ind ,regb 
+30a6 204029d3 call le_fifo_malloc_tx_ll 
+30a7 1a627e00 copy regc ,pdata 
+30a8 e7e08005 istore 1 ,contw 
+30a9 20600000 rtn 
+
+le_send_enc_rsp:
+30aa d8a042ef arg mem_le_skds ,contw 
+30ab 18007208 force 8 ,loopcnt 
+30ac 20407dee call generate_random_loop 
+30ad d8a04479 arg mem_ccm_ivs ,contw 
+30ae 18007204 force 4 ,loopcnt 
+30af 20407dee call generate_random_loop 
+30b0 da20000d arg 13 ,rega 
+30b1 da400004 arg ll_enc_rsp ,regb 
+30b2 204029d3 call le_fifo_malloc_tx_ll 
+30b3 6fe442ef fetch 8 ,mem_le_skds 
+30b4 e7e40005 istore 8 ,contw 
+30b5 6fe24479 fetch 4 ,mem_ccm_ivs 
+30b6 e7e20005 istore 4 ,contw 
+30b7 20600000 rtn 
+
+le_send_start_enc_req:
+30b8 7042ff05 jam flag_le_send_start_enc_req ,mem_le_enc_state 
+30b9 da400005 arg ll_start_enc_req ,regb 
+30ba 202030eb branch le_send_ll_one_lenth 
+
+le_send_start_enc_rsp:
+30bb da400006 arg ll_start_enc_rsp ,regb 
+30bc 202030eb branch le_send_ll_one_lenth 
+
+le_send_unknown_rsp:
+30bd da200002 arg 2 ,rega 
+30be da400007 arg ll_unknown_rsp ,regb 
+30bf 204029d3 call le_fifo_malloc_tx_ll 
+30c0 e2608005 istorer regc ,1 ,contw 
+30c1 20600000 rtn 
+
+le_send_feature_rsp:
+30c2 da200009 arg 9 ,rega 
+30c3 da400009 arg ll_feature_rsp ,regb 
+30c4 204029d3 call le_fifo_malloc_tx_ll 
+30c5 6fe443b2 fetch 8 ,mem_le_local_feature 
+30c6 1fe1fe01 or pdata ,fun_ll_feature_le_encryption ,pdata 
+30c7 e7e40005 istore 8 ,contw 
+30c8 20600000 rtn 
+
+le_send_pause_enc_rsp:
+30c9 da40000b arg ll_pause_enc_rsp ,regb 
+30ca 202030eb branch le_send_ll_one_lenth 
+
+le_send_version_ind:
+30cb da200006 arg 6 ,rega 
+30cc da40000c arg ll_version_ind ,regb 
+30cd 204029d3 call le_fifo_malloc_tx_ll 
+30ce 6fe2c160 fetch 5 ,mem_version 
+30cf e7e28005 istore 5 ,contw 
+30d0 20600000 rtn 
+
+le_send_reject_ind:
+30d1 da200002 arg 2 ,rega 
+30d2 da40000d arg ll_reject_ind ,regb 
+30d3 204029d3 call le_fifo_malloc_tx_ll 
+30d4 58000006 setarg le_err_pin_or_key_missing 
+30d5 e7e08005 istore 1 ,contw 
+30d6 20600000 rtn 
+
+le_send_ping_rsp:
+30d7 da400013 arg ll_ping_rsp ,regb 
+30d8 202030eb branch le_send_ll_one_lenth 
+
+le_send_data_length_req:
+30d9 da400014 arg ll_length_req ,regb 
+30da 202030dc branch le_send_data_length 
+
+le_send_data_length_res:
+30db da400015 arg ll_length_rsp ,regb 
+
+le_send_data_length:
+30dc da200009 arg 9 ,rega 
+30dd 204029d3 call le_fifo_malloc_tx_ll 
+30de 6fe443c4 fetch 8 ,mem_local_rx_max_octets 
+30df e7e40005 istore 8 ,contw 
+30e0 20600000 rtn 
+
+le_send_phy_rsp:
+30e1 da200003 arg 3 ,rega 
+30e2 da400017 arg ll_phy_rsp ,regb 
+30e3 204029d3 call le_fifo_malloc_tx_ll 
+30e4 6fe0c3ba fetch 1 ,mem_le_tx_phys 
+30e5 1fe17e07 and pdata ,0x07 ,pdata 
+30e6 e7e08005 istore 1 ,contw 
+30e7 6fe0c3bb fetch 1 ,mem_le_rx_phys 
+30e8 1fe17e07 and pdata ,0x07 ,pdata 
+30e9 e7e08005 istore 1 ,contw 
+30ea 20600000 rtn 
+
+le_send_ll_one_lenth:
+30eb da200001 arg 1 ,rega 
+30ec 202029d3 branch le_fifo_malloc_tx_ll 
+
+g24_dispatch:
+30ed 474c4033 bpatchx patch33_0 ,mem_patch33 
+30ee c513b37c bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+30ef c6930000 rtnmark0 mark_24g 
+30f0 202035db branch g24_transmit_dispatch 
+
+g24_prep:
+30f1 474cc033 bpatchx patch33_1 ,mem_patch33 
+30f2 7844fc00 disable enable_crc 
+30f3 7843fc00 disable enable_white 
+30f4 58555555 setarg 0x555555 
+30f5 98001e00 iforce crc24_init 
+30f6 6fe0c5a4 fetch 1 ,mem_24g_ch 
+30f7 2020259d branch le_prep_next 
+
+g24_receive_packet:
+30f8 474d4033 bpatchx patch33_2 ,mem_patch33 
+30f9 6fe0c5ce fetch 1 ,mem_24g_rx_phy 
+30fa 20402579 call le_enable_phy_by_pdata 
+30fb 6fe245a6 fetch 4 ,mem_24g_addr 
+30fc 98001200 iforce access 
+30fd 20402164 call set_sync_on 
+30fe 6848c5a4 fetcht 1 ,mem_24g_ch 
+30ff 204025a2 call le_rf_rx_enable 
+
+g24_receive_rxon:
+3100 204030f1 call g24_prep 
+3101 c597b105 bmark0 mark_ble_lr ,g24_receive_nolr 
+3102 783cfc00 pulse dewhiten_code_calc 
+3103 2000001e nop 30 
+3104 204030f1 call g24_prep 
+
+g24_receive_nolr:
+3105 7857fc00 disable user3 
+3106 7826fc00 enable decode_fec0 
+3107 7830fc00 enable is_rx 
+3108 78507c00 disable is_tx 
+3109 78287c00 enable swfine 
+310a 6fe145a2 fetch 2 ,mem_24g_rx_window 
+310b 98003600 iforce stop_watch 
+310c 37c18400 correlate null ,timeout 
+310d 242c315f nbranch g24_sync_timeout ,sync 
+310e 204066e7 call rf_debug_rx_sync_line 
+310f c517b114 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
+3110 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
+3111 243a3114 nbranch g24_receive_skip_fec1 ,blank 
+3112 7846fc00 disable decode_fec0 
+3113 7825fc00 enable decode_fec1 
+
+g24_receive_skip_fec1:
+3114 7823fc00 enable enable_white 
+3115 7824fc00 enable enable_crc 
+3116 2040315c call g24_receive_byte 
+3117 67e0c5c4 store 1 ,mem_24g_get_syncword_crc8 
+3118 6848c5c3 fetcht 1 ,mem_24g_syncword_crc8 
+3119 98467c00 isub temp ,null 
+311a 2422b167 nbranch g24_hec_error ,zero 
+311b 474dc033 bpatchx patch33_3 ,mem_patch33 
+311c 7858fc00 disable user7 
+311d 280ffe2f isolate1 mark_ble_lr ,mark 
+311e 2040b14e call g24_lr_receive_pdu_len ,true 
+311f 2038b169 branch g24_lr_len_error ,user7 
+3120 2040315c call g24_receive_byte 
+3121 67e0c50e store 1 ,mem_24g_rxbuf 
+3122 c513b127 bmark1 mark_24g_rxmode ,g24_receive_skip 
+3123 6fe0c50e fetch 1 ,mem_24g_rxbuf 
+3124 6848c5a0 fetcht 1 ,mem_24g_data_type 
+3125 a8400e00 icompare bits_data ,temp 
+3126 2420b16b nbranch g24_type_error ,true 
+
+g24_receive_skip:
+3127 2040315c call g24_receive_byte 
+3128 280ffe2f isolate1 mark_ble_lr ,mark 
+3129 2040b157 call g24_lr_receive_payload_len ,true 
+312a e7e08005 istore 1 ,contw 
+312b 1fe97e00 rshift3 pdata ,pdata 
+312c 1fe67c1f sub pdata ,0x1f ,null 
+312d 2421316d nbranch g24_len_over_error ,positive 
+312e 1fe27200 copy pdata ,loopcnt 
+312f 2022b133 branch g24rx_nopayload ,zero 
+
+g24rx_loop:
+3130 2040315c call g24_receive_byte 
+3131 e7e08005 istore 1 ,contw 
+3132 c2003130 loop g24rx_loop 
+
+g24rx_nopayload:
+3133 c513b138 bmark1 mark_24g_rxmode ,g24_receive_skip_rssi 
+3134 18a22200 copy contw ,rega 
+3135 2040315c call g24_receive_byte 
+3136 67e0c5ea store 1 ,mem_rssi_hex_received 
+3137 1a220a00 copy rega ,contw 
+
+g24_receive_skip_rssi:
+3138 09800018 parse demod ,bucket ,24 
+3139 1fef7e00 rshift32 pdata ,pdata 
+313a 1ff17e00 rshift16 pdata ,pdata 
+313b e7e18005 istore 3 ,contw 
+313c 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
+313d 243a314c nbranch g24_receive_skip_disable_fec1 ,blank 
+313e 7845fc00 disable decode_fec1 
+
+g24_receive_skip_next:
+313f 280ffe27 isolate1 mark_24g_rxmode ,mark 
+3140 2040b5a0 call save_rssi_dec ,true 
+3141 2023316f branch g24_crc_error ,crc_failed 
+3142 204066e6 call rf_debug_rx_crc_line 
+3143 474e4033 bpatchx patch33_4 ,mem_patch33 
+3144 7837fc00 enable user3 
+3145 2040268f call le_match_set_txfreq 
+3146 c6138000 rtnmark1 mark_24g_rxmode 
+3147 6fe0c5ea fetch 1 ,mem_rssi_hex_received 
+3148 6848c641 fetcht 1 ,mem_rssi_hex_received_max_value 
+3149 98467c00 isub temp ,null 
+314a 20417db4 call copy_temp2pdata ,positive 
+314b 202035a3 branch rssi_signal 
+
+g24_receive_skip_disable_fec1:
+314c 7846fc00 disable decode_fec0 
+314d 2020313f branch g24_receive_skip_next 
+
+g24_lr_receive_pdu_len:
+314e 2040315c call g24_receive_byte 
+314f 1fe67c01 sub pdata ,1 ,null 
+3150 20217dc4 branch enable_user7 ,positive 
+3151 1fe0fffe increase -2 ,pdata 
+3152 c513b155 bmark1 mark_24g_rxmode ,g24_lr_receive_pdu_norssi 
+3153 203a7dc4 branch enable_user7 ,blank 
+3154 1fe0ffff increase -1 ,pdata 
+
+g24_lr_receive_pdu_norssi:
+3155 67e08656 store 1 ,mem_temp 
+3156 20600000 rtn 
+
+g24_lr_receive_payload_len:
+3157 1fe17e07 and_into 0x07 ,pdata 
+3158 68488656 fetcht 1 ,mem_temp 
+3159 18498400 lshift3 temp ,temp 
+315a 9841fe00 ior temp ,pdata 
+315b 20600000 rtn 
+
+g24_receive_byte:
+315c 09800008 parse demod ,bucket ,8 
+315d 19897e00 rshift3 pwindow ,pdata 
+315e 20600000 rtn 
+
+g24_sync_timeout:
+315f 7045e201 jam err_sync_to ,mem_24g_off_type 
+3160 280ffe27 isolate1 mark_24g_rxmode ,mark 
+3161 2040b5bb call rssi_noise ,true 
+
+g24_end_of_packet:
+3162 474ec033 bpatchx patch33_5 ,mem_patch33 
+3163 20402591 call le_disable 
+3164 784dfc00 disable encode_fec1 
+3165 7845fc00 disable decode_fec1 
+3166 202020cf branch end_of_packet 
+
+g24_hec_error:
+3167 7045e202 jam err_hec ,mem_24g_off_type 
+3168 20203162 branch g24_end_of_packet 
+
+g24_lr_len_error:
+3169 7045e203 jam err_lr_len ,mem_24g_off_type 
+316a 20203162 branch g24_end_of_packet 
+
+g24_type_error:
+316b 7045e204 jam err_type ,mem_24g_off_type 
+316c 20203162 branch g24_end_of_packet 
+
+g24_len_over_error:
+316d 7045e205 jam err_len_over ,mem_24g_off_type 
+316e 20203162 branch g24_end_of_packet 
+
+g24_crc_error:
+316f 7045e206 jam err_crc ,mem_24g_off_type 
+3170 20203162 branch g24_end_of_packet 
+
+g24_set_freq_tx:
+3171 20402164 call set_sync_on 
+3172 6848c5a4 fetcht 1 ,mem_24g_ch 
+3173 202021ff branch set_freq_tx 
+
+g24_transmit:
+3174 474f4033 bpatchx patch33_6 ,mem_patch33 
+3175 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
+3176 20402579 call le_enable_phy_by_pdata 
+3177 6fe245a6 fetch 4 ,mem_24g_addr 
+3178 98001200 iforce access 
+3179 204030f1 call g24_prep 
+317a 20403171 call g24_set_freq_tx 
+317b 79202a00 set1 txgfsk ,radio_ctrl 
+317c 782efc00 enable encode_fec0 
+317d 78307c00 enable is_tx 
+317e 7850fc00 disable is_rx 
+317f 204066ed call rf_debug_tx_on_line 
+3180 785d7c00 disable lr_s2en 
+3181 c517b1a6 bmark1 mark_ble_lr ,g24_transmit_lr 
+3182 c516b1b8 bmark1 mark_ble_2m ,g24_transmit_2m 
+3183 19317e00 rshift16 access ,pdata 
+3184 1fecfe00 rshift8 pdata ,pdata 
+3185 1ff1fe00 rshift4 pdata ,pdata 
+3186 08008628 inject mod ,40 
+
+g24_transmit_packet:
+3187 474fc033 bpatchx patch33_7 ,mem_patch33 
+3188 c517b18d bmark1 mark_ble_lr ,g24_transmit_nolr 
+3189 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
+318a 243a318d nbranch g24_transmit_nolr ,blank 
+318b 784efc00 disable encode_fec0 
+318c 782dfc00 enable encode_fec1 
+
+g24_transmit_nolr:
+318d 7823fc00 enable enable_white 
+318e 7824fc00 enable enable_crc 
+318f 6fe0c5a1 fetch 1 ,mem_24g_txlen 
+3190 98007200 iforce loopcnt 
+3191 d8c04550 arg mem_24g_txpayload ,contr 
+
+g24tr_loop:
+3192 efe08006 ifetch 1 ,contr 
+3193 08008608 inject mod ,8 
+3194 c2003192 loop g24tr_loop 
+3195 78247c00 enable enable_parity 
+3196 08008618 inject mod ,24 
+3197 78447c00 disable enable_parity 
+3198 c597b19c bmark0 mark_ble_lr ,g24_transmit_skip 
+3199 7843fc00 disable enable_white 
+319a 58000000 setarg 0 
+319b 08008603 inject mod ,3 
+
+g24_transmit_skip:
+319c 37d38200 until null ,tx_clear 
+319d 20000064 nop 100 
+319e 785d7c00 disable lr_s2en 
+319f 784efc00 disable encode_fec0 
+31a0 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
+31a1 243a31a3 nbranch g24_transmit_skip_disable_fec1 ,blank 
+31a2 784dfc00 disable encode_fec1 
+
+g24_transmit_skip_disable_fec1:
+31a3 785c7c00 disable encode_fec3 
+31a4 20402164 call set_sync_on 
+31a5 202066eb branch rf_debug_tx_off_line 
+
+g24_transmit_lr:
+31a6 df20000a arg 10 ,loopcnt 
+
+g24_transmit_lr_preamble_loop:
+31a7 5800003c setarg 0x3c 
+31a8 08008608 inject mod ,8 
+31a9 c20031a7 loop g24_transmit_lr_preamble_loop 
+31aa 784efc00 disable encode_fec0 
+31ab 783c7c00 enable encode_fec3 
+31ac 19317e00 rshift16 access ,pdata 
+31ad 1ff17e00 rshift16 pdata ,pdata 
+31ae 1ff1fe00 rshift4 pdata ,pdata 
+31af 08008620 inject mod ,32 
+31b0 c51731b5 bmark1 mark_ble_lr_s8 ,g24_transmit_lr_s8 
+
+g24_transmit_lr_s2:
+31b1 58000001 setarg 1 
+31b2 08008605 inject mod ,5 
+31b3 783d7c00 enable lr_s2en 
+31b4 20203187 branch g24_transmit_packet 
+
+g24_transmit_lr_s8:
+31b5 58000000 setarg 0 
+31b6 08008605 inject mod ,5 
+31b7 20203187 branch g24_transmit_packet 
+
+g24_transmit_2m:
+31b8 6fe0c148 fetch 1 ,mem_system_clk 
+31b9 1fe37200 rshift pdata ,loopcnt 
+
+g24_transmit_2m_dealy:
+31ba 20000002 nop 2 
+31bb c20031ba loop g24_transmit_2m_dealy 
+31bc 19317e00 rshift16 access ,pdata 
+31bd 1fecfe00 rshift8 pdata ,pdata 
+31be 1ff18400 rshift4 pdata ,temp 
+31bf 18427e00 copy temp ,pdata 
+31c0 08008608 inject mod ,8 
+31c1 18427e00 copy temp ,pdata 
+31c2 08008628 inject mod ,40 
+31c3 20203187 branch g24_transmit_packet 
+
+g24_transmit_prep:
+31c4 47504034 bpatchx patch34_0 ,mem_patch34 
+31c5 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
+31c6 c28131e5 bbit1 bit_le_coded_phy ,g24_lr_transmit_prep 
+31c7 6fe0c59f fetch 1 ,mem_24g_datalen 
+31c8 1fe0fe03 increase 3 ,pdata 
+31c9 67e0c5a1 store 1 ,mem_24g_txlen 
+31ca 6fe0c5c3 fetch 1 ,mem_24g_syncword_crc8 
+31cb 67e0c550 store 1 ,mem_24g_txpayload 
+31cc 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+31cd e7e08005 istore 1 ,contw 
+31ce 6fe0c59f fetch 1 ,mem_24g_datalen 
+
+g24_transmit_prep_pdu:
+31cf 1fe9fe00 lshift3 pdata ,pdata 
+31d0 6848c595 fetcht 1 ,mem_24g_pid 
+31d1 18410403 and temp ,0x03 ,temp 
+31d2 18438400 lshift temp ,temp 
+31d3 9841fe00 ior temp ,pdata 
+31d4 6848c596 fetcht 1 ,mem_24g_no_ack 
+31d5 9840fe00 iadd temp ,pdata 
+31d6 e7e08005 istore 1 ,contw 
+31d7 6fe0c59f fetch 1 ,mem_24g_datalen 
+31d8 98007200 iforce loopcnt 
+31d9 d8c04530 arg mem_24g_txbuf ,contr 
+31da 20407cdc call memcpy 
+31db 4750c034 bpatchx patch34_1 ,mem_patch34 
+31dc c6938000 rtnmark0 mark_24g_rxmode 
+31dd 6fe08035 fetch 1 ,mem_rssi_hex 
+31de e7e08005 istore 1 ,contw 
+31df 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
+31e0 c3810000 rtnbit1 bit_le_coded_phy 
+31e1 6fe0c5a1 fetch 1 ,mem_24g_txlen 
+31e2 1fe0fe01 increase 1 ,pdata 
+31e3 67e0c5a1 store 1 ,mem_24g_txlen 
+31e4 20600000 rtn 
+
+g24_lr_transmit_prep:
+31e5 6fe0c59f fetch 1 ,mem_24g_datalen 
+31e6 1fe0fe04 increase 4 ,pdata 
+31e7 c593b1e9 bmark0 mark_24g_rxmode ,g24_lr_transmit_prep_skip 
+31e8 1fe0fe01 increase 1 ,pdata 
+
+g24_lr_transmit_prep_skip:
+31e9 67e0c5a1 store 1 ,mem_24g_txlen 
+31ea 6fe0c5c3 fetch 1 ,mem_24g_syncword_crc8 
+31eb 67e0c550 store 1 ,mem_24g_txpayload 
+31ec 6fe0c5a1 fetch 1 ,mem_24g_txlen 
+31ed 1fe0fffe increase -2 ,pdata 
+31ee e7e08005 istore 1 ,contw 
+31ef 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+31f0 e7e08005 istore 1 ,contw 
+31f1 58000000 setarg 0 
+31f2 202031cf branch g24_transmit_prep_pdu 
+
+g24_read_len_pid_crc:
+31f3 47514034 bpatchx patch34_2 ,mem_patch34 
+31f4 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
+31f5 1fe97e00 rshift3 pdata ,pdata 
+31f6 67e0c594 store 1 ,mem_24g_rxdata_length 
+31f7 1fe0fe01 increase 1 ,pdata 
+31f8 d8c0450f arg mem_24g_rxbuf + 1 ,contr 
+31f9 98c08c00 iadd contr ,contr 
+31fa efe18006 ifetch 3 ,contr 
+31fb 67e1c597 store 3 ,mem_24g_sta_crc 
+31fc 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
+31fd 1fe37e00 rshift pdata ,pdata 
+31fe 1fe17e03 and pdata ,0x03 ,pdata 
+31ff 67e0c59d store 1 ,mem_24g_sta_pid 
+3200 20600000 rtn 
+
+g24_ch:
+3201 4751c034 bpatchx patch34_3 ,mem_patch34 
+3202 6848c5a5 fetcht 1 ,mem_24g_current_ch_number 
+3203 20403206 call g24_ch_map_size 
+3204 6048c5a5 storet 1 ,mem_24g_current_ch_number 
+3205 20600000 rtn 
+
+g24_ch_map_size:
+3206 47524034 bpatchx patch34_4 ,mem_patch34 
+3207 2040320b call g24_ch_calc 
+3208 18408401 increase 1 ,temp 
+3209 18410403 and_into 3 ,temp 
+320a 20600000 rtn 
+
+g24_ch_calc:
+320b 4752c034 bpatchx patch34_5 ,mem_patch34 
+320c 6fe0c5a6 fetch 1 ,mem_24g_addr 
+320d 1fe17e03 and_into 0x03 ,pdata 
+320e 1fefa204 mul32 pdata ,4 ,rega 
+320f 580045aa setarg mem_24g_ch_map1 
+3210 9a20fe00 iadd rega ,pdata 
+3211 98408c00 iadd temp ,contr 
+3212 efe08006 ifetch 1 ,contr 
+3213 67e0c5a4 store 1 ,mem_24g_ch 
+3214 20600000 rtn 
+
+g24_update_addr_and_synccrc8:
+3215 67e245a6 store 4 ,mem_24g_addr 
+3216 47534034 bpatchx patch34_6 ,mem_patch34 
+
+g24_syncword_crc8:
+3217 da200000 arg 0 ,rega 
+3218 df200004 arg 4 ,loopcnt 
+3219 d8c045a6 arg mem_24g_addr ,contr 
+
+g24_syncword_crc8_loop:
+321a efe08006 ifetch 1 ,contr 
+321b 9a20a200 iadd rega ,rega 
+321c c200321a loop g24_syncword_crc8_loop 
+321d 1a227e00 copy rega ,pdata 
+321e 67e145c1 store 2 ,mem_24g_syncword 
+321f 6fe0c5c1 fetch 1 ,mem_24g_syncword 
+3220 6848c5c2 fetcht 1 ,mem_24g_syncword + 1 
+3221 9840fe00 iadd temp ,pdata 
+3222 67e0c5c3 store 1 ,mem_24g_syncword_crc8 
+3223 20600000 rtn 
+
+g24_timer_check:
+3224 4753c034 bpatchx patch34_7 ,mem_patch34 
+3225 20407dbe call disable_user 
+3226 684a45ba fetcht 4 ,mem_24g_tx_btclk 
+3227 1c427e00 copy clkn_bt ,pdata 
+3228 98467c00 isub temp ,null 
+3229 24413234 ncall g24_timer_timeout ,positive 
+322a 1fe22400 copy pdata ,regb 
+322b 6fe245ba fetch 4 ,mem_24g_tx_btclk 
+322c 6848c5be fetcht 1 ,mem_24g_interval 
+322d 98408400 iadd temp ,temp 
+322e 1a427e00 copy regb ,pdata 
+322f 98467c00 isub temp ,null 
+3230 24610000 nrtn positive 
+3231 793ffe1c set0 28 ,pdata 
+3232 67e245ba store 4 ,mem_24g_tx_btclk 
+3233 20207dbc branch enable_user 
+
+g24_timer_timeout:
+3234 20628000 rtn zero 
+3235 79207e1c set1 28 ,pdata 
+3236 20600000 rtn 
+
+g24_timer_init:
+3237 58000000 setarg 0 
+3238 67e245ba store 4 ,mem_24g_tx_btclk 
+3239 20600000 rtn 
+
+g24_chmap_param_init:
+323a 47544035 bpatchx patch35_0 ,mem_patch35 
+323b 38001300 setsect 0 ,0x1300 
+323c 3805908b setsect 1 ,0x1908b 
+323d 380b6150 setsect 2 ,0x36150 
+323e 380c3d20 setsect 3 ,0x3d20 
+323f 67e4c5aa store 9 ,mem_24g_ch_map1 
+3240 38003a1a setsect 0 ,0x3a1a 
+3241 3804c453 setsect 1 ,0xc453 
+3242 3808d312 setsect 2 ,0xd312 
+3243 380c0001 setsect 3 ,0x1 
+3244 e7e38005 istore 7 ,contw 
+3245 6fe0c5d0 fetch 1 ,mem_24g_ch_map_update 
+3246 207a0000 rtn blank 
+3247 d8c045d1 arg mem_24g_ch_update_map1 ,contr 
+3248 d8a045aa arg mem_24g_ch_map1 ,contw 
+3249 20207c91 branch memcpy16 
+
+g24_chamap_param_update:
+324a 4754c035 bpatchx patch35_1 ,mem_patch35 
+324b 584e001e setarg 0x4e001e 
+324c 67e1c5d2 store 3 ,mem_24g_ch_update_map1 + 1 
+324d 58032303 setarg 0x032303 
+324e e7e18005 istore 3 ,contw 
+324f 58250642 setarg 0x250642 
+3250 e7e18005 istore 3 ,contw 
+3251 58094c06 setarg 0x094c06 
+3252 e7e18005 istore 3 ,contw 
+3253 583c0927 setarg 0x3c0927 
+3254 e7e18005 istore 3 ,contw 
+3255 7045d001 jam 1 ,mem_24g_ch_map_update 
+3256 20600000 rtn 
+
+g24_rx_window_init:
+3257 47554035 bpatchx patch35_2 ,mem_patch35 
+3258 d8406978 arg 0x6978 ,temp 
+3259 c513b25e bmark1 mark_24g_rxmode ,g24_rx_window_store 
+325a d84012c0 arg 0x12c0 ,temp 
+325b 6fe0c5ce fetch 1 ,mem_24g_rx_phy 
+325c c301325e bbit0 2 ,g24_rx_window_store 
+325d d8402ee0 arg 0x2ee0 ,temp 
+
+g24_rx_window_store:
+325e 604945a2 storet 2 ,mem_24g_rx_window 
+325f 20600000 rtn 
+
+g24_enable_1m:
+3260 7045ce01 jam 0x01 ,mem_24g_rx_phy 
+3261 7045cf01 jam 0x01 ,mem_24g_tx_phy 
+3262 20600000 rtn 
+
+g24_enable_2m:
+3263 7045ce02 jam 0x02 ,mem_24g_rx_phy 
+3264 7045cf02 jam 0x02 ,mem_24g_tx_phy 
+3265 20600000 rtn 
+
+g24_pair_param_init:
+3266 4755c035 bpatchx patch35_3 ,mem_patch35 
+3267 7045e74e jam 0x4e ,mem_24g_pair_ch 
+3268 58101520 setarg 0x101520 
+3269 67e1c5e3 store 3 ,mem_24g_pair_addr 
+326a 58000005 setarg 0x05 
+326b 20207dce branch istore_1_contw_rtn 
+
+g24_pair_timeout_timer:
+326c da6045ef arg mem_24g_pair_timeout ,regc 
+326d da403653 arg g24_stop_24g_mode ,regb 
+326e 2020375c branch timer_single_step_2b 
+
+g24_pair_start:
+326f 79200026 set1 mark_24g ,mark 
+3270 6fe0c613 fetch 1 ,mem_24g_conn_sm 
+3271 793ffe02 set0 state_24g_reconn ,pdata 
+3272 79207e01 set1 state_24g_pair ,pdata 
+3273 67e0c613 store 1 ,mem_24g_conn_sm 
+3274 58000000 setarg 0 
+3275 67e145f5 store 2 ,mem_24g_reconn_timeout 
+3276 6fe145ed fetch 2 ,mem_24g_pair_timeout_init 
+3277 67e145ef store 2 ,mem_24g_pair_timeout 
+3278 7045ec00 jam 0 ,mem_24g_pair_no_ack 
+3279 204032b4 call g24_pair_sm_reinit 
+
+g24_pair_init_param:
+327a 70459500 jam 0 ,mem_24g_pid 
+327b 6fe0c5e7 fetch 1 ,mem_24g_pair_ch 
+327c 67e0c5a4 store 1 ,mem_24g_ch 
+327d 6fe0c5e8 fetch 1 ,mem_24g_pair_tx_power 
+327e 67e0c141 store 1 ,mem_tx_power 
+327f 6fe245e3 fetch 4 ,mem_24g_pair_addr 
+3280 20203215 branch g24_update_addr_and_synccrc8 
+
+g24_pair_dispatch:
+3281 47564035 bpatchx patch35_4 ,mem_patch35 
+3282 7045f900 jam default_24g_device ,mem_24g_reconn_type 
+3283 6fe145f1 fetch 2 ,mem_24g_pair_count 
+3284 1fe0fe01 increase 1 ,pdata 
+3285 67e145f1 store 2 ,mem_24g_pair_count 
+3286 6fe0c5f1 fetch 1 ,mem_24g_pair_count 
+3287 1fe17eff and pdata ,0xff ,pdata 
+3288 247a0000 nrtn blank 
+3289 6fe0c5eb fetch 1 ,mem_24g_pair_sm 
+328a c07fb2d6 beq state_24g_pairing_success ,g24_pair_exit 
+328b c000b290 beq state_24g_pairing_1 ,g24_pair_sm_1 
+328c c0013292 beq state_24g_pairing_2 ,g24_pair_sm_2 
+328d c001b298 beq state_24g_pairing_3 ,g24_pair_sm_3 
+328e c002329e beq state_24g_pairing_4 ,g24_pair_sm_4 
+328f 20600000 rtn 
+
+g24_pair_sm_1:
+3290 704530ff jam datatype_attemp ,mem_24g_txbuf 
+3291 2020329f branch g24_pair_sm_prep 
+
+g24_pair_sm_2:
+3292 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+3293 203a3296 branch g24_pair_sm_2_skip ,blank 
+3294 6fe2461b fetch 4 ,mem_24g_device_addr 
+3295 20403215 call g24_update_addr_and_synccrc8 
+
+g24_pair_sm_2_skip:
+3296 704530aa jam datatype_bind ,mem_24g_txbuf 
+3297 2020329f branch g24_pair_sm_prep 
+
+g24_pair_sm_3:
+3298 70453055 jam datatype_config ,mem_24g_txbuf 
+3299 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+329a 203a329f branch g24_pair_sm_prep ,blank 
+329b 6fe245ff fetch 4 ,mem_24g_receiver_addr 
+329c 67e24532 store 4 ,mem_24g_txbuf + 2 
+329d 202032a1 branch g24_pair_sm_common 
+
+g24_pair_sm_4:
+329e 70453022 jam datatype_ok ,mem_24g_txbuf 
+
+g24_pair_sm_prep:
+329f 6fe2461b fetch 4 ,mem_24g_device_addr 
+32a0 67e24532 store 4 ,mem_24g_txbuf + 2 
+
+g24_pair_sm_common:
+32a1 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+32a2 1fe17e07 and_into bits_data ,pdata 
+32a3 67e0c531 store 1 ,mem_24g_txbuf + 1 
+32a4 70453600 jam 0 ,mem_24g_txbuf + 6 
+32a5 70459f07 jam 7 ,mem_24g_datalen 
+32a6 204031c4 call g24_transmit_prep 
+32a7 2040362a call g24_transmit_receive_ack 
+32a8 246c0000 nrtn sync 
+32a9 24778000 nrtn user3 
+32aa 20403553 call g24_txbuf_clear 
+32ab 20403647 call g24_ackpayload_parse 
+32ac 4756c035 bpatchx patch35_5 ,mem_patch35 
+32ad 6fe0c5eb fetch 1 ,mem_24g_pair_sm 
+32ae c17f8000 rtneq state_24g_pairing_success 
+32af c000b2b9 beq state_24g_pairing_1 ,g24_pair_sm_1_waiting_ack 
+32b0 c00132bb beq state_24g_pairing_2 ,g24_pair_sm_2_waiting_ack 
+32b1 c001b2c1 beq state_24g_pairing_3 ,g24_pair_sm_3_waiting_ack 
+32b2 c00232c9 beq state_24g_pairing_4 ,g24_pair_sm_4_waiting_ack 
+32b3 20600000 rtn 
+
+g24_pair_sm_reinit:
+32b4 7045eb02 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+32b5 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+32b6 207a0000 rtn blank 
+32b7 7045eb01 jam state_24g_pairing_1 ,mem_24g_pair_sm 
+32b8 20600000 rtn 
+
+g24_pair_sm_1_waiting_ack:
+32b9 7045eb02 jam state_24g_pairing_2 ,mem_24g_pair_sm 
+32ba 20203625 branch g24_transmit_abandon 
+
+g24_pair_sm_2_waiting_ack:
+32bb 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+32bc 203a32bf branch g24_pair_sm_2_waiting_ack_skip ,blank 
+32bd 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+32be 67e245ff store 4 ,mem_24g_receiver_addr 
+
+g24_pair_sm_2_waiting_ack_skip:
+32bf 7045eb03 jam state_24g_pairing_3 ,mem_24g_pair_sm 
+32c0 20203625 branch g24_transmit_abandon 
+
+g24_pair_sm_3_waiting_ack:
+32c1 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+32c2 203a32c7 branch g24_pair_sm_3_waiting_ack_skip ,blank 
+32c3 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+32c4 684a461b fetcht 4 ,mem_24g_device_addr 
+32c5 98467c00 isub temp ,null 
+32c6 24628000 nrtn zero 
+
+g24_pair_sm_3_waiting_ack_skip:
+32c7 7045eb04 jam state_24g_pairing_4 ,mem_24g_pair_sm 
+32c8 20203625 branch g24_transmit_abandon 
+
+g24_pair_sm_4_waiting_ack:
+32c9 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+32ca 203a32cf branch g24_pair_sm_4_waiting_ack_skip ,blank 
+32cb 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+32cc 684a45ff fetcht 4 ,mem_24g_receiver_addr 
+32cd 98467c00 isub temp ,null 
+32ce 24628000 nrtn zero 
+
+g24_pair_sm_4_waiting_ack_skip:
+32cf 7045ebff jam state_24g_pairing_success ,mem_24g_pair_sm 
+32d0 70064d39 jam bt_evt_24g_pairing_complete ,mem_fifo_temp 
+32d1 20407819 call ui_ipc_send_event 
+32d2 58000000 setarg 0 
+32d3 67e145ef store 2 ,mem_24g_pair_timeout 
+32d4 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+32d5 20403215 call g24_update_addr_and_synccrc8 
+
+g24_pair_exit:
+32d6 6fe0c613 fetch 1 ,mem_24g_conn_sm 
+32d7 793ffe01 set0 state_24g_pair ,pdata 
+32d8 67e0c613 store 1 ,mem_24g_conn_sm 
+32d9 20203625 branch g24_transmit_abandon 
+
+g24_bind_mode_enable:
+32da 70462d01 jam dongle_bind ,mem_24g_work_mode 
+32db 70462c00 jam clear_init ,mem_24g_mode_init 
+32dc 20600000 rtn 
+
+g24_bind_init:
+32dd 6fe0c62c fetch 1 ,mem_24g_mode_init 
+32de c3808000 rtnbit1 dongle_bind 
+32df 79207e01 set1 dongle_bind ,pdata 
+32e0 67e0c62c store 1 ,mem_24g_mode_init 
+32e1 58000000 setarg 0 
+32e2 67e1c5ea store 3 ,mem_24g_device1_bind_step 
+32e3 67e0c5f5 store 1 ,mem_24g_device1_bind_disable 
+32e4 67e0c5f6 store 1 ,mem_24g_device2_bind_disable 
+32e5 67e24643 store 4 ,mem_24g_transmitter_addr 
+32e6 70462801 jam 1 ,mem_24g_ackpayload_enable 
+32e7 2020327a branch g24_pair_init_param 
+
+g24_bind_ackpayload_prep:
+32e8 70459f08 jam 0x08 ,mem_24g_datalen 
+32e9 d8c045ed arg mem_24g_bind_payload ,contr 
+32ea d8a04530 arg mem_24g_txbuf ,contw 
+32eb 20207c8b branch memcpy8 
+
+g24_bind_data_process:
+32ec 47574035 bpatchx patch35_6 ,mem_patch35 
+32ed 20403397 call g24_rx_interrupt_clear 
+32ee 204030f8 call g24_receive_packet 
+32ef 2437b397 nbranch g24_rx_interrupt_clear ,user3 
+32f0 204032fb call g24_bind_data_parse 
+32f1 204033ca call g24_transmit_ack 
+32f2 20403372 call g24_bind_device_status_check 
+32f3 20403e80 call dongle_kb_bind_soft_reset 
+32f4 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+32f5 207a0000 rtn blank 
+32f6 6fe24643 fetch 4 ,mem_24g_transmitter_addr 
+32f7 207a0000 rtn blank 
+32f8 20203215 branch g24_update_addr_and_synccrc8 
+
+g24_bind_data_error:
+32f9 20403397 call g24_rx_interrupt_clear 
+32fa 20203162 branch g24_end_of_packet 
+
+g24_bind_data_parse:
+32fb 70463905 jam bind_mode_continue ,mem_24g_bind_mode_continue 
+32fc d8c0450e arg mem_24g_rxbuf ,contr 
+32fd d8a045ff arg mem_24g_rxdata_temp ,contw 
+32fe 20407c8b call memcpy8 
+32ff 4757c035 bpatchx patch35_7 ,mem_patch35 
+3300 6fe0c601 fetch 1 ,mem_24g_rxdata_temp + 2 
+3301 c0553306 beq datatype_bind ,g24_bind_first_step 
+3302 c02ab317 beq datatype_config ,g24_bind_second_step 
+3303 c0113338 beq datatype_ok ,g24_bind_third_step 
+3304 c07fb573 beq datatype_attemp ,g24_data_attemp 
+3305 20600000 rtn 
+
+g24_bind_first_step:
+3306 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+3307 c000b30a beq datatype_device1 ,g24_bind_first_step_device1 
+3308 c0013312 beq datatype_device2 ,g24_bind_first_step_device2 
+3309 20600000 rtn 
+
+g24_bind_first_step_device1:
+330a 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
+330b 247a0000 nrtn blank 
+330c 7045ea01 jam 1 ,mem_24g_device1_bind_step 
+
+g24_bind_dvc1_payload_cfg:
+330d 7045ed01 jam datatype_device1 ,mem_24g_bind_payload 
+
+g24_bind_payload_cfg:
+330e 7045ee80 jam 0x80 ,mem_24g_bind_payload + 1 
+330f 6fe34508 fetch 6 ,mem_24g_lap 
+3310 67e345ef store 6 ,mem_24g_bind_payload + 2 
+3311 20600000 rtn 
+
+g24_bind_first_step_device2:
+3312 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
+3313 247a0000 nrtn blank 
+3314 7045eb01 jam 1 ,mem_24g_device2_bind_step 
+
+g24_bind_dvc2_payload_cfg:
+3315 7045ed02 jam datatype_device2 ,mem_24g_bind_payload 
+3316 2020330e branch g24_bind_payload_cfg 
+
+g24_bind_second_step:
+3317 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+3318 203a331d branch g24_bind_second_step_skip ,blank 
+3319 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
+331a 684a4508 fetcht 4 ,mem_24g_lap 
+331b 98467c00 isub temp ,null 
+331c 24628000 nrtn zero 
+
+g24_bind_second_step_skip:
+331d 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+331e c000b321 beq datatype_device1 ,g24_bind_second_step_device1 
+331f c001332e beq datatype_device2 ,g24_bind_second_step_device2 
+3320 20600000 rtn 
+
+g24_bind_second_step_device1:
+3321 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
+3322 247a0000 nrtn blank 
+3323 6fe0c5ea fetch 1 ,mem_24g_device1_bind_step 
+3324 c000b326 beq 1 ,g24_bind_dvc1_step_set2 
+3325 20600000 rtn 
+
+g24_bind_dvc1_step_set2:
+3326 7045ea02 jam 2 ,mem_24g_device1_bind_step 
+3327 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+3328 203a330d branch g24_bind_dvc1_payload_cfg ,blank 
+
+g24_bind_dvc1_payload_cfg_transmitter_addr:
+3329 7045ed01 jam datatype_device1 ,mem_24g_bind_payload 
+
+g24_bind_payload_cfg_transmitter_addr:
+332a 7045ee80 jam 0x80 ,mem_24g_bind_payload + 1 
+332b 6fe24643 fetch 4 ,mem_24g_transmitter_addr 
+332c 67e245ef store 4 ,mem_24g_bind_payload + 2 
+332d 20207dbc branch enable_user 
+
+g24_bind_second_step_device2:
+332e 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
+332f 247a0000 nrtn blank 
+3330 6fe0c5eb fetch 1 ,mem_24g_device2_bind_step 
+3331 c000b333 beq 1 ,g24_bind_dvc2_step_set2 
+3332 20600000 rtn 
+
+g24_bind_dvc2_step_set2:
+3333 7045eb02 jam 2 ,mem_24g_device2_bind_step 
+3334 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+3335 203a3315 branch g24_bind_dvc2_payload_cfg ,blank 
+3336 7045ed02 jam datatype_device2 ,mem_24g_bind_payload 
+3337 2020332a branch g24_bind_payload_cfg_transmitter_addr 
+
+g24_bind_third_step:
+3338 6fe0c5c5 fetch 1 ,mem_24g_pair_switch 
+3339 203a333e branch g24_bind_third_step_skip ,blank 
+333a 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
+333b 684a4643 fetcht 4 ,mem_24g_transmitter_addr 
+333c 98467c00 isub temp ,null 
+333d 24628000 nrtn zero 
+
+g24_bind_third_step_skip:
+333e 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+333f c000b342 beq datatype_device1 ,g24_bind_third_step_device1 
+3340 c001334f beq datatype_device2 ,g24_bind_third_step_device2 
+3341 20600000 rtn 
+
+g24_bind_third_step_device1:
+3342 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
+3343 247a0000 nrtn blank 
+3344 6fe0c5ea fetch 1 ,mem_24g_device1_bind_step 
+3345 c0013347 beq 2 ,g24_bind_dvc1_step_success 
+3346 20600000 rtn 
+
+g24_bind_dvc1_step_success:
+3347 7045f501 jam 1 ,mem_24g_device1_bind_disable 
+3348 2040330d call g24_bind_dvc1_payload_cfg 
+3349 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
+334a 1fe1fe01 or_into 0x01 ,pdata 
+334b 67e0c5ec store 1 ,mem_24g_bind_device_status 
+
+g24_bind_exit:
+334c 58000000 setarg 0 
+334d 67e145ea store 2 ,mem_24g_device1_bind_step 
+334e 20600000 rtn 
+
+g24_bind_third_step_device2:
+334f 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
+3350 247a0000 nrtn blank 
+3351 6fe0c5eb fetch 1 ,mem_24g_device2_bind_step 
+3352 c0803354 bne 0 ,g24_bind_dvc2_step_success 
+3353 20600000 rtn 
+
+g24_bind_dvc2_step_success:
+3354 7045f601 jam 1 ,mem_24g_device2_bind_disable 
+3355 20403315 call g24_bind_dvc2_payload_cfg 
+3356 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
+3357 1fe1fe02 or_into 0x02 ,pdata 
+3358 67e0c5ec store 1 ,mem_24g_bind_device_status 
+3359 2040334c call g24_bind_exit 
+335a 20203e7a branch dongle_g24_store_dvc2_bind_flag 
+
+g24_binding_device_check:
+335b 6fe0c511 fetch 1 ,mem_24g_rxbuf + 3 
+335c c000b35f beq datatype_device1 ,g24_binding_dvc1_status 
+335d c0013363 beq datatype_device2 ,g24_binding_dvc2_status 
+335e 20600000 rtn 
+
+g24_binding_dvc1_status:
+335f 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
+3360 c4000000 rtnbit0 0 
+
+disable_user3:
+3361 7857fc00 disable user3 
+3362 20600000 rtn 
+
+g24_binding_dvc2_status:
+3363 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
+3364 c4008000 rtnbit0 1 
+3365 20203361 branch disable_user3 
+
+g24_binding_dvc1_living:
+3366 6fe0c627 fetch 1 ,mem_24g_pair_mode 
+3367 247a0000 nrtn blank 
+3368 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
+3369 1fe1fe01 or_into 0x01 ,pdata 
+336a 67e0c642 store 1 ,mem_24g_bind_device_living 
+336b 20600000 rtn 
+
+g24_binding_dvc2_living:
+336c 6fe0c627 fetch 1 ,mem_24g_pair_mode 
+336d 247a0000 nrtn blank 
+336e 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
+336f 1fe1fe02 or_into 0x02 ,pdata 
+3370 67e0c642 store 1 ,mem_24g_bind_device_living 
+3371 20600000 rtn 
+
+g24_bind_device_status_check:
+3372 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
+3373 207a0000 rtn blank 
+
+g24_bind_device_status:
+3374 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+3375 c000b366 beq datatype_device1 ,g24_binding_dvc1_living 
+3376 c001336c beq datatype_device2 ,g24_binding_dvc2_living 
+3377 20600000 rtn 
+
+g24_receive_init:
+3378 79200027 set1 mark_24g_rxmode ,mark 
+3379 6fe0c141 fetch 1 ,mem_tx_power 
+337a 67e0c63a store 1 ,mem_tx_power_temp 
+337b 202035ae branch rssi_receiver_buff_init 
+
+g24_receive_dispatch:
+337c 6fe145f7 fetch 2 ,mem_cb_24g_receive_process 
+337d 20207d7b branch callback_func 
+
+g24_ackpayload_prep:
+337e 47584036 bpatchx patch36_0 ,mem_patch36 
+337f 70459f00 jam 0 ,mem_24g_datalen 
+3380 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
+3381 207a0000 rtn blank 
+3382 6fe145f9 fetch 2 ,mem_cb_24g_ackpayload 
+3383 20207d7b branch callback_func 
+
+g24_receive_packet_start:
+3384 204033c7 call g24_receive_transmit_ack 
+3385 2437b397 nbranch g24_rx_interrupt_clear ,user3 
+
+g24_receive_packet_parse:
+3386 204033b9 call g24_receive_packet_parse_pid_crc 
+3387 24343397 nbranch g24_rx_interrupt_clear ,user 
+3388 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
+3389 203a3397 branch g24_rx_interrupt_clear ,blank 
+338a 1fe0fe02 increase 2 ,pdata 
+338b 98007200 iforce loopcnt 
+338c d8c0450e arg mem_24g_rxbuf ,contr 
+338d d8a045ff arg mem_24g_rxdata_temp ,contw 
+338e 20407cdc call memcpy 
+338f 70462a00 jam 0 ,mem_24g_mode_switch 
+3390 6fe0c627 fetch 1 ,mem_24g_pair_mode 
+3391 205a33d4 call g24_enable_nodata_timer ,blank 
+3392 4758c036 bpatchx patch36_1 ,mem_patch36 
+3393 6fe0c601 fetch 1 ,mem_24g_rxdata_temp + 2 
+3394 c000b39d beq datatype_device1 ,g24_data_device1 
+3395 c00133ac beq datatype_device2 ,g24_data_device2 
+3396 c07fb39b beq datatype_attemp ,g24_data_receive_attemp 
+
+g24_rx_interrupt_clear:
+3397 47594036 bpatchx patch36_2 ,mem_patch36 
+3398 d8a0450e arg mem_24g_rxbuf ,contw 
+3399 df200042 arg 66 ,loopcnt 
+339a 20207ca3 branch clear_mem 
+
+g24_data_receive_attemp:
+339b 20403374 call g24_bind_device_status 
+339c 20203573 branch g24_data_attemp 
+
+g24_data_device1:
+339d 20403366 call g24_binding_dvc1_living 
+339e 20403504 call g24_ch_timer_reinit 
+339f 6fe0c621 fetch 1 ,mem_24g_abort_packet 
+33a0 6848c5ff fetcht 1 ,mem_24g_rxdata_temp 
+33a1 284ffe03 isolate1 bit_abort ,temp 
+33a2 7920fe00 setflag true ,0 ,pdata 
+33a3 67e0c621 store 1 ,mem_24g_abort_packet 
+33a4 c000b3b2 beq 1 ,g24_data_attemp_device1_abort 
+33a5 6fe0c629 fetch 1 ,mem_24g_hop_packet 
+33a6 6848c5ff fetcht 1 ,mem_24g_rxdata_temp 
+33a7 284ffe04 isolate1 bit_hop ,temp 
+33a8 7920fe00 setflag true ,0 ,pdata 
+33a9 67e0c629 store 1 ,mem_24g_hop_packet 
+33aa 6fe145fb fetch 2 ,mem_cb_24g_data_device1 
+33ab 20207d7b branch callback_func 
+
+g24_data_device2:
+33ac 2040336c call g24_binding_dvc2_living 
+33ad 6848c5ff fetcht 1 ,mem_24g_rxdata_temp 
+33ae 284ffe03 isolate1 bit_abort ,temp 
+33af 2020b3b7 branch g24_data_attemp_device2_abort ,true 
+33b0 6fe145fd fetch 2 ,mem_cb_24g_data_device2 
+33b1 20207d7b branch callback_func 
+
+g24_data_attemp_device1_abort:
+33b2 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
+33b3 247a0000 nrtn blank 
+33b4 7045f501 jam 1 ,mem_24g_device1_bind_disable 
+33b5 6fe24609 fetch 4 ,mem_24g_rxdata_temp + 10 
+33b6 2020357b branch g24_store_device1_addr 
+
+g24_data_attemp_device2_abort:
+33b7 6fe24609 fetch 4 ,mem_24g_rxdata_temp + 10 
+33b8 20203581 branch g24_store_device2_addr 
+
+g24_receive_packet_parse_pid_crc:
+33b9 20407dbe call disable_user 
+33ba 6fe0c59d fetch 1 ,mem_24g_sta_pid 
+33bb 6848c59e fetcht 1 ,mem_24g_last_pid 
+33bc 98467c00 isub temp ,null 
+33bd 2442fdbc ncall enable_user ,zero 
+33be 6fe0c59d fetch 1 ,mem_24g_sta_pid 
+33bf 67e0c59e store 1 ,mem_24g_last_pid 
+33c0 6fe1c597 fetch 3 ,mem_24g_sta_crc 
+33c1 6849c59a fetcht 3 ,mem_24g_last_crc 
+33c2 98467c00 isub temp ,null 
+33c3 2442fdbc ncall enable_user ,zero 
+33c4 6fe1c597 fetch 3 ,mem_24g_sta_crc 
+33c5 67e1c59a store 3 ,mem_24g_last_crc 
+33c6 20600000 rtn 
+
+g24_receive_transmit_ack:
+33c7 20403397 call g24_rx_interrupt_clear 
+33c8 204030f8 call g24_receive_packet 
+33c9 24778000 nrtn user3 
+
+g24_transmit_ack:
+33ca 6fe0c50e fetch 1 ,mem_24g_rxbuf 
+33cb 67e0c5a0 store 1 ,mem_24g_data_type 
+33cc 204031f3 call g24_read_len_pid_crc 
+33cd 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
+33ce 2feffe00 isolate1 bit_ack_24g ,pdata 
+33cf 2020b3d3 branch g24tx_no_ack ,true 
+
+g24tx_with_ack:
+33d0 2040337e call g24_ackpayload_prep 
+33d1 204031c4 call g24_transmit_prep 
+33d2 20403174 call g24_transmit 
+
+g24tx_no_ack:
+33d3 20203162 branch g24_end_of_packet 
+
+g24_enable_nodata_timer:
+33d4 70462b01 jam 1 ,mem_24g_nodata_timer_enable 
+
+g24_enable_nodata_timer_init:
+33d5 58000280 setarg timer_nodata_delay 
+33d6 d8e00008 arg g24_timer_nodata ,queue 
+33d7 20207ce3 branch timer_init 
+
+g24_mode_switch_init:
+33d8 4759c036 bpatchx patch36_3 ,mem_patch36 
+33d9 70462a01 jam 1 ,mem_24g_mode_switch 
+33da 70462e00 jam 0 ,mem_24g_time_slice 
+33db 7045beff jam 0xff ,mem_24g_interval 
+33dc 20203237 branch g24_timer_init 
+
+g24_mode_switch_bind_work:
+33dd 475a4036 bpatchx patch36_4 ,mem_patch36 
+33de 6fe0c62a fetch 1 ,mem_24g_mode_switch 
+33df 207a0000 rtn blank 
+33e0 20403224 call g24_timer_check 
+33e1 24740000 nrtn user 
+33e2 204033ea call g24_bind_mode_continue 
+33e3 6fe0c62e fetch 1 ,mem_24g_time_slice 
+33e4 1fe0fe01 increase 1 ,pdata 
+33e5 1fe17e01 and_into 1 ,pdata 
+33e6 67e0c62e store 1 ,mem_24g_time_slice 
+33e7 c00033ef beq 0 ,g24_work_mode_switch 
+33e8 c000b3f2 beq 1 ,g24_bind_mode_switch 
+33e9 20600000 rtn 
+
+g24_bind_mode_continue:
+33ea 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
+33eb 207a0000 rtn blank 
+33ec 1fe0ffff increase -1 ,pdata 
+33ed 67e0c639 store 1 ,mem_24g_bind_mode_continue 
+33ee 20600000 rtn 
+
+g24_work_mode_switch:
+33ef 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
+33f0 247a0000 nrtn blank 
+33f1 20203436 branch g24_switch_work_mode 
+
+g24_bind_mode_switch:
+33f2 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
+33f3 247a0000 nrtn blank 
+33f4 202032da branch g24_bind_mode_enable 
+
+g24_mode_b_s_switch_init:
+33f5 6fe0c641 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+33f6 247a0000 nrtn blank 
+33f7 6fe0c63f fetch 1 ,mem_24g_mode_b_s_switch_exit 
+33f8 205a3425 call g24_mode_b_s_switch_start ,blank 
+33f9 6fe0c63c fetch 1 ,mem_24g_mode_b_s_switch_init 
+33fa c3800000 rtnbit1 0 
+33fb 79207e00 set1 0 ,pdata 
+33fc 67e0c63c store 1 ,mem_24g_mode_b_s_switch_init 
+33fd 70463b01 jam 1 ,mem_24g_mode_b_s_switch 
+33fe 70464000 jam 0 ,mem_24g_b_s_time_slice 
+33ff 58000000 setarg 0 
+3400 67e1463d store 2 ,mem_24g_mode_b_s_switch_cnt 
+3401 7045be60 jam 0x60 ,mem_24g_interval 
+3402 20203237 branch g24_timer_init 
+
+g24_mode_switch_bind_search:
+3403 475ac036 bpatchx patch36_5 ,mem_patch36 
+3404 6fe0c62d fetch 1 ,mem_24g_work_mode 
+3405 c1000000 rtneq dongle_work 
+3406 6fe0c641 fetch 1 ,mem_24g_b_s_mode_switch_disable 
+3407 247a0000 nrtn blank 
+3408 6fe0c63f fetch 1 ,mem_24g_mode_b_s_switch_exit 
+3409 247a0000 nrtn blank 
+340a 6fe0c63b fetch 1 ,mem_24g_mode_b_s_switch 
+340b 207a0000 rtn blank 
+340c 6fe0c642 fetch 1 ,mem_24g_bind_device_living 
+340d 2fe00603 compare 3 ,pdata ,3 
+340e 2020b421 branch g24_mode_b_s_switch_exit ,true 
+340f 20403224 call g24_timer_check 
+3410 24740000 nrtn user 
+3411 6fe1463d fetch 2 ,mem_24g_mode_b_s_switch_cnt 
+3412 1fe0fe01 increase 1 ,pdata 
+3413 67e1463d store 2 ,mem_24g_mode_b_s_switch_cnt 
+3414 d84007d0 arg 0x7d0 ,temp 
+3415 98467c00 isub temp ,null 
+3416 20213421 branch g24_mode_b_s_switch_exit ,positive 
+3417 6fe0c640 fetch 1 ,mem_24g_b_s_time_slice 
+3418 1fe0fe01 increase 1 ,pdata 
+3419 1fe17e01 and_into 1 ,pdata 
+341a 67e0c640 store 1 ,mem_24g_b_s_time_slice 
+341b c00034ea beq 0 ,g24_search_mode_enable 
+341c c000b2da beq 1 ,g24_bind_mode_enable 
+341d 20600000 rtn 
+
+g24_mode_switch_search:
+341e 6fe0c639 fetch 1 ,mem_24g_bind_mode_continue 
+341f 243a32da nbranch g24_bind_mode_enable ,blank 
+3420 202034ea branch g24_search_mode_enable 
+
+g24_mode_b_s_switch_exit:
+3421 70463f01 jam 1 ,mem_24g_mode_b_s_switch_exit 
+3422 202034ea branch g24_search_mode_enable 
+
+g24_mode_b_s_switch_stop:
+3423 70463b00 jam 0 ,mem_24g_mode_b_s_switch 
+3424 20600000 rtn 
+
+g24_mode_b_s_switch_start:
+3425 70463b01 jam 1 ,mem_24g_mode_b_s_switch 
+3426 20600000 rtn 
+
+g24_work_init:
+3427 475b4036 bpatchx patch36_6 ,mem_patch36 
+3428 6fe0c62c fetch 1 ,mem_24g_mode_init 
+3429 c3800000 rtnbit1 dongle_work 
+342a 79207e00 set1 dongle_work ,pdata 
+342b 67e0c62c store 1 ,mem_24g_mode_init 
+342c 6fe0c63a fetch 1 ,mem_tx_power_temp 
+342d 67e0c141 store 1 ,mem_tx_power 
+342e 70462800 jam 0 ,mem_24g_ackpayload_enable 
+342f 7008eb00 jam 0 ,mem_usb_tx_enable 
+3430 70462101 jam 1 ,mem_24g_abort_packet 
+3431 70459500 jam 0 ,mem_24g_pid 
+3432 6fe24508 fetch 4 ,mem_24g_lap 
+3433 20403215 call g24_update_addr_and_synccrc8 
+3434 20403201 call g24_ch 
+3435 20203397 branch g24_rx_interrupt_clear 
+
+g24_switch_work_mode:
+3436 70462800 jam 0 ,mem_24g_ackpayload_enable 
+
+g24_work_mode_enable:
+3437 70462d00 jam dongle_work ,mem_24g_work_mode 
+3438 70462c00 jam clear_init ,mem_24g_mode_init 
+3439 20600000 rtn 
+
+g24_work_mode_start:
+343a 6fe0c62d fetch 1 ,mem_24g_work_mode 
+343b c1800000 rtnne dongle_work 
+343c 20403427 call g24_work_init 
+343d 204034ee call g24_ch_process 
+343e 20203384 branch g24_receive_packet_start 
+
+g24_bind_mode_auto:
+343f 475bc036 bpatchx patch36_7 ,mem_patch36 
+3440 6fe0c62d fetch 1 ,mem_24g_work_mode 
+3441 c1808000 rtnne dongle_bind 
+3442 204032dd call g24_bind_init 
+3443 204032ec call g24_bind_data_process 
+3444 6fe0c627 fetch 1 ,mem_24g_pair_mode 
+3445 247a0000 nrtn blank 
+3446 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
+3447 207a0000 rtn blank 
+3448 70462a00 jam 0 ,mem_24g_mode_switch 
+3449 20403436 call g24_switch_work_mode 
+344a 204033d4 call g24_enable_nodata_timer 
+344b 20203237 branch g24_timer_init 
+
+g24_search_mode_init:
+344c 6fe0c62c fetch 1 ,mem_24g_mode_init 
+344d c3838000 rtnbit1 dongle_search 
+344e 79207e07 set1 dongle_search ,pdata 
+344f 67e0c62c store 1 ,mem_24g_mode_init 
+3450 6fe0c63a fetch 1 ,mem_tx_power_temp 
+3451 67e0c141 store 1 ,mem_tx_power 
+3452 70462e00 jam 0 ,mem_24g_time_slice 
+3453 70462801 jam 1 ,mem_24g_ackpayload_enable 
+3454 58000000 setarg 0 
+3455 67e1c654 store 3 ,mem_rssi_noise_self_index 
+3456 67e3c631 store 7 ,mem_24g_self_config_ch_once 
+3457 204034dc call g24_receiver_addr_check 
+3458 24628000 nrtn zero 
+3459 6fe0c5a5 fetch 1 ,mem_24g_current_ch_number 
+345a 67e0c630 store 1 ,mem_24g_self_ch_number 
+345b 6fe0c5a4 fetch 1 ,mem_24g_ch 
+345c 67e0c62f store 1 ,mem_24g_self_last_ch 
+345d 20600000 rtn 
+
+g24_search_mode_auto:
+345e 475c4037 bpatchx patch37_0 ,mem_patch37 
+345f 6fe0c62d fetch 1 ,mem_24g_work_mode 
+3460 c1838000 rtnne dongle_search 
+3461 2040344c call g24_search_mode_init 
+3462 20403484 call g24_auto_addr_ch_search 
+3463 204033c7 call g24_receive_transmit_ack 
+3464 2437b397 nbranch g24_rx_interrupt_clear ,user3 
+3465 204034dc call g24_receiver_addr_check 
+3466 2042b386 call g24_receive_packet_parse ,zero 
+3467 6fe0c621 fetch 1 ,mem_24g_abort_packet 
+3468 205a3423 call g24_mode_b_s_switch_stop ,blank 
+3469 70462d00 jam dongle_work ,mem_24g_work_mode 
+346a 6fe0c62c fetch 1 ,mem_24g_mode_init 
+346b 79207e00 set1 dongle_work ,pdata 
+346c 67e0c62c store 1 ,mem_24g_mode_init 
+346d 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
+346e 1fe67c02 sub pdata ,2 ,null 
+346f 2442b4da ncall g24_ackpayload_disable ,zero 
+3470 20403397 call g24_rx_interrupt_clear 
+3471 204033d4 call g24_enable_nodata_timer 
+3472 204034dc call g24_receiver_addr_check 
+3473 2022b47d branch g24_self_ch_num_reinit ,zero 
+3474 6fe245a6 fetch 4 ,mem_24g_addr 
+3475 684a464b fetcht 4 ,mem_24g_device2_addr 
+3476 98467c00 isub temp ,null 
+3477 2022b480 branch g24_device2_ch_num_reinit ,zero 
+3478 6fe245a6 fetch 4 ,mem_24g_addr 
+3479 684a4647 fetcht 4 ,mem_24g_device1_addr 
+347a 98467c00 isub temp ,null 
+347b 2022b482 branch g24_device1_ch_num_reinit ,zero 
+347c 20600000 rtn 
+
+g24_self_ch_num_reinit:
+347d 6fe0c630 fetch 1 ,mem_24g_self_ch_number 
+
+g24_current_ch_num_reinit:
+347e 67e0c5a5 store 1 ,mem_24g_current_ch_number 
+347f 20600000 rtn 
+
+g24_device2_ch_num_reinit:
+3480 6fe0c636 fetch 1 ,mem_24g_device2_ch_number 
+3481 2020347e branch g24_current_ch_num_reinit 
+
+g24_device1_ch_num_reinit:
+3482 6fe0c633 fetch 1 ,mem_24g_device1_ch_number 
+3483 2020347e branch g24_current_ch_num_reinit 
+
+g24_auto_addr_ch_search:
+3484 475cc037 bpatchx patch37_1 ,mem_patch37 
+3485 6fe0c62e fetch 1 ,mem_24g_time_slice 
+3486 1fe0fe01 increase 1 ,pdata 
+3487 1fe17e03 and_into 3 ,pdata 
+3488 67e0c62e store 1 ,mem_24g_time_slice 
+3489 c00034a8 beq 0 ,g24_auto_bind_config_device2 
+348a c000b4c2 beq 1 ,g24_auto_bind_config_self 
+348b c001348e beq 2 ,g24_auto_bind_config_device1 
+348c c001b4c2 beq 3 ,g24_auto_bind_config_self 
+348d 20600000 rtn 
+
+g24_auto_bind_config_device1:
+348e 2040330d call g24_bind_dvc1_payload_cfg 
+348f 6fe24647 fetch 4 ,mem_24g_device1_addr 
+3490 203a3484 branch g24_auto_addr_ch_search ,blank 
+3491 20403215 call g24_update_addr_and_synccrc8 
+3492 6fe0c634 fetch 1 ,mem_24g_device1_config_ch_once 
+3493 205a34a3 call g24_device1_config_ch_once ,blank 
+3494 6fe0c632 fetch 1 ,mem_24g_device1_last_ch 
+3495 67e0c5a4 store 1 ,mem_24g_ch 
+3496 6848c655 fetcht 1 ,mem_rssi_noise_device1_index 
+3497 6a21465b fetchr rega ,2 ,mem_rssi_noise_device1_buffer_ptr 
+3498 20403583 call rssi_store 
+3499 6048c655 storet 1 ,mem_rssi_noise_device1_index 
+349a 2040358c call rssi_average 
+349b 6048c652 storet 1 ,mem_rssi_noise_device1_avg 
+349c 18467c50 sub temp ,rssi_thresh_noise ,null 
+349d 24610000 nrtn positive 
+349e 6848c633 fetcht 1 ,mem_24g_device1_ch_number 
+349f 20403206 call g24_ch_map_size 
+34a0 6048c633 storet 1 ,mem_24g_device1_ch_number 
+34a1 67e0c632 store 1 ,mem_24g_device1_last_ch 
+34a2 20600000 rtn 
+
+g24_device1_config_ch_once:
+34a3 70463401 jam 1 ,mem_24g_device1_config_ch_once 
+34a4 d8400000 arg 0 ,temp 
+34a5 2040320b call g24_ch_calc 
+34a6 67e0c632 store 1 ,mem_24g_device1_last_ch 
+34a7 20600000 rtn 
+
+g24_auto_bind_config_device2:
+34a8 20403315 call g24_bind_dvc2_payload_cfg 
+34a9 6fe2464b fetch 4 ,mem_24g_device2_addr 
+34aa 203a3484 branch g24_auto_addr_ch_search ,blank 
+34ab 20403215 call g24_update_addr_and_synccrc8 
+34ac 6fe0c637 fetch 1 ,mem_24g_device2_config_ch_once 
+34ad 205a34bd call g24_device2_config_ch_once ,blank 
+34ae 6fe0c635 fetch 1 ,mem_24g_device2_last_ch 
+34af 67e0c5a4 store 1 ,mem_24g_ch 
+34b0 6848c656 fetcht 1 ,mem_rssi_noise_device2_index 
+34b1 6a21465d fetchr rega ,2 ,mem_rssi_noise_device2_buffer_ptr 
+34b2 20403583 call rssi_store 
+34b3 6048c656 storet 1 ,mem_rssi_noise_device2_index 
+34b4 2040358c call rssi_average 
+34b5 6048c653 storet 1 ,mem_rssi_noise_device2_avg 
+34b6 18467c50 sub temp ,rssi_thresh_noise ,null 
+34b7 24610000 nrtn positive 
+34b8 6848c636 fetcht 1 ,mem_24g_device2_ch_number 
+34b9 20403206 call g24_ch_map_size 
+34ba 6048c636 storet 1 ,mem_24g_device2_ch_number 
+34bb 67e0c635 store 1 ,mem_24g_device2_last_ch 
+34bc 20600000 rtn 
+
+g24_device2_config_ch_once:
+34bd 70463701 jam 1 ,mem_24g_device2_config_ch_once 
+34be d8400000 arg 0 ,temp 
+34bf 2040320b call g24_ch_calc 
+34c0 67e0c635 store 1 ,mem_24g_device2_last_ch 
+34c1 20600000 rtn 
+
+g24_auto_bind_config_self:
+34c2 2040330d call g24_bind_dvc1_payload_cfg 
+34c3 6fe24508 fetch 4 ,mem_24g_lap 
+34c4 20403215 call g24_update_addr_and_synccrc8 
+34c5 6fe0c631 fetch 1 ,mem_24g_self_config_ch_once 
+34c6 205a34d6 call g24_self_config_ch_once ,blank 
+34c7 6fe0c62f fetch 1 ,mem_24g_self_last_ch 
+34c8 67e0c5a4 store 1 ,mem_24g_ch 
+34c9 6848c654 fetcht 1 ,mem_rssi_noise_self_index 
+34ca 6a214659 fetchr rega ,2 ,mem_rssi_noise_self_buffer_ptr 
+34cb 20403583 call rssi_store 
+34cc 6048c654 storet 1 ,mem_rssi_noise_self_index 
+34cd 2040358c call rssi_average 
+34ce 6048c651 storet 1 ,mem_rssi_noise_self_avg 
+34cf 18467c50 sub temp ,rssi_thresh_noise ,null 
+34d0 24610000 nrtn positive 
+34d1 6848c630 fetcht 1 ,mem_24g_self_ch_number 
+34d2 20403206 call g24_ch_map_size 
+34d3 6048c630 storet 1 ,mem_24g_self_ch_number 
+34d4 67e0c62f store 1 ,mem_24g_self_last_ch 
+34d5 20600000 rtn 
+
+g24_self_config_ch_once:
+34d6 70463101 jam 1 ,mem_24g_self_config_ch_once 
+34d7 6fe0c62f fetch 1 ,mem_24g_self_last_ch 
+34d8 67e0c5a4 store 1 ,mem_24g_ch 
+34d9 20600000 rtn 
+
+g24_ackpayload_disable:
+34da 70462800 jam 0 ,mem_24g_ackpayload_enable 
+34db 20600000 rtn 
+
+g24_receiver_addr_check:
+34dc 6fe245a6 fetch 4 ,mem_24g_addr 
+34dd 684a4508 fetcht 4 ,mem_24g_lap 
+34de 98467c00 isub temp ,null 
+34df 20600000 rtn 
+
+g24_nodata_process:
+34e0 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
+34e1 c1010000 rtneq 2 
+34e2 6fe0c62b fetch 1 ,mem_24g_nodata_timer_enable 
+34e3 207a0000 rtn blank 
+34e4 d8e00008 arg g24_timer_nodata ,queue 
+34e5 20407cf1 call timer_check 
+34e6 247a0000 nrtn blank 
+34e7 70462b00 jam 0 ,mem_24g_nodata_timer_enable 
+34e8 70463900 jam 0 ,mem_24g_bind_mode_continue 
+34e9 204033f5 call g24_mode_b_s_switch_init 
+
+g24_search_mode_enable:
+34ea 475d4037 bpatchx patch37_2 ,mem_patch37 
+34eb 70462d07 jam dongle_search ,mem_24g_work_mode 
+34ec 70462c00 jam clear_init ,mem_24g_mode_init 
+34ed 20203397 branch g24_rx_interrupt_clear 
+
+g24_ch_process:
+34ee 475dc037 bpatchx patch37_3 ,mem_patch37 
+34ef 6fe0c621 fetch 1 ,mem_24g_abort_packet 
+34f0 c000b5c2 beq 1 ,rssi_noise_monitor 
+34f1 6fe0c629 fetch 1 ,mem_24g_hop_packet 
+34f2 c000b502 beq 1 ,g24_ch_receive_hop_pac 
+34f3 684a4622 fetcht 4 ,mem_24g_hop_btclk 
+34f4 1c427e00 copy clkn_bt ,pdata 
+34f5 98467c00 isub temp ,null 
+34f6 24413234 ncall g24_timer_timeout ,positive 
+34f7 1fe22400 copy pdata ,regb 
+34f8 6fe24622 fetch 4 ,mem_24g_hop_btclk 
+34f9 6848c626 fetcht 1 ,mem_24g_hop_interval 
+34fa 98408400 iadd temp ,temp 
+34fb 1a427e00 copy regb ,pdata 
+34fc 98467c00 isub temp ,null 
+34fd 24610000 nrtn positive 
+34fe 793ffe1c set0 28 ,pdata 
+34ff 67e24622 store 4 ,mem_24g_hop_btclk 
+3500 70462101 jam 1 ,mem_24g_abort_packet 
+3501 20203201 branch g24_ch 
+
+g24_ch_receive_hop_pac:
+3502 70462900 jam 0 ,mem_24g_hop_packet 
+3503 20203201 branch g24_ch 
+
+g24_ch_timer_reinit:
+3504 1c427e00 copy clkn_bt ,pdata 
+3505 67e24622 store 4 ,mem_24g_hop_btclk 
+3506 20600000 rtn 
+
+g24_reconn_timeout_timer:
+3507 da6045f5 arg mem_24g_reconn_timeout ,regc 
+3508 da403653 arg g24_stop_24g_mode ,regb 
+3509 2020375c branch timer_single_step_2b 
+
+g24_reconn_start:
+350a 475e4037 bpatchx patch37_4 ,mem_patch37 
+350b 79200026 set1 mark_24g ,mark 
+350c 6fe0c613 fetch 1 ,mem_24g_conn_sm 
+350d 793ffe01 set0 state_24g_pair ,pdata 
+350e 79207e02 set1 state_24g_reconn ,pdata 
+350f 67e0c613 store 1 ,mem_24g_conn_sm 
+3510 6fe0c5fa fetch 1 ,mem_24g_fast_conn_enable 
+3511 203a351f branch g24_reconn_receiver_addr ,blank 
+3512 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
+3513 c000b517 beq fast_conn_and_receiver ,g24_reconn_fast_conn 
+3514 c0013517 beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn 
+3515 c001b526 beq receiver_and_3_0_addr ,g24_reconn_device_3_0_addr 
+3516 c0023526 beq pair_and_3_0_addr ,g24_reconn_device_3_0_addr 
+
+g24_reconn_fast_conn:
+3517 6fe0c5e8 fetch 1 ,mem_24g_pair_tx_power 
+3518 67e0c141 store 1 ,mem_tx_power 
+3519 6848c603 fetcht 1 ,mem_24g_fast_conn_temp_ch 
+351a 6048c5a5 storet 1 ,mem_24g_current_ch_number 
+351b 6fe245fb fetch 4 ,mem_24g_fast_conn_addr 
+351c 20403530 call g24_ch_syncword_crc8_init 
+351d 6048c603 storet 1 ,mem_24g_fast_conn_temp_ch 
+351e 20600000 rtn 
+
+g24_reconn_receiver_addr:
+351f 70414103 jam tx_power_3db ,mem_tx_power 
+3520 6848c604 fetcht 1 ,mem_24g_receiver_temp_ch 
+3521 6048c5a5 storet 1 ,mem_24g_current_ch_number 
+3522 6fe245ff fetch 4 ,mem_24g_receiver_addr 
+3523 20403530 call g24_ch_syncword_crc8_init 
+3524 6048c604 storet 1 ,mem_24g_receiver_temp_ch 
+3525 20600000 rtn 
+
+g24_reconn_device_3_0_addr:
+3526 70414103 jam tx_power_3db ,mem_tx_power 
+3527 6848c605 fetcht 1 ,mem_24g_device_temp_ch 
+3528 6048c5a5 storet 1 ,mem_24g_current_ch_number 
+3529 6fe2461b fetch 4 ,mem_24g_device_addr 
+352a 20403530 call g24_ch_syncword_crc8_init 
+352b 6048c605 storet 1 ,mem_24g_device_temp_ch 
+352c 20600000 rtn 
+
+g24_store_receiver_addr:
+352d 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+352e 207a0000 rtn blank 
+352f 67e245ff store 4 ,mem_24g_receiver_addr 
+
+g24_ch_syncword_crc8_init:
+3530 20403215 call g24_update_addr_and_synccrc8 
+3531 20203201 branch g24_ch 
+
+g24_reconn_dispatch:
+3532 475ec037 bpatchx patch37_5 ,mem_patch37 
+3533 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+3534 d84001f8 arg 0x01f8 ,temp 
+3535 98417e00 iand temp ,pdata 
+3536 203a353b branch g24_reconn_dispatch_next ,blank 
+3537 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+3538 1fe0fe01 increase 1 ,pdata 
+3539 67e145f7 store 2 ,mem_24g_reconn_count 
+353a 20600000 rtn 
+
+g24_reconn_dispatch_next:
+353b 20403557 call g24_reconn_data_prep 
+353c 2040362a call g24_transmit_receive_ack 
+353d 242c355e nbranch g24_reconn_device_fail ,sync 
+353e 2437b55e nbranch g24_reconn_device_fail ,user3 
+353f 20403647 call g24_ackpayload_parse 
+3540 6fe0c3cf fetch 1 ,mem_device_option 
+3541 c0044d5d beq dvc_op_mouse ,mouse_g24_reconn_dispatch_set 
+3542 6fe245e3 fetch 4 ,mem_24g_pair_addr 
+3543 684a45a6 fetcht 4 ,mem_24g_addr 
+3544 98467c00 isub temp ,null 
+3545 2022b26f branch g24_pair_start ,zero 
+
+g24_reconn_dispatch_success:
+3546 6fe2461b fetch 4 ,mem_24g_device_addr 
+3547 684a45a6 fetcht 4 ,mem_24g_addr 
+3548 98467c00 isub temp ,null 
+3549 2042b52d call g24_store_receiver_addr ,zero 
+354a 6fe0c613 fetch 1 ,mem_24g_conn_sm 
+354b 793ffe02 set0 state_24g_reconn ,pdata 
+354c 67e0c613 store 1 ,mem_24g_conn_sm 
+354d 58000000 setarg 0 
+354e 67e145ef store 2 ,mem_24g_pair_timeout 
+354f 67e145f7 store 2 ,mem_24g_reconn_count 
+3550 67e145f5 store 2 ,mem_24g_reconn_timeout 
+3551 70064d3c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
+3552 20407819 call ui_ipc_send_event 
+
+g24_txbuf_clear:
+3553 475f4037 bpatchx patch37_6 ,mem_patch37 
+3554 df200020 arg 32 ,loopcnt 
+3555 d8a04530 arg mem_24g_txbuf ,contw 
+3556 20207ca5 branch memset0 
+
+g24_reconn_data_prep:
+3557 704530ff jam datatype_attemp ,mem_24g_txbuf 
+3558 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+3559 67e0c531 store 1 ,mem_24g_txbuf + 1 
+355a 6fe2461b fetch 4 ,mem_24g_device_addr 
+355b 67e24532 store 4 ,mem_24g_txbuf + 2 
+355c 70459f06 jam 6 ,mem_24g_datalen 
+355d 202031c4 branch g24_transmit_prep 
+
+g24_reconn_device_fail:
+355e 475fc037 bpatchx patch37_7 ,mem_patch37 
+355f 6fe0c5fa fetch 1 ,mem_24g_fast_conn_enable 
+3560 203a3201 branch g24_ch ,blank 
+3561 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+3562 1fe0fe01 increase 1 ,pdata 
+3563 67e145f7 store 2 ,mem_24g_reconn_count 
+3564 2feffe09 isolate1 9 ,pdata 
+3565 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
+3566 c000b56b beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+3567 c001356d beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+3568 c001b56f beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+3569 c0023571 beq pair_and_3_0_addr ,g24_reconn_pair_and_3_0 
+356a 2020351f branch g24_reconn_receiver_addr 
+
+g24_reconn_fast_conn_and_receiver:
+356b 2020b51f branch g24_reconn_receiver_addr ,true 
+356c 20203517 branch g24_reconn_fast_conn 
+
+g24_reconn_fast_conn_and_3_0:
+356d 2020b526 branch g24_reconn_device_3_0_addr ,true 
+356e 20203517 branch g24_reconn_fast_conn 
+
+g24_reconn_receiver_and_3_0:
+356f 2020b526 branch g24_reconn_device_3_0_addr ,true 
+3570 2020351f branch g24_reconn_receiver_addr 
+
+g24_reconn_pair_and_3_0:
+3571 2020b526 branch g24_reconn_device_3_0_addr ,true 
+3572 2020327a branch g24_pair_init_param 
+
+g24_data_attemp:
+3573 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+3574 c000b577 beq datatype_device1 ,g24_data_attemp_device1 
+3575 c001357d beq datatype_device2 ,g24_data_attemp_device2 
+3576 20600000 rtn 
+
+g24_data_attemp_device1:
+3577 6fe0c5f5 fetch 1 ,mem_24g_device1_bind_disable 
+3578 247a0000 nrtn blank 
+3579 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
+357a 67e24643 store 4 ,mem_24g_transmitter_addr 
+
+g24_store_device1_addr:
+357b 67e24647 store 4 ,mem_24g_device1_addr 
+357c 20600000 rtn 
+
+g24_data_attemp_device2:
+357d 6fe0c5f6 fetch 1 ,mem_24g_device2_bind_disable 
+357e 247a0000 nrtn blank 
+357f 6fe24603 fetch 4 ,mem_24g_rxdata_temp + 4 
+3580 67e24643 store 4 ,mem_24g_transmitter_addr 
+
+g24_store_device2_addr:
+3581 67e2464b store 4 ,mem_24g_device2_addr 
+3582 20600000 rtn 
+
+rssi_store:
+3583 47604038 bpatchx patch38_0 ,mem_patch38 
+3584 1a227e00 copy rega ,pdata 
+3585 98408a00 iadd temp ,contw 
+3586 6fe08009 fetch 1 ,mem_rssi 
+3587 e7e08005 istore 1 ,contw 
+3588 18408401 increase 1 ,temp 
+3589 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
+358a 98410400 iand temp ,temp 
+358b 20600000 rtn 
+
+rssi_average:
+358c 4760c038 bpatchx patch38_1 ,mem_patch38 
+358d 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
+358e 1fe0fe01 increase 1 ,pdata 
+358f 67e10679 store 2 ,mem_loopcnt 
+3590 1fe27200 copy pdata ,loopcnt 
+3591 1a220c00 copy rega ,contr 
+3592 dfe00000 arg 0 ,pdata 
+
+rssi_average_loop:
+3593 e8408006 ifetcht 1 ,contr 
+3594 9840fe00 iadd temp ,pdata 
+3595 c2003593 loop rssi_average_loop 
+3596 68490679 fetcht 2 ,mem_loopcnt 
+3597 9846fc00 idiv temp 
+3598 20407d64 call wait_div_end 
+3599 18078400 quotient temp 
+359a c6138000 rtnmark1 mark_24g_rxmode 
+359b 18427e00 copy temp ,pdata 
+359c c6930000 rtnmark0 mark_24g 
+359d 204022ec call bcd 
+359e 1fe20400 copy pdata ,temp 
+359f 20600000 rtn 
+
+save_rssi_dec:
+35a0 202022cd branch save_rssi 
+
+rssi_transmitter_buff_init:
+35a1 6fe14607 fetch 2 ,mem_rssi_signal_buf_ptr 
+35a2 202035b5 branch rssi_buff_clear 
+
+rssi_signal:
+35a3 1fe22200 copy pdata ,rega 
+35a4 6848c606 fetcht 1 ,mem_rssi_signal_index 
+35a5 6fe14607 fetch 2 ,mem_rssi_signal_buf_ptr 
+35a6 98408a00 iadd temp ,contw 
+35a7 1a227e00 copy rega ,pdata 
+35a8 e7e08005 istore 1 ,contw 
+35a9 18408401 increase 1 ,temp 
+35aa 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
+35ab 98410400 iand temp ,temp 
+35ac 6048c606 storet 1 ,mem_rssi_signal_index 
+35ad 20600000 rtn 
+
+rssi_receiver_buff_init:
+35ae 6fe14657 fetch 2 ,mem_rssi_noise_buffer_ptr 
+35af 204035b5 call rssi_buff_clear 
+35b0 6fe14659 fetch 2 ,mem_rssi_noise_self_buffer_ptr 
+35b1 204035b5 call rssi_buff_clear 
+35b2 6fe1465b fetch 2 ,mem_rssi_noise_device1_buffer_ptr 
+35b3 204035b5 call rssi_buff_clear 
+35b4 6fe1465d fetch 2 ,mem_rssi_noise_device2_buffer_ptr 
+
+rssi_buff_clear:
+35b5 207a0000 rtn blank 
+35b6 1fe20a00 copy pdata ,contw 
+35b7 6fe0c5e9 fetch 1 ,mem_rssi_buff_index 
+35b8 1fe0fe01 increase 1 ,pdata 
+35b9 1fe27200 copy pdata ,loopcnt 
+35ba 20207ca3 branch clear_mem 
+
+rssi_noise:
+35bb 204035a0 call save_rssi_dec 
+35bc 207a0000 rtn blank 
+35bd 6848c650 fetcht 1 ,mem_rssi_noise_index 
+35be 6a214657 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+35bf 20403583 call rssi_store 
+35c0 6048c650 storet 1 ,mem_rssi_noise_index 
+35c1 20600000 rtn 
+
+rssi_noise_monitor:
+35c2 6a214657 fetchr rega ,2 ,mem_rssi_noise_buffer_ptr 
+35c3 2040358c call rssi_average 
+35c4 6048c64f storet 1 ,mem_rssi_noise_avg 
+35c5 18467c50 sub temp ,rssi_thresh_noise ,null 
+35c6 24610000 nrtn positive 
+35c7 20203201 branch g24_ch 
+
+g24_transmit_init:
+35c8 6fe24508 fetch 4 ,mem_24g_lap 
+35c9 67e2461b store 4 ,mem_24g_device_addr 
+35ca 202035a1 branch rssi_transmitter_buff_init 
+
+g24_interval_param_4ms:
+35cb 58002fb2 setarg g24_4ms_interval_param 
+35cc 67e1c61f store 3 ,mem_24g_short_sleep_set 
+35cd 58100c0c setarg 0x100c0c 
+35ce 67e1c5be store 3 ,mem_24g_interval 
+35cf 5800bb80 setarg 0x00bb80 
+35d0 67e1c622 store 3 ,mem_24g_long_sleep_set 
+35d1 70463805 jam 5 ,mem_24g_fast_hop_count 
+35d2 20600000 rtn 
+
+g24_interval_param_8ms:
+35d3 5800f80c setarg g24_8ms_interval_param 
+35d4 67e1c61f store 3 ,mem_24g_short_sleep_set 
+35d5 581c1919 setarg 0x1c1919 
+35d6 67e1c5be store 3 ,mem_24g_interval 
+35d7 58017700 setarg 0x017700 
+35d8 67e1c622 store 3 ,mem_24g_long_sleep_set 
+35d9 7046380b jam 11 ,mem_24g_fast_hop_count 
+35da 20600000 rtn 
+
+g24_transmit_dispatch:
+35db 6fe0c613 fetch 1 ,mem_24g_conn_sm 
+35dc c280b281 bbit1 state_24g_pair ,g24_pair_dispatch 
+35dd c2813532 bbit1 state_24g_reconn ,g24_reconn_dispatch 
+35de 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
+35df c000b6a0 beq g24_tx_timer_int_enable ,g24_transmit_by_interrupt 
+
+g24_transmit_no_interrupt:
+35e0 47614038 bpatchx patch38_2 ,mem_patch38 
+35e1 204035fd call g24_txdata_prep 
+35e2 2434367e nbranch g24_nodata_transmit ,user 
+
+g24_transmit_start:
+35e3 4761c038 bpatchx patch38_3 ,mem_patch38 
+35e4 20403612 call g24_transmit_process 
+35e5 204036c8 call power_ctrl_start 
+35e6 6fe0c3cf fetch 1 ,mem_device_option 
+35e7 c0045923 beq dvc_op_mouse ,mouse_24g_transmit_start 
+
+g24_transmit_start_next:
+35e8 6fe44622 fetch 8 ,mem_24g_long_sleep_set 
+35e9 67e445c6 store 8 ,mem_24g_enter_hibernate 
+35ea 6fe14634 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+35eb 67e14636 store 2 ,mem_24g_long_sleep_param_update_timer 
+35ec 6fe1460f fetch 2 ,mem_cb_24g_transmit_short_sleep 
+35ed 20207d7b branch callback_func 
+
+g24_short_sleep:
+35ee 47624038 bpatchx patch38_4 ,mem_patch38 
+35ef 20403694 call g24_lpm_wait 
+35f0 24740000 nrtn user 
+35f1 2040369e call g24_setgpio_lpm_before 
+35f2 20407de6 call clear_wake 
+35f3 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
+35f4 202035fa branch g24_long_seep2 
+
+g24_long_sleep:
+35f5 4762c038 bpatchx patch38_5 ,mem_patch38 
+35f6 20403694 call g24_lpm_wait 
+35f7 24740000 nrtn user 
+35f8 2040369e call g24_setgpio_lpm_before 
+35f9 6fe445c6 fetch 8 ,mem_24g_enter_hibernate 
+
+g24_long_seep2:
+35fa 20407d27 call clk2lpo 
+35fb 604a40a9 storet 4 ,mem_sleep_counter 
+35fc 20202406 branch lpm_sleep 
+
+g24_txdata_prep:
+35fd 20403600 call g24_package_data 
+35fe 24740000 nrtn user 
+35ff 202031c4 branch g24_transmit_prep 
+
+g24_package_data:
+3600 6fe14609 fetch 2 ,mem_cb_24g_transmit_data 
+3601 20407d7b call callback_func 
+3602 20343606 branch g24_accumulate_data ,user 
+3603 6fe3c531 fetch 7 ,mem_24g_txbuf + 1 
+3604 207a0000 rtn blank 
+3605 20207dbc branch enable_user 
+
+g24_accumulate_data:
+3606 70461900 jam 0 ,mem_24g_abort_pac 
+3607 1a20fe01 add rega ,1 ,pdata 
+3608 67e0c59f store 1 ,mem_24g_datalen 
+3609 2040360e call g24_transmit_rf_ctrl_clear 
+360a 67e0c530 store 1 ,mem_24g_txbuf 
+360b 1a420c00 copy regb ,contr 
+360c 1a227200 copy rega ,loopcnt 
+360d 20207cdc branch memcpy 
+
+g24_transmit_rf_ctrl_clear:
+360e 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+360f 1fe17e07 and_into bits_data ,pdata 
+3610 67e0c5a0 store 1 ,mem_24g_data_type 
+3611 20600000 rtn 
+
+g24_transmit_process:
+3612 58000000 setarg 0 
+3613 67e0c618 store 1 ,mem_24g_retry 
+3614 67e14639 store 2 ,mem_24g_retransmit 
+
+g24_transmit_loop:
+3615 47634038 bpatchx patch38_6 ,mem_patch38 
+3616 2040362a call g24_transmit_receive_ack 
+3617 6fe0c596 fetch 1 ,mem_24g_no_ack 
+3618 c000b61f beq no_ack_24g ,g24_transmit_no_ack 
+3619 242c3638 nbranch g24_retransmit ,sync 
+361a 2437b638 nbranch g24_retransmit ,user3 
+361b 20403647 call g24_ackpayload_parse 
+361c 6fe0c3cf fetch 1 ,mem_device_option 
+361d 1fe67c08 sub pdata ,dvc_op_mouse ,null 
+361e 2042db33 call mouse_24g_transmit_callback ,zero 
+
+g24_transmit_no_ack:
+361f 204036fc call power_ctrl_pac_succ_incrs 
+
+g24_transmit_next_packet:
+3620 20403553 call g24_txbuf_clear 
+3621 6fe0c595 fetch 1 ,mem_24g_pid 
+3622 1fe0fe01 increase 1 ,pdata 
+3623 67e0c595 store 1 ,mem_24g_pid 
+3624 2040366d call g24_hop_enable_packet 
+
+g24_transmit_abandon:
+3625 4763c038 bpatchx patch38_7 ,mem_patch38 
+3626 58000000 setarg 0 
+3627 67e0c614 store 1 ,mem_24g_ensure 
+3628 67e14615 store 2 ,mem_24g_txfail_cnt 
+3629 20600000 rtn 
+
+g24_transmit_receive_ack:
+362a 47644039 bpatchx patch39_0 ,mem_patch39 
+362b 7857fc00 disable user3 
+362c 20403174 call g24_transmit 
+362d 6fe0c596 fetch 1 ,mem_24g_no_ack 
+362e c000b162 beq no_ack_24g ,g24_end_of_packet 
+362f 18002a00 force 0 ,radio_ctrl 
+3630 6fe245a6 fetch 4 ,mem_24g_addr 
+3631 98001200 iforce access 
+3632 68488008 fetcht 1 ,mem_last_freq 
+3633 20402173 call set_freq_rx 
+3634 204021aa call rf_rx_enable 
+3635 20403100 call g24_receive_rxon 
+3636 2057b162 call g24_end_of_packet ,user3 
+3637 20600000 rtn 
+
+g24_retransmit:
+3638 4764c039 bpatchx patch39_1 ,mem_patch39 
+3639 6fe0c3cf fetch 1 ,mem_device_option 
+363a c00459df beq dvc_op_mouse ,mouse_g24_retransmit 
+
+g24_retransmit0:
+363b 6fe0c619 fetch 1 ,mem_24g_abort_pac 
+363c 247a0000 nrtn blank 
+363d 6fe14615 fetch 2 ,mem_24g_txfail_cnt 
+363e 1fe0fe01 increase 1 ,pdata 
+363f 67e14615 store 2 ,mem_24g_txfail_cnt 
+3640 6fe0c616 fetch 1 ,mem_24g_txfail_cnt + 1 
+3641 c282364f bbit1 4 ,g24_tx_attempt_fail 
+3642 20403655 call g24_transmit_hop_process 
+3643 6fe14639 fetch 2 ,mem_24g_retransmit 
+3644 1fe0fe01 increase 1 ,pdata 
+3645 67e14639 store 2 ,mem_24g_retransmit 
+3646 20203615 branch g24_transmit_loop 
+
+g24_ackpayload_parse:
+3647 47654039 bpatchx patch39_2 ,mem_patch39 
+3648 204031f3 call g24_read_len_pid_crc 
+3649 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
+364a 207a0000 rtn blank 
+364b 98007200 iforce loopcnt 
+364c d8c04510 arg mem_24g_rxbuf + 2 ,contr 
+364d d8a04574 arg mem_24g_rxpayload ,contw 
+364e 20207cdc branch memcpy 
+
+g24_tx_attempt_fail:
+364f 4765c039 bpatchx patch39_3 ,mem_patch39 
+3650 58000000 setarg 0 
+3651 67e14615 store 2 ,mem_24g_txfail_cnt 
+3652 70461701 jam 1 ,mem_24g_attempt_fail_flag 
+
+g24_stop_24g_mode:
+3653 70064d3a jam bt_evt_24g_attempt_fail ,mem_fifo_temp 
+3654 20207819 branch ui_ipc_send_event 
+
+g24_transmit_hop_process:
+3655 47664039 bpatchx patch39_4 ,mem_patch39 
+3656 6fe0c3cf fetch 1 ,mem_device_option 
+3657 c0044d70 beq dvc_op_mouse ,mouse_g24_transmit_hop_process 
+
+g24_transmit_hop_process_next:
+3658 6848c618 fetcht 1 ,mem_24g_retry 
+3659 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
+365a 98467c00 isub temp ,null 
+365b 24213675 nbranch g24_tx_fast_hop ,positive 
+365c 18408401 increase 1 ,temp 
+365d 6048c618 storet 1 ,mem_24g_retry 
+365e 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
+365f c002b664 beq 5 ,g24_transmit_hop_process_4ms 
+3660 6fe0c618 fetch 1 ,mem_24g_retry 
+3661 c003366f beq 6 ,g24_hop_ch_disable 
+3662 c006366f beq 12 ,g24_hop_ch_disable 
+3663 20600000 rtn 
+
+g24_transmit_hop_process_4ms:
+3664 6fe0c618 fetch 1 ,mem_24g_retry 
+3665 c001b66f beq 3 ,g24_hop_ch_disable 
+3666 c003366f beq 6 ,g24_hop_ch_disable 
+3667 20600000 rtn 
+
+g24_hop_ch_enable:
+
+g24_txpayload_type_update:
+3668 c517b66b bmark1 mark_ble_lr ,g24_lr_type_update 
+3669 67e0c551 store 1 ,mem_24g_txpayload + offset_data_type 
+366a 20600000 rtn 
+
+g24_lr_type_update:
+366b 67e0c552 store 1 ,mem_24g_txpayload + offset_lr_data_type 
+366c 20600000 rtn 
+
+g24_hop_enable_packet:
+366d 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+366e c4020000 rtnbit0 bit_hop 
+
+g24_hop_ch_disable:
+366f 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+3670 793ffe04 set0 bit_hop ,pdata 
+3671 67e0c5a0 store 1 ,mem_24g_data_type 
+3672 20403668 call g24_txpayload_type_update 
+3673 20403700 call power_ctrl_pac_succ_decrs 
+3674 20203201 branch g24_ch 
+
+g24_tx_fast_hop:
+3675 6fe245a6 fetch 4 ,mem_24g_addr 
+3676 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
+3677 98467c00 isub temp ,null 
+3678 2022b201 branch g24_ch ,zero 
+3679 204036ee call power_ctrl_txpower_incrs 
+367a 20403700 call power_ctrl_pac_succ_decrs 
+367b 20203201 branch g24_ch 
+
+g24_search_receiver:
+367c 6fe1460b fetch 2 ,mem_cb_24g_search_receiver 
+367d 20207d7b branch callback_func 
+
+g24_nodata_transmit:
+367e 6fe0c619 fetch 1 ,mem_24g_abort_pac 
+367f 205a3685 call g24_send_abort_packet ,blank 
+3680 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
+3681 c1008000 rtneq g24_tx_timer_int_enable 
+3682 2040367c call g24_search_receiver 
+3683 6fe14611 fetch 2 ,mem_cb_24g_transmit_long_sleep 
+3684 20207d7b branch callback_func 
+
+g24_send_abort_packet:
+3685 4766c039 bpatchx patch39_5 ,mem_patch39 
+3686 70461901 jam 1 ,mem_24g_abort_pac 
+3687 7045a001 jam type_ms ,mem_24g_data_type 
+3688 2040360e call g24_transmit_rf_ctrl_clear 
+3689 67e0c530 store 1 ,mem_24g_txbuf 
+368a 58000000 setarg 0 
+368b 67e3c531 store 7 ,mem_24g_txbuf + 1 
+368c 6fe2461b fetch 4 ,mem_24g_device_addr 
+368d 67e24538 store 4 ,mem_24g_txbuf + 8 
+368e 70459f0c jam 12 ,mem_24g_datalen 
+368f 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+3690 79207e03 set1 bit_abort ,pdata 
+3691 67e0c5a0 store 1 ,mem_24g_data_type 
+3692 204031c4 call g24_transmit_prep 
+3693 202035e3 branch g24_transmit_start 
+
+g24_lpm_wait:
+3694 47674039 bpatchx patch39_6 ,mem_patch39 
+3695 78347c00 enable user 
+3696 204023f0 call lpo_calibration 
+3697 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+3698 203a7dbe branch disable_user ,blank 
+3699 6fe0c094 fetch 1 ,mem_lpm_mode 
+369a 203a7dbe branch disable_user ,blank 
+369b 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
+369c c000fdbe beq g24_tx_timer_int_enable ,disable_user 
+369d 20600000 rtn 
+
+g24_setgpio_lpm_before:
+369e 6fe1460d fetch 2 ,mem_cb_24g_lpm_before 
+369f 20207d7b branch callback_func 
+
+g24_transmit_by_interrupt:
+36a0 20403224 call g24_timer_check 
+36a1 24740000 nrtn user 
+36a2 204036b5 call g24_interval_calibrate 
+36a3 6fe14630 fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36a4 1fe0fe01 increase 1 ,pdata 
+36a5 67e14630 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36a6 68494632 fetcht 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+36a7 98467c00 isub temp ,null 
+36a8 2042b6aa call g24_transmit_by_interrupt_exit ,zero 
+36a9 202035e0 branch g24_transmit_no_interrupt 
+
+g24_transmit_by_interrupt_exit:
+36aa 70462f00 jam g24_tx_timer_int_disable ,mem_24g_transmit_by_interrupt 
+36ab 58000000 setarg 0 
+36ac 67e14630 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36ad 58000064 setarg 100 
+36ae 67e14632 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+
+g24_interval_min:
+36af 70462e00 jam 0 ,mem_24g_pac_index 
+36b0 6fe0c5bf fetch 1 ,mem_24g_interval_min 
+
+g24_interval_store:
+36b1 67e0c5be store 1 ,mem_24g_interval 
+36b2 20600000 rtn 
+
+g24_interval_max:
+36b3 6fe0c5c0 fetch 1 ,mem_24g_interval_max 
+36b4 202036b1 branch g24_interval_store 
+
+g24_interval_calibrate:
+36b5 6fe0c62e fetch 1 ,mem_24g_pac_index 
+36b6 1fe0fe01 increase 1 ,pdata 
+36b7 67e0c62e store 1 ,mem_24g_pac_index 
+36b8 c00236b3 beq 4 ,g24_interval_max 
+36b9 c002b6af beq 5 ,g24_interval_min 
+36ba 20600000 rtn 
+
+g24_transmit_by_interrupt_enable:
+36bb 70462f01 jam g24_tx_timer_int_enable ,mem_24g_transmit_by_interrupt 
+36bc 58000000 setarg 0 
+36bd 67e14630 store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+36be 20600000 rtn 
+
+g24_factory_check:
+36bf df200002 arg 2 ,loopcnt 
+36c0 d8c045a6 arg mem_24g_addr ,contr 
+
+pdata_0xff_check:
+36c1 20407dbc call enable_user 
+36c2 5800ffff setarg 0xffff 
+
+pdata_0xff_check_loop:
+36c3 e8410006 ifetcht 2 ,contr 
+36c4 98467c00 isub temp ,null 
+36c5 2442fdbe ncall disable_user ,zero 
+36c6 c20036c3 loop pdata_0xff_check_loop 
+36c7 20600000 rtn 
+
+power_ctrl_start:
+36c8 4767c039 bpatchx patch39_7 ,mem_patch39 
+36c9 6fe0c44e fetch 1 ,mem_power_ctrl_disable 
+36ca 247a0000 nrtn blank 
+36cb 6fe14500 fetch 2 ,mem_ui_state_map 
+36cc c3858000 rtnbit1 ui_state_ble_adv 
+36cd 6a214607 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+36ce 2040358c call rssi_average 
+36cf 6048c63b storet 1 ,mem_rssi_avg_received 
+36d0 6fe0c640 fetch 1 ,mem_rssi_dis_max_24g 
+36d1 c51336d3 bmark1 mark_24g ,power_ctrl_start_next 
+36d2 6fe0c643 fetch 1 ,mem_rssi_dis_max_ble 
+
+power_ctrl_start_next:
+36d3 98467c00 isub temp ,null 
+36d4 242136ed nbranch power_ctrl_txpower_incrs_force ,positive 
+36d5 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+36d6 1fe67c02 sub pdata ,2 ,null 
+36d7 242136db nbranch power_ctrl_txpower_decrs_check ,positive 
+36d8 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+36d9 c00036ee beq 0 ,power_ctrl_txpower_incrs 
+36da 20600000 rtn 
+
+power_ctrl_txpower_decrs_check:
+36db 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+36dc 6848c63e fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+36dd 98467c00 isub temp ,null 
+36de 24628000 nrtn zero 
+36df 70463d00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+power_ctrl_txpower_decrs:
+36e0 6848c63b fetcht 1 ,mem_rssi_avg_received 
+36e1 6fe0c63f fetch 1 ,mem_rssi_dis_min_24g 
+36e2 c51336e4 bmark1 mark_24g ,power_ctrl_txpower_decrs_next 
+36e3 6fe0c642 fetch 1 ,mem_rssi_dis_min_ble 
+
+power_ctrl_txpower_decrs_next:
+36e4 98467c00 isub temp ,null 
+36e5 24610000 nrtn positive 
+36e6 6fe0c63c fetch 1 ,mem_power_ctrl_level 
+36e7 c00036fa beq 0 ,power_ctrl_decrs_level0 
+36e8 1fe0ffff increase -1 ,pdata 
+36e9 67e0c63c store 1 ,mem_power_ctrl_level 
+36ea c00136f6 beq 2 ,power_ctrl_decrs_level2 
+36eb c000b6f8 beq 1 ,power_ctrl_decrs_level1 
+36ec 202036fa branch power_ctrl_decrs_level0 
+
+power_ctrl_txpower_incrs_force:
+36ed 70463d00 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+power_ctrl_txpower_incrs:
+36ee 6fe0c63c fetch 1 ,mem_power_ctrl_level 
+36ef c001b6f4 beq 3 ,power_ctrl_incrs_level3 
+36f0 1fe0fe01 increase 1 ,pdata 
+36f1 67e0c63c store 1 ,mem_power_ctrl_level 
+36f2 c000b6f8 beq 1 ,power_ctrl_incrs_level1 
+36f3 c00136f6 beq 2 ,power_ctrl_incrs_level2 
+
+power_ctrl_incrs_level3:
+36f4 70414105 jam tx_power_5db ,mem_tx_power 
+36f5 20600000 rtn 
+
+power_ctrl_decrs_level2:
+
+power_ctrl_incrs_level2:
+36f6 70414103 jam tx_power_3db ,mem_tx_power 
+36f7 20600000 rtn 
+
+power_ctrl_decrs_level1:
+
+power_ctrl_incrs_level1:
+36f8 70414100 jam tx_power_0db ,mem_tx_power 
+36f9 20600000 rtn 
+
+power_ctrl_decrs_level0:
+36fa 70414185 jam tx_power_f5db ,mem_tx_power 
+36fb 20600000 rtn 
+
+power_ctrl_pac_succ_incrs:
+36fc 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+36fd 1fe0fe01 increase 1 ,pdata 
+36fe 67e0c63d store 1 ,mem_power_ctrl_pac_succ_cnt 
+36ff 20600000 rtn 
+
+power_ctrl_pac_succ_decrs:
+3700 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+3701 1fe67c02 sub pdata ,2 ,null 
+3702 24413708 ncall power_ctrl_pac_succ_cnt_reinit ,positive 
+3703 6fe0c63d fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+3704 c1000000 rtneq 0 
+3705 1fe0ffff increase -1 ,pdata 
+3706 67e0c63d store 1 ,mem_power_ctrl_pac_succ_cnt 
+3707 20600000 rtn 
+
+power_ctrl_pac_succ_cnt_reinit:
+3708 70463d03 jam 3 ,mem_power_ctrl_pac_succ_cnt 
+3709 20600000 rtn 
+
+app_init:
+370a 44e7c019 bpatch patch19_7 ,mem_patch19 
+370b 6fe0c3cf fetch 1 ,mem_device_option 
+370c 203a370a branch app_init ,blank 
+370d c0023cd1 beq dvc_op_dongle ,dongle_init 
+370e c004e0c8 beq dvc_op_shutter ,shutter_init 
+370f c0054a31 beq dvc_op_module ,module_init 
+3710 c00737c1 beq dvc_op_car ,car_init 
+3711 c0036286 beq dvc_op_shutter_dy ,shutter_dy_init 
+3712 c006badf beq dvc_op_remote_car ,remote_car_init 
+3713 c007beae beq dvc_op_keyboard ,keyboard_init 
+3714 c00666f2 beq dvc_op_hci_boot ,hci_init 
+3715 c0044d11 beq dvc_op_mouse ,mouse_init 
+3716 20600000 rtn 
+
+app_param_init:
+3717 20758000 rtn wake 
+3718 20406f7c call adc_init_data 
+3719 6fe0c3cf fetch 1 ,mem_device_option 
+371a c004e1f3 beq dvc_op_shutter ,shutter_default_init 
+371b c00361f3 beq dvc_op_shutter_dy ,shutter_default_init 
+371c c0023cdc beq dvc_op_dongle ,dongle_default_init 
+371d c0044d82 beq dvc_op_mouse ,mouse_default_init 
+371e c007bea1 beq dvc_op_keyboard ,keyboard_default_init 
+371f c006baee beq dvc_op_remote_car ,remote_car_default_init 
+3720 c00737d3 beq dvc_op_car ,car_default_init 
+3721 20600000 rtn 
+
+app_process_idle:
+3722 20407762 call ui_dispatch 
+3723 20407831 call check_51cmd 
+3724 20403729 call app_process_bb_event 
+3725 6fe143e4 fetch 2 ,mem_cb_idle_process 
+3726 20207d7b branch callback_func 
+
+app_process_ble:
+3727 6fe143e2 fetch 2 ,mem_cb_le_process 
+3728 20207d7b branch callback_func 
+
+app_process_bb_event:
+3729 44e8401a bpatch patch1a_0 ,mem_patch1a 
+372a da2044ea arg mem_ipc_fifo_bt2c51 ,rega 
+372b 20407d99 call fifo_out 
+372c 207a0000 rtn blank 
+372d 1fe22600 copy pdata ,regc 
+372e 20403732 call app_event_normal_process 
+372f 20203736 branch app_process_bb_event_priority 
+
+app_discard_event:
+3730 da600000 arg 0 ,regc 
+3731 20600000 rtn 
+
+app_event_normal_process:
+3732 c0083745 beq bt_evt_button_long_pressed ,app_evt_button_long_pressed 
+3733 c00a373c beq bt_evt_le_connected ,app_le_event_bb_connected 
+3734 c00ab740 beq bt_evt_le_disconnected ,app_le_event_bb_disconn 
+3735 20600000 rtn 
+
+app_process_bb_event_priority:
+3736 6fe143e6 fetch 2 ,mem_cb_bb_event_process 
+3737 20207d7b branch callback_func 
+
+app_check_wake_lock:
+3738 6fe143dc fetch 2 ,mem_cb_check_wakelock 
+3739 20207d7b branch callback_func 
+
+app_will_enter_lpm:
+373a 6fe143e0 fetch 2 ,mem_cb_before_lpm 
+373b 20207d7b branch callback_func 
+
+app_le_event_bb_connected:
+373c 6fe14500 fetch 2 ,mem_ui_state_map 
+373d 79207e09 set1 ui_state_ble_connected ,pdata 
+373e 67e14500 store 2 ,mem_ui_state_map 
+373f 20600000 rtn 
+
+app_le_event_bb_disconn:
+3740 70439a00 jam 0 ,mem_le_l2cap_att_states 
+3741 6fe14500 fetch 2 ,mem_ui_state_map 
+3742 793ffe09 set0 ui_state_ble_connected ,pdata 
+3743 67e14500 store 2 ,mem_ui_state_map 
+3744 202037a2 branch app_lpm_mult_disable 
+
+app_evt_button_long_pressed:
+3745 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3746 79207e00 set1 app_disc_by_button ,pdata 
+3747 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3748 20600000 rtn 
+
+app_evt_timer:
+3749 67e081fb store 1 ,mem_app_evt_timer_count 
+
+app_evt_100ms_loop:
+374a 44e8c01a bpatch patch1a_1 ,mem_patch1a 
+374b 6fe081fb fetch 1 ,mem_app_evt_timer_count 
+374c 207a0000 rtn blank 
+374d 1fe0ffff increase -1 ,pdata 
+374e 67e081fb store 1 ,mem_app_evt_timer_count 
+374f 2040776e call ui_button_polling 
+3750 20403783 call app_lpm_wake_auto_lock_timer 
+3751 20406be1 call flash_write_spi_sm_timer 
+3752 6fe143ec fetch 2 ,mem_cb_event_timer 
+3753 20407d7b call callback_func 
+3754 2020374a branch app_evt_100ms_loop 
+
+timer_single_step:
+3755 efe08013 ifetch 1 ,regc 
+3756 207a0000 rtn blank 
+3757 1fe0ffff pincrease -1 
+3758 e7e08013 istore 1 ,regc 
+3759 247a0000 nrtn blank 
+375a 1a427e00 copy regb ,pdata 
+375b 20207d7b branch callback_func 
+
+timer_single_step_2b:
+375c efe10013 ifetch 2 ,regc 
+375d 207a0000 rtn blank 
+375e 1fe0ffff pincrease -1 
+375f e7e10013 istore 2 ,regc 
+3760 247a0000 nrtn blank 
+3761 1a427e00 copy regb ,pdata 
+3762 20207d7b branch callback_func 
+
+app_power_timer:
+3763 68494447 fetcht 2 ,mem_power_param_ptr 
+3764 1840a601 add temp ,power_timer_offset ,regc 
+3765 da403767 arg app_power_timer_timeout ,regb 
+3766 20203755 branch timer_single_step 
+
+app_power_timer_timeout:
+3767 204037b8 call app_got_power_state_common 
+3768 c000b76a beq power_starting ,app_enter_power_stanby_state 
+
+app_enter_power_off_state:
+3769 2020379c branch app_enter_hibernate 
+
+app_enter_power_stanby_state:
+376a 58000002 setarg power_standby 
+376b e7e08013 istore 1 ,regc 
+376c 1840a408 add temp ,power_standby_cb_offset ,regb 
+
+app_power_cb_common:
+376d efe10012 ifetch 2 ,regb 
+376e 20207d7b branch callback_func 
+
+app_bb_hibernate:
+376f 20403771 call app_disconn_reason_clear 
+3770 2020379c branch app_enter_hibernate 
+
+app_disconn_reason_clear:
+3771 58000000 setarg 0 
+3772 67e143f8 store app_disc_rsn_size ,mem_app_disconn_reason 
+3773 20600000 rtn 
+
+app_disconn_reason_flag_clear:
+3774 58000000 setarg 0 
+3775 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3776 20600000 rtn 
+
+app_disconn_reason_collect_ble:
+3777 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+3778 79207e07 set1 app_disc_ble ,pdata 
+3779 67e143f8 store app_disc_rsn_size ,mem_app_disconn_reason 
+377a 58000000 setarg 0 
+377b 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+377c 20600000 rtn 
+
+app_get_lpm_wake_lock:
+377d d8e00009 arg wake_lock_app ,queue 
+377e 202024be branch lpm_get_wake_lock 
+
+app_put_lpm_wake_lock:
+377f d8e00009 arg wake_lock_app ,queue 
+3780 202024c2 branch lpm_put_wake_lock 
+
+app_lpm_wake_auto_lock:
+3781 7043f605 jam lpm_wake_up_delay_timer ,mem_wake_up_delay_timer 
+3782 2020377d branch app_get_lpm_wake_lock 
+
+app_lpm_wake_auto_lock_timer:
+3783 da6043f6 arg mem_wake_up_delay_timer ,regc 
+3784 da40377f arg app_put_lpm_wake_lock ,regb 
+3785 20203755 branch timer_single_step 
+
+app_ble_start_direct_adv:
+3786 70064d0f jam bt_cmd_start_direct_adv ,mem_fifo_temp 
+3787 20207824 branch ui_ipc_send_cmd 
+
+app_ble_stop_direct_adv:
+3788 70064d10 jam bt_cmd_stop_direct_adv ,mem_fifo_temp 
+3789 20207824 branch ui_ipc_send_cmd 
+
+app_ble_stop_adv:
+378a 70064d0e jam bt_cmd_stop_adv ,mem_fifo_temp 
+378b 20207824 branch ui_ipc_send_cmd 
+
+app_ble_start_adv:
+378c 70064d0d jam bt_cmd_start_adv ,mem_fifo_temp 
+378d 20207824 branch ui_ipc_send_cmd 
+
+app_ble_start_scan:
+378e 70064d17 jam bt_cmd_le_start_scan ,mem_fifo_temp 
+378f 20207824 branch ui_ipc_send_cmd 
+
+app_ble_stop_scan:
+3790 70064d18 jam bt_cmd_le_stop_scan ,mem_fifo_temp 
+3791 20207824 branch ui_ipc_send_cmd 
+
+app_ble_start_conn:
+3792 70064d16 jam bt_cmd_le_start_conn ,mem_fifo_temp 
+3793 20207824 branch ui_ipc_send_cmd 
+
+app_ble_disconnect:
+3794 70064d11 jam bt_cmd_le_disconnect ,mem_fifo_temp 
+3795 20207824 branch ui_ipc_send_cmd 
+
+app_led_start_blink:
+3796 70064d15 jam bt_cmd_led_blink ,mem_fifo_temp 
+3797 20207824 branch ui_ipc_send_cmd 
+
+app_led_on:
+3798 70064d14 jam bt_cmd_led_on ,mem_fifo_temp 
+3799 20207824 branch ui_ipc_send_cmd 
+
+app_led_stop_blink:
+
+app_led_off:
+379a 70064d13 jam bt_cmd_led_off ,mem_fifo_temp 
+379b 20207824 branch ui_ipc_send_cmd 
+
+app_enter_hibernate:
+379c 70064d19 jam bt_cmd_enter_hibernate ,mem_fifo_temp 
+379d 20207824 branch ui_ipc_send_cmd 
+
+app_ble_store_reconn_info:
+379e 70064d1f jam bt_cmd_store_reconn_info_le ,mem_fifo_temp 
+379f 20207824 branch ui_ipc_send_cmd 
+
+app_lpm_mult_enable:
+37a0 7920000d set1 mark_lpm_mult_enable ,mark 
+37a1 20600000 rtn 
+
+app_lpm_mult_disable:
+37a2 793f800d set0 mark_lpm_mult_enable ,mark 
+37a3 20600000 rtn 
+
+app_button_long_pressed:
+37a4 204037b8 call app_got_power_state_common 
+37a5 c00137ae beq power_standby ,app_power_shutting_down 
+
+app_power_starting:
+37a6 58000001 setarg power_starting 
+37a7 e7e08013 istore 1 ,regc 
+37a8 1840a203 add temp ,power_starting_timeout_offset ,rega 
+37a9 1840a406 add temp ,power_starting_cb_offset ,regb 
+
+app_power_common:
+37aa e8408011 ifetcht 1 ,rega 
+37ab 1a60a601 increase 1 ,regc 
+37ac e0408013 istoret 1 ,regc 
+37ad 2020376d branch app_power_cb_common 
+
+app_power_shutting_down:
+37ae 58000000 setarg power_off 
+37af e7e08013 istore 1 ,regc 
+37b0 6fe14500 fetch 2 ,mem_ui_state_map 
+37b1 c304b7b4 bbit0 ui_state_ble_connected ,app_power_off_end 
+37b2 204030a3 call le_send_terminate_ind_user_terminated 
+37b3 20403794 call app_ble_disconnect 
+
+app_power_off_end:
+37b4 68494447 fetcht 2 ,mem_power_param_ptr 
+37b5 1840a202 add temp ,power_off_timeout_offset ,rega 
+37b6 1840a404 add temp ,power_off_cb_offset ,regb 
+37b7 202037aa branch app_power_common 
+
+app_got_power_state_common:
+37b8 68494447 fetcht 2 ,mem_power_param_ptr 
+37b9 1840a600 add temp ,power_state_offset ,regc 
+37ba efe08013 ifetch 1 ,regc 
+37bb 20600000 rtn 
+
+app_event_button_up:
+37bc 204037b8 call app_got_power_state_common 
+37bd c08037bf bne power_off ,app_power_release 
+37be 2020379c branch app_enter_hibernate 
+
+app_power_release:
+37bf 1840a40a add temp ,ui_butten_up_cb_offset ,regb 
+37c0 2020376d branch app_power_cb_common 
+
+car_init:
+37c1 20407384 call enable_authrom 
+37c2 20758000 rtn wake 
+37c3 5800398b setarg car_idle_process 
+37c4 67e143e4 store 2 ,mem_cb_idle_process 
+37c5 58003a9c setarg car_cb_event_timer 
+37c6 67e143ec store 2 ,mem_cb_event_timer 
+37c7 580039be setarg car_cb_24g_ackpayload 
+37c8 67e145f9 store 2 ,mem_cb_24g_ackpayload 
+37c9 58003933 setarg car_ble_receive_data 
+37ca 67e143e8 store 2 ,mem_cb_att_write 
+37cb 58003924 setarg car_process_bb_event 
+37cc 67e143e6 store 2 ,mem_cb_bb_event_process 
+37cd 44974005 bpatch patch05_6 ,mem_patch05 
+37ce 204038f3 call car_init_environment 
+37cf 20403904 call car_add_mac_to_local_name 
+37d0 20402931 call le_modified_name 
+37d1 2040391d call car_le_param_init 
+37d2 2020789d branch queue_init 
+
+car_default_init:
+37d3 7041410a jam 0x0a ,mem_tx_power 
+37d4 7045cf84 jam 0x84 ,mem_24g_tx_phy 
+37d5 7045ce84 jam 0x84 ,mem_24g_rx_phy 
+37d6 58ffffff setarg 0xffffff 
+37d7 67e1c680 store 3 ,mem_car_full_control_remote_lap 
+37d8 704683ff jam 0xff ,mem_car_full_control_remote_lap + 3 
+37d9 58000000 setarg 0 
+37da 67e1c2dd store 3 ,mem_le_lap 
+37db 58220101 setarg 0x220101 
+37dc 67e1c2e0 store 3 ,mem_le_lap + 3 
+37dd 58ffffff setarg 0xffffff 
+37de 67e1c68c store 3 ,mem_car_motor_gpio_map 
+37df 70468fff jam 0xff ,mem_car_motor_gpio_map + 3 
+37e0 70469b01 jam 0x01 ,mem_factory_control_flag 
+37e1 58241404 setarg 0x241404 
+37e2 67e1c5aa store 3 ,mem_24g_ch_map1 
+37e3 7045ad34 jam 0x34 ,mem_24g_ch_map1 + 3 
+37e4 70469010 jam 0x10 ,mem_car_pwm_gpio 
+37e5 70469a01 jam 0x01 ,mem_stop_4w1_flag 
+37e6 70439707 jam 0x07 ,mem_le_adv_channel_map 
+37e7 70438c01 jam 0x01 ,mem_le_adv_enable 
+37e8 580000f0 setarg 0xf0 
+37e9 67e1438d store 2 ,mem_le_adv_interval 
+37ea 58000801 setarg 0x801 
+37eb 67e143b2 store 2 ,mem_le_local_feature 
+37ec 7043ba84 jam 0x84 ,mem_le_tx_phys 
+37ed 7043bb84 jam 0x84 ,mem_le_rx_phys 
+37ee 58504708 setarg 0x504708 
+37ef 67e1c26d store 3 ,mem_le_name_len 
+37f0 58435734 setarg 0x435734 
+37f1 67e1c270 store 3 ,mem_le_name_len + 3 
+37f2 585f5241 setarg 0x5f5241 
+37f3 67e1c273 store 3 ,mem_le_name_len + 6 
+37f4 70434c1f jam 0x1f ,mem_le_adv_data_len 
+37f5 58050102 setarg 0x50102 
+37f6 67e1c34d store 3 ,mem_le_adv_data 
+37f7 58000008 setarg 0x08 
+37f8 67e142d5 store 2 ,mem_le_interval_min 
+37f9 58000010 setarg 0x10 
+37fa 67e142d7 store 2 ,mem_le_interval_max 
+37fb 58000000 setarg 0 
+37fc 67e142d9 store 2 ,mem_le_latency 
+37fd 5800012c setarg 0x12c 
+37fe 67e142db store 2 ,mem_le_timeout 
+37ff 5800469d setarg mem_car_le_queue_each_size 
+3800 67e14404 store 2 ,mem_queue_ptr 
+3801 58000414 setarg 0x414 
+3802 67e2c69d store 5 ,mem_car_le_queue_each_size 
+3803 580046fd setarg mem_car_ble_att_list 
+3804 67e142f9 store 2 ,mem_ui_le_uuid_table 
+3805 38020001 setsect 0 ,0x20001 
+3806 38060000 setsect 1 ,0x20000 
+3807 38081022 setsect 2 ,0x1022 
+3808 380c0060 setsect 3 ,0x60 
+3809 67e4c6fd store 9 ,mem_car_ble_att_list 
+380a 38020002 setsect 0 ,0x20002 
+380b 380600c0 setsect 1 ,0x200c0 
+380c 380a0012 setsect 2 ,0x20012 
+380d 380c000c setsect 3 ,0xc 
+380e 67e4c705 store 9 ,mem_car_ble_att_list + 8 
+380f 38020502 setsect 0 ,0x20502 
+3810 3804004a setsect 1 ,0x4a 
+3811 38080040 setsect 2 ,0x40 
+3812 380c0808 setsect 3 ,0x808 
+3813 67e4c70e store 9 ,mem_car_ble_att_list + 17 
+3814 38010229 setsect 0 ,0x10229 
+3815 38054000 setsect 1 ,0x14000 
+3816 38082000 setsect 2 ,0x2000 
+3817 380ca000 setsect 3 ,0xa000 
+3818 67e4c717 store 9 ,mem_car_ble_att_list + 26 
+3819 38000002 setsect 0 ,0x02 
+381a 38040186 setsect 1 ,0x186 
+381b 38083020 setsect 2 ,0x3020 
+381c 380c04a0 setsect 3 ,0x4a0 
+381d 67e4c720 store 9 ,mem_car_ble_att_list + 35 
+381e 3800074e setsect 0 ,0x74e 
+381f 38040080 setsect 1 ,0x80 
+3820 380932a0 setsect 2 ,0x132a0 
+3821 380dcd04 setsect 3 ,0x1cd04 
+3822 67e4c729 store 9 ,mem_car_ble_att_list + 44 
+3823 38002074 setsect 0 ,0x2074 
+3824 38041153 setsect 1 ,0x1153 
+3825 380af4d2 setsect 2 ,0x2f4d2 
+3826 380dcdd5 setsect 3 ,0x1cdd5 
+3827 67e4c732 store 9 ,mem_car_ble_att_list + 53 
+3828 38002065 setsect 0 ,0x2065 
+3829 38040808 setsect 1 ,0x808 
+382a 380a0202 setsect 2 ,0x20202 
+382b 380c2080 setsect 3 ,0x2080 
+382c 67e4c73b store 9 ,mem_car_ble_att_list + 62 
+382d 38030200 setsect 0 ,0x30200 
+382e 38044a00 setsect 1 ,0x4a00 
+382f 380894e0 setsect 2 ,0x94e0 
+3830 380c0800 setsect 3 ,0x800 
+3831 67e4c744 store 9 ,mem_car_ble_att_list + 71 
+3832 38022a01 setsect 0 ,0x22a01 
+3833 38040000 setsect 1 ,0x0 
+3834 380800a0 setsect 2 ,0xa0 
+3835 380c0c08 setsect 3 ,0xc08 
+3836 67e4c74d store 9 ,mem_car_ble_att_list + 80 
+3837 38020128 setsect 0 ,0x20128 
+3838 380402c0 setsect 1 ,0x2c0 
+3839 38084020 setsect 2 ,0x4020 
+383a 380c20a8 setsect 3 ,0x20a8 
+383b 67e4c756 store 9 ,mem_car_ble_att_list + 89 
+383c 38000010 setsect 0 ,0x10 
+383d 38054008 setsect 1 ,0x14008 
+383e 380ac000 setsect 2 ,0x2c000 
+383f 380c3004 setsect 3 ,0x3004 
+3840 67e4c75f store 9 ,mem_car_ble_att_list + 98 
+3841 38000200 setsect 0 ,0x200 
+3842 38048a00 setsect 1 ,0x8a00 
+3843 380bff00 setsect 2 ,0x3ff00 
+3844 380c0037 setsect 3 ,0x37 
+3845 67e4c768 store 9 ,mem_car_ble_att_list + 107 
+3846 38000302 setsect 0 ,0x302 
+3847 3804804a setsect 1 ,0x804a 
+3848 380800e1 setsect 2 ,0xe1 
+3849 380fc408 setsect 3 ,0x3c408 
+384a 67e4c771 store 9 ,mem_car_ble_att_list + 116 
+384b 380004ff setsect 0 ,0x4ff 
+384c 38040000 setsect 1 ,0x0 
+384d 3808f000 setsect 2 ,0xf000 
+384e 380c0800 setsect 3 ,0x800 
+384f 67e4c77a store 9 ,mem_car_ble_att_list + 125 
+3850 38022902 setsect 0 ,0x22902 
+3851 38040000 setsect 1 ,0x0 
+3852 38080100 setsect 2 ,0x100 
+3853 380c0c08 setsect 3 ,0xc08 
+3854 67e4c783 store 9 ,mem_car_ble_att_list + 134 
+3855 38000128 setsect 0 ,0x128 
+3856 38040442 setsect 1 ,0x442 
+3857 380b2020 setsect 2 ,0x32020 
+3858 380c07ff setsect 3 ,0x7ff 
+3859 67e4c78c store 9 ,mem_car_ble_att_list + 143 
+385a 58000000 setarg 0 
+385b 67e1c795 store 3 ,mem_car_ble_att_list + 152 
+385c 7041480c jam 0x0c ,mem_system_clk 
+385d 58643f35 setarg 0x643f35 
+385e 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
+385f 583b2f8f setarg 0x3b2f8f 
+3860 67e1c0c6 store 3 ,mem_lpm_isogate 
+3861 7040a720 jam 0x20 ,mem_lpm_hibernate_switch 
+3862 7040c900 jam 0x00 ,mem_lpm_ldo_sel 
+3863 7040ca08 jam 0x08 ,mem_lpm_sysctl 
+3864 7040cbb4 jam 0xb4 ,mem_lpm_hv_sel 
+3865 70409918 jam 0x18 ,mem_fcomp_div 
+3866 70411c3e jam 0x3e ,mem_xtal_c_sel 
+3867 58050e08 setarg 0x50e08 
+3868 67e1c160 store 3 ,mem_version 
+3869 58000003 setarg 0x3 
+386a 67e14163 store 2 ,mem_version + 3 
+386b 70416a20 jam 0x20 ,mem_le_tx2m_delay 
+386c 704143ff jam 0xff ,mem_gain_fix 
+386d 58000c00 setarg 0xc00 
+386e 67e1409a store 2 ,mem_rx_window_sniff 
+386f 58000004 setarg 0x4 
+3870 67e1c144 store 3 ,mem_gain_table 
+3871 70414708 jam 0x08 ,mem_gain_second_agc_en 
+3872 70444fa0 jam 0xa0 ,mem_ring_ibias_trim 
+3873 580002bc setarg 0x2bc 
+3874 67e14452 store 2 ,mem_ring_ibias_vtune_high 
+3875 58000190 setarg 0x190 
+3876 67e14450 store 2 ,mem_ring_ibias_vtune_low 
+3877 70445403 jam 0x03 ,mem_ring_ibias_calc_adc_gpio 
+3878 70445509 jam 0x09 ,mem_ring_ibias_calc_adc_channel 
+3879 704149ff jam 0xff ,mem_rf_init_data 
+387a 58004149 setarg mem_rf_init_data 
+387b 67e1409c store 2 ,mem_rf_init_ptr 
+387c 20406b28 call enable_otp_read 
+387d da20488d arg mem_otp_sys_cfg_temp ,rega 
+387e da401f00 arg otp_sys_param_cfg ,regb 
+387f df20003c arg 60 ,loopcnt 
+3880 20406b62 call otp_read_data 
+3881 20406b25 call disable_otp 
+3882 6fe0c88d fetch 1 ,mem_otp_sys_cfg_temp 
+3883 245a38b9 ncall car_system_clk ,blank 
+3884 6fe1c88e fetch 3 ,mem_otp_sys_cfg_temp + 1 
+3885 245a38bb ncall car_lpm_xtalcnt ,blank 
+3886 6fe1c891 fetch 3 ,mem_otp_sys_cfg_temp + 4 
+3887 245a38bd ncall car_lpm_isogate ,blank 
+3888 6fe0c894 fetch 1 ,mem_otp_sys_cfg_temp + 7 
+3889 245a38bf ncall car_lpm_hibernate_switch ,blank 
+388a 6fe0c895 fetch 1 ,mem_otp_sys_cfg_temp + 8 
+388b 245a38c1 ncall car_lpm_ldo_sel ,blank 
+388c 6fe0c896 fetch 1 ,mem_otp_sys_cfg_temp + 9 
+388d 245a38c3 ncall car_lpm_sysctl ,blank 
+388e 6fe0c897 fetch 1 ,mem_otp_sys_cfg_temp + 10 
+388f 245a38c5 ncall car_lpm_hv_sel ,blank 
+3890 6fe0c898 fetch 1 ,mem_otp_sys_cfg_temp + 11 
+3891 245a38c7 ncall car_fcomp_div ,blank 
+3892 6fe0c899 fetch 1 ,mem_otp_sys_cfg_temp + 12 
+3893 245a38c9 ncall car_xtal_c_sel ,blank 
+3894 6fe2c89a fetch 5 ,mem_otp_sys_cfg_temp + 13 
+3895 245a38cb ncall car_version ,blank 
+3896 6fe0c89f fetch 1 ,mem_otp_sys_cfg_temp + 18 
+3897 245a38cd ncall car_le_tx2m_delay ,blank 
+3898 6fe0c8a0 fetch 1 ,mem_otp_sys_cfg_temp + 19 
+3899 245a38cf ncall car_gain_fix ,blank 
+389a 6fe148a1 fetch 2 ,mem_otp_sys_cfg_temp + 20 
+389b 245a38d1 ncall car_rx_window_sniff ,blank 
+389c 6fe1c8a3 fetch 3 ,mem_otp_sys_cfg_temp + 22 
+389d 245a38d3 ncall car_gain_table ,blank 
+389e 6fe0c8a6 fetch 1 ,mem_otp_sys_cfg_temp + 25 
+389f 245a38d5 ncall car_gain_second_agc_en ,blank 
+38a0 6fe0c8a7 fetch 1 ,mem_otp_sys_cfg_temp + 26 
+38a1 245a38d7 ncall car_ring_ibias_trim ,blank 
+38a2 6fe148a8 fetch 2 ,mem_otp_sys_cfg_temp + 27 
+38a3 245a38d9 ncall car_ring_ibias_vtune_high ,blank 
+38a4 6fe148aa fetch 2 ,mem_otp_sys_cfg_temp + 29 
+38a5 245a38db ncall car_ring_ibias_vtune_low ,blank 
+38a6 6fe0c8ac fetch 1 ,mem_otp_sys_cfg_temp + 31 
+38a7 245a38dd ncall car_ring_ibias_calc_adc_gpio ,blank 
+38a8 6fe0c8ad fetch 1 ,mem_otp_sys_cfg_temp + 32 
+38a9 245a38df ncall car_ring_ibias_calc_adc_channel ,blank 
+38aa 6fe0c8b2 fetch 1 ,mem_otp_sys_cfg_temp + 37 
+38ab 245a38e1 ncall car_tx_power ,blank 
+38ac 6fe0c8b3 fetch 1 ,mem_otp_sys_cfg_temp + 38 
+38ad 245a38e3 ncall car_24g_tx_phy ,blank 
+38ae 6fe0c8b4 fetch 1 ,mem_otp_sys_cfg_temp + 39 
+38af 245a38e5 ncall car_24g_rx_phy ,blank 
+38b0 6fe248b5 fetch 4 ,mem_otp_sys_cfg_temp + 40 
+38b1 245a38e7 ncall car_motor_gpio_map ,blank 
+38b2 6fe0c8b9 fetch 1 ,mem_otp_sys_cfg_temp + 44 
+38b3 245a38ea ncall car_pwm_gpio ,blank 
+38b4 6fe248bb fetch 4 ,mem_otp_sys_cfg_temp + 46 
+38b5 245a38ef ncall car_24g_addr ,blank 
+38b6 6fe248bf fetch 4 ,mem_otp_sys_cfg_temp + 50 
+38b7 245a38f1 ncall car_24g_ch_map1 ,blank 
+38b8 20600000 rtn 
+
+car_system_clk:
+38b9 67e0c148 store 1 ,mem_system_clk 
+38ba 20600000 rtn 
+
+car_lpm_xtalcnt:
+38bb 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
+38bc 20600000 rtn 
+
+car_lpm_isogate:
+38bd 67e1c0c6 store 3 ,mem_lpm_isogate 
+38be 20600000 rtn 
+
+car_lpm_hibernate_switch:
+38bf 67e0c0a7 store 1 ,mem_lpm_hibernate_switch 
+38c0 20600000 rtn 
+
+car_lpm_ldo_sel:
+38c1 67e0c0c9 store 1 ,mem_lpm_ldo_sel 
+38c2 20600000 rtn 
+
+car_lpm_sysctl:
+38c3 67e0c0ca store 1 ,mem_lpm_sysctl 
+38c4 20600000 rtn 
+
+car_lpm_hv_sel:
+38c5 67e0c0cb store 1 ,mem_lpm_hv_sel 
+38c6 20600000 rtn 
+
+car_fcomp_div:
+38c7 67e0c099 store 1 ,mem_fcomp_div 
+38c8 20600000 rtn 
+
+car_xtal_c_sel:
+38c9 67e0c11c store 1 ,mem_xtal_c_sel 
+38ca 20600000 rtn 
+
+car_version:
+38cb 67e2c160 store 5 ,mem_version 
+38cc 20600000 rtn 
+
+car_le_tx2m_delay:
+38cd 67e0c16a store 1 ,mem_le_tx2m_delay 
+38ce 20600000 rtn 
+
+car_gain_fix:
+38cf 67e0c143 store 1 ,mem_gain_fix 
+38d0 20600000 rtn 
+
+car_rx_window_sniff:
+38d1 67e1409a store 2 ,mem_rx_window_sniff 
+38d2 20600000 rtn 
+
+car_gain_table:
+38d3 67e1c144 store 3 ,mem_gain_table 
+38d4 20600000 rtn 
+
+car_gain_second_agc_en:
+38d5 67e0c147 store 1 ,mem_gain_second_agc_en 
+38d6 20600000 rtn 
+
+car_ring_ibias_trim:
+38d7 67e0c44f store 1 ,mem_ring_ibias_trim 
+38d8 20600000 rtn 
+
+car_ring_ibias_vtune_high:
+38d9 67e14452 store 2 ,mem_ring_ibias_vtune_high 
+38da 20600000 rtn 
+
+car_ring_ibias_vtune_low:
+38db 67e14450 store 2 ,mem_ring_ibias_vtune_low 
+38dc 20600000 rtn 
+
+car_ring_ibias_calc_adc_gpio:
+38dd 67e0c454 store 1 ,mem_ring_ibias_calc_adc_gpio 
+38de 20600000 rtn 
+
+car_ring_ibias_calc_adc_channel:
+38df 67e0c455 store 1 ,mem_ring_ibias_calc_adc_channel 
+38e0 20600000 rtn 
+
+car_tx_power:
+38e1 67e0c141 store 1 ,mem_tx_power 
+38e2 20600000 rtn 
+
+car_24g_tx_phy:
+38e3 67e0c5cf store 1 ,mem_24g_tx_phy 
+38e4 20600000 rtn 
+
+car_24g_rx_phy:
+38e5 67e0c5ce store 1 ,mem_24g_rx_phy 
+38e6 20600000 rtn 
+
+car_motor_gpio_map:
+38e7 67e2468c store 4 ,mem_car_motor_gpio_map 
+38e8 70469c01 jam 1 ,mem_car_gpio_control_mode 
+38e9 20600000 rtn 
+
+car_pwm_gpio:
+38ea 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
+38eb 247a0000 nrtn blank 
+38ec 6fe0c8b9 fetch 1 ,mem_otp_sys_cfg_temp + 44 
+38ed 67e0c690 store 1 ,mem_car_pwm_gpio 
+38ee 20600000 rtn 
+
+car_24g_addr:
+38ef 67e245a6 store 4 ,mem_24g_addr 
+38f0 20600000 rtn 
+
+car_24g_ch_map1:
+38f1 67e245aa store 4 ,mem_24g_ch_map1 
+38f2 20600000 rtn 
+
+car_init_environment:
+38f3 5800000f setarg 15 
+38f4 67e14684 store 2 ,mem_100ms_adv_control_timer 
+38f5 5800012c setarg 300 
+38f6 67e14686 store 2 ,mem_100ms_factory_test_control_timer 
+38f7 2040394f call car_whitening_24g_addr 
+38f8 20403963 call car_get_rxid 
+38f9 204038fb call car_rxid_check 
+38fa 20203981 branch car_pwm_control_init 
+
+car_rxid_check:
+38fb da2042dd arg mem_le_lap ,rega 
+38fc da404680 arg mem_car_full_control_remote_lap ,regb 
+38fd df200004 arg 4 ,loopcnt 
+38fe 20407d66 call string_compare 
+38ff 24628000 nrtn zero 
+3900 6fe0c2dd fetch 1 ,mem_le_lap 
+3901 1fe0ffff pincrease -1 
+3902 67e0c2dd store 1 ,mem_le_lap 
+3903 20600000 rtn 
+
+car_add_mac_to_local_name:
+3904 6fe0c26d fetch 1 ,mem_le_name_len 
+3905 d8a0426e arg mem_le_name_len + 1 ,contw 
+3906 98a0a400 iadd contw ,regb 
+3907 1fe0fe10 add pdata ,16 ,pdata 
+3908 67e0c26d store 1 ,mem_le_name_len 
+3909 df200006 arg 6 ,loopcnt 
+390a da2042e2 arg mem_le_lap + 5 ,rega 
+390b 1a420a00 copy regb ,contw 
+
+car_add_mac_to_local_name_loop:
+390c e8408011 ifetcht 1 ,rega 
+390d 18417ef0 and temp ,0xf0 ,pdata 
+390e 1ff1fe00 rshift4 pdata ,pdata 
+390f 20403917 call car_convert_hex_to_ascii 
+3910 e7e08005 istore 1 ,contw 
+3911 18417e0f and temp ,0x0f ,pdata 
+3912 20403917 call car_convert_hex_to_ascii 
+3913 e7e08005 istore 1 ,contw 
+3914 1a20a3ff increase -1 ,rega 
+3915 c200390c loop car_add_mac_to_local_name_loop 
+3916 20600000 rtn 
+
+car_convert_hex_to_ascii:
+3917 1fe67c09 sub pdata ,9 ,null 
+3918 2021391b branch car_convert_hex_to_ascii_0_9 ,positive 
+
+car_convert_hex_to_ascii_a_f:
+3919 1fe0fe37 add pdata ,0x37 ,pdata 
+391a 20600000 rtn 
+
+car_convert_hex_to_ascii_0_9:
+391b 1fe0fe30 add pdata ,0x30 ,pdata 
+391c 20600000 rtn 
+
+car_le_param_init:
+391d 7042e317 jam 0x17 ,mem_le_local_mtu 
+391e 5800001b setarg 0x1b 
+391f 67e14334 store 2 ,mem_le_pairing_handle 
+3920 204029a4 call le_set_config_fixed_ltk 
+3921 204029be call le_set_fixed_ltk 
+3922 204029ca call le_set_justwork 
+3923 202029ac branch le_set_config_read_authentication 
+
+car_process_bb_event:
+3924 1a627e00 deposit regc 
+3925 c00a3930 beq bt_evt_le_connected ,car_ble_connted 
+3926 c00ab928 beq bt_evt_le_disconnected ,car_ble_disconnted 
+3927 20600000 rtn 
+
+car_ble_disconnted:
+3928 70467f00 jam 0 ,mem_car_ble_connted_flag 
+3929 2040394b call car_gpio_control_stop 
+392a 70468900 jam 0x0 ,mem_period_count 
+392b 70469a01 jam 1 ,mem_stop_4w1_flag 
+392c 58000000 setarg 0 
+392d 67e1c6f2 store 3 ,mem_car_ble_write_data 
+392e 2040789d call queue_init 
+392f 2020378c branch app_ble_start_adv 
+
+car_ble_connted:
+3930 70467f01 jam 1 ,mem_car_ble_connted_flag 
+3931 20403adc call car_check_close_ice 
+3932 202037a0 branch app_lpm_mult_enable 
+
+car_ble_receive_data:
+3933 6fe1439c fetch 2 ,mem_le_att_handle 
+3934 c008b936 beq handle_of_write ,car_ble_receive_writeatt 
+3935 20600000 rtn 
+
+car_ble_receive_writeatt:
+3936 4497c005 bpatch patch05_7 ,mem_patch05 
+3937 1a427200 copy regb ,loopcnt 
+3938 1a220c00 copy rega ,contr 
+3939 d8a046f2 arg mem_car_ble_write_data ,contw 
+393a 20407cdc call memcpy 
+393b 6fe0c6f2 fetch 1 ,mem_car_ble_write_data 
+393c 207a0000 rtn blank 
+
+car_ble_receive_writeatt_parse:
+393d 2040394b call car_gpio_control_stop 
+393e 70468904 jam 0x4 ,mem_period_count 
+393f 6fe0c6f4 fetch 1 ,mem_car_ble_write_data + 2 
+3940 c1810000 rtnne 0x02 
+3941 6fe0c6fa fetch 1 ,mem_car_ble_write_data + 8 
+3942 c000ba60 beq 0x01 ,car_f + 3 
+3943 c0013a65 beq 0x02 ,car_b + 3 
+3944 c001ba6f beq 0x03 ,car_r + 3 
+3945 c0023a6a beq 0x04 ,car_l + 3 
+3946 c050ba74 beq 0xa1 ,car_fr 
+3947 c0513a71 beq 0xa2 ,car_fl 
+3948 c051ba7a beq 0xa3 ,car_br 
+3949 c0523a77 beq 0xa4 ,car_bl 
+394a 20600000 rtn 
+
+car_gpio_control_stop:
+394b 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
+394c 207a0000 rtn blank 
+394d 20403acd call car_fb_motor_stop 
+394e 20203ac1 branch car_lr_motor_stop 
+
+car_whitening_24g_addr:
+394f df200004 arg 4 ,loopcnt 
+3950 da6045a6 arg mem_24g_addr ,regc 
+3951 da4000ae arg 0xae ,regb 
+
+car_24g_whitening_loop:
+3952 20403956 call car_24g_whitening_byte 
+3953 1a60a601 increase 1 ,regc 
+3954 c2003952 loop car_24g_whitening_loop 
+3955 20600000 rtn 
+
+car_24g_whitening_byte:
+3956 da200001 arg 1 ,rega 
+
+car_24g_whitening_byte_loop:
+3957 1a43a400 lshift regb ,regb 
+3958 2a4ffe07 isolate1 7 ,regb 
+3959 2040b95e call car_24g_whitening_byte_xor ,true 
+395a 1a23a200 lshift rega ,rega 
+395b 1a227e00 deposit rega 
+395c c3840000 rtnbit1 8 
+395d 20203957 branch car_24g_whitening_byte_loop 
+
+car_24g_whitening_byte_xor:
+395e efe08013 ifetch 1 ,regc 
+395f 9a22fe00 ixor rega ,pdata 
+3960 e7e08013 istore 1 ,regc 
+3961 1a42a411 xor regb ,0x11 ,regb 
+3962 20600000 rtn 
+
+car_get_rxid:
+3963 20406b28 call enable_otp_read 
+3964 da204691 arg mem_otp_lot_xy_temp ,rega 
+3965 da401fda arg otp_mac_addr ,regb 
+3966 df200006 arg 6 ,loopcnt 
+3967 20406b62 call otp_read_data 
+3968 20406b25 call disable_otp 
+3969 6fe34691 fetch 6 ,mem_otp_lot_xy_temp 
+396a 207a0000 rtn blank 
+396b 6fe14691 fetch 2 ,mem_otp_lot_xy_temp 
+396c 67e142dd store 2 ,mem_le_lap 
+396d 6fe0c694 fetch 1 ,mem_otp_lot_xy_temp + 3 
+396e 67e0c2df store 1 ,mem_le_lap + 2 
+396f 6fe0c696 fetch 1 ,mem_otp_lot_xy_temp + 5 
+3970 67e0c2e0 store 1 ,mem_le_lap + 3 
+3971 6fe0c692 fetch 1 ,mem_otp_lot_xy_temp + 1 
+3972 1fe67c1a sub pdata ,26 ,null 
+3973 24610000 nrtn positive 
+3974 6fe0c693 fetch 1 ,mem_otp_lot_xy_temp + 2 
+3975 207a0000 rtn blank 
+3976 180a7e00 random pdata 
+3977 1fe17e07 and_into 0x07 ,pdata 
+3978 1fe3fe00 lshift pdata ,pdata 
+3979 1ff27e00 lshift4 pdata ,pdata 
+397a 6848c692 fetcht 1 ,mem_otp_lot_xy_temp + 1 
+397b 9840fe00 iadd temp ,pdata 
+397c 67e0c2de store 1 ,mem_le_lap + 1 
+397d da2042de arg mem_le_lap + 1 ,rega 
+397e da401fdb arg otp_mac_addr_piecenum ,regb 
+397f df200001 arg 1 ,loopcnt 
+3980 20206b33 branch otp_write 
+
+car_pwm_control_init:
+3981 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
+3982 247a0000 nrtn blank 
+3983 da200000 arg 0 ,rega 
+3984 204070b9 call pwm_init 
+3985 da204650 arg 18000 ,rega 
+3986 da401770 arg 6000 ,regb 
+3987 dfe00000 arg 0 ,pdata 
+3988 204070de call pwm_duty_cycle_set 
+3989 6fe0c690 fetch 1 ,mem_car_pwm_gpio 
+398a 20207100 branch pwm_enable 
+
+car_idle_process:
+398b 44984006 bpatch patch06_0 ,mem_patch06 
+398c dfe0000a arg 10 ,pdata 
+398d 2040710e call wdt_init_config 
+398e 204039a7 call car_pwm_io_control 
+398f 6fe0c67f fetch 1 ,mem_car_ble_connted_flag 
+3990 247a0000 nrtn blank 
+3991 6fe14660 fetch 2 ,mem_car_le_24g_ch_count 
+3992 1fe0fe01 increase 1 ,pdata 
+3993 67e14660 store 2 ,mem_car_le_24g_ch_count 
+3994 1ff1fe00 rshift4 pdata ,pdata 
+3995 204039fb call car_set_24g_ch 
+3996 204039ae call car_g24_sim_rx 
+3997 20403a0f call car_stop_run 
+3998 5800450e setarg mem_24g_rxbuf 
+3999 1fe0fe02 increase 2 ,pdata 
+399a 1fe20c00 copy pdata ,contr 
+399b df20000c arg len_of_24g_payload ,loopcnt 
+399c dfe00000 arg 0 ,pdata 
+399d 20407dd0 call cal_sum 
+399e 1fe17eff and pdata ,0xff ,pdata 
+399f 6848c51c fetcht 1 ,mem_24g_rxbuf + 14 
+39a0 98467c00 isub temp ,null 
+39a1 24628000 nrtn zero 
+39a2 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
+39a3 4498c006 bpatch patch06_1 ,mem_patch06 
+39a4 c0553a88 beq g24_tx_pair_request ,car_recive_pair_request 
+39a5 c0663a21 beq g24_tx_remote_control ,car_set_motor 
+39a6 20600000 rtn 
+
+car_pwm_io_control:
+39a7 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
+39a8 247a0000 nrtn blank 
+39a9 204039c4 call car_soft_timer_process 
+39aa 204039e5 call car_pwm_change_500hz 
+39ab 204039f1 call car_period_change_timer 
+39ac 204039d7 call car_pwm_change_1khz 
+39ad 20600000 rtn 
+
+car_g24_sim_rx:
+39ae d8400004 arg 4 ,temp 
+39af d8e00005 arg 5 ,queue 
+39b0 204020dc call sniff_check_window 
+39b1 20740000 rtn user 
+39b2 79200027 set1 mark_24g_rxmode ,mark 
+39b3 58008ca0 setarg 0x8ca0 
+39b4 67e145a2 store 2 ,mem_24g_rx_window 
+39b5 70462801 jam 1 ,mem_24g_ackpayload_enable 
+39b6 6fe0c5ce fetch 1 ,mem_24g_rx_phy 
+39b7 20402579 call le_enable_phy_by_pdata 
+39b8 20403217 call g24_syncword_crc8 
+39b9 204033c7 call g24_receive_transmit_ack 
+39ba 204031f3 call g24_read_len_pid_crc 
+39bb 20403162 call g24_end_of_packet 
+39bc 24778000 nrtn user3 
+39bd 20600000 rtn 
+
+car_cb_24g_ackpayload:
+39be 70459f0b jam len_of_ack_payload ,mem_24g_datalen 
+39bf 6fe3c666 fetch 7 ,mem_car_24g_tx_payload_temp 
+39c0 67e3c530 store 7 ,mem_24g_txbuf 
+39c1 6fe2466d fetch 4 ,mem_car_24g_tx_payload_temp + 7 
+39c2 67e24537 store 4 ,mem_24g_txbuf + 7 
+39c3 20600000 rtn 
+
+car_soft_timer_process:
+39c4 da200008 arg 8 ,rega 
+
+car_soft_timer_process_check_timer:
+39c5 d8e0000c arg 12 ,queue 
+39c6 20407cf1 call timer_check 
+39c7 203a39cf branch car_soft_timer_timeout ,blank 
+39c8 9a267c00 isub rega ,null 
+39c9 2022b9cb branch car_soft_timer_process_wait_timeout ,zero 
+39ca 20610000 rtn positive 
+
+car_soft_timer_process_wait_timeout:
+39cb d8e0000c arg 12 ,queue 
+39cc 20407cf1 call timer_check 
+39cd 203a39cf branch car_soft_timer_timeout ,blank 
+39ce 202039cb branch car_soft_timer_process_wait_timeout 
+
+car_soft_timer_timeout:
+39cf 6fe0c688 fetch 1 ,mem_pwm_flag 
+39d0 c00139d5 beq 2 ,car_timer_500hz_enable 
+39d1 c001b9d3 beq 3 ,car_timer_1khz_enable 
+39d2 20600000 rtn 
+
+car_timer_1khz_enable:
+39d3 70468801 jam 1 ,mem_pwm_flag 
+39d4 20600000 rtn 
+
+car_timer_500hz_enable:
+39d5 70468800 jam 0 ,mem_pwm_flag 
+39d6 20600000 rtn 
+
+car_pwm_change_1khz:
+39d7 6fe0c689 fetch 1 ,mem_period_count 
+39d8 207a0000 rtn blank 
+39d9 6848c688 fetcht 1 ,mem_pwm_flag 
+39da 2841fe01 compare 1 ,temp ,0xff 
+39db 24608000 nrtn true 
+39dc 70468802 jam 2 ,mem_pwm_flag 
+39dd da201770 arg 6000 ,rega 
+39de da401770 arg 6000 ,regb 
+39df dfe00000 arg 0 ,pdata 
+39e0 204070de call pwm_duty_cycle_set 
+39e1 6fe0c68a fetch 1 ,mem_timer_count 
+39e2 d8e0000c arg 12 ,queue 
+39e3 20407ce3 call timer_init 
+39e4 20600000 rtn 
+
+car_pwm_change_500hz:
+39e5 6848c688 fetcht 1 ,mem_pwm_flag 
+39e6 2841fe00 compare 0 ,temp ,0xff 
+39e7 24608000 nrtn true 
+39e8 70468803 jam 3 ,mem_pwm_flag 
+39e9 da204650 arg 18000 ,rega 
+39ea da401770 arg 6000 ,regb 
+39eb dfe00000 arg 0 ,pdata 
+39ec 204070de call pwm_duty_cycle_set 
+39ed 5800000c setarg 12 
+39ee d8e0000c arg 12 ,queue 
+39ef 20407ce3 call timer_init 
+39f0 20600000 rtn 
+
+car_period_change_timer:
+39f1 6fe0c689 fetch 1 ,mem_period_count 
+39f2 d84003e8 arg 0x3e8 ,temp 
+39f3 984ffe00 imul32 temp ,pdata 
+39f4 d8400271 arg 0x271 ,temp 
+39f5 9846fc00 idiv temp 
+39f6 20407d64 call wait_div_end 
+39f7 1807fe00 quotient pdata 
+39f8 1fe0fe01 pincrease 1 
+39f9 67e0c68a store 1 ,mem_timer_count 
+39fa 20600000 rtn 
+
+car_set_24g_ch:
+39fb c0003a00 beq 0 ,car_set_ch0 
+39fc c000ba03 beq 1 ,car_set_ch1 
+39fd c0013a06 beq 2 ,car_set_ch2 
+39fe c001ba09 beq 3 ,car_set_ch3 
+39ff 20203a0c branch car_set_ch_reset 
+
+car_set_ch0:
+3a00 6fe0c5aa fetch 1 ,mem_24g_ch_map1 
+3a01 67e0c5a4 store 1 ,mem_24g_ch 
+3a02 20600000 rtn 
+
+car_set_ch1:
+3a03 6fe0c5ab fetch 1 ,mem_24g_ch_map1 + 1 
+3a04 67e0c5a4 store 1 ,mem_24g_ch 
+3a05 20600000 rtn 
+
+car_set_ch2:
+3a06 6fe0c5ac fetch 1 ,mem_24g_ch_map1 + 2 
+3a07 67e0c5a4 store 1 ,mem_24g_ch 
+3a08 20600000 rtn 
+
+car_set_ch3:
+3a09 6fe0c5ad fetch 1 ,mem_24g_ch_map1 + 3 
+3a0a 67e0c5a4 store 1 ,mem_24g_ch 
+3a0b 20600000 rtn 
+
+car_set_ch_reset:
+3a0c 58000000 setarg 0 
+3a0d 67e14660 store 2 ,mem_car_le_24g_ch_count 
+3a0e 20600000 rtn 
+
+car_stop_run:
+3a0f 6fe0c65f fetch 1 ,mem_car_le_24g_tx_pair_mode 
+3a10 207a0000 rtn blank 
+3a11 6fe0c67e fetch 1 ,mem_car_24g_loselink_count 
+3a12 d840000f arg 15 ,temp 
+3a13 98467c00 isub temp ,null 
+3a14 24610000 nrtn positive 
+3a15 70467e00 jam 0 ,mem_car_24g_loselink_count 
+3a16 58000000 setarg 0 
+3a17 67e1467b store 2 ,mem_car_24g_rx_payload_temp + 9 
+3a18 2040394b call car_gpio_control_stop 
+3a19 70468904 jam 0x4 ,mem_period_count 
+3a1a 70438c00 jam 0 ,mem_le_adv_enable 
+3a1b 70469901 jam 1 ,mem_adv_control_start_flag 
+3a1c 6fe0c69a fetch 1 ,mem_stop_4w1_flag 
+3a1d 207a0000 rtn blank 
+3a1e 70468900 jam 0x0 ,mem_period_count 
+3a1f 70438c01 jam 1 ,mem_le_adv_enable 
+3a20 20600000 rtn 
+
+car_set_motor:
+3a21 44994006 bpatch patch06_2 ,mem_patch06 
+3a22 6fe3c510 fetch 7 ,mem_24g_rxbuf + 2 
+3a23 67e3c672 store 7 ,mem_car_24g_rx_payload_temp 
+3a24 6fe2c517 fetch 5 ,mem_24g_rxbuf + 9 
+3a25 67e2c679 store 5 ,mem_car_24g_rx_payload_temp + 7 
+3a26 da204673 arg mem_car_24g_rx_payload_temp + 1 ,rega 
+3a27 6fe24662 fetch 4 ,mem_car_24g_addr_other 
+3a28 203a3a7d branch car_reconnect ,blank 
+3a29 da404662 arg mem_car_24g_addr_other ,regb 
+3a2a df200004 arg 4 ,loopcnt 
+3a2b 20407d66 call string_compare 
+3a2c 24628000 nrtn zero 
+3a2d da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+3a2e da404680 arg mem_car_full_control_remote_lap ,regb 
+3a2f df200004 arg 4 ,loopcnt 
+3a30 20407d66 call string_compare 
+3a31 2022ba3c branch car_run_factory_mode_select ,zero 
+3a32 da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+3a33 da4042dd arg mem_le_lap ,regb 
+3a34 df200004 arg 4 ,loopcnt 
+3a35 20407d66 call string_compare 
+3a36 2422ba38 nbranch car_set_unconnect ,zero 
+3a37 20203a40 branch car_run_mode_select 
+
+car_set_unconnect:
+3a38 70465f00 jam g24_unconnect ,mem_car_le_24g_tx_pair_mode 
+3a39 58000000 setarg 0 
+3a3a 67e24662 store 4 ,mem_car_24g_addr_other 
+3a3b 20600000 rtn 
+
+car_run_factory_mode_select:
+3a3c 6fe0c69b fetch 1 ,mem_factory_control_flag 
+3a3d c0003a38 beq 0 ,car_set_unconnect 
+3a3e c000ba40 beq 1 ,car_run_mode_select 
+3a3f 20600000 rtn 
+
+car_run_mode_select:
+3a40 70467e00 jam 0 ,mem_car_24g_loselink_count 
+3a41 6fe1467b fetch 2 ,mem_car_24g_rx_payload_temp + 9 
+3a42 203a3a18 branch car_stop_run + 9 ,blank 
+3a43 20403a47 call car_pwm_mode_adv_flag_init 
+3a44 20403a50 call car_factory_mode_time 
+3a45 20403a55 call car_motor_mode_1 
+3a46 20203a59 branch car_motor_mode_2 
+
+car_pwm_mode_adv_flag_init:
+3a47 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
+3a48 247a0000 nrtn blank 
+3a49 70438c01 jam 1 ,mem_le_adv_enable 
+3a4a 70439701 jam 1 ,mem_le_adv_channel_map 
+3a4b 70469a00 jam 0 ,mem_stop_4w1_flag 
+3a4c 70469900 jam 0 ,mem_adv_control_start_flag 
+3a4d 5800000f setarg 15 
+3a4e 67e14684 store 2 ,mem_100ms_adv_control_timer 
+3a4f 20600000 rtn 
+
+car_factory_mode_time:
+3a50 6fe0c69b fetch 1 ,mem_factory_control_flag 
+3a51 207a0000 rtn blank 
+3a52 5800012c setarg 300 
+3a53 67e14686 store 2 ,mem_100ms_factory_test_control_timer 
+3a54 20600000 rtn 
+
+car_motor_mode_1:
+3a55 6fe0c67c fetch 1 ,mem_car_24g_rx_payload_temp + 10 
+3a56 c000ba62 beq 1 ,car_b 
+3a57 c0013a5d beq 2 ,car_f 
+3a58 20600000 rtn 
+
+car_motor_mode_2:
+3a59 6fe0c67b fetch 1 ,mem_car_24g_rx_payload_temp + 9 
+3a5a c000ba67 beq 1 ,car_l 
+3a5b c0013a6c beq 2 ,car_r 
+3a5c 20600000 rtn 
+
+car_f:
+3a5d 6fe0c67b fetch 1 ,mem_car_24g_rx_payload_temp + 9 
+3a5e c000ba71 beq 1 ,car_fl 
+3a5f c0013a74 beq 2 ,car_fr 
+3a60 7046890a jam 0x0a ,mem_period_count 
+3a61 20203ac9 branch car_lr_motor_right 
+
+car_b:
+3a62 6fe0c67b fetch 1 ,mem_car_24g_rx_payload_temp + 9 
+3a63 c000ba77 beq 1 ,car_bl 
+3a64 c0013a7a beq 2 ,car_br 
+3a65 70468928 jam 0x28 ,mem_period_count 
+3a66 20203ac5 branch car_lr_motor_left 
+
+car_l:
+3a67 6fe0c67c fetch 1 ,mem_car_24g_rx_payload_temp + 10 
+3a68 c000ba77 beq 1 ,car_bl 
+3a69 c0013a71 beq 2 ,car_fl 
+3a6a 7046893a jam 0x3a ,mem_period_count 
+3a6b 20203ad5 branch car_fb_motor_back 
+
+car_r:
+3a6c 6fe0c67c fetch 1 ,mem_car_24g_rx_payload_temp + 10 
+3a6d c000ba7a beq 1 ,car_br 
+3a6e c0013a74 beq 2 ,car_fr 
+3a6f 70468940 jam 0x40 ,mem_period_count 
+3a70 20203ad1 branch car_fb_motor_front 
+
+car_fl:
+3a71 7046891c jam 0x1c ,mem_period_count 
+3a72 20403ac9 call car_lr_motor_right 
+3a73 20203ad5 branch car_fb_motor_back 
+
+car_fr:
+3a74 70468922 jam 0x22 ,mem_period_count 
+3a75 20403ac9 call car_lr_motor_right 
+3a76 20203ad1 branch car_fb_motor_front 
+
+car_bl:
+3a77 70468934 jam 0x34 ,mem_period_count 
+3a78 20403ac5 call car_lr_motor_left 
+3a79 20203ad5 branch car_fb_motor_back 
+
+car_br:
+3a7a 7046892e jam 0x2e ,mem_period_count 
+3a7b 20403ac5 call car_lr_motor_left 
+3a7c 20203ad1 branch car_fb_motor_front 
+
+car_reconnect:
+3a7d da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+3a7e da404680 arg mem_car_full_control_remote_lap ,regb 
+3a7f df200004 arg 4 ,loopcnt 
+3a80 20407d66 call string_compare 
+3a81 2022ba88 branch car_recive_pair_request ,zero 
+3a82 da204677 arg mem_car_24g_rx_payload_temp + 5 ,rega 
+3a83 da4042dd arg mem_le_lap ,regb 
+3a84 df200004 arg 4 ,loopcnt 
+3a85 20407d66 call string_compare 
+3a86 24628000 nrtn zero 
+3a87 20203a88 branch car_recive_pair_request 
+
+car_recive_pair_request:
+3a88 6fe3c510 fetch 7 ,mem_24g_rxbuf + 2 
+3a89 67e3c672 store 7 ,mem_car_24g_rx_payload_temp 
+3a8a 6fe0c65f fetch 1 ,mem_car_le_24g_tx_pair_mode 
+3a8b c0003a8e beq g24_unconnect ,car_send_pair_response 
+3a8c c000ba97 beq g24_connected ,car_send_pair_response_juge 
+3a8d 20600000 rtn 
+
+car_send_pair_response:
+3a8e 20403adc call car_check_close_ice 
+3a8f 70465f01 jam g24_connected ,mem_car_le_24g_tx_pair_mode 
+3a90 704666bb jam g24_rx_pair_respones ,mem_car_24g_tx_payload_temp 
+3a91 6fe24673 fetch 4 ,mem_car_24g_rx_payload_temp + 1 
+3a92 67e24662 store 4 ,mem_car_24g_addr_other 
+3a93 67e2466b store 4 ,mem_car_24g_tx_payload_temp + 5 
+3a94 6fe242dd fetch 4 ,mem_le_lap 
+3a95 67e24667 store 4 ,mem_car_24g_tx_payload_temp + 1 
+3a96 20600000 rtn 
+
+car_send_pair_response_juge:
+3a97 da204673 arg mem_car_24g_rx_payload_temp + 1 ,rega 
+3a98 da404662 arg mem_car_24g_addr_other ,regb 
+3a99 df200004 arg 4 ,loopcnt 
+3a9a 20407d66 call string_compare 
+3a9b 2022ba8e branch car_send_pair_response ,zero 
+
+car_cb_event_timer:
+3a9c 6fe0c67e fetch 1 ,mem_car_24g_loselink_count 
+3a9d 1fe0fe01 increase 1 ,pdata 
+3a9e 67e0c67e store 1 ,mem_car_24g_loselink_count 
+3a9f 20403aa1 call car_100ms_timer_adv_control 
+3aa0 20203aae branch car_100ms_timer_factory_test_control 
+
+car_100ms_timer_adv_control:
+3aa1 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
+3aa2 247a0000 nrtn blank 
+3aa3 6fe0c699 fetch 1 ,mem_adv_control_start_flag 
+3aa4 207a0000 rtn blank 
+3aa5 da604684 arg mem_100ms_adv_control_timer ,regc 
+3aa6 da403aa8 arg car_100ms_timer_adv_control_timeout ,regb 
+3aa7 2020375c branch timer_single_step_2b 
+
+car_100ms_timer_adv_control_timeout:
+3aa8 5800000f setarg 15 
+3aa9 67e14684 store 2 ,mem_100ms_adv_control_timer 
+3aaa 70439707 jam 7 ,mem_le_adv_channel_map 
+3aab 70469900 jam 0 ,mem_adv_control_start_flag 
+3aac 70469a01 jam 1 ,mem_stop_4w1_flag 
+3aad 20600000 rtn 
+
+car_100ms_timer_factory_test_control:
+3aae 6fe0c69b fetch 1 ,mem_factory_control_flag 
+3aaf 207a0000 rtn blank 
+3ab0 da604686 arg mem_100ms_factory_test_control_timer ,regc 
+3ab1 da403ab3 arg car_100ms_timer_factory_test_timeout ,regb 
+3ab2 2020375c branch timer_single_step_2b 
+
+car_100ms_timer_factory_test_timeout:
+3ab3 5800012c setarg 300 
+3ab4 67e14686 store 2 ,mem_100ms_factory_test_control_timer 
+3ab5 70469b00 jam 0 ,mem_factory_control_flag 
+3ab6 20600000 rtn 
+
+car_motor1_status_select:
+3ab7 efe08006 ifetch 1 ,contr 
+3ab8 c0003ac1 beq turn_front ,car_lr_motor_stop 
+3ab9 c000bac5 beq turn_left ,car_lr_motor_left 
+3aba c0013ac9 beq turn_right ,car_lr_motor_right 
+3abb 20600000 rtn 
+
+car_motor2_status_select:
+3abc efe08006 ifetch 1 ,contr 
+3abd c0003acd beq motor_stop ,car_fb_motor_stop 
+3abe c0013ad1 beq go_back ,car_fb_motor_front 
+3abf c000bad5 beq go_front ,car_fb_motor_back 
+3ac0 20600000 rtn 
+
+car_lr_motor_stop:
+3ac1 6848c68c fetcht 1 ,mem_car_motor_left_gpio 
+3ac2 20406eed call gpio_out_inactive 
+3ac3 6848c68d fetcht 1 ,mem_car_motor_right_gpio 
+3ac4 20206eed branch gpio_out_inactive 
+
+car_lr_motor_left:
+3ac5 6848c68c fetcht 1 ,mem_car_motor_left_gpio 
+3ac6 20406ef1 call gpio_out_active 
+3ac7 6848c68d fetcht 1 ,mem_car_motor_right_gpio 
+3ac8 20206eed branch gpio_out_inactive 
+
+car_lr_motor_right:
+3ac9 6848c68c fetcht 1 ,mem_car_motor_left_gpio 
+3aca 20406eed call gpio_out_inactive 
+3acb 6848c68d fetcht 1 ,mem_car_motor_right_gpio 
+3acc 20206ef1 branch gpio_out_active 
+
+car_fb_motor_stop:
+3acd 6848c68e fetcht 1 ,mem_car_motor_front_gpio 
+3ace 20406eed call gpio_out_inactive 
+3acf 6848c68f fetcht 1 ,mem_car_motor_back_gpio 
+3ad0 20206eed branch gpio_out_inactive 
+
+car_fb_motor_front:
+3ad1 6848c68e fetcht 1 ,mem_car_motor_front_gpio 
+3ad2 20406ef1 call gpio_out_active 
+3ad3 6848c68f fetcht 1 ,mem_car_motor_back_gpio 
+3ad4 20206eed branch gpio_out_inactive 
+
+car_fb_motor_back:
+3ad5 6848c68e fetcht 1 ,mem_car_motor_front_gpio 
+3ad6 20406eed call gpio_out_inactive 
+3ad7 6848c68f fetcht 1 ,mem_car_motor_back_gpio 
+3ad8 20206ef1 branch gpio_out_active 
+
+car_le_stop_random_delay_check:
+3ad9 6fe0c69a fetch 1 ,mem_stop_4w1_flag 
+3ada 203a2ad1 branch le_adv_not_match + 13 ,blank 
+3adb 20202acc branch le_adv_not_match + 8 
+
+car_check_close_ice:
+3adc 6fe0c69c fetch 1 ,mem_car_gpio_control_mode 
+3add 207a0000 rtn blank 
+3ade 202023a5 branch lpm_write_ice_disable 
+
+remote_car_init:
+3adf 20407384 call enable_authrom 
+3ae0 4499c006 bpatch patch06_3 ,mem_patch06 
+3ae1 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+3ae2 205a23a9 call lpm_write_ice_enable ,blank 
+3ae3 20403b97 call remote_car_set__lpm_timer_set 
+3ae4 20758000 rtn wake 
+3ae5 2040711d call wdt_set_disable 
+3ae6 58003bec setarg remote_car_idle_process 
+3ae7 67e143e4 store 2 ,mem_cb_idle_process 
+3ae8 58003ca4 setarg remote_car_cb_event_timer 
+3ae9 67e143ec store 2 ,mem_cb_event_timer 
+3aea 20403ba5 call remote_car_get_txid 
+3aeb 20403bc3 call remote_car_txid_check 
+3aec 20403bcc call remote_car_whitening_24g_addr 
+3aed 20203be0 branch remote_car_lpm_gpio_config_flag_init 
+
+remote_car_default_init:
+3aee 7041410a jam 0x0a ,mem_tx_power 
+3aef 7045cf84 jam 0x84 ,mem_24g_tx_phy 
+3af0 7045ce84 jam 0x84 ,mem_24g_rx_phy 
+3af1 58ffffff setarg 0xffffff 
+3af2 67e1c655 store 3 ,mem_remote_full_control_remote_lap 
+3af3 704658ff jam 0xff ,mem_remote_full_control_remote_lap + 3 
+3af4 58000000 setarg 0 
+3af5 67e1c2dd store 3 ,mem_le_lap 
+3af6 58220101 setarg 0x220101 
+3af7 67e1c2e0 store 3 ,mem_le_lap + 3 
+3af8 58858c0c setarg 0x858c0c 
+3af9 67e1c659 store 3 ,mem_remote_car_key_conf0 
+3afa 70465c05 jam 0x05 ,mem_remote_car_key_conf0 + 3 
+3afb 7046490d jam 0x0d ,mem_24g_tx_led_map 
+3afc 70466112 jam 0x12 ,mem_key_public_gpio 
+3afd 58241404 setarg 0x241404 
+3afe 67e1c5aa store 3 ,mem_24g_ch_map1 
+3aff 7045ad34 jam 0x34 ,mem_24g_ch_map1 + 3 
+3b00 7041480c jam 0x0c ,mem_system_clk 
+3b01 58643f35 setarg 0x643f35 
+3b02 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
+3b03 583b2f8f setarg 0x3b2f8f 
+3b04 67e1c0c6 store 3 ,mem_lpm_isogate 
+3b05 7040a720 jam 0x20 ,mem_lpm_hibernate_switch 
+3b06 7040c900 jam 0x00 ,mem_lpm_ldo_sel 
+3b07 7040ca08 jam 0x08 ,mem_lpm_sysctl 
+3b08 7040cbb4 jam 0xb4 ,mem_lpm_hv_sel 
+3b09 70409918 jam 0x18 ,mem_fcomp_div 
+3b0a 70411c3e jam 0x3e ,mem_xtal_c_sel 
+3b0b 58050e08 setarg 0x50e08 
+3b0c 67e1c160 store 3 ,mem_version 
+3b0d 58000003 setarg 0x3 
+3b0e 67e14163 store 2 ,mem_version + 3 
+3b0f 70416a20 jam 0x20 ,mem_le_tx2m_delay 
+3b10 704143ff jam 0xff ,mem_gain_fix 
+3b11 58000c00 setarg 0xc00 
+3b12 67e1409a store 2 ,mem_rx_window_sniff 
+3b13 58000004 setarg 0x4 
+3b14 67e1c144 store 3 ,mem_gain_table 
+3b15 70414708 jam 0x08 ,mem_gain_second_agc_en 
+3b16 70444fa0 jam 0xa0 ,mem_ring_ibias_trim 
+3b17 580002bc setarg 0x2bc 
+3b18 67e14452 store 2 ,mem_ring_ibias_vtune_high 
+3b19 58000190 setarg 0x190 
+3b1a 67e14450 store 2 ,mem_ring_ibias_vtune_low 
+3b1b 70445403 jam 0x03 ,mem_ring_ibias_calc_adc_gpio 
+3b1c 70445509 jam 0x09 ,mem_ring_ibias_calc_adc_channel 
+3b1d 704149ff jam 0xff ,mem_rf_init_data 
+3b1e 58004149 setarg mem_rf_init_data 
+3b1f 67e1409c store 2 ,mem_rf_init_ptr 
+3b20 20406b28 call enable_otp_read 
+3b21 da20488d arg mem_otp_sys_cfg_temp ,rega 
+3b22 da401f00 arg otp_sys_param_cfg ,regb 
+3b23 df20003c arg 60 ,loopcnt 
+3b24 20406b62 call otp_read_data 
+3b25 20406b25 call disable_otp 
+3b26 6fe0c88d fetch 1 ,mem_otp_sys_cfg_temp 
+3b27 245a3b5f ncall remote_car_system_clk ,blank 
+3b28 6fe1c88e fetch 3 ,mem_otp_sys_cfg_temp + 1 
+3b29 245a3b61 ncall remote_car_lpm_xtalcnt ,blank 
+3b2a 6fe1c891 fetch 3 ,mem_otp_sys_cfg_temp + 4 
+3b2b 245a3b63 ncall remote_car_lpm_isogate ,blank 
+3b2c 6fe0c894 fetch 1 ,mem_otp_sys_cfg_temp + 7 
+3b2d 245a3b65 ncall remote_car_lpm_hibernate_switch ,blank 
+3b2e 6fe0c895 fetch 1 ,mem_otp_sys_cfg_temp + 8 
+3b2f 245a3b67 ncall remote_car_lpm_ldo_sel ,blank 
+3b30 6fe0c896 fetch 1 ,mem_otp_sys_cfg_temp + 9 
+3b31 245a3b69 ncall remote_car_lpm_sysctl ,blank 
+3b32 6fe0c897 fetch 1 ,mem_otp_sys_cfg_temp + 10 
+3b33 245a3b6b ncall remote_car_lpm_hv_sel ,blank 
+3b34 6fe0c898 fetch 1 ,mem_otp_sys_cfg_temp + 11 
+3b35 245a3b6d ncall remote_car_fcomp_div ,blank 
+3b36 6fe0c899 fetch 1 ,mem_otp_sys_cfg_temp + 12 
+3b37 245a3b6f ncall remote_car_xtal_c_sel ,blank 
+3b38 6fe2c89a fetch 5 ,mem_otp_sys_cfg_temp + 13 
+3b39 245a3b71 ncall remote_car_version ,blank 
+3b3a 6fe0c89f fetch 1 ,mem_otp_sys_cfg_temp + 18 
+3b3b 245a3b73 ncall remote_car_le_tx2m_delay ,blank 
+3b3c 6fe0c8a0 fetch 1 ,mem_otp_sys_cfg_temp + 19 
+3b3d 245a3b75 ncall remote_car_gain_fix ,blank 
+3b3e 6fe148a1 fetch 2 ,mem_otp_sys_cfg_temp + 20 
+3b3f 245a3b77 ncall remote_car_rx_window_sniff ,blank 
+3b40 6fe1c8a3 fetch 3 ,mem_otp_sys_cfg_temp + 22 
+3b41 245a3b79 ncall remote_car_gain_table ,blank 
+3b42 6fe0c8a6 fetch 1 ,mem_otp_sys_cfg_temp + 25 
+3b43 245a3b7b ncall remote_car_gain_second_agc_en ,blank 
+3b44 6fe0c8a7 fetch 1 ,mem_otp_sys_cfg_temp + 26 
+3b45 245a3b7d ncall remote_car_ring_ibias_trim ,blank 
+3b46 6fe148a8 fetch 2 ,mem_otp_sys_cfg_temp + 27 
+3b47 245a3b7f ncall remote_car_ring_ibias_vtune_high ,blank 
+3b48 6fe148aa fetch 2 ,mem_otp_sys_cfg_temp + 29 
+3b49 245a3b81 ncall remote_car_ring_ibias_vtune_low ,blank 
+3b4a 6fe0c8ac fetch 1 ,mem_otp_sys_cfg_temp + 31 
+3b4b 245a3b83 ncall remote_car_ring_ibias_calc_adc_gpio ,blank 
+3b4c 6fe0c8ad fetch 1 ,mem_otp_sys_cfg_temp + 32 
+3b4d 245a3b85 ncall remote_car_ring_ibias_calc_adc_channel ,blank 
+3b4e 6fe0c8b2 fetch 1 ,mem_otp_sys_cfg_temp + 37 
+3b4f 245a3b87 ncall remote_car_tx_power ,blank 
+3b50 6fe0c8b3 fetch 1 ,mem_otp_sys_cfg_temp + 38 
+3b51 245a3b89 ncall remote_car_24g_tx_phy ,blank 
+3b52 6fe0c8b4 fetch 1 ,mem_otp_sys_cfg_temp + 39 
+3b53 245a3b8b ncall remote_car_24g_rx_phy ,blank 
+3b54 6fe248b5 fetch 4 ,mem_otp_sys_cfg_temp + 40 
+3b55 245a3b8d ncall remote_car_key_conf0 ,blank 
+3b56 6fe0c8b9 fetch 1 ,mem_otp_sys_cfg_temp + 44 
+3b57 245a3b8f ncall remote_car_key_public_gpio ,blank 
+3b58 6fe0c8ba fetch 1 ,mem_otp_sys_cfg_temp + 45 
+3b59 245a3b91 ncall remote_car_24g_tx_led_map ,blank 
+3b5a 6fe248bb fetch 4 ,mem_otp_sys_cfg_temp + 46 
+3b5b 245a3b93 ncall remote_car_24g_addr ,blank 
+3b5c 6fe248bf fetch 4 ,mem_otp_sys_cfg_temp + 50 
+3b5d 245a3b95 ncall remote_car_24g_ch_map1 ,blank 
+3b5e 20600000 rtn 
+
+remote_car_system_clk:
+3b5f 67e0c148 store 1 ,mem_system_clk 
+3b60 20600000 rtn 
+
+remote_car_lpm_xtalcnt:
+3b61 67e1c0c3 store 3 ,mem_lpm_xtalcnt 
+3b62 20600000 rtn 
+
+remote_car_lpm_isogate:
+3b63 67e1c0c6 store 3 ,mem_lpm_isogate 
+3b64 20600000 rtn 
+
+remote_car_lpm_hibernate_switch:
+3b65 67e0c0a7 store 1 ,mem_lpm_hibernate_switch 
+3b66 20600000 rtn 
+
+remote_car_lpm_ldo_sel:
+3b67 67e0c0c9 store 1 ,mem_lpm_ldo_sel 
+3b68 20600000 rtn 
+
+remote_car_lpm_sysctl:
+3b69 67e0c0ca store 1 ,mem_lpm_sysctl 
+3b6a 20600000 rtn 
+
+remote_car_lpm_hv_sel:
+3b6b 67e0c0cb store 1 ,mem_lpm_hv_sel 
+3b6c 20600000 rtn 
+
+remote_car_fcomp_div:
+3b6d 67e0c099 store 1 ,mem_fcomp_div 
+3b6e 20600000 rtn 
+
+remote_car_xtal_c_sel:
+3b6f 67e0c11c store 1 ,mem_xtal_c_sel 
+3b70 20600000 rtn 
+
+remote_car_version:
+3b71 67e2c160 store 5 ,mem_version 
+3b72 20600000 rtn 
+
+remote_car_le_tx2m_delay:
+3b73 67e0c16a store 1 ,mem_le_tx2m_delay 
+3b74 20600000 rtn 
+
+remote_car_gain_fix:
+3b75 67e0c143 store 1 ,mem_gain_fix 
+3b76 20600000 rtn 
+
+remote_car_rx_window_sniff:
+3b77 67e1409a store 2 ,mem_rx_window_sniff 
+3b78 20600000 rtn 
+
+remote_car_gain_table:
+3b79 67e1c144 store 3 ,mem_gain_table 
+3b7a 20600000 rtn 
+
+remote_car_gain_second_agc_en:
+3b7b 67e0c147 store 1 ,mem_gain_second_agc_en 
+3b7c 20600000 rtn 
+
+remote_car_ring_ibias_trim:
+3b7d 67e0c44f store 1 ,mem_ring_ibias_trim 
+3b7e 20600000 rtn 
+
+remote_car_ring_ibias_vtune_high:
+3b7f 67e14452 store 2 ,mem_ring_ibias_vtune_high 
+3b80 20600000 rtn 
+
+remote_car_ring_ibias_vtune_low:
+3b81 67e14450 store 2 ,mem_ring_ibias_vtune_low 
+3b82 20600000 rtn 
+
+remote_car_ring_ibias_calc_adc_gpio:
+3b83 67e0c454 store 1 ,mem_ring_ibias_calc_adc_gpio 
+3b84 20600000 rtn 
+
+remote_car_ring_ibias_calc_adc_channel:
+3b85 67e0c455 store 1 ,mem_ring_ibias_calc_adc_channel 
+3b86 20600000 rtn 
+
+remote_car_tx_power:
+3b87 67e0c141 store 1 ,mem_tx_power 
+3b88 20600000 rtn 
+
+remote_car_24g_tx_phy:
+3b89 67e0c5cf store 1 ,mem_24g_tx_phy 
+3b8a 20600000 rtn 
+
+remote_car_24g_rx_phy:
+3b8b 67e0c5ce store 1 ,mem_24g_rx_phy 
+3b8c 20600000 rtn 
+
+remote_car_key_conf0:
+3b8d 67e24659 store 4 ,mem_remote_car_key_conf0 
+3b8e 20600000 rtn 
+
+remote_car_key_public_gpio:
+3b8f 67e0c661 store 1 ,mem_key_public_gpio 
+3b90 20600000 rtn 
+
+remote_car_24g_tx_led_map:
+3b91 67e0c649 store 1 ,mem_24g_tx_led_map 
+3b92 20600000 rtn 
+
+remote_car_24g_addr:
+3b93 67e245a6 store 4 ,mem_24g_addr 
+3b94 20600000 rtn 
+
+remote_car_24g_ch_map1:
+3b95 67e245aa store 4 ,mem_24g_ch_map1 
+3b96 20600000 rtn 
+
+remote_car_set__lpm_timer_set:
+3b97 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+3b98 c0003b9b beq g24_unconnect ,remote_car_set_uconnect_lpm_time 
+3b99 c000bba0 beq g24_connected ,remote_car_set_connected_lpm_time 
+3b9a 20600000 rtn 
+
+remote_car_set_uconnect_lpm_time:
+3b9b 58000000 setarg 0 
+3b9c 67e1464b store 2 ,mem_24g_lpm_timer_count 
+3b9d 5800012c setarg 300 
+3b9e 67e1464d store 2 ,mem_24g_lpm_enter_count 
+3b9f 20600000 rtn 
+
+remote_car_set_connected_lpm_time:
+3ba0 58000000 setarg 0 
+3ba1 67e1464b store 2 ,mem_24g_lpm_timer_count 
+3ba2 5800000f setarg 15 
+3ba3 67e1464d store 2 ,mem_24g_lpm_enter_count 
+3ba4 20600000 rtn 
+
+remote_car_get_txid:
+3ba5 20406b28 call enable_otp_read 
+3ba6 da20464f arg mem_remote_otp_lot_xy_temp ,rega 
+3ba7 da401fda arg otp_mac_addr ,regb 
+3ba8 df200006 arg 6 ,loopcnt 
+3ba9 20406b62 call otp_read_data 
+3baa 20406b25 call disable_otp 
+3bab 6fe3464f fetch 6 ,mem_remote_otp_lot_xy_temp 
+3bac 207a0000 rtn blank 
+3bad 6fe1464f fetch 2 ,mem_remote_otp_lot_xy_temp 
+3bae 67e142dd store 2 ,mem_le_lap 
+3baf 6fe0c652 fetch 1 ,mem_remote_otp_lot_xy_temp + 3 
+3bb0 67e0c2df store 1 ,mem_le_lap + 2 
+3bb1 6fe0c654 fetch 1 ,mem_remote_otp_lot_xy_temp + 5 
+3bb2 67e0c2e0 store 1 ,mem_le_lap + 3 
+3bb3 6fe0c650 fetch 1 ,mem_remote_otp_lot_xy_temp + 1 
+3bb4 1fe67c1a sub pdata ,26 ,null 
+3bb5 24610000 nrtn positive 
+3bb6 6fe0c651 fetch 1 ,mem_remote_otp_lot_xy_temp + 2 
+3bb7 207a0000 rtn blank 
+3bb8 180a7e00 random pdata 
+3bb9 1fe17e07 and_into 0x07 ,pdata 
+3bba 1fe3fe00 lshift pdata ,pdata 
+3bbb 1ff27e00 lshift4 pdata ,pdata 
+3bbc 6848c650 fetcht 1 ,mem_remote_otp_lot_xy_temp + 1 
+3bbd 9840fe00 iadd temp ,pdata 
+3bbe 67e0c2de store 1 ,mem_le_lap + 1 
+3bbf da2042de arg mem_le_lap + 1 ,rega 
+3bc0 da401fdb arg otp_mac_addr_piecenum ,regb 
+3bc1 df200001 arg 1 ,loopcnt 
+3bc2 20206b33 branch otp_write 
+
+remote_car_txid_check:
+3bc3 da2042dd arg mem_le_lap ,rega 
+3bc4 da404655 arg mem_remote_full_control_remote_lap ,regb 
+3bc5 df200004 arg 4 ,loopcnt 
+3bc6 20407d66 call string_compare 
+3bc7 24628000 nrtn zero 
+3bc8 6fe0c2dd fetch 1 ,mem_le_lap 
+3bc9 1fe0ffff pincrease -1 
+3bca 67e0c2dd store 1 ,mem_le_lap 
+3bcb 20600000 rtn 
+
+remote_car_whitening_24g_addr:
+3bcc df200004 arg 4 ,loopcnt 
+3bcd da6045a6 arg mem_24g_addr ,regc 
+3bce da4000ae arg 0xae ,regb 
+
+remote_car_24g_whitening_loop:
+3bcf 20403bd3 call remote_car_24g_whitening_byte 
+3bd0 1a60a601 increase 1 ,regc 
+3bd1 c2003bcf loop remote_car_24g_whitening_loop 
+3bd2 20600000 rtn 
+
+remote_car_24g_whitening_byte:
+3bd3 da200001 arg 1 ,rega 
+
+remote_car_24g_whitening_byte_loop:
+3bd4 1a43a400 lshift regb ,regb 
+3bd5 2a4ffe07 isolate1 7 ,regb 
+3bd6 2040bbdb call remote_car_24g_whitening_byte_xor ,true 
+3bd7 1a23a200 lshift rega ,rega 
+3bd8 1a227e00 deposit rega 
+3bd9 c3840000 rtnbit1 8 
+3bda 20203bd4 branch remote_car_24g_whitening_byte_loop 
+
+remote_car_24g_whitening_byte_xor:
+3bdb efe08013 ifetch 1 ,regc 
+3bdc 9a22fe00 ixor rega ,pdata 
+3bdd e7e08013 istore 1 ,regc 
+3bde 1a42a411 xor regb ,0x11 ,regb 
+3bdf 20600000 rtn 
+
+remote_car_lpm_gpio_config_flag_init:
+3be0 d8400000 arg 0 ,temp 
+3be1 d8c0465a arg mem_remote_car_key_conf0 + 1 ,contr 
+3be2 df200002 arg 2 ,loopcnt 
+
+remote_car_iocfg_pullup_loop:
+3be3 efe08006 ifetch 1 ,contr 
+3be4 793ffe07 set0 7 ,pdata 
+3be5 1fe20e00 copy pdata ,queue 
+3be6 58000000 setarg 0 
+3be7 f9207e00 qset1 pdata 
+3be8 98408400 iadd temp ,temp 
+3be9 c2003be3 loop remote_car_iocfg_pullup_loop 
+3bea 604a4644 storet 4 ,mem_remote_lpm_gpio_config_flag 
+3beb 20600000 rtn 
+
+remote_car_idle_process:
+3bec 449a4006 bpatch patch06_4 ,mem_patch06 
+3bed 6fe14663 fetch 2 ,mem_remote_le_24g_ch_count 
+3bee 1fe0fe01 increase 1 ,pdata 
+3bef 67e14663 store 2 ,mem_remote_le_24g_ch_count 
+3bf0 1feb7e00 rshift2 pdata ,pdata 
+3bf1 20403bf7 call remote_car_set_24g_ch 
+3bf2 20403c32 call remote_car_g24_recved_ack_parse 
+
+remote_car_24g_matching_process:
+3bf3 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+3bf4 c0003c0b beq g24_unconnect ,remote_car_send_pair_request 
+3bf5 c000bc45 beq g24_connected ,remote_car_send_remote_control 
+3bf6 20600000 rtn 
+
+remote_car_set_24g_ch:
+3bf7 c0003bfc beq 0 ,remote_car_set_ch0 
+3bf8 c000bbff beq 1 ,remote_car_set_ch1 
+3bf9 c0013c02 beq 2 ,remote_car_set_ch2 
+3bfa c001bc05 beq 3 ,remote_car_set_ch3 
+3bfb 20203c08 branch remote_car_set_ch_reset 
+
+remote_car_set_ch0:
+3bfc 6fe0c5aa fetch 1 ,mem_24g_ch_map1 
+3bfd 67e0c5a4 store 1 ,mem_24g_ch 
+3bfe 20600000 rtn 
+
+remote_car_set_ch1:
+3bff 6fe0c5ab fetch 1 ,mem_24g_ch_map1 + 1 
+3c00 67e0c5a4 store 1 ,mem_24g_ch 
+3c01 20600000 rtn 
+
+remote_car_set_ch2:
+3c02 6fe0c5ac fetch 1 ,mem_24g_ch_map1 + 2 
+3c03 67e0c5a4 store 1 ,mem_24g_ch 
+3c04 20600000 rtn 
+
+remote_car_set_ch3:
+3c05 6fe0c5ad fetch 1 ,mem_24g_ch_map1 + 3 
+3c06 67e0c5a4 store 1 ,mem_24g_ch 
+3c07 20600000 rtn 
+
+remote_car_set_ch_reset:
+3c08 58000000 setarg 0 
+3c09 67e14663 store 2 ,mem_remote_le_24g_ch_count 
+3c0a 20600000 rtn 
+
+remote_car_send_pair_request:
+3c0b 70466baa jam g24_tx_pair_request ,mem_remote_24g_tx_payload_temp 
+3c0c 6fe242dd fetch 4 ,mem_le_lap 
+3c0d 67e2466c store 4 ,mem_remote_24g_tx_payload_temp + 1 
+3c0e 20203c0f branch remote_car_g24_sim_tx_with_datalen_set 
+
+remote_car_g24_sim_tx_with_datalen_set:
+3c0f 793f8027 set0 mark_24g_rxmode ,mark 
+3c10 58002ee0 setarg 0x2ee0 
+3c11 67e145a2 store 2 ,mem_24g_rx_window 
+3c12 6fe3c66b fetch 7 ,mem_remote_24g_tx_payload_temp 
+3c13 67e3c530 store 7 ,mem_24g_txbuf 
+3c14 6fe2c672 fetch 5 ,mem_remote_24g_tx_payload_temp + 7 
+3c15 67e2c537 store 5 ,mem_24g_txbuf + 7 
+3c16 df20000c arg len_of_24g_payload ,loopcnt 
+3c17 dfe00000 arg 0 ,pdata 
+3c18 d8c04530 arg mem_24g_txbuf ,contr 
+3c19 20407dd0 call cal_sum 
+3c1a e7e08005 istore 1 ,contw 
+3c1b 5800000c setarg len_of_24g_payload 
+3c1c 1fe0fe01 increase 1 ,pdata 
+3c1d 67e0c59f store 1 ,mem_24g_datalen 
+3c1e 20203c1f branch remote_car_g24_sim_tx 
+
+remote_car_g24_sim_tx:
+3c1f 6fe0c5cf fetch 1 ,mem_24g_tx_phy 
+3c20 20402579 call le_enable_phy_by_pdata 
+3c21 20403217 call g24_syncword_crc8 
+3c22 70003588 jam 0x88 ,mem_rssi_hex 
+3c23 204031c4 call g24_transmit_prep 
+3c24 2040362a call g24_transmit_receive_ack 
+3c25 20403162 call g24_end_of_packet 
+3c26 6fe0c596 fetch 1 ,mem_24g_no_ack 
+3c27 c000bc2b beq no_ack_24g ,remote_car_g24_transmit_no_ack 
+3c28 2437bc2b nbranch remote_car_g24_transmit_no_ack ,user3 
+3c29 242c3c2b nbranch remote_car_g24_transmit_no_ack ,sync 
+3c2a 20403c30 call remote_car_24g_recved_ack 
+
+remote_car_g24_transmit_no_ack:
+3c2b 180a7e00 random pdata 
+3c2c d84001ff arg 0x1ff ,temp 
+3c2d 98417e00 iand temp ,pdata 
+3c2e 1fe0fefa add pdata ,250 ,pdata 
+3c2f 20207c93 branch delay 
+
+remote_car_24g_recved_ack:
+3c30 70466001 jam 1 ,mem_remote_le_24g_recv_ack_flag 
+3c31 20600000 rtn 
+
+remote_car_g24_recved_ack_parse:
+3c32 6fe0c660 fetch 1 ,mem_remote_le_24g_recv_ack_flag 
+3c33 207a0000 rtn blank 
+3c34 70466000 jam 0 ,mem_remote_le_24g_recv_ack_flag 
+3c35 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
+3c36 c05dbc38 beq g24_rx_pair_respones ,remote_car_g24_tx_connected 
+3c37 20600000 rtn 
+
+remote_car_g24_tx_connected:
+3c38 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+3c39 247a0000 nrtn blank 
+3c3a da204515 arg mem_24g_rxbuf + 7 ,rega 
+3c3b da4042dd arg mem_le_lap ,regb 
+3c3c df200004 arg 4 ,loopcnt 
+3c3d 20407d66 call string_compare 
+3c3e 24628000 nrtn zero 
+3c3f 204023a5 call lpm_write_ice_disable 
+3c40 70466601 jam g24_connected ,mem_remote_le_24g_tx_pair_mode 
+3c41 6fe24511 fetch 4 ,mem_24g_rxbuf + 3 
+3c42 67e24667 store 4 ,mem_remote_24g_addr_other 
+3c43 67e24670 store 4 ,mem_remote_24g_tx_payload_temp + 5 
+3c44 20203ba0 branch remote_car_set_connected_lpm_time 
+
+remote_car_send_remote_control:
+3c45 449ac006 bpatch patch06_5 ,mem_patch06 
+3c46 6fe0c665 fetch 1 ,mem_le_24g_tx_send_flag 
+3c47 1fe0fe01 increase 1 ,pdata 
+3c48 67e0c665 store 1 ,mem_le_24g_tx_send_flag 
+3c49 70466b00 jam 0 ,mem_remote_24g_tx_payload_temp 
+3c4a 58000000 setarg 0 
+3c4b 67e1c674 store 3 ,mem_remote_24g_tx_payload_temp + 9 
+3c4c 70466bcc jam g24_tx_remote_control ,mem_remote_24g_tx_payload_temp 
+3c4d 20403c52 call remote_car_scan_key 
+3c4e 20403c83 call remote_car_set_tx_key_led 
+3c4f 6fe0c665 fetch 1 ,mem_le_24g_tx_send_flag 
+3c50 c0643c8a beq 200 ,remote_car_24g_tx_send_none 
+3c51 20203c0f branch remote_car_g24_sim_tx_with_datalen_set 
+
+remote_car_scan_key:
+3c52 6848c661 fetcht 1 ,mem_key_public_gpio 
+3c53 20406eed call gpio_out_inactive 
+3c54 20403c66 call remote_car_key_scan_fb 
+3c55 20403c58 call remote_car_key_scan_lr 
+3c56 6848c661 fetcht 1 ,mem_key_public_gpio 
+3c57 20206f0b branch gpio_set_high_impedance 
+
+remote_car_key_scan_lr:
+3c58 6848c65c fetcht 1 ,mem_remote_car_key_conf3 
+3c59 20406eed call gpio_out_inactive 
+3c5a 6848c65c fetcht 1 ,mem_remote_car_key_conf3 
+3c5b 20406ed7 call gpio_config_input 
+3c5c 20406ee0 call gpio_get_bit 
+3c5d 2020bc7d branch remote_car_set_keyr ,true 
+3c5e 6848c65c fetcht 1 ,mem_remote_car_key_conf3 
+3c5f 20406ef1 call gpio_out_active 
+3c60 200004b0 nop 1200 
+3c61 6848c65b fetcht 1 ,mem_remote_car_key_conf2 
+3c62 20406ed7 call gpio_config_input 
+3c63 20406ee0 call gpio_get_bit 
+3c64 2020bc7a branch remote_car_set_keyl ,true 
+3c65 20600000 rtn 
+
+remote_car_key_scan_fb:
+3c66 6848c659 fetcht 1 ,mem_remote_car_key_conf0 
+3c67 20406eed call gpio_out_inactive 
+3c68 6848c659 fetcht 1 ,mem_remote_car_key_conf0 
+3c69 20406ed7 call gpio_config_input 
+3c6a 20406ee0 call gpio_get_bit 
+3c6b 2020bc74 branch remote_car_set_keyf ,true 
+3c6c 6848c659 fetcht 1 ,mem_remote_car_key_conf0 
+3c6d 20406ef1 call gpio_out_active 
+3c6e 200004b0 nop 1200 
+3c6f 6848c65a fetcht 1 ,mem_remote_car_key_conf1 
+3c70 20406ed7 call gpio_config_input 
+3c71 20406ee0 call gpio_get_bit 
+3c72 2020bc77 branch remote_car_set_keyb ,true 
+3c73 20600000 rtn 
+
+remote_car_set_keyf:
+3c74 70467401 jam 1 ,mem_remote_24g_tx_payload_temp + 9 
+3c75 70466500 jam 0 ,mem_le_24g_tx_send_flag 
+3c76 20600000 rtn 
+
+remote_car_set_keyb:
+3c77 70467402 jam 2 ,mem_remote_24g_tx_payload_temp + 9 
+3c78 70466500 jam 0 ,mem_le_24g_tx_send_flag 
+3c79 20600000 rtn 
+
+remote_car_set_keyl:
+3c7a 70467501 jam 1 ,mem_remote_24g_tx_payload_temp + 10 
+3c7b 70466500 jam 0 ,mem_le_24g_tx_send_flag 
+3c7c 20600000 rtn 
+
+remote_car_set_keyr:
+3c7d 70467502 jam 2 ,mem_remote_24g_tx_payload_temp + 10 
+3c7e 70466500 jam 0 ,mem_le_24g_tx_send_flag 
+3c7f 20600000 rtn 
+
+remote_car_set_keym:
+3c80 70467601 jam 1 ,mem_remote_24g_tx_payload_temp + 11 
+3c81 70466500 jam 0 ,mem_le_24g_tx_send_flag 
+3c82 20600000 rtn 
+
+remote_car_set_tx_key_led:
+3c83 6fe1c674 fetch 3 ,mem_remote_24g_tx_payload_temp + 9 
+3c84 203a3c99 branch remote_car_24g_led_off + 1 ,blank 
+3c85 58000000 setarg 0 
+3c86 67e1464b store 2 ,mem_24g_lpm_timer_count 
+3c87 5800000f setarg 15 
+3c88 67e1464d store 2 ,mem_24g_lpm_enter_count 
+3c89 20203c96 branch remote_car_24g_led_on 
+
+remote_car_24g_tx_send_none:
+3c8a 6fe0c665 fetch 1 ,mem_le_24g_tx_send_flag 
+3c8b 1fe0ffff increase -1 ,pdata 
+3c8c 67e0c665 store 1 ,mem_le_24g_tx_send_flag 
+3c8d 20600000 rtn 
+
+remote_car_24g_set_led:
+3c8e 6fe0c666 fetch 1 ,mem_remote_le_24g_tx_pair_mode 
+3c8f c1008000 rtneq g24_connected 
+3c90 6fe0c64a fetch 1 ,mem_24g_led_count 
+3c91 1fe0fe01 increase 1 ,pdata 
+3c92 67e0c64a store 1 ,mem_24g_led_count 
+3c93 c0013c96 beq 2 ,remote_car_24g_led_on 
+3c94 c0023c98 beq 4 ,remote_car_24g_led_off 
+3c95 20600000 rtn 
+
+remote_car_24g_led_on:
+3c96 6848c649 fetcht 1 ,mem_24g_tx_led_map 
+3c97 20206eed branch gpio_out_inactive 
+
+remote_car_24g_led_off:
+3c98 70464a00 jam 0 ,mem_24g_led_count 
+3c99 6848c649 fetcht 1 ,mem_24g_tx_led_map 
+3c9a 20206ef1 branch gpio_out_active 
+
+remote_car_lpm_timeout_set:
+3c9b 6fe1464d fetch 2 ,mem_24g_lpm_enter_count 
+3c9c 207a0000 rtn blank 
+3c9d 6849464b fetcht 2 ,mem_24g_lpm_timer_count 
+3c9e 9842fe00 ixor temp ,pdata 
+3c9f 205a3ca6 call remote_car_enter_lpm ,blank 
+3ca0 6fe1464b fetch 2 ,mem_24g_lpm_timer_count 
+3ca1 1fe0fe01 increase 1 ,pdata 
+3ca2 67e1464b store 2 ,mem_24g_lpm_timer_count 
+3ca3 20600000 rtn 
+
+remote_car_cb_event_timer:
+3ca4 20403c8e call remote_car_24g_set_led 
+3ca5 20203c9b branch remote_car_lpm_timeout_set 
+
+remote_car_enter_lpm:
+3ca6 204023a5 call lpm_write_ice_disable 
+3ca7 20403cab call remote_car_enter_lpm_gpio_config 
+3ca8 20403cc2 call remote_car_wakeup_config 
+3ca9 d85fffff arg -1 ,temp 
+3caa 20202406 branch lpm_sleep 
+
+remote_car_enter_lpm_gpio_config:
+3cab df200018 arg 24 ,loopcnt 
+3cac 70464800 jam 0 ,mem_remote_lpm_gpio_config_io_temp 
+
+remote_car_enter_lpm_gpio_config_loopcnt:
+3cad 6848c648 fetcht 1 ,mem_remote_lpm_gpio_config_io_temp 
+3cae 18420e00 copy temp ,queue 
+3caf 6fe24644 fetch 4 ,mem_remote_lpm_gpio_config_flag 
+3cb0 afefffff qisolate1 pdata 
+3cb1 2020bcb3 branch remote_car_enter_lpm_gpio_config_pull_up ,true 
+3cb2 18418480 or temp ,0x80 ,temp 
+
+remote_car_enter_lpm_gpio_config_pull_up:
+3cb3 20406ed7 call gpio_config_input 
+3cb4 6fe0c648 fetch 1 ,mem_remote_lpm_gpio_config_io_temp 
+3cb5 1fe0fe01 pincrease 1 
+3cb6 67e0c648 store 1 ,mem_remote_lpm_gpio_config_io_temp 
+3cb7 c2003cad loop remote_car_enter_lpm_gpio_config_loopcnt 
+3cb8 20600000 rtn 
+
+remote_car_set_value:
+3cb9 58000030 setarg 0x30 
+
+remote_car_gpio_wakeup_cfg:
+3cba 18a20c00 copy contw ,contr 
+3cbb e8408006 ifetcht 1 ,contr 
+3cbc 9840fe00 iadd temp ,pdata 
+3cbd e7e08005 istore 1 ,contw 
+3cbe d8a00016 arg mem_gpio_wakeup_cfg ,contw 
+3cbf d8c0465b arg mem_remote_car_key_conf0 + 2 ,contr 
+3cc0 c2003cc7 loop remote_car_wakeup_config_loop 
+3cc1 20600000 rtn 
+
+remote_car_wakeup_config:
+3cc2 58000000 setarg 0 
+3cc3 67e60016 store 0x0c ,mem_gpio_wakeup_cfg 
+3cc4 d8a00016 arg mem_gpio_wakeup_cfg ,contw 
+3cc5 d8c0465a arg mem_remote_car_key_conf0 + 1 ,contr 
+3cc6 df200002 arg 2 ,loopcnt 
+
+remote_car_wakeup_config_loop:
+3cc7 efe08006 ifetch 1 ,contr 
+3cc8 793ffe07 set0 7 ,pdata 
+3cc9 1fe6fc02 div pdata ,2 
+3cca 20407d64 call wait_div_end 
+3ccb 1807fe00 quotient pdata 
+3ccc 98a08a00 iadd contw ,contw 
+3ccd 18077e00 remainder pdata 
+3cce 243a3cb9 nbranch remote_car_set_value ,blank 
+3ccf 58000003 setarg 0x03 
+3cd0 20203cba branch remote_car_gpio_wakeup_cfg 
+
+dongle_init:
+3cd1 58003d04 setarg dongle_dispatch 
+3cd2 67e145f7 store 2 ,mem_cb_24g_receive_process 
+3cd3 58003dfe setarg dongle_g24_mouse 
+3cd4 67e145fb store 2 ,mem_cb_24g_data_device1 
+3cd5 58003e0f setarg dongle_g24_kb 
+3cd6 67e145fd store 2 ,mem_cb_24g_data_device2 
+3cd7 58003dd0 setarg dongle_ackpayload_prep 
+3cd8 67e145f9 store 2 ,mem_cb_24g_ackpayload 
+3cd9 58003d13 setarg dongle_usb_config 
+3cda 67e10837 store 2 ,mem_cb_usb_config 
+3cdb 20207902 branch usb_init 
+
+dongle_default_init:
+3cdc 449b4006 bpatch patch06_6 ,mem_patch06 
+3cdd 20403d09 call dongle_read_kb_bind_status 
+3cde 20403cff call dongle_xtal_select 
+3cdf 6fe0c680 fetch 1 ,mem_dg_sys_config 
+3ce0 2feffe05 isolate1 dg_enable_eeprom ,pdata 
+3ce1 2020bce5 branch dongle_default_no_eeprom ,true 
+3ce2 6fe0c680 fetch 1 ,mem_dg_sys_config 
+3ce3 2feffe06 isolate1 dg_enable_new_chmap ,pdata 
+3ce4 2040b24a call g24_chamap_param_update ,true 
+
+dongle_default_no_eeprom:
+3ce5 6fe0c6ad fetch 1 ,mem_dg_24g_tx_power_default 
+3ce6 67e0c141 store 1 ,mem_tx_power 
+3ce7 7045e9ff jam 0xff ,mem_rssi_buff_index 
+3ce8 5800097d setarg mem_dg_rssi_noise_buffer 
+3ce9 67e14657 store 2 ,mem_rssi_noise_buffer_ptr 
+3cea 58000a7d setarg mem_dg_rssi_noise_dg_buffer 
+3ceb 67e14659 store 2 ,mem_rssi_noise_self_buffer_ptr 
+3cec 58000b7d setarg mem_dg_rssi_noise_ms_buffer 
+3ced 67e1465b store 2 ,mem_rssi_noise_device1_buffer_ptr 
+3cee 58000c7d setarg mem_dg_rssi_noise_kb_buffer 
+3cef 67e1465d store 2 ,mem_rssi_noise_device2_buffer_ptr 
+3cf0 7045e885 jam tx_power_f5db ,mem_24g_pair_tx_power 
+3cf1 7046ab00 jam 0 ,mem_dg_kb_bind_success 
+3cf2 70464200 jam 0 ,mem_24g_bind_device_living 
+3cf3 20403260 call g24_enable_1m 
+3cf4 6fe0c680 fetch 1 ,mem_dg_sys_config 
+3cf5 2feffe03 isolate1 dg_enable_24g_2m ,pdata 
+3cf6 2040b263 call g24_enable_2m ,true 
+3cf7 20403378 call g24_receive_init 
+3cf8 20403266 call g24_pair_param_init 
+3cf9 2040323a call g24_chmap_param_init 
+3cfa 6fe0c68a fetch 1 ,mem_dg_usb_tx_interval 
+3cfb 67e08839 store 1 ,mem_usb_tx_interval 
+3cfc 6fe4c681 fetch 9 ,mem_dg_usb_vid_pid 
+3cfd 67e4883a store 9 ,mem_usb_vid_pid 
+3cfe 20600000 rtn 
+
+dongle_xtal_select:
+3cff 70409918 jam xtal_24m ,mem_fcomp_div 
+3d00 6fe0c680 fetch 1 ,mem_dg_sys_config 
+3d01 c4038000 rtnbit0 dg_enable_xtal_24m 
+3d02 70409910 jam xtal_16m ,mem_fcomp_div 
+3d03 20600000 rtn 
+
+dongle_dispatch:
+3d04 6fe0c627 fetch 1 ,mem_24g_pair_mode 
+3d05 c0003dc0 beq 0x00 ,dongle_auto_bind 
+3d06 c000bd3d beq 0x01 ,dongle_pc_bind 
+3d07 c007bd39 beq 0x0f ,dongle_all_powerful 
+3d08 20600000 rtn 
+
+dongle_read_kb_bind_status:
+3d09 449bc006 bpatch patch06_7 ,mem_patch06 
+3d0a da401fdf arg dongle_kb_bind_efuse_offect ,regb 
+3d0b da20465f arg mem_dg_kb_bind_flag ,rega 
+3d0c df200001 arg 1 ,loopcnt 
+3d0d 20206b62 branch otp_read_data 
+
+dongle_write_kb_bind_status:
+3d0e 449c4007 bpatch patch07_0 ,mem_patch07 
+3d0f df200001 arg 1 ,loopcnt 
+3d10 da20465f arg mem_dg_kb_bind_flag ,rega 
+3d11 da401fdf arg dongle_kb_bind_efuse_offect ,regb 
+3d12 20206b33 branch otp_write 
+
+dongle_usb_config:
+3d13 6fe0c680 fetch 1 ,mem_dg_sys_config 
+3d14 c2823d17 bbit1 dg_enable_kb_icon ,dongle_usb_config_kb 
+3d15 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
+3d16 c0ad3d1b bne dongle_kb_bind_success ,dongle_usb_config_param 
+
+dongle_usb_config_kb:
+3d17 70465f5a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+3d18 6ff21404 fetch 4 ,usb_devicedata_addr + 9 
+3d19 79207e1d set1 29 ,pdata 
+3d1a 67e20792 store 4 ,mem_devicedesc + 9 
+
+dongle_usb_config_param:
+3d1b 449cc007 bpatch patch07_1 ,mem_patch07 
+3d1c 20403d33 call dongle_usb_device_name 
+3d1d 20407956 call usb_tx_interval_config 
+3d1e 20403d20 call dongle_usb_vid_pid_config 
+3d1f 20203d29 branch dongle_usb_hid_icon_config 
+
+dongle_usb_vid_pid_config:
+3d20 6fe0883a fetch 1 ,mem_usb_vid_pid 
+3d21 207a0000 rtn blank 
+3d22 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
+3d23 c02d3d27 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+
+dongle_usb_vid_pid_for_mouse_only_auto_pair:
+3d24 6fe2083b fetch 4 ,mem_usb_vid_pid + 1 
+
+dongle_usb_vid_pid_store:
+3d25 67e20792 store 4 ,mem_devicedesc + 9 
+3d26 20600000 rtn 
+
+dongle_usb_vid_pid_for_suit:
+3d27 6fe2083f fetch 4 ,mem_usb_vid_pid + 5 
+3d28 20203d25 branch dongle_usb_vid_pid_store 
+
+dongle_usb_hid_icon_config:
+3d29 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
+3d2a c02d3d2f beq dongle_kb_bind_success ,dongle_usb_kb_hidreportdesc 
+3d2b 580092aa setarg usb_kbdata_vendor_define_addr 
+3d2c 67e10785 store 2 ,mem_hidreportdesc_kb 
+3d2d 7007b61a jam 0x1a ,mem_confdesc + 26 
+3d2e 20600000 rtn 
+
+dongle_usb_kb_hidreportdesc:
+3d2f 580092c5 setarg usb_kbdata_addr 
+3d30 67e10785 store 2 ,mem_hidreportdesc_kb 
+3d31 7007b641 jam 0x41 ,mem_confdesc + 26 
+3d32 20600000 rtn 
+
+dongle_usb_device_name:
+3d33 6fe0c68b fetch 1 ,mem_dg_usb_device_name 
+3d34 207a0000 rtn blank 
+3d35 d8c0468b arg mem_dg_usb_device_name ,contr 
+3d36 d8a007fb arg mem_string2 ,contw 
+3d37 df200020 arg 32 ,loopcnt 
+3d38 20207cdc branch memcpy 
+
+dongle_all_powerful:
+3d39 20403436 call g24_switch_work_mode 
+
+dongle_all_powerful_loop:
+3d3a 20403dc8 call dongle_work_mode_auto 
+3d3b 20403d8e call dongle_usb_dispatch 
+3d3c 20203d3a branch dongle_all_powerful_loop 
+
+dongle_pc_bind:
+3d3d 20403436 call g24_switch_work_mode 
+
+dongle_pc_bind_loop:
+3d3e 20403dc8 call dongle_work_mode_auto 
+3d3f 2040343f call g24_bind_mode_auto 
+3d40 20403d8e call dongle_usb_dispatch 
+3d41 20203d3e branch dongle_pc_bind_loop 
+
+dongle_g24_blank_data_process:
+3d42 449d4007 bpatch patch07_2 ,mem_patch07 
+3d43 20403d48 call dongle_g24_ms_blank_data 
+3d44 20403d57 call dongle_g24_kb_blank_data 
+3d45 20403d67 call dongle_g24_kb_sys_ctrl_blank_data 
+3d46 20403d81 call dongle_g24_kb_bit_consumer_blank_data 
+3d47 20203d74 branch dongle_g24_kb_mul_blank_data 
+
+dongle_g24_ms_blank_data:
+3d48 6fe0c67f fetch 1 ,mem_dg_ms_blank_data_enable 
+3d49 207a0000 rtn blank 
+3d4a d8e0000d arg g24_timer_ms_blank ,queue 
+3d4b 20407cf1 call timer_check 
+3d4c 247a0000 nrtn blank 
+3d4d 70467f00 jam 0 ,mem_dg_ms_blank_data_enable 
+3d4e 58000001 setarg ms_report_id 
+3d4f 67e088f1 store 1 ,mem_usb_mouse_data 
+3d50 58000000 setarg 0 
+3d51 e7e38005 istore 7 ,contw 
+
+dongle_usb_tx_ms_data:
+3d52 7008ea20 jam usb_ep2_ms ,mem_usb_ep2_data 
+
+dongle_usb_tx_enable_ep2:
+3d53 6fe088eb fetch 1 ,mem_usb_tx_enable 
+3d54 79207e02 set1 2 ,pdata 
+3d55 67e088eb store 1 ,mem_usb_tx_enable 
+3d56 20600000 rtn 
+
+dongle_g24_kb_blank_data:
+3d57 6fe0c67c fetch 1 ,mem_dg_kb_blank_data_enable 
+3d58 207a0000 rtn blank 
+3d59 d8e0000e arg g24_timer_kb_blank ,queue 
+3d5a 20407cf1 call timer_check 
+3d5b 247a0000 nrtn blank 
+3d5c 70467c00 jam 0 ,mem_dg_kb_blank_data_enable 
+3d5d d8a00901 arg mem_usb_kb_data ,contw 
+3d5e 20407c9b call memset0_16 
+3d5f 6fe40901 fetch 8 ,mem_usb_kb_data 
+3d60 67e44668 store 8 ,mem_dg_kb_data_last_data 
+
+dongle_usb_tx_kb_data:
+3d61 70090100 jam kb_normal_report_id ,mem_usb_kb_data 
+
+dongle_usb_tx_enable_ep1:
+3d62 7008e910 jam usb_ep1_kb ,mem_usb_ep1_data 
+3d63 6fe088eb fetch 1 ,mem_usb_tx_enable 
+3d64 79207e01 set1 1 ,pdata 
+3d65 67e088eb store 1 ,mem_usb_tx_enable 
+3d66 20600000 rtn 
+
+dongle_g24_kb_sys_ctrl_blank_data:
+3d67 6fe0c67e fetch 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+3d68 207a0000 rtn blank 
+3d69 d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
+3d6a 20407cf1 call timer_check 
+3d6b 247a0000 nrtn blank 
+3d6c 70467e00 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+3d6d d8a00929 arg mem_usb_kb_system ,contw 
+3d6e 20407c9b call memset0_16 
+3d6f 70092902 jam kb_system_conctrl_report_id ,mem_usb_kb_system 
+3d70 6fe10929 fetch 2 ,mem_usb_kb_system 
+3d71 67e14676 store 2 ,mem_dg_kb_system_sta_data 
+
+dongle_usb_tx_sys_ctrl_data:
+3d72 7008ea22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+3d73 20203d53 branch dongle_usb_tx_enable_ep2 
+
+dongle_g24_kb_mul_blank_data:
+3d74 6fe0c67d fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+3d75 207a0000 rtn blank 
+3d76 d8e0000c arg g24_timer_kb_mul_blank ,queue 
+3d77 20407cf1 call timer_check 
+3d78 247a0000 nrtn blank 
+3d79 70467d00 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+3d7a d8a00921 arg mem_usb_kb_multikey ,contw 
+3d7b 20407c9b call memset0_16 
+3d7c 70092103 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+3d7d 6fe18921 fetch 3 ,mem_usb_kb_multikey 
+3d7e 67e1c673 store 3 ,mem_dg_kb_multikey_last_data 
+
+dongle_usb_tx_multikey_data:
+3d7f 7008ea21 jam usb_ep2_multikey ,mem_usb_ep2_data 
+3d80 20203d53 branch dongle_usb_tx_enable_ep2 
+
+dongle_g24_kb_bit_consumer_blank_data:
+3d81 6fe0c6ae fetch 1 ,mem_dg_kb_bit_consumer_blank_data_enable 
+3d82 207a0000 rtn blank 
+3d83 d8e00006 arg g24_timer_kb_bit_consumer_blank ,queue 
+3d84 20407cf1 call timer_check 
+3d85 247a0000 nrtn blank 
+3d86 7046ae00 jam 0 ,mem_dg_kb_bit_consumer_blank_data_enable 
+3d87 d8a00921 arg mem_usb_kb_multikey ,contw 
+3d88 20407c9b call memset0_16 
+3d89 70092105 jam kb_bit_consumer_report_id ,mem_usb_kb_multikey 
+3d8a 6fe20921 fetch 4 ,mem_usb_kb_multikey 
+3d8b 67e246b3 store 4 ,mem_dg_kb_bit_consumer_last_data 
+
+dongle_usb_tx_bit_consumer_data:
+3d8c 7008ea23 jam usb_ep2_bit_consumer ,mem_usb_ep2_data 
+3d8d 20203d53 branch dongle_usb_tx_enable_ep2 
+
+dongle_usb_dispatch:
+3d8e 449dc007 bpatch patch07_3 ,mem_patch07 
+3d8f 6fe088df fetch 1 ,mem_usb_remote_wakeup 
+3d90 205a3dda call dongle_clear_pc_sleep_flag ,blank 
+3d91 204078f6 call usb_isr 
+3d92 6fe088d5 fetch 1 ,mem_usb0_get_set_report 
+3d93 207a0000 rtn blank 
+3d94 7008d500 jam 0 ,mem_usb0_get_set_report 
+3d95 6fe108d3 fetch 2 ,mem_usb_setup_bvalue_temp 
+3d96 d84002ba arg pc_set_report ,temp 
+3d97 98467c00 isub temp ,null 
+3d98 24628000 nrtn zero 
+3d99 6fe08853 fetch 1 ,mem_usb0_set_report_data 
+3d9a c1dd0000 rtnne pc_report_id 
+3d9b 6fe08854 fetch 1 ,mem_usb0_set_report_data + 1 
+3d9c c0503da3 beq command_mode ,dongle_dispose_cmd_mode 
+3d9d c050bda9 beq command_bind ,dongle_dispose_cmd_bind 
+3d9e c0533db5 beq command_current_project ,dongle_dispose_cmd_current_project 
+3d9f c053bdb7 beq command_current_mode ,dongle_dispose_cmd_current_mode 
+3da0 c054bdbd beq command_current_fw_version ,dongle_dispose_cmd_current_fw_version 
+
+dongle_usb0_data_ready_report_set0:
+3da1 7008d600 jam 0 ,mem_usb0_data_ready_report 
+3da2 20600000 rtn 
+
+dongle_dispose_cmd_mode:
+3da3 6fe08855 fetch 1 ,mem_usb0_set_report_data + 2 
+3da4 c040bda6 beq com_mode_bind ,dongle_enter_bind_mode 
+3da5 20203da1 branch dongle_usb0_data_ready_report_set0 
+
+dongle_enter_bind_mode:
+3da6 204032da call g24_bind_mode_enable 
+
+dongle_usb0_data_ready_report_set1:
+3da7 7008d601 jam 1 ,mem_usb0_data_ready_report 
+3da8 20600000 rtn 
+
+dongle_dispose_cmd_bind:
+3da9 6fe08855 fetch 1 ,mem_usb0_set_report_data + 2 
+3daa c000bdae beq com_bind_get ,dongle_dispose_cmd_get_bind 
+3dab c0423db1 beq com_bind_exit ,dongle_dispose_cmd_exit_bind 
+3dac c053bdb3 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+3dad 20203da1 branch dongle_usb0_data_ready_report_set0 
+
+dongle_dispose_cmd_get_bind:
+3dae 6fe0c5ec fetch 1 ,mem_24g_bind_device_status 
+3daf 67e08894 store 1 ,mem_usb0_get_report_data + 1 
+3db0 20203da7 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_exit_bind:
+3db1 20403437 call g24_work_mode_enable 
+3db2 20203dae branch dongle_dispose_cmd_get_bind 
+
+dongle_dispose_cmd_read_mode:
+
+dongle_dispose_in_bind_mode:
+3db3 700894a1 jam command_bind ,mem_usb0_get_report_data + 1 
+3db4 20203da7 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_project:
+3db5 70089415 jam product_id ,mem_usb0_get_report_data + 1 
+3db6 20203da7 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_mode:
+3db7 6fe0c62d fetch 1 ,mem_24g_work_mode 
+3db8 c0003dbb beq dongle_work ,dongle_dispose_in_work_mode 
+3db9 c000bdb3 beq dongle_bind ,dongle_dispose_in_bind_mode 
+3dba 20600000 rtn 
+
+dongle_dispose_in_work_mode:
+3dbb 700894a0 jam command_mode ,mem_usb0_get_report_data + 1 
+3dbc 20203da7 branch dongle_usb0_data_ready_report_set1 
+
+dongle_dispose_cmd_current_fw_version:
+3dbd 6fe246b7 fetch 4 ,mem_dg_device_version 
+3dbe 67e20894 store 4 ,mem_usb0_get_report_data + 1 
+3dbf 20203da7 branch dongle_usb0_data_ready_report_set1 
+
+dongle_auto_bind:
+3dc0 204033d8 call g24_mode_switch_init 
+
+dongle_auto_bind_loop:
+3dc1 204033dd call g24_mode_switch_bind_work 
+3dc2 20403403 call g24_mode_switch_bind_search 
+3dc3 20403dc8 call dongle_work_mode_auto 
+3dc4 2040343f call g24_bind_mode_auto 
+3dc5 2040345e call g24_search_mode_auto 
+3dc6 20403d8e call dongle_usb_dispatch 
+3dc7 20203dc1 branch dongle_auto_bind_loop 
+
+dongle_work_mode_auto:
+3dc8 449e4007 bpatch patch07_4 ,mem_patch07 
+3dc9 6fe0c62d fetch 1 ,mem_24g_work_mode 
+3dca c1800000 rtnne dongle_work 
+3dcb 2040343a call g24_work_mode_start 
+3dcc 20403d42 call dongle_g24_blank_data_process 
+3dcd 6fe0c627 fetch 1 ,mem_24g_pair_mode 
+3dce 247a0000 nrtn blank 
+3dcf 202034e0 branch g24_nodata_process 
+
+dongle_ackpayload_prep:
+3dd0 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+3dd1 c000bdd3 beq datatype_device1 ,dongle_ackpayload_prep_mouse 
+3dd2 c0013ddc beq datatype_device2 ,dongle_ackpayload_prep_keyboard 
+
+dongle_ackpayload_prep_mouse:
+3dd3 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
+3dd4 c2803de2 bbit1 0 ,dongle_pc_sleep_ackpayload_prep_mouse 
+3dd5 20203dde branch dongle_ackpayload_prep_end 
+
+dongle_set_pc_sleep_flag:
+3dd6 6fe0c3cf fetch 1 ,mem_device_option 
+3dd7 c1820000 rtnne dvc_op_dongle 
+3dd8 7046ac03 jam 3 ,mem_dg_pc_sleep_flag 
+3dd9 20600000 rtn 
+
+dongle_clear_pc_sleep_flag:
+3dda 7046ac00 jam 0 ,mem_dg_pc_sleep_flag 
+3ddb 20600000 rtn 
+
+dongle_ackpayload_prep_keyboard:
+3ddc 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
+3ddd c280bde6 bbit1 1 ,dongle_pc_sleep_ackpayload_prep_keyboard 
+
+dongle_ackpayload_prep_end:
+3dde 6fe0c628 fetch 1 ,mem_24g_ackpayload_enable 
+3ddf c000bded beq bind_ackpayload ,dongle_g24_bind_ackpayload_prep 
+3de0 c001bdf6 beq kb_led_ackpayload ,dongle_g24_kb_led_ackpayload_prep 
+3de1 20600000 rtn 
+
+dongle_pc_sleep_ackpayload_prep_mouse:
+3de2 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
+3de3 793ffe00 set0 0 ,pdata 
+3de4 67e0c6ac store 1 ,mem_dg_pc_sleep_flag 
+3de5 20203de9 branch dongle_pc_sleep_ackpayload_prep 
+
+dongle_pc_sleep_ackpayload_prep_keyboard:
+3de6 6fe0c6ac fetch 1 ,mem_dg_pc_sleep_flag 
+3de7 793ffe01 set0 1 ,pdata 
+3de8 67e0c6ac store 1 ,mem_dg_pc_sleep_flag 
+
+dongle_pc_sleep_ackpayload_prep:
+3de9 70459f01 jam 0x01 ,mem_24g_datalen 
+3dea 580000ff setarg 0xff 
+3deb 67e0c530 store 1 ,mem_24g_txbuf 
+3dec 20600000 rtn 
+
+dongle_g24_bind_ackpayload_prep:
+3ded 449ec007 bpatch patch07_5 ,mem_patch07 
+3dee 70462801 jam 1 ,mem_24g_ackpayload_enable 
+3def 6fe0c62d fetch 1 ,mem_24g_work_mode 
+3df0 c1000000 rtneq dongle_work 
+3df1 6fe0c627 fetch 1 ,mem_24g_pair_mode 
+3df2 247a0000 nrtn blank 
+3df3 2040335b call g24_binding_device_check 
+3df4 24778000 nrtn user3 
+3df5 202032e8 branch g24_bind_ackpayload_prep 
+
+dongle_g24_kb_led_ackpayload_prep:
+3df6 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
+3df7 c000b2e8 beq datatype_device1 ,g24_bind_ackpayload_prep 
+3df8 c07fb2e8 beq datatype_attemp ,g24_bind_ackpayload_prep 
+3df9 7008d700 jam 0 ,mem_usb_tx_win_enable 
+3dfa 70459f01 jam 0x01 ,mem_24g_datalen 
+3dfb 6fe0c638 fetch 1 ,mem_24g_led_status 
+3dfc 67e0c530 store 1 ,mem_24g_txbuf 
+3dfd 20600000 rtn 
+
+dongle_g24_mouse:
+3dfe 58000001 setarg ms_report_id 
+3dff 67e088f1 store 1 ,mem_usb_mouse_data 
+3e00 6fe3c602 fetch 7 ,mem_24g_rxdata_temp + 3 
+3e01 e7e38005 istore 7 ,contw 
+3e02 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+3e03 245a3e07 ncall dongle_g24_ms_enable_blank_data_forcibly ,blank 
+3e04 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+3e05 205a3e0b call dongle_g24_ms_disable_blank_data_forcibly ,blank 
+3e06 20203d52 branch dongle_usb_tx_ms_data 
+
+dongle_g24_ms_enable_blank_data_forcibly:
+3e07 70467f01 jam 1 ,mem_dg_ms_blank_data_enable 
+3e08 58000180 setarg timer_ms_blank_delay 
+3e09 d8e0000d arg g24_timer_ms_blank ,queue 
+3e0a 20207ce3 branch timer_init 
+
+dongle_g24_ms_disable_blank_data_forcibly:
+3e0b 70467f00 jam 0 ,mem_dg_ms_blank_data_enable 
+3e0c 58000000 setarg 0 
+3e0d d8e0000d arg g24_timer_ms_blank ,queue 
+3e0e 20207ce3 branch timer_init 
+
+dongle_g24_kb:
+3e0f 6fe0c602 fetch 1 ,mem_24g_rxdata_temp + 3 
+3e10 c0003e15 beq 0 ,dongle_g24_kb_type0 
+3e11 c0013e60 beq 2 ,dongle_g24_kb_type2 
+3e12 c001be30 beq 3 ,dongle_g24_kb_type3 
+3e13 c002be48 beq 5 ,dongle_g24_kb_type_bit_consumer 
+3e14 20203397 branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_type0:
+3e15 6fe0c604 fetch 1 ,mem_24g_rxdata_temp + 5 
+3e16 67e0c628 store 1 ,mem_24g_ackpayload_enable 
+3e17 70460400 jam 0 ,mem_24g_rxdata_temp + 5 
+3e18 d8a00901 arg mem_usb_kb_data ,contw 
+3e19 d8c04603 arg mem_24g_rxdata_temp + 4 ,contr 
+3e1a df200008 arg 8 ,loopcnt 
+3e1b 20407cdc call memcpy 
+3e1c 6fe40901 fetch 8 ,mem_usb_kb_data 
+3e1d 245a3e28 ncall dongle_g24_kb_enable_blank_data_forcibly ,blank 
+3e1e 6fe40901 fetch 8 ,mem_usb_kb_data 
+3e1f 205a3e2c call dongle_g24_kb_disable_blank_data_forcibly ,blank 
+3e20 6fe40901 fetch 8 ,mem_usb_kb_data 
+3e21 67e44660 store 8 ,mem_dg_kb_data_sta_data 
+3e22 684c4668 fetcht 8 ,mem_dg_kb_data_last_data 
+3e23 98467c00 isub temp ,null 
+3e24 2442bd62 ncall dongle_usb_tx_enable_ep1 ,zero 
+3e25 6fe44660 fetch 8 ,mem_dg_kb_data_sta_data 
+3e26 67e44668 store 8 ,mem_dg_kb_data_last_data 
+3e27 20203397 branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_enable_blank_data_forcibly:
+3e28 70467c01 jam 1 ,mem_dg_kb_blank_data_enable 
+3e29 58000180 setarg timer_kb_blank_delay 
+3e2a d8e0000e arg g24_timer_kb_blank ,queue 
+3e2b 20207ce3 branch timer_init 
+
+dongle_g24_kb_disable_blank_data_forcibly:
+3e2c 70467c00 jam 0 ,mem_dg_kb_blank_data_enable 
+3e2d 58000000 setarg 0 
+3e2e d8e0000e arg g24_timer_kb_blank ,queue 
+3e2f 20207ce3 branch timer_init 
+
+dongle_g24_kb_type3:
+3e30 d8a00921 arg mem_usb_kb_multikey ,contw 
+3e31 d8c04602 arg mem_24g_rxdata_temp + 3 ,contr 
+3e32 df200003 arg 3 ,loopcnt 
+3e33 20407cdc call memcpy 
+3e34 6fe10922 fetch 2 ,mem_usb_kb_multikey + 1 
+3e35 245a3e40 ncall dongle_g24_kb_mul_enable_blank_data_forcibly ,blank 
+3e36 6fe10922 fetch 2 ,mem_usb_kb_multikey + 1 
+3e37 205a3e44 call dongle_g24_kb_mul_disable_blank_data_forcibly ,blank 
+3e38 6fe18921 fetch 3 ,mem_usb_kb_multikey 
+3e39 67e1c670 store 3 ,mem_dg_kb_multikey_sta_data 
+3e3a 6849c673 fetcht 3 ,mem_dg_kb_multikey_last_data 
+3e3b 98467c00 isub temp ,null 
+3e3c 2442bd7f ncall dongle_usb_tx_multikey_data ,zero 
+3e3d 6fe1c670 fetch 3 ,mem_dg_kb_multikey_sta_data 
+3e3e 67e1c673 store 3 ,mem_dg_kb_multikey_last_data 
+3e3f 20203397 branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_mul_enable_blank_data_forcibly:
+3e40 70467d01 jam 1 ,mem_dg_kb_mul_blank_data_enable 
+3e41 58000180 setarg timer_kb_mul_blank_delay 
+3e42 d8e0000c arg g24_timer_kb_mul_blank ,queue 
+3e43 20207ce3 branch timer_init 
+
+dongle_g24_kb_mul_disable_blank_data_forcibly:
+3e44 70467d00 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+3e45 58000000 setarg 0 
+3e46 d8e0000c arg g24_timer_kb_mul_blank ,queue 
+3e47 20207ce3 branch timer_init 
+
+dongle_g24_kb_type_bit_consumer:
+3e48 d8a00921 arg mem_usb_kb_multikey ,contw 
+3e49 d8c04602 arg mem_24g_rxdata_temp + 3 ,contr 
+3e4a df200004 arg 4 ,loopcnt 
+3e4b 20407cdc call memcpy 
+3e4c 6fe18922 fetch 3 ,mem_usb_kb_multikey + 1 
+3e4d 245a3e58 ncall dongle_g24_kb_bit_consumer_enable_blank_data_forcibly ,blank 
+3e4e 6fe18922 fetch 3 ,mem_usb_kb_multikey + 1 
+3e4f 205a3e5c call dongle_g24_kb_bit_consumer_disable_blank_data_forcibly ,blank 
+3e50 6fe18922 fetch 3 ,mem_usb_kb_multikey + 1 
+3e51 67e1c6af store 3 ,mem_dg_kb_bit_consumer_sta_data 
+3e52 6849c6b3 fetcht 3 ,mem_dg_kb_bit_consumer_last_data 
+3e53 98467c00 isub temp ,null 
+3e54 2442bd8c ncall dongle_usb_tx_bit_consumer_data ,zero 
+3e55 6fe1c6af fetch 3 ,mem_dg_kb_bit_consumer_sta_data 
+3e56 67e1c6b3 store 3 ,mem_dg_kb_bit_consumer_last_data 
+3e57 20203397 branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_bit_consumer_enable_blank_data_forcibly:
+3e58 7046ae01 jam 1 ,mem_dg_kb_bit_consumer_blank_data_enable 
+3e59 58000180 setarg timer_kb_mul_blank_delay 
+3e5a d8e00006 arg g24_timer_kb_bit_consumer_blank ,queue 
+3e5b 20207ce3 branch timer_init 
+
+dongle_g24_kb_bit_consumer_disable_blank_data_forcibly:
+3e5c 7046ae00 jam 0 ,mem_dg_kb_bit_consumer_blank_data_enable 
+3e5d 58000000 setarg 0 
+3e5e d8e00006 arg g24_timer_kb_bit_consumer_blank ,queue 
+3e5f 20207ce3 branch timer_init 
+
+dongle_g24_kb_type2:
+3e60 d8a00929 arg mem_usb_kb_system ,contw 
+3e61 d8c04602 arg mem_24g_rxdata_temp + 3 ,contr 
+3e62 df200002 arg 2 ,loopcnt 
+3e63 20407cdc call memcpy 
+3e64 6fe10929 fetch 2 ,mem_usb_kb_system 
+3e65 245a3e70 ncall dongle_g24_kb_sys_enable_blank_data_forcibly ,blank 
+3e66 6fe10929 fetch 2 ,mem_usb_kb_system 
+3e67 205a3e74 call dongle_g24_kb_sys_disable_blank_data_forcibly ,blank 
+3e68 6fe10929 fetch 2 ,mem_usb_kb_system 
+3e69 67e14676 store 2 ,mem_dg_kb_system_sta_data 
+3e6a 68494679 fetcht 2 ,mem_dg_kb_system_last_data 
+3e6b 98467c00 isub temp ,null 
+3e6c 2442be78 ncall dongle_usb_tx_sys_data ,zero 
+3e6d 6fe14676 fetch 2 ,mem_dg_kb_system_sta_data 
+3e6e 67e14679 store 2 ,mem_dg_kb_system_last_data 
+3e6f 20203397 branch g24_rx_interrupt_clear 
+
+dongle_g24_kb_sys_enable_blank_data_forcibly:
+3e70 70467e01 jam 1 ,mem_dg_kb_system_crtl_blank_data_enable 
+3e71 58000180 setarg timer_kb_sys_crtl_blank_delay 
+3e72 d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
+3e73 20207ce3 branch timer_init 
+
+dongle_g24_kb_sys_disable_blank_data_forcibly:
+3e74 70467e00 jam 0 ,mem_dg_kb_system_crtl_blank_data_enable 
+3e75 58000000 setarg 0 
+3e76 d8e0000a arg g24_timer_kb_sys_crtl_blank ,queue 
+3e77 20207ce3 branch timer_init 
+
+dongle_usb_tx_sys_data:
+3e78 7008ea22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+3e79 20203d53 branch dongle_usb_tx_enable_ep2 
+
+dongle_g24_store_dvc2_bind_flag:
+3e7a 6fe0c3cf fetch 1 ,mem_device_option 
+3e7b c1820000 rtnne dvc_op_dongle 
+3e7c 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
+3e7d c12d0000 rtneq dongle_kb_bind_success 
+
+dongle_prep_soft_reset:
+3e7e 7046ab01 jam 1 ,mem_dg_kb_bind_success 
+3e7f 20600000 rtn 
+
+dongle_kb_bind_soft_reset:
+3e80 6fe0c3cf fetch 1 ,mem_device_option 
+3e81 c1820000 rtnne dvc_op_dongle 
+3e82 6fe0c6ab fetch 1 ,mem_dg_kb_bind_success 
+3e83 207a0000 rtn blank 
+3e84 70065600 jam 0 ,mem_temp 
+
+dongle_wirte_efuse_bind_status:
+3e85 70465f5a jam dongle_kb_bind_success ,mem_dg_kb_bind_flag 
+3e86 20403d0e call dongle_write_kb_bind_status 
+3e87 20403d09 call dongle_read_kb_bind_status 
+3e88 6fe08656 fetch 1 ,mem_temp 
+3e89 1fe0fe01 increase 1 ,pdata 
+3e8a 67e08656 store 1 ,mem_temp 
+3e8b c07fec99 beq 0xff ,soft_reset_chip 
+3e8c 6fe0c65f fetch 1 ,mem_dg_kb_bind_flag 
+3e8d c0ad3e85 bne dongle_kb_bind_success ,dongle_wirte_efuse_bind_status 
+3e8e 20206c99 branch soft_reset_chip 
+
+keyboard_softreset_process:
+3e8f 20403e9a call keyboard_wakeup_from_power_check 
+3e90 24342002 nbranch soft_reset + 1 ,user 
+3e91 6fe0c88d fetch 1 ,mem_power_on_flag 
+3e92 203a2002 branch soft_reset + 1 ,blank 
+3e93 6fe0c90f fetch 1 ,mem_keyboard_pb_button_gpio 
+3e94 c17f8000 rtneq ui_button_gpio_disable 
+3e95 1fe20e00 copy pdata ,queue 
+3e96 6fe2067b fetch 4 ,mem_saved_gpio_in 
+3e97 afec0000 qisolate0 pdata 
+3e98 2040c69b call keyboard_pb_set ,true 
+3e99 20202003 branch soft_reset + 2 
+
+keyboard_wakeup_from_power_check:
+3e9a 78547c00 disable user 
+3e9b 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3e9c c3044e1b bbit0 keyboard_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
+3e9d 6ff08132 fetch 1 ,core_lpm_isogate 
+3e9e c2824e1b bbit1 cold_wake ,mouse_wakeup_from_poweron 
+3e9f 78347c00 enable user 
+3ea0 20204e1b branch mouse_wakeup_from_poweron 
+
+keyboard_default_init:
+3ea1 204067ff call hid_device_default_parm_init 
+3ea2 20403ea5 call keyboard_xtal_init 
+3ea3 20403eaa call keyboard_24g_phy_select 
+3ea4 20203266 branch g24_pair_param_init 
+
+keyboard_xtal_init:
+3ea5 70409910 jam xtal_16m ,mem_fcomp_div 
+3ea6 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3ea7 c3848000 rtnbit1 keyboard_enable_16m 
+3ea8 70409918 jam xtal_24m ,mem_fcomp_div 
+3ea9 20600000 rtn 
+
+keyboard_24g_phy_select:
+3eaa 20403260 call g24_enable_1m 
+3eab 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3eac c40a0000 rtnbit0 keyboard_enable_24g_2m_phy 
+3ead 20203263 branch g24_enable_2m 
+
+keyboard_init:
+3eae 20407384 call enable_authrom 
+3eaf 20403ebd call keyboard_setting_config 
+3eb0 20403ef9 call keyboard_gpio_init 
+3eb1 204040eb call keyboard_low_vol_mult_set 
+3eb2 20406f4e call lpm_config_puchk_disable 
+3eb3 20758000 rtn wake 
+3eb4 2040404e call keyboard_cb_fuction 
+3eb5 6fe0c678 fetch 1 ,mem_device_flag 
+3eb6 c00249d7 beq mode_usb_device ,keyboard_usb_mode_start 
+
+keyboard_init_wireless:
+3eb7 6fe14500 fetch 2 ,mem_ui_state_map 
+3eb8 c28648c5 bbit1 ui_state_btn_down ,keyboard_start_discovery 
+3eb9 70489600 jam 0 ,mem_keyboard_switch_count_temp 
+3eba 204042e3 call keyboard_check_select_device_by_switch 
+3ebb 70489601 jam 1 ,mem_keyboard_switch_count_temp 
+3ebc 2020430e branch keyboard_start_work 
+
+keyboard_setting_config:
+3ebd 20758000 rtn wake 
+3ebe 204035c8 call g24_transmit_init 
+3ebf 2040323a call g24_chmap_param_init 
+3ec0 20403edb call keyboard_param_init 
+3ec1 20404161 call keyboard_device_led_all_off 
+3ec2 20404203 call keyboard_rgb_off 
+3ec3 204041b7 call keyboard_pwm_init 
+3ec4 20402a1f call le_set_fixed_ltk_justwork 
+3ec5 449f4007 bpatch patch07_6 ,mem_patch07 
+3ec6 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3ec7 c287bf31 bbit1 keyboard_enable_otp ,keyboard_load_otp_info 
+3ec8 c2873f96 bbit1 keyboard_enable_eeprom ,keyboard_load_eeprom_info 
+3ec9 c2863fd5 bbit1 keyboard_enable_flash ,keyboard_load_flash_info 
+3eca 20600000 rtn 
+
+keyboard_param_common_init:
+3ecb 58009000 setarg mouse_ble_att_list_addr 
+3ecc 67e142f9 store 2 ,mem_ui_le_uuid_table 
+3ecd 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3ece c291e80c bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+3ecf 580095b8 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+3ed0 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+3ed1 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3ed2 c290680c bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+3ed3 c290e80c bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+3ed4 580094fc setarg keyboard_ble_hid_map_magic_keyboard_addr 
+3ed5 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+3ed6 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3ed7 c291680c bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+3ed8 5800944a setarg keyboard_ble_hid_map_only_keyboard_addr 
+3ed9 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+3eda 2020680c branch hid_device_param_common_init 
+
+keyboard_param_init:
+3edb 20403ef4 call keyboard_compare_addr_init 
+3edc 20403ecb call keyboard_param_common_init 
+3edd 20404093 call keyboard_adc_vol_init 
+3ede 6fe0cac1 fetch 1 ,mem_keyboard_device_poweron_timer_init 
+3edf 67e0cac2 store 1 ,mem_keyboard_device_poweron_timer 
+3ee0 7049a000 jam 0 ,mem_same_keyvalue_timerout_flag 
+3ee1 d8a0475f arg mem_le_adv_swift_pair ,contw 
+3ee2 df200014 arg 20 ,loopcnt 
+3ee3 20407ca3 call clear_mem 
+3ee4 6fe0c26d fetch 1 ,mem_le_name_len 
+3ee5 1fe67c0c sub pdata ,12 ,null 
+3ee6 24213ef2 nbranch keyboard_ble_name_set_no_swift_pair ,positive 
+3ee7 5806ff06 setarg 0x06ff06 
+3ee8 67e1c75f store 3 ,mem_le_adv_swift_pair 
+3ee9 58000300 setarg 0x000300 
+3eea e7e18005 istore 3 ,contw 
+3eeb 58000080 setarg 0x80 
+3eec e7e08005 istore 1 ,contw 
+
+keyboard_ble_store_le_name:
+3eed 6fe0c26d fetch 1 ,mem_le_name_len 
+3eee 1fe0fe01 increase 1 ,pdata 
+3eef 1fe27200 copy pdata ,loopcnt 
+3ef0 d8c0436d arg mem_le_scan_data ,contr 
+3ef1 20207cdc branch memcpy 
+
+keyboard_ble_name_set_no_swift_pair:
+3ef2 d8a0475f arg mem_le_adv_swift_pair ,contw 
+3ef3 20203eed branch keyboard_ble_store_le_name 
+
+keyboard_compare_addr_init:
+3ef4 d8400000 arg 0 ,temp 
+3ef5 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3ef6 c287e81d bbit1 keyboard_enable_otp ,hid_device_compare_addr_store 
+3ef7 d85fffff arg 0xffffff ,temp 
+3ef8 2020681d branch hid_device_compare_addr_store 
+
+keyboard_gpio_init:
+3ef9 20407de6 call clear_wake 
+3efa 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
+3efb 20404f0a call device_gpio_config_input_pu 
+3efc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3efd 2feffe0a isolate1 keyboard_disable_ice ,pdata 
+3efe 2040a3a5 call lpm_write_ice_disable ,true 
+3eff 5800491f setarg mem_key_row_gpio 
+3f00 67e14948 store 2 ,mem_kb_row_ptr 
+3f01 58004927 setarg mem_key_col_gpio 
+3f02 67e1494a store 2 ,mem_kb_col_ptr 
+3f03 5800493c setarg mem_key_excol_gpio 
+3f04 67e1494c store 2 ,mem_kb_excol_ptr 
+3f05 20403f0f call keyboard_key_row_init 
+3f06 6fe1494a fetch 2 ,mem_kb_col_ptr 
+3f07 1fe22400 copy pdata ,regb 
+3f08 df200014 arg 20 ,loopcnt 
+
+keyboard_key_cow_init:
+3f09 e8408012 ifetcht 1 ,regb 
+3f0a 284ffe07 isolate1 7 ,temp 
+3f0b 2440ef0b ncall gpio_set_high_impedance ,true 
+3f0c 1a40a401 increase 1 ,regb 
+3f0d c2003f09 loop keyboard_key_cow_init 
+3f0e 20600000 rtn 
+
+keyboard_key_row_init:
+3f0f 6fe14948 fetch 2 ,mem_kb_row_ptr 
+3f10 1fe22400 copy pdata ,regb 
+3f11 df200008 arg 8 ,loopcnt 
+
+keyboard_key_row_init_loop:
+3f12 e8408012 ifetcht 1 ,regb 
+3f13 18467cff sub temp ,ui_button_gpio_disable ,null 
+3f14 2442bf18 ncall keyboard_gpio_set_low_pullup ,zero 
+3f15 1a40a401 increase 1 ,regb 
+3f16 c2003f12 loop keyboard_key_row_init_loop 
+3f17 202023e1 branch lpm_write_gpio_wakeup 
+
+keyboard_gpio_set_low_pullup:
+3f18 20406f0b call gpio_set_high_impedance 
+3f19 e8408012 ifetcht 1 ,regb 
+3f1a 20206ec0 branch gpio_set_low_pullup 
+
+keyboard_gpio_pu_idle:
+3f1b d8c08070 arg core_gpio_conf ,contr 
+3f1c df200010 arg gpio_number ,loopcnt 
+
+keyboard_gpio_pu_idle_loop:
+3f1d efe08006 ifetch 1 ,contr 
+3f1e 243a3f22 nbranch keyboard_gpio_pu_idle_configured ,blank 
+3f1f 58000040 setarg gpcfg_pullup 
+3f20 18c08bff add contr ,-1 ,contw 
+3f21 e7e08005 istore 1 ,contw 
+
+keyboard_gpio_pu_idle_configured:
+3f22 c2003f1d loop keyboard_gpio_pu_idle_loop 
+3f23 dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+3f24 98c67c00 isub contr ,null 
+3f25 20628000 rtn zero 
+3f26 df200008 arg gpio_number_ext ,loopcnt 
+3f27 d8c080d4 arg core_gpio_conf_hi ,contr 
+3f28 20203f1d branch keyboard_gpio_pu_idle_loop 
+
+keyboard_key_row_wake_set:
+3f29 6fe0c9a0 fetch 1 ,mem_same_keyvalue_timerout_flag 
+3f2a 203a6eac branch gpio_set_wake ,blank 
+3f2b 20206ea5 branch gpio_set_wake_by_current_state 
+
+keyboard_pairing_check_otp_offset:
+3f2c 6fe14abd fetch 2 ,mem_otp_read_retention_offset 
+3f2d 68494abf fetcht 2 ,mem_otp_read_retention_max_size 
+3f2e 98467c00 isub temp ,null 
+3f2f 24610000 nrtn positive 
+3f30 2020233e branch assert 
+
+keyboard_load_otp_info:
+3f31 6fe0c678 fetch 1 ,mem_device_flag 
+3f32 c0003f35 beq mode_24g_device ,keyboard_load_otp_device_info_g24_init 
+3f33 c000bf3f beq mode_bt_device1 ,keyboard_load_otp_device_info_ble_init 
+3f34 20600000 rtn 
+
+keyboard_load_otp_device_info_g24_init:
+3f35 db000008 arg 8 ,regd 
+3f36 6fe14abf fetch 2 ,mem_otp_read_retention_max_size 
+3f37 9b06fc00 idiv regd 
+3f38 20407d64 call wait_div_end 
+3f39 1807fe00 quotient pdata 
+3f3a 67e1064e store 2 ,mem_pdatatemp 
+3f3b dfe01fbc arg 0x1fbc ,pdata 
+3f3c d8400004 arg 4 ,temp 
+3f3d dd600004 arg 4 ,rege 
+3f3e 20203f49 branch keyboard_load_otp_device_info 
+
+keyboard_load_otp_device_info_ble_init:
+3f3f db000020 arg 32 ,regd 
+3f40 6fe14abf fetch 2 ,mem_otp_read_retention_max_size 
+3f41 9b06fc00 idiv regd 
+3f42 20407d64 call wait_div_end 
+3f43 1807fe00 quotient pdata 
+3f44 67e1064e store 2 ,mem_pdatatemp 
+3f45 dfe01fb0 arg 0x1fb0 ,pdata 
+3f46 d8400010 arg 16 ,temp 
+3f47 dd600010 arg 16 ,rege 
+3f48 20203f49 branch keyboard_load_otp_device_info 
+
+keyboard_load_otp_device_info:
+3f49 67e10650 store 2 ,mem_pdatatemp + 2 
+3f4a 60488656 storet 1 ,mem_temp 
+3f4b da204aa5 arg mem_otp_read_retention_memory ,rega 
+3f4c da600000 arg 0 ,regc 
+
+keyboard_load_otp_info_check_page_loop:
+3f4d 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+3f4e 1fe22400 copy pdata ,regb 
+3f4f 6f208656 fetchr loopcnt ,1 ,mem_temp 
+3f50 da204aa5 arg mem_otp_read_retention_memory ,rega 
+3f51 20406b62 call otp_read_data 
+3f52 6fe44aa5 fetch 8 ,mem_otp_read_retention_memory 
+3f53 684c4aad fetcht 8 ,mem_otp_read_retention_memory + 8 
+3f54 9841fe00 ior temp ,pdata 
+3f55 684c4ab5 fetcht 8 ,mem_otp_read_retention_memory + 16 
+3f56 9841fe00 ior temp ,pdata 
+3f57 203a3f5f branch keyboard_load_otp_info_check_first_time ,blank 
+3f58 1a60a601 increase 1 ,regc 
+3f59 6fe1064e fetch 2 ,mem_pdatatemp 
+3f5a 9a667c00 isub regc ,null 
+3f5b 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+3f5c 9b067e00 isub regd ,pdata 
+3f5d 67e10650 store 2 ,mem_pdatatemp + 2 
+3f5e 20203f4d branch keyboard_load_otp_info_check_page_loop 
+
+keyboard_load_otp_info_check_first_time:
+3f5f 1a667c00 sub regc ,0 ,null 
+3f60 2022bf72 branch keyboard_load_otp_info_check_first_time_process ,zero 
+
+keyboard_load_otp_info_check_first_time_loop_init:
+3f61 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+3f62 9b00fe00 iadd regd ,pdata 
+
+keyboard_load_otp_info_check_first_time_loop:
+3f63 9d667e00 isub rege ,pdata 
+3f64 67e10650 store 2 ,mem_pdatatemp + 2 
+3f65 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+3f66 1fe22400 copy pdata ,regb 
+3f67 6f208656 fetchr loopcnt ,1 ,mem_temp 
+3f68 da204aa5 arg mem_otp_read_retention_memory ,rega 
+3f69 20406b62 call otp_read_data 
+3f6a 6fe44aa5 fetch 8 ,mem_otp_read_retention_memory 
+3f6b 684c4aad fetcht 8 ,mem_otp_read_retention_memory + 8 
+3f6c 9841fe00 ior temp ,pdata 
+3f6d 684c4ab5 fetcht 8 ,mem_otp_read_retention_memory + 16 
+3f6e 9841fe00 ior temp ,pdata 
+3f6f 203a3f74 branch keyboard_load_otp_info_check_offset_process ,blank 
+3f70 6fe10650 fetch 2 ,mem_pdatatemp + 2 
+3f71 20203f63 branch keyboard_load_otp_info_check_first_time_loop 
+
+keyboard_load_otp_info_check_first_time_process:
+3f72 6560cabd storer rege ,1 ,mem_otp_read_retention_offset 
+3f73 20600000 rtn 
+
+keyboard_load_otp_info_check_offset_process:
+3f74 58001fc0 setarg 0x1fc0 
+3f75 68490650 fetcht 2 ,mem_pdatatemp + 2 
+3f76 98467e00 isub temp ,pdata 
+3f77 67e14abd store 2 ,mem_otp_read_retention_offset 
+3f78 18427e00 copy temp ,pdata 
+3f79 9d60a400 iadd rege ,regb 
+3f7a 6f208656 fetchr loopcnt ,1 ,mem_temp 
+3f7b da204aa5 arg mem_otp_read_retention_memory ,rega 
+3f7c 20406b62 call otp_read_data 
+3f7d 6fe0c678 fetch 1 ,mem_device_flag 
+3f7e c0003f81 beq mode_24g_device ,keyboard_load_otp_info_check_offset_process_g24 
+3f7f c000bf87 beq mode_bt_device1 ,keyboard_load_otp_info_check_offset_process_ble 
+3f80 20600000 rtn 
+
+keyboard_load_otp_info_check_offset_process_g24:
+3f81 6fe34aa5 fetch 6 ,mem_otp_read_retention_memory 
+3f82 67e246a3 store 4 ,mem_device_24g_addr 
+3f83 6fe246a3 fetch 4 ,mem_device_24g_addr 
+3f84 67e245ff store 4 ,mem_24g_receiver_addr 
+3f85 67e245a6 store 4 ,mem_24g_addr 
+3f86 20600000 rtn 
+
+keyboard_load_otp_info_check_offset_process_ble:
+3f87 6fe0caa5 fetch 1 ,mem_otp_read_retention_memory 
+3f88 1fe67c03 sub pdata ,system_os_mac ,null 
+3f89 24417dcc ncall set_pdata_0 ,positive 
+3f8a 67e0caa1 store 1 ,mem_kb_computer_system 
+3f8b 6fe0caa6 fetch 1 ,mem_otp_read_retention_memory + 1 
+3f8c 67e0c679 store 1 ,mem_device1_type 
+3f8d 6fe34aa7 fetch 6 ,mem_otp_read_retention_memory + 2 
+3f8e 67e3467a store 6 ,mem_device1_addr 
+3f8f 6fe34aad fetch 6 ,mem_otp_read_retention_memory + 8 
+3f90 67e34680 store 6 ,mem_device1_locall_addr 
+3f91 68494ab3 fetcht 2 ,mem_otp_read_retention_memory + 14 
+3f92 180a7e00 random pdata 
+3f93 9840fe00 iadd temp ,pdata 
+3f94 67e146a7 store 2 ,mem_random_addr_increase_count 
+3f95 202067d5 branch hid_device_select_reconn_device 
+
+keyboard_load_eeprom_info:
+3f96 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3f97 c31ebf9d bbit0 keyboard_enable_sda_multi_r_line ,keyboard_load_eeprom_device_info_next 
+3f98 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+3f99 20404f0a call device_gpio_config_input_pu 
+3f9a 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+3f9b 20406ee0 call gpio_get_bit 
+3f9c 2020bf96 branch keyboard_load_eeprom_info ,true 
+
+keyboard_load_eeprom_device_info_next:
+3f9d 20404049 call keyboard_eeprom_init 
+3f9e d8400080 arg 128 ,temp 
+3f9f da204678 arg mem_device_flag ,rega 
+3fa0 da400000 arg keyboard_info_eeprom_offect ,regb 
+3fa1 20406cd7 call iicd_read_eep_data 
+
+keyboard_load_info_check:
+3fa2 449fc007 bpatch patch07_7 ,mem_patch07 
+3fa3 20403fc6 call keyboard_app_initflag_check 
+3fa4 6fe0c678 fetch 1 ,mem_device_flag 
+3fa5 c0003faa beq mode_24g_device ,keyboard_load_info_24g 
+3fa6 c000bfb0 beq mode_bt_device1 ,keyboard_load_info_bt1 
+3fa7 c0013fbb beq mode_bt_device2 ,keyboard_load_info_bt2 
+3fa8 c001bfbf beq mode_bt_device3 ,keyboard_load_info_bt3 
+3fa9 c0023fc3 beq mode_usb_device ,keyboard_load_info_usb 
+
+keyboard_load_info_24g:
+3faa 704aa100 jam system_os_windows ,mem_kb_computer_system 
+3fab 6fe0c6a9 fetch 1 ,mem_keyboard_24g_fn_lock 
+
+keyboard_load_info_fn_lock:
+3fac 1fe67c01 sub pdata ,1 ,null 
+3fad 2442fdcc ncall set_pdata_0 ,zero 
+3fae 67e0ca93 store 1 ,mem_keyboard_fn_lock_flag 
+3faf 20600000 rtn 
+
+keyboard_load_info_bt1:
+3fb0 6fe0c6aa fetch 1 ,mem_keyboard_bt1_fn_lock 
+3fb1 20403fac call keyboard_load_info_fn_lock 
+3fb2 6fe0c6ae fetch 1 ,mem_keyboard_bt1_computer_system 
+3fb3 1fe67c03 sub pdata ,system_os_mac ,null 
+3fb4 24417dcc ncall set_pdata_0 ,positive 
+
+keyboard_load_info_bt:
+3fb5 67e0caa1 store 1 ,mem_kb_computer_system 
+3fb6 684946a7 fetcht 2 ,mem_random_addr_increase_count 
+3fb7 180a7e00 random pdata 
+3fb8 9840fe00 iadd temp ,pdata 
+3fb9 67e146a7 store 2 ,mem_random_addr_increase_count 
+3fba 20600000 rtn 
+
+keyboard_load_info_bt2:
+3fbb 6fe0c6ab fetch 1 ,mem_keyboard_bt2_fn_lock 
+3fbc 20403fac call keyboard_load_info_fn_lock 
+3fbd 6fe0c6af fetch 1 ,mem_keyboard_bt2_computer_system 
+3fbe 20203fb5 branch keyboard_load_info_bt 
+
+keyboard_load_info_bt3:
+3fbf 6fe0c6ac fetch 1 ,mem_keyboard_bt3_fn_lock 
+3fc0 20403fac call keyboard_load_info_fn_lock 
+3fc1 6fe0c6b0 fetch 1 ,mem_keyboard_bt3_computer_system 
+3fc2 20203fb5 branch keyboard_load_info_bt 
+
+keyboard_load_info_usb:
+3fc3 704aa100 jam system_os_windows ,mem_kb_computer_system 
+3fc4 6fe0c6ad fetch 1 ,mem_keyboard_usb_fn_lock 
+3fc5 20203fac branch keyboard_load_info_fn_lock 
+
+keyboard_app_initflag_check:
+3fc6 6fe146a0 fetch 2 ,mem_store_flag 
+3fc7 d840aa55 arg eeprom_init_flag ,temp 
+3fc8 98467c00 isub temp ,null 
+3fc9 2022e7cf branch hid_device_load_device_info ,zero 
+3fca 604946a0 storet 2 ,mem_store_flag 
+3fcb 204067f8 call hid_device_ble_init_address 
+3fcc 6fe0c717 fetch 1 ,mem_device_flag_temp 
+3fcd 67e0c678 store 1 ,mem_device_flag 
+3fce 6fe245fb fetch 4 ,mem_24g_fast_conn_addr 
+3fcf 67e245ff store 4 ,mem_24g_receiver_addr 
+3fd0 67e245a6 store 4 ,mem_24g_addr 
+3fd1 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+3fd2 79207e00 set1 keyboard_store_eepromm_flag_all_info ,pdata 
+3fd3 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+3fd4 20203fd7 branch keyboard_store_device_info 
+
+keyboard_load_flash_info:
+3fd5 204067b6 call hid_device_load_flash_info_check 
+3fd6 20203fa2 branch keyboard_load_info_check 
+
+keyboard_store_device_info:
+3fd7 44a04008 bpatch patch08_0 ,mem_patch08 
+3fd8 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+3fd9 c287bfdd bbit1 keyboard_enable_otp ,keyboard_store_otp_device_info 
+3fda c2874004 bbit1 keyboard_enable_eeprom ,keyboard_store_eeprom_device_info 
+3fdb c28667bb bbit1 keyboard_enable_flash ,hid_device_store_flash_device_info 
+3fdc 20600000 rtn 
+
+keyboard_store_otp_device_info:
+3fdd 6fe0c678 fetch 1 ,mem_device_flag 
+3fde c0003fe1 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+3fdf c000bfeb beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+3fe0 20600000 rtn 
+
+keyboard_store_otp_device_info_g24:
+3fe1 68494abd fetcht 2 ,mem_otp_read_retention_offset 
+3fe2 58001fc0 setarg 0x1fc0 
+3fe3 98462400 isub temp ,regb 
+3fe4 da2046a3 arg mem_device_24g_addr ,rega 
+3fe5 df200004 arg 4 ,loopcnt 
+3fe6 20406b33 call otp_write 
+3fe7 68494abd fetcht 2 ,mem_otp_read_retention_offset 
+3fe8 18408404 increase 4 ,temp 
+3fe9 60494abd storet 2 ,mem_otp_read_retention_offset 
+3fea 20600000 rtn 
+
+keyboard_store_otp_device_info_ble:
+3feb 704aa301 jam 1 ,mem_otp_store_device_info_flag 
+3fec 6fe0caa4 fetch 1 ,mem_otp_store_system_flag 
+3fed 207a0000 rtn blank 
+
+keyboard_wirte_otp_ble:
+3fee 68494abd fetcht 2 ,mem_otp_read_retention_offset 
+3fef 58001fc0 setarg 0x1fc0 
+3ff0 98467e00 isub temp ,pdata 
+3ff1 67e1064e store 2 ,mem_pdatatemp 
+3ff2 1fe22400 copy pdata ,regb 
+3ff3 da204aa1 arg mem_kb_computer_system ,rega 
+3ff4 df200001 arg 1 ,loopcnt 
+3ff5 20406b33 call otp_write 
+3ff6 6fe1064e fetch 2 ,mem_pdatatemp 
+3ff7 1fe0a401 add pdata ,1 ,regb 
+3ff8 da204679 arg mem_device1_type ,rega 
+3ff9 df20000d arg 13 ,loopcnt 
+3ffa 20406b33 call otp_write 
+3ffb 6fe1064e fetch 2 ,mem_pdatatemp 
+3ffc 1fe0a40e add pdata ,14 ,regb 
+3ffd da2046a7 arg mem_random_addr_increase_count ,rega 
+3ffe df200002 arg 2 ,loopcnt 
+3fff 20406b33 call otp_write 
+4000 68494abd fetcht 2 ,mem_otp_read_retention_offset 
+4001 18408410 increase 16 ,temp 
+4002 60494abd storet 2 ,mem_otp_read_retention_offset 
+4003 20600000 rtn 
+
+keyboard_store_eeprom_device_info:
+4004 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4005 c31ec00b bbit0 keyboard_enable_sda_multi_r_line ,keyboard_store_eeprom_device_info_next 
+4006 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+4007 20404f0a call device_gpio_config_input_pu 
+4008 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+4009 20406ee0 call gpio_get_bit 
+400a 2020c4b9 branch keyboard_store_device_info_delay ,true 
+
+keyboard_store_eeprom_device_info_next:
+400b 20404049 call keyboard_eeprom_init 
+
+keyboard_store_eeprom_device_info_typer_check:
+400c 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+400d c2804014 bbit1 keyboard_store_eepromm_flag_all_info ,keyboard_store_eeprom_device_all_info 
+400e c280c019 bbit1 keyboard_store_eepromm_flag_ble_addr ,keyboard_store_eeprom_device_info_ble_addr 
+400f c2814025 bbit1 keyboard_store_eepromm_flag_g24_addr ,keyboard_store_eeprom_device_info_g24_addr 
+4010 c281c02d bbit1 keyboard_store_eepromm_flag_fn_lock ,keyboard_store_eeprom_device_info_fn_lock 
+4011 c2824035 bbit1 keyboard_store_eepromm_flag_computer_system ,keyboard_store_eeprom_device_info_device_os 
+4012 c282c03d bbit1 keyboard_store_eepromm_flag_rgb_type ,keyboard_store_eeprom_device_info_rgb_tpye 
+4013 20600000 rtn 
+
+keyboard_store_eeprom_device_all_info:
+4014 704aa200 jam 0 ,mem_keyboard_device_info_store_flag 
+4015 d8400080 arg 128 ,temp 
+4016 da204678 arg mem_device_flag ,rega 
+4017 da400000 arg keyboard_info_eeprom_offect ,regb 
+4018 20206cc9 branch iicd_write_protect_eep_data 
+
+keyboard_store_eeprom_device_info_ble_addr:
+4019 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+401a 793ffe01 set0 keyboard_store_eepromm_flag_ble_addr ,pdata 
+401b 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+401c d8400027 arg 39 ,temp 
+401d da204679 arg mem_device1_type ,rega 
+401e da400001 arg keyboard_ble_addr_eeprom_offect ,regb 
+401f 20406cc9 call iicd_write_protect_eep_data 
+4020 d8400002 arg 2 ,temp 
+4021 da2046a7 arg mem_random_addr_increase_count ,rega 
+4022 da40002f arg keyboard_random_addr_count_eeprom_offset ,regb 
+4023 20406cc9 call iicd_write_protect_eep_data 
+4024 2020400c branch keyboard_store_eeprom_device_info_typer_check 
+
+keyboard_store_eeprom_device_info_g24_addr:
+4025 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+4026 793ffe02 set0 keyboard_store_eepromm_flag_g24_addr ,pdata 
+4027 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+4028 d8400004 arg 4 ,temp 
+4029 da2046a3 arg mem_device_24g_addr ,rega 
+402a da40002b arg keyboard_g24_addr_eeprom_offect ,regb 
+402b 20406cc9 call iicd_write_protect_eep_data 
+402c 2020400c branch keyboard_store_eeprom_device_info_typer_check 
+
+keyboard_store_eeprom_device_info_fn_lock:
+402d 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+402e 793ffe03 set0 keyboard_store_eepromm_flag_fn_lock ,pdata 
+402f 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+4030 d8400005 arg 5 ,temp 
+4031 da2046a9 arg mem_keyboard_24g_fn_lock ,rega 
+4032 da400031 arg keyboard_fn_flag_eeprom_offset ,regb 
+4033 20406cc9 call iicd_write_protect_eep_data 
+4034 2020400c branch keyboard_store_eeprom_device_info_typer_check 
+
+keyboard_store_eeprom_device_info_device_os:
+4035 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+4036 793ffe04 set0 keyboard_store_eepromm_flag_computer_system ,pdata 
+4037 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+4038 d8400003 arg 3 ,temp 
+4039 da2046ae arg mem_keyboard_bt1_computer_system ,rega 
+403a da400036 arg keyboard_computer_system_eeprom_offset ,regb 
+403b 20406cc9 call iicd_write_protect_eep_data 
+403c 2020400c branch keyboard_store_eeprom_device_info_typer_check 
+
+keyboard_store_eeprom_device_info_rgb_tpye:
+403d 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+403e 793ffe05 set0 keyboard_store_eepromm_flag_rgb_type ,pdata 
+403f 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+4040 d8400004 arg 4 ,temp 
+4041 da2046b1 arg mem_backlight_on_flag ,rega 
+4042 da400039 arg keyboard_rgb_tpye_offset ,regb 
+4043 20406cc9 call iicd_write_protect_eep_data 
+4044 2020400c branch keyboard_store_eeprom_device_info_typer_check 
+
+keyboard_store_device_number:
+4045 d8400001 arg 1 ,temp 
+4046 da204678 arg mem_device_flag ,rega 
+4047 da400000 arg keyboard_device_number_eeprom_offect ,regb 
+4048 20206cc9 branch iicd_write_protect_eep_data 
+
+keyboard_eeprom_init:
+4049 20406cb2 call iicd_read_init_pin 
+404a 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+404b 2feffe0d isolate1 keyboard_enable_2k_eeprom ,pdata 
+404c 2020ecb7 branch set_eeprom_size_2k ,true 
+404d 20206cba branch clear_eeprom_size_2k 
+
+keyboard_cb_fuction:
+404e 44a0c008 bpatch patch08_1 ,mem_patch08 
+404f 580068c4 setarg hid_device_before_lpm_set 
+4050 67e143f2 store 2 ,mem_cb_before_lpm_sleep 
+4051 58004862 setarg keyboard_24g_package_data 
+4052 67e14609 store 2 ,mem_cb_24g_transmit_data 
+4053 58004871 setarg keyboard_24g_search_dongle 
+4054 67e1460b store 2 ,mem_cb_24g_search_receiver 
+4055 5800478f setarg keyboard_lpm_before_common 
+4056 67e1460d store 2 ,mem_cb_24g_lpm_before 
+4057 58004875 setarg keyboard_le 
+4058 67e143e2 store 2 ,mem_cb_le_process 
+4059 580047aa setarg keyboard_process_lpm_before 
+405a 67e143e0 store 2 ,mem_cb_before_lpm 
+405b 58004066 setarg keyboard_priority_bb_event 
+405c 67e143e6 store 2 ,mem_cb_bb_event_process 
+405d 580042dd setarg keyboard_idle 
+405e 67e143e4 store 2 ,mem_cb_idle_process 
+405f 580047ac setarg keyboard_before_hibernate 
+4060 67e143de store 2 ,mem_cb_before_hibernate 
+4061 58005420 setarg mouse_le_bb_event_connect_complete 
+4062 67e143e8 store 2 ,mem_cb_att_write 
+4063 58004075 setarg keyboard_bb_event_timer 
+4064 67e143ec store 2 ,mem_cb_event_timer 
+4065 202068cb branch hid_device_cb_fuction 
+
+keyboard_priority_bb_event:
+4066 44a14008 bpatch patch08_2 ,mem_patch08 
+4067 1a627e00 copy regc ,pdata 
+4068 c01948b3 beq bt_evt_le_start_enc ,keyboard_le_ll_start_encryt 
+4069 c02048bb beq bt_evt_le_parse_conn_papa_update_rsp ,keyboard_le_conn_param_update_rsp_recieved 
+406a c00ac8a2 beq bt_evt_le_disconnected ,keyboard_le_bb_disconnected 
+406b c00a4893 beq bt_evt_le_connected ,keyboard_le_bb_event_connected 
+406c c00848c0 beq bt_evt_button_long_pressed ,keyboard_bb_event_discovery_btn 
+406d c018d406 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+406e c014d408 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+406f c01f379e beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+4070 c0225428 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+4071 c01cc7b8 beq bt_evt_24g_pairing_complete ,keyboard_24g_pairing_complete 
+4072 c01e47ca beq bt_evt_24g_attempt_success ,keyboard_24g_attempt_success 
+4073 c01d47e6 beq bt_evt_24g_attempt_fail ,keyboard_24g_attempt_fail 
+4074 20600000 rtn 
+
+keyboard_bb_event_timer:
+4075 44a1c008 bpatch patch08_3 ,mem_patch08 
+4076 204040e0 call keyboard_low_voltage_param_set 
+4077 204040cc call keyboard_adc_read 
+4078 204040dd call keyboard_adc_gpio_set_before_hibernate 
+4079 20404100 call keyboard_low_voltage_led_timer 
+407a 20404186 call keyboard_num_capslock_led_on_timer 
+407b 204041ab call keyboard_rgb_on_timer 
+407c 20404131 call keyboard_device_poweron_timer 
+407d 2040413e call keyboard_mode_led_timer 
+407e 20404146 call keyboard_device_pair_led_timer 
+407f 20404267 call keyboard_key_press_timer 
+4080 2040428f call keyboard_commbination_key_process 
+4081 204042c4 call keyboard_same_key_long_press_timer 
+4082 2040326c call g24_pair_timeout_timer 
+4083 20403507 call g24_reconn_timeout_timer 
+4084 204058f6 call mouse_24g_long_sleep_param_update_timer 
+4085 204042b5 call keyboard_24g_repeat_send_data 
+4086 204042bf call keyboard_24g_led_status_get_timer 
+4087 20404299 call keyboard_check_discovery_timeout_timer 
+4088 204042a4 call keyboard_check_direct_timeout_timer 
+4089 2040550d call mouse_le_enable_att_list_timer 
+408a 204042ad call keyboard_le_battery_updata_timer 
+408b 20405510 call mouse_le_send_smp_security_request_timer 
+408c 204042b2 call keyboard_le_send_conn_param_update_timer 
+408d 204042a1 call keyboard_le_auto_recognize_timer 
+408e 20405527 call mouse_current_mult_update_timer 
+408f 2040429e call keyboard_store_information_delay_timer 
+4090 204042c9 call keyboard_commbination_delay_release_timer 
+4091 204042cc call keyboard_usb_updata_timer 
+4092 202042d5 branch keyboard_check_no_data_timeout_timer 
+
+keyboard_adc_vol_init:
+4093 44a24008 bpatch patch08_4 ,mem_patch08 
+4094 6fe0c8b1 fetch 1 ,mem_keyboard_power_type 
+4095 c0004098 beq keyboard_battary_1v5 ,keyboard_adc_vol_1v5_init 
+4096 c000c09d beq keyboard_battary_3v0 ,keyboard_adc_vol_3v0_init 
+4097 c00140a2 beq keyboard_battary_4v2 ,keyboard_adc_vol_4v2_init 
+
+keyboard_adc_vol_1v5_init:
+4098 58560094 setarg 0x560094 
+4099 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
+409a 58006d00 setarg 0x006d00 
+409b e7e18005 istore 3 ,contw 
+409c 20600000 rtn 
+
+keyboard_adc_vol_3v0_init:
+409d 58d4012c setarg 0xd4012c 
+409e 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
+409f 5800e600 setarg 0x00e600 
+40a0 e7e18005 istore 3 ,contw 
+40a1 20600000 rtn 
+
+keyboard_adc_vol_4v2_init:
+40a2 5ac01270 setarg 0x2c01270 
+40a3 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
+40a4 58014001 setarg 0x014001 
+40a5 e7e18005 istore 3 ,contw 
+40a6 20600000 rtn 
+
+keyboard_adc_init:
+40a7 204040a9 call keyboard_adc_gpio_set 
+40a8 202040e0 branch keyboard_low_voltage_param_set 
+
+keyboard_adc_gpio_set:
+40a9 6fe0c41d fetch 1 ,mem_adc_config_flag 
+40aa c1810000 rtnne adc_config_gpio 
+40ab 6fe0c41e fetch 1 ,mem_adc_channel 
+40ac 204040b2 call keyboard_channel_set_gpio 
+40ad 18427e00 copy temp ,pdata 
+40ae 67e0c64c store 1 ,mem_adc_channel_gpio 
+40af 79207e07 set1 gpio_active_bit ,pdata 
+40b0 d8400000 arg gpcfg_input ,temp 
+40b1 20206f1c branch gpio_config_function 
+
+keyboard_channel_set_gpio:
+40b2 d8400012 arg 18 ,temp 
+40b3 c1030000 rtneq 0x6 
+40b4 d840000a arg 10 ,temp 
+40b5 c1038000 rtneq 0x7 
+40b6 d8400009 arg 9 ,temp 
+40b7 c1040000 rtneq 0x8 
+40b8 d840000c arg 12 ,temp 
+40b9 c1048000 rtneq 0x9 
+40ba d8400006 arg 6 ,temp 
+40bb c1050000 rtneq 0xa 
+40bc d8400014 arg 20 ,temp 
+40bd c1058000 rtneq 0xb 
+40be d8400015 arg 21 ,temp 
+40bf c1060000 rtneq 0xc 
+40c0 d8400016 arg 22 ,temp 
+40c1 c1068000 rtneq 0xd 
+40c2 d840000d arg 13 ,temp 
+40c3 20600000 rtn 
+
+keyboard_adc_read_start:
+40c4 204040a7 call keyboard_adc_init 
+40c5 20406fb2 call enable_adc 
+40c6 20406f8e call vdd_calculate_by_mode 
+40c7 1fe6fc0a div pdata ,10 
+40c8 20407d61 call get_div_result 
+40c9 67e1464a store 2 ,mem_device_vdd_now_vol 
+40ca da204644 arg mem_device_vdd_calculate_set ,rega 
+40cb 20204ec4 branch mouse_adc_bat_percent_lowpower_out 
+
+keyboard_adc_read:
+40cc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+40cd c4058000 rtnbit0 keyboard_enable_adc 
+40ce 204040c4 call keyboard_adc_read_start 
+
+keyboard_adc_data_process:
+40cf 6fe0c422 fetch 1 ,mem_adc_power_flag 
+40d0 c280c7af bbit1 1 ,keyboard_power_down 
+40d1 c30040d6 bbit0 0 ,keyboard_adc_no_low_voltage 
+40d2 70464e01 jam 1 ,mem_device_adc_last_low_voltage_flag 
+40d3 202040d4 branch keyboard_adc_low_voltage 
+
+keyboard_adc_low_voltage:
+40d4 d8e00002 arg keyboard_low_voltage_flag ,queue 
+40d5 20204a25 branch keyboard_enable_function_flag 
+
+keyboard_adc_no_low_voltage:
+40d6 d8e00002 arg keyboard_low_voltage_flag ,queue 
+40d7 20404a29 call keyboard_disable_function_flag 
+40d8 704ac60c jam 12 ,mem_keyboard_adc_low_volatage_led_timer_count 
+40d9 6fe0c64e fetch 1 ,mem_device_adc_last_low_voltage_flag 
+40da 207a0000 rtn blank 
+40db 70464e00 jam 0 ,mem_device_adc_last_low_voltage_flag 
+40dc 20204184 branch keyboard_low_voltage_led_off 
+
+keyboard_adc_gpio_set_before_hibernate:
+40dd 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+40de c4058000 rtnbit0 keyboard_enable_adc 
+40df 20204e5e branch mouse_adc_gpio_set_before_hibernate + 2 
+
+keyboard_low_voltage_param_set:
+40e0 6fe348ab fetch 6 ,mem_keyboard_vdd_full_vol 
+40e1 67e34644 store 6 ,mem_device_vdd_full_vol 
+40e2 6fe0c64e fetch 1 ,mem_device_adc_last_low_voltage_flag 
+40e3 203a40e8 branch keyboard_low_voltage_param_reset ,blank 
+40e4 6fe148af fetch 2 ,mem_keyboard_vdd_low_vol 
+40e5 1fe0fe05 increase 5 ,pdata 
+40e6 67e14648 store 2 ,mem_device_vdd_low_vol 
+40e7 20600000 rtn 
+
+keyboard_low_voltage_param_reset:
+40e8 6fe148af fetch 2 ,mem_keyboard_vdd_low_vol 
+40e9 67e14648 store 2 ,mem_device_vdd_low_vol 
+40ea 20600000 rtn 
+
+keyboard_low_vol_mult_set:
+40eb 6fe0c678 fetch 1 ,mem_device_flag 
+40ec c08040f3 bne mode_24g_device ,keyboard_low_vol_mult_ble_set 
+40ed 204035d3 call g24_interval_param_8ms 
+40ee 585d4800 setarg 0x5d4800 
+40ef 67e2462a store 4 ,mem_24g_long_sleep_set1 
+40f0 6fe0c422 fetch 1 ,mem_adc_power_flag 
+40f1 c4000000 rtnbit0 0 
+40f2 202058fc branch mouse_24g_long_sleep_set 
+
+keyboard_low_vol_mult_ble_set:
+40f3 580000a0 setarg 160 
+40f4 204040f9 call keyboard_mult_auto_get 
+40f5 6fe0c422 fetch 1 ,mem_adc_power_flag 
+40f6 c4000000 rtnbit0 0 
+40f7 58000050 setarg 80 
+40f8 202040f9 branch keyboard_mult_auto_get 
+
+keyboard_mult_auto_get:
+40f9 684942d5 fetcht 2 ,mem_le_interval_min 
+40fa 9846fc00 idiv temp 
+40fb 20407d61 call get_div_result 
+40fc 67e0c88b store 1 ,mem_lpm_mult_init 
+40fd 6fe0c73e fetch 1 ,mem_mouse_current_mult_timer 
+40fe 203a552a branch mouse_current_mult_reinit ,blank 
+40ff 20600000 rtn 
+
+keyboard_low_voltage_led_timer:
+4100 704acb00 jam 0 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+4101 6fe14750 fetch 2 ,mem_device_discovery_timer 
+4102 247a0000 nrtn blank 
+4103 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+4104 247a0000 nrtn blank 
+4105 6fe145f5 fetch 2 ,mem_24g_reconn_timeout 
+4106 247a0000 nrtn blank 
+4107 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+4108 247a0000 nrtn blank 
+4109 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+410a c4058000 rtnbit0 keyboard_enable_adc 
+410b c4148000 rtnbit0 keyboard_enable_low_led 
+410c c4010000 rtnbit0 keyboard_low_voltage_flag 
+410d c295411b bbit1 keyboard_enable_low_voltage_led_blink_n_second ,keyboard_low_voltage_led_blink_new_data 
+410e 44a2c008 bpatch patch08_5 ,mem_patch08 
+410f 6fe0cac6 fetch 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+4110 1fe0fe01 increase 1 ,pdata 
+4111 67e0cac6 store 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+4112 1fe67c14 sub pdata ,20 ,null 
+4113 24414119 ncall keyboard_adc_low_volatage_led_timer_count_clean ,positive 
+4114 c0014182 beq 2 ,keyboard_low_voltage_led_on 
+4115 c0024184 beq 4 ,keyboard_low_voltage_led_off 
+4116 c0034182 beq 6 ,keyboard_low_voltage_led_on 
+4117 c0044184 beq 8 ,keyboard_low_voltage_led_off 
+4118 20600000 rtn 
+
+keyboard_adc_low_volatage_led_timer_count_clean:
+4119 704ac601 jam 1 ,mem_keyboard_adc_low_volatage_led_timer_count 
+411a 20204184 branch keyboard_low_voltage_led_off 
+
+keyboard_low_voltage_led_blink_new_data:
+411b 6fe1471e fetch 2 ,mem_device_no_data_timeout 
+411c 68494741 fetcht 2 ,mem_device_no_data_timer 
+411d 98460400 isub temp ,temp 
+411e 6fe14ac7 fetch 2 ,mem_adc_low_volatage_led_blink_timer 
+411f 98467c00 isub temp ,null 
+4120 24214184 nbranch keyboard_low_voltage_led_off ,positive 
+4121 704acb01 jam 1 ,mem_keyboard_low_volatage_led_blink_new_data_enable 
+4122 6fe0cac9 fetch 1 ,mem_keyboard_low_volatage_led_flag 
+4123 1fe0fe01 increase 1 ,pdata 
+4124 67e0cac9 store 1 ,mem_keyboard_low_volatage_led_flag 
+4125 6848caca fetcht 1 ,mem_keyboard_low_volatage_led_blink_count 
+4126 18408401 increase 1 ,temp 
+4127 98467c00 isub temp ,null 
+4128 24214182 nbranch keyboard_low_voltage_led_on ,positive 
+4129 20404184 call keyboard_low_voltage_led_off 
+412a 6fe0cac9 fetch 1 ,mem_keyboard_low_volatage_led_flag 
+412b 6848caca fetcht 1 ,mem_keyboard_low_volatage_led_blink_count 
+412c 184f8402 mul32 temp ,2 ,temp 
+412d 98467c00 isub temp ,null 
+412e 24628000 nrtn zero 
+412f 704ac900 jam 0 ,mem_keyboard_low_volatage_led_flag 
+4130 20600000 rtn 
+
+keyboard_device_poweron_timer:
+4131 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+4132 207a0000 rtn blank 
+4133 1fe0ffff increase -1 ,pdata 
+4134 67e0cac2 store 1 ,mem_keyboard_device_poweron_timer 
+4135 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4136 c2944139 bbit1 keyboard_enable_030_power_led ,keyboard_device_poweron_030_led 
+4137 203a4166 branch keyboard_device_led_off ,blank 
+4138 2020416c branch keyboard_device_led_on 
+
+keyboard_device_poweron_030_led:
+4139 203a413c branch keyboard_power_led_off ,blank 
+
+keyboard_power_led_on:
+413a 6848c916 fetcht 1 ,mem_keyboard_power_led_gpio 
+413b 20206ef1 branch gpio_out_active 
+
+keyboard_power_led_off:
+413c 6848c916 fetcht 1 ,mem_keyboard_power_led_gpio 
+413d 20206eed branch gpio_out_inactive 
+
+keyboard_mode_led_timer:
+413e 6fe14741 fetch 2 ,mem_device_no_data_timer 
+413f 207a0000 rtn blank 
+4140 6fe0cac5 fetch 1 ,mem_keyboard_mode_led_on_timer 
+4141 207a0000 rtn blank 
+4142 1fe0ffff increase -1 ,pdata 
+4143 67e0cac5 store 1 ,mem_keyboard_mode_led_on_timer 
+4144 c280416c bbit1 0 ,keyboard_device_led_on 
+4145 20204166 branch keyboard_device_led_off 
+
+keyboard_device_pair_led_timer:
+4146 6fe0c678 fetch 1 ,mem_device_flag 
+4147 c000414b beq mode_24g_device ,keyboard_device_24g_pair_led 
+4148 6fe14750 fetch 2 ,mem_device_discovery_timer 
+4149 207a0000 rtn blank 
+414a 2020414d branch keyboard_device_pair_led 
+
+keyboard_device_24g_pair_led:
+414b 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+414c 207a0000 rtn blank 
+
+keyboard_device_pair_led:
+414d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+414e 2fec0028 isolate0 keyboard_enable_030_power_led ,pdata 
+414f 2040c15f call keyboard_device_clear_power_timer ,true 
+4150 6fe0cacc fetch 1 ,mem_keyboard_pair_led_flag 
+4151 1fe0fe01 increase 1 ,pdata 
+4152 67e0cacc store 1 ,mem_keyboard_pair_led_flag 
+4153 6848cacd fetcht 1 ,mem_keyboard_pair_led_blink_count 
+4154 18408401 increase 1 ,temp 
+4155 98467c00 isub temp ,null 
+4156 2421416c nbranch keyboard_device_led_on ,positive 
+4157 20404166 call keyboard_device_led_off 
+4158 6fe0cacc fetch 1 ,mem_keyboard_pair_led_flag 
+4159 6848cacd fetcht 1 ,mem_keyboard_pair_led_blink_count 
+415a 184f8402 mul32 temp ,2 ,temp 
+415b 98467c00 isub temp ,null 
+415c 24628000 nrtn zero 
+415d 704acc00 jam 0 ,mem_keyboard_pair_led_flag 
+415e 20600000 rtn 
+
+keyboard_device_clear_power_timer:
+415f 704ac200 jam 0 ,mem_keyboard_device_poweron_timer 
+4160 20600000 rtn 
+
+keyboard_device_led_all_off:
+4161 44a34008 bpatch patch08_6 ,mem_patch08 
+4162 2040413c call keyboard_power_led_off 
+4163 20404166 call keyboard_device_led_off 
+4164 2040419d call keyboard_numlock_led_off 
+4165 202041a3 branch keyboard_capslock_led_off 
+
+keyboard_device_led_off:
+4166 6fe0c678 fetch 1 ,mem_device_flag 
+4167 c0004172 beq mode_24g_device ,keyboard_device_24g_led_off 
+4168 c000c174 beq mode_bt_device1 ,keyboard_device_bt1_led_off 
+4169 c0014176 beq mode_bt_device2 ,keyboard_device_bt2_led_off 
+416a c001c178 beq mode_bt_device3 ,keyboard_device_bt3_led_off 
+416b 20600000 rtn 
+
+keyboard_device_led_on:
+416c 6fe0c678 fetch 1 ,mem_device_flag 
+416d c000417a beq mode_24g_device ,keyboard_device_24g_led_on 
+416e c000c17c beq mode_bt_device1 ,keyboard_device_bt1_led_on 
+416f c001417e beq mode_bt_device2 ,keyboard_device_bt2_led_on 
+4170 c001c180 beq mode_bt_device3 ,keyboard_device_bt3_led_on 
+4171 20600000 rtn 
+
+keyboard_device_24g_led_off:
+4172 6848c918 fetcht 1 ,mem_keyboard_24g_led_gpio 
+4173 20206eed branch gpio_out_inactive 
+
+keyboard_device_bt1_led_off:
+4174 6848c919 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+4175 20206eed branch gpio_out_inactive 
+
+keyboard_device_bt2_led_off:
+4176 6848c91a fetcht 1 ,mem_keyboard_bt2_led_gpio 
+4177 20206eed branch gpio_out_inactive 
+
+keyboard_device_bt3_led_off:
+4178 6848c91b fetcht 1 ,mem_keyboard_bt3_led_gpio 
+4179 20206eed branch gpio_out_inactive 
+
+keyboard_device_24g_led_on:
+417a 6848c918 fetcht 1 ,mem_keyboard_24g_led_gpio 
+417b 20206ef1 branch gpio_out_active 
+
+keyboard_device_bt1_led_on:
+417c 6848c919 fetcht 1 ,mem_keyboard_bt1_led_gpio 
+417d 20206ef1 branch gpio_out_active 
+
+keyboard_device_bt2_led_on:
+417e 6848c91a fetcht 1 ,mem_keyboard_bt2_led_gpio 
+417f 20206ef1 branch gpio_out_active 
+
+keyboard_device_bt3_led_on:
+4180 6848c91b fetcht 1 ,mem_keyboard_bt3_led_gpio 
+4181 20206ef1 branch gpio_out_active 
+
+keyboard_low_voltage_led_on:
+4182 6848c917 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+4183 20206ef1 branch gpio_out_active 
+
+keyboard_low_voltage_led_off:
+4184 6848c917 fetcht 1 ,mem_keyboard_low_voltage_alarm_gpio 
+4185 20206eed branch gpio_out_inactive 
+
+keyboard_num_capslock_led_on_timer:
+4186 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
+4187 c02d4193 beq usb_interface_insert ,keyboard_usb_led_check 
+4188 6fe14741 fetch 2 ,mem_device_no_data_timer 
+4189 207a0000 rtn blank 
+418a 6fe1471e fetch 2 ,mem_device_no_data_timeout 
+418b 68494741 fetcht 2 ,mem_device_no_data_timer 
+418c 98460400 isub temp ,temp 
+418d 6fe14ac3 fetch 2 ,mem_keyboard_num_caps_scoll_led_on_timer 
+418e 98467e00 isub temp ,pdata 
+418f 20214196 branch keyboard_num_cap_scoll_led_check ,positive 
+4190 2040419d call keyboard_numlock_led_off 
+4191 204041a9 call keyboard_scrolllock_led_off 
+4192 202041a3 branch keyboard_capslock_led_off 
+
+keyboard_usb_led_check:
+4193 6fe0c638 fetch 1 ,mem_24g_led_status 
+4194 67e0c70d store 1 ,mem_keyboard_led_status 
+4195 20204196 branch keyboard_num_cap_scoll_led_check 
+
+keyboard_num_cap_scoll_led_check:
+4196 20404199 call keyboard_numlock_led_check_on 
+4197 204041a5 call keyboard_scrolllock_led_check_on 
+4198 2020419f branch keyboard_capslock_led_check_on 
+
+keyboard_numlock_led_check_on:
+4199 6fe0c70d fetch 1 ,mem_keyboard_led_status 
+419a c300419d bbit0 kb_pc_keysel_numlock ,keyboard_numlock_led_off 
+
+keyboard_numlock_led_on:
+419b 6848c913 fetcht 1 ,mem_keyboard_num_led_gpio 
+419c 20206ef1 branch gpio_out_active 
+
+keyboard_numlock_led_off:
+419d 6848c913 fetcht 1 ,mem_keyboard_num_led_gpio 
+419e 20206eed branch gpio_out_inactive 
+
+keyboard_capslock_led_check_on:
+419f 6fe0c70d fetch 1 ,mem_keyboard_led_status 
+41a0 c300c1a3 bbit0 kb_pc_keysel_capslock ,keyboard_capslock_led_off 
+41a1 6848c914 fetcht 1 ,mem_keyboard_caps_led_gpio 
+41a2 20206ef1 branch gpio_out_active 
+
+keyboard_capslock_led_off:
+41a3 6848c914 fetcht 1 ,mem_keyboard_caps_led_gpio 
+41a4 20206eed branch gpio_out_inactive 
+
+keyboard_scrolllock_led_check_on:
+41a5 6fe0c70d fetch 1 ,mem_keyboard_led_status 
+41a6 c30141a9 bbit0 kb_pc_keysel_scrolllock ,keyboard_scrolllock_led_off 
+41a7 6848c915 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+41a8 20206ef1 branch gpio_out_active 
+
+keyboard_scrolllock_led_off:
+41a9 6848c915 fetcht 1 ,mem_keyboard_scroll_led_gpio 
+41aa 20206eed branch gpio_out_inactive 
+
+keyboard_rgb_on_timer:
+41ab 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+41ac c4158000 rtnbit0 keyboard_enable_backlight 
+41ad 6fe14741 fetch 2 ,mem_device_no_data_timer 
+41ae 207a0000 rtn blank 
+41af 6fe1471e fetch 2 ,mem_device_no_data_timeout 
+41b0 68494741 fetcht 2 ,mem_device_no_data_timer 
+41b1 98460400 isub temp ,temp 
+41b2 6fe148c2 fetch 2 ,mem_keyboard_rgb_on_timer 
+41b3 98467e00 isub temp ,pdata 
+41b4 20610000 rtn positive 
+41b5 7046b100 jam 0 ,mem_backlight_on_flag 
+41b6 20204203 branch keyboard_rgb_off 
+
+keyboard_pwm_init:
+41b7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+41b8 c4158000 rtnbit0 keyboard_enable_backlight 
+41b9 da200000 arg 0 ,rega 
+41ba 204070b9 call pwm_init 
+41bb 6fe348b2 fetch 6 ,mem_rgb_pwm_conf 
+41bc 67e3064e store 6 ,mem_pdatatemp 
+41bd 204070ca call pwm_out_set 
+41be 6fe148b2 fetch 2 ,mem_rgb_pwm_conf 
+41bf 20207103 branch pwm_disable 
+
+keyboard_rgb_pwm_disable:
+41c0 6fe0c91c fetch 1 ,mem_keyboard_led_r_gpio 
+41c1 20407103 call pwm_disable 
+41c2 6fe0c91d fetch 1 ,mem_keyboard_led_g_gpio 
+41c3 20407103 call pwm_disable 
+41c4 6fe0c91e fetch 1 ,mem_keyboard_led_b_gpio 
+41c5 20207103 branch pwm_disable 
+
+keyboard_rgb_pwm_set:
+41c6 6fe348b2 fetch 6 ,mem_rgb_pwm_conf 
+41c7 67e3064e store 6 ,mem_pdatatemp 
+41c8 202070ca branch pwm_out_set 
+
+keyboard_load_rgb:
+41c9 44a3c008 bpatch patch08_7 ,mem_patch08 
+41ca 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+41cb c4158000 rtnbit0 keyboard_enable_backlight 
+41cc 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
+41cd 204041de call keyboard_rgb_mode_switch_next 
+41ce 6fe0c6b2 fetch 1 ,mem_backlight_on_type 
+41cf 202041ef branch keyboard_rgb_on_type_switch_next 
+
+keyboard_rgb_mode_switch:
+41d0 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+41d1 c4158000 rtnbit0 keyboard_enable_backlight 
+41d2 204044ca call keyboard_keyvalue_clear_temp 
+41d3 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+41d4 c4000000 rtnbit0 0 
+41d5 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+41d6 79207e05 set1 keyboard_store_eepromm_flag_rgb_type ,pdata 
+41d7 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+41d8 204044b7 call keyboard_store_eeprom_or_flash 
+41d9 7048ca00 jam 0 ,mem_backlight_breathe_type 
+41da 7048b800 jam 0 ,mem_rgb_pwm_breathe_flag 
+41db 7048b70a jam 10 ,mem_rgb_pwm_conf + 5 
+41dc 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
+41dd 1fe0fe01 increase 1 ,pdata 
+
+keyboard_rgb_mode_switch_next:
+41de 1fe67c02 sub pdata ,rgb_backlight_status_breathe ,null 
+41df 24417dcc ncall set_pdata_0 ,positive 
+41e0 67e0c6b1 store 1 ,mem_backlight_on_flag 
+41e1 20600000 rtn 
+
+keyboard_rgb_on_type_switch:
+41e2 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+41e3 c4158000 rtnbit0 keyboard_enable_backlight 
+41e4 204044ca call keyboard_keyvalue_clear_temp 
+41e5 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+41e6 c4000000 rtnbit0 0 
+41e7 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
+41e8 c1808000 rtnne rgb_backlight_status_on 
+41e9 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+41ea 79207e05 set1 keyboard_store_eepromm_flag_rgb_type ,pdata 
+41eb 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+41ec 204044b7 call keyboard_store_eeprom_or_flash 
+41ed 6fe0c6b2 fetch 1 ,mem_backlight_on_type 
+41ee 1fe0fe01 increase 1 ,pdata 
+
+keyboard_rgb_on_type_switch_next:
+41ef 1fe67c06 sub pdata ,rgb_backlight_on_tpye_white ,null 
+41f0 24417dcc ncall set_pdata_0 ,positive 
+41f1 67e0c6b2 store 1 ,mem_backlight_on_type 
+41f2 20600000 rtn 
+
+keyboard_rgb_process:
+41f3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+41f4 c4158000 rtnbit0 keyboard_enable_backlight 
+41f5 684a48c4 fetcht 4 ,mem_ui_check_timer_setup 
+41f6 1c427e00 copy clkn_bt ,pdata 
+41f7 98467e00 isub temp ,pdata 
+41f8 684948c8 fetcht 2 ,mem_customize_timer_setup 
+41f9 9846fc00 idiv temp 
+41fa 20407d64 call wait_div_end 
+41fb 1807fe00 quotient pdata 
+41fc 207a0000 rtn blank 
+41fd 1c420400 copy clkn_bt ,temp 
+41fe 604a48c4 storet 4 ,mem_ui_check_timer_setup 
+41ff 6fe0c6b1 fetch 1 ,mem_backlight_on_flag 
+4200 c0014209 beq rgb_backlight_status_breathe ,keyboard_rbg_breathe_process 
+4201 c000c244 beq rgb_backlight_status_on ,keyboard_rgb_on_process 
+4202 7046b100 jam 0 ,mem_backlight_on_flag 
+
+keyboard_rgb_off:
+4203 44a44009 bpatch patch09_0 ,mem_patch09 
+4204 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4205 c4158000 rtnbit0 keyboard_enable_backlight 
+4206 204041c0 call keyboard_rgb_pwm_disable 
+4207 7048b900 jam 0 ,mem_rgb_on_color_temp 
+4208 2020424e branch keyboard_rgb_led_control 
+
+keyboard_rbg_breathe_process:
+4209 6fe0c8b8 fetch 1 ,mem_rgb_pwm_breathe_flag 
+420a 203a4211 branch keyboard_rbg_breathe_up ,blank 
+420b 6fe0c8b7 fetch 1 ,mem_rgb_pwm_conf + 5 
+420c 1fe67c05 sub pdata ,5 ,null 
+420d 2021421a branch keyboard_rbg_breathe_color_switch ,positive 
+420e 1fe0ffff increase -1 ,pdata 
+420f 67e0c8b7 store 1 ,mem_rgb_pwm_conf + 5 
+4210 20204221 branch keyboard_rgb_pwm 
+
+keyboard_rbg_breathe_up:
+4211 6fe0c8b7 fetch 1 ,mem_rgb_pwm_conf + 5 
+4212 1fe0fe01 increase 1 ,pdata 
+4213 67e0c8b7 store 1 ,mem_rgb_pwm_conf + 5 
+4214 20404221 call keyboard_rgb_pwm 
+4215 6fe0c8b7 fetch 1 ,mem_rgb_pwm_conf + 5 
+4216 1fe67c5a sub pdata ,90 ,null 
+4217 20610000 rtn positive 
+4218 7048b801 jam 1 ,mem_rgb_pwm_breathe_flag 
+4219 20600000 rtn 
+
+keyboard_rbg_breathe_color_switch:
+421a 7048b800 jam 0 ,mem_rgb_pwm_breathe_flag 
+421b 6fe0c8ca fetch 1 ,mem_backlight_breathe_type 
+421c 1fe0fe01 increase 1 ,pdata 
+421d 1fe67c06 sub pdata ,rgb_backlight_breathe_tpye_white ,null 
+421e 24417dcc ncall set_pdata_0 ,positive 
+421f 67e0c8ca store 1 ,mem_backlight_breathe_type 
+4220 20600000 rtn 
+
+keyboard_rgb_pwm:
+4221 204041b7 call keyboard_pwm_init 
+4222 20404207 call keyboard_rgb_off + 4 
+4223 20204224 branch keyboard_breathe_tpye_select 
+
+keyboard_breathe_tpye_select:
+4224 6fe0c8ca fetch 1 ,mem_backlight_breathe_type 
+4225 c001422c beq rgb_backlight_breathe_tpye_red ,keyboard_breathe_tpye_red 
+4226 c000c231 beq rgb_backlight_breathe_tpye_green ,keyboard_breathe_tpye_green 
+4227 c0004236 beq rgb_backlight_breathe_tpye_blue ,keyboard_breathe_tpye_blue 
+4228 c001c23b beq rgb_backlight_breathe_tpye_cyan ,keyboard_breathe_tpye_cyan 
+4229 c002c23d beq rgb_backlight_breathe_tpye_orange ,keyboard_breathe_tpye_orange 
+422a c002423f beq rgb_backlight_breathe_tpye_purple ,keyboard_breathe_tpye_purple 
+422b c0034241 beq rgb_backlight_breathe_tpye_white ,keyboard_breathe_tpye_white 
+
+keyboard_breathe_tpye_red:
+422c 6fe0c91c fetch 1 ,mem_keyboard_led_r_gpio 
+422d 67e0c8b2 store 1 ,mem_rgb_pwm_conf 
+422e 58000001 setarg 0x01 
+422f 67e0c8b3 store 1 ,mem_rgb_pwm_conf + 1 
+4230 202041c6 branch keyboard_rgb_pwm_set 
+
+keyboard_breathe_tpye_green:
+4231 6fe0c91d fetch 1 ,mem_keyboard_led_g_gpio 
+4232 67e0c8b2 store 1 ,mem_rgb_pwm_conf 
+4233 58000002 setarg 0x02 
+4234 67e0c8b3 store 1 ,mem_rgb_pwm_conf + 1 
+4235 202041c6 branch keyboard_rgb_pwm_set 
+
+keyboard_breathe_tpye_blue:
+4236 6fe0c91e fetch 1 ,mem_keyboard_led_b_gpio 
+4237 67e0c8b2 store 1 ,mem_rgb_pwm_conf 
+4238 58000004 setarg 0x04 
+4239 67e0c8b3 store 1 ,mem_rgb_pwm_conf + 1 
+423a 202041c6 branch keyboard_rgb_pwm_set 
+
+keyboard_breathe_tpye_cyan:
+423b 20404231 call keyboard_breathe_tpye_green 
+423c 20204236 branch keyboard_breathe_tpye_blue 
+
+keyboard_breathe_tpye_orange:
+423d 2040422c call keyboard_breathe_tpye_red 
+423e 20204231 branch keyboard_breathe_tpye_green 
+
+keyboard_breathe_tpye_purple:
+423f 2040422c call keyboard_breathe_tpye_red 
+4240 20204236 branch keyboard_breathe_tpye_blue 
+
+keyboard_breathe_tpye_white:
+4241 2040422c call keyboard_breathe_tpye_red 
+4242 20404231 call keyboard_breathe_tpye_green 
+4243 20204236 branch keyboard_breathe_tpye_blue 
+
+keyboard_rgb_on_process:
+4244 204041c0 call keyboard_rgb_pwm_disable 
+4245 6fe0c6b2 fetch 1 ,mem_backlight_on_type 
+4246 1fe67c06 sub pdata ,rgb_backlight_on_tpye_white ,null 
+4247 24417dcc ncall set_pdata_0 ,positive 
+4248 67e0c6b2 store 1 ,mem_backlight_on_type 
+4249 d8c048ba arg mem_rgb_on_color ,contr 
+424a 98c08c00 iadd contr ,contr 
+424b efe08006 ifetch 1 ,contr 
+424c 67e0c8b9 store 1 ,mem_rgb_on_color_temp 
+424d 2020424e branch keyboard_rgb_led_control 
+
+keyboard_rgb_led_control:
+424e 6fe0c8b9 fetch 1 ,mem_rgb_on_color_temp 
+424f 2feffe02 isolate1 keyboard_rgb_red_status ,pdata 
+4250 2040c25b call keyboard_rgb_red_led_on ,true 
+4251 2440c25d ncall keyboard_rgb_red_led_off ,true 
+4252 6fe0c8b9 fetch 1 ,mem_rgb_on_color_temp 
+4253 2feffe01 isolate1 keyboard_rgb_green_status ,pdata 
+4254 2040c25f call keyboard_rgb_green_led_on ,true 
+4255 2440c261 ncall keyboard_rgb_green_led_off ,true 
+4256 6fe0c8b9 fetch 1 ,mem_rgb_on_color_temp 
+4257 2feffe00 isolate1 keyboard_rgb_blue_status ,pdata 
+4258 2040c263 call keyboard_rgb_blue_led_on ,true 
+4259 2440c265 ncall keyboard_rgb_blue_led_off ,true 
+425a 20600000 rtn 
+
+keyboard_rgb_red_led_on:
+425b 6848c91c fetcht 1 ,mem_keyboard_led_r_gpio 
+425c 20206eed branch gpio_out_inactive 
+
+keyboard_rgb_red_led_off:
+425d 6848c91c fetcht 1 ,mem_keyboard_led_r_gpio 
+425e 20206ef1 branch gpio_out_active 
+
+keyboard_rgb_green_led_on:
+425f 6848c91d fetcht 1 ,mem_keyboard_led_g_gpio 
+4260 20206eed branch gpio_out_inactive 
+
+keyboard_rgb_green_led_off:
+4261 6848c91d fetcht 1 ,mem_keyboard_led_g_gpio 
+4262 20206ef1 branch gpio_out_active 
+
+keyboard_rgb_blue_led_on:
+4263 6848c91e fetcht 1 ,mem_keyboard_led_b_gpio 
+4264 20206eed branch gpio_out_inactive 
+
+keyboard_rgb_blue_led_off:
+4265 6848c91e fetcht 1 ,mem_keyboard_led_b_gpio 
+4266 20206ef1 branch gpio_out_active 
+
+keyboard_key_press_timer:
+4267 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+4268 c280426d bbit1 keyboard_flag_g24_device_button ,keyboard_device_select_g24_press_timer 
+4269 20404278 call keyboard_device_select_g24_nopress_timer 
+426a 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+426b c280c27e bbit1 keyboard_flag_bt_device_button ,keyboard_device_select_bt_press_timer 
+426c 20204289 branch keyboard_device_select_bt_nopress_timer 
+
+keyboard_device_select_g24_press_timer:
+426d 6fe0c8a9 fetch 1 ,mem_keyboard_switch_g24_press_timer 
+426e 1fe67c64 sub pdata ,100 ,null 
+426f 24610000 nrtn positive 
+4270 1fe0fe01 increase 1 ,pdata 
+4271 67e0c8a9 store 1 ,mem_keyboard_switch_g24_press_timer 
+4272 c18c8000 rtnne 25 
+4273 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
+4274 6fe0c678 fetch 1 ,mem_device_flag 
+4275 c1020000 rtneq mode_usb_device 
+4276 204048e6 call keyboard_stop_bluetooth_mode 
+4277 20204680 branch keyboard_24g_start_pair_mode 
+
+keyboard_device_select_g24_nopress_timer:
+4278 7048a900 jam 0 ,mem_keyboard_switch_g24_press_timer 
+4279 6fe0c8a7 fetch 1 ,mem_keyboard_switch_g24_enable 
+427a 207a0000 rtn blank 
+427b 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
+427c 20404045 call keyboard_store_device_number 
+427d 20206c99 branch soft_reset_chip 
+
+keyboard_device_select_bt_press_timer:
+427e 6fe0c8aa fetch 1 ,mem_keyboard_switch_bt_press_timer 
+427f 1fe67c64 sub pdata ,100 ,null 
+4280 24610000 nrtn positive 
+4281 1fe0fe01 increase 1 ,pdata 
+4282 67e0c8aa store 1 ,mem_keyboard_switch_bt_press_timer 
+4283 c18c8000 rtnne 25 
+4284 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
+4285 6fe0c678 fetch 1 ,mem_device_flag 
+4286 c1020000 rtneq mode_usb_device 
+4287 20406824 call hid_device_le_send_empty_packet 
+4288 20204675 branch keyboard_long_button_bt_discovery 
+
+keyboard_device_select_bt_nopress_timer:
+4289 7048aa00 jam 0 ,mem_keyboard_switch_bt_press_timer 
+428a 6fe0c8a8 fetch 1 ,mem_keyboard_switch_bt_enable 
+428b 207a0000 rtn blank 
+428c 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
+428d 20404045 call keyboard_store_device_number 
+428e 20206c99 branch soft_reset_chip 
+
+keyboard_commbination_key_process:
+428f 6fe0c735 fetch 1 ,mem_commbination_key_statue 
+4290 c1808000 rtnne commbination_key_state_down 
+4291 da604736 arg mem_combination_ui_button_count ,regc 
+4292 da404294 arg keyboard_commbination_key_press_type_check ,regb 
+4293 20203755 branch timer_single_step 
+
+keyboard_commbination_key_press_type_check:
+4294 6fe0ca9b fetch 1 ,mem_keyboard_commbination_press_type 
+4295 c000c680 beq keyboard_commbination_press_type_24g_pair ,keyboard_24g_start_pair_mode 
+4296 c0014675 beq keyboard_commbination_press_type_bt_pair ,keyboard_long_button_bt_discovery 
+4297 c001d3ad beq keyboard_commbination_press_type_bt_fast_conn ,mouse_bluetooth_fast_conn_init 
+4298 20600000 rtn 
+
+keyboard_check_discovery_timeout_timer:
+4299 da604750 arg mem_device_discovery_timer ,regc 
+429a da40429c arg keyboard_check_discovery_timeout ,regb 
+429b 2020375c branch timer_single_step_2b 
+
+keyboard_check_discovery_timeout:
+429c 204048e9 call keyboard_stop_discovery 
+429d 202047af branch keyboard_power_down 
+
+keyboard_store_information_delay_timer:
+429e da604705 arg mem_store_information_delay_timer ,regc 
+429f da403fd7 arg keyboard_store_device_info ,regb 
+42a0 20203755 branch timer_single_step 
+
+keyboard_le_auto_recognize_timer:
+42a1 da60490e arg mem_le_start_auto_reco_timer ,regc 
+42a2 da4048fd arg keyboard_le_send_att_find_by_type_value_request_ancs ,regb 
+42a3 20203755 branch timer_single_step 
+
+keyboard_check_direct_timeout_timer:
+42a4 da604720 arg mem_device_direct_timer ,regc 
+42a5 da4042aa arg keyboard_check_direct_timeout ,regb 
+42a6 20403755 call timer_single_step 
+42a7 6fe0c720 fetch 1 ,mem_device_direct_timer 
+42a8 c000b788 beq 1 ,app_ble_stop_direct_adv 
+42a9 20600000 rtn 
+
+keyboard_check_direct_timeout:
+42aa 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+42ab c28d48c5 bbit1 keyboard_enable_bt_reconnect_timeout_enter_discovery ,keyboard_start_discovery 
+42ac 20204e35 branch mouse_app_enter_hibernate 
+
+keyboard_le_battery_updata_timer:
+42ad 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+42ae c38c8000 rtnbit1 keyboard_enable_le_battery_service_cancel 
+42af da60477f arg mem_le_battery_level_updata_timer ,regc 
+42b0 da40551f arg mouse_le_battery_level_updata ,regb 
+42b1 20203755 branch timer_single_step 
+
+keyboard_le_send_conn_param_update_timer:
+42b2 da60490d arg mem_keyboard_le_send_conn_param_update_timer ,regc 
+42b3 da405408 arg mouse_updata_le_param ,regb 
+42b4 20203755 branch timer_single_step 
+
+keyboard_24g_repeat_send_data:
+42b5 6fe0ca80 fetch 1 ,mem_24g_repeat_send_flag 
+42b6 207a0000 rtn blank 
+42b7 704a8000 jam 0 ,mem_24g_repeat_send_flag 
+42b8 6fe0c9a0 fetch 1 ,mem_same_keyvalue_timerout_flag 
+42b9 247a0000 nrtn blank 
+42ba 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+42bb 247a0000 nrtn blank 
+42bc 7049a901 jam 1 ,mem_keyboard_data_change_flag 
+42bd 204035fd call g24_txdata_prep 
+42be 20204828 branch keyboard_g24_transmit_process 
+
+keyboard_24g_led_status_get_timer:
+42bf da604a82 arg mem_keyboard_led_status_get_timer ,regc 
+42c0 da4042c2 arg keyboard_24g_led_status_clear ,regb 
+42c1 20203755 branch timer_single_step 
+
+keyboard_24g_led_status_clear:
+42c2 704a8100 jam 0 ,mem_keyboard_led_status_get 
+42c3 20600000 rtn 
+
+keyboard_same_key_long_press_timer:
+42c4 da6049a3 arg mem_same_keyvalue_timer ,regc 
+42c5 da4042c7 arg keyboard_long_press_timerout ,regb 
+42c6 2020375c branch timer_single_step_2b 
+
+keyboard_long_press_timerout:
+42c7 7049a001 jam 1 ,mem_same_keyvalue_timerout_flag 
+42c8 202047af branch keyboard_power_down 
+
+keyboard_commbination_delay_release_timer:
+42c9 da604a9f arg mem_keyboard_commbination_control_key_delay_release_timer ,regc 
+42ca da404547 arg keyboard_commbination_key_null_set ,regb 
+42cb 20203755 branch timer_single_step 
+
+keyboard_usb_updata_timer:
+42cc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+42cd c4120000 rtnbit0 keyboard_enable_usb 
+42ce 6fe0cad0 fetch 1 ,mem_usb_wait_updata_timer 
+42cf 207a0000 rtn blank 
+42d0 1fe0ffff increase -1 ,pdata 
+42d1 67e0cad0 store 1 ,mem_usb_wait_updata_timer 
+42d2 247a0000 nrtn blank 
+42d3 70409401 jam 1 ,mem_lpm_mode 
+42d4 202047af branch keyboard_power_down 
+
+keyboard_check_no_data_timeout_timer:
+42d5 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
+42d6 c12d0000 rtneq usb_interface_insert 
+42d7 da604741 arg mem_device_no_data_timer ,regc 
+42d8 da4042da arg keyboard_check_no_data_timeout ,regb 
+42d9 2020375c branch timer_single_step_2b 
+
+keyboard_check_no_data_timeout:
+42da 6fe0c678 fetch 1 ,mem_device_flag 
+42db c00047fb beq mode_24g_device ,keyboard_24g_hibernate_set 
+42dc 202053c6 branch mouse_disconnect 
+
+keyboard_idle:
+42dd 44a4c009 bpatch patch09_1 ,mem_patch09 
+42de 20404330 call kscan_dispatch 
+42df 204041f3 call keyboard_rgb_process 
+42e0 204049fa call keyboard_usb_isr 
+42e1 204049ff call keyboard_usb_mode 
+42e2 202042e3 branch keyboard_check_select_device_by_switch 
+
+keyboard_check_select_device_by_switch:
+42e3 44a54009 bpatch patch09_2 ,mem_patch09 
+42e4 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+42e5 c41c0000 rtnbit0 keyboard_enable_select_device_by_switch_gpio 
+42e6 c29dc2f0 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_check_select_device_by_switch_vdd_check 
+42e7 c29e42f0 bbit1 keyboard_enable_select_device_by_switch_gpio_bt_connect_vdd ,keyboard_check_select_device_by_switch_vdd_check 
+42e8 6848c665 fetcht 1 ,mem_device_switch_gpio 
+42e9 20404f0a call device_gpio_config_input_pu 
+42ea 6848c665 fetcht 1 ,mem_device_switch_gpio 
+42eb 20406ee0 call gpio_get_bit 
+42ec 2020c2fd branch keyboard_check_select_device_by_switch_gnd ,true 
+42ed 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+42ee c29cc302 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_gnd ,keyboard_select_btdevice 
+42ef 20204308 branch keyboard_check_select_24g_device 
+
+keyboard_check_select_device_by_switch_vdd_check:
+42f0 6848c665 fetcht 1 ,mem_device_switch_gpio 
+42f1 20404f06 call device_gpio_config_input_pd 
+42f2 6848c665 fetcht 1 ,mem_device_switch_gpio 
+42f3 20406ee0 call gpio_get_bit 
+42f4 2420c2f8 nbranch keyboard_check_select_device_by_switch_vdd ,true 
+42f5 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+42f6 c29dc302 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_select_btdevice 
+42f7 20204308 branch keyboard_check_select_24g_device 
+
+keyboard_check_select_device_by_switch_vdd:
+42f8 6848c665 fetcht 1 ,mem_device_switch_gpio 
+42f9 20404f0a call device_gpio_config_input_pu 
+42fa 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+42fb c29dc308 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_vdd ,keyboard_check_select_24g_device 
+42fc 20204302 branch keyboard_select_btdevice 
+
+keyboard_check_select_device_by_switch_gnd:
+42fd 6848c665 fetcht 1 ,mem_device_switch_gpio 
+42fe 20404f06 call device_gpio_config_input_pd 
+42ff 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4300 c29cc308 bbit1 keyboard_enable_select_device_by_switch_gpio_g24_connect_gnd ,keyboard_check_select_24g_device 
+4301 20204302 branch keyboard_select_btdevice 
+
+keyboard_select_btdevice:
+4302 6fe0c678 fetch 1 ,mem_device_flag 
+4303 c1008000 rtneq mode_bt_device1 
+4304 70467801 jam mode_bt_device1 ,mem_device_flag 
+4305 6fe0c896 fetch 1 ,mem_keyboard_switch_count_temp 
+4306 243a6c99 nbranch soft_reset_chip ,blank 
+4307 202048e6 branch keyboard_stop_bluetooth_mode 
+
+keyboard_check_select_24g_device:
+4308 6fe0c678 fetch 1 ,mem_device_flag 
+4309 c1000000 rtneq mode_24g_device 
+430a 70467800 jam mode_24g_device ,mem_device_flag 
+430b 6fe0c896 fetch 1 ,mem_keyboard_switch_count_temp 
+430c 243a6c99 nbranch soft_reset_chip ,blank 
+430d 20204804 branch keyboard_24g_stop 
+
+keyboard_start_work:
+430e 44a5c009 bpatch patch09_3 ,mem_patch09 
+430f 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4310 c305c31a bbit0 keyboard_enable_adc ,keyboard_start_work_next 
+4311 204040c4 call keyboard_adc_read_start 
+4312 6fe14646 fetch 2 ,mem_device_vdd_empty_vol 
+4313 1fe6fc02 div pdata ,2 
+4314 20407d61 call get_div_result 
+4315 6849464a fetcht 2 ,mem_device_vdd_now_vol 
+4316 98467c00 isub temp ,null 
+4317 2021430e branch keyboard_start_work ,positive 
+4318 6fe0c422 fetch 1 ,mem_adc_power_flag 
+4319 c280c7af bbit1 1 ,keyboard_power_down 
+
+keyboard_start_work_next:
+431a 6fe0ca7f fetch 1 ,mem_keyboard_pairing_type 
+431b 205a4670 call keyboard_enable_bt_button_pairing ,blank 
+431c 6fe0ca7e fetch 1 ,mem_keyboard_bt_button_flag 
+431d 247a0000 nrtn blank 
+431e 6fe0c678 fetch 1 ,mem_device_flag 
+431f c000432d beq mode_24g_device ,keyboard_24g_start_mode 
+4320 204053c1 call mouse_bluetooth_fast_conn_disable 
+4321 c000c324 beq mode_bt_device1 ,keyboard_start_ble1_reconnect 
+4322 c0014329 beq mode_bt_device2 ,keyboard_start_ble2_reconnect 
+4323 c001c32b beq mode_bt_device3 ,keyboard_start_ble3_reconnect 
+
+keyboard_start_ble1_reconnect:
+4324 6fe3467a fetch 6 ,mem_device1_addr 
+
+keyboard_start_ble_reconnect:
+4325 684b46f8 fetcht 6 ,mem_device_compare_addr 
+4326 98467c00 isub temp ,null 
+4327 2022d3ad branch mouse_bluetooth_fast_conn_init ,zero 
+4328 20204e09 branch mouse_start_reconnect_device 
+
+keyboard_start_ble2_reconnect:
+4329 6fe34687 fetch 6 ,mem_device2_addr 
+432a 20204325 branch keyboard_start_ble_reconnect 
+
+keyboard_start_ble3_reconnect:
+432b 6fe34694 fetch 6 ,mem_device3_addr 
+432c 20204325 branch keyboard_start_ble_reconnect 
+
+keyboard_24g_start_mode:
+432d 20403e9a call keyboard_wakeup_from_power_check 
+432e 20345988 branch mouse_24g_reconn_dongle_start ,user 
+432f 2020594d branch mouse_24g_reconn_general_dongle 
+
+kscan_dispatch:
+4330 44a64009 bpatch patch09_4 ,mem_patch09 
+4331 20404334 call keyboard_keyscan 
+4332 204043b5 call keyboard_key_process 
+4333 202045b4 branch keyboard_special_key_check 
+
+keyboard_keyscan:
+4334 20403ef9 call keyboard_gpio_init 
+4335 204043af call keyboard_stb_state_low 
+4336 58000000 setarg 0 
+4337 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+4338 d8c0494e arg mem_keyscan_value_current ,contr 
+4339 d8a04963 arg mem_keyscan_value_check ,contw 
+433a df200014 arg 20 ,loopcnt 
+433b 20407cdc call memcpy 
+433c 5800494e setarg mem_keyscan_value_current 
+433d 67e14998 store 2 ,mem_keyscan_value_ptr 
+433e 5800498d setarg mem_keyscan_exmcu_value 
+433f 67e1499a store 2 ,mem_keyscan_exmcu_value_ptr 
+4340 204043ad call keyboard_stb_state_high 
+4341 204043ab call keyboard_clk_input 
+
+keyboard_keyscan_exmcu_start_check:
+4342 6fe1499e fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+4343 1fe0fe01 increase 1 ,pdata 
+4344 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+4345 c284c334 bbit1 9 ,keyboard_keyscan 
+4346 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+4347 20406ee0 call gpio_get_bit 
+4348 2420c342 nbranch keyboard_keyscan_exmcu_start_check ,true 
+4349 204043af call keyboard_stb_state_low 
+
+keyboard_keyscan_wait_wake_next:
+434a 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+434b 20406ee0 call gpio_get_bit 
+434c 2020c34a branch keyboard_keyscan_wait_wake_next ,true 
+434d 20404372 call keyboard_keyscan_get_exmcu_value 
+434e 20404386 call keyboard_keyscan_get_mcu_value 
+434f 204043ab call keyboard_clk_input 
+4350 204043ad call keyboard_stb_state_high 
+
+keyboard_keyscan_copy_value:
+4351 6fe1494c fetch 2 ,mem_kb_excol_ptr 
+4352 1fe22400 copy pdata ,regb 
+4353 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+
+keyboard_compare_col_excol_gpio_loop:
+4354 e8408012 ifetcht 1 ,regb 
+4355 6fe1494a fetch 2 ,mem_kb_col_ptr 
+4356 1fe22200 copy pdata ,rega 
+4357 1a222600 copy rega ,regc 
+4358 df200014 arg 20 ,loopcnt 
+
+keyboard_compare_col_gpio_loop:
+4359 efe08011 ifetch 1 ,rega 
+435a 98467c00 isub temp ,null 
+435b 2022c366 branch keyboard_copy_value_exmcu_to_mcu ,zero 
+435c 1a20a201 increase 1 ,rega 
+435d c2004359 loop keyboard_compare_col_gpio_loop 
+
+keyboard_compare_col_excol_gpio_loop_next:
+435e 1a40a401 increase 1 ,regb 
+435f 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+4360 1fe0fe01 increase 1 ,pdata 
+4361 67e0c99d store 1 ,mem_keyscan_col_loop_count 
+4362 1fe67c0b sub pdata ,11 ,null 
+4363 20214354 branch keyboard_compare_col_excol_gpio_loop ,positive 
+4364 20403f1b call keyboard_gpio_pu_idle 
+4365 20203f0f branch keyboard_key_row_init 
+
+keyboard_copy_value_exmcu_to_mcu:
+4366 6fe14998 fetch 2 ,mem_keyscan_value_ptr 
+4367 1fe20a00 copy pdata ,contw 
+4368 1a227e00 copy rega ,pdata 
+4369 9a667e00 isub regc ,pdata 
+436a 98a08a00 iadd contw ,contw 
+436b 6fe1499a fetch 2 ,mem_keyscan_exmcu_value_ptr 
+436c 1fe22600 copy pdata ,regc 
+436d 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+436e 9a60a600 iadd regc ,regc 
+436f efe08013 ifetch 1 ,regc 
+4370 e7e08005 istore 1 ,contw 
+4371 2020435e branch keyboard_compare_col_excol_gpio_loop_next 
+
+keyboard_keyscan_get_exmcu_value:
+4372 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+
+keyboard_keyscan_exmcu_start_loop:
+4373 204043a9 call keyboard_clk_state_low 
+4374 2040437a call keyboard_keyscan_exmcu_get_col_value 
+4375 204043a7 call keyboard_clk_state_high 
+4376 2040437a call keyboard_keyscan_exmcu_get_col_value 
+4377 1fe67c0b sub pdata ,11 ,null 
+4378 20214373 branch keyboard_keyscan_exmcu_start_loop ,positive 
+4379 202043a9 branch keyboard_clk_state_low 
+
+keyboard_keyscan_exmcu_get_col_value:
+437a 70499c00 jam 0 ,mem_keyscan_value_temp 
+437b 20404399 call keyboard_keyscan_get_col_value 
+437c 6fe1499a fetch 2 ,mem_keyscan_exmcu_value_ptr 
+
+keyboard_keyscan_value_store:
+437d 1fe20a00 copy pdata ,contw 
+437e 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+437f 98a08a00 iadd contw ,contw 
+4380 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
+4381 e7e08005 istore 1 ,contw 
+4382 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+4383 1fe0fe01 increase 1 ,pdata 
+4384 67e0c99d store 1 ,mem_keyscan_col_loop_count 
+4385 20600000 rtn 
+
+keyboard_keyscan_get_mcu_value:
+4386 6fe1494a fetch 2 ,mem_kb_col_ptr 
+4387 1fe22400 copy pdata ,regb 
+4388 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+
+keyboard_keyscan_mcu_start:
+4389 70499c00 jam 0 ,mem_keyscan_value_temp 
+438a e8408012 ifetcht 1 ,regb 
+438b 284ffe07 isolate1 7 ,temp 
+438c 2020c393 branch keyboard_keyscan_mcu_start_loop ,true 
+438d 20406ef1 call gpio_out_active 
+438e 20404399 call keyboard_keyscan_get_col_value 
+438f e8408012 ifetcht 1 ,regb 
+4390 20406eed call gpio_out_inactive 
+4391 e8408012 ifetcht 1 ,regb 
+4392 20404f0a call device_gpio_config_input_pu 
+
+keyboard_keyscan_mcu_start_loop:
+4393 1a40a401 increase 1 ,regb 
+4394 6fe14998 fetch 2 ,mem_keyscan_value_ptr 
+4395 2040437d call keyboard_keyscan_value_store 
+4396 1fe67c13 sub pdata ,19 ,null 
+4397 20214389 branch keyboard_keyscan_mcu_start ,positive 
+4398 20600000 rtn 
+
+keyboard_keyscan_get_col_value:
+4399 44a6c009 bpatch patch09_5 ,mem_patch09 
+439a 20000078 nop 120 
+439b 6fe14948 fetch 2 ,mem_kb_row_ptr 
+439c 1fe22600 copy pdata ,regc 
+439d df200008 arg 8 ,loopcnt 
+
+keyboard_keyscan_get_col_value_loop:
+439e e8408013 ifetcht 1 ,regc 
+439f 20406ee0 call gpio_get_bit 
+43a0 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
+43a1 1fe37e00 rshift pdata ,pdata 
+43a2 7920fe07 setflag true ,7 ,pdata 
+43a3 67e0c99c store 1 ,mem_keyscan_value_temp 
+43a4 1a60a601 increase 1 ,regc 
+43a5 c200439e loop keyboard_keyscan_get_col_value_loop 
+43a6 20600000 rtn 
+
+keyboard_clk_state_high:
+43a7 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+43a8 20206eed branch gpio_out_inactive 
+
+keyboard_clk_state_low:
+43a9 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+43aa 20206ef1 branch gpio_out_active 
+
+keyboard_clk_input:
+43ab 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+43ac 20206ed7 branch gpio_config_input 
+
+keyboard_stb_state_high:
+43ad 6848c910 fetcht 1 ,mem_mcu_stb_gpio 
+43ae 20206eed branch gpio_out_inactive 
+
+keyboard_stb_state_low:
+43af 6848c910 fetcht 1 ,mem_mcu_stb_gpio 
+43b0 20206ef1 branch gpio_out_active 
+
+keyboard_press_change_or_no_key:
+43b1 7049a000 jam 0 ,mem_same_keyvalue_timerout_flag 
+43b2 6fe149a1 fetch 2 ,mem_same_keyvalue_timer_init 
+43b3 67e149a3 store 2 ,mem_same_keyvalue_timer 
+43b4 20600000 rtn 
+
+keyboard_key_process:
+43b5 da20494e arg mem_keyscan_value_current ,rega 
+43b6 da404963 arg mem_keyscan_value_check ,regb 
+43b7 df200014 arg 20 ,loopcnt 
+43b8 20407d66 call string_compare 
+43b9 2422c3b1 nbranch keyboard_press_change_or_no_key ,zero 
+43ba 204043f1 call keyboard_keyscan_value_current_zero_check 
+43bb 205a43b1 call keyboard_press_change_or_no_key ,blank 
+43bc 204043fd call keyboard_ghost_key_check 
+43bd 6fe0c9a8 fetch 1 ,mem_keyboard_ghost_flag 
+43be 247a0000 nrtn blank 
+43bf 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
+43c0 c1008000 rtneq cammbination_key_press 
+43c1 c1010000 rtneq cammbination_key_hold 
+43c2 c1020000 rtneq cammbination_key_wait_release 
+43c3 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+43c4 da20494e arg mem_keyscan_value_current ,rega 
+43c5 da404978 arg mem_keyscan_value_old ,regb 
+
+keyboard_keyvalue_process:
+43c6 e8408011 ifetcht 1 ,rega 
+43c7 efe08012 ifetch 1 ,regb 
+43c8 9842fe00 ixor temp ,pdata 
+43c9 203a43e9 branch keyboard_keyvalue_process_loop ,blank 
+43ca 67e0c99c store 1 ,mem_keyscan_value_temp 
+43cb 6048c9ab storet 1 ,mem_keyboard_press_flag_temp 
+43cc e0408012 istoret 1 ,regb 
+43cd 7049a901 jam 1 ,mem_keyboard_data_change_flag 
+43ce 7049ac00 jam 0 ,mem_keyboard_keyvalue_bit_loop_count 
+
+keyboard_keyvalue_change:
+43cf 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
+43d0 c30043de bbit0 0 ,keyboard_keyvalue_change_loop 
+43d1 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+43d2 1feffe08 mul32 pdata ,8 ,pdata 
+43d3 6848c9ac fetcht 1 ,mem_keyboard_keyvalue_bit_loop_count 
+43d4 9840fe00 iadd temp ,pdata 
+43d5 d8c049c7 arg mem_keyboard_keyvalue_map ,contr 
+43d6 98c08c00 iadd contr ,contr 
+43d7 efe08006 ifetch 1 ,contr 
+43d8 67e0c9aa store 1 ,mem_keyboard_keyvalue_temp 
+43d9 44a74009 bpatch patch09_6 ,mem_patch09 
+43da 2040442e call keyboard_keyvalue_normal_replace 
+43db 20404435 call keyboard_keyvalue_fn_replace 
+43dc 204044dc call keyboard_keyvalue_commbination_replace 
+43dd 20404564 call keyboard_keyvalue_in_out 
+
+keyboard_keyvalue_change_loop:
+43de 6fe0c99c fetch 1 ,mem_keyscan_value_temp 
+43df 1fe37e00 rshift pdata ,pdata 
+43e0 67e0c99c store 1 ,mem_keyscan_value_temp 
+43e1 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+43e2 1fe37e00 rshift pdata ,pdata 
+43e3 67e0c9ab store 1 ,mem_keyboard_press_flag_temp 
+43e4 6fe0c9ac fetch 1 ,mem_keyboard_keyvalue_bit_loop_count 
+43e5 1fe0fe01 increase 1 ,pdata 
+43e6 67e0c9ac store 1 ,mem_keyboard_keyvalue_bit_loop_count 
+43e7 1fe67c07 sub pdata ,7 ,null 
+43e8 202143cf branch keyboard_keyvalue_change ,positive 
+
+keyboard_keyvalue_process_loop:
+43e9 1a20a201 increase 1 ,rega 
+43ea 1a40a401 increase 1 ,regb 
+43eb 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+43ec 1fe0fe01 increase 1 ,pdata 
+43ed 67e0c99d store 1 ,mem_keyscan_col_loop_count 
+43ee 1fe67c13 sub pdata ,19 ,null 
+43ef 202143c6 branch keyboard_keyvalue_process ,positive 
+43f0 20600000 rtn 
+
+keyboard_keyscan_value_current_zero_check:
+43f1 6fe4494e fetch 8 ,mem_keyscan_value_current 
+43f2 243a41c9 nbranch keyboard_load_rgb ,blank 
+43f3 6fe44956 fetch 8 ,mem_keyscan_value_current + 8 
+43f4 243a41c9 nbranch keyboard_load_rgb ,blank 
+43f5 6fe2495e fetch 4 ,mem_keyscan_value_current + 16 
+43f6 243a41c9 nbranch keyboard_load_rgb ,blank 
+43f7 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+43f8 247a0000 nrtn blank 
+43f9 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
+43fa c1030000 rtneq cammbination_key_null 
+43fb 704a9c00 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+43fc 20600000 rtn 
+
+keyboard_ghost_key_check:
+43fd 44a7c009 bpatch patch09_7 ,mem_patch09 
+43fe 7049a800 jam 0 ,mem_keyboard_ghost_flag 
+43ff 7049a600 jam 0 ,mem_keyboard_all_press_key_count 
+4400 da20494e arg mem_keyscan_value_current ,rega 
+4401 df200014 arg 20 ,loopcnt 
+
+keyboard_ghost_key_check_loop:
+4402 7049a500 jam 0 ,mem_keyboard_current_col_press_key_count 
+4403 efe08011 ifetch 1 ,rega 
+4404 203a4429 branch keyboard_ghost_key_check_next_loop ,blank 
+
+keyboard_current_col_press_key_count_check:
+4405 6848c9a5 fetcht 1 ,mem_keyboard_current_col_press_key_count 
+4406 18408401 increase 1 ,temp 
+4407 6048c9a5 storet 1 ,mem_keyboard_current_col_press_key_count 
+4408 1fe20400 copy pdata ,temp 
+4409 1fe0ffff increase -1 ,pdata 
+440a 98417e00 iand temp ,pdata 
+440b 2422c405 nbranch keyboard_current_col_press_key_count_check ,zero 
+440c 6fe0c9a5 fetch 1 ,mem_keyboard_current_col_press_key_count 
+440d 6848c9a6 fetcht 1 ,mem_keyboard_all_press_key_count 
+440e 98408400 iadd temp ,temp 
+440f 6048c9a6 storet 1 ,mem_keyboard_all_press_key_count 
+4410 1fe67c01 sub pdata ,1 ,null 
+4411 20214429 branch keyboard_ghost_key_check_next_loop ,positive 
+4412 18467c02 sub temp ,2 ,null 
+4413 20214429 branch keyboard_ghost_key_check_next_loop ,positive 
+4414 70499d00 jam 0 ,mem_keyscan_col_loop_count 
+4415 7049a700 jam 0 ,mem_keyboard_same_row_press_key_count 
+4416 e8408011 ifetcht 1 ,rega 
+4417 da40494e arg mem_keyscan_value_current ,regb 
+
+keyboard_same_row_key_check:
+4418 6fe0c99d fetch 1 ,mem_keyscan_col_loop_count 
+4419 1fe0fe01 increase 1 ,pdata 
+441a 67e0c99d store 1 ,mem_keyscan_col_loop_count 
+441b 1fe67c13 sub pdata ,19 ,null 
+441c 24214429 nbranch keyboard_ghost_key_check_next_loop ,positive 
+441d efe08012 ifetch 1 ,regb 
+441e 98417c00 iand temp ,null 
+441f 2022c42c branch keyboard_same_row_key_check_loop ,zero 
+4420 6fe0c9a7 fetch 1 ,mem_keyboard_same_row_press_key_count 
+4421 1fe0fe01 increase 1 ,pdata 
+4422 67e0c9a7 store 1 ,mem_keyboard_same_row_press_key_count 
+4423 1fe67c01 sub pdata ,1 ,null 
+4424 2021442c branch keyboard_same_row_key_check_loop ,positive 
+4425 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4426 c3908000 rtnbit1 keyboard_enable_full_n_key_rollover 
+4427 7049a801 jam 1 ,mem_keyboard_ghost_flag 
+4428 20600000 rtn 
+
+keyboard_ghost_key_check_next_loop:
+4429 1a20a201 increase 1 ,rega 
+442a c2004402 loop keyboard_ghost_key_check_loop 
+442b 20600000 rtn 
+
+keyboard_same_row_key_check_loop:
+442c 1a40a401 increase 1 ,regb 
+442d 20204418 branch keyboard_same_row_key_check 
+
+keyboard_keyvalue_normal_replace:
+442e 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+442f c07341e2 beq hid_key_right_alt ,keyboard_rgb_on_type_switch 
+4430 c073c1d0 beq hid_key_right_gui ,keyboard_rgb_mode_switch 
+4431 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+4432 c1000000 rtneq system_os_windows 
+4433 c1008000 rtneq system_os_android 
+4434 20600000 rtn 
+
+keyboard_keyvalue_fn_replace:
+4435 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+4436 2feffe00 isolate1 0 ,pdata 
+4437 2040c4f0 call keyboard_commbination_delay_release_clear ,true 
+4438 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
+4439 245a445b ncall keyboard_keyvalue_fn_replace_press ,blank 
+443a 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+443b c17f8000 rtneq 0xff 
+443c 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+443d c31a4440 bbit0 keyboard_enable_fn_lock ,keyboard_fn_lock_check 
+443e 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+443f 20204441 branch keyboard_fn_lock_check + 1 
+
+keyboard_fn_lock_check:
+4440 6fe0ca84 fetch 1 ,mem_keyboard_fn_first 
+4441 6848ca7a fetcht 1 ,mem_keyboard_fn_flag 
+4442 9842fe00 ixor temp ,pdata 
+4443 20628000 rtn zero 
+4444 44a8400a bpatch patch0a_0 ,mem_patch0a 
+4445 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+4446 c014c451 beq hid_key_esc ,keyboard_keyvalue_fn_esc 
+4447 c0264459 beq hid_key_delete ,keyboard_keyvalue_fn_delete 
+4448 1fe67c45 sub pdata ,hid_key_f12 ,null 
+4449 24610000 nrtn positive 
+444a d840003a arg hid_key_f1 ,temp 
+444b 98467e00 isub temp ,pdata 
+444c 24610000 nrtn positive 
+444d d8c04a86 arg mem_keyboard_fn_f1 ,contr 
+444e 98c08c00 iadd contr ,contr 
+444f efe08006 ifetch 1 ,contr 
+4450 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_esc:
+4451 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4452 c31a4457 bbit0 keyboard_enable_fn_lock ,keyboard_keyvalue_fn_esc_next 
+4453 6fe0ca85 fetch 1 ,mem_keyboard_fn_esc 
+4454 6848ca94 fetcht 1 ,mem_keyboard_fn_lock_keyvalue 
+4455 98467c00 isub temp ,null 
+4456 20628000 rtn zero 
+
+keyboard_keyvalue_fn_esc_next:
+4457 6fe0ca85 fetch 1 ,mem_keyboard_fn_esc 
+4458 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_delete:
+4459 6fe0ca92 fetch 1 ,mem_keyboard_fn_del 
+445a 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_replace_press:
+445b 44a8c00a bpatch patch0a_1 ,mem_patch0a 
+445c 20404468 call keyboard_keyvalue_fn_lock_replace 
+445d 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+445e c029448d beq hid_key_up_arrow ,keyboard_keyvalue_fn_up_arrow 
+445f c028c491 beq hid_key_down_arrow ,keyboard_keyvalue_fn_down_arrow 
+4460 c0284495 beq hid_key_left_arrow ,keyboard_keyvalue_fn_left_arrow 
+4461 c027c499 beq hid_key_right_arrow ,keyboard_keyvalue_fn_right_arrow 
+4462 c070449d beq hid_key_left_ctrl ,keyboard_keyvalue_fn_left_ctrl 
+4463 c01644a7 beq hid_key_space ,keyboard_keyvalue_fn_space 
+4464 c00a44ac beq hid_key_q ,keyboard_keyvalue_os_android 
+4465 c00d44bc beq hid_key_w ,keyboard_keyvalue_os_windows 
+4466 c00444c3 beq hid_key_e ,keyboard_keyvalue_os_ios 
+4467 20600000 rtn 
+
+keyboard_keyvalue_fn_lock_replace:
+4468 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4469 c41a0000 rtnbit0 keyboard_enable_fn_lock 
+446a 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+446b 6848ca94 fetcht 1 ,mem_keyboard_fn_lock_keyvalue 
+446c 98467c00 isub temp ,null 
+446d 24628000 nrtn zero 
+446e 204044ca call keyboard_keyvalue_clear_temp 
+446f 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+4470 c4000000 rtnbit0 0 
+4471 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+4472 1fe0fe01 increase 1 ,pdata 
+4473 1fe17e01 and_into 0x01 ,pdata 
+4474 67e0ca93 store 1 ,mem_keyboard_fn_lock_flag 
+4475 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+4476 79207e03 set1 keyboard_store_eepromm_flag_fn_lock ,pdata 
+4477 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+4478 6fe0c678 fetch 1 ,mem_device_flag 
+4479 c000447e beq mode_24g_device ,keyboard_keyvalue_fn_lock_24g 
+447a c000c481 beq mode_bt_device1 ,keyboard_keyvalue_fn_lock_bt1 
+447b c0014484 beq mode_bt_device2 ,keyboard_keyvalue_fn_lock_bt2 
+447c c001c487 beq mode_bt_device3 ,keyboard_keyvalue_fn_lock_bt3 
+447d c002448a beq mode_usb_device ,keyboard_keyvalue_fn_lock_usb 
+
+keyboard_keyvalue_fn_lock_24g:
+447e 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+447f 67e0c6a9 store 1 ,mem_keyboard_24g_fn_lock 
+4480 202044b7 branch keyboard_store_eeprom_or_flash 
+
+keyboard_keyvalue_fn_lock_bt1:
+4481 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+4482 67e0c6aa store 1 ,mem_keyboard_bt1_fn_lock 
+4483 202044b7 branch keyboard_store_eeprom_or_flash 
+
+keyboard_keyvalue_fn_lock_bt2:
+4484 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+4485 67e0c6ab store 1 ,mem_keyboard_bt2_fn_lock 
+4486 202044b7 branch keyboard_store_eeprom_or_flash 
+
+keyboard_keyvalue_fn_lock_bt3:
+4487 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+4488 67e0c6ac store 1 ,mem_keyboard_bt3_fn_lock 
+4489 202044b7 branch keyboard_store_eeprom_or_flash 
+
+keyboard_keyvalue_fn_lock_usb:
+448a 6fe0ca93 fetch 1 ,mem_keyboard_fn_lock_flag 
+448b 67e0c6ad store 1 ,mem_keyboard_usb_fn_lock 
+448c 202044b7 branch keyboard_store_eeprom_or_flash 
+
+keyboard_keyvalue_fn_up_arrow:
+448d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+448e c4180000 rtnbit0 keyboard_enable_fn_arrow 
+448f 5800004b setarg hid_key_page_up 
+4490 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_down_arrow:
+4491 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4492 c4180000 rtnbit0 keyboard_enable_fn_arrow 
+4493 5800004e setarg hid_key_page_down 
+4494 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_left_arrow:
+4495 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4496 c4180000 rtnbit0 keyboard_enable_fn_arrow 
+4497 5800004a setarg hid_key_home 
+4498 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_right_arrow:
+4499 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+449a c4180000 rtnbit0 keyboard_enable_fn_arrow 
+449b 5800004d setarg hid_key_end 
+449c 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_left_ctrl:
+449d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+449e c4188000 rtnbit0 keyboard_enable_fn_left_ctrl_osk 
+449f 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+44a0 c17f8000 rtneq 0xff 
+44a1 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+44a2 c00044a5 beq system_os_windows ,keyboard_keyvalue_windows_osk 
+44a3 580000f7 setarg hid_key_os_soft_kb 
+44a4 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_windows_osk:
+44a5 580000aa setarg hid_key_osk 
+44a6 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_keyvalue_fn_space:
+44a7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+44a8 c4190000 rtnbit0 keyboard_enable_fn_space_language 
+44a9 580000ab setarg hid_key_language 
+
+keyboard_keyvalue_store_temp:
+44aa 67e0c9aa store 1 ,mem_keyboard_keyvalue_temp 
+44ab 20600000 rtn 
+
+keyboard_keyvalue_os_android:
+44ac 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+44ad c4198000 rtnbit0 keyboard_enable_fn_os_switch 
+44ae 204044ca call keyboard_keyvalue_clear_temp 
+44af 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+44b0 c4000000 rtnbit0 0 
+44b1 704aa101 jam system_os_android ,mem_kb_computer_system 
+
+keyboard_keyvalue_os_switch_end:
+44b2 704ac506 jam 6 ,mem_keyboard_mode_led_on_timer 
+44b3 204044cc call keyboard_store_computer_system 
+44b4 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+44b5 79207e04 set1 keyboard_store_eepromm_flag_computer_system ,pdata 
+44b6 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+
+keyboard_store_eeprom_or_flash:
+44b7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+44b8 c3878000 rtnbit1 keyboard_enable_otp 
+
+keyboard_store_device_info_delay:
+44b9 6fe0c706 fetch 1 ,mem_store_information_delay_timer_init 
+44ba 67e0c705 store 1 ,mem_store_information_delay_timer 
+44bb 20600000 rtn 
+
+keyboard_keyvalue_os_windows:
+44bc 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+44bd c4198000 rtnbit0 keyboard_enable_fn_os_switch 
+44be 204044ca call keyboard_keyvalue_clear_temp 
+44bf 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+44c0 c4000000 rtnbit0 0 
+44c1 704aa100 jam system_os_windows ,mem_kb_computer_system 
+44c2 202044b2 branch keyboard_keyvalue_os_switch_end 
+
+keyboard_keyvalue_os_ios:
+44c3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+44c4 c4198000 rtnbit0 keyboard_enable_fn_os_switch 
+44c5 204044ca call keyboard_keyvalue_clear_temp 
+44c6 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+44c7 c4000000 rtnbit0 0 
+44c8 704aa102 jam system_os_ios ,mem_kb_computer_system 
+44c9 202044b2 branch keyboard_keyvalue_os_switch_end 
+
+keyboard_keyvalue_clear_temp:
+44ca 58000000 setarg 0 
+44cb 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_store_computer_system:
+44cc 44a9400a bpatch patch0a_2 ,mem_patch0a 
+44cd 6fe0c678 fetch 1 ,mem_device_flag 
+44ce c1000000 rtneq mode_24g_device 
+44cf c1020000 rtneq mode_usb_device 
+44d0 c000c4d3 beq mode_bt_device1 ,keyboard_store_computer_system_bt1 
+44d1 c00144d6 beq mode_bt_device2 ,keyboard_store_computer_system_bt2 
+44d2 c001c4d9 beq mode_bt_device3 ,keyboard_store_computer_system_bt3 
+
+keyboard_store_computer_system_bt1:
+44d3 6848caa1 fetcht 1 ,mem_kb_computer_system 
+44d4 6048c6ae storet 1 ,mem_keyboard_bt1_computer_system 
+44d5 20600000 rtn 
+
+keyboard_store_computer_system_bt2:
+44d6 6848caa1 fetcht 1 ,mem_kb_computer_system 
+44d7 6048c6af storet 1 ,mem_keyboard_bt2_computer_system 
+44d8 20600000 rtn 
+
+keyboard_store_computer_system_bt3:
+44d9 6848caa1 fetcht 1 ,mem_kb_computer_system 
+44da 6048c6b0 storet 1 ,mem_keyboard_bt3_computer_system 
+44db 20600000 rtn 
+
+keyboard_keyvalue_commbination_replace:
+44dc 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+44dd c02344f2 beq hid_key_print_screen ,keyboard_commination_screen_shot_replace 
+44de c025c4f8 beq hid_key_page_up ,keyboard_commination_pageup_replace 
+44df c02744fe beq hid_key_page_down ,keyboard_commination_pagedown_replace 
+44e0 c0254500 beq hid_key_home ,keyboard_commination_home_replace 
+44e1 c026c502 beq hid_key_end ,keyboard_commination_end_replace 
+44e2 c052c504 beq hid_key_select_all ,keyboard_commination_select_all 
+44e3 c053450b beq hid_key_copy ,keyboard_commbination_copy 
+44e4 c053c50d beq hid_key_paste ,keyboard_commbination_paste 
+44e5 c054450f beq hid_key_cut ,keyboard_commbination_cut 
+44e6 c054c511 beq hid_key_all_os_lock ,keyboard_commination_os_lock 
+44e7 c055451c beq hid_key_osk ,keyboard_commbination_osk 
+44e8 c056c523 beq hid_key_search ,keyboard_commbination_search 
+44e9 c055c52a beq hid_key_language ,keyboard_commbination_language 
+44ea c0564535 beq hid_key_app_tiling ,keyboard_commbination_app_tiling 
+44eb 20600000 rtn 
+
+keyboard_commbination_delay_release_set:
+44ec 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+44ed c4000000 rtnbit0 0 
+44ee 704a9f0a jam 10 ,mem_keyboard_commbination_control_key_delay_release_timer 
+44ef 20600000 rtn 
+
+keyboard_commbination_delay_release_clear:
+44f0 704a9f00 jam 0 ,mem_keyboard_commbination_control_key_delay_release_timer 
+44f1 20600000 rtn 
+
+keyboard_commination_screen_shot_replace:
+44f2 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+44f3 c1000000 rtneq system_os_windows 
+44f4 c1008000 rtneq system_os_android 
+44f5 704a9d0a jam left_shift_gui ,mem_keyboard_commbination_control_key_value 
+44f6 704a9e20 jam hid_key_3 ,mem_keyboard_commbination_standard_key_value 
+44f7 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commination_pageup_replace:
+44f8 704a9e52 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+
+keyboard_commination_ios_mac_command_commiation:
+44f9 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+44fa c1000000 rtneq system_os_windows 
+44fb c1008000 rtneq system_os_android 
+44fc 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
+44fd 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commination_pagedown_replace:
+44fe 704a9e51 jam hid_key_down_arrow ,mem_keyboard_commbination_standard_key_value 
+44ff 202044f9 branch keyboard_commination_ios_mac_command_commiation 
+
+keyboard_commination_home_replace:
+4500 704a9e50 jam hid_key_left_arrow ,mem_keyboard_commbination_standard_key_value 
+4501 202044f9 branch keyboard_commination_ios_mac_command_commiation 
+
+keyboard_commination_end_replace:
+4502 704a9e4f jam hid_key_right_arrow ,mem_keyboard_commbination_standard_key_value 
+4503 202044f9 branch keyboard_commination_ios_mac_command_commiation 
+
+keyboard_commination_select_all:
+4504 704a9e04 jam hid_key_a ,mem_keyboard_commbination_standard_key_value 
+
+keyboard_commbination_text_edit:
+4505 704a9d01 jam left_control ,mem_keyboard_commbination_control_key_value 
+4506 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+4507 c000453e beq system_os_windows ,keyboard_commbination_keypress 
+4508 c000c53e beq system_os_android ,keyboard_commbination_keypress 
+4509 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
+450a 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commbination_copy:
+450b 704a9e06 jam hid_key_c ,mem_keyboard_commbination_standard_key_value 
+450c 20204505 branch keyboard_commbination_text_edit 
+
+keyboard_commbination_paste:
+450d 704a9e19 jam hid_key_v ,mem_keyboard_commbination_standard_key_value 
+450e 20204505 branch keyboard_commbination_text_edit 
+
+keyboard_commbination_cut:
+450f 704a9e1b jam hid_key_x ,mem_keyboard_commbination_standard_key_value 
+4510 20204505 branch keyboard_commbination_text_edit 
+
+keyboard_commination_os_lock:
+4511 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+4512 c0004516 beq system_os_windows ,keyboard_commination_windows_lock 
+4513 c001c519 beq system_os_mac ,keyboard_commination_mac_lock 
+4514 580000fa setarg hid_key_ios_android_os_lock 
+4515 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_commination_windows_lock:
+4516 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4517 704a9e0f jam hid_key_l ,mem_keyboard_commbination_standard_key_value 
+4518 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commination_mac_lock:
+4519 704a9d09 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+451a 704a9e14 jam hid_key_q ,mem_keyboard_commbination_standard_key_value 
+451b 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commbination_osk:
+451c 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+451d c0004520 beq system_os_windows ,keyboard_commbination_windows_osk 
+451e 580000f7 setarg hid_key_os_soft_kb 
+451f 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_commbination_windows_osk:
+4520 704a9d09 jam left_gui_control ,mem_keyboard_commbination_control_key_value 
+4521 704a9e12 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
+4522 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commbination_search:
+4523 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+4524 c001c527 beq system_os_mac ,keyboard_commbination_mac_search 
+4525 580000f5 setarg hid_key_ac_search 
+4526 202044aa branch keyboard_keyvalue_store_temp 
+
+keyboard_commbination_mac_search:
+4527 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4528 704a9e2c jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+4529 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commbination_language:
+452a 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+452b c0004531 beq system_os_windows ,keyboard_commbination_language_windows 
+452c c000c533 beq system_os_android ,keyboard_commbination_language_android 
+452d 704a9d01 jam left_control ,mem_keyboard_commbination_control_key_value 
+
+keyboard_commbination_language_next:
+452e 704a9e2c jam hid_key_space ,mem_keyboard_commbination_standard_key_value 
+452f 204044ec call keyboard_commbination_delay_release_set 
+4530 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commbination_language_windows:
+4531 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
+4532 2020452e branch keyboard_commbination_language_next 
+
+keyboard_commbination_language_android:
+4533 704a9d02 jam left_shift ,mem_keyboard_commbination_control_key_value 
+4534 2020452e branch keyboard_commbination_language_next 
+
+keyboard_commbination_app_tiling:
+4535 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+4536 c000453b beq system_os_windows ,keyboard_commbination_app_tiling_windows_android 
+4537 c000c53b beq system_os_android ,keyboard_commbination_app_tiling_windows_android 
+4538 704a9d01 jam left_control ,mem_keyboard_commbination_control_key_value 
+4539 704a9e52 jam hid_key_up_arrow ,mem_keyboard_commbination_standard_key_value 
+453a 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commbination_app_tiling_windows_android:
+453b 704a9d08 jam left_gui ,mem_keyboard_commbination_control_key_value 
+453c 704a9e2b jam hid_key_tab ,mem_keyboard_commbination_standard_key_value 
+453d 2020453e branch keyboard_commbination_keypress 
+
+keyboard_commbination_keypress:
+453e 7049aa00 jam 0 ,mem_keyboard_keyvalue_temp 
+453f 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+4540 c3004545 bbit0 0 ,keyboard_commbination_key_wait_release_set 
+4541 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
+4542 c001c551 beq cammbination_key_complete ,keyboard_commbination_key_hold_set 
+
+keyboard_commbination_key_press_set:
+4543 704a9c01 jam cammbination_key_press ,mem_keyboard_commbination_key_step 
+4544 20600000 rtn 
+
+keyboard_commbination_key_wait_release_set:
+4545 704a9c04 jam cammbination_key_wait_release ,mem_keyboard_commbination_key_step 
+4546 20600000 rtn 
+
+keyboard_commbination_key_null_set:
+4547 704a9c06 jam cammbination_key_null ,mem_keyboard_commbination_key_step 
+4548 20600000 rtn 
+
+keyboard_commbination_key_value_store:
+4549 67e0ca70 store 1 ,mem_keyboard_tx_data + 1 
+454a 6048ca72 storet 1 ,mem_keyboard_tx_data + 3 
+454b 20407dbc call enable_user 
+454c 704a6f00 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+454d 202046e6 branch keyboard_motion_data_check_next 
+
+keyboard_commbination_key_press_process:
+454e 6fe0ca9d fetch 1 ,mem_keyboard_commbination_control_key_value 
+454f d8400000 arg 0 ,temp 
+4550 20404549 call keyboard_commbination_key_value_store 
+
+keyboard_commbination_key_hold_set:
+4551 704a9c02 jam cammbination_key_hold ,mem_keyboard_commbination_key_step 
+4552 20600000 rtn 
+
+keyboard_commbination_key_hold_process:
+4553 704a9c03 jam cammbination_key_complete ,mem_keyboard_commbination_key_step 
+4554 6fe0ca9d fetch 1 ,mem_keyboard_commbination_control_key_value 
+4555 6848ca9e fetcht 1 ,mem_keyboard_commbination_standard_key_value 
+4556 20204549 branch keyboard_commbination_key_value_store 
+
+keyboard_commbination_key_wait_release_process:
+4557 704a6f00 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+4558 6fe0ca9d fetch 1 ,mem_keyboard_commbination_control_key_value 
+4559 d8400000 arg 0 ,temp 
+455a 20404549 call keyboard_commbination_key_value_store 
+455b 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+455c 203a4547 branch keyboard_commbination_key_null_set ,blank 
+
+keyboard_commbination_key_release_set:
+455d 704a9c05 jam cammbination_key_release ,mem_keyboard_commbination_key_step 
+455e 20600000 rtn 
+
+keyboard_commbination_key_release_process:
+455f 2020454b branch keyboard_commbination_key_value_store + 2 
+
+keyboard_commbination_key_null_process:
+4560 704a9c00 jam cammbination_key_free ,mem_keyboard_commbination_key_step 
+4561 dfe00000 arg 0 ,pdata 
+4562 d8400000 arg 0 ,temp 
+4563 20204549 branch keyboard_commbination_key_value_store 
+
+keyboard_keyvalue_in_out:
+4564 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+4565 d84000e0 arg hid_key_left_ctrl ,temp 
+4566 98467c00 isub temp ,null 
+4567 24214576 nbranch keyboard_keyvalue_standard ,positive 
+4568 1fe67ce7 sub pdata ,hid_key_right_gui ,null 
+4569 242145ad nbranch keyboard_keyvalue_consumer ,positive 
+456a 1fe17e07 and_into 0x07 ,pdata 
+456b 1fe20e00 copy pdata ,queue 
+456c 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+456d c2804572 bbit1 0 ,keyboard_keyvalue_control_key_in 
+
+keyboard_keyvalue_control_key_out:
+456e 6fe0c9ad fetch 1 ,mem_keyboard_keyvalue_buffer 
+456f f93ffe00 qset0 pdata 
+4570 67e0c9ad store 1 ,mem_keyboard_keyvalue_buffer 
+4571 20600000 rtn 
+
+keyboard_keyvalue_control_key_in:
+4572 6fe0c9ad fetch 1 ,mem_keyboard_keyvalue_buffer 
+4573 f9207e00 qset1 pdata 
+4574 67e0c9ad store 1 ,mem_keyboard_keyvalue_buffer 
+4575 20600000 rtn 
+
+keyboard_keyvalue_standard:
+4576 7049b500 jam 0 ,mem_keyboard_keyvalue_buffer + 8 
+4577 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+4578 c280458d bbit1 0 ,keyboard_keyvalue_standard_in 
+
+keyboard_keyvalue_standard_out:
+4579 6848c9aa fetcht 1 ,mem_keyboard_keyvalue_temp 
+457a df200006 arg 6 ,loopcnt 
+457b d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+
+keyboard_keyvalue_standard_out_loop:
+457c efe08006 ifetch 1 ,contr 
+457d 98467c00 isub temp ,null 
+457e 2422c585 nbranch keyboard_keyvalue_standard_out_next ,zero 
+457f efe08006 ifetch 1 ,contr 
+4580 18c08dfe increase -2 ,contr 
+4581 e7e08006 istore 1 ,contr 
+4582 207a0000 rtn blank 
+4583 18c08c01 increase 1 ,contr 
+4584 e0408006 istoret 1 ,contr 
+
+keyboard_keyvalue_standard_out_next:
+4585 c200457c loop keyboard_keyvalue_standard_out_loop 
+4586 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4587 c290c58a bbit1 keyboard_enable_full_n_key_rollover ,keyboard_keyvalue_standard_out_n_key_rollover 
+4588 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4589 c4100000 rtnbit0 keyboard_enable_26_n_key_rollover 
+
+keyboard_keyvalue_standard_out_n_key_rollover:
+458a 2040459f call keyboard_keyvalue_n_key_rollover_data_in_out 
+458b f93ffe00 qset0 pdata 
+458c 20207dce branch istore_1_contw_rtn 
+
+keyboard_keyvalue_standard_in:
+458d 6848c9aa fetcht 1 ,mem_keyboard_keyvalue_temp 
+458e df200006 arg 6 ,loopcnt 
+458f d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+
+keyboard_keyvalue_standard_in_loop:
+4590 efe08006 ifetch 1 ,contr 
+4591 203a459c branch keyboard_keyvalue_standard_in_data ,blank 
+4592 98467c00 isub temp ,null 
+4593 20628000 rtn zero 
+4594 c2004590 loop keyboard_keyvalue_standard_in_loop 
+4595 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4596 c290c599 bbit1 keyboard_enable_full_n_key_rollover ,keyboard_keyvalue_standard_in_n_key_rollover 
+4597 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4598 c4100000 rtnbit0 keyboard_enable_26_n_key_rollover 
+
+keyboard_keyvalue_standard_in_n_key_rollover:
+4599 2040459f call keyboard_keyvalue_n_key_rollover_data_in_out 
+459a f9207e00 qset1 pdata 
+459b 20207dce branch istore_1_contw_rtn 
+
+keyboard_keyvalue_standard_in_data:
+459c 18c08dff increase -1 ,contr 
+459d e0408006 istoret 1 ,contr 
+459e 20600000 rtn 
+
+keyboard_keyvalue_n_key_rollover_data_in_out:
+459f 44a9c00a bpatch patch0a_3 ,mem_patch0a 
+45a0 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+45a1 1fe67c70 sub pdata ,0x70 ,null 
+45a2 24610000 nrtn positive 
+45a3 7049b701 jam 1 ,mem_keboard_n_key_rollover_send_flag 
+45a4 7049a901 jam 1 ,mem_keyboard_data_change_flag 
+45a5 1fe6fc08 div pdata ,8 
+45a6 20407d64 call wait_div_end 
+45a7 1807fe00 quotient pdata 
+45a8 18070e00 remainder queue 
+45a9 d8a049b9 arg mem_keyboard_n_key_rollover_data + 1 ,contw 
+45aa 98a08a00 iadd contw ,contw 
+45ab 58000000 setarg 0 
+45ac 20600000 rtn 
+
+keyboard_keyvalue_consumer:
+45ad 704aa001 jam keyboard_consumer_key_press ,mem_keyboard_consumer_key_status 
+45ae 6fe0c9ab fetch 1 ,mem_keyboard_press_flag_temp 
+45af 2fec0000 isolate0 0 ,pdata 
+45b0 2040c5b2 call keyboard_consumer_key_release_status ,true 
+45b1 20204576 branch keyboard_keyvalue_standard 
+
+keyboard_consumer_key_release_status:
+45b2 704aa002 jam keyboard_consumer_key_release ,mem_keyboard_consumer_key_status 
+45b3 20600000 rtn 
+
+keyboard_special_key_check:
+45b4 20404660 call keyboard_pairing_button_check 
+45b5 204045f2 call keyboard_device_select 
+45b6 704a7a00 jam 0 ,mem_keyboard_fn_flag 
+45b7 704a7b00 jam 0 ,mem_keyboard_control_key_flag 
+45b8 704a7c00 jam 0 ,mem_keyboard_alt_flag 
+45b9 704a7d00 jam 0 ,mem_keyboard_shift_flag 
+45ba 704a7e00 jam 0 ,mem_keyboard_bt_button_flag 
+45bb 6fe0c9ad fetch 1 ,mem_keyboard_keyvalue_buffer 
+45bc 245a468f ncall keyborad_control_key_set ,blank 
+45bd d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+45be df200006 arg 6 ,loopcnt 
+
+keyboard_special_key_check_loop:
+45bf efe08006 ifetch 1 ,contr 
+45c0 1fe67c7f sub pdata ,hid_key_fn ,null 
+45c1 2042c699 call keyboard_fn_set ,zero 
+45c2 1fe67cae sub pdata ,hid_key_pb ,null 
+45c3 2042c69b call keyboard_pb_set ,zero 
+45c4 c20045bf loop keyboard_special_key_check_loop 
+45c5 204045c9 call keyboard_commbination_key_press_check 
+45c6 6fe0ca7f fetch 1 ,mem_keyboard_pairing_type 
+45c7 203a4670 branch keyboard_enable_bt_button_pairing ,blank 
+45c8 20600000 rtn 
+
+keyboard_commbination_key_press_check:
+45c9 44aa400a bpatch patch0a_4 ,mem_patch0a 
+45ca 704a9b00 jam 0 ,mem_keyboard_commbination_press_type 
+45cb 6fe0c678 fetch 1 ,mem_device_flag 
+45cc c08045d7 bne mode_24g_device ,keyboard_commbination_key_press_check_bt 
+45cd 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+45ce c4098000 rtnbit0 keyboard_enable_commbination_key_by_24g_pairing 
+45cf 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+45d0 68494a97 fetcht 2 ,mem_keyboard_commbination_key_24g 
+45d1 98467c00 isub temp ,null 
+45d2 2022c5e8 branch keyboard_commbination_key_down_24g ,zero 
+45d3 18508400 byteswap temp ,temp 
+45d4 98467c00 isub temp ,null 
+45d5 2022c5e8 branch keyboard_commbination_key_down_24g ,zero 
+45d6 202054e6 branch mouse_commbination_key_up 
+
+keyboard_commbination_key_press_check_bt:
+45d7 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+45d8 68494a99 fetcht 2 ,mem_keyboard_commbination_fast_conn_bt 
+45d9 98467c00 isub temp ,null 
+45da 2022c5ec branch keyboard_commbination_key_down_bt_fast_conn ,zero 
+45db 18508400 byteswap temp ,temp 
+45dc 98467c00 isub temp ,null 
+45dd 2022c5ec branch keyboard_commbination_key_down_bt_fast_conn ,zero 
+45de 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+45df c30dd4e6 bbit0 keyboard_enable_commbination_key_by_bt_discovery ,mouse_commbination_key_up 
+45e0 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+45e1 68494a95 fetcht 2 ,mem_keyboard_commbination_key_bt 
+45e2 98467c00 isub temp ,null 
+45e3 2022c5ea branch keyboard_commbination_key_down_bt ,zero 
+45e4 18508400 byteswap temp ,temp 
+45e5 98467c00 isub temp ,null 
+45e6 2022c5ea branch keyboard_commbination_key_down_bt ,zero 
+45e7 202054e6 branch mouse_commbination_key_up 
+
+keyboard_commbination_key_down_24g:
+45e8 704a9b01 jam keyboard_commbination_press_type_24g_pair ,mem_keyboard_commbination_press_type 
+45e9 202045ee branch keyboard_commbination_key_down 
+
+keyboard_commbination_key_down_bt:
+45ea 704a9b02 jam keyboard_commbination_press_type_bt_pair ,mem_keyboard_commbination_press_type 
+45eb 202045ee branch keyboard_commbination_key_down 
+
+keyboard_commbination_key_down_bt_fast_conn:
+45ec 704a9b03 jam keyboard_commbination_press_type_bt_fast_conn ,mem_keyboard_commbination_press_type 
+45ed 202045ee branch keyboard_commbination_key_down 
+
+keyboard_commbination_key_down:
+45ee 6fe0c735 fetch 1 ,mem_commbination_key_statue 
+45ef c1008000 rtneq commbination_key_state_down 
+45f0 70473501 jam commbination_key_state_down ,mem_commbination_key_statue 
+45f1 20600000 rtn 
+
+keyboard_device_select:
+45f2 20407dbe call disable_user 
+45f3 20404600 call keyboard_device_select_g24 
+45f4 20404616 call keyboard_device_select_bt1 
+45f5 20404627 call keyboard_device_select_bt2 
+45f6 20404638 call keyboard_device_select_bt3 
+45f7 2040464e call keyboard_device_select_usb 
+45f8 203445fe branch keyboard_clear_change_flag ,user 
+45f9 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+45fa 793ffe00 set0 keyboard_flag_g24_device_button ,pdata 
+45fb 793ffe01 set0 keyboard_flag_bt_device_button ,pdata 
+45fc 67e0c8a6 store 1 ,mem_keyboard_switch_device_flag 
+45fd 20600000 rtn 
+
+keyboard_clear_change_flag:
+45fe 7049a900 jam 0 ,mem_keyboard_data_change_flag 
+45ff 20600000 rtn 
+
+keyboard_device_select_g24:
+4600 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4601 c4080000 rtnbit0 keyboard_enable_24g 
+4602 6fe0c897 fetch 1 ,mem_keyboard_switch_device_to_g24 
+4603 207a0000 rtn blank 
+4604 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+4605 68494898 fetcht 2 ,mem_keyboard_switch_device_to_g24 + 1 
+4606 98467c00 isub temp ,null 
+4607 2022c60c branch keyboard_device_select_g24_press ,zero 
+4608 18508400 byteswap temp ,temp 
+4609 98467c00 isub temp ,null 
+460a 2022c60c branch keyboard_device_select_g24_press ,zero 
+460b 20600000 rtn 
+
+keyboard_device_select_g24_press:
+460c 20407dbc call enable_user 
+460d 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+460e 79207e00 set1 keyboard_flag_g24_device_button ,pdata 
+460f 793ffe01 set0 keyboard_flag_bt_device_button ,pdata 
+4610 67e0c8a6 store 1 ,mem_keyboard_switch_device_flag 
+4611 6fe0c678 fetch 1 ,mem_device_flag 
+4612 c1000000 rtneq mode_24g_device 
+4613 70467800 jam mode_24g_device ,mem_device_flag 
+4614 7048a701 jam 1 ,mem_keyboard_switch_g24_enable 
+4615 20600000 rtn 
+
+keyboard_device_select_bt1:
+4616 6fe0c89a fetch 1 ,mem_keyboard_switch_device_to_bt1 
+4617 207a0000 rtn blank 
+4618 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+4619 6849489b fetcht 2 ,mem_keyboard_switch_device_to_bt1 + 1 
+461a 98467c00 isub temp ,null 
+461b 2022c620 branch keyboard_device_select_bt1_press ,zero 
+461c 18508400 byteswap temp ,temp 
+461d 98467c00 isub temp ,null 
+461e 2022c620 branch keyboard_device_select_bt1_press ,zero 
+461f 20600000 rtn 
+
+keyboard_device_select_bt1_press:
+4620 20407dbc call enable_user 
+4621 20404649 call keyboard_device_select_bt_set_press_flag 
+4622 6fe0c678 fetch 1 ,mem_device_flag 
+4623 c1008000 rtneq mode_bt_device1 
+4624 70467801 jam mode_bt_device1 ,mem_device_flag 
+4625 7048a801 jam 1 ,mem_keyboard_switch_bt_enable 
+4626 20600000 rtn 
+
+keyboard_device_select_bt2:
+4627 6fe0c89d fetch 1 ,mem_keyboard_switch_device_to_bt2 
+4628 207a0000 rtn blank 
+4629 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+462a 6849489e fetcht 2 ,mem_keyboard_switch_device_to_bt2 + 1 
+462b 98467c00 isub temp ,null 
+462c 2022c631 branch keyboard_device_select_bt2_press ,zero 
+462d 18508400 byteswap temp ,temp 
+462e 98467c00 isub temp ,null 
+462f 2022c631 branch keyboard_device_select_bt2_press ,zero 
+4630 20600000 rtn 
+
+keyboard_device_select_bt2_press:
+4631 20407dbc call enable_user 
+4632 20404649 call keyboard_device_select_bt_set_press_flag 
+4633 6fe0c678 fetch 1 ,mem_device_flag 
+4634 c1010000 rtneq mode_bt_device2 
+4635 70467802 jam mode_bt_device2 ,mem_device_flag 
+4636 7048a801 jam 1 ,mem_keyboard_switch_bt_enable 
+4637 20600000 rtn 
+
+keyboard_device_select_bt3:
+4638 6fe0c8a0 fetch 1 ,mem_keyboard_switch_device_to_bt3 
+4639 207a0000 rtn blank 
+463a 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+463b 684948a1 fetcht 2 ,mem_keyboard_switch_device_to_bt3 + 1 
+463c 98467c00 isub temp ,null 
+463d 2022c642 branch keyboard_device_select_bt3_press ,zero 
+463e 18508400 byteswap temp ,temp 
+463f 98467c00 isub temp ,null 
+4640 2022c642 branch keyboard_device_select_bt3_press ,zero 
+4641 20600000 rtn 
+
+keyboard_device_select_bt3_press:
+4642 20407dbc call enable_user 
+4643 20404649 call keyboard_device_select_bt_set_press_flag 
+4644 6fe0c678 fetch 1 ,mem_device_flag 
+4645 c1018000 rtneq mode_bt_device3 
+4646 70467803 jam mode_bt_device3 ,mem_device_flag 
+4647 7048a801 jam 1 ,mem_keyboard_switch_bt_enable 
+4648 20600000 rtn 
+
+keyboard_device_select_bt_set_press_flag:
+4649 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+464a 793ffe00 set0 keyboard_flag_g24_device_button ,pdata 
+464b 79207e01 set1 keyboard_flag_bt_device_button ,pdata 
+464c 67e0c8a6 store 1 ,mem_keyboard_switch_device_flag 
+464d 20600000 rtn 
+
+keyboard_device_select_usb:
+464e 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+464f c4120000 rtnbit0 keyboard_enable_usb 
+4650 6fe0c8a3 fetch 1 ,mem_keyboard_switch_device_to_usb 
+4651 207a0000 rtn blank 
+4652 6fe149af fetch 2 ,mem_keyboard_keyvalue_buffer + 2 
+4653 684948a4 fetcht 2 ,mem_keyboard_switch_device_to_usb + 1 
+4654 98467c00 isub temp ,null 
+4655 2022c65a branch keyboard_device_select_usb_press ,zero 
+4656 18508400 byteswap temp ,temp 
+4657 98467c00 isub temp ,null 
+4658 2022c65a branch keyboard_device_select_usb_press ,zero 
+4659 20600000 rtn 
+
+keyboard_device_select_usb_press:
+465a 20407dbc call enable_user 
+465b 6fe0c678 fetch 1 ,mem_device_flag 
+465c c1020000 rtneq mode_usb_device 
+465d 70467804 jam mode_usb_device ,mem_device_flag 
+465e 20404045 call keyboard_store_device_number 
+465f 20206c99 branch soft_reset_chip 
+
+keyboard_pairing_button_check:
+4660 6fe0ca7f fetch 1 ,mem_keyboard_pairing_type 
+4661 247a0000 nrtn blank 
+4662 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
+4663 18467cff sub temp ,ui_button_gpio_disable ,null 
+4664 20628000 rtn zero 
+4665 20406ee0 call gpio_get_bit 
+4666 2420c66c nbranch keyboard_pairing_button_release ,true 
+4667 df200008 arg 8 ,loopcnt 
+4668 d8a049ad arg mem_keyboard_keyvalue_buffer ,contw 
+4669 20407ca3 call clear_mem 
+466a 7049afae jam hid_key_pb ,mem_keyboard_keyvalue_buffer + 2 
+466b 20600000 rtn 
+
+keyboard_pairing_button_release:
+466c 6fe0c9af fetch 1 ,mem_keyboard_keyvalue_buffer + 2 
+466d c1d70000 rtnne hid_key_pb 
+466e 7049af00 jam hid_key_null ,mem_keyboard_keyvalue_buffer + 2 
+466f 20600000 rtn 
+
+keyboard_enable_bt_button_pairing:
+4670 44aac00a bpatch patch0a_5 ,mem_patch0a 
+4671 6fe0ca7e fetch 1 ,mem_keyboard_bt_button_flag 
+4672 207a0000 rtn blank 
+4673 6fe0c678 fetch 1 ,mem_device_flag 
+4674 c0004680 beq mode_24g_device ,keyboard_24g_start_pair_mode 
+
+keyboard_long_button_bt_discovery:
+4675 44ab400a bpatch patch0a_6 ,mem_patch0a 
+4676 20403f2c call keyboard_pairing_check_otp_offset 
+4677 7049a900 jam 0 ,mem_keyboard_data_change_flag 
+4678 6fe0c678 fetch 1 ,mem_device_flag 
+4679 c1000000 rtneq mode_24g_device 
+467a 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+467b c3820000 rtnbit1 keyboard_bt_discovery_button_long_down_flag 
+467c d8e00004 arg keyboard_bt_discovery_button_long_down_flag ,queue 
+467d 20404a25 call keyboard_enable_function_flag 
+467e 20403745 call app_evt_button_long_pressed 
+467f 202048c0 branch keyboard_bb_event_discovery_btn 
+
+keyboard_24g_start_pair_mode:
+4680 44abc00a bpatch patch0a_7 ,mem_patch0a 
+4681 20404161 call keyboard_device_led_all_off 
+4682 20403f2c call keyboard_pairing_check_otp_offset 
+4683 7049a900 jam 0 ,mem_keyboard_data_change_flag 
+4684 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+4685 247a0000 nrtn blank 
+4686 58000000 setarg 0 
+4687 67e14741 store 2 ,mem_device_no_data_timer 
+4688 67e145f5 store 2 ,mem_24g_reconn_timeout 
+4689 67e0c5f9 store 1 ,mem_24g_reconn_type 
+468a d8e00000 arg keyboard_24g_pairing_flag ,queue 
+468b 20404a25 call keyboard_enable_function_flag 
+468c 204048e9 call keyboard_stop_discovery 
+468d 7045a002 jam type_kb ,mem_24g_data_type 
+468e 2020326f branch g24_pair_start 
+
+keyborad_control_key_set:
+468f 67e0ca7b store 1 ,mem_keyboard_control_key_flag 
+4690 1fe17e44 and_into 0x44 ,pdata 
+4691 245a4697 ncall keyboard_alt_flag_set ,blank 
+4692 6fe0ca7b fetch 1 ,mem_keyboard_control_key_flag 
+4693 1fe17e22 and_into 0x22 ,pdata 
+4694 207a0000 rtn blank 
+4695 704a7d01 jam 1 ,mem_keyboard_shift_flag 
+4696 20600000 rtn 
+
+keyboard_alt_flag_set:
+4697 704a7c01 jam 1 ,mem_keyboard_alt_flag 
+4698 20600000 rtn 
+
+keyboard_fn_set:
+4699 704a7a01 jam 1 ,mem_keyboard_fn_flag 
+469a 20600000 rtn 
+
+keyboard_pb_set:
+469b 704a7e01 jam 1 ,mem_keyboard_bt_button_flag 
+469c 20600000 rtn 
+
+keyboard_motion:
+469d 44ac400b bpatch patch0b_0 ,mem_patch0b 
+469e 78547c00 disable user 
+469f 70472b00 jam 0 ,mem_customer_key 
+46a0 70472c00 jam 0 ,mem_customer_data_trigger 
+46a1 70472d00 jam 0 ,mem_customer_data_trigger_last 
+46a2 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
+46a3 c000c54e beq cammbination_key_press ,keyboard_commbination_key_press_process 
+46a4 c0014553 beq cammbination_key_hold ,keyboard_commbination_key_hold_process 
+46a5 c001c553 beq cammbination_key_complete ,keyboard_commbination_key_hold_process 
+46a6 c0024557 beq cammbination_key_wait_release ,keyboard_commbination_key_wait_release_process 
+46a7 c0034560 beq cammbination_key_null ,keyboard_commbination_key_null_process 
+46a8 6fe0c9a9 fetch 1 ,mem_keyboard_data_change_flag 
+46a9 203a46ba branch keyboard_no_key_press ,blank 
+46aa 1fe0ffff increase -1 ,pdata 
+46ab 67e0c9a9 store 1 ,mem_keyboard_data_change_flag 
+46ac 204046b7 call keyboard_current_mult_update 
+46ad 704a820a jam 10 ,mem_keyboard_led_status_get_timer 
+46ae 20405535 call mouse_no_data_timer_init 
+46af 6fe0ca9c fetch 1 ,mem_keyboard_commbination_key_step 
+46b0 c002c55f beq cammbination_key_release ,keyboard_commbination_key_release_process 
+46b1 d8a04a6f arg mem_keyboard_tx_data ,contw 
+46b2 df20000a arg 10 ,loopcnt 
+46b3 20407ca3 call clear_mem 
+46b4 204046ca call keyboard_motion_data_check 
+46b5 704a7900 jam 0 ,mem_keyboard_data_send_flag 
+46b6 20600000 rtn 
+
+keyboard_current_mult_update:
+46b7 7040c003 jam 3 ,mem_lpm_mult 
+46b8 70473e0a jam 10 ,mem_mouse_current_mult_timer 
+46b9 20600000 rtn 
+
+keyboard_no_key_press:
+46ba 6fe0c678 fetch 1 ,mem_device_flag 
+46bb c1800000 rtnne mode_24g_device 
+46bc 6fe0ca81 fetch 1 ,mem_keyboard_led_status_get 
+46bd 207a0000 rtn blank 
+46be 6fe0ca80 fetch 1 ,mem_24g_repeat_send_flag 
+46bf 247a0000 nrtn blank 
+46c0 6848ca83 fetcht 1 ,mem_keyboard_led_status_get_timer_last 
+46c1 6fe0ca82 fetch 1 ,mem_keyboard_led_status_get_timer 
+46c2 98467c00 isub temp ,null 
+46c3 67e0ca83 store 1 ,mem_keyboard_led_status_get_timer_last 
+46c4 20628000 rtn zero 
+46c5 d8a04a6f arg mem_keyboard_tx_data ,contw 
+46c6 df20000a arg 10 ,loopcnt 
+46c7 20407ca3 call clear_mem 
+46c8 20407dbc call enable_user 
+46c9 202046e6 branch keyboard_motion_data_check_next 
+
+keyboard_motion_data_check:
+46ca 44acc00b bpatch patch0b_1 ,mem_patch0b 
+46cb 6fe0caa0 fetch 1 ,mem_keyboard_consumer_key_status 
+46cc c001474b beq keyboard_consumer_key_release ,keyboard_value_consumer_release 
+46cd 6fe0c9b7 fetch 1 ,mem_keboard_n_key_rollover_send_flag 
+46ce 243a46ec nbranch keyboard_motion_data_check_n_key_rollover_key ,blank 
+46cf d8c049af arg mem_keyboard_keyvalue_buffer + 2 ,contr 
+46d0 df200006 arg 6 ,loopcnt 
+
+keyboard_value_tpye_check:
+46d1 efe08006 ifetch 1 ,contr 
+46d2 1fe67ce7 sub pdata ,hid_key_right_gui ,null 
+46d3 242146f5 nbranch keyboard_value_tpye_consumer_set ,positive 
+46d4 c20046d1 loop keyboard_value_tpye_check 
+46d5 6fe0c9a6 fetch 1 ,mem_keyboard_all_press_key_count 
+46d6 205a46ef call keyboard_value_release_all_key ,blank 
+46d7 704a6f00 jam hid_reportid_key_standard ,mem_keyboard_tx_data 
+46d8 44ad400b bpatch patch0b_2 ,mem_patch0b 
+46d9 da2049ad arg mem_keyboard_keyvalue_buffer ,rega 
+46da d8a04a70 arg mem_keyboard_tx_data + 1 ,contw 
+46db df200008 arg 8 ,loopcnt 
+
+keyboard_tx_data_store:
+46dc e8408011 ifetcht 1 ,rega 
+46dd 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+46de c07fc6e3 beq 0xff ,keyboard_tx_data_store_loop 
+46df 18467c7f sub temp ,hid_key_fn ,null 
+46e0 2422c6e3 nbranch keyboard_tx_data_store_loop ,zero 
+46e1 1a20a201 increase 1 ,rega 
+46e2 e8408011 ifetcht 1 ,rega 
+
+keyboard_tx_data_store_loop:
+46e3 e0408005 istoret 1 ,contw 
+46e4 1a20a201 increase 1 ,rega 
+46e5 c20046dc loop keyboard_tx_data_store 
+
+keyboard_motion_data_check_next:
+46e6 44adc00b bpatch patch0b_3 ,mem_patch0b 
+46e7 20404756 call keyboard_device_data_tpye_check 
+46e8 6fe0ca79 fetch 1 ,mem_keyboard_data_send_flag 
+46e9 c000fdbc beq device_data_tpye_mouse ,enable_user 
+
+device_send_keyboard_data:
+46ea 2040522c call mouse_customerkey_press 
+46eb 20207dbc branch enable_user 
+
+keyboard_motion_data_check_n_key_rollover_key:
+46ec 7049b700 jam 0 ,mem_keboard_n_key_rollover_send_flag 
+46ed 704a6f08 jam hid_reportid_n_key_rollover ,mem_keyboard_tx_data 
+46ee 202046e6 branch keyboard_motion_data_check_next 
+
+keyboard_value_release_all_key:
+46ef d8a049b8 arg mem_keyboard_n_key_rollover_data ,contw 
+46f0 df20000f arg 15 ,loopcnt 
+46f1 20407ca3 call clear_mem 
+46f2 d8a049ad arg mem_keyboard_keyvalue_buffer ,contw 
+46f3 df20000a arg 10 ,loopcnt 
+46f4 20207ca3 branch clear_mem 
+
+keyboard_value_tpye_consumer_set:
+46f5 1fe20400 copy pdata ,temp 
+46f6 44ae400b bpatch patch0b_4 ,mem_patch0b 
+46f7 18427e00 copy temp ,pdata 
+46f8 704a6f05 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+46f9 6848c9a6 fetcht 1 ,mem_keyboard_all_press_key_count 
+46fa 18467c00 sub temp ,hid_key_null ,null 
+46fb 2022c74b branch keyboard_value_consumer_all_key_release ,zero 
+46fc c0744715 beq hid_key_multikey_media ,keyboard_value_media 
+46fd c074c718 beq hid_key_multikey_vol_down ,keyboard_value_vol_down 
+46fe c075471a beq hid_key_multikey_vol_up ,keyboard_value_vol_up 
+46ff c075c71c beq hid_key_multikey_mute ,keyboard_value_mute 
+4700 c076471e beq hid_key_multikey_pre_track ,keyboard_value_pre_track 
+4701 c076c720 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+4702 c0774722 beq hid_key_multikey_paly ,keyboard_value_play 
+4703 c077c724 beq hid_key_multikey_stop ,keyboard_value_stop 
+4704 c0784726 beq hid_key_ac_home ,keyboard_value_ac_home 
+4705 c078c728 beq hid_key_mail ,keyboard_value_mail 
+4706 c079472a beq hid_key_my_computer ,keyboard_value_my_computer 
+4707 c079c72c beq hid_key_ac_favorites ,keyboard_value_ac_favorites 
+4708 c07a472e beq hid_key_calculator ,keyboard_value_calculator 
+4709 c07ac730 beq hid_key_ac_search ,keyboard_value_ac_search 
+470a c07b4732 beq hid_key_ac_back ,keyboard_value_ac_back 
+470b c07bc737 beq hid_key_os_soft_kb ,keyboard_value_os_soft_kb 
+470c c07c473d beq hid_key_light_down ,keyboard_value_light_down 
+470d c07cc73f beq hid_key_light_up ,keyboard_value_light_up 
+470e c07d4741 beq hid_key_ios_android_os_lock ,keyboard_value_os_lock 
+470f c07dc743 beq hid_key_mac_eject ,keyboard_value_mac_eject 
+4710 c07e4745 beq hid_key_ac_forward ,keyboard_value_ac_forward 
+4711 c07ec747 beq hid_key_ac_stop ,keyboard_value_ac_stop 
+4712 c07f4749 beq hid_key_ac_refresh ,keyboard_value_ac_refresh 
+4713 c07fc752 beq hid_key_system_sleep ,keyboard_value_system_sleep 
+4714 202046e6 branch keyboard_motion_data_check_next 
+
+keyboard_value_media:
+4715 58000001 setarg 0x000001 
+
+keyboard_consumer_value_store:
+4716 67e1ca70 store 3 ,mem_keyboard_tx_data + 1 
+4717 202046e6 branch keyboard_motion_data_check_next 
+
+keyboard_value_vol_down:
+4718 58000002 setarg 0x000002 
+4719 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_vol_up:
+471a 58000004 setarg 0x000004 
+471b 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_mute:
+471c 58000008 setarg 0x000008 
+471d 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_pre_track:
+471e 58000010 setarg 0x000010 
+471f 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_next_track:
+4720 58000020 setarg 0x000020 
+4721 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_play:
+4722 58000040 setarg 0x000040 
+4723 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_stop:
+4724 58000080 setarg 0x000080 
+4725 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_ac_home:
+4726 58000100 setarg 0x000100 
+4727 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_mail:
+4728 58000200 setarg 0x000200 
+4729 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_my_computer:
+472a 58000400 setarg 0x000400 
+472b 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_ac_favorites:
+472c 58000800 setarg 0x000800 
+472d 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_calculator:
+472e 58001000 setarg 0x001000 
+472f 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_ac_search:
+4730 58002000 setarg 0x002000 
+4731 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_ac_back:
+4732 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+4733 c0014726 beq system_os_ios ,keyboard_value_ac_home 
+4734 c001c726 beq system_os_mac ,keyboard_value_ac_home 
+4735 58004000 setarg 0x004000 
+4736 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_os_soft_kb:
+4737 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+4738 c000c73b beq system_os_android ,keyboard_value_os_soft_kb_android 
+4739 58010000 setarg 0x010000 
+473a 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_os_soft_kb_android:
+473b 58008000 setarg 0x008000 
+473c 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_light_down:
+473d 58020000 setarg 0x020000 
+473e 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_light_up:
+473f 58040000 setarg 0x040000 
+4740 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_os_lock:
+4741 58080000 setarg 0x080000 
+4742 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_mac_eject:
+4743 58100000 setarg 0x100000 
+4744 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_ac_forward:
+4745 58200000 setarg 0x200000 
+4746 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_ac_stop:
+4747 58400000 setarg 0x400000 
+4748 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_ac_refresh:
+4749 58800000 setarg 0x800000 
+474a 20204716 branch keyboard_consumer_value_store 
+
+keyboard_value_consumer_all_key_release:
+
+keyboard_value_consumer_release:
+474b 7049a902 jam 2 ,mem_keyboard_data_change_flag 
+474c 6fe0c9a6 fetch 1 ,mem_keyboard_all_press_key_count 
+474d 205a46ef call keyboard_value_release_all_key ,blank 
+474e 704aa000 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+474f 58000005 setarg hid_reportid_bit_consumer_key 
+4750 67e1ca6f store 3 ,mem_keyboard_tx_data 
+4751 202046e6 branch keyboard_motion_data_check_next 
+
+keyboard_value_system_sleep:
+4752 704a6f02 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+4753 58000002 setarg 0x02 
+4754 67e0ca70 store 1 ,mem_keyboard_tx_data + 1 
+4755 202046e6 branch keyboard_motion_data_check_next 
+
+keyboard_device_data_tpye_check:
+4756 6fe0c678 fetch 1 ,mem_device_flag 
+4757 c080475d bne mode_24g_device ,keyboard_device_data_tpye_check_next 
+4758 704a8000 jam 0 ,mem_24g_repeat_send_flag 
+4759 6fe14a6f fetch 2 ,mem_keyboard_tx_data 
+475a 245a47e4 ncall keyboard_set_repeat_send_flag ,blank 
+475b 6fe34a72 fetch 6 ,mem_keyboard_tx_data + 3 
+475c 245a47e4 ncall keyboard_set_repeat_send_flag ,blank 
+
+keyboard_device_data_tpye_check_next:
+475d 2040684b call hid_device_clear_key_data 
+475e 704a7900 jam device_data_tpye_keyboard ,mem_keyboard_data_send_flag 
+475f 44aec00b bpatch patch0b_5 ,mem_patch0b 
+4760 6fe0ca6f fetch 1 ,mem_keyboard_tx_data 
+4761 c000476d beq hid_reportid_key_standard ,keyboard_standard_data_send 
+4762 c000c768 beq hid_reportid_mouse ,keyboard_mouse_data_send 
+4763 c001c780 beq hid_reportid_consumer_key ,keyboard_consumer_data_send 
+4764 c002c785 beq hid_reportid_bit_consumer_key ,keyboard_bit_consumer_data_send 
+4765 c0014787 beq hid_reportid_system_ctrl ,keyboard_system_control_data_send 
+4766 c004478c beq hid_reportid_n_key_rollover ,keyboard_n_key_rollover_send 
+4767 20600000 rtn 
+
+keyboard_mouse_data_send:
+4768 704a7901 jam device_data_tpye_mouse ,mem_keyboard_data_send_flag 
+4769 d8c04a70 arg mem_keyboard_tx_data + 1 ,contr 
+476a d8a0465c arg mem_mouse_key ,contw 
+476b df200007 arg 7 ,loopcnt 
+476c 20207cdc branch memcpy 
+
+keyboard_standard_data_send:
+476d 6fe0c678 fetch 1 ,mem_device_flag 
+476e c0804772 bne mode_24g_device ,keyboard_standard_data_send_end 
+476f 204047d9 call keyboard_24g_led_get_status_check 
+4770 6fe0ca81 fetch 1 ,mem_keyboard_led_status_get 
+4771 67e0ca71 store 1 ,mem_keyboard_tx_data + 2 
+
+keyboard_standard_data_send_end:
+4772 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4773 c2914778 bbit1 keyboard_enable_magic_keyboard ,keyboard_magic_data_send 
+4774 d8c04a6f arg mem_keyboard_tx_data ,contr 
+4775 d8a04721 arg mem_customer_key_press ,contw 
+4776 df200009 arg 9 ,loopcnt 
+4777 20207cdc branch memcpy 
+
+keyboard_magic_data_send:
+4778 704a7800 jam 0 ,mem_keyboard_tx_data + 9 
+4779 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
+477a 203a477c branch keyboard_magic_data_send_end ,blank 
+477b 704a7801 jam 1 ,mem_keyboard_tx_data + 9 
+
+keyboard_magic_data_send_end:
+477c d8c04a6f arg mem_keyboard_tx_data ,contr 
+477d d8a04721 arg mem_customer_key_press ,contw 
+477e df20000a arg 10 ,loopcnt 
+477f 20207cdc branch memcpy 
+
+keyboard_consumer_data_send:
+4780 58000003 setarg hid_reportid_consumer_key 
+
+keyboard_consumer_data_store:
+4781 67e0c721 store 1 ,mem_customer_key_press 
+4782 6fe1ca70 fetch 3 ,mem_keyboard_tx_data + 1 
+4783 67e1c722 store 3 ,mem_customer_key_press + 1 
+4784 20600000 rtn 
+
+keyboard_bit_consumer_data_send:
+4785 58000005 setarg hid_reportid_bit_consumer_key 
+4786 20204781 branch keyboard_consumer_data_store 
+
+keyboard_system_control_data_send:
+4787 58000002 setarg hid_reportid_system_ctrl 
+4788 67e0c721 store 1 ,mem_customer_key_press 
+4789 6fe0ca70 fetch 1 ,mem_keyboard_tx_data + 1 
+478a 67e0c722 store 1 ,mem_customer_key_press + 1 
+478b 20600000 rtn 
+
+keyboard_n_key_rollover_send:
+478c 58000008 setarg hid_reportid_n_key_rollover 
+478d 67e0c721 store 1 ,mem_customer_key_press 
+478e 20600000 rtn 
+
+keyboard_lpm_before_common:
+478f 44af400b bpatch patch0b_6 ,mem_patch0b 
+4790 20407de6 call clear_wake 
+4791 6848c90f fetcht 1 ,mem_keyboard_pb_button_gpio 
+4792 20406eac call gpio_set_wake 
+4793 6fe1494a fetch 2 ,mem_kb_col_ptr 
+4794 1fe22400 copy pdata ,regb 
+4795 df200014 arg 20 ,loopcnt 
+
+keyboard_key_col_wake_init:
+4796 e8408012 ifetcht 1 ,regb 
+4797 284ffe07 isolate1 7 ,temp 
+4798 2440eef1 ncall gpio_out_active ,true 
+4799 1a40a401 increase 1 ,regb 
+479a c2004796 loop keyboard_key_col_wake_init 
+479b 20403f1b call keyboard_gpio_pu_idle 
+479c 70488c00 jam 0 ,mem_qdec_set_flag 
+479d 6fe14948 fetch 2 ,mem_kb_row_ptr 
+479e 1fe22400 copy pdata ,regb 
+479f df200008 arg 8 ,loopcnt 
+
+keyboard_key_row_wake_init:
+47a0 e8408012 ifetcht 1 ,regb 
+47a1 18467cff sub temp ,ui_button_gpio_disable ,null 
+47a2 2442bf29 ncall keyboard_key_row_wake_set ,zero 
+47a3 1a40a401 increase 1 ,regb 
+47a4 c20047a0 loop keyboard_key_row_wake_init 
+47a5 20406f4b call lpm_puchk_set_check 
+47a6 6848c666 fetcht 1 ,mem_device_reuse_2ice_gpio 
+47a7 20404f0a call device_gpio_config_input_pu 
+47a8 20404f0e call mouse_gpio_set_analog 
+47a9 202040dd branch keyboard_adc_gpio_set_before_hibernate 
+
+keyboard_process_lpm_before:
+47aa c6130000 rtnmark1 mark_24g 
+47ab 2020478f branch keyboard_lpm_before_common 
+
+keyboard_before_hibernate:
+47ac 44afc00b bpatch patch0b_7 ,mem_patch0b 
+47ad 20407388 call disable_authrom 
+47ae 202047b3 branch keyboard_setgpio_hibernate 
+
+keyboard_power_down:
+47af 44b0400c bpatch patch0c_0 ,mem_patch0c 
+47b0 20404161 call keyboard_device_led_all_off 
+
+keyboard_app_enter_hibernate:
+47b1 204047b3 call keyboard_setgpio_hibernate 
+47b2 2020379c branch app_enter_hibernate 
+
+keyboard_setgpio_hibernate:
+47b3 44b0c00c bpatch patch0c_1 ,mem_patch0c 
+47b4 20407de6 call clear_wake 
+47b5 20404161 call keyboard_device_led_all_off 
+47b6 20404203 call keyboard_rgb_off 
+47b7 2020478f branch keyboard_lpm_before_common 
+
+keyboard_24g_pairing_complete:
+47b8 204047e1 call keyboard_get_24g_led_enable 
+47b9 20405535 call mouse_no_data_timer_init 
+47ba d8e00000 arg keyboard_24g_pairing_flag ,queue 
+47bb 20404a29 call keyboard_disable_function_flag 
+47bc 58000000 setarg 0 
+47bd 67e145ef store 2 ,mem_24g_pair_timeout 
+47be 67e145f5 store 2 ,mem_24g_reconn_timeout 
+47bf 67e0c613 store 1 ,mem_24g_conn_sm 
+47c0 67e0c8fd store 1 ,mem_mouse_move_flag 
+47c1 67e0c5f9 store 1 ,mem_24g_reconn_type 
+47c2 6fe245a6 fetch 4 ,mem_24g_addr 
+47c3 67e245ff store 4 ,mem_24g_receiver_addr 
+47c4 67e246a3 store 4 ,mem_device_24g_addr 
+47c5 204047d3 call keyboard_24g_fast_conn_check 
+47c6 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+47c7 79207e02 set1 keyboard_store_eepromm_flag_g24_addr ,pdata 
+47c8 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+47c9 202044b9 branch keyboard_store_device_info_delay 
+
+keyboard_24g_attempt_success:
+47ca 204047e1 call keyboard_get_24g_led_enable 
+47cb 6fe245a6 fetch 4 ,mem_24g_addr 
+47cc 67e245ff store 4 ,mem_24g_receiver_addr 
+47cd 67e246a3 store 4 ,mem_device_24g_addr 
+47ce 20403530 call g24_ch_syncword_crc8_init 
+47cf 204047d3 call keyboard_24g_fast_conn_check 
+47d0 70461300 jam 0 ,mem_24g_conn_sm 
+47d1 7045f900 jam 0 ,mem_24g_reconn_type 
+47d2 20205535 branch mouse_no_data_timer_init 
+
+keyboard_24g_fast_conn_check:
+47d3 6fe245a6 fetch 4 ,mem_24g_addr 
+47d4 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
+47d5 98467c00 isub temp ,null 
+47d6 2422d3c1 nbranch mouse_bluetooth_fast_conn_disable ,zero 
+47d7 70474fff jam 0xff ,mem_device_fast_conn_flag 
+47d8 20600000 rtn 
+
+keyboard_24g_led_get_status_check:
+47d9 df200006 arg 6 ,loopcnt 
+47da d8c04a72 arg mem_keyboard_tx_data + 3 ,contr 
+
+keyboard_24g_led_data_check:
+47db efe08006 ifetch 1 ,contr 
+47dc c029c7e1 beq hid_key_num_lock ,keyboard_get_24g_led_enable 
+47dd c01cc7e1 beq hid_key_caps_lock ,keyboard_get_24g_led_enable 
+47de c023c7e1 beq hid_key_scroll_lock ,keyboard_get_24g_led_enable 
+47df c20047db loop keyboard_24g_led_data_check 
+47e0 20600000 rtn 
+
+keyboard_get_24g_led_enable:
+47e1 704a8103 jam 0x03 ,mem_keyboard_led_status_get 
+47e2 7049a901 jam 1 ,mem_keyboard_data_change_flag 
+47e3 20600000 rtn 
+
+keyboard_set_repeat_send_flag:
+47e4 704a8001 jam 1 ,mem_24g_repeat_send_flag 
+47e5 20600000 rtn 
+
+keyboard_24g_attempt_fail:
+47e6 6fe0c617 fetch 1 ,mem_24g_attempt_fail_flag 
+47e7 243a47fb nbranch keyboard_24g_hibernate_set ,blank 
+47e8 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
+47e9 c00147f3 beq fast_conn_and_3_0_addr ,keyboard_24g_fast_conn_attempt_fail 
+47ea c000c7f3 beq fast_conn_and_receiver ,keyboard_24g_fast_conn_attempt_fail 
+47eb c001c7ed beq receiver_and_3_0_addr ,keyboard_24g_attempt_fail_enter_hibernate 
+47ec 202047ed branch keyboard_24g_attempt_fail_enter_hibernate 
+
+keyboard_24g_attempt_fail_enter_hibernate:
+47ed 20404804 call keyboard_24g_stop 
+47ee 6fe0c73f fetch 1 ,mem_reconn_times 
+47ef 243a5836 nbranch mouse_polling_device ,blank 
+47f0 6fe0c678 fetch 1 ,mem_device_flag 
+47f1 c00047af beq mode_24g_device ,keyboard_power_down 
+47f2 20600000 rtn 
+
+keyboard_24g_fast_conn_attempt_fail:
+47f3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+47f4 c288d952 bbit1 keyboard_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+47f5 c3095988 bbit0 keyboard_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+47f6 6fe246a3 fetch 4 ,mem_device_24g_addr 
+47f7 684a46f8 fetcht 4 ,mem_device_compare_addr 
+47f8 98467c00 isub temp ,null 
+47f9 2022c680 branch keyboard_24g_start_pair_mode ,zero 
+47fa 20205988 branch mouse_24g_reconn_dongle_start 
+
+keyboard_24g_hibernate_set:
+47fb 44b1400c bpatch patch0c_2 ,mem_patch0c 
+47fc 70461700 jam 0 ,mem_24g_attempt_fail_flag 
+47fd 20403620 call g24_transmit_next_packet 
+47fe 5fffffff setarg -1 
+47ff 67e445c6 store 8 ,mem_24g_enter_hibernate 
+4800 58000000 setarg 0 
+4801 67e3c65c store 7 ,mem_mouse_key 
+4802 70473701 jam 1 ,mem_24g_shutdown_flag 
+4803 20204821 branch keyboard_g24_long_sleep 
+
+keyboard_24g_stop:
+4804 793f8026 set0 mark_24g ,mark 
+4805 70461300 jam state_24g_stop ,mem_24g_conn_sm 
+4806 d8e00000 arg keyboard_24g_pairing_flag ,queue 
+4807 20204a29 branch keyboard_disable_function_flag 
+
+keyboard_g24_reconn_dispatch:
+4808 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+4809 1fe17ee0 and_into 0xe0 ,pdata 
+480a 203a480f branch keyboard_g24_reconn_dispatch_next ,blank 
+480b 6fe145f7 fetch 2 ,mem_24g_reconn_count 
+480c 1fe0fe01 increase 1 ,pdata 
+480d 67e145f7 store 2 ,mem_24g_reconn_count 
+480e 20600000 rtn 
+
+keyboard_g24_reconn_dispatch_next:
+480f 20403557 call g24_reconn_data_prep 
+4810 2040362a call g24_transmit_receive_ack 
+4811 242c355e nbranch g24_reconn_device_fail ,sync 
+4812 2437b55e nbranch g24_reconn_device_fail ,user3 
+4813 204068bc call hid_device_g24_ackpayload_parse 
+4814 20203540 branch g24_reconn_dispatch_next + 5 
+
+keyboard_g24_transmit_no_interrupt:
+4815 204035fd call g24_txdata_prep 
+4816 2434481a nbranch keyboard_g24_nodata_transmit ,user 
+
+keyboard_g24_transmit_start:
+4817 20404828 call keyboard_g24_transmit_process 
+4818 20404855 call keyboard_power_ctrl_start 
+4819 2020485b branch keyboard_g24_transmit_start_next 
+
+keyboard_g24_nodata_transmit:
+481a 6fe4494e fetch 8 ,mem_keyscan_value_current 
+481b 243a485b nbranch keyboard_g24_transmit_start_next ,blank 
+481c 6fe44956 fetch 8 ,mem_keyscan_value_current + 8 
+481d 243a485b nbranch keyboard_g24_transmit_start_next ,blank 
+481e 6fe2495e fetch 4 ,mem_keyscan_value_current + 16 
+481f 243a485b nbranch keyboard_g24_transmit_start_next ,blank 
+4820 2040367c call g24_search_receiver 
+
+keyboard_g24_long_sleep:
+4821 20404848 call keyboard_g24_lpm_wait 
+4822 24740000 nrtn user 
+4823 2040369e call g24_setgpio_lpm_before 
+4824 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
+4825 245a47b3 ncall keyboard_setgpio_hibernate ,blank 
+4826 6fe445c6 fetch 8 ,mem_24g_enter_hibernate 
+4827 202035fa branch g24_long_seep2 
+
+keyboard_g24_transmit_process:
+4828 44b1c00c bpatch patch0c_3 ,mem_patch0c 
+4829 70461800 jam 0 ,mem_24g_retry 
+
+keyboard_g24_transmit_loop:
+482a 69610040 fetchr timeup ,2 ,mem_param_rx_setup 
+482b 34730200 until clkn_rt ,meet 
+482c 2040362a call g24_transmit_receive_ack 
+482d 6fe0c596 fetch 1 ,mem_24g_no_ack 
+482e c000b61f beq no_ack_24g ,g24_transmit_no_ack 
+482f 242c4834 nbranch keyboard_g24_retransmit ,sync 
+4830 2437c834 nbranch keyboard_g24_retransmit ,user3 
+4831 204068bc call hid_device_g24_ackpayload_parse 
+4832 70473700 jam 0 ,mem_24g_shutdown_flag 
+4833 2020361f branch g24_transmit_no_ack 
+
+keyboard_g24_retransmit:
+4834 6fe0c619 fetch 1 ,mem_24g_abort_pac 
+4835 247a0000 nrtn blank 
+4836 6fe14615 fetch 2 ,mem_24g_txfail_cnt 
+4837 1fe0fe01 increase 1 ,pdata 
+4838 67e14615 store 2 ,mem_24g_txfail_cnt 
+4839 6fe0c615 fetch 1 ,mem_24g_txfail_cnt 
+483a c07fb64f beq 0xff ,g24_tx_attempt_fail 
+483b 6fe0c618 fetch 1 ,mem_24g_retry 
+483c 1fe0fe01 increase 1 ,pdata 
+483d 67e0c618 store 1 ,mem_24g_retry 
+483e 1fe17e03 and_into 0x03 ,pdata 
+483f 203a4841 branch keyboard_g24_tx_fast_hop ,blank 
+4840 2020482a branch keyboard_g24_transmit_loop 
+
+keyboard_g24_tx_fast_hop:
+4841 20404330 call kscan_dispatch 
+4842 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+4843 243a6c99 nbranch soft_reset_chip ,blank 
+4844 6fe0ca9b fetch 1 ,mem_keyboard_commbination_press_type 
+4845 243a361f nbranch g24_transmit_no_ack ,blank 
+4846 20403675 call g24_tx_fast_hop 
+4847 2020482a branch keyboard_g24_transmit_loop 
+
+keyboard_g24_lpm_wait:
+4848 78347c00 enable user 
+4849 204023f0 call lpo_calibration 
+484a 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+484b 203a7dbe branch disable_user ,blank 
+484c 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
+484d 243a7dbe nbranch disable_user ,blank 
+484e 6fe0ca7b fetch 1 ,mem_keyboard_control_key_flag 
+484f 243a7dbe nbranch disable_user ,blank 
+4850 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+4851 243a7dbe nbranch disable_user ,blank 
+4852 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
+4853 c000fdbe beq g24_tx_timer_int_enable ,disable_user 
+4854 20203699 branch g24_lpm_wait + 5 
+
+keyboard_power_ctrl_start:
+4855 6fe245a6 fetch 4 ,mem_24g_addr 
+4856 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
+4857 98467c00 isub temp ,null 
+4858 2422b6c9 nbranch power_ctrl_start + 1 ,zero 
+4859 704141aa jam tx_power_factory ,mem_tx_power 
+485a 20600000 rtn 
+
+keyboard_g24_transmit_start_next:
+485b 6fe44622 fetch 8 ,mem_24g_long_sleep_set 
+485c 67e445c6 store 8 ,mem_24g_enter_hibernate 
+485d 6fe14634 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+485e 67e14636 store 2 ,mem_24g_long_sleep_param_update_timer 
+
+keyboard_g24_short_sleep:
+485f 44b2400c bpatch patch0c_4 ,mem_patch0c 
+4860 20404848 call keyboard_g24_lpm_wait 
+4861 202035f0 branch g24_short_sleep + 2 
+
+keyboard_24g_package_data:
+4862 c6930000 rtnmark0 mark_24g 
+4863 2040469d call keyboard_motion 
+4864 24740000 nrtn user 
+4865 6fe0c72b fetch 1 ,mem_customer_key 
+4866 243a4868 nbranch keyboard_24g_keyboard_package_data ,blank 
+4867 202059c7 branch mouse_24g_mouse_package_data 
+
+keyboard_24g_keyboard_package_data:
+4868 7045a002 jam type_kb ,mem_24g_data_type 
+4869 6fe0c721 fetch 1 ,mem_customer_key_press 
+486a c004486d beq hid_reportid_n_key_rollover ,keyboard_24g_keyboard_package_n_key_rollover_data 
+486b da20000a arg 10 ,rega 
+486c 20206852 branch hid_device_24g_keyboard_package_data_set 
+
+keyboard_24g_keyboard_package_n_key_rollover_data:
+486d 67e0c9b8 store 1 ,mem_keyboard_n_key_rollover_data 
+486e da20000f arg 15 ,rega 
+486f da4049b8 arg mem_keyboard_n_key_rollover_data ,regb 
+4870 20600000 rtn 
+
+keyboard_24g_search_dongle:
+4871 44b2c00c bpatch patch0c_5 ,mem_patch0c 
+4872 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4873 c40a8000 rtnbit0 keyboard_enable_24g_search_dongle 
+4874 20206888 branch hid_device_24g_search_dongle 
+
+keyboard_le:
+4875 44b3400c bpatch patch0c_6 ,mem_patch0c 
+4876 20402a06 call le_fifo_check_nearly_full 
+4877 247a0000 nrtn blank 
+4878 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+4879 c07fc87d beq 0xff ,keyboard_le_next 
+487a 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
+487b 1fe17e03 and pdata ,0x03 ,pdata 
+487c c1818000 rtnne 0x03 
+
+keyboard_le_next:
+487d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+487e c2806824 bbit1 keyboard_24g_pairing_flag ,hid_device_le_send_empty_packet 
+487f c281e824 bbit1 keyboard_bt_discovery_button_down_flag ,hid_device_le_send_empty_packet 
+4880 c2826824 bbit1 keyboard_bt_discovery_button_long_down_flag ,hid_device_le_send_empty_packet 
+4881 2040469d call keyboard_motion 
+4882 24740000 nrtn user 
+4883 20404fd1 call mouse_wheel_trigger 
+4884 2020683c branch hid_device_send_package_data_check 
+
+keyboard_le_fill_n_key_rollover_key_data:
+4885 7047730e jam 14 ,mem_le_data_len 
+4886 6849439f fetcht 2 ,mem_le_notify_handle 
+4887 6fe0c773 fetch 1 ,mem_le_data_len 
+4888 1fe22200 copy pdata ,rega 
+4889 20402dcc call le_att_malloc_tx_notify 
+488a 6848c773 fetcht 1 ,mem_le_data_len 
+488b 18427200 copy temp ,loopcnt 
+488c d8c049b9 arg mem_keyboard_n_key_rollover_data + 1 ,contr 
+488d 20207cdc branch memcpy 
+
+keyboard_le_fill_standard_key_data:
+488e 70477309 jam 9 ,mem_le_data_len 
+488f 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4890 c2916831 bbit1 keyboard_enable_magic_keyboard ,keyoard_le_fill_standard_key_data_send 
+4891 70477308 jam 8 ,mem_le_data_len 
+4892 20206831 branch keyoard_le_fill_standard_key_data_send 
+
+keyboard_le_bb_event_connected:
+4893 204041c9 call keyboard_load_rgb 
+4894 70473d00 jam 0 ,mem_mouse_long_mult_flag 
+4895 70475301 jam 1 ,mem_device_le_bb_connected_flag 
+4896 20405960 call mouse_24g_first_store_reconn_info 
+4897 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
+4898 243a489a nbranch keyboard_le_bb_event_connected_next ,blank 
+4899 70475514 jam 0x14 ,mem_device_send_secutiry_request_timer 
+
+keyboard_le_bb_event_connected_next:
+489a 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+489b 793ffe00 set0 app_disc_by_button ,pdata 
+489c 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+489d 70472000 jam 0 ,mem_device_direct_timer 
+489e 6fe1477d fetch 2 ,mem_le_battery_level_updata_timer_init 
+489f 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+48a0 20405535 call mouse_no_data_timer_init 
+48a1 202048e9 branch keyboard_stop_discovery 
+
+keyboard_le_bb_disconnected:
+48a2 58000000 setarg 0 
+48a3 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+48a4 67e0c90c store 1 ,mem_keyboard_le_send_conn_param_update 
+48a5 67e0c90d store 1 ,mem_keyboard_le_send_conn_param_update_timer 
+48a6 67e0c753 store 1 ,mem_device_le_bb_connected_flag 
+
+keyboard_le_bb_disconnected_next:
+48a7 70478100 jam le_lpm_enable ,mem_le_conn_param_reject 
+48a8 204029aa call le_clr_config_more_data 
+48a9 70429c00 jam 0 ,mem_ltk_exists 
+48aa 202048ab branch keyboard_bb_disconnected 
+
+keyboard_bb_disconnected:
+48ab 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+48ac c283c8af bbit1 app_disc_ble ,keyboard_le_event_bb_disconn 
+48ad c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+48ae 202048c5 branch keyboard_start_discovery 
+
+keyboard_le_event_bb_disconn:
+48af 70488200 jam 0 ,mem_le_connect_status_flag 
+48b0 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+48b1 c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+48b2 202047af branch keyboard_power_down 
+
+keyboard_le_ll_start_encryt:
+48b3 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
+48b4 c000c8b8 beq 1 ,keyboard_le_ll_reconn_start_encryt 
+48b5 70488314 jam 20 ,mem_le_start_encrypt_timer 
+48b6 70490e05 jam 5 ,mem_le_start_auto_reco_timer 
+48b7 2020540f branch mouse_le_ll_enable_start_enc_flag 
+
+keyboard_le_ll_reconn_start_encryt:
+48b8 20405408 call mouse_updata_le_param 
+48b9 70488305 jam 5 ,mem_le_start_encrypt_timer 
+48ba 2020540f branch mouse_le_ll_enable_start_enc_flag 
+
+keyboard_le_conn_param_update_rsp_recieved:
+48bb 6fe0c90c fetch 1 ,mem_keyboard_le_send_conn_param_update 
+48bc 247a0000 nrtn blank 
+48bd 70490c01 jam 1 ,mem_keyboard_le_send_conn_param_update 
+48be 70490d1e jam 30 ,mem_keyboard_le_send_conn_param_update_timer 
+48bf 20600000 rtn 
+
+keyboard_bb_event_discovery_btn:
+48c0 280ffe26 isolate1 mark_24g ,mark 
+48c1 2040c804 call keyboard_24g_stop ,true 
+48c2 204053c6 call mouse_disconnect 
+48c3 70488200 jam 0 ,mem_le_connect_status_flag 
+48c4 202048c5 branch keyboard_start_discovery 
+
+keyboard_start_discovery:
+48c5 44b3c00c bpatch patch0c_7 ,mem_patch0c 
+48c6 20404163 call keyboard_device_led_all_off + 2 
+48c7 58000000 setarg 0 
+48c8 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+48c9 67e14aa3 store 2 ,mem_otp_store_device_info_flag 
+48ca 704aa1ff jam 0xff ,mem_kb_computer_system 
+48cb 6fe14500 fetch 2 ,mem_ui_state_map 
+48cc 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+48cd 2040d565 call mouse_stop_le_adv ,true 
+48ce 204053c1 call mouse_bluetooth_fast_conn_disable 
+48cf 6fe14500 fetch 2 ,mem_ui_state_map 
+48d0 c285c8d9 bbit1 ui_state_ble_adv ,keyboard_start_discovery_norandom 
+48d1 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+48d2 c30c48d9 bbit0 keyboard_enable_ble_random_addre ,keyboard_start_discovery_norandom 
+48d3 684946a7 fetcht 2 ,mem_random_addr_increase_count 
+48d4 18408401 increase 1 ,temp 
+48d5 604946a7 storet 2 ,mem_random_addr_increase_count 
+48d6 604942de storet 2 ,mem_le_lap + 1 
+48d7 180a7e00 random pdata 
+48d8 67e0c2dd store 1 ,mem_le_lap 
+
+keyboard_start_discovery_norandom:
+48d9 6fe1c756 fetch 3 ,mem_device_le_lap_temp 
+48da 67e1c2e0 store 3 ,mem_le_lap + 3 
+48db 204037a2 call app_lpm_mult_disable 
+48dc 6fe1464f fetch 2 ,mem_device_discovery_timeout 
+48dd 67e14750 store 2 ,mem_device_discovery_timer 
+48de 58000000 setarg 0 
+48df 67e14741 store 2 ,mem_device_no_data_timer 
+48e0 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+48e1 67e0c720 store 1 ,mem_device_direct_timer 
+48e2 d8e00001 arg keyboard_store_memory_flag ,queue 
+48e3 20404a25 call keyboard_enable_function_flag 
+48e4 20404a2f call keyboard_bt_discovery_button_down_disable 
+48e5 20205455 branch mouse_check_51cmd_adv 
+
+keyboard_stop_bluetooth_mode:
+48e6 6fe14500 fetch 2 ,mem_ui_state_map 
+48e7 c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+48e8 202048e9 branch keyboard_stop_discovery 
+
+keyboard_stop_discovery:
+48e9 44b4400d bpatch patch0d_0 ,mem_patch0d 
+48ea 58000000 setarg 0 
+48eb 67e14750 store 2 ,mem_device_discovery_timer 
+48ec d8e00004 arg keyboard_bt_discovery_button_long_down_flag ,queue 
+48ed 20404a29 call keyboard_disable_function_flag 
+48ee 20405565 call mouse_stop_le_adv 
+48ef 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+48f0 203a4163 branch keyboard_device_led_all_off + 2 ,blank 
+48f1 20600000 rtn 
+
+keyboard_store_remote_bdaddr:
+48f2 44b4c00d bpatch patch0d_1 ,mem_patch0d 
+48f3 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+48f4 c4008000 rtnbit0 keyboard_store_memory_flag 
+48f5 d8e00001 arg keyboard_store_memory_flag ,queue 
+48f6 20404a29 call keyboard_disable_function_flag 
+48f7 204067e4 call hid_device_check_device_addr 
+48f8 204067c1 call hid_device_before_store_reconn_info 
+48f9 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+48fa 79207e01 set1 keyboard_store_eepromm_flag_ble_addr ,pdata 
+48fb 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+48fc 202044b9 branch keyboard_store_device_info_delay 
+
+keyboard_le_send_att_find_by_type_value_request_ancs:
+48fd 7048fe01 jam 1 ,mem_le_connect_ios_mac_flag 
+48fe da200017 arg 23 ,rega 
+48ff da400004 arg le_l2cap_cid_att ,regb 
+4900 204029d9 call le_fifo_malloc_tx_l2cap 
+4901 58000006 setarg attop_find_by_type_value_request 
+4902 e7e08005 istore 1 ,contw 
+4903 58000001 setarg 0x0001 
+4904 e7e10005 istore 2 ,contw 
+4905 5800ffff setarg 0xffff 
+4906 e7e10005 istore 2 ,contw 
+4907 58002800 setarg 0x2800 
+4908 e7e10005 istore 2 ,contw 
+4909 d8c048ee arg mem_le_search_service_uuid ,contr 
+490a 20207c91 branch memcpy16 
+
+keyboard_le_parse_att:
+490b 44b5400d bpatch patch0d_2 ,mem_patch0d 
+490c 1a220c00 copy rega ,contr 
+490d efe18006 ifetch 3 ,contr 
+490e 67e1c39b store 3 ,mem_le_att_opcode 
+490f c000c919 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+4910 c003c95c beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+4911 c004c938 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+4912 c005c952 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+4913 c0044971 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+4914 c0064986 beq attop_read_blob_request ,keyboard_le_parse_att_read_blob_request 
+4915 c005499f beq attop_read_request ,keyboard_le_parse_att_read_request 
+4916 c00949c5 beq attop_write_request ,keyboard_le_parse_att_write_request 
+4917 c02949cb beq attop_write_command ,keyboard_le_parse_att_write_command 
+4918 20202b76 branch le_parse_att2 
+
+keyboard_le_send_att_find_by_type_value_request_mac:
+4919 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
+491a 207a0000 rtn blank 
+491b 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
+491c c0014962 beq 2 ,keyboard_le_parse_att_not_find_mac_report 
+491d 7048fe02 jam 2 ,mem_le_connect_ios_mac_flag 
+491e da200009 arg 9 ,rega 
+491f da400004 arg le_l2cap_cid_att ,regb 
+4920 204029d9 call le_fifo_malloc_tx_l2cap 
+4921 58000006 setarg attop_find_by_type_value_request 
+4922 e7e08005 istore 1 ,contw 
+4923 58000001 setarg 0x0001 
+4924 e7e10005 istore 2 ,contw 
+4925 5800ffff setarg 0xffff 
+4926 e7e10005 istore 2 ,contw 
+4927 58002800 setarg 0x2800 
+4928 e7e10005 istore 2 ,contw 
+4929 df200002 arg 2 ,loopcnt 
+492a d8c048ff arg mem_le_search_mac_uuid ,contr 
+492b 20207cdc branch memcpy 
+
+keyboard_le_parse_att_find_by_type_value_rsp_mac:
+492c da200007 arg 7 ,rega 
+492d da400004 arg le_l2cap_cid_att ,regb 
+492e 204029d9 call le_fifo_malloc_tx_l2cap 
+492f 58000008 setarg attop_read_by_type_request 
+4930 e7e08005 istore 1 ,contw 
+4931 6849433b fetcht 2 ,mem_le_payload_ptr 
+4932 18408405 increase 5 ,temp 
+4933 efe20002 ifetch 4 ,temp 
+4934 e7e20005 istore 4 ,contw 
+4935 58002803 setarg 0x2803 
+4936 e7e10005 istore 2 ,contw 
+4937 20600000 rtn 
+
+keyboard_le_send_att_read_by_type_rsp_mac:
+4938 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
+4939 207a0000 rtn blank 
+493a 6fe14337 fetch 2 ,mem_le_l2cap_size 
+493b 1fe0fffe increase -2 ,pdata 
+493c 1fe6fc07 div pdata ,7 
+493d 20407d64 call wait_div_end 
+493e 1807f200 quotient loopcnt 
+493f 6fe1433b fetch 2 ,mem_le_payload_ptr 
+4940 1fe08c06 add pdata ,6 ,contr 
+
+keyboard_le_check_att_read_type_manu_loop:
+4941 18c08c03 increase 3 ,contr 
+4942 efe10006 ifetch 2 ,contr 
+4943 1fe22600 copy pdata ,regc 
+4944 efe10006 ifetch 2 ,contr 
+4945 d8402a29 arg 0x2a29 ,temp 
+4946 98467c00 isub temp ,null 
+4947 2022c94a branch keyboard_le_send_att_read_by_type_rsp_manufactory ,zero 
+4948 c2004941 loop keyboard_le_check_att_read_type_manu_loop 
+4949 20204962 branch keyboard_le_parse_att_not_find_mac_report 
+
+keyboard_le_send_att_read_by_type_rsp_manufactory:
+494a da200003 arg 3 ,rega 
+494b da400004 arg le_l2cap_cid_att ,regb 
+494c 204029d9 call le_fifo_malloc_tx_l2cap 
+494d 5800000a setarg attop_read_request 
+494e e7e08005 istore 1 ,contw 
+494f 1a627e00 copy regc ,pdata 
+4950 e7e10005 istore 2 ,contw 
+4951 20600000 rtn 
+
+keyboard_le_parse_att_manu_resp:
+4952 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
+4953 207a0000 rtn blank 
+4954 6fe14337 fetch 2 ,mem_le_l2cap_size 
+4955 df200009 arg 9 ,loopcnt 
+4956 6fe1433b fetch 2 ,mem_le_payload_ptr 
+4957 1fe0a205 add pdata ,5 ,rega 
+4958 da404901 arg mem_le_search_mac_manu_name ,regb 
+4959 20407d66 call string_compare 
+495a 2022c965 branch keyboard_le_parse_att_find_mac_report ,zero 
+495b 20204962 branch keyboard_le_parse_att_not_find_mac_report 
+
+keyboard_le_parse_att_find_by_type_value_rsp:
+495c 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
+495d 207a0000 rtn blank 
+495e 6fe0c8fe fetch 1 ,mem_le_connect_ios_mac_flag 
+495f c001492c beq 2 ,keyboard_le_parse_att_find_by_type_value_rsp_mac 
+
+keyboard_le_parse_att_find_ios_report:
+4960 704aa102 jam system_os_ios ,mem_kb_computer_system 
+4961 20204966 branch keyboard_store_computer_system_ble 
+
+keyboard_le_parse_att_not_find_mac_report:
+4962 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
+4963 67e0caa1 store 1 ,mem_kb_computer_system 
+4964 20204966 branch keyboard_store_computer_system_ble 
+
+keyboard_le_parse_att_find_mac_report:
+4965 704aa103 jam system_os_mac ,mem_kb_computer_system 
+
+keyboard_store_computer_system_ble:
+4966 7048fe00 jam 0 ,mem_le_connect_ios_mac_flag 
+4967 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4968 c307c96d bbit0 keyboard_enable_otp ,keyboard_store_computer_system_info 
+4969 704aa401 jam 1 ,mem_otp_store_system_flag 
+496a 6fe0caa3 fetch 1 ,mem_otp_store_device_info_flag 
+496b 207a0000 rtn blank 
+496c 20203fee branch keyboard_wirte_otp_ble 
+
+keyboard_store_computer_system_info:
+496d 6fe0caa2 fetch 1 ,mem_keyboard_device_info_store_flag 
+496e 79207e04 set1 keyboard_store_eepromm_flag_computer_system ,pdata 
+496f 67e0caa2 store 1 ,mem_keyboard_device_info_store_flag 
+4970 202044b9 branch keyboard_store_device_info_delay 
+
+keyboard_le_parse_att_read_by_type_request:
+4971 20402e1f call le_get_search_handle_start_end_common 
+4972 20402e28 call le_get_search_att_type 
+
+keyboard_le_send_att_read_by_type_response:
+4973 6849068f fetcht 2 ,mem_le_search_handle_start 
+4974 60490656 storet 2 ,mem_temp 
+4975 20402ca5 call le_init_attlist_search 
+4976 20402cb0 call le_att_get_handle_ptr2 
+4977 18c08dfe increase -2 ,contr 
+4978 18c27e00 copy contr ,pdata 
+4979 67e106a5 store 2 ,mem_le_cur_attlist_start_ptr 
+497a 68490694 fetcht 2 ,mem_le_search_att_type 
+497b 58002a50 setarg uuid_chrctr_pnp_id 
+497c 98467c00 isub temp ,null 
+497d 2022c97f branch keyboard_le_send_att_read_by_type_res_pnp_id ,zero 
+497e 20202c2d branch le_send_att_read_by_type_response + 8 
+
+keyboard_le_send_att_read_by_type_res_pnp_id:
+497f 6fe0c8ce fetch 1 ,mem_keyboard_le_change_vid_pid_flag 
+4980 203a2c2d branch le_send_att_read_by_type_response + 8 ,blank 
+4981 20402cbe call le_att_get_uuid_ptr 
+4982 203a2de1 branch le_send_att_error_response_notfound ,blank 
+4983 d8c048cf arg mem_keyboard_le_change_vid_pid_flag + 1 ,contr 
+4984 18007e0b force 11 ,pdata 
+4985 20202c83 branch le_send_att_read_by_type_res_not_characteristic + 9 
+
+keyboard_le_parse_att_read_blob_request:
+4986 efe10006 ifetch 2 ,contr 
+4987 67e10693 store 2 ,mem_le_att_offset 
+4988 98002200 iforce rega 
+4989 6849439c fetcht 2 ,mem_le_att_handle 
+498a 6fe14334 fetch 2 ,mem_le_pairing_handle 
+498b 98467c00 isub temp ,null 
+498c 2422ad2e nbranch le_send_att_read_blob_response ,zero 
+498d 6fe10693 fetch 2 ,mem_le_att_offset 
+498e 1fe67c42 sub pdata ,66 ,null 
+498f 2422c999 nbranch keyboard_le_send_att_read_blob_response ,zero 
+4990 58000017 setarg 23 
+4991 1fe22200 copy pdata ,rega 
+4992 1fe22600 copy pdata ,regc 
+4993 20402dee call le_fifo_malloc_tx_l2cap_gatt 
+4994 5800000d setarg attop_read_blob_response 
+4995 e7e08005 istore 1 ,contw 
+4996 d8c048d8 arg mem_keyboard_blob_response_consumer_customize ,contr 
+4997 1a60f3ff add regc ,-1 ,loopcnt 
+4998 20207cce branch memcpy_fast 
+
+keyboard_le_send_att_read_blob_response:
+4999 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+499a c291ad2e bbit1 keyboard_enable_mouse ,le_send_att_read_blob_response 
+499b 6fe148d6 fetch 2 ,mem_keyboard_le_hid_map 
+499c 1fe20c00 copy pdata ,contr 
+499d efe10006 ifetch 2 ,contr 
+499e 20202d31 branch le_send_att_read_blob_response + 3 
+
+keyboard_le_parse_att_read_request:
+499f 6849439c fetcht 2 ,mem_le_att_handle 
+49a0 6fe0c323 fetch 1 ,mem_le_configuration 
+49a1 c281c9bf bbit1 bit_ble_read_auth ,keyboard_le_send_att_read_response_check_auth 
+
+keyboard_le_send_att_read_response:
+49a2 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+49a3 c305c9a5 bbit0 keyboard_enable_adc ,keyboard_le_send_att_read_response + 3 
+49a4 c30cc9a7 bbit0 keyboard_enable_le_battery_service_cancel ,keyboard_le_send_att_read_response_next 
+49a5 6fe1439c fetch 2 ,mem_le_att_handle 
+49a6 c0182de1 beq 0x30 ,le_send_att_error_response_notfound 
+
+keyboard_le_send_att_read_response_next:
+49a7 6fe1439c fetch 2 ,mem_le_att_handle 
+49a8 c002c9b7 beq 0x05 ,keyboard_le_send_att_appearance 
+49a9 c00849ba beq 0x10 ,keyboard_le_send_att_pnp_id 
+
+keyboard_le_send_att_read_response_next_1:
+49aa 6849439c fetcht 2 ,mem_le_att_handle 
+49ab 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+49ac c291acfb bbit1 keyboard_enable_mouse ,le_send_att_read_response 
+49ad 6fe14334 fetch 2 ,mem_le_pairing_handle 
+49ae 98467c00 isub temp ,null 
+49af 2422acfb nbranch le_send_att_read_response ,zero 
+49b0 20402e24 call le_get_search_max_mtu_data 
+49b1 684948d6 fetcht 2 ,mem_keyboard_le_hid_map 
+49b2 18420c00 copy temp ,contr 
+49b3 e8410006 ifetcht 2 ,contr 
+49b4 18408401 increase 1 ,temp 
+49b5 20407db2 call not_greater_than 
+49b6 20202d0b branch le_send_att_read_response_less 
+
+keyboard_le_send_att_appearance:
+49b7 d8c0490a arg mem_keybord_appearance ,contr 
+49b8 18007e03 force 3 ,pdata 
+49b9 20202d0b branch le_send_att_read_response_less 
+
+keyboard_le_send_att_pnp_id:
+49ba 6fe0c8ce fetch 1 ,mem_keyboard_le_change_vid_pid_flag 
+49bb 203a49aa branch keyboard_le_send_att_read_response_next_1 ,blank 
+49bc d8c048cf arg mem_keyboard_le_change_vid_pid_flag + 1 ,contr 
+49bd 18007e08 force 8 ,pdata 
+49be 20202d0b branch le_send_att_read_response_less 
+
+keyboard_le_send_att_read_response_check_auth:
+49bf 6fe14334 fetch 2 ,mem_le_pairing_handle 
+49c0 98467c00 isub temp ,null 
+49c1 2422c9a2 nbranch keyboard_le_send_att_read_response ,zero 
+49c2 20402da5 call le_check_encrypt_state 
+49c3 243449a7 nbranch keyboard_le_send_att_read_response_next ,user 
+49c4 20202d24 branch le_send_att_read_response_error_insufficient_auth 
+
+keyboard_le_parse_att_write_request:
+49c5 18c22200 copy contr ,rega 
+49c6 6fe14337 fetch 2 ,mem_le_l2cap_size 
+49c7 1fe0a5fd add pdata ,-3 ,regb 
+49c8 20402908 call le_writeatt_cb 
+49c9 204049cc call keyboard_le_parse_att_write_command + 1 
+49ca 20206878 branch hid_device_le_parse_att_write_request 
+
+keyboard_le_parse_att_write_command:
+49cb 20402dc8 call le_parse_att_write_command 
+49cc 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+49cd c07fc9d1 beq 0xff ,keyboard_le_fast_conn_led_get 
+49ce 6fe1439c fetch 2 ,mem_le_att_handle 
+49cf c012c9d4 beq 0x25 ,keyboard_le_led_get 
+49d0 20600000 rtn 
+
+keyboard_le_fast_conn_led_get:
+49d1 6fe1439c fetch 2 ,mem_le_att_handle 
+49d2 c010c9d4 beq 0x21 ,keyboard_le_led_get 
+49d3 20600000 rtn 
+
+keyboard_le_led_get:
+49d4 6fe08055 fetch 1 ,mem_le_rxbuf + 9 
+49d5 67e0c70d store 1 ,mem_keyboard_led_status 
+49d6 20600000 rtn 
+
+keyboard_usb_mode_start:
+49d7 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+49d8 c4060000 rtnbit0 mouse_enable_usb 
+49d9 204049db call keyboard_usb_check_enable 
+49da 202049ec branch keyboard_usb_interface_check_power_on 
+
+keyboard_usb_check_enable:
+49db 6fe4cad1 fetch 9 ,mem_keyboard_usb_vid_pid 
+49dc 67e4883a store 9 ,mem_usb_vid_pid 
+49dd 580049e1 setarg keyboard_usb_config_param 
+49de 67e10837 store 2 ,mem_cb_usb_config 
+49df 704ace5a jam usb_interface_insert ,mem_usb_vdd_status_current 
+49e0 20600000 rtn 
+
+keyboard_usb_config_param:
+49e1 7046775a jam dongle_kb_bind_success ,mem_usb_keyboard_flag 
+49e2 70083901 jam 0x01 ,mem_usb_tx_interval 
+49e3 20407956 call usb_tx_interval_config 
+49e4 204049e7 call keyboard_usb_vid_pid_config 
+49e5 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
+49e6 20203d2a branch dongle_usb_hid_icon_config + 1 
+
+keyboard_usb_vid_pid_config:
+49e7 6fe0883a fetch 1 ,mem_usb_vid_pid 
+49e8 207a0000 rtn blank 
+49e9 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
+49ea c02d3d27 beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+49eb 20203d24 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
+
+keyboard_usb_interface_check_power_on:
+49ec 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
+49ed c02d49f1 beq usb_interface_insert ,keyboard_usb_insert 
+
+keyboard_usb_vdd_status_store:
+49ee 6fe0cace fetch 1 ,mem_usb_vdd_status_current 
+49ef 67e0cacf store 1 ,mem_usb_vdd_status_last 
+49f0 20600000 rtn 
+
+keyboard_usb_insert:
+49f1 204049ee call keyboard_usb_vdd_status_store 
+49f2 58000000 setarg 0 
+49f3 67e145ef store 2 ,mem_24g_pair_timeout 
+49f4 67e145f5 store 2 ,mem_24g_reconn_timeout 
+49f5 70409400 jam 0 ,mem_lpm_mode 
+49f6 6fe0cad0 fetch 1 ,mem_usb_wait_updata_timer 
+49f7 205a7902 call usb_init ,blank 
+49f8 704ad032 jam 50 ,mem_usb_wait_updata_timer 
+49f9 20600000 rtn 
+
+keyboard_usb_isr:
+49fa 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+49fb c4120000 rtnbit0 keyboard_enable_usb 
+49fc 6fe0c678 fetch 1 ,mem_device_flag 
+49fd c1820000 rtnne mode_usb_device 
+49fe 202078f6 branch usb_isr 
+
+keyboard_usb_mode:
+49ff 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4a00 c4120000 rtnbit0 keyboard_enable_usb 
+4a01 6fe0c678 fetch 1 ,mem_device_flag 
+4a02 c1820000 rtnne mode_usb_device 
+4a03 6ff08c01 fetch 1 ,core_usb_addr 
+4a04 67e0c675 store 1 ,mem_usb_addr 
+4a05 c4038000 rtnbit0 7 
+4a06 704ad000 jam 0 ,mem_usb_wait_updata_timer 
+4a07 58000000 setarg 0 
+4a08 67e14741 store 2 ,mem_device_no_data_timer 
+4a09 20404804 call keyboard_24g_stop 
+4a0a 204048e6 call keyboard_stop_bluetooth_mode 
+4a0b 2040469d call keyboard_motion 
+4a0c 24740000 nrtn user 
+4a0d 6fe0c72b fetch 1 ,mem_customer_key 
+4a0e c000e85b beq 1 ,hid_device_push_keyboard_data_to_usb 
+4a0f 20206856 branch hid_device_push_mouse_data_to_usb 
+
+keyboard_usb_tx_kb_normal_data:
+4a10 7008e900 jam 0 ,mem_usb_ep1_data 
+4a11 df200009 arg 9 ,loopcnt 
+4a12 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4a13 c2917c24 bbit1 keyboard_enable_magic_keyboard ,usb_tx_kb_normal_data + 4 
+4a14 20207c22 branch usb_tx_kb_normal_data + 2 
+
+keyboard_push_n_key_rollover_key_data_to_usb:
+4a15 20403d53 call dongle_usb_tx_enable_ep2 
+4a16 7008ea24 jam usb_ep2_n_key_rollover ,mem_usb_ep2_data 
+4a17 58000008 setarg kb_n_key_rollover_report_id 
+4a18 67e08911 store 1 ,mem_usb_kb_n_key_rollvoer_data 
+4a19 d8c049b9 arg mem_keyboard_n_key_rollover_data + 1 ,contr 
+4a1a d8a00912 arg mem_usb_kb_n_key_rollvoer_data + 1 ,contw 
+4a1b df20000e arg 14 ,loopcnt 
+4a1c 20207cdc branch memcpy 
+
+keyboard_ui_ipc_send_event:
+4a1d 6fe0864d fetch 1 ,mem_fifo_temp 
+4a1e df200008 arg 8 ,loopcnt 
+4a1f d8c044ea arg mem_ipc_fifo_bt2c51 ,contr 
+
+ui_ipc_fifo_check:
+4a20 e8408006 ifetcht 1 ,contr 
+4a21 98467c00 isub temp ,null 
+4a22 20628000 rtn zero 
+4a23 c2004a20 loop ui_ipc_fifo_check 
+4a24 2020781c branch ui_ipc_send_event + 3 
+
+keyboard_enable_function_flag:
+4a25 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4a26 f9207e00 qset1 pdata 
+4a27 67e4488e store keyboard_flag_len ,mem_keyboard_flag 
+4a28 20600000 rtn 
+
+keyboard_disable_function_flag:
+4a29 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+4a2a f93ffe00 qset0 pdata 
+4a2b 67e4488e store keyboard_flag_len ,mem_keyboard_flag 
+4a2c 20600000 rtn 
+
+keyboard_bt_discovery_button_down_enable:
+4a2d d8e00003 arg keyboard_bt_discovery_button_down_flag ,queue 
+4a2e 20204a25 branch keyboard_enable_function_flag 
+
+keyboard_bt_discovery_button_down_disable:
+4a2f d8e00003 arg keyboard_bt_discovery_button_down_flag ,queue 
+4a30 20204a29 branch keyboard_disable_function_flag 
+
+module_init:
+4a31 2035ca43 branch module_lpm_uart_init ,wake 
+4a32 20402931 call le_modified_name 
+4a33 58004a5e setarg module_process_idle 
+4a34 67e143e4 store 2 ,mem_cb_idle_process 
+4a35 58004a61 setarg module_process_bb_event 
+4a36 67e143e6 store 2 ,mem_cb_bb_event_process 
+4a37 58004a5a setarg module_lpm_lock 
+4a38 67e143dc store 2 ,mem_cb_check_wakelock 
+4a39 58004b0a setarg module_hci_cmd_transmit_le_notify 
+4a3a 67e143ea store 2 ,mem_cb_ble_transmit 
+4a3b 58004ce1 setarg module_le_receive_data 
+4a3c 67e143e8 store 2 ,mem_cb_att_write 
+4a3d 58004cf2 setarg module_bb_event_timer 
+4a3e 67e143ec store 2 ,mem_cb_event_timer 
+4a3f 44b6400d bpatch patch0d_4 ,mem_patch0d 
+4a40 20404a43 call module_lpm_uart_init 
+4a41 20404a55 call module_gpio_init 
+4a42 20204c6c branch module_hci_event_enter_standby_mode 
+
+module_lpm_uart_init:
+4a43 6ff08060 fetch 1 ,core_uart_ctrl 
+4a44 793ffe00 set0 bit_uart_control_enable ,pdata 
+4a45 67f08060 store 1 ,core_uart_ctrl 
+4a46 6fe44517 fetch 8 ,mem_module_uart_rx_buffer 
+4a47 20406d5b call uarta_init_dma_mem 
+4a48 6fe1451f fetch uart_baud_len ,mem_module_uarta_baud_rate 
+4a49 20406d66 call uarta_init_baud_rate 
+4a4a 20406d75 call uart_clock_select_main_freq_crystal 
+4a4b 70807708 jam gpcfg_uart_txd ,core_gpio_conf + hci_uart_tx_gpio_num 
+4a4c 70807649 jam gpcfg_uart_rxd | gpcfg_pullup ,core_gpio_conf + hci_uart_rx_gpio_num 
+4a4d 7080790a jam gpcfg_uart_rts ,core_gpio_conf + hci_uart_rts_gpio_num 
+4a4e 70807a0b jam gpcfg_uart_cts ,core_gpio_conf + hci_uart_cts_gpio_num 
+4a4f d8400081 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+4a50 6fe14526 fetch 2 ,mem_module_flag 
+4a51 2feffe00 isolate1 module_flag_uart_flow_control ,pdata 
+4a52 79208404 setflag true ,bit_uart_control_flow_control ,temp 
+4a53 60588060 storet 1 ,core_uart_ctrl 
+4a54 20600000 rtn 
+
+module_gpio_init:
+4a55 6848c50c fetcht 1 ,mem_module_connect_state_gpio 
+4a56 20406ef1 call gpio_config_output 
+4a57 20404a84 call module_set_conn_pin_low 
+4a58 6848c50a fetcht 1 ,mem_module_wake_up_gpio 
+4a59 20206ed7 branch gpio_config_input 
+
+module_lpm_lock:
+4a5a 6848c50a fetcht 1 ,mem_module_wake_up_gpio 
+4a5b 20406ee0 call gpio_get_bit 
+4a5c 2420b77f nbranch app_put_lpm_wake_lock ,true 
+4a5d 2020377d branch app_get_lpm_wake_lock 
+
+module_process_idle:
+4a5e 20406935 call l2cap_malloc_is_fifo_full 
+4a5f 247a0000 nrtn blank 
+4a60 20204a86 branch module_process_check_hci_command_complete 
+
+module_process_bb_event:
+4a61 1a627e00 copy regc ,pdata 
+4a62 c00a4a73 beq bt_evt_le_connected ,module_process_le_conn 
+4a63 c00aca6f beq bt_evt_le_disconnected ,module_process_bb_even_le_disconn 
+4a64 c0184ca6 beq bt_evt_le_pairing_fail ,module_hci_event_le_pairing_fail 
+4a65 c018cca8 beq bt_evt_le_pairing_success ,module_hci_event_le_pairing_success 
+4a66 c0194cb2 beq bt_evt_le_start_enc ,module_hci_event_start_enc 
+4a67 c019ccb0 beq bt_evt_le_pause_enc ,module_hci_event_pause_enc 
+4a68 c01a4ca0 beq bt_evt_le_tk_generate ,module_hci_event_le_tk 
+4a69 c01ecc80 beq bt_evt_store_nvram ,module_hci_event_store_device 
+4a6a c020ca79 beq bt_evt_le_ltk_lost ,module_process_ble_ltk_lost 
+4a6b c0214a7b beq bt_evt_le_update_phy ,module_process_ble_update_phy 
+4a6c c021cc9e beq bt_evt_le_get_passkey ,module_hci_event_passkey_entry_mode 
+4a6d c01dcc89 beq bt_evt_le_gkey_generate ,module_hci_event_gkey_generate 
+4a6e 20600000 rtn 
+
+module_process_bb_even_le_disconn:
+4a6f 204029aa call le_clr_config_more_data 
+4a70 70452800 jam 0 ,mem_module_hci_notify_len 
+4a71 20404a77 call module_disconn_start 
+4a72 20204c52 branch module_hci_event_le_disconnect 
+
+module_process_le_conn:
+4a73 20404a7e call module_conn_start 
+4a74 6fe0c515 fetch 1 ,mem_module_le_lpm_mult 
+4a75 67e0c0c0 store 1 ,mem_lpm_mult 
+4a76 20204c50 branch module_hci_event_le_connect 
+
+module_disconn_start:
+4a77 20404ad3 call module_start_adv_discovery_by_command 
+4a78 20204a7c branch module_set_conn_pin_high 
+
+module_process_ble_ltk_lost:
+4a79 204030d1 call le_send_reject_ind 
+4a7a 20202eb3 branch le_send_smp_security_request 
+
+module_process_ble_update_phy:
+4a7b 20204cc2 branch module_hci_event_le_update_phy 
+
+module_set_conn_pin_high:
+4a7c 6848c50c fetcht 1 ,mem_module_connect_state_gpio 
+4a7d 20206ef1 branch gpio_out_active 
+
+module_conn_start:
+4a7e 20404a80 call module_stop_adv_discovery 
+4a7f 20204a84 branch module_set_conn_pin_low 
+
+module_stop_adv_discovery:
+4a80 6fe0c50f fetch 1 ,mem_module_state 
+4a81 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
+4a82 2040b78a call app_ble_stop_adv ,true 
+4a83 20600000 rtn 
+
+module_set_conn_pin_low:
+4a84 6848c50c fetcht 1 ,mem_module_connect_state_gpio 
+4a85 20206eed branch gpio_out_inactive 
+
+module_process_check_hci_command_complete:
+4a86 6ff0810b fetch 1 ,core_uart_status 
+4a87 c3810000 rtnbit1 uart_status_rx_fifo_empty 
+4a88 20406d89 call uarta_prepare_rx 
+4a89 efe08003 ifetch 1 ,contru 
+4a8a c080ca9c bne 0x01 ,module_hci_in_excp 
+4a8b 6ff10112 fetch 2 ,core_uart_rxitems 
+4a8c 1fe67c02 sub pdata ,2 ,null 
+4a8d 20610000 rtn positive 
+4a8e efe08003 ifetch 1 ,contru 
+4a8f 67e086c0 store 1 ,mem_module_uart_opcode 
+4a90 e8408003 ifetcht 1 ,contru 
+4a91 18622200 copy contru ,rega 
+4a92 604886c1 storet 1 ,mem_module_uart_len 
+4a93 18408403 add temp ,3 ,temp 
+4a94 6ff10112 fetch 2 ,core_uart_rxitems 
+4a95 98460400 isub temp ,temp 
+4a96 24610000 nrtn positive 
+4a97 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+4a98 20404aaa call module_hci_cmd_control 
+4a99 6fe086c2 fetch 1 ,mem_module_temp_nl_discard_packet 
+4a9a c1000000 rtneq hci_not_discard_packet 
+4a9b 20204aa5 branch module_hci_dicard_packet 
+
+module_hci_in_excp:
+4a9c 20407c97 call delay_10ms 
+4a9d 20404c8f call module_hci_event_invalid_packet 
+4a9e 20204a9f branch module_hci_release_except 
+
+module_hci_release_except:
+4a9f 44b6c00d bpatch patch0d_5 ,mem_patch0d 
+4aa0 20406d89 call uarta_prepare_rx 
+4aa1 6ff10112 fetch 2 ,core_uart_rxitems 
+4aa2 207a0000 rtn blank 
+4aa3 98608600 iadd contru ,contru 
+4aa4 20204aa9 branch module_hci_dicard_bytes 
+
+module_hci_dicard_packet:
+4aa5 20406d89 call uarta_prepare_rx 
+4aa6 18608602 increase 2 ,contu 
+4aa7 efe08003 ifetch 1 ,contu 
+4aa8 98608600 iadd contu ,contu 
+
+module_hci_dicard_bytes:
+4aa9 20206d8f branch uarta_rxdone 
+
+module_hci_cmd_control:
+4aaa 44b7400d bpatch patch0d_6 ,mem_patch0d 
+4aab 6fe086c0 fetch 1 ,mem_module_uart_opcode 
+4aac c000cac7 beq hci_cmd_set_le_addr_req ,module_hci_cmd_set_le_addr 
+4aad c0014acc beq hci_cmd_set_visibility_req ,module_hci_cmd_set_visibility 
+4aae c0024ada beq hci_cmd_set_le_name_req ,module_hci_cmd_set_le_name 
+4aaf c004cade beq hci_cmd_le_data_req ,module_hci_cmd_receive_le_data 
+4ab0 c005cb35 beq hci_cmd_status_irq ,module_hci_cmd_inquire_status 
+4ab1 c007cb36 beq hci_cmd_set_uart_baud_req ,module_hci_cmd_set_uart_baud 
+4ab2 c0084b3e beq hci_cmd_version_req ,module_hci_cmd_version_request 
+4ab3 c0094b42 beq hci_cmd_ble_disconnect ,module_hci_cmd_ble_disconnect 
+4ab4 c0134b46 beq hci_cmd_set_nvram_req ,module_hci_cmd_set_nvram 
+4ab5 c0154b4b beq hci_cmd_auto_adv_scan ,module_hci_cmd_auto_adv 
+4ab6 c015cb7e beq hci_cmd_power_req ,module_hci_cmd_power_request 
+4ab7 c0164b84 beq hci_cmd_power_set ,module_hci_cmd_power_set 
+4ab8 c0184b8b beq hci_cmd_passkey_entry ,module_hci_cmd_passkey_entry 
+4ab9 c019cb90 beq hci_cmd_le_set_pairing ,module_hci_cmd_le_set_pairing_mode 
+4aba c01acbbd beq hci_cmd_le_set_scan_data ,module_hci_cmd_le_set_scan_data 
+4abb c01b4bc6 beq hci_cmd_le_send_conn_update_req ,module_hci_cmd_le_send_conn_update_req 
+4abc c01bcbcf beq hci_cmd_le_set_adv_parm ,module_hci_cmd_set_le_adv_parameter 
+4abd c01c4bd5 beq hci_cmd_le_start_pairing ,module_hci_cmd_le_start_pairing 
+4abe c0204bdd beq hci_cmd_set_wake_gpio ,module_hci_cmd_set_wake_gpio 
+4abf c0214be7 beq hci_cmd_set_tx_power ,module_hci_cmd_set_tx_power 
+4ac0 c0244bec beq hci_cmd_le_confirm_gkey ,module_hci_cmd_le_confirm_gkey 
+4ac1 c028cbf7 beq hci_cmd_reset_chip_req ,module_hci_cmd_reset_chip 
+4ac2 c03b4bfb beq hci_cmd_delete_customize_service ,module_hci_cmd_delete_customize_service 
+4ac3 c03bcc01 beq hci_cmd_add_service_uuid ,module_hci_cmd_add_service_uuid 
+4ac4 c03c4c06 beq hci_cmd_add_characteristic_uuid ,module_hci_cmd_add_characteristic_uuid 
+4ac5 c03d4c3c beq hci_cmd_passkey_entry_input ,module_hci_cmd_le_passkey_entry_input 
+4ac6 20204c4a branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_set_le_addr:
+4ac7 6fe086c1 fetch 1 ,mem_module_uart_len 
+4ac8 c0834c4a bne 6 ,module_hci_event_receive_invalid_cmd 
+4ac9 efe30003 ifetch 6 ,contru 
+4aca 67e342dd store 6 ,mem_le_lap 
+4acb 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_visibility:
+4acc 6fe086c1 fetch 1 ,mem_module_uart_len 
+4acd c080cc4a bne 1 ,module_hci_event_receive_invalid_cmd 
+4ace e8408003 ifetcht 1 ,contru 
+4acf 6048c516 storet 1 ,mem_module_bluetooth_stauts_by_command 
+4ad0 20404c4d call module_hci_event_receive_valid_cmd 
+4ad1 6fe14500 fetch 2 ,mem_ui_state_map 
+4ad2 c3848000 rtnbit1 ui_state_ble_connected 
+
+module_start_adv_discovery_by_command:
+
+moudle_start_adv_by_command:
+4ad3 6fe0c50f fetch 1 ,mem_module_state 
+4ad4 2feffe01 isolate1 moudle_state_ble_bit ,pdata 
+4ad5 24608000 nrtn true 
+4ad6 6848c516 fetcht 1 ,mem_module_bluetooth_stauts_by_command 
+4ad7 284ffe02 isolate1 2 ,temp 
+4ad8 2020b78c branch app_ble_start_adv ,true 
+4ad9 2020378a branch app_ble_stop_adv 
+
+module_hci_cmd_set_le_name:
+4ada dfe0001d arg 29 ,pdata 
+4adb d8a0426d arg mem_le_name_len ,contw 
+4adc 20404bc0 call module_hci_cmd_receive_store_mem 
+4add 20202931 branch le_modified_name 
+
+module_hci_cmd_receive_le_data:
+4ade 6fe14500 fetch 2 ,mem_ui_state_map 
+4adf c304cc4a bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+4ae0 20404b32 call module_check_ble_encrypt_state 
+4ae1 20344c4a branch module_hci_event_receive_invalid_cmd ,user 
+4ae2 7006c200 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+4ae3 6fe14526 fetch 2 ,mem_module_flag 
+4ae4 c2844b03 bbit1 module_flag_ble_data_finish ,module_hci_cmd_receive_le_data_finish 
+4ae5 6fe0c528 fetch 1 ,mem_module_hci_notify_len 
+4ae6 247a0000 nrtn blank 
+4ae7 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+4ae8 efe10003 ifetch 2 ,contru 
+4ae9 67e14529 store 2 ,mem_module_hci_notify_handle 
+4aea 6061452b storer contru ,2 ,mem_module_hci_nofiy_addr 
+4aeb 6fe086c1 fetch 1 ,mem_module_uart_len 
+4aec 1fe0fffe pincrease -2 
+4aed 24214c4a nbranch module_hci_event_receive_invalid_cmd ,positive 
+4aee 2022cc4a branch module_hci_event_receive_invalid_cmd ,zero 
+4aef 67e0c528 store 1 ,mem_module_hci_notify_len 
+4af0 68494529 fetcht 2 ,mem_module_hci_notify_handle 
+4af1 184085ff increase -1 ,temp 
+4af2 20402cb0 call le_att_get_handle_ptr2 
+4af3 203a4b06 branch module_hci_cmd_transmit_handle_error ,blank 
+4af4 e8420006 ifetcht 4 ,contr 
+4af5 59280302 setarg 0x01280302 
+4af6 98467c00 isub temp ,null 
+4af7 2422cb06 nbranch module_hci_cmd_transmit_handle_error ,zero 
+4af8 efe08006 ifetch 1 ,contr 
+4af9 67e0c52d store 1 ,mem_module_hci_notify_type 
+4afa 1fe17e30 and_into 0x30 ,pdata 
+4afb 203a4b06 branch module_hci_cmd_transmit_handle_error ,blank 
+4afc 7006c200 jam hci_not_discard_packet ,mem_module_temp_nl_discard_packet 
+4afd 204029a8 call le_set_config_more_data 
+4afe 20404b0a call module_hci_cmd_transmit_le_notify 
+4aff 20404b0a call module_hci_cmd_transmit_le_notify 
+4b00 20404b0a call module_hci_cmd_transmit_le_notify 
+4b01 6fe14526 fetch 2 ,mem_module_flag 
+4b02 c4040000 rtnbit0 module_flag_ble_data_finish 
+
+module_hci_cmd_receive_le_data_finish:
+4b03 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+4b04 20404d07 call module_clear_le_tx_data_flag 
+4b05 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_transmit_handle_error:
+4b06 70452800 jam 0 ,mem_module_hci_notify_len 
+4b07 7006c201 jam hci_discard_packet ,mem_module_temp_nl_discard_packet 
+4b08 20404d07 call module_clear_le_tx_data_flag 
+4b09 20204c4a branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_transmit_le_notify:
+4b0a 6fe0c528 fetch 1 ,mem_module_hci_notify_len 
+4b0b 207a0000 rtn blank 
+4b0c 20402a06 call le_fifo_check_nearly_full 
+4b0d 247a0000 nrtn blank 
+4b0e 20404b2d call module_get_le_remote_mtu 
+4b0f 44b7c00d bpatch patch0d_7 ,mem_patch0d 
+4b10 6fe142e3 fetch 2 ,mem_le_local_mtu 
+4b11 20407db2 call not_greater_than 
+4b12 1fe20400 copy pdata ,temp 
+4b13 6fe0c39a fetch 1 ,mem_le_l2cap_att_states 
+4b14 c3800000 rtnbit1 ble_l2cap_recv_confirmation_packet 
+4b15 1840fffd add temp ,-3 ,pdata 
+4b16 d84000fb arg 251 ,temp 
+4b17 20407db2 call not_greater_than 
+4b18 6848c528 fetcht 1 ,mem_module_hci_notify_len 
+4b19 20407db2 call not_greater_than 
+4b1a 1fe22200 copy pdata ,rega 
+4b1b 18427e00 copy temp ,pdata 
+4b1c 9a267e00 isub rega ,pdata 
+4b1d 67e0c528 store 1 ,mem_module_hci_notify_len 
+4b1e 20404b28 call module_hci_cmd_transmit_le_notify_malloc_l2cap 
+4b1f 6fe1452b fetch 2 ,mem_module_hci_nofiy_addr 
+4b20 1fe20600 copy pdata ,contru 
+4b21 1a227200 copy rega ,loopcnt 
+4b22 20406dbd call uart_copy_rx_bytes_fast 
+4b23 18627e00 copy contru ,pdata 
+4b24 67e1452b store 2 ,mem_module_hci_nofiy_addr 
+4b25 6fe0c528 fetch 1 ,mem_module_hci_notify_len 
+4b26 247a0000 nrtn blank 
+4b27 20204d05 branch module_set_le_tx_data_flag 
+
+module_hci_cmd_transmit_le_notify_malloc_l2cap:
+4b28 68494529 fetcht 2 ,mem_module_hci_notify_handle 
+4b29 6fe0c52d fetch 1 ,mem_module_hci_notify_type 
+4b2a c282add5 bbit1 bit_characteristic_indicate ,le_att_malloc_tx_indication 
+4b2b c2822dcc bbit1 bit_characteristic_notify ,le_att_malloc_tx_notify 
+4b2c 20600000 rtn 
+
+module_get_le_remote_mtu:
+4b2d d8400017 arg 0x17 ,temp 
+4b2e 6fe14526 fetch 2 ,mem_module_flag 
+4b2f c3808000 rtnbit1 module_flag_ble_send_mtu23 
+4b30 684942e5 fetcht 2 ,mem_le_remote_mtu 
+4b31 20600000 rtn 
+
+module_check_ble_encrypt_state:
+4b32 6fe14526 fetch 2 ,mem_module_flag 
+4b33 c2812da5 bbit1 module_flag_ble_data_encrypt ,le_check_encrypt_state 
+4b34 20207dbe branch disable_user 
+
+module_hci_cmd_inquire_status:
+4b35 20204c70 branch module_hci_event_status_res 
+
+module_hci_cmd_set_uart_baud:
+4b36 6f2086c1 fetchr loopcnt ,1 ,mem_module_uart_len 
+4b37 20407d35 call string2dec_from_uart 
+4b38 20406d6a call uart_calc_baud_rate_config 
+4b39 67e1451f store uart_baud_len ,mem_module_uarta_baud_rate 
+4b3a 20404c4d call module_hci_event_receive_valid_cmd 
+4b3b 20406da1 call wait_uarttx 
+4b3c 6fe1451f fetch uart_baud_len ,mem_module_uarta_baud_rate 
+4b3d 20206d66 branch uarta_init_baud_rate 
+
+module_hci_cmd_version_request:
+4b3e da200002 arg 2 ,rega 
+4b3f da404508 arg mem_soft_version_num ,regb 
+4b40 d8400000 arg 0 ,temp 
+4b41 20204c54 branch module_hci_event_set_cmd 
+
+module_hci_cmd_ble_disconnect:
+4b42 6fe14500 fetch 2 ,mem_ui_state_map 
+4b43 c304cc4a bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_ble_disconnect_doing:
+4b44 20404c4d call module_hci_event_receive_valid_cmd 
+4b45 20203794 branch app_ble_disconnect 
+
+module_hci_cmd_set_nvram:
+4b46 6f2086c1 fetchr loopcnt ,1 ,mem_module_uart_len 
+4b47 6fe14401 fetch 2 ,mem_nv_data_ptr 
+4b48 1fe20a00 icopy contw 
+4b49 20406dbd call uart_copy_rx_bytes_fast 
+4b4a 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_auto_adv:
+4b4b df200040 arg 0x40 ,loopcnt 
+4b4c d8a0434c arg mem_le_adv_data_len ,contw 
+4b4d 20407ca3 call clear_mem 
+4b4e 58000000 setarg 0 
+4b4f 67e08666 store 1 ,mem_regb 
+4b50 1a220600 copy rega ,contru 
+
+module_hci_cmd_auto_adv_loop:
+4b51 18627e00 copy contru ,pdata 
+4b52 67e1066a store 2 ,mem_regc 
+4b53 20404b79 call module_hci_cmd_auto_adv_adv_analys 
+4b54 6fe08666 fetch 1 ,mem_regb 
+4b55 68488656 fetcht 1 ,mem_temp 
+4b56 18408401 increase 1 ,temp 
+4b57 9840fe00 iadd temp ,pdata 
+4b58 67e08666 store 1 ,mem_regb 
+4b59 1fe67c1f sub pdata ,31 ,null 
+4b5a 24214b65 nbranch module_hci_cmd_auto_adv_store_scan ,positive 
+
+module_hci_cmd_auto_adv_store_adv:
+4b5b 6848c34c fetcht 1 ,mem_le_adv_data_len 
+4b5c 5800434d setarg mem_le_adv_data 
+4b5d 9840fe00 iadd temp ,pdata 
+4b5e 67e1066f store 2 ,mem_contw 
+4b5f 68488656 fetcht 1 ,mem_temp 
+4b60 18408401 increase 1 ,temp 
+4b61 6fe0c34c fetch 1 ,mem_le_adv_data_len 
+4b62 9840fe00 iadd temp ,pdata 
+4b63 67e0c34c store 1 ,mem_le_adv_data_len 
+4b64 20204b6e branch module_hci_cmd_auto_adv_store_common 
+
+module_hci_cmd_auto_adv_store_scan:
+4b65 6848c36c fetcht 1 ,mem_le_scan_data_len 
+4b66 5800436d setarg mem_le_scan_data 
+4b67 9840fe00 iadd temp ,pdata 
+4b68 67e1066f store 2 ,mem_contw 
+4b69 68488656 fetcht 1 ,mem_temp 
+4b6a 18408401 increase 1 ,temp 
+4b6b 6fe0c36c fetch 1 ,mem_le_scan_data_len 
+4b6c 9840fe00 iadd temp ,pdata 
+4b6d 67e0c36c store 1 ,mem_le_scan_data_len 
+
+module_hci_cmd_auto_adv_store_common:
+4b6e 6fe1066f fetch 2 ,mem_contw 
+4b6f 1fe20a00 copy pdata ,contw 
+4b70 6fe1066a fetch 2 ,mem_regc 
+4b71 1fe20600 copy pdata ,contru 
+4b72 18427200 copy temp ,loopcnt 
+4b73 20406dbd call uart_copy_rx_bytes_fast 
+4b74 6fe086c1 fetch 1 ,mem_module_uart_len 
+4b75 68488666 fetcht 1 ,mem_regb 
+4b76 98467c00 isub temp ,null 
+4b77 2422cb51 nbranch module_hci_cmd_auto_adv_loop ,zero 
+4b78 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_auto_adv_adv_analys:
+4b79 efe08003 ifetch 1 ,contru 
+4b7a 67e08656 store 1 ,mem_temp 
+4b7b efe08003 ifetch 1 ,contru 
+4b7c 67e08662 store 1 ,mem_rega 
+4b7d 20600000 rtn 
+
+module_hci_cmd_power_request:
+4b7e d8400000 arg 0 ,temp 
+4b7f da200002 arg 2 ,rega 
+4b80 6fe14523 fetch 2 ,mem_module_vdd_quotient 
+4b81 67e1067f store 2 ,mem_event_cmd_response_content 
+4b82 da40067f arg mem_event_cmd_response_content ,regb 
+4b83 20204c54 branch module_hci_event_set_cmd 
+
+module_hci_cmd_power_set:
+4b84 6fe086c1 fetch 1 ,mem_module_uart_len 
+4b85 c080cc4a bne 1 ,module_hci_event_receive_invalid_cmd 
+4b86 efe08003 ifetch 1 ,contru 
+4b87 67e0c521 store 1 ,mem_module_read_vdd_flag 
+4b88 58000000 setarg 0x00 
+4b89 67e14523 store 2 ,mem_module_vdd_quotient 
+4b8a 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_passkey_entry:
+4b8b 6fe086c1 fetch 1 ,mem_module_uart_len 
+4b8c c0824c4a bne 4 ,module_hci_event_receive_invalid_cmd 
+4b8d 6fe14500 fetch 2 ,mem_ui_state_map 
+4b8e c284cc3c bbit1 ui_state_ble_connected ,module_hci_cmd_le_passkey_entry_input 
+4b8f 20204c4a branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_le_set_pairing_mode:
+4b90 efe08003 ifetch 1 ,contru 
+4b91 1fe20400 copy pdata ,temp 
+4b92 c040cb9f beq le_pairing_mode_secure_connect_justwork ,module_le_set_pairing_mode_secure_justwork 
+4b93 c0414ba3 beq le_pairing_mode_secure_connect_numeric ,module_le_set_pairing_mode_secure_numeric 
+4b94 c041cba8 beq le_pairing_mode_secure_connect_passkey ,module_le_set_pairing_mode_secure_passkey 
+4b95 c0424bac beq le_pairing_mode_secure_connect_passkey_res_input ,module_le_set_pairing_mode_secure_passkey_res_input 
+4b96 67e0c300 store 1 ,mem_le_pairing_mode 
+4b97 204074ed call sc_reset 
+4b98 20402ea2 call le_secure_connection_disable 
+4b99 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+4b9a c0004bb0 beq le_pairing_mode_none ,module_le_set_no_pairing 
+4b9b c000cbb3 beq le_pairing_mode_lagacy_justwork ,module_le_set_pairing_mode_lagacy_just_work 
+4b9c c0014bb5 beq le_pairing_mode_lagacy_passkey ,module_le_set_pairing_mode_lagacy_passkey 
+4b9d c0024bb7 beq le_pairing_mode_lagacy_passkey_res_input ,module_le_set_pairing_mode_lagacy_passkey_res_input 
+4b9e 20204c4a branch module_hci_event_receive_invalid_cmd 
+
+module_le_set_pairing_mode_secure_justwork:
+4b9f 6048c300 storet 1 ,mem_le_pairing_mode 
+4ba0 20402e9e call le_secure_connection_enable 
+4ba1 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+4ba2 20204bb1 branch module_le_set_noinputnooutput 
+
+module_le_set_pairing_mode_secure_numeric:
+4ba3 6048c300 storet 1 ,mem_le_pairing_mode 
+4ba4 20402e9e call le_secure_connection_enable 
+4ba5 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+4ba6 7042c701 jam flag_iocap_displayyesno ,mem_le_pres_iocap 
+4ba7 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_le_set_pairing_mode_secure_passkey:
+4ba8 6048c300 storet 1 ,mem_le_pairing_mode 
+4ba9 20402e9e call le_secure_connection_enable 
+4baa 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+4bab 20204bbb branch module_le_set_displayonly 
+
+module_le_set_pairing_mode_secure_passkey_res_input:
+4bac 6048c300 storet 1 ,mem_le_pairing_mode 
+4bad 20402e9e call le_secure_connection_enable 
+4bae 7042c90d jam flag_le_bonding_mitm_secure ,mem_le_pres_auth 
+4baf 20204bb9 branch module_le_set_keboadonly 
+
+module_le_set_no_pairing:
+4bb0 7042c900 jam flag_le_no_bonding_no_mitm ,mem_le_pres_auth 
+
+module_le_set_noinputnooutput:
+4bb1 7042c703 jam flag_iocap_noinputnooutput ,mem_le_pres_iocap 
+4bb2 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_le_set_pairing_mode_lagacy_just_work:
+4bb3 7042c901 jam flag_le_bonding_no_mitm ,mem_le_pres_auth 
+4bb4 20204bb1 branch module_le_set_noinputnooutput 
+
+module_le_set_pairing_mode_lagacy_passkey:
+4bb5 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+4bb6 20204bbb branch module_le_set_displayonly 
+
+module_le_set_pairing_mode_lagacy_passkey_res_input:
+4bb7 7042c905 jam flag_le_bonding_mitm ,mem_le_pres_auth 
+4bb8 20204bb9 branch module_le_set_keboadonly 
+
+module_le_set_keboadonly:
+4bb9 7042c702 jam flag_iocap_keyboardonly ,mem_le_pres_iocap 
+4bba 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_le_set_displayonly:
+4bbb 7042c700 jam flag_iocap_displayonly ,mem_le_pres_iocap 
+4bbc 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_set_scan_data:
+4bbd dfe0001f arg 31 ,pdata 
+4bbe d8a0436c arg mem_le_scan_data_len ,contw 
+4bbf 20204bc0 branch module_hci_cmd_receive_store_mem 
+
+module_hci_cmd_receive_store_mem:
+4bc0 6f2086c1 fetchr loopcnt ,1 ,mem_module_uart_len 
+4bc1 9f267c00 isub loopcnt ,null 
+4bc2 24214c4a nbranch module_hci_event_receive_invalid_cmd ,positive 
+4bc3 e7208005 istorer loopcnt ,1 ,contw 
+4bc4 20406dbd call uart_copy_rx_bytes_fast 
+4bc5 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_send_conn_update_req:
+4bc6 6fe14500 fetch 2 ,mem_ui_state_map 
+4bc7 c304cc4a bbit0 ui_state_ble_connected ,module_hci_event_receive_invalid_cmd 
+4bc8 6fe086c1 fetch 1 ,mem_module_uart_len 
+4bc9 c0844c4a bne 0x08 ,module_hci_event_receive_invalid_cmd 
+4bca efe40003 ifetch 8 ,contru 
+4bcb 67e442d5 store 8 ,mem_le_interval_min 
+4bcc 70064d12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+4bcd 20407824 call ui_ipc_send_cmd 
+4bce 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_le_adv_parameter:
+4bcf efe10003 ifetch 2 ,contru 
+4bd0 67e1438d store 2 ,mem_le_adv_interval 
+4bd1 6048c0a6 storet 1 ,mem_lpm_overhead 
+4bd2 9840fe00 iadd temp ,pdata 
+4bd3 67e140a4 store 2 ,mem_lpm_interval 
+4bd4 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_start_pairing:
+4bd5 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+4bd6 203a4c4a branch module_hci_event_receive_invalid_cmd ,blank 
+4bd7 6fe0c2fe fetch 1 ,mem_le_pairing_state 
+4bd8 c0804c4a bne flag_le_pairing_null ,module_hci_event_receive_invalid_cmd 
+4bd9 6fe0c2ff fetch 1 ,mem_le_enc_state 
+4bda c0804c4a bne flag_le_enc_null ,module_hci_event_receive_invalid_cmd 
+4bdb 20407899 call check_51cmd_le_smp_sec_req 
+4bdc 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_wake_gpio:
+4bdd 6fe086c1 fetch 1 ,mem_module_uart_len 
+4bde c082cc4a bne 5 ,module_hci_event_receive_invalid_cmd 
+4bdf efe08003 ifetch 1 ,contru 
+4be0 67e0c510 store 1 ,mem_module_mcu_wake_pin 
+4be1 efe20003 ifetch 4 ,contru 
+4be2 67e24511 store 4 ,mem_module_mcu_wake_delay_us 
+4be3 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
+4be4 20406ef1 call gpio_config_output 
+4be5 20404cdf call module_set_mcu_wake_pin_low 
+4be6 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_set_tx_power:
+4be7 6fe086c1 fetch 1 ,mem_module_uart_len 
+4be8 c080cc4a bne 0x01 ,module_hci_event_receive_invalid_cmd 
+4be9 efe08003 ifetch 1 ,contru 
+4bea 67e0c141 store 1 ,mem_tx_power 
+4beb 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_confirm_gkey:
+4bec efe08003 ifetch 1 ,contru 
+4bed c000cbf5 beq 0x01 ,module_hci_cmd_le_confirm_gkey_fail 
+4bee 6fe0c2fc fetch 1 ,mem_le_secure_connect_state 
+4bef c001cbf3 beq le_sc_stat_send_public_key ,module_hci_cmd_le_confirm_gkey_ok 
+4bf0 c0034bf3 beq le_sc_stat_receive_dhkey ,module_hci_cmd_le_confirm_gkey_ok 
+4bf1 c003cbf3 beq le_sc_stat_wait_confirm_gkey ,module_hci_cmd_le_confirm_gkey_ok 
+4bf2 20204c4a branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_le_confirm_gkey_ok:
+4bf3 7042fd01 jam flag_le_sc_confrim_gkey_ok ,mem_le_sc_confirm_gkey_flag 
+4bf4 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_le_confirm_gkey_fail:
+4bf5 20402f08 call le_send_pairing_confirm_value_failed 
+4bf6 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_reset_chip:
+4bf7 20404c4d call module_hci_event_receive_valid_cmd 
+4bf8 20406da1 call wait_uarttx 
+4bf9 70801001 jam 0x01 ,core_reset 
+4bfa 2020233e branch assert 
+
+module_hci_cmd_delete_customize_service:
+4bfb d8400001 arg 0x0001 ,temp 
+4bfc 20402cb0 call le_att_get_handle_ptr2 
+4bfd 18c08bfe add contr ,-2 ,contw 
+4bfe 58000000 setarg 0x0000 
+4bff e7e10005 istore 2 ,contw 
+4c00 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_add_service_uuid:
+4c01 20404c0a call module_hci_cmd_add_service_uuid_set_uuid 
+4c02 20404c38 call uart_copy_rx_bytes_len_data 
+4c03 58000000 setarg 0x0000 
+4c04 e7e10005 istore 2 ,contw 
+4c05 20204cb9 branch module_hci_event_uuid_handle 
+
+module_hci_cmd_add_characteristic_uuid:
+4c06 efe08003 ifetch 1 ,contru 
+4c07 20404c0e call module_hci_cmd_add_characteristic_uuid_set_handle 
+4c08 20404c15 call module_hci_cmd_add_characteristic_uuid_set_uuid 
+4c09 20204cb9 branch module_hci_event_uuid_handle 
+
+module_hci_cmd_add_service_uuid_set_uuid:
+4c0a 20404c35 call le_att_creat_new_handle 
+4c0b 58280002 setarg 0x280002 
+4c0c e7e18005 istore 3 ,contw 
+4c0d 20600000 rtn 
+
+module_hci_cmd_add_characteristic_uuid_set_handle:
+4c0e 67e0864e store 1 ,mem_pdatatemp 
+4c0f 20404c35 call le_att_creat_new_handle 
+4c10 59280302 setarg 0x01280302 
+4c11 e7e20005 istore 4 ,contw 
+4c12 6fe0864e fetch 1 ,mem_pdatatemp 
+4c13 e7e18005 istore 3 ,contw 
+4c14 20600000 rtn 
+
+module_hci_cmd_add_characteristic_uuid_set_uuid:
+4c15 20402cd4 call le_att_get_last_handle 
+4c16 efe08003 ifetch 1 ,contru 
+4c17 1fe1721f and pdata ,0x1f ,loopcnt 
+4c18 1fe22200 copy pdata ,rega 
+4c19 2a2ffe07 isolate1 bit_of_write_authenticated ,rega 
+4c1a 7920840f setflag true ,bit_of_att_handle_write_authenticated ,temp 
+4c1b 2a2ffe06 isolate1 bit_of_read_authenticated ,rega 
+4c1c 7920840e setflag true ,bit_of_att_handle_read_authenticated ,temp 
+4c1d e0410005 istoret 2 ,contw 
+4c1e 1f227e00 copy loopcnt ,pdata 
+4c1f e7e08005 istore 1 ,contw 
+4c20 20406dd0 call uart_copy_rx_bytes 
+4c21 20404c38 call uart_copy_rx_bytes_len_data 
+4c22 58000000 setarg 0 
+4c23 e7e10005 istore 2 ,contw 
+4c24 184104ff and temp ,0xff ,temp 
+4c25 184085ff increase -1 ,temp 
+4c26 20402cb0 call le_att_get_handle_ptr2 
+4c27 18c08c04 add contr ,4 ,contr 
+4c28 efe08006 ifetch 1 ,contr 
+4c29 c2824c2d bbit1 bit_characteristic_notify ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+4c2a c282cc2d bbit1 bit_characteristic_indicate ,module_hci_cmd_add_characteristic_uuid_set_ccc_uuid 
+4c2b 18408401 increase 1 ,temp 
+4c2c 20600000 rtn 
+
+module_hci_cmd_add_characteristic_uuid_set_ccc_uuid:
+4c2d 20402cd4 call le_att_get_last_handle 
+4c2e 2a2ffe05 isolate1 bit_of_notify_authenticated ,rega 
+4c2f 7920840f setflag true ,bit_of_att_handle_write_authenticated ,temp 
+4c30 e0410005 istoret 2 ,contw 
+4c31 5a290202 setarg 0x02290202 
+4c32 e7e40005 istore 8 ,contw 
+4c33 184085ff increase -1 ,temp 
+4c34 20600000 rtn 
+
+le_att_creat_new_handle:
+4c35 20402cd4 call le_att_get_last_handle 
+4c36 e0410005 istoret 2 ,contw 
+4c37 20600000 rtn 
+
+uart_copy_rx_bytes_len_data:
+4c38 efe08003 ifetch 1 ,contru 
+4c39 1fe27200 copy pdata ,loopcnt 
+4c3a e7e08005 istore 1 ,contw 
+4c3b 20206dd0 branch uart_copy_rx_bytes 
+
+module_hci_cmd_le_passkey_entry_input:
+4c3c 6fe0c2fe fetch 1 ,mem_le_pairing_state 
+4c3d c082cc4a bne flag_le_pairing_receive_pairing_confirm ,module_hci_event_receive_invalid_cmd 
+4c3e 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+4c3f c0024c48 beq le_pairing_mode_lagacy_passkey_res_input ,module_hci_cmd_passkey_entry_res_input 
+4c40 c0424c42 beq le_pairing_mode_secure_connect_passkey_res_input ,module_hci_cmd_passkey_entry_sc_res_input 
+4c41 20204c4a branch module_hci_event_receive_invalid_cmd 
+
+module_hci_cmd_passkey_entry_sc_res_input:
+4c42 7042fb02 jam le_sp_flag_commit_256 ,mem_le_secure_connect_flag 
+4c43 7042fc08 jam le_sc_stat_passkey_wait_confirm ,mem_le_secure_connect_state 
+4c44 20204c45 branch module_hci_cmd_receive_ble_passkey 
+
+module_hci_cmd_receive_ble_passkey:
+4c45 efe20003 ifetch 4 ,contru 
+4c46 67e24301 store 4 ,mem_le_tk 
+4c47 20204c4d branch module_hci_event_receive_valid_cmd 
+
+module_hci_cmd_passkey_entry_res_input:
+4c48 20404c45 call module_hci_cmd_receive_ble_passkey 
+4c49 20202ef1 branch le_send_smp_pairing_confirm 
+
+module_hci_event_receive_invalid_cmd:
+4c4a d8400001 arg 1 ,temp 
+4c4b da200000 arg 0 ,rega 
+4c4c 20204c54 branch module_hci_event_set_cmd 
+
+module_hci_event_receive_valid_cmd:
+4c4d d8400000 arg 0 ,temp 
+4c4e da200000 arg 0 ,rega 
+4c4f 20204c54 branch module_hci_event_set_cmd 
+
+module_hci_event_le_connect:
+4c50 7006c002 jam hci_event_le_conn_rep ,mem_module_uart_opcode 
+4c51 20204c6d branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_disconnect:
+4c52 7006c005 jam hci_event_le_dis_rep ,mem_module_uart_opcode 
+4c53 20204c6d branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_set_cmd:
+4c54 6fe086c0 fetch 1 ,mem_module_uart_opcode 
+4c55 1fe22600 copy pdata ,regc 
+4c56 7006c006 jam hci_event_cmd_res ,mem_module_uart_opcode 
+4c57 58000002 setarg 2 
+4c58 9a20fe00 iadd rega ,pdata 
+4c59 20404cc8 call module_hci_prepare_tx 
+4c5a 1a627e00 copy regc ,pdata 
+4c5b e7e08003 istore 1 ,contwu 
+4c5c e0408003 istoret 1 ,contwu 
+4c5d 1a227200 copy rega ,loopcnt 
+4c5e 1a420c00 copy regb ,contr 
+4c5f 20406db7 call uart_copy_tx_bytes 
+4c60 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_receive_le_data:
+4c61 7006c008 jam hci_event_le_data_rep ,mem_module_uart_opcode 
+4c62 1f20fe02 add loopcnt ,2 ,pdata 
+4c63 20404cc8 call module_hci_prepare_tx 
+4c64 6fe106eb fetch 2 ,mem_module_le_rx_data_handle 
+4c65 e7e10003 istore 2 ,contwu 
+4c66 6fe106e9 fetch 2 ,mem_module_le_rx_data_address 
+4c67 1fe20c00 icopy contr 
+4c68 20406da4 call uart_copy_tx_bytes_fast 
+4c69 18c27e00 copy contr ,pdata 
+4c6a 67e106e9 store 2 ,mem_module_le_rx_data_address 
+4c6b 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_enter_standby_mode:
+4c6c 7006c009 jam hci_event_standby_rep ,mem_module_uart_opcode 
+
+module_hci_event_enter_standby_mode_len0:
+4c6d 58000000 setarg 0 
+4c6e 20404cc8 call module_hci_prepare_tx 
+4c6f 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_status_res:
+4c70 7006c00a jam hci_event_status_res ,mem_module_uart_opcode 
+4c71 58000001 setarg 1 
+4c72 20404cc8 call module_hci_prepare_tx 
+4c73 20404c7a call module_hci_read_bt_status 
+4c74 6fe14500 fetch 2 ,mem_ui_state_map 
+4c75 d8e00009 arg ui_state_ble_connected ,queue 
+4c76 afefffff qisolate1 pdata 
+4c77 79208405 setflag true ,5 ,temp 
+4c78 e0408003 istoret 1 ,contwu 
+4c79 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_read_bt_status:
+4c7a d8400000 arg 0 ,temp 
+4c7b 6fe0c38c fetch 1 ,mem_le_adv_enable 
+4c7c d8e00000 arg 0 ,queue 
+4c7d afefffff qisolate1 pdata 
+4c7e 79208402 setflag true ,2 ,temp 
+4c7f 20600000 rtn 
+
+module_hci_event_store_device:
+4c80 7006c00d jam hci_event_nvram_rep ,mem_module_uart_opcode 
+4c81 6fe0c403 fetch 1 ,mem_nv_data_number 
+4c82 1feffe22 mul32 pdata ,34 ,pdata 
+4c83 1fe27200 icopy loopcnt 
+4c84 20404cc8 call module_hci_prepare_tx 
+4c85 6fe14401 fetch 2 ,mem_nv_data_ptr 
+4c86 1fe20c00 icopy contr 
+4c87 20406da4 call uart_copy_tx_bytes_fast 
+4c88 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_gkey_generate:
+4c89 7006c00e jam hci_event_gkey ,mem_module_uart_opcode 
+4c8a 58000004 setarg 4 
+4c8b 20404cc8 call module_hci_prepare_tx 
+4c8c 6fe205d8 fetch 4 ,mem_gkey 
+4c8d e7e20003 istore 4 ,contwu 
+4c8e 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_invalid_packet:
+4c8f 7006c00f jam hci_event_invalid_packet ,mem_module_uart_opcode 
+4c90 6ff10112 fetch 2 ,core_uart_rxitems 
+4c91 d8400040 arg 0x40 ,temp 
+4c92 20407db2 call not_greater_than 
+4c93 1fe22200 copy pdata ,rega 
+4c94 1fe27200 copy pdata ,loopcnt 
+4c95 20406d89 call uarta_prepare_rx 
+4c96 d8a0067f arg mem_module_rx_error_data_buffer ,contw 
+4c97 20406dbd call uart_copy_rx_bytes_fast 
+4c98 1a227e00 copy rega ,pdata 
+4c99 1a227200 copy rega ,loopcnt 
+4c9a 20404cc8 call module_hci_prepare_tx 
+4c9b d8c0067f arg mem_module_rx_error_data_buffer ,contr 
+4c9c 20406da4 call uart_copy_tx_bytes_fast 
+4c9d 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_passkey_entry_mode:
+4c9e 7006c010 jam hci_event_get_passkey ,mem_module_uart_opcode 
+4c9f 20204c6d branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_tk:
+4ca0 7006c011 jam hci_event_le_tk ,mem_module_uart_opcode 
+4ca1 58000004 setarg 4 
+4ca2 20404cc8 call module_hci_prepare_tx 
+4ca3 6fe24301 fetch 4 ,mem_le_tk 
+4ca4 e7e20003 istore 4 ,contwu 
+4ca5 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_le_pairing_fail:
+4ca6 da200180 arg flag_ble_pairing_fail ,rega 
+4ca7 20204caa branch module_hci_event_pairing_completed 
+
+module_hci_event_le_pairing_success:
+4ca8 da200080 arg flag_ble_pairing_success ,rega 
+4ca9 20204caa branch module_hci_event_pairing_completed 
+
+module_hci_event_pairing_completed:
+4caa 7006c014 jam hci_event_le_pairing_state ,mem_module_uart_opcode 
+4cab 58000002 setarg 2 
+4cac 20404cc8 call module_hci_prepare_tx 
+4cad 1a227e00 copy rega ,pdata 
+4cae e7e10003 istore 2 ,contwu 
+4caf 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_pause_enc:
+4cb0 da600000 arg flag_event_pause_enc ,regc 
+4cb1 20204cb3 branch module_hci_event_enc 
+
+module_hci_event_start_enc:
+4cb2 da600001 arg flag_event_start_enc ,regc 
+
+module_hci_event_enc:
+4cb3 7006c015 jam hci_event_le_encryption_state ,mem_module_uart_opcode 
+4cb4 58000001 setarg 1 
+4cb5 20404cc8 call module_hci_prepare_tx 
+4cb6 1a627e00 copy regc ,pdata 
+4cb7 e7e08003 istore 1 ,contwu 
+4cb8 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_uuid_handle:
+4cb9 60490656 storet 2 ,mem_temp 
+4cba 7006c029 jam hci_event_uuid_handle ,mem_module_uart_opcode 
+4cbb 58000002 setarg 2 
+4cbc 20404cc8 call module_hci_prepare_tx 
+4cbd 68490656 fetcht 2 ,mem_temp 
+4cbe e0410003 istoret 2 ,contwu 
+4cbf 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_event_le_input_passkey:
+4cc0 7006c02b jam hci_event_le_input_gkey ,mem_module_uart_opcode 
+4cc1 20204c6d branch module_hci_event_enter_standby_mode_len0 
+
+module_hci_event_le_update_phy:
+4cc2 7006c040 jam hci_ble_update_phy_event ,mem_module_uart_opcode 
+4cc3 58000002 setarg 2 
+4cc4 20404cc8 call module_hci_prepare_tx 
+4cc5 6fe14075 fetch 2 ,mem_context + coffset_le_rx_phy 
+4cc6 e7e10003 istore 2 ,contwu 
+4cc7 20204cd2 branch module_hci_transmit_tx 
+
+module_hci_prepare_tx:
+4cc8 7006bf02 jam 0x02 ,mem_module_uart_cmd 
+4cc9 67e086c1 store 1 ,mem_module_uart_len 
+4cca 604c0656 storet 8 ,mem_temp 
+4ccb 44b8400e bpatch patch0e_0 ,mem_patch0e 
+4ccc 20404cd4 call module_set_mcu_wake_pin_high_delay 
+4ccd 684c0656 fetcht 8 ,mem_temp 
+4cce 20406d95 call uarta_prepare_tx_register_push 
+4ccf 6fe186bf fetch 3 ,mem_module_uart_cmd 
+4cd0 e7e18003 istore 3 ,contwu 
+4cd1 20600000 rtn 
+
+module_hci_transmit_tx:
+4cd2 44b8c00e bpatch patch0e_1 ,mem_patch0e 
+4cd3 20206d97 branch uarta_send_register_pop 
+
+module_set_mcu_wake_pin_high_delay:
+4cd4 20404cdd call module_check_mcu_wake_pin_high 
+4cd5 20608000 rtn true 
+
+module_set_mcu_wake_pin_h_delay:
+4cd6 20404cdb call module_set_mcu_wake_pin_high 
+4cd7 6fe24511 fetch 4 ,mem_module_mcu_wake_delay_us 
+4cd8 1feb7e00 rshift2 pdata ,pdata 
+4cd9 207a0000 rtn blank 
+4cda 20207c93 branch delay 
+
+module_set_mcu_wake_pin_high:
+4cdb 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
+4cdc 20206ef1 branch gpio_out_active 
+
+module_check_mcu_wake_pin_high:
+4cdd 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
+4cde 20206efc branch gpio_check_active 
+
+module_set_mcu_wake_pin_low:
+4cdf 6848c510 fetcht 1 ,mem_module_mcu_wake_pin 
+4ce0 20206eed branch gpio_out_inactive 
+
+module_le_receive_data:
+4ce1 622106e9 storer rega ,2 ,mem_module_le_rx_data_address 
+4ce2 624106e7 storer regb ,2 ,mem_module_le_rx_data_len 
+4ce3 6fe1439c fetch 2 ,mem_le_att_handle 
+4ce4 67e106eb store 2 ,mem_module_le_rx_data_handle 
+4ce5 20404b32 call module_check_ble_encrypt_state 
+4ce6 20740000 rtn user 
+
+module_le_receive_data_ok:
+4ce7 684906e7 fetcht 2 ,mem_module_le_rx_data_len 
+4ce8 6fe0c525 fetch 1 ,mem_module_ble_data_uart_max_length 
+4ce9 20407db2 call not_greater_than 
+4cea 1fe27200 copy pdata ,loopcnt 
+4ceb 18427e00 copy temp ,pdata 
+4cec 9f267e00 isub loopcnt ,pdata 
+4ced 67e106e7 store 2 ,mem_module_le_rx_data_len 
+4cee 20404c61 call module_hci_event_receive_le_data 
+4cef 6fe106e7 fetch 2 ,mem_module_le_rx_data_len 
+4cf0 207a0000 rtn blank 
+4cf1 20204ce7 branch module_le_receive_data_ok 
+
+module_bb_event_timer:
+4cf2 20600000 rtn 
+
+module_read_vdd_timer:
+4cf3 6fe0c521 fetch 1 ,mem_module_read_vdd_flag 
+4cf4 207a0000 rtn blank 
+4cf5 6fe0c522 fetch 1 ,mem_module_read_vdd_count 
+4cf6 207a0000 rtn blank 
+4cf7 1fe0ffff increase -1 ,pdata 
+4cf8 67e0c522 store 1 ,mem_module_read_vdd_count 
+4cf9 247a0000 nrtn blank 
+4cfa 70452205 jam flag_module_read_vdd_count ,mem_module_read_vdd_count 
+4cfb 20406fb2 call enable_adc 
+4cfc 20406f8e call vdd_calculate_by_mode 
+4cfd 1fe6fc0a div pdata ,10 
+4cfe 20407d61 call get_div_result 
+4cff 1fe6fc64 div pdata ,100 
+4d00 20407d61 call get_div_result 
+4d01 18070400 remainder temp 
+4d02 67e0c523 store 1 ,mem_module_vdd_quotient 
+4d03 6048c524 storet 1 ,mem_module_vdd_remainder 
+4d04 20600000 rtn 
+
+module_set_le_tx_data_flag:
+4d05 d8e00008 arg module_flag_ble_data_finish ,queue 
+4d06 20204d0d branch module_set_state 
+
+module_clear_le_tx_data_flag:
+4d07 d8e00008 arg module_flag_ble_data_finish ,queue 
+4d08 20204d09 branch module_clr_state 
+
+module_clr_state:
+4d09 6fe14526 fetch 2 ,mem_module_flag 
+4d0a f93ffe00 qset0 pdata 
+4d0b 67e14526 store 2 ,mem_module_flag 
+4d0c 20600000 rtn 
+
+module_set_state:
+4d0d 6fe14526 fetch 2 ,mem_module_flag 
+4d0e f9207e00 qset1 pdata 
+4d0f 67e14526 store 2 ,mem_module_flag 
+4d10 20600000 rtn 
+
+mouse_init:
+4d11 20407384 call enable_authrom 
+4d12 2055cd20 call mouse_wake_gpio_set ,wake 
+4d13 20404d40 call mouse_setting_config 
+4d14 20404dec call mouse_le_name_modify 
+4d15 20405260 call mouse_init_sunt 
+4d16 20758000 rtn wake 
+4d17 20405b83 call mouse_usb_check_enable 
+4d18 2040506b call mouse_setting_sensor_type 
+4d19 20405853 call mouse_drawing_optima_init 
+4d1a 20404d22 call mouse_cb_fuction 
+4d1b 20405303 call mouse_sensor_powerdown 
+
+mouse_init_wireless:
+4d1c 6fe14500 fetch 2 ,mem_ui_state_map 
+4d1d c2865544 bbit1 ui_state_btn_down ,mouse_start_discovery 
+4d1e 204057d7 call mouse_check_select_device_by_switch_once 
+4d1f 20204df5 branch mouse_start_work 
+
+mouse_wake_gpio_set:
+4d20 20405203 call mouse_matrix_public_gpio_reset 
+4d21 20206f4e branch lpm_config_puchk_disable 
+
+mouse_cb_fuction:
+4d22 44b9400e bpatch patch0e_2 ,mem_patch0e 
+4d23 58005b02 setarg mouse_24g_short_sleep 
+4d24 67e1460f store 2 ,mem_cb_24g_transmit_short_sleep 
+4d25 58005af7 setarg mouse_24g_long_sleep 
+4d26 67e14611 store 2 ,mem_cb_24g_transmit_long_sleep 
+4d27 580059f0 setarg mouse_24g_before_lpm_sleep 
+4d28 67e143f2 store 2 ,mem_cb_before_lpm_sleep 
+4d29 580059bc setarg mouse_24g_package_data 
+4d2a 67e14609 store 2 ,mem_cb_24g_transmit_data 
+4d2b 58006886 setarg mouse_24g_search_dongle 
+4d2c 67e1460b store 2 ,mem_cb_24g_search_receiver 
+4d2d 58004e75 setarg mouse_lpm_before_common 
+4d2e 67e1460d store 2 ,mem_cb_24g_lpm_before 
+4d2f 58005438 setarg mouse_le 
+4d30 67e143e2 store 2 ,mem_cb_le_process 
+4d31 58004e70 setarg mouse_process_lpm_before 
+4d32 67e143e0 store 2 ,mem_cb_before_lpm 
+4d33 580053da setarg mouse_priority_bb_event 
+4d34 67e143e6 store 2 ,mem_cb_bb_event_process 
+4d35 58005759 setarg mouse_idle 
+4d36 67e143e4 store 2 ,mem_cb_idle_process 
+4d37 58004e3d setarg mouse_before_hibernate 
+4d38 67e143de store 2 ,mem_cb_before_hibernate 
+4d39 58005420 setarg mouse_le_bb_event_connect_complete 
+4d3a 67e143e8 store 2 ,mem_cb_att_write 
+4d3b 58005494 setarg mouse_bb_event_timer 
+4d3c 67e143ec store 2 ,mem_cb_event_timer 
+4d3d 58004e2d setarg mouse_lpm_check_wake_lock 
+4d3e 67e143dc store 2 ,mem_cb_check_wakelock 
+4d3f 202068cb branch hid_device_cb_fuction 
+
+mouse_setting_config:
+4d40 20758000 rtn wake 
+4d41 204035c8 call g24_transmit_init 
+4d42 2040323a call g24_chmap_param_init 
+4d43 20405b7f call mouse_24g_send_time_long_wake 
+4d44 20404ee5 call mouse_gpio_init 
+4d45 20404d88 call mouse_param_info_init 
+4d46 20405a4b call mouse_device_multi_led_parm_init 
+4d47 20402a1f call le_set_fixed_ltk_justwork 
+
+mouse_load_device_info_check:
+4d48 44b9c00e bpatch patch0e_3 ,mem_patch0e 
+4d49 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4d4a c288d640 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+4d4b c2885650 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+4d4c c2895685 bbit1 mouse_enable_otp ,mouse_load_otp_info_check 
+4d4d 20600000 rtn 
+
+mouse_xtal_init:
+4d4e 70409910 jam xtal_16m ,mem_fcomp_div 
+4d4f 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4d50 c3858000 rtnbit1 mouse_enable_16m 
+4d51 70409918 jam xtal_24m ,mem_fcomp_div 
+4d52 20600000 rtn 
+
+mouse_24g_phy_select:
+4d53 20403260 call g24_enable_1m 
+4d54 7048fa00 jam 0 ,mem_mouse_sleep_deal_type 
+4d55 7045e100 jam 0 ,mem_24g_disable_fec1 
+4d56 70444e00 jam 0 ,mem_power_ctrl_disable 
+4d57 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4d58 c41e8000 rtnbit0 mouse_enable_24g_2m_phy 
+4d59 7048fa01 jam 1 ,mem_mouse_sleep_deal_type 
+4d5a 7045e101 jam 1 ,mem_24g_disable_fec1 
+4d5b 70444e01 jam 1 ,mem_power_ctrl_disable 
+4d5c 20203263 branch g24_enable_2m 
+
+mouse_g24_reconn_dispatch_set:
+4d5d 4778403e bpatchx patch3e_0 ,mem_patch3e 
+4d5e 6fe0c594 fetch 1 ,mem_24g_rxdata_length 
+4d5f 203a4d65 branch mouse_receiver_addr_check ,blank 
+
+mouse_g24_reconn_dispatch:
+4d60 6fe245e3 fetch 4 ,mem_24g_pair_addr 
+4d61 684a45a6 fetcht 4 ,mem_24g_addr 
+4d62 98467c00 isub temp ,null 
+4d63 2022cd6c branch mouse_g24_reconn_mode_judge ,zero 
+4d64 20203546 branch g24_reconn_dispatch_success 
+
+mouse_receiver_addr_check:
+4d65 6fe245fb fetch 4 ,mem_24g_fast_conn_addr 
+4d66 684a45a6 fetcht 4 ,mem_24g_addr 
+4d67 98467c00 isub temp ,null 
+4d68 2022cd60 branch mouse_g24_reconn_dispatch ,zero 
+4d69 6fe24576 fetch 4 ,mem_24g_rxpayload + 2 
+4d6a 207a0000 rtn blank 
+4d6b 20204d60 branch mouse_g24_reconn_dispatch 
+
+mouse_g24_reconn_mode_judge:
+4d6c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4d6d c298596c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_pair_mode_check 
+4d6e c29f596c bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_pair_mode_check 
+4d6f 2020351f branch g24_reconn_receiver_addr 
+
+mouse_g24_transmit_hop_process:
+4d70 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4d71 c31eb658 bbit0 mouse_enable_24g_2m_phy ,g24_transmit_hop_process_next 
+
+mouse_g24_transmit_hop_process_new:
+4d72 6848c618 fetcht 1 ,mem_24g_retry 
+4d73 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
+4d74 98467c00 isub temp ,null 
+4d75 24213675 nbranch g24_tx_fast_hop ,positive 
+4d76 18408401 increase 1 ,temp 
+4d77 6048c618 storet 1 ,mem_24g_retry 
+4d78 6fe0c638 fetch 1 ,mem_24g_fast_hop_count 
+4d79 c007cd7e beq 15 ,mouse_g24_transmit_hop_process_4ms 
+4d7a 6fe0c618 fetch 1 ,mem_24g_retry 
+4d7b c00a366f beq 20 ,g24_hop_ch_disable 
+4d7c c00f366f beq 30 ,g24_hop_ch_disable 
+4d7d 20600000 rtn 
+
+mouse_g24_transmit_hop_process_4ms:
+4d7e 6fe0c618 fetch 1 ,mem_24g_retry 
+4d7f c005366f beq 10 ,g24_hop_ch_disable 
+4d80 c007b66f beq 15 ,g24_hop_ch_disable 
+4d81 20600000 rtn 
+
+mouse_default_init:
+4d82 44ba400e bpatch patch0e_4 ,mem_patch0e 
+4d83 204067ff call hid_device_default_parm_init 
+4d84 20404d4e call mouse_xtal_init 
+4d85 20404d53 call mouse_24g_phy_select 
+4d86 204058fc call mouse_24g_long_sleep_set 
+4d87 20203266 branch g24_pair_param_init 
+
+mouse_param_info_init:
+4d88 44bac00e bpatch patch0e_5 ,mem_patch0e 
+4d89 20404d93 call mouse_param_common_init 
+4d8a 20404da5 call mouse_report_rate_parm_init 
+4d8b 20404dd3 call mouse_sensor_set_angle 
+
+mouse_spi_parm_init:
+4d8c 58000a77 setarg 0x0a77 
+4d8d 67e143fe store 2 ,mem_spi_init_clk 
+4d8e 38001224 setsect 0 ,0x1224 
+4d8f 38044000 setsect 1 ,0x4000 
+4d90 38080000 setsect 2 ,0x0 
+4d91 e7e28005 istore 5 ,contw 
+4d92 20600000 rtn 
+
+mouse_param_common_init:
+4d93 58009000 setarg mouse_ble_att_list_addr 
+4d94 67e142f9 store 2 ,mem_ui_le_uuid_table 
+4d95 70491700 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+4d96 58000000 setarg 0 
+4d97 67e3c65c store 7 ,mem_mouse_key 
+4d98 6fe0c502 fetch 1 ,mem_ui_button_timeout 
+4d99 67e0c731 store 1 ,mem_bt_discovery_count 
+4d9a 67e0c732 store 1 ,mem_select_device_count 
+4d9b 7045a001 jam type_ms ,mem_24g_data_type 
+4d9c 7045fa01 jam 1 ,mem_24g_fast_conn_enable 
+4d9d 704ac400 jam 0 ,mem_mouse_pair_flag 
+4d9e 20404da0 call mouse_compare_addr_init 
+4d9f 2020680c branch hid_device_param_common_init 
+
+mouse_compare_addr_init:
+4da0 d8400000 arg 0 ,temp 
+4da1 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4da2 c289681d bbit1 mouse_enable_otp ,hid_device_compare_addr_store 
+4da3 d85fffff arg 0xffffff ,temp 
+4da4 2020681d branch hid_device_compare_addr_store 
+
+mouse_report_rate_parm_init:
+4da5 20404dae call mouse_24g_report_rate_parm_init 
+4da6 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
+4da7 67e1c8dc store 3 ,mem_mouse_24g_short_sleep_set_init 
+
+mouse_le_report_rate_parm_init:
+4da8 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4da9 c40d8000 rtnbit0 mouse_enable_bt_125hz 
+4daa 58000006 setarg le_interval_7_5ms 
+
+mouse_le_interval_store:
+4dab 67e142d5 store 2 ,mem_le_interval_min 
+4dac 67e142d7 store 2 ,mem_le_interval_min + 2 
+4dad 20600000 rtn 
+
+mouse_24g_report_rate_parm_init:
+4dae 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4daf c28ccdb2 bbit1 mouse_enable_24g_500hz ,mouse_g24_interval_param_2ms 
+4db0 c28c4db9 bbit1 mouse_enable_24g_250hz ,mouse_g24_interval_param_4ms 
+4db1 20204dc6 branch mouse_g24_interval_param_8ms 
+
+mouse_g24_interval_param_2ms:
+4db2 6fe0c8bf fetch 1 ,mem_mouse_24g_fast_hop_count_2ms 
+4db3 67e0c638 store 1 ,mem_24g_fast_hop_count 
+4db4 6fe248d0 fetch 4 ,mem_mouse_24g_tsniff_2ms 
+4db5 67e248cc store 4 ,mem_mouse_24g_tsniff 
+
+mouse_report_rate_set_500hz:
+4db6 58080606 setarg 0x080606 
+4db7 67e1c5be store 3 ,mem_24g_interval 
+4db8 202036bb branch g24_transmit_by_interrupt_enable 
+
+mouse_g24_interval_param_4ms:
+4db9 6fe1c8c0 fetch 3 ,mem_mouse_24g_short_sleep_set_4ms 
+4dba 67e1c61f store 3 ,mem_24g_short_sleep_set 
+4dbb 6fe1c8c3 fetch 3 ,mem_mouse_24g_long_sleep_set_4ms 
+4dbc 67e1c622 store 3 ,mem_24g_long_sleep_set 
+4dbd 6fe248d4 fetch 4 ,mem_mouse_24g_tsniff_4ms 
+4dbe 67e248cc store 4 ,mem_mouse_24g_tsniff 
+4dbf 58100c0c setarg 0x100c0c 
+4dc0 67e1c5be store 3 ,mem_24g_interval 
+4dc1 70463805 jam 0x05 ,mem_24g_fast_hop_count 
+4dc2 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4dc3 c41e8000 rtnbit0 mouse_enable_24g_2m_phy 
+4dc4 7046380f jam 0x0f ,mem_24g_fast_hop_count 
+4dc5 20600000 rtn 
+
+mouse_g24_interval_param_8ms:
+4dc6 6fe1c8c6 fetch 3 ,mem_mouse_24g_short_sleep_set_8ms 
+4dc7 67e1c61f store 3 ,mem_24g_short_sleep_set 
+4dc8 6fe1c8c9 fetch 3 ,mem_mouse_24g_long_sleep_set_8ms 
+4dc9 67e1c622 store 3 ,mem_24g_long_sleep_set 
+4dca 6fe248d8 fetch 4 ,mem_mouse_24g_tsniff_8ms 
+4dcb 67e248cc store 4 ,mem_mouse_24g_tsniff 
+4dcc 581c1919 setarg 0x1c1919 
+4dcd 67e1c5be store 3 ,mem_24g_interval 
+4dce 7046380b jam 0x0b ,mem_24g_fast_hop_count 
+4dcf 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4dd0 c41e8000 rtnbit0 mouse_enable_24g_2m_phy 
+4dd1 7046381e jam 0x1e ,mem_24g_fast_hop_count 
+4dd2 20600000 rtn 
+
+mouse_sensor_set_angle:
+4dd3 44bb400e bpatch patch0e_6 ,mem_patch0e 
+4dd4 20404de9 call mouse_set_sensor_angle_float 
+4dd5 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
+4dd6 c17f8000 rtneq gpio_disable 
+4dd7 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
+4dd8 20405258 call mouse_gpio_config_pu_check 
+4dd9 6848c895 fetcht 1 ,mem_select_sensor_angle_gpio 
+4dda 20406ee0 call gpio_get_bit 
+4ddb 2020cde5 branch mouse_set_sensor_angle_gnd ,true 
+4ddc 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
+4ddd 2040525c call mouse_gpio_config_pd_check 
+4dde 6848c895 fetcht 1 ,mem_select_sensor_angle_gpio 
+4ddf 20406ee0 call gpio_get_bit 
+4de0 2020cde9 branch mouse_set_sensor_angle_float ,true 
+
+mouse_set_sensor_angle_vin:
+4de1 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
+4de2 20405258 call mouse_gpio_config_pu_check 
+4de3 6fe0c898 fetch 1 ,mem_sensor_angle_vin 
+4de4 20204dea branch mouse_store_sensor_angle 
+
+mouse_set_sensor_angle_gnd:
+4de5 6fe0c895 fetch 1 ,mem_select_sensor_angle_gpio 
+4de6 2040525c call mouse_gpio_config_pd_check 
+4de7 6fe0c897 fetch 1 ,mem_sensor_angle_gnd 
+4de8 20204dea branch mouse_store_sensor_angle 
+
+mouse_set_sensor_angle_float:
+4de9 6fe0c896 fetch 1 ,mem_sensor_angle_default 
+
+mouse_store_sensor_angle:
+4dea 67e0c9fb store 1 ,mem_config_sensor_angle 
+4deb 20600000 rtn 
+
+mouse_le_name_modify:
+4dec 44bc400f bpatch patch0f_0 ,mem_patch0f 
+4ded 20758000 rtn wake 
+4dee 6fe0ca1e fetch 1 ,mem_le_name_patch_len 
+4def 207a0000 rtn blank 
+4df0 1fe0f201 add pdata ,1 ,loopcnt 
+4df1 d8c04a1e arg mem_le_name_patch_len ,contr 
+4df2 d8a0426d arg mem_le_name_len ,contw 
+4df3 20407cdc call memcpy 
+4df4 20202948 branch le_modified_name_adv 
+
+mouse_start_work:
+4df5 44bcc00f bpatch patch0f_1 ,mem_patch0f 
+4df6 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4df7 c29f594b bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+4df8 6fe0c678 fetch 1 ,mem_device_flag 
+4df9 c000593a beq mode_24g_device ,mouse_24g_start_mode 
+
+mouse_le_fast_conn_judge:
+4dfa 20405a70 call mouse_device_le_reconn_led_config 
+4dfb 204053c1 call mouse_bluetooth_fast_conn_disable 
+4dfc 6fe0c678 fetch 1 ,mem_device_flag 
+4dfd c000ce00 beq mode_bt_device1 ,mouse_le_device1_judge 
+4dfe c0014e05 beq mode_bt_device2 ,mouse_le_device2_judge 
+4dff 20600000 rtn 
+
+mouse_le_device1_judge:
+4e00 6fe3467a fetch 6 ,mem_device1_addr 
+4e01 684b46f8 fetcht 6 ,mem_device_compare_addr 
+4e02 98467c00 isub temp ,null 
+4e03 2022d3ad branch mouse_bluetooth_fast_conn_init ,zero 
+4e04 20204e09 branch mouse_start_reconnect_device 
+
+mouse_le_device2_judge:
+4e05 6fe34687 fetch 6 ,mem_device2_addr 
+4e06 684b46f8 fetcht 6 ,mem_device_compare_addr 
+4e07 98467c00 isub temp ,null 
+4e08 2022d3ad branch mouse_bluetooth_fast_conn_init ,zero 
+
+mouse_start_reconnect_device:
+4e09 44bd400f bpatch patch0f_2 ,mem_patch0f 
+4e0a da204679 arg mem_device1_type ,rega 
+4e0b 6fe0c678 fetch 1 ,mem_device_flag 
+4e0c 1fe0ffff increase -1 ,pdata 
+4e0d 1feffe0d mul32 pdata ,13 ,pdata 
+4e0e 9a20a200 iadd rega ,rega 
+4e0f efe08011 ifetch 1 ,rega 
+4e10 67e0c3fc store 1 ,mem_xrecord_mode 
+
+mouse_start_reconnect:
+4e11 6fe0c3fc fetch 1 ,mem_xrecord_mode 
+4e12 c01a4e1e beq rec_4_mode ,mouse4_0_check_reconn_target 
+4e13 202053ad branch mouse_bluetooth_fast_conn_init 
+
+mouse_wakeup_from_power_check:
+4e14 44bdc00f bpatch patch0f_3 ,mem_patch0f 
+4e15 78547c00 disable user 
+4e16 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4e17 c3054e1b bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_from_poweron 
+4e18 6ff08132 fetch 1 ,core_lpm_isogate 
+4e19 c2824e1b bbit1 cold_wake ,mouse_wakeup_from_poweron 
+4e1a 78347c00 enable user 
+
+mouse_wakeup_from_poweron:
+4e1b 6fe0c740 fetch 1 ,mem_reconn_times_init 
+4e1c 67e0c73f store 1 ,mem_reconn_times 
+4e1d 20600000 rtn 
+
+mouse4_0_check_reconn_target:
+4e1e 70475401 jam 1 ,mem_device_le_reconnect_flag 
+4e1f 6848c719 fetcht 1 ,mem_device_fast_direct_timeout 
+4e20 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+4e21 c07fce23 beq 0xff ,mouse4_0_check_reconn_target_next 
+4e22 6848c653 fetcht 1 ,mem_device_direct_timeout 
+
+mouse4_0_check_reconn_target_next:
+4e23 6048c720 storet 1 ,mem_device_direct_timer 
+4e24 204037a2 call app_lpm_mult_disable 
+4e25 6fe1c75c fetch 3 ,mem_le_adv_direct_ind 
+4e26 67e1c351 store 3 ,mem_le_adv_data + 4 
+4e27 2040545e call mouse_le_check_adv_flag 
+4e28 58000004 setarg adv_flag_bredr_not_supported 
+4e29 e7e08006 istore 1 ,contr 
+4e2a d8c0436d arg mem_le_scan_data ,contr 
+4e2b 20405465 call mouse_le_adv_data_update 
+4e2c 20207860 branch check_51cmd_adv 
+
+mouse_lpm_check_wake_lock:
+4e2d c513377d bmark1 mark_24g ,app_get_lpm_wake_lock 
+4e2e 6fe0c9f9 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+4e2f 203a377d branch app_get_lpm_wake_lock ,blank 
+4e30 6fe0c781 fetch 1 ,mem_le_conn_param_reject 
+4e31 c000b77d beq le_lpm_disable ,app_get_lpm_wake_lock 
+4e32 6fe0c672 fetch 1 ,mem_mouse_wheel_trigger 
+4e33 243a377d nbranch app_get_lpm_wake_lock ,blank 
+4e34 2020377f branch app_put_lpm_wake_lock 
+
+mouse_app_enter_hibernate:
+4e35 44be400f bpatch patch0f_4 ,mem_patch0f 
+4e36 58000006 setarg pan_reg_config 
+4e37 20406971 call twspi_read 
+4e38 c281ce3b bbit1 3 ,mouse_app_enter_hibernate_next 
+4e39 204052f0 call mouse_sensor_reset 
+4e3a 20405303 call mouse_sensor_powerdown 
+
+mouse_app_enter_hibernate_next:
+4e3b 20404e42 call mouse_setgpio_hibernate 
+4e3c 2020379c branch app_enter_hibernate 
+
+mouse_before_hibernate:
+4e3d 44bec00f bpatch patch0f_5 ,mem_patch0f 
+4e3e 20407388 call disable_authrom 
+4e3f 2040567d call mouse_flash_power_down 
+4e40 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
+4e41 20206ecd branch gpio_clr_wake 
+
+mouse_setgpio_hibernate:
+4e42 44bf400f bpatch patch0f_6 ,mem_patch0f 
+4e43 204053ab call mouse_set_sdio_high 
+4e44 20407de6 call clear_wake 
+4e45 20404fc9 call mouse_before_hibernate_wheel_gpio_set 
+4e46 6fe0c894 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+4e47 20405254 call mouse_gpio_config_output_high 
+4e48 6848c665 fetcht 1 ,mem_device_switch_gpio 
+4e49 20404f02 call mouse_gpio_set_pupd_by_input 
+4e4a 20404e75 call mouse_lpm_before_common 
+4e4b 6848c666 fetcht 1 ,mem_device_reuse_2ice_gpio 
+4e4c 20404f0a call device_gpio_config_input_pu 
+4e4d 20404f0e call mouse_gpio_set_analog 
+4e4e 204059fc call mouse_logo_led_off 
+4e4f 20405ace call mouse_device_multi_led_all_off 
+4e50 20404e5c call mouse_adc_gpio_set_before_hibernate 
+4e51 20204e52 branch mouse_wheel_gpio_set_before_hibernate 
+
+mouse_wheel_gpio_set_before_hibernate:
+4e52 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4e53 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+
+mouse_wheel_gpio_clr_wakeup:
+4e54 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
+4e55 20406ecd call gpio_clr_wake 
+4e56 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
+4e57 20406ecd call gpio_clr_wake 
+4e58 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
+4e59 20404f06 call device_gpio_config_input_pd 
+4e5a 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
+4e5b 20204f06 branch device_gpio_config_input_pd 
+
+mouse_adc_gpio_set_before_hibernate:
+4e5c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4e5d c4098000 rtnbit0 mouse_enable_adc 
+4e5e 6fe0c41d fetch 1 ,mem_adc_config_flag 
+4e5f c1810000 rtnne adc_config_gpio 
+4e60 6848c64c fetcht 1 ,mem_adc_channel_gpio 
+4e61 20206f05 branch gpio_set_analog 
+
+mouse_gpio_pd_idle:
+4e62 d8c08070 arg core_gpio_conf ,contr 
+4e63 df200010 arg gpio_number ,loopcnt 
+
+mouse_gpio_pd_idle_loop:
+4e64 efe08006 ifetch 1 ,contr 
+4e65 243a4e69 nbranch mouse_gpio_pd_idle_configured ,blank 
+4e66 58000080 setarg gpcfg_pulldown 
+4e67 18c08bff add contr ,-1 ,contw 
+4e68 e7e08005 istore 1 ,contw 
+
+mouse_gpio_pd_idle_configured:
+4e69 c2004e64 loop mouse_gpio_pd_idle_loop 
+4e6a dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+4e6b 98c67c00 isub contr ,null 
+4e6c 20628000 rtn zero 
+
+mouse_gpio_pd_idle_ext:
+4e6d df200008 arg gpio_number_ext ,loopcnt 
+4e6e d8c080d4 arg core_gpio_conf_hi ,contr 
+4e6f 20204e64 branch mouse_gpio_pd_idle_loop 
+
+mouse_process_lpm_before:
+4e70 c6130000 rtnmark1 mark_24g 
+4e71 20404e75 call mouse_lpm_before_common 
+4e72 6fe08015 fetch 1 ,mem_lpm_current_mult 
+4e73 247a0000 nrtn blank 
+4e74 20206ecd branch gpio_clr_wake 
+
+mouse_lpm_before_common:
+4e75 44bfc00f bpatch patch0f_7 ,mem_patch0f 
+4e76 70488c00 jam 0 ,mem_qdec_set_flag 
+4e77 20407de6 call clear_wake 
+4e78 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+4e79 20406ef1 call gpio_out_active 
+4e7a 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+4e7b 20406ecd call gpio_clr_wake 
+4e7c 20404f42 call mouse_wheel_check 
+4e7d 6fe0c893 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+4e7e 20405254 call mouse_gpio_config_output_high 
+4e7f 20406968 call twspi_disable 
+4e80 6848c88d fetcht 1 ,mem_lbutton_gpio 
+4e81 20406eac call gpio_set_wake 
+4e82 6848c88f fetcht 1 ,mem_rbutton_gpio 
+4e83 20406eac call gpio_set_wake 
+4e84 6848c88e fetcht 1 ,mem_mbutton_gpio 
+4e85 20406eac call gpio_set_wake 
+4e86 6848c890 fetcht 1 ,mem_bk_button_gpio 
+4e87 20406eac call gpio_set_wake 
+4e88 6848c891 fetcht 1 ,mem_fw_button_gpio 
+4e89 20406eac call gpio_set_wake 
+4e8a 6848c892 fetcht 1 ,mem_dpi_button_gpio 
+4e8b 20406eac call gpio_set_wake 
+4e8c 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
+4e8d 20406eac call gpio_set_wake 
+4e8e 6848c89e fetcht 1 ,mem_customer_key_gpio 
+4e8f 20406eac call gpio_set_wake 
+4e90 20404e62 call mouse_gpio_pd_idle 
+4e91 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
+4e92 20406ea5 call gpio_set_wake_by_current_state 
+4e93 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
+4e94 20406ea5 call gpio_set_wake_by_current_state 
+4e95 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
+4e96 20406ea5 call gpio_set_wake_by_current_state 
+4e97 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
+4e98 20406ea5 call gpio_set_wake_by_current_state 
+4e99 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
+4e9a 20206eac branch gpio_set_wake 
+
+mouse_set_mult:
+4e9b 6fe14500 fetch 2 ,mem_ui_state_map 
+4e9c c4048000 rtnbit0 ui_state_ble_connected 
+4e9d 1a227e00 copy rega ,pdata 
+4e9e 243a29b4 nbranch le_set_config_short_mult ,blank 
+4e9f 202029b9 branch le_clr_config_short_mult 
+
+mouse_adc_gpio_set:
+4ea0 44c04010 bpatch patch10_0 ,mem_patch10 
+4ea1 6fe0c41d fetch 1 ,mem_adc_config_flag 
+4ea2 c1810000 rtnne adc_config_gpio 
+4ea3 6848c64c fetcht 1 ,mem_adc_channel_gpio 
+4ea4 20206f0b branch gpio_set_high_impedance 
+
+mouse_adc_read:
+4ea5 44c0c010 bpatch patch10_1 ,mem_patch10 
+4ea6 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4ea7 c4098000 rtnbit0 mouse_enable_adc 
+4ea8 20404ea0 call mouse_adc_gpio_set 
+
+mouse_adc_read_start:
+4ea9 20406fb2 call enable_adc 
+4eaa 20406f8e call vdd_calculate_by_mode 
+4eab 67e1464a store 2 ,mem_device_vdd_now_vol 
+4eac 6fe0c41d fetch 1 ,mem_adc_config_flag 
+4ead c0814eb4 bne adc_config_gpio ,mouse_adc_data_process 
+4eae 6849464a fetcht 2 ,mem_device_vdd_now_vol 
+4eaf 184ffe08 mul32 temp ,8 ,pdata 
+4eb0 1fe6fc0a div pdata ,10 
+4eb1 20407d61 call get_div_result 
+4eb2 9840fe00 iadd temp ,pdata 
+4eb3 67e1464a store 2 ,mem_device_vdd_now_vol 
+
+mouse_adc_data_process:
+4eb4 da204644 arg mem_device_vdd_calculate_set ,rega 
+4eb5 20404ec4 call mouse_adc_bat_percent_lowpower_out 
+4eb6 6fe0c422 fetch 1 ,mem_adc_power_flag 
+4eb7 c280ce35 bbit1 1 ,mouse_app_enter_hibernate 
+4eb8 c3004ebd bbit0 0 ,mouse_adc_no_low_voltage 
+4eb9 70464e01 jam 1 ,mem_device_adc_last_low_voltage_flag 
+4eba 20204ebb branch mouse_adc_low_voltage 
+
+mouse_adc_low_voltage:
+4ebb d8e00004 arg mouse_low_voltage_flag ,queue 
+4ebc 2020582e branch mouse_enable_function_flag 
+
+mouse_adc_no_low_voltage:
+4ebd d8e00004 arg mouse_low_voltage_flag ,queue 
+4ebe 20405832 call mouse_disable_function_flag 
+4ebf 70464d01 jam 1 ,mem_adc_low_volatage_led_timer_count 
+4ec0 6fe0c64e fetch 1 ,mem_device_adc_last_low_voltage_flag 
+4ec1 207a0000 rtn blank 
+4ec2 70464e00 jam 0 ,mem_device_adc_last_low_voltage_flag 
+4ec3 20205a43 branch mouse_low_voltage_led_off_judge 
+
+mouse_adc_bat_percent_lowpower_out:
+4ec4 44c14010 bpatch patch10_2 ,mem_patch10 
+4ec5 efe40011 ifetch 8 ,rega 
+4ec6 67e4064e store 8 ,mem_pdatatemp 
+
+mouse_adc_bat_percent_lowpower_out_battery:
+4ec7 20407057 call adc_clear_no_power_flag 
+4ec8 20407051 call adc_clear_low_power_flag 
+4ec9 6fe10654 fetch 2 ,mem_pdatatemp + 6 
+4eca 68490650 fetcht 2 ,mem_pdatatemp + 2 
+4ecb 98467c00 isub temp ,null 
+4ecc 24417054 ncall adc_set_no_power_flag ,positive 
+4ecd 68490652 fetcht 2 ,mem_pdatatemp + 4 
+4ece 98467c00 isub temp ,null 
+4ecf 2441704e ncall adc_set_low_power_flag ,positive 
+
+mouse_adc_bat_level_set:
+4ed0 6fe10654 fetch 2 ,mem_pdatatemp + 6 
+4ed1 6849064e fetcht 2 ,mem_pdatatemp 
+4ed2 98467c00 isub temp ,null 
+4ed3 20214ee1 branch mouse_adc_bat_level_100_percent ,positive 
+4ed4 68490650 fetcht 2 ,mem_pdatatemp + 2 
+4ed5 98467e00 isub temp ,pdata 
+4ed6 24214ee3 nbranch mouse_adc_bat_level_0_percent ,positive 
+4ed7 203a4ee3 branch mouse_adc_bat_level_0_percent ,blank 
+4ed8 1fefa264 mul32 pdata ,100 ,rega 
+4ed9 6fe1064e fetch 2 ,mem_pdatatemp 
+4eda 68490650 fetcht 2 ,mem_pdatatemp + 2 
+4edb 98460400 isub temp ,temp 
+4edc 1a227e00 copy rega ,pdata 
+4edd 9846fc00 idiv temp 
+4ede 20407d61 call get_div_result 
+4edf 67e0c77c store 1 ,mem_le_battery_level_percentage 
+4ee0 20600000 rtn 
+
+mouse_adc_bat_level_100_percent:
+4ee1 70477c64 jam 100 ,mem_le_battery_level_percentage 
+4ee2 20600000 rtn 
+
+mouse_adc_bat_level_0_percent:
+4ee3 70477c00 jam 0 ,mem_le_battery_level_percentage 
+4ee4 20600000 rtn 
+
+mouse_gpio_init:
+4ee5 6848c43e fetcht 1 ,mem_eeprom_wp_gpio 
+4ee6 20406ef1 call gpio_config_output 
+4ee7 6848c88d fetcht 1 ,mem_lbutton_gpio 
+4ee8 20404f0a call device_gpio_config_input_pu 
+4ee9 6848c88f fetcht 1 ,mem_rbutton_gpio 
+4eea 20404f0a call device_gpio_config_input_pu 
+4eeb 6848c88e fetcht 1 ,mem_mbutton_gpio 
+4eec 20404f0a call device_gpio_config_input_pu 
+4eed 6848c890 fetcht 1 ,mem_bk_button_gpio 
+4eee 20404f0a call device_gpio_config_input_pu 
+4eef 6848c891 fetcht 1 ,mem_fw_button_gpio 
+4ef0 20404f0a call device_gpio_config_input_pu 
+4ef1 6848c892 fetcht 1 ,mem_dpi_button_gpio 
+4ef2 20404f0a call device_gpio_config_input_pu 
+4ef3 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+4ef4 20404f0a call device_gpio_config_input_pu 
+4ef5 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
+4ef6 20404f0a call device_gpio_config_input_pu 
+4ef7 6848c89e fetcht 1 ,mem_customer_key_gpio 
+4ef8 20404f0a call device_gpio_config_input_pu 
+4ef9 2040591f call mouse_wheel_gpio_init 
+4efa 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
+4efb 20404f0a call device_gpio_config_input_pu 
+4efc 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
+4efd 20404f0a call device_gpio_config_input_pu 
+4efe 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
+4eff 20404f0a call device_gpio_config_input_pu 
+4f00 6848c665 fetcht 1 ,mem_device_switch_gpio 
+4f01 20204f0a branch device_gpio_config_input_pu 
+
+mouse_gpio_set_pupd_by_input:
+4f02 18410e7f and temp ,0x7f ,queue 
+4f03 6ff2011c fetch 4 ,core_gpio_in 
+4f04 afefffff qisolate1 pdata 
+4f05 2020cf0a branch device_gpio_config_input_pu ,true 
+
+device_gpio_config_input_pd:
+4f06 18467cff sub temp ,ui_button_gpio_disable ,null 
+4f07 20628000 rtn zero 
+4f08 79200407 set1 gpio_active_bit ,temp 
+4f09 20206ed7 branch gpio_config_input 
+
+device_gpio_config_input_pu:
+4f0a 18467cff sub temp ,ui_button_gpio_disable ,null 
+4f0b 20628000 rtn zero 
+4f0c 793f8407 set0 gpio_active_bit ,temp 
+4f0d 20206ed7 branch gpio_config_input 
+
+mouse_gpio_set_analog:
+4f0e 6fe1c72e fetch 3 ,mem_device_set_analog_bit_set 
+4f0f 67e1864e store 3 ,mem_pdatatemp 
+4f10 df200018 arg 24 ,loopcnt 
+4f11 d8400000 arg 0 ,temp 
+
+mouse_gpio_set_analog_bit_loop:
+4f12 6fe1864e fetch 3 ,mem_pdatatemp 
+4f13 2feffe00 isolate1 0 ,pdata 
+4f14 2040ef05 call gpio_set_analog ,true 
+4f15 6fe1864e fetch 3 ,mem_pdatatemp 
+4f16 1fe3fe00 lshift pdata ,pdata 
+4f17 67e1864e store 3 ,mem_pdatatemp 
+4f18 18408401 increase 1 ,temp 
+4f19 c2004f12 loop mouse_gpio_set_analog_bit_loop 
+4f1a 20600000 rtn 
+
+mouse_sensor_spi_init:
+4f1b 20404f20 call mouse_spid_init_pin 
+4f1c 7043fe73 jam 0x73 ,mem_spi_init_clk 
+4f1d 20404f1f call mouse_spi_init 
+4f1e 2020696c branch twspi_enable 
+
+mouse_spi_write_flash_cb:
+
+mouse_spi_init:
+4f1f 20206bbc branch spid_init 
+
+mouse_spid_init_pin:
+4f20 6fe0c893 fetch 1 ,mem_mouse_sensor_sclk_gpio 
+4f21 d8400021 arg gpcfg_spid_sck ,temp 
+4f22 20406f1d call gpio_config_function_int 
+4f23 6fe0c894 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+4f24 d8400023 arg gpcfg_spid_sdio ,temp 
+4f25 20206f1d branch gpio_config_function_int 
+
+mouse_motion:
+4f26 44c1c010 bpatch patch10_3 ,mem_patch10 
+4f27 2040684e call hid_device_copy_key_data 
+4f28 78547c00 disable user 
+4f29 58000000 setarg 0 
+4f2a 67e3465d store 6 ,mem_mouse_x 
+4f2b 2040530c call mouse_check_sensor_data 
+4f2c 58000089 setarg 0x0089 
+4f2d 20406970 call twspi_write 
+4f2e 2040506b call mouse_setting_sensor_type 
+4f2f 20404f38 call mouse_zwheel 
+4f30 20404f3d call mouse_t_zwheel 
+4f31 204050ca call mouse_key 
+4f32 6fe0c65c fetch 1 ,mem_mouse_key 
+4f33 1fe17e1f and_into 0x1f ,pdata 
+4f34 67e0c65c store 1 ,mem_mouse_key 
+4f35 24345853 nbranch mouse_drawing_optima_init ,user 
+4f36 20405841 call mouse_drawing_optima 
+4f37 20205535 branch mouse_no_data_timer_init 
+
+mouse_zwheel:
+4f38 6fe0c671 fetch 1 ,mem_mouse_z_data 
+4f39 207a0000 rtn blank 
+4f3a 67e0c661 store 1 ,mem_mouse_z 
+4f3b 70467100 jam 0 ,mem_mouse_z_data 
+4f3c 20207dbc branch enable_user 
+
+mouse_t_zwheel:
+4f3d 6fe0c66d fetch 1 ,mem_mouse_tz_data 
+4f3e 207a0000 rtn blank 
+4f3f 67e0c662 store 1 ,mem_mouse_tz 
+4f40 70466d00 jam 0 ,mem_mouse_tz_data 
+4f41 20207dbc branch enable_user 
+
+mouse_wheel_check:
+4f42 44c24010 bpatch patch10_4 ,mem_patch10 
+4f43 2040591f call mouse_wheel_gpio_init 
+4f44 20404f51 call mouse_t_wheel_scan 
+4f45 20404f8d call mouse_wheel_scan 
+4f46 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
+4f47 6848c66a fetcht 1 ,mem_wheel_tb_old_pinlevel 
+4f48 67e0c66a store 1 ,mem_wheel_tb_old_pinlevel 
+4f49 98467c00 isub temp ,null 
+4f4a 2422b781 nbranch app_lpm_wake_auto_lock ,zero 
+4f4b 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
+4f4c 6848c66e fetcht 1 ,mem_mwheel_b_old_pinlevel 
+4f4d 67e0c66e store 1 ,mem_mwheel_b_old_pinlevel 
+4f4e 98467c00 isub temp ,null 
+4f4f 2422b781 nbranch app_lpm_wake_auto_lock ,zero 
+4f50 20600000 rtn 
+
+mouse_t_wheel_scan:
+4f51 6fe0c89a fetch 1 ,mem_whee_ta_data_gpio 
+4f52 c17f8000 rtneq gpio_disable 
+4f53 da200000 arg 0 ,rega 
+4f54 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
+4f55 20406ee0 call gpio_get_bit 
+4f56 7920a200 setflag true ,0 ,rega 
+4f57 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
+4f58 20406ee0 call gpio_get_bit 
+4f59 7920a201 setflag true ,1 ,rega 
+4f5a 1a227e00 copy rega ,pdata 
+4f5b 67e0c66b store 1 ,mem_wheel_tb_new_pinlevel 
+4f5c c000cf61 beq 0x01 ,mouse_t_wheel_scan_judge1 
+4f5d c0014f65 beq 0x02 ,mouse_t_wheel_scan_judge2 
+4f5e 6fe0c66c fetch 1 ,mem_wheel_tog 
+4f5f c283cf71 bbit1 7 ,mouse_t_wheel_scan_judge3 
+4f60 20600000 rtn 
+
+mouse_t_wheel_scan_judge1:
+4f61 6fe0c66a fetch 1 ,mem_wheel_tb_old_pinlevel 
+4f62 c0004f69 beq 0 ,mouse_t_wheel_scan_judge11 
+4f63 c001cf6b beq 3 ,mouse_t_wheel_scan_judge12 
+4f64 20600000 rtn 
+
+mouse_t_wheel_scan_judge2:
+4f65 6fe0c66a fetch 1 ,mem_wheel_tb_old_pinlevel 
+4f66 c0004f6d beq 0 ,mouse_t_wheel_scan_judge21 
+4f67 c001cf6f beq 3 ,mouse_t_wheel_scan_judge22 
+4f68 20600000 rtn 
+
+mouse_t_wheel_scan_judge11:
+4f69 70466c82 jam 0x82 ,mem_wheel_tog 
+4f6a 20600000 rtn 
+
+mouse_t_wheel_scan_judge12:
+4f6b 70466c81 jam 0x81 ,mem_wheel_tog 
+4f6c 20600000 rtn 
+
+mouse_t_wheel_scan_judge21:
+4f6d 70466c80 jam 0x80 ,mem_wheel_tog 
+4f6e 20600000 rtn 
+
+mouse_t_wheel_scan_judge22:
+4f6f 70466c83 jam 0x83 ,mem_wheel_tog 
+4f70 20600000 rtn 
+
+mouse_t_wheel_scan_judge3:
+4f71 6fe0c66c fetch 1 ,mem_wheel_tog 
+4f72 793ffe07 set0 7 ,pdata 
+4f73 67e0c66c store 1 ,mem_wheel_tog 
+4f74 c0004f79 beq 0 ,mouse_t_wheel_scan_judge30 
+4f75 c000cf7c beq 1 ,mouse_t_wheel_scan_judge31 
+4f76 c0014f7f beq 2 ,mouse_t_wheel_scan_judge32 
+4f77 c001cf82 beq 3 ,mouse_t_wheel_scan_judge33 
+4f78 20600000 rtn 
+
+mouse_t_wheel_scan_judge30:
+4f79 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
+4f7a c001cf85 beq 3 ,mouse_wheel_t_forward 
+4f7b 20600000 rtn 
+
+mouse_t_wheel_scan_judge31:
+4f7c 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
+4f7d c0004f85 beq 0 ,mouse_wheel_t_forward 
+4f7e 20600000 rtn 
+
+mouse_t_wheel_scan_judge32:
+4f7f 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
+4f80 c001cf89 beq 3 ,mouse_wheel_t_back 
+4f81 20600000 rtn 
+
+mouse_t_wheel_scan_judge33:
+4f82 6fe0c66b fetch 1 ,mem_wheel_tb_new_pinlevel 
+4f83 c0004f89 beq 0 ,mouse_wheel_t_back 
+4f84 20600000 rtn 
+
+mouse_wheel_t_forward:
+4f85 6fe0c66d fetch 1 ,mem_mouse_tz_data 
+4f86 1fe0fe01 increase 1 ,pdata 
+4f87 67e0c66d store 1 ,mem_mouse_tz_data 
+4f88 20600000 rtn 
+
+mouse_wheel_t_back:
+4f89 6fe0c66d fetch 1 ,mem_mouse_tz_data 
+4f8a 1fe0ffff increase -1 ,pdata 
+4f8b 67e0c66d store 1 ,mem_mouse_tz_data 
+4f8c 20600000 rtn 
+
+mouse_wheel_scan:
+4f8d 6fe0c668 fetch 1 ,mem_whee_a_data_gpio 
+4f8e c17f8000 rtneq gpio_disable 
+4f8f da200000 arg 0 ,rega 
+4f90 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
+4f91 20406ee0 call gpio_get_bit 
+4f92 7920a200 setflag true ,0 ,rega 
+4f93 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
+4f94 20406ee0 call gpio_get_bit 
+4f95 7920a201 setflag true ,1 ,rega 
+4f96 1a227e00 copy rega ,pdata 
+4f97 67e0c66f store 1 ,mem_mwheel_b_new_pinlevel 
+4f98 c000cf9d beq 0x01 ,mouse_wheel_scan_judge1 
+4f99 c0014fa1 beq 0x02 ,mouse_wheel_scan_judge2 
+4f9a 6fe0c670 fetch 1 ,mem_mwheel_tog 
+4f9b c283cfad bbit1 7 ,mouse_wheel_scan_judge3 
+4f9c 20600000 rtn 
+
+mouse_wheel_scan_judge1:
+4f9d 6fe0c66e fetch 1 ,mem_mwheel_b_old_pinlevel 
+4f9e c0004fa5 beq 0 ,mouse_wheel_scan_judge11 
+4f9f c001cfa7 beq 3 ,mouse_wheel_scan_judge12 
+4fa0 20600000 rtn 
+
+mouse_wheel_scan_judge2:
+4fa1 6fe0c66e fetch 1 ,mem_mwheel_b_old_pinlevel 
+4fa2 c0004fa9 beq 0 ,mouse_wheel_scan_judge21 
+4fa3 c001cfab beq 3 ,mouse_wheel_scan_judge22 
+4fa4 20600000 rtn 
+
+mouse_wheel_scan_judge11:
+4fa5 70467082 jam 0x82 ,mem_mwheel_tog 
+4fa6 20600000 rtn 
+
+mouse_wheel_scan_judge12:
+4fa7 70467081 jam 0x81 ,mem_mwheel_tog 
+4fa8 20600000 rtn 
+
+mouse_wheel_scan_judge21:
+4fa9 70467080 jam 0x80 ,mem_mwheel_tog 
+4faa 20600000 rtn 
+
+mouse_wheel_scan_judge22:
+4fab 70467083 jam 0x83 ,mem_mwheel_tog 
+4fac 20600000 rtn 
+
+mouse_wheel_scan_judge3:
+4fad 6fe0c670 fetch 1 ,mem_mwheel_tog 
+4fae 793ffe07 set0 7 ,pdata 
+4faf 67e0c670 store 1 ,mem_mwheel_tog 
+4fb0 c0004fb5 beq 0 ,mouse_wheel_scan_judge30 
+4fb1 c000cfb8 beq 1 ,mouse_wheel_scan_judge31 
+4fb2 c0014fbb beq 2 ,mouse_wheel_scan_judge32 
+4fb3 c001cfbe beq 3 ,mouse_wheel_scan_judge33 
+4fb4 20600000 rtn 
+
+mouse_wheel_scan_judge30:
+4fb5 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
+4fb6 c001cfc1 beq 3 ,mouse_wheel_forward 
+4fb7 20600000 rtn 
+
+mouse_wheel_scan_judge31:
+4fb8 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
+4fb9 c0004fc1 beq 0 ,mouse_wheel_forward 
+4fba 20600000 rtn 
+
+mouse_wheel_scan_judge32:
+4fbb 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
+4fbc c001cfc5 beq 3 ,mouse_wheel_back 
+4fbd 20600000 rtn 
+
+mouse_wheel_scan_judge33:
+4fbe 6fe0c66f fetch 1 ,mem_mwheel_b_new_pinlevel 
+4fbf c0004fc5 beq 0 ,mouse_wheel_back 
+4fc0 20600000 rtn 
+
+mouse_wheel_forward:
+4fc1 6fe0c671 fetch 1 ,mem_mouse_z_data 
+4fc2 1fe0fe01 increase 1 ,pdata 
+4fc3 67e0c671 store 1 ,mem_mouse_z_data 
+4fc4 20600000 rtn 
+
+mouse_wheel_back:
+4fc5 6fe0c671 fetch 1 ,mem_mouse_z_data 
+4fc6 1fe0ffff increase -1 ,pdata 
+4fc7 67e0c671 store 1 ,mem_mouse_z_data 
+4fc8 20600000 rtn 
+
+mouse_before_hibernate_wheel_gpio_set:
+4fc9 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
+4fca 20404f02 call mouse_gpio_set_pupd_by_input 
+4fcb 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
+4fcc 20404f02 call mouse_gpio_set_pupd_by_input 
+4fcd 6848c89a fetcht 1 ,mem_whee_ta_data_gpio 
+4fce 20404f02 call mouse_gpio_set_pupd_by_input 
+4fcf 6848c89b fetcht 1 ,mem_whee_tb_data_gpio 
+4fd0 20204f02 branch mouse_gpio_set_pupd_by_input 
+
+mouse_wheel_trigger:
+4fd1 6fe14661 fetch 2 ,mem_mouse_z 
+4fd2 207a0000 rtn blank 
+4fd3 70467201 jam 1 ,mem_mouse_wheel_trigger 
+4fd4 7046730a jam 10 ,mem_mouse_wheel_trigger_timer 
+4fd5 20600000 rtn 
+
+mouse_wheel_trigger_timer:
+4fd6 da604673 arg mem_mouse_wheel_trigger_timer ,regc 
+4fd7 da404fd9 arg mouse_wheel_trigger_disable ,regb 
+4fd8 20203755 branch timer_single_step 
+
+mouse_wheel_trigger_disable:
+4fd9 70467200 jam 0 ,mem_mouse_wheel_trigger 
+4fda 20600000 rtn 
+
+mouse_dpi_check:
+4fdb 6fe0c892 fetch 1 ,mem_dpi_button_gpio 
+4fdc c17f8000 rtneq gpio_disable 
+4fdd da200000 arg 0 ,rega 
+4fde 704a0f05 jam mouse_dpi_key ,mem_mouse_key_temp 
+4fdf 6848c892 fetcht 1 ,mem_dpi_button_gpio 
+4fe0 20404fe8 call mouse_dpi_key_check 
+4fe1 67e0ca0c store 1 ,mem_mouse_dpikey_press_status 
+4fe2 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
+4fe3 c07fcffc beq gpio_disable ,mouse_3io6key_dpi_check_end 
+4fe4 20405203 call mouse_matrix_public_gpio_reset 
+
+mouse_dpi_check_exit:
+4fe5 1a227e00 copy rega ,pdata 
+4fe6 c282d004 bbit1 mouse_dpi_key ,mouse_dpi_down 
+4fe7 2020500b branch mouse_dpi_up 
+
+mouse_dpi_key_check:
+4fe8 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+4fe9 c295d002 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+4fea 6fe0ca0c fetch 1 ,mem_mouse_dpikey_press_status 
+4feb 1fe22600 copy pdata ,regc 
+4fec 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
+4fed c07fcff8 beq gpio_disable ,mouse_dpi_3io6key_check 
+4fee 6fe0ca13 fetch 1 ,mem_mouse_ghost_flag 
+4fef 243a4fff nbranch mouse_dpi_check_end ,blank 
+
+mouse_dpi_key_connect_matrix:
+4ff0 20406ee0 call gpio_get_bit 
+4ff1 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+4ff2 2020d002 branch mouse_dpi_key_connect_gnd ,true 
+4ff3 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+4ff4 20406ef1 call gpio_out_active 
+4ff5 6848c892 fetcht 1 ,mem_dpi_button_gpio 
+4ff6 6fe0ca0c fetch 1 ,mem_mouse_dpikey_press_status 
+4ff7 20205236 branch mouse_check_key_connect_gnd 
+
+mouse_dpi_3io6key_check:
+4ff8 6fe0c892 fetch 1 ,mem_dpi_button_gpio 
+4ff9 20405256 call mouse_gpio_config_output_low 
+4ffa 6848c892 fetcht 1 ,mem_dpi_button_gpio 
+4ffb 20205242 branch mouse_3io6key_check 
+
+mouse_3io6key_dpi_check_end:
+4ffc 6848c892 fetcht 1 ,mem_dpi_button_gpio 
+4ffd 20404f0a call device_gpio_config_input_pu 
+4ffe 20204fe5 branch mouse_dpi_check_exit 
+
+mouse_dpi_check_end:
+4fff 70491700 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+5000 704a0c00 jam 0 ,mem_mouse_dpikey_press_status 
+5001 20600000 rtn 
+
+mouse_dpi_key_connect_gnd:
+5002 6fe0ca0c fetch 1 ,mem_mouse_dpikey_press_status 
+5003 20205236 branch mouse_check_key_connect_gnd 
+
+mouse_dpi_down:
+5004 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
+5005 c1008000 rtneq dpi_button_state_down 
+5006 70491701 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+5007 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5008 c3940000 rtnbit1 mouse_enable_select_device_by_dpi_button 
+5009 c39b0000 rtnbit1 mouse_enable_dpi_key_long_press_disconvery 
+500a 2020501b branch mouse_dpi_process 
+
+mouse_dpi_up:
+500b 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
+500c c1000000 rtneq dpi_button_state_up 
+500d 70491700 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+500e 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+500f c2945012 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_dpi_up_next 
+5010 c29b5012 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_dpi_up_next 
+5011 20600000 rtn 
+
+mouse_dpi_up_next:
+5012 6fe0c918 fetch 1 ,mem_mouse_dpi_long_press_flag 
+5013 243a5016 nbranch mouse_dpi_up_after_long_press ,blank 
+5014 6fe0c732 fetch 1 ,mem_select_device_count 
+5015 245a501b ncall mouse_dpi_process ,blank 
+
+mouse_dpi_up_after_long_press:
+5016 70491800 jam 0 ,mem_mouse_dpi_long_press_flag 
+5017 6fe0c502 fetch 1 ,mem_ui_button_timeout 
+5018 67e0c732 store 1 ,mem_select_device_count 
+5019 67e0c731 store 1 ,mem_bt_discovery_count 
+501a 20600000 rtn 
+
+mouse_dpi_process:
+501b 44c2c010 bpatch patch10_5 ,mem_patch10 
+501c 2040504c call mouse_dpi_ghost_check 
+501d 20740000 rtn user 
+
+mouse_dpi_process_skip_ghost:
+501e 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+501f 1fe20400 copy pdata ,temp 
+5020 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5021 c28ad028 bbit1 mouse_enable_double_dpi_key ,mouse_double_dpi_check 
+5022 18427e00 copy temp ,pdata 
+5023 1fe0fe01 increase 1 ,pdata 
+5024 1fe17e03 and pdata ,0x03 ,pdata 
+
+mouse_dpi_level_store:
+5025 67e0c6a2 store 1 ,mem_mouse_dpi 
+5026 20405068 call mouse_setting_dpi 
+5027 2020557a branch mouse_store_dpi_info_check 
+
+mouse_double_dpi_check:
+5028 6fe0ca1c fetch 1 ,mem_dpi_another_button_down_enable 
+5029 243a5045 nbranch mouse_another_dpi_button_down ,blank 
+
+mouse_dpi_increase:
+502a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+502b c28e5039 bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_increase_level_4 
+502c 18427e00 copy temp ,pdata 
+502d c1008000 rtneq mouse_dpi_level2 
+
+mouse_dpi_increase_level:
+502e c0005035 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+502f c0015033 beq mouse_dpi_level3 ,mouse_dpi_level_2 
+5030 20600000 rtn 
+
+mouse_dpi_level_1:
+5031 58000002 setarg 2 
+5032 20205025 branch mouse_dpi_level_store 
+
+mouse_dpi_level_2:
+5033 58000000 setarg 0 
+5034 20205025 branch mouse_dpi_level_store 
+
+mouse_dpi_level_3:
+5035 58000001 setarg 1 
+5036 20205025 branch mouse_dpi_level_store 
+
+mouse_dpi_level_4:
+5037 58000003 setarg 3 
+5038 20205025 branch mouse_dpi_level_store 
+
+mouse_dpi_increase_level_4:
+5039 18427e00 copy temp ,pdata 
+503a c1008000 rtneq mouse_dpi_level2 
+503b c0005035 beq mouse_dpi_level1 ,mouse_dpi_level_3 
+503c c0015037 beq mouse_dpi_level3 ,mouse_dpi_level_4 
+503d c001d033 beq mouse_dpi_level4 ,mouse_dpi_level_2 
+503e 20600000 rtn 
+
+mouse_dpi_decrease_level_4:
+503f 18427e00 copy temp ,pdata 
+5040 c1010000 rtneq mouse_dpi_level3 
+5041 c0005037 beq mouse_dpi_level1 ,mouse_dpi_level_4 
+5042 c000d033 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+5043 c001d031 beq mouse_dpi_level4 ,mouse_dpi_level_1 
+5044 20600000 rtn 
+
+mouse_another_dpi_button_down:
+
+mouse_dpi_decrease:
+5045 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5046 c28e503f bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_decrease_level_4 
+5047 18427e00 copy temp ,pdata 
+5048 c1010000 rtneq mouse_dpi_level3 
+
+mouse_dpi_decrease_level:
+5049 c0005031 beq mouse_dpi_level1 ,mouse_dpi_level_1 
+504a c000d033 beq mouse_dpi_level2 ,mouse_dpi_level_2 
+504b 20600000 rtn 
+
+mouse_dpi_ghost_check:
+504c 78547c00 disable user 
+504d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+504e c3958000 rtnbit1 mouse_enable_dpi_key_connect_gnd 
+504f 202057b1 branch mouse_ghost_key_value_check 
+
+mouse_dpi_key_check_long_press:
+5050 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5051 c2945054 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_select_device_by_dpi_button 
+5052 c29b505b bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_discovery_by_dpi_button 
+5053 20600000 rtn 
+
+mouse_select_device_by_dpi_button:
+5054 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
+5055 c1808000 rtnne dpi_button_state_down 
+5056 da604732 arg mem_select_device_count ,regc 
+5057 da405059 arg mouse_ready_reconnection_by_dpi_button ,regb 
+5058 20203755 branch timer_single_step 
+
+mouse_ready_reconnection_by_dpi_button:
+5059 70491801 jam 1 ,mem_mouse_dpi_long_press_flag 
+505a 202057f6 branch mouse_ready_reconnection_by_button 
+
+mouse_discovery_by_dpi_button:
+505b 6fe0c917 fetch 1 ,mem_mouse_dpi_button_state 
+505c c1808000 rtnne dpi_button_state_down 
+505d da604731 arg mem_bt_discovery_count ,regc 
+505e da405060 arg mouse_long_dpi_button_bt_discovery ,regb 
+505f 20203755 branch timer_single_step 
+
+mouse_long_dpi_button_bt_discovery:
+5060 70491801 jam 1 ,mem_mouse_dpi_long_press_flag 
+5061 202054b2 branch mouse_long_button_bt_discovery 
+
+mouse_setting_dpi_4_level:
+5062 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5063 c38e0000 rtnbit1 mouse_enable_dpi_level_4 
+5064 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+5065 c1818000 rtnne mouse_dpi_level4 
+5066 7046a200 jam mouse_dpi_level1 ,mem_mouse_dpi 
+5067 20600000 rtn 
+
+mouse_setting_dpi:
+5068 44c34010 bpatch patch10_6 ,mem_patch10 
+5069 20405062 call mouse_setting_dpi_4_level 
+506a 20405a1e call mouse_dpi_led_blink_delay 
+
+mouse_setting_sensor_type:
+506b 44c3c010 bpatch patch10_7 ,mem_patch10 
+506c 6fe0c9fa fetch 1 ,mem_config_sensor_type 
+506d c006508f beq s201x ,mouse_seting_s201_dpi 
+506e c001d0a9 beq p3212 ,mouse_seting_3212_dpi 
+506f c005d0bd beq ka8g2 ,mouse_seting_ka8g2_dpi 
+5070 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+5071 c0005077 beq mouse_dpi_level1 ,mouse_set_cpi0 
+5072 c000d075 beq mouse_dpi_level2 ,mouse_set_cpi1 
+5073 c0015079 beq mouse_dpi_level3 ,mouse_set_cpi2 
+5074 c001d07b beq mouse_dpi_level4 ,mouse_set_cpi3 
+
+mouse_set_cpi1:
+5075 6848c906 fetcht 1 ,mem_320x_dpi_1 
+5076 2020507c branch mouse_dpi_store 
+
+mouse_set_cpi0:
+5077 6848c905 fetcht 1 ,mem_320x_dpi_0 
+5078 2020507c branch mouse_dpi_store 
+
+mouse_set_cpi2:
+5079 6848c907 fetcht 1 ,mem_320x_dpi_2 
+507a 2020507c branch mouse_dpi_store 
+
+mouse_set_cpi3:
+507b 6848c908 fetcht 1 ,mem_320x_dpi_3 
+
+mouse_dpi_store:
+507c 6fe0c9fa fetch 1 ,mem_config_sensor_type 
+507d c002508b beq p3065_xy ,mouse_3065xy_set_dpi 
+507e c002d08b beq mx8650 ,mouse_3065xy_set_dpi 
+507f c004508d beq ka8 ,mouse_ka8_set_dpi 
+5080 c003d08d beq p6520 ,mouse_ka8_set_dpi 
+5081 c003508b beq p8009 ,mouse_3065xy_set_dpi 
+
+mouse_dpi_write:
+5082 6048c916 storet 1 ,mem_mouse_cpi_count 
+5083 58000006 setarg mouse_dpi_address 
+5084 20406971 call twspi_read 
+5085 1fe104f8 and pdata ,0xf8 ,temp 
+5086 6fe0c916 fetch 1 ,mem_mouse_cpi_count 
+5087 9840fe00 iadd temp ,pdata 
+5088 1fed7e00 lshift8 pdata ,pdata 
+5089 1fe0fe06 add pdata ,mouse_dpi_address ,pdata 
+508a 20206970 branch twspi_write 
+
+mouse_3065xy_set_dpi:
+508b 184085ff increase -1 ,temp 
+508c 20205082 branch mouse_dpi_write 
+
+mouse_ka8_set_dpi:
+508d 18408402 increase 2 ,temp 
+508e 20205082 branch mouse_dpi_write 
+
+mouse_seting_s201_dpi:
+508f 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+5090 c0005095 beq mouse_dpi_level1 ,mouse_set_s201_dpi_0 
+5091 c000d099 beq mouse_dpi_level2 ,mouse_set_s201_dpi_2 
+5092 c001509b beq mouse_dpi_level3 ,mouse_set_s201_dpi_3 
+5093 c001d09d beq mouse_dpi_level4 ,mouse_set_s201_dpi_4 
+5094 20600000 rtn 
+
+mouse_set_s201_dpi_0:
+5095 6fe0c911 fetch 1 ,mem_sensor_s201_dpi_0 
+5096 2020509e branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_1:
+5097 6fe0c912 fetch 1 ,mem_sensor_s201_dpi_1 
+5098 2020509e branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_2:
+5099 6fe0c913 fetch 1 ,mem_sensor_s201_dpi_2 
+509a 2020509e branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_3:
+509b 6fe0c914 fetch 1 ,mem_sensor_s201_dpi_3 
+509c 2020509e branch mouse_dpi_s201_store 
+
+mouse_set_s201_dpi_4:
+509d 6fe0c915 fetch 1 ,mem_sensor_s201_dpi_4 
+
+mouse_dpi_s201_store:
+509e 1fe22200 copy pdata ,rega 
+509f 5800c309 setarg 0xc309 
+50a0 20406970 call twspi_write 
+50a1 1a227e00 copy rega ,pdata 
+50a2 1fed7e00 lshift8 pdata ,pdata 
+50a3 1fe0fe23 add pdata ,0x23 ,pdata 
+50a4 20406970 call twspi_write 
+
+mouse_sensor_enable_wp:
+50a5 58000009 setarg 0x0009 
+50a6 20206970 branch twspi_write 
+
+mouse_sensor_disable_wp:
+50a7 58005a09 setarg 0x5a09 
+50a8 20206970 branch twspi_write 
+
+mouse_seting_3212_dpi:
+50a9 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+50aa c00050b0 beq mouse_dpi_level1 ,mouse_set_p3212_cpi0 
+50ab c000d0ae beq mouse_dpi_level2 ,mouse_set_p3212_cpi1 
+50ac c00150b2 beq mouse_dpi_level3 ,mouse_set_p3212_cpi2 
+50ad c001d0b4 beq mouse_dpi_level4 ,mouse_set_p3212_cpi3 
+
+mouse_set_p3212_cpi1:
+50ae 6fe0c90a fetch 1 ,mem_3212_dpi_1 
+50af 202050b5 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi0:
+50b0 6fe0c909 fetch 1 ,mem_3212_dpi_0 
+50b1 202050b5 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi2:
+50b2 6fe0c90b fetch 1 ,mem_3212_dpi_2 
+50b3 202050b5 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi3:
+50b4 6fe0c90c fetch 1 ,mem_3212_dpi_3 
+
+mouse_p3212_dpi:
+50b5 67e0c916 store 1 ,mem_mouse_cpi_count 
+50b6 1fed7e00 lshift8 pdata ,pdata 
+50b7 1fe22200 copy pdata ,rega 
+50b8 1fe0fe0d add pdata ,mouse_p3212_dpi_xaddress ,pdata 
+50b9 20406970 call twspi_write 
+50ba 1a227e00 copy rega ,pdata 
+50bb 1fe0fe0e add pdata ,mouse_p3212_dpi_yaddress ,pdata 
+50bc 20206970 branch twspi_write 
+
+mouse_seting_ka8g2_dpi:
+50bd 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+50be c00050c4 beq mouse_dpi_level1 ,mouse_set_pka8g2_cpi0 
+50bf c000d0c2 beq mouse_dpi_level2 ,mouse_set_pka8g2_cpi1 
+50c0 c00150c6 beq mouse_dpi_level3 ,mouse_set_pka8g2_cpi2 
+50c1 c001d0c8 beq mouse_dpi_level4 ,mouse_set_pka8g2_cpi3 
+
+mouse_set_pka8g2_cpi1:
+50c2 6fe0c90e fetch 1 ,mem_ka8g2_dpi_1 
+50c3 202050b5 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi0:
+50c4 6fe0c90d fetch 1 ,mem_ka8g2_dpi_0 
+50c5 202050b5 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi2:
+50c6 6fe0c90f fetch 1 ,mem_ka8g2_dpi_2 
+50c7 202050b5 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi3:
+50c8 6fe0c910 fetch 1 ,mem_ka8g2_dpi_3 
+50c9 202050b5 branch mouse_p3212_dpi 
+
+mouse_key:
+50ca 20405170 call mouse_check_firekey_gpio 
+50cb 6fe0ca19 fetch 1 ,mem_fire_key_flag 
+50cc 243a5184 nbranch fire_key_press ,blank 
+50cd 6fe0ca14 fetch 1 ,mem_fire_key_status 
+50ce 243a5183 nbranch fire_key_process ,blank 
+50cf 204051ac call mouse_check_key_gpio 
+50d0 204050e0 call mouse_ghost_key_check 
+50d1 20404e9b call mouse_set_mult 
+50d2 204050db call mouse_24g_key 
+50d3 1a227e00 copy rega ,pdata 
+50d4 6848c664 fetcht 1 ,mem_mouse_key_last 
+50d5 67e0c664 store 1 ,mem_mouse_key_last 
+50d6 67e0c65c store 1 ,mem_mouse_key 
+50d7 9842fe00 ixor temp ,pdata 
+50d8 1fe67c00 sub pdata ,0 ,null 
+50d9 20628000 rtn zero 
+50da 20207dbc branch enable_user 
+
+mouse_24g_key:
+50db c6930000 rtnmark0 mark_24g 
+50dc 1a227e00 copy rega ,pdata 
+50dd 207a0000 rtn blank 
+50de 67e0c65c store 1 ,mem_mouse_key 
+50df 20207dbc branch enable_user 
+
+mouse_ghost_key_check:
+50e0 704a1100 jam 0 ,mem_mouse_matrix_key_cow_count 
+50e1 704a1200 jam 0 ,mem_mouse_matrix_key_row_count 
+50e2 704a1300 jam 0 ,mem_mouse_ghost_flag 
+50e3 1fe22400 copy pdata ,regb 
+50e4 6848c88d fetcht 1 ,mem_lbutton_gpio 
+50e5 6fe0c890 fetch 1 ,mem_bk_button_gpio 
+50e6 98467c00 isub temp ,null 
+50e7 2022d0f0 branch mouse_matrix_ghost_key_l_bk ,zero 
+50e8 6fe0c891 fetch 1 ,mem_fw_button_gpio 
+50e9 98467c00 isub temp ,null 
+50ea 2022d0f5 branch mouse_matrix_ghost_key_l_fw ,zero 
+50eb 6848c88e fetcht 1 ,mem_mbutton_gpio 
+50ec 6fe0c890 fetch 1 ,mem_bk_button_gpio 
+50ed 98467c00 isub temp ,null 
+50ee 2022d104 branch mouse_ghost_key_mbk_rfw ,zero 
+50ef 20205107 branch mouse_ghost_key_mfw_rbk 
+
+mouse_matrix_ghost_key_l_bk:
+50f0 6848c88e fetcht 1 ,mem_mbutton_gpio 
+50f1 6fe0c891 fetch 1 ,mem_fw_button_gpio 
+50f2 98467c00 isub temp ,null 
+50f3 2022d0fa branch mouse_ghost_key_lbk_mfw ,zero 
+50f4 202050fd branch mouse_ghost_key_lbk_rfw 
+
+mouse_matrix_ghost_key_l_fw:
+50f5 6848c88e fetcht 1 ,mem_mbutton_gpio 
+50f6 6fe0c890 fetch 1 ,mem_bk_button_gpio 
+50f7 98467c00 isub temp ,null 
+50f8 2022d0ff branch mouse_ghost_key_lfw_mbk ,zero 
+50f9 20205102 branch mouse_ghost_key_lfw_rbk 
+
+mouse_ghost_key_lbk_mfw:
+50fa 20405113 call mouse_ghost_key_check_l_bk 
+50fb 2040511f call mouse_ghost_key_check_m_fw 
+50fc 20205109 branch mouse_ghost_key_check_next 
+
+mouse_ghost_key_lbk_rfw:
+50fd 20405113 call mouse_ghost_key_check_l_bk 
+50fe 20205105 branch mouse_ghost_key_rfw 
+
+mouse_ghost_key_lfw_mbk:
+50ff 2040511c call mouse_ghost_key_check_l_fw 
+5100 20405116 call mouse_ghost_key_check_m_bk 
+5101 20205109 branch mouse_ghost_key_check_next 
+
+mouse_ghost_key_lfw_rbk:
+5102 2040511c call mouse_ghost_key_check_l_fw 
+5103 20205108 branch mouse_ghost_key_rbk 
+
+mouse_ghost_key_mbk_rfw:
+5104 20405116 call mouse_ghost_key_check_m_bk 
+
+mouse_ghost_key_rfw:
+5105 20405122 call mouse_ghost_key_check_r_fw 
+5106 20205109 branch mouse_ghost_key_check_next 
+
+mouse_ghost_key_mfw_rbk:
+5107 2040511f call mouse_ghost_key_check_m_fw 
+
+mouse_ghost_key_rbk:
+5108 20405119 call mouse_ghost_key_check_r_bk 
+
+mouse_ghost_key_check_next:
+5109 20405125 call mouse_ghost_key_check_bk_fw 
+510a 20405128 call mouse_ghost_key_check_lmr 
+510b 6fe0ca12 fetch 1 ,mem_mouse_matrix_key_row_count 
+510c 207a0000 rtn blank 
+510d 6fe0ca11 fetch 1 ,mem_mouse_matrix_key_cow_count 
+510e 207a0000 rtn blank 
+510f 704a1301 jam 1 ,mem_mouse_ghost_flag 
+5110 6fe0c664 fetch 1 ,mem_mouse_key_last 
+5111 1fe22200 copy pdata ,rega 
+5112 20600000 rtn 
+
+mouse_ghost_key_check_l_bk:
+5113 1a417e09 and regb ,mouse_l_bk_button ,pdata 
+5114 c004d130 beq mouse_l_bk_button ,mouse_matrix_cow_more_than_one_key 
+5115 20600000 rtn 
+
+mouse_ghost_key_check_m_bk:
+5116 1a417e12 and regb ,mouse_m_bk_button ,pdata 
+5117 c0095130 beq mouse_m_bk_button ,mouse_matrix_cow_more_than_one_key 
+5118 20600000 rtn 
+
+mouse_ghost_key_check_r_bk:
+5119 1a417e0a and regb ,mouse_r_bk_button ,pdata 
+511a c0055130 beq mouse_r_bk_button ,mouse_matrix_cow_more_than_one_key 
+511b 20600000 rtn 
+
+mouse_ghost_key_check_l_fw:
+511c 1a417e11 and regb ,mouse_l_fw_button ,pdata 
+511d c008d130 beq mouse_l_fw_button ,mouse_matrix_cow_more_than_one_key 
+511e 20600000 rtn 
+
+mouse_ghost_key_check_m_fw:
+511f 1a417e14 and regb ,mouse_m_fw_button ,pdata 
+5120 c00a5130 beq mouse_m_fw_button ,mouse_matrix_cow_more_than_one_key 
+5121 20600000 rtn 
+
+mouse_ghost_key_check_r_fw:
+5122 1a417e12 and regb ,mouse_r_fw_button ,pdata 
+5123 c0095130 beq mouse_r_fw_button ,mouse_matrix_cow_more_than_one_key 
+5124 20600000 rtn 
+
+mouse_ghost_key_check_bk_fw:
+5125 1a417e18 and regb ,mouse_bk_fw_button ,pdata 
+5126 c00c512e beq mouse_bk_fw_button ,mouse_matrix_row_more_than_one_key 
+5127 20600000 rtn 
+
+mouse_ghost_key_check_lmr:
+5128 18417e07 and temp ,mouse_lmr_button ,pdata 
+5129 c001d12e beq mouse_lr_button ,mouse_matrix_row_more_than_one_key 
+512a c002d12e beq mouse_lm_button ,mouse_matrix_row_more_than_one_key 
+512b c003512e beq mouse_rm_button ,mouse_matrix_row_more_than_one_key 
+512c c003d12e beq mouse_lmr_button ,mouse_matrix_row_more_than_one_key 
+512d 20600000 rtn 
+
+mouse_matrix_row_more_than_one_key:
+512e 704a1201 jam 1 ,mem_mouse_matrix_key_row_count 
+512f 20600000 rtn 
+
+mouse_matrix_cow_more_than_one_key:
+5130 704a1101 jam 1 ,mem_mouse_matrix_key_cow_count 
+5131 20600000 rtn 
+
+mouse_dpi_another_gpio_check:
+5132 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5133 c40a8000 rtnbit0 mouse_enable_double_dpi_key 
+5134 c316513a bbit0 mouse_enable_another_dpi_key_connect_gnd ,mouse_dpi_another_gpio_connect_vin_check 
+
+mouse_dpi_another_gpio_connect_gnd_check:
+5135 6fe0c8a0 fetch 1 ,mem_dpi_another_button_gpio 
+5136 20405254 call mouse_gpio_config_output_high 
+5137 20405148 call mouse_dpi_another_check 
+5138 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
+5139 20204f0a branch device_gpio_config_input_pu 
+
+mouse_dpi_another_gpio_connect_vin_check:
+513a 6fe0c8a0 fetch 1 ,mem_dpi_another_button_gpio 
+513b 20405256 call mouse_gpio_config_output_low 
+513c 704a1d00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+513d 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
+513e 6fe0ca1a fetch 1 ,mem_dpi_another_press_status 
+513f 20405161 call mouse_check_key_connect_vin_new 
+5140 2040514c call mouse_dpi_another_state_check 
+5141 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
+5142 20204f0a branch device_gpio_config_input_pu 
+
+mouse_dpi_another_down_new:
+5143 20404f0a call device_gpio_config_input_pu 
+5144 6fe0ca1b fetch 1 ,mem_dpi_another_button_state 
+5145 c1008000 rtneq dpi_button_state_down 
+5146 704a1b01 jam dpi_button_state_down ,mem_dpi_another_button_state 
+5147 2020501b branch mouse_dpi_process 
+
+mouse_dpi_another_check:
+5148 704a1d00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+5149 6848c8a0 fetcht 1 ,mem_dpi_another_button_gpio 
+514a 6fe0ca1a fetch 1 ,mem_dpi_another_press_status 
+514b 20405157 call mouse_check_key_connect_gnd_new 
+
+mouse_dpi_another_state_check:
+514c 67e0ca1a store 1 ,mem_dpi_another_press_status 
+514d 6fe0ca1c fetch 1 ,mem_dpi_another_button_down_enable 
+514e 203a5153 branch mouse_dpi_another_up ,blank 
+
+mouse_dpi_another_down:
+514f 6fe0ca1b fetch 1 ,mem_dpi_another_button_state 
+5150 c1008000 rtneq dpi_button_state_down 
+5151 704a1b01 jam dpi_button_state_down ,mem_dpi_another_button_state 
+5152 2020501b branch mouse_dpi_process 
+
+mouse_dpi_another_up:
+5153 6fe0ca1b fetch 1 ,mem_dpi_another_button_state 
+5154 c1000000 rtneq dpi_button_state_up 
+5155 704a1b00 jam dpi_button_state_up ,mem_dpi_another_button_state 
+5156 20600000 rtn 
+
+mouse_check_key_connect_gnd_new:
+5157 1fe3fe00 lshift pdata ,pdata 
+5158 1fe22400 copy pdata ,regb 
+5159 20406ee0 call gpio_get_bit 
+515a 7920a400 setflag true ,0 ,regb 
+515b 1a417e07 and regb ,0x07 ,pdata 
+515c 6848ca1d fetcht 1 ,mem_mouse_key_temp_patch 
+515d 18420e00 copy temp ,queue 
+515e c003d16c beq 0x07 ,mouse_another_dpi_key_press 
+515f c000516e beq 0x00 ,mouse_another_dpi_key_release 
+5160 20600000 rtn 
+
+mouse_check_key_connect_vin_new:
+5161 1fe3fe00 lshift pdata ,pdata 
+5162 1fe22400 copy pdata ,regb 
+5163 20404f06 call device_gpio_config_input_pd 
+5164 20406ee0 call gpio_get_bit 
+5165 7920a400 setflag true ,0 ,regb 
+5166 1a417e07 and regb ,0x07 ,pdata 
+5167 6848ca1d fetcht 1 ,mem_mouse_key_temp_patch 
+5168 18420e00 copy temp ,queue 
+5169 c003d16c beq 0x07 ,mouse_another_dpi_key_press 
+516a c000516e beq 0x00 ,mouse_another_dpi_key_release 
+516b 20600000 rtn 
+
+mouse_another_dpi_key_press:
+516c 704a1c01 jam 1 ,mem_dpi_another_button_down_enable 
+516d 20600000 rtn 
+
+mouse_another_dpi_key_release:
+516e 704a1c00 jam 0 ,mem_dpi_another_button_down_enable 
+516f 20600000 rtn 
+
+mouse_check_firekey_gpio:
+5170 da400000 arg 0 ,regb 
+5171 6fe0c89f fetch 1 ,mem_firebutton_gpio 
+5172 c17f8000 rtneq gpio_disable 
+5173 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5174 c317517d bbit0 mouse_enable_fire_key_connect_gnd ,mouse_check_firekey_connect_vin 
+
+mouse_check_firekey_connect_gnd:
+5175 6848c89f fetcht 1 ,mem_firebutton_gpio 
+5176 20404f0a call device_gpio_config_input_pu 
+5177 6848c89f fetcht 1 ,mem_firebutton_gpio 
+5178 20406ee0 call gpio_get_bit 
+5179 7920a400 setflag true ,0 ,regb 
+
+mouse_firekey_state_store:
+517a 1a427e00 copy regb ,pdata 
+517b 67e0ca19 store 1 ,mem_fire_key_flag 
+517c 20600000 rtn 
+
+mouse_check_firekey_connect_vin:
+517d 6848c89f fetcht 1 ,mem_firebutton_gpio 
+517e 20404f06 call device_gpio_config_input_pd 
+517f 6848c89f fetcht 1 ,mem_firebutton_gpio 
+5180 20406ee0 call gpio_get_bit 
+5181 7d20a400 nsetflag true ,0 ,regb 
+5182 2020517a branch mouse_firekey_state_store 
+
+fire_key_process:
+5183 c002519c beq 4 ,fire_key_process_end 
+
+fire_key_press:
+5184 2040519f call firekey_clkn_bt_timer_check 
+5185 6fe24a15 fetch 4 ,mem_fire_key_delay 
+5186 d84000a0 arg 0xa0 ,temp 
+5187 98408400 iadd temp ,temp 
+5188 1c427e00 copy clkn_bt ,pdata 
+5189 98467c00 isub temp ,null 
+518a 24610000 nrtn positive 
+518b 67e24a15 store 4 ,mem_fire_key_delay 
+518c 6fe0ca14 fetch 1 ,mem_fire_key_status 
+518d c0005192 beq 0 ,fire_key_process_start 
+518e c000d195 beq 1 ,fire_key_process_release1 
+518f c0015198 beq 2 ,fire_key_process_start2 
+5190 c001d19a beq 3 ,fire_key_process_release2 
+5191 20600000 rtn 
+
+fire_key_process_start:
+5192 704a1401 jam 1 ,mem_fire_key_status 
+
+fire_key_down:
+5193 70465c01 jam 1 ,mem_mouse_key 
+5194 20207dbc branch enable_user 
+
+fire_key_process_release1:
+5195 704a1402 jam 2 ,mem_fire_key_status 
+
+fire_key_release:
+5196 70465c00 jam 0 ,mem_mouse_key 
+5197 20207dbc branch enable_user 
+
+fire_key_process_start2:
+5198 704a1403 jam 3 ,mem_fire_key_status 
+5199 20205193 branch fire_key_down 
+
+fire_key_process_release2:
+519a 704a1400 jam 0 ,mem_fire_key_status 
+519b 20205196 branch fire_key_release 
+
+fire_key_process_end:
+519c 704a1400 jam 0 ,mem_fire_key_status 
+519d 70465c00 jam 0 ,mem_mouse_key 
+519e 20600000 rtn 
+
+firekey_clkn_bt_timer_check:
+519f 684a4a15 fetcht 4 ,mem_fire_key_delay 
+51a0 1c427e00 copy clkn_bt ,pdata 
+51a1 98467c00 isub temp ,null 
+51a2 244151a4 ncall firekey_clkn_bt_timer_timeout ,positive 
+51a3 20600000 rtn 
+
+firekey_clkn_bt_timer_timeout:
+51a4 58000000 setarg 0 
+51a5 67e24a15 store 4 ,mem_fire_key_delay 
+51a6 20600000 rtn 
+
+mouse_key_check_once:
+51a7 204051b9 call mouse_check_key_gpio_once 
+51a8 204051ac call mouse_check_key_gpio 
+51a9 58000000 setarg 0x00 
+51aa 67e1ca07 store 3 ,mem_mouse_lkey_press_status 
+51ab 20600000 rtn 
+
+mouse_check_key_gpio:
+51ac 44c44011 bpatch patch11_0 ,mem_patch11 
+51ad 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
+51ae 245a51b9 ncall mouse_check_key_gpio_once ,blank 
+51af da200000 arg 0 ,rega 
+51b0 204051bc call mouse_check_lkey_gpio 
+51b1 204051c5 call mouse_check_rkey_gpio 
+51b2 204051ce call mouse_check_mkey_gpio 
+51b3 204051d7 call mouse_check_bkkey_gpio 
+51b4 204051f3 call mouse_check_fwkey_gpio 
+51b5 20405170 call mouse_check_firekey_gpio 
+51b6 20405210 call mouse_check_customerkey_gpio 
+51b7 1a227e00 copy rega ,pdata 
+51b8 20600000 rtn 
+
+mouse_check_key_gpio_once:
+51b9 58030303 setarg 0x030303 
+51ba 67e1ca07 store 3 ,mem_mouse_lkey_press_status 
+51bb 20600000 rtn 
+
+mouse_check_lkey_gpio:
+51bc 6fe0c88d fetch 1 ,mem_lbutton_gpio 
+51bd 20405254 call mouse_gpio_config_output_high 
+51be 704a0f00 jam mouse_l_key ,mem_mouse_key_temp 
+51bf 6848c88d fetcht 1 ,mem_lbutton_gpio 
+51c0 6fe0ca07 fetch 1 ,mem_mouse_lkey_press_status 
+51c1 20405236 call mouse_check_key_connect_gnd 
+51c2 67e0ca07 store 1 ,mem_mouse_lkey_press_status 
+51c3 6848c88d fetcht 1 ,mem_lbutton_gpio 
+51c4 20204f0a branch device_gpio_config_input_pu 
+
+mouse_check_rkey_gpio:
+51c5 6fe0c88f fetch 1 ,mem_rbutton_gpio 
+51c6 20405254 call mouse_gpio_config_output_high 
+51c7 704a0f01 jam mouse_r_key ,mem_mouse_key_temp 
+51c8 6848c88f fetcht 1 ,mem_rbutton_gpio 
+51c9 6fe0ca08 fetch 1 ,mem_mouse_rkey_press_status 
+51ca 20405236 call mouse_check_key_connect_gnd 
+51cb 67e0ca08 store 1 ,mem_mouse_rkey_press_status 
+51cc 6848c88f fetcht 1 ,mem_rbutton_gpio 
+51cd 20204f0a branch device_gpio_config_input_pu 
+
+mouse_check_mkey_gpio:
+51ce 6fe0c88e fetch 1 ,mem_mbutton_gpio 
+51cf 20405254 call mouse_gpio_config_output_high 
+51d0 704a0f02 jam mouse_m_key ,mem_mouse_key_temp 
+51d1 6848c88e fetcht 1 ,mem_mbutton_gpio 
+51d2 6fe0ca09 fetch 1 ,mem_mouse_mkey_press_status 
+51d3 20405236 call mouse_check_key_connect_gnd 
+51d4 67e0ca09 store 1 ,mem_mouse_mkey_press_status 
+51d5 6848c88e fetcht 1 ,mem_mbutton_gpio 
+51d6 20204f0a branch device_gpio_config_input_pu 
+
+mouse_check_bkkey_gpio:
+51d7 6fe0c890 fetch 1 ,mem_bk_button_gpio 
+51d8 c17f8000 rtneq gpio_disable 
+51d9 704a0f03 jam mouse_bk_key ,mem_mouse_key_temp 
+51da 6fe0ca0a fetch 1 ,mem_mouse_bkkey_press_status 
+51db 1fe22600 copy pdata ,regc 
+51dc 6848c890 fetcht 1 ,mem_bk_button_gpio 
+51dd 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
+51de c07fd1ec beq gpio_disable ,mouse_3io6key_bk_check 
+51df 20406ee0 call gpio_get_bit 
+51e0 2020d1e8 branch mouse_check_bk_button_connect_gnd ,true 
+51e1 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+51e2 20406ef1 call gpio_out_active 
+51e3 6848c890 fetcht 1 ,mem_bk_button_gpio 
+51e4 6fe0ca0a fetch 1 ,mem_mouse_bkkey_press_status 
+51e5 20405236 call mouse_check_key_connect_gnd 
+
+mouse_check_bkkey_gpio_end:
+51e6 67e0ca0a store 1 ,mem_mouse_bkkey_press_status 
+51e7 20205203 branch mouse_matrix_public_gpio_reset 
+
+mouse_check_bk_button_connect_gnd:
+51e8 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+51e9 6fe0ca0a fetch 1 ,mem_mouse_bkkey_press_status 
+51ea 20405236 call mouse_check_key_connect_gnd 
+51eb 202051e6 branch mouse_check_bkkey_gpio_end 
+
+mouse_3io6key_bk_check:
+51ec 6fe0c890 fetch 1 ,mem_bk_button_gpio 
+51ed 20405256 call mouse_gpio_config_output_low 
+51ee 6848c890 fetcht 1 ,mem_bk_button_gpio 
+51ef 20405242 call mouse_3io6key_check 
+51f0 67e0ca0a store 1 ,mem_mouse_bkkey_press_status 
+51f1 6848c890 fetcht 1 ,mem_bk_button_gpio 
+51f2 20204f0a branch device_gpio_config_input_pu 
+
+mouse_check_fwkey_gpio:
+51f3 6fe0c891 fetch 1 ,mem_fw_button_gpio 
+51f4 c17f8000 rtneq gpio_disable 
+51f5 704a0f04 jam mouse_fw_key ,mem_mouse_key_temp 
+51f6 6fe0ca0b fetch 1 ,mem_mouse_fwkey_press_status 
+51f7 1fe22600 copy pdata ,regc 
+51f8 6848c891 fetcht 1 ,mem_fw_button_gpio 
+51f9 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
+51fa c07fd209 beq gpio_disable ,mouse_3io6key_fw_check 
+51fb 20406ee0 call gpio_get_bit 
+51fc 2020d205 branch mouse_check_fw_button_connect_gnd ,true 
+51fd 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+51fe 20406ef1 call gpio_out_active 
+51ff 6848c891 fetcht 1 ,mem_fw_button_gpio 
+5200 6fe0ca0b fetch 1 ,mem_mouse_fwkey_press_status 
+5201 20405236 call mouse_check_key_connect_gnd 
+
+mouse_check_fwkey_gpio_end:
+5202 67e0ca0b store 1 ,mem_mouse_fwkey_press_status 
+
+mouse_matrix_public_gpio_reset:
+5203 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+5204 20204f0a branch device_gpio_config_input_pu 
+
+mouse_check_fw_button_connect_gnd:
+5205 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+5206 6fe0ca0b fetch 1 ,mem_mouse_fwkey_press_status 
+5207 20405236 call mouse_check_key_connect_gnd 
+5208 20205202 branch mouse_check_fwkey_gpio_end 
+
+mouse_3io6key_fw_check:
+5209 6fe0c891 fetch 1 ,mem_fw_button_gpio 
+520a 20405256 call mouse_gpio_config_output_low 
+520b 6848c891 fetcht 1 ,mem_fw_button_gpio 
+520c 20405242 call mouse_3io6key_check 
+520d 67e0ca0b store 1 ,mem_mouse_fwkey_press_status 
+520e 6848c891 fetcht 1 ,mem_fw_button_gpio 
+520f 20204f0a branch device_gpio_config_input_pu 
+
+mouse_check_customerkey_gpio:
+5210 70472b00 jam 0 ,mem_customer_key 
+5211 6fe0c89e fetch 1 ,mem_customer_key_gpio 
+5212 c17f8000 rtneq gpio_disable 
+5213 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5214 c40a0000 rtnbit0 mouse_enable_keyboard 
+5215 c297d221 bbit1 mouse_enable_customer_key_connect_vin ,mouse_customer_key_connect_vin 
+
+mouse_customer_key_connect_gnd:
+5216 704a0f07 jam mouse_customer_key ,mem_mouse_key_temp 
+5217 6848c89e fetcht 1 ,mem_customer_key_gpio 
+5218 6fe0ca0e fetch 1 ,mem_mouse_customerkey_press_status 
+5219 20405236 call mouse_check_key_connect_gnd 
+521a 67e0ca0e store 1 ,mem_mouse_customerkey_press_status 
+
+mouse_check_customerkey_state:
+521b 1a227e00 copy rega ,pdata 
+521c c283d22c bbit1 mouse_customer_key ,mouse_customerkey_press 
+521d 2040522f call mouse_customerkey_release 
+
+mouse_check_customerkey_gpio_exit:
+521e 6fe0c72c fetch 1 ,mem_customer_data_trigger 
+521f 67e0c72d store 1 ,mem_customer_data_trigger_last 
+5220 20600000 rtn 
+
+mouse_customer_key_connect_vin:
+5221 704a0f07 jam mouse_customer_key ,mem_mouse_key_temp 
+5222 6fe0ca0e fetch 1 ,mem_mouse_customerkey_press_status 
+5223 1fe22600 copy pdata ,regc 
+5224 6fe0c89e fetch 1 ,mem_customer_key_gpio 
+5225 20405256 call mouse_gpio_config_output_low 
+5226 6848c89e fetcht 1 ,mem_customer_key_gpio 
+5227 20405242 call mouse_3io6key_check 
+5228 67e0ca0e store 1 ,mem_mouse_customerkey_press_status 
+5229 2040521b call mouse_check_customerkey_state 
+522a 6848c89e fetcht 1 ,mem_customer_key_gpio 
+522b 20204f0a branch device_gpio_config_input_pu 
+
+mouse_customerkey_press:
+522c 70472c01 jam 1 ,mem_customer_data_trigger 
+522d 20405232 call mouse_customer_key_need_send 
+522e 2020521e branch mouse_check_customerkey_gpio_exit 
+
+mouse_customerkey_release:
+522f 70472c00 jam 0 ,mem_customer_data_trigger 
+5230 6fe0c72d fetch 1 ,mem_customer_data_trigger_last 
+5231 207a0000 rtn blank 
+
+mouse_customer_key_need_send:
+5232 70472b01 jam 1 ,mem_customer_key 
+5233 20600000 rtn 
+
+mouse_key_release:
+5234 f93fa200 qset0 rega 
+5235 20600000 rtn 
+
+mouse_check_key_connect_gnd:
+5236 1fe3fe00 lshift pdata ,pdata 
+5237 1fe22400 copy pdata ,regb 
+5238 20406ee0 call gpio_get_bit 
+5239 7920a400 setflag true ,0 ,regb 
+
+mouse_check_key_connect_gnd_next:
+523a 1a417e07 and regb ,0x07 ,pdata 
+523b 6848ca0f fetcht 1 ,mem_mouse_key_temp 
+523c 18420e00 copy temp ,queue 
+523d c003d240 beq 0x07 ,mouse_key_press 
+523e c0005234 beq 0x00 ,mouse_key_release 
+523f 20600000 rtn 
+
+mouse_key_press:
+5240 f9202200 qset1 rega 
+5241 20600000 rtn 
+
+mouse_3io6key_check:
+5242 44c4c011 bpatch patch11_1 ,mem_patch11 
+5243 1a627e00 copy regc ,pdata 
+5244 67e0ca10 store 1 ,mem_mouse_key_status 
+5245 1fe3fe00 lshift pdata ,pdata 
+5246 1fe22400 copy pdata ,regb 
+5247 18422600 copy temp ,regc 
+5248 20404f06 call device_gpio_config_input_pd 
+5249 1a620400 copy regc ,temp 
+524a 20406ee0 call gpio_get_bit 
+524b 7d20a400 nsetflag true ,0 ,regb 
+524c 2040524e call mouse_check_press 
+524d 2020523a branch mouse_check_key_connect_gnd_next 
+
+mouse_check_press:
+524e 6848ca10 fetcht 1 ,mem_mouse_key_status 
+524f 18410401 and_into 0x01 ,temp 
+5250 1a417e01 and regb ,0x01 ,pdata 
+5251 98467c00 isub temp ,null 
+5252 2422d3d5 nbranch mouse_current_mult_update ,zero 
+5253 20600000 rtn 
+
+mouse_gpio_config_output_high:
+5254 d840003f arg gpcfg_output_high ,temp 
+5255 20206f1d branch gpio_config_function_int 
+
+mouse_gpio_config_output_low:
+5256 d840003e arg gpcfg_output_low ,temp 
+5257 20206f1d branch gpio_config_function_int 
+
+mouse_gpio_config_pu_check:
+5258 67e0c8a7 store 1 ,mem_device_temp_gpio 
+5259 20405254 call mouse_gpio_config_output_high 
+525a 6848c8a7 fetcht 1 ,mem_device_temp_gpio 
+525b 20204f0a branch device_gpio_config_input_pu 
+
+mouse_gpio_config_pd_check:
+525c 67e0c8a7 store 1 ,mem_device_temp_gpio 
+525d 20405256 call mouse_gpio_config_output_low 
+525e 6848c8a7 fetcht 1 ,mem_device_temp_gpio 
+525f 20204f06 branch device_gpio_config_input_pd 
+
+mouse_init_sunt:
+5260 44c54011 bpatch patch11_2 ,mem_patch11 
+5261 20404f1b call mouse_sensor_spi_init 
+5262 20758000 rtn wake 
+
+mouse_init_sensor_wakeup:
+5263 204052fd call mouse_sensor_poweron 
+
+mouse_init_sensor:
+5264 44c5c011 bpatch patch11_3 ,mem_patch11 
+5265 2040526f call mouse_read_sensor_id 
+5266 c0185276 beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
+5267 c018d2dc beq p3065_id1 ,mouse_init_p3065 
+5268 c02c52e5 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+5269 2040526c call mouse_twspi_reset 
+526a 20001af4 nop 6900 
+526b 20205264 branch mouse_init_sensor 
+
+mouse_twspi_reset:
+526c 6848c893 fetcht 1 ,mem_mouse_sensor_sclk_gpio 
+526d 20406953 call twspi_reset 
+526e 20204f20 branch mouse_spid_init_pin 
+
+mouse_read_sensor_id:
+526f 58000001 setarg pan_reg_pid_h 
+5270 20406971 call twspi_read 
+5271 67e0c8fc store 1 ,mem_sensor_id2 
+5272 58000000 setarg pan_reg_pid_l 
+5273 20406971 call twspi_read 
+5274 67e0c8fb store 1 ,mem_sensor_id1 
+5275 20600000 rtn 
+
+mouse_init_p32xx_id2_judge:
+5276 6fe0c8fc fetch 1 ,mem_sensor_id2 
+5277 c02d5285 beq p_mx8650 ,mouse_mx8650_init_param 
+5278 c06c528a beq p8009_id2 ,mouse_8009_init_param 
+5279 c068d27f beq p3205_tj3t_id2 ,mouse_s210x_3205_3t_judge 
+527a c06952a2 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
+527b c00152a9 beq p3212_id2 ,mouse_3212_init_param 
+527c c02a52b2 beq pka8_id2 ,mouse_ka8_init_param_check 
+527d c02852d9 beq p6520a_id2 ,mouse_p6520_init_param 
+527e 20205264 branch mouse_init_sensor 
+
+mouse_s210x_3205_3t_judge:
+527f 58000049 setarg 0x49 
+5280 20406971 call twspi_read 
+5281 c050d283 beq 0xa1 ,mouse_s201x_init_param 
+5282 20205299 branch mouse_3205_3t_init_param 
+
+mouse_s201x_init_param:
+5283 7049fa0c jam s201x ,mem_config_sensor_type 
+5284 20600000 rtn 
+
+mouse_mx8650_init_param:
+5285 7049fa05 jam mx8650 ,mem_config_sensor_type 
+5286 204052f0 call mouse_sensor_reset 
+5287 20407c97 call delay_10ms 
+5288 da604973 arg mem_sensor_8650_init ,regc 
+5289 20205301 branch mouse_sensor_poweron_end 
+
+mouse_8009_init_param:
+528a 58000016 setarg 0x16 
+528b 20406971 call twspi_read 
+528c 1fe67cbd sub pdata ,0xbd ,null 
+528d 2422d260 nbranch mouse_init_sunt ,zero 
+528e 58000019 setarg 0x19 
+528f 20406971 call twspi_read 
+5290 1fe67c55 sub pdata ,0x55 ,null 
+5291 2422d260 nbranch mouse_init_sunt ,zero 
+5292 5800001b setarg 0x1b 
+5293 20406971 call twspi_read 
+5294 1fe67c1d sub pdata ,0x1d ,null 
+5295 2422d260 nbranch mouse_init_sunt ,zero 
+5296 7049fa06 jam p8009 ,mem_config_sensor_type 
+5297 da6049af arg mem_sensor_8009_init ,regc 
+5298 202052ab branch mouse_sensor_wr_seq 
+
+mouse_3205_3t_init_param:
+5299 7049fa00 jam p3205 ,mem_config_sensor_type 
+529a da60492d arg mem_sensor_3205_init ,regc 
+529b 204052ab call mouse_sensor_wr_seq 
+529c da604937 arg mem_sensor_32xx_init ,regc 
+529d 204052ab call mouse_sensor_wr_seq 
+529e 58000943 setarg 0x0943 
+529f 20406970 call twspi_write 
+52a0 da604951 arg mem_sensor_32xx_init_1 ,regc 
+52a1 202052ab branch mouse_sensor_wr_seq 
+
+mouse_3204_3l_init_param:
+52a2 7049fa02 jam p3204 ,mem_config_sensor_type 
+52a3 da604923 arg mem_sensor_3204_init ,regc 
+52a4 204052ab call mouse_sensor_wr_seq 
+52a5 da604937 arg mem_sensor_32xx_init ,regc 
+52a6 204052ab call mouse_sensor_wr_seq 
+52a7 da604951 arg mem_sensor_32xx_init_1 ,regc 
+52a8 202052ab branch mouse_sensor_wr_seq 
+
+mouse_3212_init_param:
+52a9 7049fa03 jam p3212 ,mem_config_sensor_type 
+52aa da604919 arg mem_sensor_3212_init ,regc 
+
+mouse_sensor_wr_seq:
+52ab efe10013 ifetch 2 ,regc 
+52ac d840ffff arg 0xffff ,temp 
+52ad 98467c00 isub temp ,null 
+52ae 20628000 rtn zero 
+52af 20406970 call twspi_write 
+52b0 1a60a602 increase 2 ,regc 
+52b1 202052ab branch mouse_sensor_wr_seq 
+
+mouse_ka8_init_param_check:
+52b2 204050a7 call mouse_sensor_disable_wp 
+52b3 58009a5b setarg 0x9a5b 
+52b4 20406970 call twspi_write 
+52b5 5800000d setarg 0x0d 
+52b6 20406971 call twspi_read 
+52b7 1fe67c12 sub pdata ,0x12 ,null 
+52b8 2022d2c6 branch mouse_ka8ul_init_param ,zero 
+52b9 1fe67c0a sub pdata ,0x0a ,null 
+52ba 2422d2c9 nbranch mouse_ka8hd_sensor_judge ,zero 
+52bb 5800000e setarg 0x0e 
+52bc 20406971 call twspi_read 
+52bd 1fe67ce5 sub pdata ,0xe5 ,null 
+52be 2422d264 nbranch mouse_init_sensor ,zero 
+52bf 58000010 setarg 0x10 
+52c0 20406971 call twspi_read 
+52c1 1fe67ca5 sub pdata ,0xa5 ,null 
+52c2 2022d2c6 branch mouse_ka8ul_init_param ,zero 
+52c3 204052d6 call mouse_enable_ka8_sensor_wp 
+
+mouse_ka8_init_param:
+52c4 7049fa08 jam ka8 ,mem_config_sensor_type 
+52c5 20600000 rtn 
+
+mouse_ka8ul_init_param:
+52c6 7049fa09 jam ka8_ul ,mem_config_sensor_type 
+52c7 da604991 arg mem_sensor_ka8ul_init ,regc 
+52c8 202052ab branch mouse_sensor_wr_seq 
+
+mouse_ka8hd_sensor_judge:
+52c9 1fe67c10 sub pdata ,0x10 ,null 
+52ca 2422d264 nbranch mouse_init_sensor ,zero 
+52cb 5800000e setarg 0x0e 
+52cc 20406971 call twspi_read 
+52cd 1fe67cc5 sub pdata ,0xc5 ,null 
+52ce 2422d264 nbranch mouse_init_sensor ,zero 
+52cf 58000010 setarg 0x10 
+52d0 20406971 call twspi_read 
+52d1 1fe67c38 sub pdata ,0x38 ,null 
+52d2 2422d264 nbranch mouse_init_sensor ,zero 
+
+mouse_ka8hd_init_param:
+52d3 204052d6 call mouse_enable_ka8_sensor_wp 
+52d4 7049fa0a jam ka8_hd ,mem_config_sensor_type 
+52d5 20600000 rtn 
+
+mouse_enable_ka8_sensor_wp:
+52d6 5800005b setarg 0x005b 
+52d7 20406970 call twspi_write 
+52d8 202050a5 branch mouse_sensor_enable_wp 
+
+mouse_p6520_init_param:
+52d9 7049fa07 jam p6520 ,mem_config_sensor_type 
+52da da6049d1 arg mem_sensor_p6520_init ,regc 
+52db 202052ab branch mouse_sensor_wr_seq 
+
+mouse_init_p3065:
+52dc 204052fd call mouse_sensor_poweron 
+52dd 6fe0c8fc fetch 1 ,mem_sensor_id2 
+52de c03852e3 beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+52df c00052e1 beq p3065_id2 ,mouse_p3065_init_param 
+52e0 20205264 branch mouse_init_sensor 
+
+mouse_p3065_init_param:
+52e1 7049fa01 jam p3065 ,mem_config_sensor_type 
+52e2 20600000 rtn 
+
+mouse_p3065xy_init_param:
+52e3 7049fa04 jam p3065_xy ,mem_config_sensor_type 
+52e4 20600000 rtn 
+
+mouse_ka8g2_id2_judge:
+52e5 204052fd call mouse_sensor_poweron 
+52e6 6fe0c8fc fetch 1 ,mem_sensor_id2 
+52e7 c02bd2ed beq ka5857_id2 ,mouse_ka5857_init_param 
+52e8 c02cd2ea beq pka8g2_id2 ,mouse_ka8g2_init_param 
+52e9 20205276 branch mouse_init_p32xx_id2_judge 
+
+mouse_ka8g2_init_param:
+52ea 7049fa0b jam ka8g2 ,mem_config_sensor_type 
+52eb da6049bf arg mem_sensor_ka8g2_init ,regc 
+52ec 202052ab branch mouse_sensor_wr_seq 
+
+mouse_ka5857_init_param:
+52ed 7049fa0d jam ka5857 ,mem_config_sensor_type 
+52ee da6049dd arg mem_sensor_ka5857_init ,regc 
+52ef 20205301 branch mouse_sensor_poweron_end 
+
+mouse_sensor_reset:
+52f0 d8408006 arg 0x8006 ,temp 
+52f1 6fe0c9fa fetch 1 ,mem_config_sensor_type 
+52f2 c085d2f4 bne ka8g2 ,mouse_sensor_reset_end 
+52f3 d8409706 arg 0x9706 ,temp 
+
+mouse_sensor_reset_end:
+52f4 18427e00 copy temp ,pdata 
+52f5 20406970 call twspi_write 
+52f6 20002ee0 nop 12000 
+52f7 20600000 rtn 
+
+mouse_sensor_poweron_init:
+52f8 da6049e9 arg mem_sensor_poweron_init ,regc 
+52f9 6fe0c9fa fetch 1 ,mem_config_sensor_type 
+52fa c1858000 rtnne ka8g2 
+52fb da6049f1 arg mem_sensor_ka8g2_poweron_init ,regc 
+52fc 20600000 rtn 
+
+mouse_sensor_poweron:
+52fd 44c64011 bpatch patch11_4 ,mem_patch11 
+52fe 20404f1b call mouse_sensor_spi_init 
+52ff 204052f0 call mouse_sensor_reset 
+5300 204052f8 call mouse_sensor_poweron_init 
+
+mouse_sensor_poweron_end:
+5301 204052ab call mouse_sensor_wr_seq 
+5302 2020506b branch mouse_setting_sensor_type 
+
+mouse_sensor_powerdown:
+5303 44c6c011 bpatch patch11_5 ,mem_patch11 
+5304 20405260 call mouse_init_sunt 
+5305 20404f1b call mouse_sensor_spi_init 
+5306 d8400806 arg 0x0806 ,temp 
+5307 6fe0c9fa fetch 1 ,mem_config_sensor_type 
+5308 c085d30a bne ka8g2 ,mouse_sensor_powerdown_end 
+5309 d8401f06 arg 0x1f06 ,temp 
+
+mouse_sensor_powerdown_end:
+530a 18427e00 copy temp ,pdata 
+530b 20206970 branch twspi_write 
+
+mouse_check_sensor_data:
+530c 6fe0c437 fetch 1 ,mem_spi_write_flash_sm 
+530d c1800000 rtnne flash_sm_no_buys 
+530e 6fe0c9fa fetch 1 ,mem_config_sensor_type 
+530f c0005319 beq p3205 ,mouse_p32xx_sensor_motion 
+5310 c000d319 beq p3065 ,mouse_p32xx_sensor_motion 
+5311 c0045319 beq ka8 ,mouse_p32xx_sensor_motion 
+5312 c0015319 beq p3204 ,mouse_p32xx_sensor_motion 
+5313 c001d33d beq p3212 ,mouse_p3212_sensor_motion 
+5314 c0025319 beq p3065_xy ,mouse_p32xx_sensor_motion 
+5315 c0035365 beq p8009 ,mouse_p8009_sensor_motion 
+5316 c005d35b beq ka8g2 ,mouse_pka8g2_sensor_motion 
+5317 c006d35b beq ka5857 ,mouse_pka8g2_sensor_motion 
+5318 20205319 branch mouse_p32xx_sensor_motion 
+
+mouse_p32xx_sensor_motion:
+5319 20405387 call mouse_clear_sensor_data 
+531a 78547c00 disable user 
+531b 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
+531c c07fd320 beq gpio_disable ,mouse_p32xx_sensor_motion_2 
+531d 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
+531e 20406ee0 call gpio_get_bit 
+531f 24608000 nrtn true 
+
+mouse_p32xx_sensor_motion_2:
+5320 58000000 setarg pan_reg_pid_l 
+5321 20406971 call twspi_read 
+5322 c0985333 bne p32xx_id1 ,mouse_p3065_judge 
+
+mouse_p32xx_sensor_motion_1:
+5323 58000002 setarg pan_reg_motion_staus 
+5324 20406971 call twspi_read 
+5325 c4038000 rtnbit0 7 
+5326 2040539e call mouse_read_sensor_common 
+5327 6fe0c65d fetch 1 ,mem_mouse_x 
+5328 20405397 call mouse_data_extsign 
+5329 67e1465d store 2 ,mem_mouse_x 
+532a 6fe0c65f fetch 1 ,mem_mouse_y 
+532b 20405397 call mouse_data_extsign 
+532c 67e1465f store 2 ,mem_mouse_y 
+532d 6fe0c9fb fetch 1 ,mem_config_sensor_angle 
+532e c0005335 beq mouse_6clk_angle ,mouse_motion32xx_6clk_direction_selection 
+532f c000d337 beq mouse_9clk_angle ,mouse_motion32xx_9clk_direction_selection 
+5330 c0015339 beq mouse_12clk_angle ,mouse_motion32xx_12clk_direction_selection 
+5331 c001d33b beq mouse_3clk_angle ,mouse_motion32xx_3clk_direction_selection 
+5332 20600000 rtn 
+
+mouse_p3065_judge:
+5333 c018d323 beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
+5334 2020526c branch mouse_twspi_reset 
+
+mouse_motion32xx_6clk_direction_selection:
+5335 20405370 call mouse_motion_6clk_direction_dispose 
+5336 202053a4 branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_9clk_direction_selection:
+5337 20405378 call mouse_motion_9clk_direction_dispose 
+5338 202053a4 branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_12clk_direction_selection:
+5339 20405374 call mouse_motion_12clk_direction_dispose 
+533a 202053a4 branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_3clk_direction_selection:
+533b 20405380 call mouse_motion_3clk_direction_dispose 
+533c 202053a4 branch mouse_sensor_sdio_low 
+
+mouse_p3212_sensor_motion:
+533d 20405387 call mouse_clear_sensor_data 
+533e 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
+533f c07fd343 beq gpio_disable ,mouse_p3212_sensor_motion_1 
+5340 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
+5341 20406ee0 call gpio_get_bit 
+5342 24608000 nrtn true 
+
+mouse_p3212_sensor_motion_1:
+5343 58000000 setarg pan_reg_pid_l 
+5344 20406971 call twspi_read 
+5345 c098526c bne p32xx_id1 ,mouse_twspi_reset 
+
+mouse_p3212_sensor_motion_2:
+5346 58000002 setarg pan_reg_motion_staus 
+5347 20406971 call twspi_read 
+5348 c4038000 rtnbit0 7 
+5349 2040539e call mouse_read_sensor_common 
+534a 20405359 call mouse_read_3212sensor_xy_high 
+534b 67e0c663 store 1 ,mem_mouse_xy_h 
+534c 1ff1fe00 rshift4 pdata ,pdata 
+534d 2040539b call mouse_data_extsign_bit3 
+534e 67e0c65e store 1 ,mem_mouse_x + 1 
+534f 6fe0c663 fetch 1 ,mem_mouse_xy_h 
+5350 1fe17e0f and pdata ,0x0f ,pdata 
+5351 2040539b call mouse_data_extsign_bit3 
+5352 67e0c660 store 1 ,mem_mouse_y + 1 
+5353 6fe0c9fb fetch 1 ,mem_config_sensor_angle 
+5354 c0005370 beq mouse_6clk_angle ,mouse_motion_6clk_direction_dispose 
+5355 c000d378 beq mouse_9clk_angle ,mouse_motion_9clk_direction_dispose 
+5356 c0015374 beq mouse_12clk_angle ,mouse_motion_12clk_direction_dispose 
+5357 c001d380 beq mouse_3clk_angle ,mouse_motion_3clk_direction_dispose 
+5358 20600000 rtn 
+
+mouse_read_3212sensor_xy_high:
+5359 58000012 setarg 0x12 
+535a 20206971 branch twspi_read 
+
+mouse_pka8g2_sensor_motion:
+535b 20405387 call mouse_clear_sensor_data 
+535c 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
+535d c07fd361 beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
+535e 6848c667 fetcht 1 ,mem_sensor_motion_gpio 
+535f 20406ee0 call gpio_get_bit 
+5360 24608000 nrtn true 
+
+mouse_pka8g2_sensor_motion_1:
+5361 58000000 setarg pan_reg_pid_l 
+5362 20406971 call twspi_read 
+5363 c0ac526c bne pka8g2_id1 ,mouse_twspi_reset 
+5364 20205346 branch mouse_p3212_sensor_motion_2 
+
+mouse_p8009_sensor_motion:
+5365 20405387 call mouse_clear_sensor_data 
+5366 78547c00 disable user 
+5367 58000002 setarg pan_reg_motion_staus 
+5368 20406971 call twspi_read 
+5369 c4038000 rtnbit0 7 
+536a 58000008 setarg pan_reg_opration_state 
+536b 20406971 call twspi_read 
+536c 203a5326 branch mouse_p32xx_sensor_motion_1 + 3 ,blank 
+536d 58000000 setarg 0 
+536e 67e3465d store 6 ,mem_mouse_x 
+536f 20600000 rtn 
+
+mouse_motion_6clk_direction_dispose:
+5370 6fe1465d fetch 2 ,mem_mouse_x 
+5371 1fe67e00 sub pdata ,0 ,pdata 
+5372 67e1465d store 2 ,mem_mouse_x 
+5373 20207dbc branch enable_user 
+
+mouse_motion_12clk_direction_dispose:
+5374 6fe1465f fetch 2 ,mem_mouse_y 
+5375 1fe67e00 sub pdata ,0 ,pdata 
+5376 67e1465f store 2 ,mem_mouse_y 
+5377 20207dbc branch enable_user 
+
+mouse_motion_9clk_direction_dispose:
+5378 6fe1465f fetch 2 ,mem_mouse_y 
+5379 1fe67e00 sub pdata ,0 ,pdata 
+537a 67e1465f store 2 ,mem_mouse_y 
+537b 6fe1465d fetch 2 ,mem_mouse_x 
+537c 1fe67e00 sub pdata ,0 ,pdata 
+537d 67e1465d store 2 ,mem_mouse_x 
+537e 20405382 call mouse_sensor_data_swap_places 
+537f 20207dbc branch enable_user 
+
+mouse_motion_3clk_direction_dispose:
+5380 20405382 call mouse_sensor_data_swap_places 
+5381 20207dbc branch enable_user 
+
+mouse_sensor_data_swap_places:
+5382 6fe1465f fetch 2 ,mem_mouse_y 
+5383 6849465d fetcht 2 ,mem_mouse_x 
+5384 67e1465d store 2 ,mem_mouse_x 
+5385 6049465f storet 2 ,mem_mouse_y 
+5386 20600000 rtn 
+
+mouse_clear_sensor_data:
+5387 6fe0c8fd fetch 1 ,mem_mouse_move_flag 
+5388 205a539e call mouse_read_sensor_common ,blank 
+5389 7048fd01 jam 1 ,mem_mouse_move_flag 
+538a 20600000 rtn 
+
+mouse_clear_sensor_data_by_reset:
+538b 7049f901 jam 1 ,mem_mouse_clear_sensor_data_flag 
+538c 204029a8 call le_set_config_more_data 
+
+mouse_init_sensor_reset:
+538d 20205260 branch mouse_init_sunt 
+
+mouse_data_xy_release:
+538e 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
+538f c1ff8000 rtnne gpio_disable 
+5390 6fe0c73d fetch 1 ,mem_mouse_long_mult_flag 
+5391 207a0000 rtn blank 
+5392 1fe0ffff increase -1 ,pdata 
+5393 67e0c73d store 1 ,mem_mouse_long_mult_flag 
+5394 58000000 setarg 0 
+5395 67e2465d store 4 ,mem_mouse_x 
+5396 2020538d branch mouse_init_sensor_reset 
+
+mouse_data_extsign:
+5397 c4038000 rtnbit0 7 
+5398 d840ff00 arg 0xff00 ,temp 
+
+mouse_data_ior:
+5399 9841fe00 ior temp ,pdata 
+539a 20600000 rtn 
+
+mouse_data_extsign_bit3:
+539b c4018000 rtnbit0 3 
+539c d84000f0 arg 0xf0 ,temp 
+539d 20205399 branch mouse_data_ior 
+
+mouse_read_sensor_common:
+539e dfe00003 arg pan_reg_delta_x ,pdata 
+539f 20406971 call twspi_read 
+53a0 67e1465d store 2 ,mem_mouse_x 
+53a1 dfe00004 arg pan_reg_delta_y ,pdata 
+53a2 20406971 call twspi_read 
+53a3 2020586a branch mouse_data_y_store 
+
+mouse_sensor_sdio_low:
+53a4 6848c894 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+53a5 20406ee0 call gpio_get_bit 
+53a6 20608000 rtn true 
+53a7 5800000a setarg 0x0a 
+53a8 20406971 call twspi_read 
+53a9 200003e8 nop 1000 
+53aa 202053a4 branch mouse_sensor_sdio_low 
+
+mouse_set_sdio_high:
+53ab 58008100 setarg 0x8100 
+53ac 20206970 branch twspi_write 
+
+mouse_bluetooth_fast_conn_init:
+53ad 70474fff jam 0xff ,mem_device_fast_conn_flag 
+
+mouse_ble_fast_conn_init:
+53ae 7043fc34 jam 0x34 ,mem_xrecord_mode 
+53af 580f0f0f setarg 0x0f0f0f 
+53b0 67e1c2dd store 3 ,mem_le_lap 
+53b1 67e1c2e0 store 3 ,mem_le_lap + 3 
+53b2 20204e11 branch mouse_start_reconnect 
+
+mouse_buletooth_fast_conn_end:
+53b3 44c74011 bpatch patch11_6 ,mem_patch11 
+53b4 204067d5 call hid_device_select_reconn_device 
+53b5 204053c1 call mouse_bluetooth_fast_conn_disable 
+53b6 6fe0c678 fetch 1 ,mem_device_flag 
+53b7 c000d3ba beq mode_bt_device1 ,mouse_device1_check_auto_discover 
+53b8 c00153bc beq mode_bt_device2 ,mouse_device2_check_auto_discover 
+53b9 20600000 rtn 
+
+mouse_device1_check_auto_discover:
+53ba 6fe3467a fetch 6 ,mem_device1_addr 
+53bb 202053bd branch mouse_device_check_auto_discover 
+
+mouse_device2_check_auto_discover:
+53bc 6fe34687 fetch 6 ,mem_device2_addr 
+
+mouse_device_check_auto_discover:
+53bd 684b46f8 fetcht 6 ,mem_device_compare_addr 
+53be 98467c00 isub temp ,null 
+53bf 2022d544 branch mouse_start_discovery ,zero 
+53c0 20204e09 branch mouse_start_reconnect_device 
+
+mouse_bluetooth_fast_conn_disable:
+53c1 70474f5a jam 0x5a ,mem_device_fast_conn_flag 
+53c2 20600000 rtn 
+
+mouse_stop_bluetooth_mode:
+53c3 6fe14500 fetch 2 ,mem_ui_state_map 
+53c4 c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+53c5 20205562 branch mouse_stop_discovery 
+
+mouse_disconnect:
+53c6 58000000 setarg 0 
+53c7 67e14741 store 2 ,mem_device_no_data_timer 
+53c8 6fe14500 fetch 2 ,mem_ui_state_map 
+53c9 c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+53ca 20600000 rtn 
+
+mouse_check_125hz:
+53cb 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+53cc c40d8000 rtnbit0 mouse_enable_bt_125hz 
+
+mouse_bluetooth_125hz:
+53cd 243453d3 nbranch mouse_bluetooth_125hz_clear ,user 
+53ce 6fe0c9fc fetch 1 ,mem_bluetooth_125hz_cnt 
+53cf 1fe0fe01 increase 1 ,pdata 
+53d0 1fe17e0f and_into 0x0f ,pdata 
+53d1 67e0c9fc store 1 ,mem_bluetooth_125hz_cnt 
+53d2 247a0000 nrtn blank 
+
+mouse_bluetooth_125hz_clear:
+53d3 7049fc00 jam 0 ,mem_bluetooth_125hz_cnt 
+53d4 20207dbe branch disable_user 
+
+mouse_current_mult_update:
+53d5 6fe0c667 fetch 1 ,mem_sensor_motion_gpio 
+53d6 c1ff8000 rtnne gpio_disable 
+53d7 7040c000 jam 0 ,mem_lpm_mult 
+53d8 70473e1e jam 30 ,mem_mouse_current_mult_timer 
+53d9 20600000 rtn 
+
+mouse_priority_bb_event:
+53da 44c7c011 bpatch patch11_7 ,mem_patch11 
+53db 1a627e00 copy regc ,pdata 
+53dc c00a53e9 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
+53dd c00ad3f9 beq bt_evt_le_disconnected ,mouse_le_bb_disconnected 
+53de c008553f beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
+53df c018d406 beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+53e0 c014d408 beq bt_evt_le_enc_info ,mouse_le_enc_info 
+53e1 c019540a beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
+53e2 c01f379e beq bt_evt_le_pairing_complete ,app_ble_store_reconn_info 
+53e3 c0205415 beq bt_evt_le_parse_conn_papa_update_rsp ,mouse_le_conn_param_update_rsp_recieved 
+53e4 c01cd9a8 beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
+53e5 c01d5971 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
+53e6 c01e5997 beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
+53e7 c0225428 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+53e8 20600000 rtn 
+
+mouse_le_bb_event_connected:
+53e9 20405a62 call mouse_device_poweron_led_config 
+53ea 70473d00 jam 0 ,mem_mouse_long_mult_flag 
+53eb 2040538d call mouse_init_sensor_reset 
+53ec 70475301 jam 1 ,mem_device_le_bb_connected_flag 
+53ed 20405960 call mouse_24g_first_store_reconn_info 
+53ee 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
+53ef 243a53f1 nbranch mouse_le_bb_event_connected_next ,blank 
+53f0 70475514 jam 0x14 ,mem_device_send_secutiry_request_timer 
+
+mouse_le_bb_event_connected_next:
+53f1 6fe143fa fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+53f2 793ffe00 set0 app_disc_by_button ,pdata 
+53f3 67e143fa store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+53f4 70472000 jam 0 ,mem_device_direct_timer 
+53f5 6fe1477d fetch 2 ,mem_le_battery_level_updata_timer_init 
+53f6 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+53f7 20405535 call mouse_no_data_timer_init 
+53f8 20205562 branch mouse_stop_discovery 
+
+mouse_le_bb_disconnected:
+53f9 58000000 setarg 0 
+53fa 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+53fb 70475300 jam 0 ,mem_device_le_bb_connected_flag 
+53fc d8400006 arg le_interval_7_5ms ,temp 
+53fd 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+53fe c28dd400 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next 
+53ff d8400007 arg le_interval_8_75ms ,temp 
+
+mouse_le_bb_disconnected_next:
+5400 604942d5 storet 2 ,mem_le_interval_min 
+5401 604942d7 storet 2 ,mem_le_interval_min + 2 
+5402 70478100 jam le_lpm_enable ,mem_le_conn_param_reject 
+5403 7049f900 jam 0 ,mem_mouse_clear_sensor_data_flag 
+5404 204029aa call le_clr_config_more_data 
+5405 20205484 branch mouse_bb_disconnected 
+
+mouse_le_pairing_success:
+5406 d8e00002 arg ll_pairing_success_flag ,queue 
+5407 20205411 branch mouse_le_enable_connect_flag 
+
+mouse_le_enc_info:
+
+mouse_updata_le_param:
+5408 70064d12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+5409 20207824 branch ui_ipc_send_cmd 
+
+mouse_le_ll_start_encryt:
+540a 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
+540b c000d40d beq 1 ,mouse_le_ll_reconn_start_encryt 
+540c 2020540f branch mouse_le_ll_enable_start_enc_flag 
+
+mouse_le_ll_reconn_start_encryt:
+540d 20405408 call mouse_updata_le_param 
+540e 70488314 jam 20 ,mem_le_start_encrypt_timer 
+
+mouse_le_ll_enable_start_enc_flag:
+540f d8e00001 arg ll_start_enc_flag ,queue 
+5410 20205411 branch mouse_le_enable_connect_flag 
+
+mouse_le_enable_connect_flag:
+5411 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
+5412 f9207e00 qset1 pdata 
+5413 67e0c882 store 1 ,mem_le_connect_status_flag 
+5414 20600000 rtn 
+
+mouse_le_conn_param_update_rsp_recieved:
+5415 6fe14340 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+5416 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+5417 6fe0816a fetch 1 ,mem_le_tsniff 
+5418 1feb7e00 rshift2 pdata ,pdata 
+5419 1fe67c0c sub pdata ,le_interval_15ms ,null 
+541a 20610000 rtn positive 
+541b 58000009 setarg le_interval_11_25ms 
+541c 20404dab call mouse_le_interval_store 
+541d 20405408 call mouse_updata_le_param 
+
+mouse_le_conn_param_lpm_disable:
+541e 70478101 jam le_lpm_disable ,mem_le_conn_param_reject 
+541f 20600000 rtn 
+
+mouse_le_bb_event_connect_complete:
+5420 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
+5421 247a0000 nrtn blank 
+5422 6fe0c39c fetch 1 ,mem_le_att_handle 
+5423 1fe67e22 sub pdata ,34 ,pdata 
+5424 24628000 nrtn zero 
+5425 70488300 jam 0 ,mem_le_start_encrypt_timer 
+
+mouse_le_write_enable:
+5426 d8e00000 arg write_req_enable_flag ,queue 
+5427 20205411 branch mouse_le_enable_connect_flag 
+
+mouse_le_parse_conn_param_accepted:
+5428 6fe081a2 fetch 1 ,mem_le_new_conninterval 
+5429 1fe67c0c sub pdata ,le_interval_15ms ,null 
+542a 2421541e nbranch mouse_le_conn_param_lpm_disable ,positive 
+542b 20404dab call mouse_le_interval_store 
+542c 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
+542d 203a5434 branch mouse_le_lpm_mult_reinit ,blank 
+542e 6848c88b fetcht 1 ,mem_lpm_mult_init 
+542f 98467c00 isub temp ,null 
+5430 20215434 branch mouse_le_lpm_mult_reinit ,positive 
+5431 6fe081a4 fetch 1 ,mem_le_new_connslavelatency 
+5432 67e0c0c0 store 1 ,mem_lpm_mult 
+5433 20205436 branch mouse_le_conn_param_lpm_enable 
+
+mouse_le_lpm_mult_reinit:
+5434 6fe0c88b fetch 1 ,mem_lpm_mult_init 
+5435 67e0c0c0 store 1 ,mem_lpm_mult 
+
+mouse_le_conn_param_lpm_enable:
+5436 70478100 jam le_lpm_enable ,mem_le_conn_param_reject 
+5437 20600000 rtn 
+
+mouse_le:
+5438 44c84012 bpatch patch12_0 ,mem_patch12 
+5439 20402a06 call le_fifo_check_nearly_full 
+543a 247a0000 nrtn blank 
+543b 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+543c c07fd440 beq 0xff ,mouse_le_next 
+543d 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
+543e 1fe17e03 and pdata ,0x03 ,pdata 
+543f c1818000 rtnne 0x03 
+
+mouse_le_next:
+5440 6fe0c9f9 fetch 1 ,mem_mouse_clear_sensor_data_flag 
+5441 205a538b call mouse_clear_sensor_data_by_reset ,blank 
+5442 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5443 c280e824 bbit1 mouse_24g_pairing_flag ,hid_device_le_send_empty_packet 
+5444 c2806824 bbit1 mouse_select_device_flag ,hid_device_le_send_empty_packet 
+5445 c282e824 bbit1 mouse_bt_discovery_button_down_flag ,hid_device_le_send_empty_packet 
+5446 c2836824 bbit1 mouse_bt_discovery_button_long_down_flag ,hid_device_le_send_empty_packet 
+5447 20404f26 call mouse_motion 
+5448 204053cb call mouse_check_125hz 
+5449 24740000 nrtn user 
+544a 204053d5 call mouse_current_mult_update 
+544b 2040538e call mouse_data_xy_release 
+544c 20404fd1 call mouse_wheel_trigger 
+544d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+544e c30a683e bbit0 mouse_enable_keyboard ,hid_device_le_send_mouse_data 
+544f 2020683c branch hid_device_send_package_data_check 
+
+mouse_fill_battery_level_le:
+5450 da200001 arg 1 ,rega 
+5451 6849477a fetcht 2 ,mem_le_battery_level_handle 
+5452 20402dcc call le_att_malloc_tx_notify 
+5453 6fe0c77c fetch 1 ,mem_le_battery_level_percentage 
+5454 20207dce branch istore_1_contw_rtn 
+
+mouse_check_51cmd_adv:
+5455 70475400 jam 0 ,mem_device_le_reconnect_flag 
+5456 6fe1c759 fetch 3 ,mem_le_adv_ind 
+5457 67e1c351 store 3 ,mem_le_adv_data + 4 
+5458 2040545e call mouse_le_check_adv_flag 
+5459 58000005 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+545a e7e08006 istore 1 ,contr 
+545b d8c0475f arg mem_le_adv_swift_pair ,contr 
+545c 20405465 call mouse_le_adv_data_update 
+545d 20207860 branch check_51cmd_adv 
+
+mouse_le_check_adv_flag:
+545e da20434d arg mem_le_adv_data ,rega 
+
+mouse_le_check_adv_flag_loop:
+545f efe08011 ifetch 1 ,rega 
+5460 207a0000 rtn blank 
+5461 98c0a200 iadd contr ,rega 
+5462 efe08006 ifetch 1 ,contr 
+5463 c1008000 rtneq 0x01 
+5464 2020545f branch mouse_le_check_adv_flag_loop 
+
+mouse_le_adv_data_update:
+5465 d8a04358 arg mem_le_adv_data + 11 ,contw 
+5466 df200013 arg 19 ,loopcnt 
+5467 20407cdc call memcpy 
+5468 20202948 branch le_modified_name_adv 
+
+mouse_le_parse_att:
+5469 44c8c012 bpatch patch12_1 ,mem_patch12 
+546a 1a220c00 copy rega ,contr 
+546b efe18006 ifetch 3 ,contr 
+546c 67e1c39b store 3 ,mem_le_att_opcode 
+546d c0055470 beq attop_read_request ,mouse_le_parse_att_read_request 
+546e c009547f beq attop_write_request ,mouse_le_parse_att_write_request 
+546f 20202b76 branch le_parse_att2 
+
+mouse_le_parse_att_read_request:
+5470 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5471 c31dacf7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
+5472 20402da5 call le_check_encrypt_state 
+5473 6849439c fetcht 2 ,mem_le_att_handle 
+5474 6fe0c323 fetch 1 ,mem_le_configuration 
+5475 c281d47a bbit1 bit_ble_read_auth ,mouse_le_send_att_read_response_check_auth 
+
+mouse_le_send_att_read_response:
+5476 6fe1439c fetch 2 ,mem_le_att_handle 
+5477 c0182de1 beq 0x30 ,le_send_att_error_response_notfound 
+5478 6849439c fetcht 2 ,mem_le_att_handle 
+5479 20202cfb branch le_send_att_read_response 
+
+mouse_le_send_att_read_response_check_auth:
+547a 6fe14334 fetch 2 ,mem_le_pairing_handle 
+547b 98467c00 isub temp ,null 
+547c 2422d476 nbranch mouse_le_send_att_read_response ,zero 
+547d 24345476 nbranch mouse_le_send_att_read_response ,user 
+547e 20202d24 branch le_send_att_read_response_error_insufficient_auth 
+
+mouse_le_parse_att_write_request:
+547f 18c22200 copy contr ,rega 
+5480 6fe14337 fetch 2 ,mem_le_l2cap_size 
+5481 1fe0a5fd add pdata ,-3 ,regb 
+5482 20402908 call le_writeatt_cb 
+5483 20206878 branch hid_device_le_parse_att_write_request 
+
+mouse_bb_disconnected:
+5484 44c94012 bpatch patch12_2 ,mem_patch12 
+5485 2040548a call mouse_bb_discon_clear_stack 
+5486 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+5487 c283d490 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+5488 c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+5489 20205544 branch mouse_start_discovery 
+
+mouse_bb_discon_clear_stack:
+548a 58000000 setarg 0 
+548b 67e4466a store 8 ,mem_wheel_tb_old_pinlevel 
+548c e7e10005 istore 2 ,contw 
+548d 7048fd00 jam 0 ,mem_mouse_move_flag 
+548e 70429c00 jam 0 ,mem_ltk_exists 
+548f 20600000 rtn 
+
+mouse4_0_event_bb_disconn:
+5490 70488200 jam 0 ,mem_le_connect_status_flag 
+5491 6fe143f8 fetch app_disc_rsn_size ,mem_app_disconn_reason 
+5492 c2803771 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+5493 20204e35 branch mouse_app_enter_hibernate 
+
+mouse_bb_event_timer:
+5494 44c9c012 bpatch patch12_3 ,mem_patch12 
+5495 20405a29 call mouse_low_voltage_led_timer 
+5496 20404ea5 call mouse_adc_read 
+5497 204059f2 call mouse_logo_led_on_timer 
+5498 20405a81 call mouse_led_multi_timer 
+5499 20405a00 call mouse_dpi_led_blink_delay_timer 
+549a 20405050 call mouse_dpi_key_check_long_press 
+549b 204054ab call mouse_bt_discovery_check 
+549c 204054d7 call mouse_commbination_key_process 
+549d 204054ba call mouse_commbination_dpi_check_timer 
+549e 204054cb call mouse_commbination_key_select_device_timer 
+549f 20405527 call mouse_current_mult_update_timer 
+54a0 20404fd6 call mouse_wheel_trigger_timer 
+54a1 20405538 call mouse_store_information_delay_timer 
+54a2 2040552f call mouse_check_no_data_timeout_timer 
+54a3 204058f6 call mouse_24g_long_sleep_param_update_timer 
+54a4 2040326c call g24_pair_timeout_timer 
+54a5 20403507 call g24_reconn_timeout_timer 
+54a6 204054fa call mouse_check_discovery_timeout_timer 
+54a7 204054ff call mouse_check_direct_timeout_timer 
+54a8 2040550d call mouse_le_enable_att_list_timer 
+54a9 2040551a call mouse_le_battery_updata_timer 
+54aa 20205510 branch mouse_le_send_smp_security_request_timer 
+
+mouse_bt_discovery_check:
+54ab 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+54ac c41b8000 rtnbit0 mouse_enable_pb_button_long_press_disconvery 
+
+mouse_bt_discovery_by_pb_button:
+54ad 6fe0c734 fetch 1 ,mem_select_device_button_statue 
+54ae c1808000 rtnne pb_button_state_down 
+54af da604731 arg mem_bt_discovery_count ,regc 
+54b0 da4054b2 arg mouse_long_button_bt_discovery ,regb 
+54b1 20203755 branch timer_single_step 
+
+mouse_long_button_bt_discovery:
+54b2 6fe0c678 fetch 1 ,mem_device_flag 
+54b3 c1000000 rtneq mode_24g_device 
+54b4 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+54b5 c3830000 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+54b6 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+54b7 2040582e call mouse_enable_function_flag 
+54b8 20403745 call app_evt_button_long_pressed 
+54b9 2020553f branch mouse_bb_event_discovery_btn 
+
+mouse_commbination_dpi_check_timer:
+54ba 6fe0cabf fetch 1 ,mem_mouse_commbination_key_dpi 
+54bb c17f8000 rtneq gpio_disable 
+54bc 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
+54bd 207a0000 rtn blank 
+54be 204051ac call mouse_check_key_gpio 
+54bf 1a217e07 and rega ,0x07 ,pdata 
+54c0 6848cabf fetcht 1 ,mem_mouse_commbination_key_dpi 
+54c1 98467c00 isub temp ,null 
+54c2 2022d4c6 branch mouse_commbination_dpi_check ,zero 
+54c3 6fe0cac1 fetch 1 ,mem_mouse_commbination_dpi_timer 
+
+mouse_commbination_key_count_init:
+54c4 67e0cac3 store 1 ,mem_mouse_commbination_key_count 
+54c5 20600000 rtn 
+
+mouse_commbination_dpi_check:
+54c6 da604ac3 arg mem_mouse_commbination_key_count ,regc 
+54c7 da40501e arg mouse_dpi_process_skip_ghost ,regb 
+54c8 20203755 branch timer_single_step 
+
+mouse_retransmit_commbination_key_check:
+54c9 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
+54ca 207a0000 rtn blank 
+
+mouse_commbination_key_select_device_timer:
+54cb 6fe0cac0 fetch 1 ,mem_mouse_commbination_key_select_device 
+54cc c17f8000 rtneq gpio_disable 
+54cd 204051ac call mouse_check_key_gpio 
+54ce 1a217e07 and rega ,0x07 ,pdata 
+54cf 6848cac0 fetcht 1 ,mem_mouse_commbination_key_select_device 
+54d0 98467c00 isub temp ,null 
+54d1 2022d4d4 branch p_mouse_check_mouse_key_select_device_set ,zero 
+54d2 6fe0cac2 fetch 1 ,mem_mouse_commbination_select_device_timer 
+54d3 202054c4 branch mouse_commbination_key_count_init 
+
+p_mouse_check_mouse_key_select_device_set:
+54d4 da604ac3 arg mem_mouse_commbination_key_count ,regc 
+54d5 da4057f6 arg mouse_ready_reconnection_by_button ,regb 
+54d6 20203755 branch timer_single_step 
+
+mouse_commbination_key_process:
+54d7 6fe0c678 fetch 1 ,mem_device_flag 
+54d8 c00054dd beq mode_24g_device ,mouse_24g_commbination_key_process 
+54d9 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+54da c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+54db 6848cabd fetcht 1 ,mem_mouse_commbination_key_bt 
+54dc 202054e0 branch mouse_commbination_key_start 
+
+mouse_24g_commbination_key_process:
+54dd 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+54de c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+54df 6848cabe fetcht 1 ,mem_mouse_commbination_key_24g 
+
+mouse_commbination_key_start:
+54e0 6048c733 storet 1 ,mem_mouse_commbination_key 
+54e1 204051ac call mouse_check_key_gpio 
+54e2 1a217e07 and rega ,0x07 ,pdata 
+54e3 6848c733 fetcht 1 ,mem_mouse_commbination_key 
+54e4 98467c00 isub temp ,null 
+54e5 2022d4ec branch mouse_commbination_key_down ,zero 
+
+mouse_commbination_key_up:
+54e6 6fe0c502 fetch 1 ,mem_ui_button_timeout 
+54e7 67e0c736 store 1 ,mem_combination_ui_button_count 
+54e8 6fe0c735 fetch 1 ,mem_commbination_key_statue 
+54e9 c1000000 rtneq commbination_key_state_up 
+54ea 70473500 jam commbination_key_state_up ,mem_commbination_key_statue 
+54eb 20600000 rtn 
+
+mouse_commbination_key_down:
+54ec 204054f1 call mouse_combination_ui_timer 
+54ed 6fe0c735 fetch 1 ,mem_commbination_key_statue 
+54ee c1008000 rtneq commbination_key_state_down 
+54ef 70473501 jam commbination_key_state_down ,mem_commbination_key_statue 
+54f0 20600000 rtn 
+
+mouse_combination_ui_timer:
+54f1 da405965 arg mouse_24g_start_pair_mode ,regb 
+54f2 da604736 arg mem_combination_ui_button_count ,regc 
+54f3 6fe0c678 fetch 1 ,mem_device_flag 
+54f4 c0003755 beq mode_24g_device ,timer_single_step 
+54f5 da4054b2 arg mouse_long_button_bt_discovery ,regb 
+54f6 20403755 call timer_single_step 
+54f7 6fe0c736 fetch 1 ,mem_combination_ui_button_count 
+54f8 c000d820 beq 1 ,mouse_bt_discovery_button_down_enable 
+54f9 20600000 rtn 
+
+mouse_check_discovery_timeout_timer:
+54fa da604750 arg mem_device_discovery_timer ,regc 
+54fb da4054fd arg mouse_check_discovery_timeout ,regb 
+54fc 2020375c branch timer_single_step_2b 
+
+mouse_check_discovery_timeout:
+54fd 20405562 call mouse_stop_discovery 
+54fe 20204e35 branch mouse_app_enter_hibernate 
+
+mouse_check_direct_timeout_timer:
+54ff da604720 arg mem_device_direct_timer ,regc 
+5500 da405505 arg mouse_check_direct_timeout ,regb 
+5501 20403755 call timer_single_step 
+5502 6fe0c720 fetch 1 ,mem_device_direct_timer 
+5503 c000b788 beq 1 ,app_ble_stop_direct_adv 
+5504 20600000 rtn 
+
+mouse_check_direct_timeout:
+5505 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+5506 c07fd3b3 beq 0xff ,mouse_buletooth_fast_conn_end 
+5507 6fe0c73f fetch 1 ,mem_reconn_times 
+5508 243a5836 nbranch mouse_polling_device ,blank 
+5509 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+550a c299d544 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
+550b c29f595d bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
+550c 20204e35 branch mouse_app_enter_hibernate 
+
+mouse_le_enable_att_list_timer:
+550d da604883 arg mem_le_start_encrypt_timer ,regc 
+550e da405426 arg mouse_le_write_enable ,regb 
+550f 20203755 branch timer_single_step 
+
+mouse_le_send_smp_security_request_timer:
+5510 6fe0c753 fetch 1 ,mem_device_le_bb_connected_flag 
+5511 207a0000 rtn blank 
+5512 da604755 arg mem_device_send_secutiry_request_timer ,regc 
+5513 da405515 arg mouse_le_pairing_sm_start_check ,regb 
+5514 20203755 branch timer_single_step 
+
+mouse_le_pairing_sm_start_check:
+5515 6fe0c754 fetch 1 ,mem_device_le_reconnect_flag 
+5516 247a0000 nrtn blank 
+5517 6fe0c2fe fetch 1 ,mem_le_pairing_state 
+5518 c1800000 rtnne flag_le_pairing_null 
+5519 20202fab branch le_pairing_sm_start 
+
+mouse_le_battery_updata_timer:
+551a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+551b c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
+551c da60477f arg mem_le_battery_level_updata_timer ,regc 
+551d da40551f arg mouse_le_battery_level_updata ,regb 
+551e 20203755 branch timer_single_step 
+
+mouse_le_battery_level_updata:
+551f 6fe1477d fetch 2 ,mem_le_battery_level_updata_timer_init 
+5520 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+5521 20205450 branch mouse_fill_battery_level_le 
+
+mouse_le_enable_att_list:
+5522 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
+5523 c3810000 rtnbit1 ll_pairing_success_flag 
+5524 20405408 call mouse_updata_le_param 
+5525 d8e00000 arg write_req_enable_flag ,queue 
+5526 20205411 branch mouse_le_enable_connect_flag 
+
+mouse_current_mult_update_timer:
+5527 da60473e arg mem_mouse_current_mult_timer ,regc 
+5528 da40552a arg mouse_current_mult_reinit ,regb 
+5529 20203755 branch timer_single_step 
+
+mouse_current_mult_reinit:
+552a 6fe0c88b fetch 1 ,mem_lpm_mult_init 
+552b 67e0c0c0 store 1 ,mem_lpm_mult 
+
+mouse_long_mult_init:
+552c 6fe0c73c fetch 1 ,mem_mouse_long_mult_count 
+552d 67e0c73d store 1 ,mem_mouse_long_mult_flag 
+552e 20600000 rtn 
+
+mouse_check_no_data_timeout_timer:
+552f da604741 arg mem_device_no_data_timer ,regc 
+5530 da405532 arg mouse_check_no_data_timeout ,regb 
+5531 2020375c branch timer_single_step_2b 
+
+mouse_check_no_data_timeout:
+5532 6fe0c678 fetch 1 ,mem_device_flag 
+5533 c000590a beq mode_24g_device ,mouse_24g_hibernate_set 
+5534 202053c6 branch mouse_disconnect 
+
+mouse_no_data_timer_init:
+5535 6fe1471e fetch 2 ,mem_device_no_data_timeout 
+5536 67e14741 store 2 ,mem_device_no_data_timer 
+5537 20600000 rtn 
+
+mouse_store_information_delay_timer:
+5538 da604705 arg mem_store_information_delay_timer ,regc 
+5539 da40553b arg mouse_store_device_info_check ,regb 
+553a 20203755 branch timer_single_step 
+
+mouse_store_device_info_check:
+553b 20405574 call mouse_store_device_info 
+553c 6fe0c752 fetch 1 ,mem_device_need_soft_reset 
+553d 243a5801 nbranch mouse_soft_reset ,blank 
+553e 20600000 rtn 
+
+mouse_bb_event_discovery_btn:
+553f 280ffe26 isolate1 mark_24g ,mark 
+5540 2040d936 call mouse_24g_stop ,true 
+5541 204053c6 call mouse_disconnect 
+5542 70488200 jam 0 ,mem_le_connect_status_flag 
+5543 20205544 branch mouse_start_discovery 
+
+mouse_start_discovery:
+5544 44ca4012 bpatch patch12_4 ,mem_patch12 
+5545 20405a7a call mouse_device_discovery_led_config 
+5546 6fe14500 fetch 2 ,mem_ui_state_map 
+5547 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+5548 2040d565 call mouse_stop_le_adv ,true 
+5549 204053c1 call mouse_bluetooth_fast_conn_disable 
+554a 6fe14500 fetch 2 ,mem_ui_state_map 
+554b c285d554 bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
+554c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+554d c3045554 bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
+554e 6848c6a7 fetcht 1 ,mem_random_addr_increase_count 
+554f 18408401 increase 1 ,temp 
+5550 6048c6a7 storet 1 ,mem_random_addr_increase_count 
+5551 6048c2df storet 1 ,mem_le_lap + 2 
+5552 180a7e00 random pdata 
+5553 67e142dd store 2 ,mem_le_lap 
+
+mouse_start_discovery_norandom:
+5554 6fe1c756 fetch 3 ,mem_device_le_lap_temp 
+5555 67e1c2e0 store 3 ,mem_le_lap + 3 
+5556 204037a2 call app_lpm_mult_disable 
+5557 6fe1464f fetch 2 ,mem_device_discovery_timeout 
+5558 67e14750 store 2 ,mem_device_discovery_timer 
+5559 58000000 setarg 0 
+555a 67e14741 store 2 ,mem_device_no_data_timer 
+555b 67e1477f store 2 ,mem_le_battery_level_updata_timer 
+555c 67e0c720 store 1 ,mem_device_direct_timer 
+555d 67e0c9f9 store 1 ,mem_mouse_clear_sensor_data_flag 
+555e d8e00002 arg mouse_store_eeprom_flag ,queue 
+555f 2040582e call mouse_enable_function_flag 
+5560 20405822 call mouse_bt_discovery_button_down_disable 
+5561 20205455 branch mouse_check_51cmd_adv 
+
+mouse_stop_discovery:
+5562 44cac012 bpatch patch12_5 ,mem_patch12 
+5563 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+5564 20405832 call mouse_disable_function_flag 
+
+mouse_stop_le_adv:
+5565 58000000 setarg 0 
+5566 67e0c720 store 1 ,mem_device_direct_timer 
+5567 67e14750 store 2 ,mem_device_discovery_timer 
+5568 20207866 branch check_51cmd_stop_adv 
+
+mouse_store_remote_bdaddr:
+5569 44cb4012 bpatch patch12_6 ,mem_patch12 
+556a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+556b c4010000 rtnbit0 mouse_store_eeprom_flag 
+556c d8e00002 arg mouse_store_eeprom_flag ,queue 
+556d 20405832 call mouse_disable_function_flag 
+556e 204067e4 call hid_device_check_device_addr 
+
+mouse_unplug_clean_bdaddr:
+556f 204067c1 call hid_device_before_store_reconn_info 
+5570 20205571 branch mouse_store_device_info_delay 
+
+mouse_store_device_info_delay:
+5571 6fe0c706 fetch 1 ,mem_store_information_delay_timer_init 
+5572 67e0c705 store 1 ,mem_store_information_delay_timer 
+5573 20600000 rtn 
+
+mouse_store_device_info:
+5574 44cbc012 bpatch patch12_7 ,mem_patch12 
+5575 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5576 c288d580 bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+5577 c2885588 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+5578 c289558a bbit1 mouse_enable_otp ,mouse_store_otp_device_info 
+5579 20600000 rtn 
+
+mouse_store_dpi_info_check:
+557a 44cc4013 bpatch patch13_0 ,mem_patch13 
+557b 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+557c c288d584 bbit1 mouse_enable_eeprom ,mouse_store_eerpom_dpi 
+557d c2895612 bbit1 mouse_enable_otp ,mouse_store_otp_dpi 
+557e c2885588 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+557f 20600000 rtn 
+
+mouse_store_eeprom_device_info:
+5580 d8400080 arg 128 ,temp 
+5581 da204678 arg mem_device_flag ,rega 
+5582 da400000 arg mouse_info_eeprom_offect ,regb 
+5583 20206cc9 branch iicd_write_protect_eep_data 
+
+mouse_store_eerpom_dpi:
+5584 d8400001 arg 1 ,temp 
+5585 da2046a2 arg mem_mouse_dpi ,rega 
+5586 da40005a arg mouse_dpi_eeprom_offect ,regb 
+5587 20206cc9 branch iicd_write_protect_eep_data 
+
+mouse_store_flash_device_info:
+5588 204067bb call hid_device_store_flash_device_info 
+5589 20204f1b branch mouse_sensor_spi_init 
+
+mouse_store_otp_device_info:
+558a 2040558e call mouse_write_otp_app_initflag 
+558b 20405594 call mouse_write_otp_device_flag 
+558c 204055bb call mouse_write_otp_device_info 
+558d 202055fc branch mouse_write_otp_le_addr_increase_count_info 
+
+mouse_write_otp_app_initflag:
+558e 20405699 call mouse_otp_load_app_initflag 
+558f 6fe146a0 fetch 2 ,mem_store_flag 
+5590 d840aa55 arg eeprom_init_flag ,temp 
+5591 98467c00 isub temp ,null 
+5592 20628000 rtn zero 
+5593 2020569d branch mouse_otp_store_app_initflag 
+
+mouse_write_otp_device_flag:
+5594 6a414a7f fetchr regb ,2 ,mem_otp_offset_device_flag 
+5595 1a422600 copy regb ,regc 
+
+mouse_write_otp_device_flag_loop:
+5596 204056ad call mouse_read_otp_device_flag_common 
+5597 6fe0c718 fetch 1 ,mem_device_otp_flag_temp 
+5598 203a55a0 branch mouse_device_flag_store ,blank 
+5599 67e0ca32 store 1 ,mem_device_flag_last 
+559a 1a60a601 increase 1 ,regc 
+559b 6fe14a81 fetch 2 ,mem_otp_offset_device_flag_end 
+559c 9a667c00 isub regc ,null 
+559d 24610000 nrtn positive 
+559e 1a622400 copy regc ,regb 
+559f 20205596 branch mouse_write_otp_device_flag_loop 
+
+mouse_device_flag_store:
+55a0 6fe0ca32 fetch 1 ,mem_device_flag_last 
+55a1 1fe17ef0 and pdata ,0xf0 ,pdata 
+55a2 203a55aa branch mouse_device_flag_store_check ,blank 
+55a3 6fe0c678 fetch 1 ,mem_device_flag 
+55a4 204055b8 call mouse_device_flag_otp_store_judge 
+55a5 67e0ca33 store 1 ,mem_device_flag_value 
+
+mouse_devoce_flag_store_end:
+55a6 df200001 arg 1 ,loopcnt 
+55a7 1a622400 copy regc ,regb 
+55a8 da204a33 arg mem_device_flag_value ,rega 
+55a9 20206b33 branch otp_write 
+
+mouse_device_flag_store_check:
+55aa 6848ca32 fetcht 1 ,mem_device_flag_last 
+55ab 6fe0c678 fetch 1 ,mem_device_flag 
+55ac 204055b8 call mouse_device_flag_otp_store_judge 
+55ad 98467c00 isub temp ,null 
+55ae 20628000 rtn zero 
+55af 1ff27e00 lshift4 pdata ,pdata 
+55b0 9840fe00 iadd temp ,pdata 
+55b1 67e0ca33 store 1 ,mem_device_flag_value 
+55b2 1a627e00 copy regc ,pdata 
+55b3 68494a7f fetcht 2 ,mem_otp_offset_device_flag 
+55b4 98467c00 isub temp ,null 
+55b5 2022d5a6 branch mouse_devoce_flag_store_end ,zero 
+55b6 1a60a7ff increase -1 ,regc 
+55b7 202055a6 branch mouse_devoce_flag_store_end 
+
+mouse_device_flag_otp_store_judge:
+55b8 c1800000 rtnne mode_24g_device 
+55b9 1fe0fe04 increase 4 ,pdata 
+55ba 20600000 rtn 
+
+mouse_write_otp_device_info:
+55bb 6fe0c678 fetch 1 ,mem_device_flag 
+55bc c00055c0 beq mode_24g_device ,mouse_write_otp_24g_addr 
+55bd c000d5d4 beq mode_bt_device1 ,mouse_write_otp_le_device1 
+55be c00155e8 beq mode_bt_device2 ,mouse_write_otp_le_device2 
+55bf 20600000 rtn 
+
+mouse_write_otp_24g_addr:
+55c0 6a414a83 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+55c1 1a422600 copy regb ,regc 
+
+mouse_otp_store_24g_addr_loop:
+55c2 20405726 call mouse_read_otp_24g_addr_common 
+55c3 6fe24a6b fetch 4 ,mem_mouse_24g_addr_temp 
+55c4 203a55cc branch mouse_24g_addr_store ,blank 
+55c5 67e24a67 store 4 ,mem_mouse_24g_addr_last 
+55c6 1a60a604 increase 4 ,regc 
+55c7 6fe14a85 fetch 2 ,mem_otp_offset_24g_addr_end 
+55c8 9a667c00 isub regc ,null 
+55c9 24610000 nrtn positive 
+55ca 1a622400 copy regc ,regb 
+55cb 202055c2 branch mouse_otp_store_24g_addr_loop 
+
+mouse_24g_addr_store:
+55cc 6fe24a67 fetch 4 ,mem_mouse_24g_addr_last 
+55cd 684a46a3 fetcht 4 ,mem_device_24g_addr 
+55ce 98467c00 isub temp ,null 
+55cf 20628000 rtn zero 
+55d0 df200004 arg 4 ,loopcnt 
+55d1 da2046a3 arg mem_device_24g_addr ,rega 
+55d2 1a622400 copy regc ,regb 
+55d3 20206b33 branch otp_write 
+
+mouse_write_otp_le_device1:
+55d4 6a414a87 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+55d5 1a422600 copy regb ,regc 
+
+mouse_otp_store_le_addr1_loop:
+55d6 204056d3 call mouse_read_otp_le_addr1_common 
+55d7 6fe34a3a fetch 6 ,mem_mouse_le_addr1_temp 
+55d8 203a55e0 branch mouse_le_addr1_store ,blank 
+55d9 67e34a34 store 6 ,mem_mouse_le_addr1_last 
+55da 1a60a606 increase 6 ,regc 
+55db 6fe14a89 fetch 2 ,mem_otp_offset_le_addr1_end 
+55dc 9a667c00 isub regc ,null 
+55dd 24610000 nrtn positive 
+55de 1a622400 copy regc ,regb 
+55df 202055d6 branch mouse_otp_store_le_addr1_loop 
+
+mouse_le_addr1_store:
+55e0 6fe34a34 fetch 6 ,mem_mouse_le_addr1_last 
+55e1 684b467a fetcht 6 ,mem_device1_addr 
+55e2 98467c00 isub temp ,null 
+55e3 20628000 rtn zero 
+55e4 df200006 arg 6 ,loopcnt 
+55e5 da20467a arg mem_device1_addr ,rega 
+55e6 1a622400 copy regc ,regb 
+55e7 20206b33 branch otp_write 
+
+mouse_write_otp_le_device2:
+55e8 6a414a73 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+55e9 1a422600 copy regb ,regc 
+
+mouse_otp_store_le_addr2_loop:
+55ea 204056fc call mouse_read_otp_le_addr2_common 
+55eb 6fe34a52 fetch 6 ,mem_mouse_le_addr2_temp 
+55ec 203a55f4 branch mouse_le_addr2_store ,blank 
+55ed 67e34a4c store 6 ,mem_mouse_le_addr2_last 
+55ee 1a60a606 increase 6 ,regc 
+55ef 6fe14a75 fetch 2 ,mem_otp_offset_le_addr2_end 
+55f0 9a667c00 isub regc ,null 
+55f1 24610000 nrtn positive 
+55f2 1a622400 copy regc ,regb 
+55f3 202055ea branch mouse_otp_store_le_addr2_loop 
+
+mouse_le_addr2_store:
+55f4 6fe34a4c fetch 6 ,mem_mouse_le_addr2_last 
+55f5 684b4687 fetcht 6 ,mem_device2_addr 
+55f6 98467c00 isub temp ,null 
+55f7 20628000 rtn zero 
+55f8 df200006 arg 6 ,loopcnt 
+55f9 da204687 arg mem_device2_addr ,rega 
+55fa 1a622400 copy regc ,regb 
+55fb 20206b33 branch otp_write 
+
+mouse_write_otp_le_addr_increase_count_info:
+55fc 6fe0c678 fetch 1 ,mem_device_flag 
+55fd c1000000 rtneq mode_24g_device 
+55fe 6a414a8f fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+55ff 1a422600 copy regb ,regc 
+
+mouse_otp_store_le_addr_increase_count_loop:
+5600 20405738 call mouse_read_otp_le_addr_increase_count_common 
+5601 6fe0ca71 fetch 1 ,mem_random_addr_increase_count_temp 
+5602 203a560a branch mouse_le_addr_increase_count_store ,blank 
+5603 67e0ca6f store 1 ,mem_random_addr_increase_count_last 
+5604 1a60a601 increase 1 ,regc 
+5605 6fe14a91 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+5606 9a667c00 isub regc ,null 
+5607 24610000 nrtn positive 
+5608 1a622400 copy regc ,regb 
+5609 20205600 branch mouse_otp_store_le_addr_increase_count_loop 
+
+mouse_le_addr_increase_count_store:
+560a 6fe0ca6f fetch 1 ,mem_random_addr_increase_count_last 
+560b 6848c6a7 fetcht 1 ,mem_random_addr_increase_count 
+560c 98467c00 isub temp ,null 
+560d 20628000 rtn zero 
+560e df200001 arg 1 ,loopcnt 
+560f da2046a7 arg mem_random_addr_increase_count ,rega 
+5610 1a622400 copy regc ,regb 
+5611 20206b33 branch otp_write 
+
+mouse_store_otp_dpi:
+5612 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5613 c4070000 rtnbit0 mouse_enable_load_and_store_dpi 
+5614 6a414a7b fetchr regb ,2 ,mem_otp_offset_dpi 
+5615 1a422600 copy regb ,regc 
+
+mouse_otp_store_dpi_loop:
+5616 2040574c call mouse_read_otp_dpi_common 
+5617 6fe0ca65 fetch 1 ,mem_mouse_dpi_temp 
+5618 203a5620 branch mouse_otp_dpi_store ,blank 
+5619 67e0ca64 store 1 ,mem_mouse_dpi_last 
+561a 1a60a601 increase 1 ,regc 
+561b 6fe14a7d fetch 2 ,mem_otp_offset_dpi_end 
+561c 9a667c00 isub regc ,null 
+561d 24610000 nrtn positive 
+561e 1a622400 copy regc ,regb 
+561f 20205616 branch mouse_otp_store_dpi_loop 
+
+mouse_otp_dpi_store:
+5620 6fe0ca64 fetch 1 ,mem_mouse_dpi_last 
+5621 1fe17ef0 and pdata ,0xf0 ,pdata 
+5622 203a562a branch mouse_dpi_store_last_check ,blank 
+5623 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+5624 20405638 call mouse_dpi_otp_store_judge 
+5625 67e0ca66 store 1 ,mem_mouse_otp_dpi_value 
+
+mouse_dpi_store_end:
+5626 df200001 arg 1 ,loopcnt 
+5627 1a622400 copy regc ,regb 
+5628 da204a66 arg mem_mouse_otp_dpi_value ,rega 
+5629 20206b33 branch otp_write 
+
+mouse_dpi_store_last_check:
+562a 6848ca64 fetcht 1 ,mem_mouse_dpi_last 
+562b 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+562c 20405638 call mouse_dpi_otp_store_judge 
+562d 98467c00 isub temp ,null 
+562e 20628000 rtn zero 
+562f 1ff27e00 lshift4 pdata ,pdata 
+5630 9840fe00 iadd temp ,pdata 
+5631 67e0ca66 store 1 ,mem_mouse_otp_dpi_value 
+5632 1a627e00 copy regc ,pdata 
+5633 68494a7b fetcht 2 ,mem_otp_offset_dpi 
+5634 98467c00 isub temp ,null 
+5635 2022d626 branch mouse_dpi_store_end ,zero 
+5636 1a60a7ff increase -1 ,regc 
+5637 20205626 branch mouse_dpi_store_end 
+
+mouse_dpi_otp_store_judge:
+5638 c1800000 rtnne mouse_dpi_level1 
+5639 1fe0fe07 increase 7 ,pdata 
+563a 20600000 rtn 
+
+mouse_device_flag_check:
+563b 6fe0c678 fetch 1 ,mem_device_flag 
+563c 1fe67c04 sub pdata ,4 ,null 
+563d 20610000 rtn positive 
+563e 20407dcc call set_pdata_0 
+563f 202056bb branch mouse_store_device_flag 
+
+mouse_load_eeprom_info_check:
+5640 20406cb2 call iicd_read_init_pin 
+5641 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5642 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
+5643 2440ecba ncall clear_eeprom_size_2k ,true 
+5644 2040ecb7 call set_eeprom_size_2k ,true 
+5645 20405648 call mouse_eeprom_load_recon_info 
+5646 2040563b call mouse_device_flag_check 
+5647 20205689 branch mouse_app_initflag_load_check 
+
+mouse_eeprom_load_recon_info:
+5648 d8400080 arg 128 ,temp 
+5649 da204678 arg mem_device_flag ,rega 
+564a da400000 arg mouse_info_eeprom_offect ,regb 
+564b 20206cd7 branch iicd_read_eep_data 
+
+mouse_load_eeprom_dpi:
+564c d8400001 arg 1 ,temp 
+564d da2046a2 arg mem_mouse_dpi ,rega 
+564e da40005a arg mouse_dpi_eeprom_offect ,regb 
+564f 20206cd7 branch iicd_read_eep_data 
+
+mouse_load_flash_info_check:
+5650 204067b6 call hid_device_load_flash_info_check 
+5651 2040563b call mouse_device_flag_check 
+5652 20405689 call mouse_app_initflag_load_check 
+5653 20204f1b branch mouse_sensor_spi_init 
+
+mouse_information_flash_parameters:
+5654 580046f8 setarg mem_device_information_end 
+5655 d8404678 arg mem_device_information_start ,temp 
+5656 98460400 isub temp ,temp 
+5657 6fe1c6fe fetch 3 ,mem_flash_base 
+5658 da204678 arg mem_device_information_start ,rega 
+5659 20600000 rtn 
+
+mouse_spid_flash_release_form_powerdown:
+565a 700656ab jam flash_command_release_from_powerdown ,mem_temp 
+
+mouse_spid_write_flash_cmd:
+565b 204070bf call delay_nop100 
+565c 20406c1c call spid_unlock_flash 
+565d da204701 arg mem_write_flash_head_temp ,rega 
+565e 68488656 fetcht 1 ,mem_temp 
+565f 20405663 call mouse_spid_write_flash_cmd_common 
+5660 202070bf branch delay_nop100 
+
+mouse_spid_flash_powerdown:
+5661 700656b9 jam flash_command_powerdown ,mem_temp 
+5662 2020565b branch mouse_spid_write_flash_cmd 
+
+mouse_spid_write_flash_cmd_common:
+5663 e0408011 istoret 1 ,rega 
+5664 1ff10400 rshift16 pdata ,temp 
+5665 e0408005 istoret 1 ,contw 
+5666 1fec8400 rshift8 pdata ,temp 
+5667 e0408005 istoret 1 ,contw 
+5668 e7e08005 istore 1 ,contw 
+5669 1a227e00 deposit rega 
+566a 67f10084 store 2 ,core_spid_txaddr 
+566b 58000000 setarg 0 
+566c 67f10088 store 2 ,core_spid_rxlen 
+566d 70800602 jam spid_start ,core_misc_ctrl 
+566e 20206bd6 branch wait_spid_done 
+
+mouse_flash_erase_sector:
+566f 6fe1c6fe fetch 3 ,mem_flash_base 
+5670 67e1c430 store 3 ,mem_spi_write_addr 
+5671 20206bf0 branch spid_flash_erase_sector + 2 
+
+mouse_spid_write_flash:
+5672 1fe22600 copy pdata ,regc 
+5673 1a227e00 copy rega ,pdata 
+5674 1fe0fffc increase -4 ,pdata 
+5675 1fe22400 copy pdata ,regb 
+5676 efe20012 ifetch 4 ,regb 
+5677 67e24701 store 4 ,mem_write_flash_head_temp 
+5678 1a627e00 copy regc ,pdata 
+5679 20406c32 call spid_write_flash 
+567a 6fe24701 fetch 4 ,mem_write_flash_head_temp 
+567b e7e20012 istore 4 ,regb 
+567c 20600000 rtn 
+
+mouse_flash_power_down:
+567d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+567e c4080000 rtnbit0 mouse_enable_flash 
+567f 20405661 call mouse_spid_flash_powerdown 
+5680 2040696c call twspi_enable 
+5681 6848c438 fetcht 1 ,mem_spi_cs_gpio 
+5682 20406eed call gpio_out_inactive 
+5683 6848c43d fetcht 1 ,mem_spi_hold_gpio 
+5684 20204f06 branch device_gpio_config_input_pd 
+
+mouse_load_otp_info_check:
+5685 2040573e call mouse_read_otp_dpi 
+5686 204056a1 call mouse_read_otp_device_flag 
+5687 2040563b call mouse_device_flag_check 
+5688 204056bf call mouse_read_otp_device_info 
+
+mouse_app_initflag_load_check:
+5689 44ccc013 bpatch patch13_1 ,mem_patch13 
+568a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+568b 2feffe12 isolate1 mouse_enable_otp ,pdata 
+568c 2040d699 call mouse_otp_load_app_initflag ,true 
+568d 6fe146a0 fetch 2 ,mem_store_flag 
+568e d840aa55 arg eeprom_init_flag ,temp 
+568f 98467c00 isub temp ,null 
+5690 2022e7cf branch hid_device_load_device_info ,zero 
+
+mouse_app_initflag_load:
+5691 604946a0 storet 2 ,mem_store_flag 
+5692 204067f8 call hid_device_ble_init_address 
+5693 6fe0c717 fetch 1 ,mem_device_flag_temp 
+5694 67e0c678 store 1 ,mem_device_flag 
+5695 67e0c6a7 store 1 ,mem_random_addr_increase_count 
+
+mouse_load_default_dpi:
+5696 6fe0c899 fetch 1 ,mem_config_sensor_dpi 
+
+mouse_temp_store_dpi:
+5697 67e0c6a2 store 1 ,mem_mouse_dpi 
+5698 20600000 rtn 
+
+mouse_otp_load_app_initflag:
+5699 df200002 arg 2 ,loopcnt 
+569a 6a414a93 fetchr regb ,2 ,mem_otp_offset_app_initflag 
+569b da2046a0 arg mem_store_flag ,rega 
+569c 20206b62 branch otp_read_data 
+
+mouse_otp_store_app_initflag:
+569d df200002 arg 2 ,loopcnt 
+569e da2046a0 arg mem_store_flag ,rega 
+569f 6a414a93 fetchr regb ,2 ,mem_otp_offset_app_initflag 
+56a0 20206b33 branch otp_write 
+
+mouse_read_otp_device_flag:
+56a1 6a414a7f fetchr regb ,2 ,mem_otp_offset_device_flag 
+56a2 1a422600 copy regb ,regc 
+
+mouse_read_otp_device_flag_loop:
+56a3 204056ad call mouse_read_otp_device_flag_common 
+56a4 6fe0c718 fetch 1 ,mem_device_otp_flag_temp 
+56a5 203a56b0 branch mouse_device_flag_load ,blank 
+56a6 67e0ca32 store 1 ,mem_device_flag_last 
+56a7 1a60a601 increase 1 ,regc 
+56a8 6fe14a81 fetch 2 ,mem_otp_offset_device_flag_end 
+56a9 9a667c00 isub regc ,null 
+56aa 242156b0 nbranch mouse_device_flag_load ,positive 
+56ab 1a622400 copy regc ,regb 
+56ac 202056a3 branch mouse_read_otp_device_flag_loop 
+
+mouse_read_otp_device_flag_common:
+56ad df200001 arg 1 ,loopcnt 
+56ae da204718 arg mem_device_otp_flag_temp ,rega 
+56af 20206b62 branch otp_read_data 
+
+mouse_device_flag_load:
+56b0 6fe0ca32 fetch 1 ,mem_device_flag_last 
+56b1 1fe20400 copy pdata ,temp 
+56b2 1fe17ef0 and pdata ,0xf0 ,pdata 
+56b3 203a56b6 branch mouse_device_flag_load_last ,blank 
+56b4 1ff1fe00 rshift4 pdata ,pdata 
+56b5 202056b7 branch mouse_device_flag_load_end 
+
+mouse_device_flag_load_last:
+56b6 18427e00 copy temp ,pdata 
+
+mouse_device_flag_load_end:
+56b7 1fe67c00 sub pdata ,0 ,null 
+56b8 2022d6bd branch mouse_device_flag_temp_load ,zero 
+56b9 1fe67c04 sub pdata ,4 ,null 
+56ba 2042fdcc call set_pdata_0 ,zero 
+
+mouse_store_device_flag:
+56bb 67e0c678 store 1 ,mem_device_flag 
+56bc 20600000 rtn 
+
+mouse_device_flag_temp_load:
+56bd 6fe0c717 fetch 1 ,mem_device_flag_temp 
+56be 202056bb branch mouse_store_device_flag 
+
+mouse_read_otp_device_info:
+56bf 2040571a call mouse_read_otp_24g_addr 
+56c0 204056c3 call mouse_read_otp_le_device1 
+56c1 204056c5 call mouse_read_otp_le_device2 
+56c2 2020572c branch mouse_read_otp_le_addr_increase_count_info 
+
+mouse_read_otp_le_device1:
+56c3 204056c7 call mouse_read_otp_le_device1_addr 
+56c4 202056d9 branch mouse_read_otp_le_device1_locall_addr 
+
+mouse_read_otp_le_device2:
+56c5 204056f0 call mouse_read_otp_le_device2_addr 
+56c6 20205702 branch mouse_read_otp_le_device2_locall_addr 
+
+mouse_read_otp_le_device1_addr:
+56c7 6a414a87 fetchr regb ,2 ,mem_otp_offset_le_addr1 
+56c8 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device1_addr_loop:
+56c9 204056d3 call mouse_read_otp_le_addr1_common 
+56ca 6fe34a3a fetch 6 ,mem_mouse_le_addr1_temp 
+56cb 203a56d6 branch mouse_le_addr1_load ,blank 
+56cc 67e34a34 store 6 ,mem_mouse_le_addr1_last 
+56cd 1a60a606 increase 6 ,regc 
+56ce 6fe14a89 fetch 2 ,mem_otp_offset_le_addr1_end 
+56cf 9a667c00 isub regc ,null 
+56d0 242156d6 nbranch mouse_le_addr1_load ,positive 
+56d1 1a622400 copy regc ,regb 
+56d2 202056c9 branch mouse_read_otp_le_device1_addr_loop 
+
+mouse_read_otp_le_addr1_common:
+56d3 df200006 arg 6 ,loopcnt 
+56d4 da204a3a arg mem_mouse_le_addr1_temp ,rega 
+56d5 20206b62 branch otp_read_data 
+
+mouse_le_addr1_load:
+56d6 6fe34a34 fetch 6 ,mem_mouse_le_addr1_last 
+56d7 67e3467a store 6 ,mem_device1_addr 
+56d8 20600000 rtn 
+
+mouse_read_otp_le_device1_locall_addr:
+56d9 6a414a8b fetchr regb ,2 ,mem_otp_offset_le_locall_addr1 
+56da 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device1_locall_addr_loop:
+56db 204056e5 call mouse_read_otp_le_locall_addr1_common 
+56dc 6fe34a46 fetch 6 ,mem_mouse_le_locall_addr1_temp 
+56dd 203a56e8 branch mouse_le_locall_addr1_load ,blank 
+56de 67e34a40 store 6 ,mem_mouse_le_locall_addr1_last 
+56df 1a60a606 increase 6 ,regc 
+56e0 6fe14a8d fetch 2 ,mem_otp_offset_le_locall_addr1_end 
+56e1 9a667c00 isub regc ,null 
+56e2 242156e8 nbranch mouse_le_locall_addr1_load ,positive 
+56e3 1a622400 copy regc ,regb 
+56e4 202056db branch mouse_read_otp_le_device1_locall_addr_loop 
+
+mouse_read_otp_le_locall_addr1_common:
+56e5 df200006 arg 6 ,loopcnt 
+56e6 da204a46 arg mem_mouse_le_locall_addr1_temp ,rega 
+56e7 20206b62 branch otp_read_data 
+
+mouse_le_locall_addr1_load:
+56e8 6fe34a40 fetch 6 ,mem_mouse_le_locall_addr1_last 
+56e9 684b46f8 fetcht 6 ,mem_device_compare_addr 
+56ea 98467c00 isub temp ,null 
+56eb 2042d6ee call mouse_device_le_locall_addr1_init ,zero 
+56ec 67e34680 store 6 ,mem_device1_locall_addr 
+56ed 20600000 rtn 
+
+mouse_device_le_locall_addr1_init:
+56ee 6fe342dd fetch 6 ,mem_le_lap 
+56ef 20600000 rtn 
+
+mouse_read_otp_le_device2_addr:
+56f0 6a414a73 fetchr regb ,2 ,mem_otp_offset_le_addr2 
+56f1 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device2_addr_loop:
+56f2 204056fc call mouse_read_otp_le_addr2_common 
+56f3 6fe34a52 fetch 6 ,mem_mouse_le_addr2_temp 
+56f4 203a56ff branch mouse_le_addr2_load ,blank 
+56f5 67e34a4c store 6 ,mem_mouse_le_addr2_last 
+56f6 1a60a606 increase 6 ,regc 
+56f7 6fe14a75 fetch 2 ,mem_otp_offset_le_addr2_end 
+56f8 9a667c00 isub regc ,null 
+56f9 242156ff nbranch mouse_le_addr2_load ,positive 
+56fa 1a622400 copy regc ,regb 
+56fb 202056f2 branch mouse_read_otp_le_device2_addr_loop 
+
+mouse_read_otp_le_addr2_common:
+56fc df200006 arg 6 ,loopcnt 
+56fd da204a52 arg mem_mouse_le_addr2_temp ,rega 
+56fe 20206b62 branch otp_read_data 
+
+mouse_le_addr2_load:
+56ff 6fe34a4c fetch 6 ,mem_mouse_le_addr2_last 
+5700 67e34687 store 6 ,mem_device2_addr 
+5701 20600000 rtn 
+
+mouse_read_otp_le_device2_locall_addr:
+5702 6a414a77 fetchr regb ,2 ,mem_otp_offset_le_locall_addr2 
+5703 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_device2_locall_addr_loop:
+5704 2040570e call mouse_read_otp_le_locall_addr2_common 
+5705 6fe34a5e fetch 6 ,mem_mouse_le_locall_addr2_temp 
+5706 203a5711 branch mouse_le_locall_addr2_load ,blank 
+5707 67e34a58 store 6 ,mem_mouse_le_locall_addr2_last 
+5708 1a60a606 increase 6 ,regc 
+5709 6fe14a79 fetch 2 ,mem_otp_offset_le_locall_addr2_end 
+570a 9a667c00 isub regc ,null 
+570b 24215711 nbranch mouse_le_locall_addr2_load ,positive 
+570c 1a622400 copy regc ,regb 
+570d 20205704 branch mouse_read_otp_le_device2_locall_addr_loop 
+
+mouse_read_otp_le_locall_addr2_common:
+570e df200006 arg 6 ,loopcnt 
+570f da204a5e arg mem_mouse_le_locall_addr2_temp ,rega 
+5710 20206b62 branch otp_read_data 
+
+mouse_le_locall_addr2_load:
+5711 6fe34a58 fetch 6 ,mem_mouse_le_locall_addr2_last 
+5712 684b46f8 fetcht 6 ,mem_device_compare_addr 
+5713 98467c00 isub temp ,null 
+5714 2042d717 call mouse_device_le_locall_addr2_init ,zero 
+5715 67e3468d store 6 ,mem_device2_locall_addr 
+5716 20600000 rtn 
+
+mouse_device_le_locall_addr2_init:
+5717 6fe342dd fetch 6 ,mem_le_lap 
+5718 1fe0ff00 add pdata ,0x0100 ,pdata 
+5719 20600000 rtn 
+
+mouse_read_otp_24g_addr:
+571a 6a414a83 fetchr regb ,2 ,mem_otp_offset_24g_addr 
+571b 1a422600 copy regb ,regc 
+
+mouse_read_otp_24g_addr_loop:
+571c 20405726 call mouse_read_otp_24g_addr_common 
+571d 6fe24a6b fetch 4 ,mem_mouse_24g_addr_temp 
+571e 203a5729 branch mouse_24g_addr_load ,blank 
+571f 67e24a67 store 4 ,mem_mouse_24g_addr_last 
+5720 1a60a604 increase 4 ,regc 
+5721 6fe14a85 fetch 2 ,mem_otp_offset_24g_addr_end 
+5722 9a667c00 isub regc ,null 
+5723 24215729 nbranch mouse_24g_addr_load ,positive 
+5724 1a622400 copy regc ,regb 
+5725 2020571c branch mouse_read_otp_24g_addr_loop 
+
+mouse_read_otp_24g_addr_common:
+5726 df200004 arg 4 ,loopcnt 
+5727 da204a6b arg mem_mouse_24g_addr_temp ,rega 
+5728 20206b62 branch otp_read_data 
+
+mouse_24g_addr_load:
+5729 6fe24a67 fetch 4 ,mem_mouse_24g_addr_last 
+572a 67e246a3 store 4 ,mem_device_24g_addr 
+572b 20600000 rtn 
+
+mouse_read_otp_le_addr_increase_count_info:
+572c 6a414a8f fetchr regb ,2 ,mem_otp_offset_le_addr_increase_count 
+572d 1a422600 copy regb ,regc 
+
+mouse_read_otp_le_addr_increase_count_loop:
+572e 20405738 call mouse_read_otp_le_addr_increase_count_common 
+572f 6fe0ca71 fetch 1 ,mem_random_addr_increase_count_temp 
+5730 203a573b branch mouse_le_addr_increase_count_load ,blank 
+5731 67e0ca6f store 1 ,mem_random_addr_increase_count_last 
+5732 1a60a601 increase 1 ,regc 
+5733 6fe14a91 fetch 2 ,mem_otp_offset_le_addr_increase_count_end 
+5734 9a667c00 isub regc ,null 
+5735 2421573b nbranch mouse_le_addr_increase_count_load ,positive 
+5736 1a622400 copy regc ,regb 
+5737 2020572e branch mouse_read_otp_le_addr_increase_count_loop 
+
+mouse_read_otp_le_addr_increase_count_common:
+5738 df200001 arg 1 ,loopcnt 
+5739 da204a71 arg mem_random_addr_increase_count_temp ,rega 
+573a 20206b62 branch otp_read_data 
+
+mouse_le_addr_increase_count_load:
+573b 6fe0ca6f fetch 1 ,mem_random_addr_increase_count_last 
+573c 67e0c6a7 store 1 ,mem_random_addr_increase_count 
+573d 20600000 rtn 
+
+mouse_read_otp_dpi:
+573e 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+573f c3075696 bbit0 mouse_enable_load_and_store_dpi ,mouse_load_default_dpi 
+5740 6a414a7b fetchr regb ,2 ,mem_otp_offset_dpi 
+5741 1a422600 copy regb ,regc 
+
+mouse_read_otp_dpi_loop:
+5742 2040574c call mouse_read_otp_dpi_common 
+5743 6fe0ca65 fetch 1 ,mem_mouse_dpi_temp 
+5744 203a574f branch mouse_dpi_load ,blank 
+5745 67e0ca64 store 1 ,mem_mouse_dpi_last 
+5746 1a60a601 increase 1 ,regc 
+5747 6fe14a7d fetch 2 ,mem_otp_offset_dpi_end 
+5748 9a667c00 isub regc ,null 
+5749 2421574f nbranch mouse_dpi_load ,positive 
+574a 1a622400 copy regc ,regb 
+574b 20205742 branch mouse_read_otp_dpi_loop 
+
+mouse_read_otp_dpi_common:
+574c df200001 arg 1 ,loopcnt 
+574d da204a65 arg mem_mouse_dpi_temp ,rega 
+574e 20206b62 branch otp_read_data 
+
+mouse_dpi_load:
+574f 6fe0ca64 fetch 1 ,mem_mouse_dpi_last 
+5750 1fe20400 copy pdata ,temp 
+5751 1fe17ef0 and pdata ,0xf0 ,pdata 
+5752 203a5755 branch mouse_dpi_load_last ,blank 
+5753 1ff1fe00 rshift4 pdata ,pdata 
+5754 20205756 branch mouse_dpi_load_end 
+
+mouse_dpi_load_last:
+5755 18427e00 copy temp ,pdata 
+
+mouse_dpi_load_end:
+5756 1fe67c07 sub pdata ,7 ,null 
+5757 2042fdcc call set_pdata_0 ,zero 
+5758 20205697 branch mouse_temp_store_dpi 
+
+mouse_idle:
+5759 44cd4013 bpatch patch13_2 ,mem_patch13 
+575a 20405add call mouse_low_voltage_led_no_enter_lpm 
+575b 2040789a call ui_check_paring_button 
+575c 20404fdb call mouse_dpi_check 
+575d 20405132 call mouse_dpi_another_gpio_check 
+575e 20405767 call mouse_select_device_check 
+575f 204057b8 call mouse_check_select_device_by_switch 
+5760 20405815 call mouse_bt_button_check 
+5761 20404f42 call mouse_wheel_check 
+5762 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5763 c4060000 rtnbit0 mouse_enable_usb 
+5764 44cdc013 bpatch patch13_3 ,mem_patch13 
+5765 20405b87 call mouse_usb_isr 
+5766 20205bb0 branch mouse_usb_mode 
+
+mouse_select_device_check:
+5767 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5768 c294d76b bbit1 mouse_enable_select_device_by_pb_button ,mouse_select_device_by_pb_button 
+5769 c29bd76b bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_select_device_by_pb_button 
+576a 20600000 rtn 
+
+mouse_select_device_by_pb_button:
+576b 2040576d call mouse_select_device_by_pb_button_check 
+576c 2020577e branch mouse_select_device_by_pb_button_exit 
+
+mouse_select_device_by_pb_button_check:
+576d 44ce4013 bpatch patch13_4 ,mem_patch13 
+576e da200000 arg 0 ,rega 
+576f 704a0f06 jam mouse_pb_key ,mem_mouse_key_temp 
+5770 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
+5771 20405781 call mouse_pb_button_check 
+5772 67e0ca0d store 1 ,mem_mouse_pbkey_press_status 
+5773 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
+5774 c07fd77c beq gpio_disable ,mouse_3io6key_pb_button_check_end 
+5775 20205203 branch mouse_matrix_public_gpio_reset 
+
+mouse_retransmit_select_device_by_pb_button:
+5776 6fe0c89d fetch 1 ,mem_config_select_device_button_gpio 
+5777 c17f8000 rtneq gpio_disable 
+5778 2040576d call mouse_select_device_by_pb_button_check 
+5779 1a227e00 copy rega ,pdata 
+577a c28357a4 bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
+577b 20205797 branch mouse_select_device_button_up 
+
+mouse_3io6key_pb_button_check_end:
+577c 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
+577d 20404f0a call device_gpio_config_input_pu 
+
+mouse_select_device_by_pb_button_exit:
+577e 1a227e00 copy rega ,pdata 
+577f c28357a2 bbit1 mouse_pb_key ,mouse_select_device_button_down 
+5780 20205797 branch mouse_select_device_button_up 
+
+mouse_pb_button_check:
+5781 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5782 c296d78d bbit1 mouse_enable_pb_button_connect_gnd ,mouse_pb_button_connect_gnd 
+5783 6fe0ca0d fetch 1 ,mem_mouse_pbkey_press_status 
+5784 1fe22600 copy pdata ,regc 
+5785 6fe0c89c fetch 1 ,mem_matrix_public_gpio 
+5786 c07fd242 beq gpio_disable ,mouse_3io6key_check 
+5787 6fe0ca13 fetch 1 ,mem_mouse_ghost_flag 
+5788 243a578a nbranch mouse_select_device_by_pb_button_end ,blank 
+5789 2020578f branch mouse_pb_button_connect_matrix 
+
+mouse_select_device_by_pb_button_end:
+578a 70473400 jam pb_button_state_up ,mem_select_device_button_statue 
+578b 704a0d00 jam 0 ,mem_mouse_pbkey_press_status 
+578c 20600000 rtn 
+
+mouse_pb_button_connect_gnd:
+578d 6fe0ca0d fetch 1 ,mem_mouse_pbkey_press_status 
+578e 20205236 branch mouse_check_key_connect_gnd 
+
+mouse_pb_button_connect_matrix:
+578f 20406ee0 call gpio_get_bit 
+5790 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+5791 2020d78d branch mouse_pb_button_connect_gnd ,true 
+5792 6848c89c fetcht 1 ,mem_matrix_public_gpio 
+5793 20406ef1 call gpio_out_active 
+5794 6848c89d fetcht 1 ,mem_config_select_device_button_gpio 
+5795 6fe0ca0d fetch 1 ,mem_mouse_pbkey_press_status 
+5796 20205236 branch mouse_check_key_connect_gnd 
+
+mouse_select_device_button_up:
+5797 6fe0c734 fetch 1 ,mem_select_device_button_statue 
+5798 c1000000 rtneq pb_button_state_up 
+5799 70473400 jam pb_button_state_up ,mem_select_device_button_statue 
+579a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+579b c39a0000 rtnbit1 mouse_enable_pb_button_short_press_enter_discovery 
+579c 6fe0c731 fetch 1 ,mem_bt_discovery_count 
+579d 1fe67c14 sub pdata ,20 ,null 
+579e 244157f6 ncall mouse_ready_reconnection_by_button ,positive 
+579f 6fe0c502 fetch 1 ,mem_ui_button_timeout 
+57a0 67e0c731 store 1 ,mem_bt_discovery_count 
+57a1 20600000 rtn 
+
+mouse_select_device_button_down:
+57a2 204057ae call mouse_select_device_ghost_check 
+57a3 20740000 rtn user 
+57a4 6fe0c734 fetch 1 ,mem_select_device_button_statue 
+57a5 c1008000 rtneq pb_button_state_down 
+57a6 70473401 jam pb_button_state_down ,mem_select_device_button_statue 
+57a7 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+57a8 c29a54b2 bbit1 mouse_enable_pb_button_short_press_enter_discovery ,mouse_long_button_bt_discovery 
+57a9 6fe0c720 fetch 1 ,mem_device_direct_timer 
+57aa 207a0000 rtn blank 
+57ab 6fe0c653 fetch 1 ,mem_device_direct_timeout 
+57ac 67e0c720 store 1 ,mem_device_direct_timer 
+57ad 20600000 rtn 
+
+mouse_select_device_ghost_check:
+57ae 78547c00 disable user 
+57af 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+57b0 c3968000 rtnbit1 mouse_enable_pb_button_connect_gnd 
+
+mouse_ghost_key_value_check:
+57b1 6fe0ca07 fetch 1 ,mem_mouse_lkey_press_status 
+57b2 207a0000 rtn blank 
+57b3 6fe0ca08 fetch 1 ,mem_mouse_rkey_press_status 
+57b4 207a0000 rtn blank 
+57b5 6fe0ca09 fetch 1 ,mem_mouse_mkey_press_status 
+57b6 207a0000 rtn blank 
+57b7 20207dbc branch enable_user 
+
+mouse_check_select_device_by_switch:
+57b8 44cec013 bpatch patch13_5 ,mem_patch13 
+57b9 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+57ba c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+57bb c30b57bf bbit0 mouse_enable_switch_gpio_connect_vin ,mouse_switch_gpio_connect_gnd_check 
+
+mouse_switch_gpio_connect_vin_check:
+57bc 204057c2 call mouse_switch_gpio_connect_vin 
+57bd 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57be 20205258 branch mouse_gpio_config_pu_check 
+
+mouse_switch_gpio_connect_gnd_check:
+57bf 204057c8 call mouse_switch_gpio_connect_gnd 
+57c0 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57c1 2020525c branch mouse_gpio_config_pd_check 
+
+mouse_switch_gpio_connect_vin:
+57c2 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57c3 2040525c call mouse_gpio_config_pd_check 
+57c4 6848c665 fetcht 1 ,mem_device_switch_gpio 
+57c5 20406ee0 call gpio_get_bit 
+57c6 2020d7ce branch mouse_select_btdevice ,true 
+57c7 202057d2 branch mouse_select_24gdevice 
+
+mouse_switch_gpio_connect_gnd:
+57c8 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57c9 20405258 call mouse_gpio_config_pu_check 
+57ca 6848c665 fetcht 1 ,mem_device_switch_gpio 
+57cb 20406ee0 call gpio_get_bit 
+57cc 2020d7d2 branch mouse_select_24gdevice ,true 
+57cd 202057ce branch mouse_select_btdevice 
+
+mouse_select_btdevice:
+57ce 6fe0c678 fetch 1 ,mem_device_flag 
+57cf c1008000 rtneq mode_bt_device1 
+57d0 70467801 jam mode_bt_device1 ,mem_device_flag 
+57d1 202057d5 branch mouse_select_device_set 
+
+mouse_select_24gdevice:
+57d2 6fe0c678 fetch 1 ,mem_device_flag 
+57d3 c1000000 rtneq mode_24g_device 
+57d4 70467800 jam mode_24g_device ,mem_device_flag 
+
+mouse_select_device_set:
+57d5 204057f0 call mouse_select_device_stop_set 
+57d6 20205801 branch mouse_soft_reset 
+
+mouse_check_select_device_by_switch_once:
+57d7 44cf4013 bpatch patch13_6 ,mem_patch13 
+57d8 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+57d9 c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+57da c30b57de bbit0 mouse_enable_switch_gpio_connect_vin ,mouse_switch_gpio_connect_gnd_check_once 
+
+mouse_switch_gpio_connect_vin_check_once:
+57db 204057e1 call mouse_switch_gpio_connect_vin_once 
+57dc 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57dd 20205258 branch mouse_gpio_config_pu_check 
+
+mouse_switch_gpio_connect_gnd_check_once:
+57de 204057e7 call mouse_switch_gpio_connect_gnd_once 
+57df 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57e0 2020525c branch mouse_gpio_config_pd_check 
+
+mouse_switch_gpio_connect_vin_once:
+57e1 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57e2 2040525c call mouse_gpio_config_pd_check 
+57e3 6848c665 fetcht 1 ,mem_device_switch_gpio 
+57e4 20406ee0 call gpio_get_bit 
+57e5 2020d7f2 branch mouse_check_select_btdevice ,true 
+57e6 202057ed branch mouse_check_select_24g_device 
+
+mouse_switch_gpio_connect_gnd_once:
+57e7 6fe0c665 fetch 1 ,mem_device_switch_gpio 
+57e8 20405258 call mouse_gpio_config_pu_check 
+57e9 6848c665 fetcht 1 ,mem_device_switch_gpio 
+57ea 20406ee0 call gpio_get_bit 
+57eb 2020d7ed branch mouse_check_select_24g_device ,true 
+57ec 202057f2 branch mouse_check_select_btdevice 
+
+mouse_check_select_24g_device:
+57ed 6fe0c678 fetch 1 ,mem_device_flag 
+57ee c1000000 rtneq mode_24g_device 
+57ef 70467800 jam mode_24g_device ,mem_device_flag 
+
+mouse_select_device_stop_set:
+57f0 20405936 call mouse_24g_stop 
+57f1 202053c3 branch mouse_stop_bluetooth_mode 
+
+mouse_check_select_btdevice:
+57f2 6fe0c678 fetch 1 ,mem_device_flag 
+57f3 c1008000 rtneq mode_bt_device1 
+57f4 70467801 jam mode_bt_device1 ,mem_device_flag 
+57f5 202057f0 branch mouse_select_device_stop_set 
+
+mouse_ready_reconnection_by_button:
+57f6 44cfc013 bpatch patch13_7 ,mem_patch13 
+57f7 6fe0c716 fetch 1 ,mem_device_number 
+57f8 c1008000 rtneq 1 
+57f9 20405803 call mouse_select_device_number 
+57fa 6048c678 storet 1 ,mem_device_flag 
+
+mouse_store_device_number_before_reset:
+57fb 20405818 call mouse_select_device_enable 
+57fc 204053c3 call mouse_stop_bluetooth_mode 
+57fd 20403745 call app_evt_button_long_pressed 
+57fe 2040581a call mouse_select_device_disable 
+57ff 70475201 jam 1 ,mem_device_need_soft_reset 
+5800 20205571 branch mouse_store_device_info_delay 
+
+mouse_soft_reset:
+5801 20405818 call mouse_select_device_enable 
+5802 20206c99 branch soft_reset_chip 
+
+mouse_select_device_number:
+5803 6848c678 fetcht 1 ,mem_device_flag 
+5804 18408401 increase 1 ,temp 
+5805 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5806 c287d80b bbit1 mouse_enable_24g ,mouse_select_device_number_24g 
+5807 18467c02 sub temp ,2 ,null 
+5808 20610000 rtn positive 
+
+mouse_select_device_count_clean_bt:
+5809 d8400001 arg 1 ,temp 
+580a 20600000 rtn 
+
+mouse_select_device_number_24g:
+580b 6fe0c716 fetch 1 ,mem_device_number 
+580c 1fe0ffff increase -1 ,pdata 
+580d 98467c00 isub temp ,null 
+580e 20610000 rtn positive 
+
+mouse_select_device_count_clean_24g:
+580f d8400000 arg 0 ,temp 
+5810 20600000 rtn 
+
+mouse_store_device_number2eeprom:
+5811 d8400001 arg 1 ,temp 
+5812 da204678 arg mem_device_flag ,rega 
+5813 da400000 arg 0 ,regb 
+5814 20206cc9 branch iicd_write_protect_eep_data 
+
+mouse_bt_button_check:
+5815 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5816 c41a0000 rtnbit0 mouse_enable_pb_button_short_press_enter_discovery 
+5817 2020576b branch mouse_select_device_by_pb_button 
+
+mouse_select_device_enable:
+5818 d8e00000 arg mouse_select_device_flag ,queue 
+5819 2020582e branch mouse_enable_function_flag 
+
+mouse_select_device_disable:
+581a d8e00000 arg mouse_select_device_flag ,queue 
+581b 20205832 branch mouse_disable_function_flag 
+
+mouse_bt_cannel_reconn_enable:
+581c d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
+581d 2020582e branch mouse_enable_function_flag 
+
+mouse_bt_cannel_reconn_disable:
+581e d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
+581f 20205832 branch mouse_disable_function_flag 
+
+mouse_bt_discovery_button_down_enable:
+5820 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+5821 2020582e branch mouse_enable_function_flag 
+
+mouse_bt_discovery_button_down_disable:
+5822 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+5823 20205832 branch mouse_disable_function_flag 
+
+mouse_adc_read_enable:
+5824 d8e00013 arg mouse_enable_adc ,queue 
+5825 2020582e branch mouse_enable_function_flag 
+
+mouse_24g_set_250hz:
+5826 d8e00018 arg mouse_enable_24g_250hz ,queue 
+5827 2020582e branch mouse_enable_function_flag 
+
+mouse_24g_search_dongle_enable:
+5828 d8e0000d arg mouse_enable_24g_search_dongle ,queue 
+5829 2020582e branch mouse_enable_function_flag 
+
+mouse_16m_enable:
+582a d8e0000b arg mouse_enable_16m ,queue 
+582b 2020582e branch mouse_enable_function_flag 
+
+mouse_dpi_4level_enable:
+582c d8e0001c arg mouse_enable_dpi_level_4 ,queue 
+582d 2020582e branch mouse_enable_function_flag 
+
+mouse_enable_function_flag:
+582e 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+582f f9207e00 qset1 pdata 
+5830 67e4470e store mouse_flag_len ,mem_mouse_flag 
+5831 20600000 rtn 
+
+mouse_disable_function_flag:
+5832 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5833 f93ffe00 qset0 pdata 
+5834 67e4470e store mouse_flag_len ,mem_mouse_flag 
+5835 20600000 rtn 
+
+mouse_polling_device:
+5836 44d04014 bpatch patch14_0 ,mem_patch14 
+5837 6fe0c73f fetch 1 ,mem_reconn_times 
+5838 1fe0ffff increase -1 ,pdata 
+5839 67e0c73f store 1 ,mem_reconn_times 
+583a 6848c678 fetcht 1 ,mem_device_flag 
+583b 18467c01 sub temp ,1 ,null 
+583c 2442d803 ncall mouse_select_device_number ,zero 
+583d 6048c678 storet 1 ,mem_device_flag 
+583e 20405811 call mouse_store_device_number2eeprom 
+583f 204067c1 call hid_device_before_store_reconn_info 
+5840 20204e09 branch mouse_start_reconnect_device 
+
+mouse_drawing_optima:
+5841 44d0c014 bpatch patch14_1 ,mem_patch14 
+5842 6fe0c9fa fetch 1 ,mem_config_sensor_type 
+5843 c1018000 rtneq p3212 
+5844 c1058000 rtneq ka8g2 
+5845 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5846 c41c0000 rtnbit0 mouse_enable_smoother 
+5847 6fe2465d fetch 4 ,mem_mouse_x 
+5848 207a0000 rtn blank 
+5849 204058e6 call mouse_data_abs_check 
+584a 58000003 setarg 0x03 
+584b 204058dc call mouse_pdata_greater_than_check 
+584c 205a58d8 call mouse_disable_asm ,blank 
+584d 245a58da ncall mouse_enable_asm ,blank 
+584e 58000002 setarg 0x02 
+584f 204058e1 call mouse_data_less_than_check 
+5850 205a58d8 call mouse_disable_asm ,blank 
+5851 6fe0c8fe fetch 1 ,mem_mouse_asm_flag 
+5852 c000d858 beq 1 ,mouse_drawing_optima_modify 
+
+mouse_drawing_optima_init:
+5853 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5854 c41c0000 rtnbit0 mouse_enable_smoother 
+5855 df200005 arg 5 ,loopcnt 
+5856 d8a048fe arg mem_mouse_asm_flag ,contw 
+5857 20207ca3 branch clear_mem 
+
+mouse_drawing_optima_modify:
+5858 2040586c call mouse_drawing_optima_xy_offset_modify 
+5859 6fe148ff fetch 2 ,mem_mouse_x_pre 
+585a 67e106e9 store 2 ,mem_data_pre 
+585b 6fe1465d fetch 2 ,mem_mouse_x 
+585c 67e106eb store 2 ,mem_data_current 
+585d 204058a2 call mouse_drawing_optima_data_x 
+585e 6fe106e9 fetch 2 ,mem_data_pre 
+585f 67e148ff store 2 ,mem_mouse_x_pre 
+5860 6fe106eb fetch 2 ,mem_data_current 
+5861 67e1465d store 2 ,mem_mouse_x 
+5862 6fe14901 fetch 2 ,mem_mouse_y_pre 
+5863 67e106e9 store 2 ,mem_data_pre 
+5864 6fe1465f fetch 2 ,mem_mouse_y 
+5865 67e106eb store 2 ,mem_data_current 
+5866 204058aa call mouse_drawing_optima_data_y 
+5867 6fe106e9 fetch 2 ,mem_data_pre 
+5868 67e14901 store 2 ,mem_mouse_y_pre 
+5869 6fe106eb fetch 2 ,mem_data_current 
+
+mouse_data_y_store:
+586a 67e1465f store 2 ,mem_mouse_y 
+586b 20600000 rtn 
+
+mouse_drawing_optima_xy_offset_modify:
+586c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+586d c41c8000 rtnbit0 mouse_enable_xy_offset 
+586e 44d14014 bpatch patch14_2 ,mem_patch14 
+586f 6fe148ff fetch 2 ,mem_mouse_x_pre 
+5870 67e106f0 store 2 ,mem_data_value 
+5871 2040587f call mouse_pre_xy_data_judge 
+5872 67e148ff store 2 ,mem_mouse_x_pre 
+5873 6fe1465d fetch 2 ,mem_mouse_x 
+5874 67e106f0 store 2 ,mem_data_value 
+5875 2040588d call mouse_current_xy_data_judge 
+5876 67e1465d store 2 ,mem_mouse_x 
+5877 6fe14901 fetch 2 ,mem_mouse_y_pre 
+5878 67e106f0 store 2 ,mem_data_value 
+5879 2040587f call mouse_pre_xy_data_judge 
+587a 67e14901 store 2 ,mem_mouse_y_pre 
+587b 6fe1465f fetch 2 ,mem_mouse_y 
+587c 67e106f0 store 2 ,mem_data_value 
+587d 2040588d call mouse_current_xy_data_judge 
+587e 2020586a branch mouse_data_y_store 
+
+mouse_pre_xy_data_judge:
+587f 6fe086f1 fetch 1 ,mem_data_value + 1 
+5880 203a5882 branch mouse_pre_xy_pdata_offset ,blank 
+5881 20205887 branch mouse_pre_xy_ndata_offset 
+
+mouse_pre_xy_pdata_offset:
+5882 6fe086f0 fetch 1 ,mem_data_value 
+5883 2040589a call mouse_pre_xy_get_0_4_times 
+5884 67e086f0 store 1 ,mem_data_value 
+
+mouse_xy_data_offset_new:
+5885 6fe106f0 fetch 2 ,mem_data_value 
+5886 20600000 rtn 
+
+mouse_pre_xy_ndata_offset:
+5887 6fe086f0 fetch 1 ,mem_data_value 
+5888 204058d4 call mouse_pdata_invert 
+5889 2040589a call mouse_pre_xy_get_0_4_times 
+588a 205a7dca call disable_blank ,blank 
+588b 204058d0 call mouse_pdata_get_new_value 
+588c 20205885 branch mouse_xy_data_offset_new 
+
+mouse_current_xy_data_judge:
+588d 6fe086f1 fetch 1 ,mem_data_value + 1 
+588e 203a5890 branch mouse_current_xy_pdata_offset ,blank 
+588f 20205894 branch mouse_current_xy_ndata_offset 
+
+mouse_current_xy_pdata_offset:
+5890 6fe086f0 fetch 1 ,mem_data_value 
+5891 2040589d call mouse_current_xy_get_0_6_times 
+5892 67e086f0 store 1 ,mem_data_value 
+5893 20205885 branch mouse_xy_data_offset_new 
+
+mouse_current_xy_ndata_offset:
+5894 6fe086f0 fetch 1 ,mem_data_value 
+5895 204058d4 call mouse_pdata_invert 
+5896 2040589d call mouse_current_xy_get_0_6_times 
+5897 205a7dca call disable_blank ,blank 
+5898 204058d0 call mouse_pdata_get_new_value 
+5899 20205885 branch mouse_xy_data_offset_new 
+
+mouse_pre_xy_get_0_4_times:
+589a 1feffe04 mul32 pdata ,4 ,pdata 
+589b 1fe6fc05 div pdata ,5 
+589c 2020589f branch mouse_div_end 
+
+mouse_current_xy_get_0_6_times:
+589d 1feffe0c mul32 pdata ,12 ,pdata 
+589e 1fe6fc0a div pdata ,10 
+
+mouse_div_end:
+589f 20407d64 call wait_div_end 
+58a0 1807fe00 quotient pdata 
+58a1 20600000 rtn 
+
+mouse_drawing_optima_data_x:
+58a2 6fe106e9 fetch 2 ,mem_data_pre 
+58a3 684906eb fetcht 2 ,mem_data_current 
+58a4 9840fe00 iadd temp ,pdata 
+58a5 6848c903 fetcht 1 ,mem_mouse_data_xtemp 
+58a6 9840fe00 iadd temp ,pdata 
+58a7 1fe10401 and pdata ,0x01 ,temp 
+58a8 6048c903 storet 1 ,mem_mouse_data_xtemp 
+58a9 202058b2 branch mouse_drawing_optima_data 
+
+mouse_drawing_optima_data_y:
+58aa 6fe106e9 fetch 2 ,mem_data_pre 
+58ab 684906eb fetcht 2 ,mem_data_current 
+58ac 9840fe00 iadd temp ,pdata 
+58ad 6848c904 fetcht 1 ,mem_mouse_data_ytemp 
+58ae 9840fe00 iadd temp ,pdata 
+58af 1fe10401 and pdata ,0x01 ,temp 
+58b0 6048c904 storet 1 ,mem_mouse_data_ytemp 
+58b1 202058b2 branch mouse_drawing_optima_data 
+
+mouse_drawing_optima_data:
+58b2 67e186ed store 3 ,mem_data_sum 
+58b3 2feffe10 isolate1 16 ,pdata 
+58b4 2020d8bc branch mouse_data_sum_overflow ,true 
+58b5 6fe086ee fetch 1 ,mem_data_sum + 1 
+58b6 c07fd8c3 beq 0xff ,mouse_data_sum_n 
+58b7 6fe086ed fetch 1 ,mem_data_sum 
+
+mouse_data_store_pre:
+58b8 1fe37e00 rshift pdata ,pdata 
+58b9 67e106e9 store 2 ,mem_data_pre 
+58ba 67e106eb store 2 ,mem_data_current 
+58bb 20600000 rtn 
+
+mouse_data_sum_overflow:
+58bc 6fe086ee fetch 1 ,mem_data_sum + 1 
+58bd c00058c0 beq 0 ,mouse_data_sum_overflow_p 
+58be 6fe186ed fetch 3 ,mem_data_sum 
+58bf 202058b8 branch mouse_data_store_pre 
+
+mouse_data_sum_overflow_p:
+58c0 7006ef00 jam 0 ,mem_data_sum + 2 
+58c1 6fe086ed fetch 1 ,mem_data_sum 
+58c2 202058b8 branch mouse_data_store_pre 
+
+mouse_data_sum_n:
+58c3 6fe086ed fetch 1 ,mem_data_sum 
+58c4 204058ce call mouse_pdata_get_half 
+58c5 67e086e9 store 1 ,mem_data_pre 
+58c6 67e086eb store 1 ,mem_data_current 
+58c7 203a58cc branch mouse_data_zero ,blank 
+58c8 580000ff setarg 0xff 
+
+mouse_data_set_direction:
+58c9 67e086ea store 1 ,mem_data_pre + 1 
+58ca 67e086ec store 1 ,mem_data_current + 1 
+58cb 20600000 rtn 
+
+mouse_data_zero:
+58cc 58000000 setarg 0 
+58cd 202058c9 branch mouse_data_set_direction 
+
+mouse_pdata_get_half:
+58ce 204058d4 call mouse_pdata_invert 
+58cf 1fe37e00 rshift pdata ,pdata 
+
+mouse_pdata_get_new_value:
+58d0 204058d5 call mouse_rega_in_out 
+58d1 1fe67e00 sub pdata ,0 ,pdata 
+58d2 67e086f0 store 1 ,mem_data_value 
+58d3 20600000 rtn 
+
+mouse_pdata_invert:
+58d4 1fe67e00 sub pdata ,0 ,pdata 
+
+mouse_rega_in_out:
+58d5 67e08662 store 1 ,mem_rega 
+58d6 6fe08662 fetch 1 ,mem_rega 
+58d7 20600000 rtn 
+
+mouse_disable_asm:
+58d8 7048fe00 jam 0 ,mem_mouse_asm_flag 
+58d9 20600000 rtn 
+
+mouse_enable_asm:
+58da 7048fe01 jam 1 ,mem_mouse_asm_flag 
+58db 20600000 rtn 
+
+mouse_pdata_greater_than_check:
+58dc 9a267c00 isub rega ,null 
+58dd 24217dca nbranch disable_blank ,positive 
+58de 9a467c00 isub regb ,null 
+58df 24217dca nbranch disable_blank ,positive 
+58e0 20207dcc branch enable_blank 
+
+mouse_data_less_than_check:
+58e1 9a267c00 isub rega ,null 
+58e2 24610000 nrtn positive 
+58e3 9a467c00 isub regb ,null 
+58e4 24610000 nrtn positive 
+58e5 20207dcc branch enable_blank 
+
+mouse_data_abs_check:
+58e6 6fe1465d fetch 2 ,mem_mouse_x 
+58e7 204058ed call mouse_data_abs 
+58e8 1fe22200 copy pdata ,rega 
+58e9 6fe1465f fetch 2 ,mem_mouse_y 
+58ea 204058ed call mouse_data_abs 
+58eb 1fe22400 copy pdata ,regb 
+58ec 20600000 rtn 
+
+mouse_data_abs:
+58ed 67e106eb store 2 ,mem_data_current 
+58ee 6fe086ec fetch 1 ,mem_data_current + 1 
+58ef c07fd8f3 beq 0xff ,mouse_data_reversal 
+58f0 6fe086eb fetch 1 ,mem_data_current 
+
+mouse_data_abs_store:
+58f1 1fe17eff and_into 0xff ,pdata 
+58f2 20600000 rtn 
+
+mouse_data_reversal:
+58f3 6fe106eb fetch 2 ,mem_data_current 
+58f4 1fe67e00 sub pdata ,0 ,pdata 
+58f5 202058f1 branch mouse_data_abs_store 
+
+mouse_24g_long_sleep_param_update_timer:
+58f6 da604636 arg mem_24g_long_sleep_param_update_timer ,regc 
+58f7 da4058f9 arg mouse_24g_long_sleep_normal_param ,regb 
+58f8 20203755 branch timer_single_step 
+
+mouse_24g_long_sleep_normal_param:
+58f9 6fe2462a fetch 4 ,mem_24g_long_sleep_set1 
+58fa 67e245c6 store 4 ,mem_24g_enter_hibernate 
+58fb 2020552c branch mouse_long_mult_init 
+
+mouse_24g_long_sleep_set:
+58fc 6fe0c738 fetch 1 ,mem_24g_long_sleep_set_level 
+58fd c0005904 beq 0x00 ,mouse_24g_long_sleep_set_30ms 
+58fe c000d906 beq 0x01 ,mouse_24g_long_sleep_set_50ms 
+58ff c0015901 beq 0x02 ,mouse_24g_long_sleep_set_80ms 
+5900 c001d908 beq 0x03 ,mouse_24g_long_sleep_set_100ms 
+
+mouse_24g_long_sleep_set_80ms:
+5901 580ea600 setarg 0x0ea600 
+
+mouse_24g_long_sleep_set_end:
+5902 67e2462a store 4 ,mem_24g_long_sleep_set1 
+5903 20600000 rtn 
+
+mouse_24g_long_sleep_set_30ms:
+5904 5805e740 setarg 0x05e740 
+5905 20205902 branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_long_sleep_set_50ms:
+5906 580927c0 setarg 0x0927c0 
+5907 20205902 branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_long_sleep_set_100ms:
+5908 58124f80 setarg 0x124f80 
+5909 20205902 branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_hibernate_set:
+590a 44d1c014 bpatch patch14_3 ,mem_patch14 
+590b 704ac400 jam 0 ,mem_mouse_pair_flag 
+590c 70461700 jam 0 ,mem_24g_attempt_fail_flag 
+590d 20403620 call g24_transmit_next_packet 
+590e 5fffffff setarg -1 
+590f 67e445c6 store 8 ,mem_24g_enter_hibernate 
+5910 58000000 setarg 0 
+5911 67e3c65c store 7 ,mem_mouse_key 
+5912 70473701 jam 1 ,mem_24g_shutdown_flag 
+5913 20405303 call mouse_sensor_powerdown 
+5914 20404e42 call mouse_setgpio_hibernate 
+5915 20205af7 branch mouse_24g_long_sleep 
+
+mouse_wakeup_24g:
+5916 44d24014 bpatch patch14_4 ,mem_patch14 
+5917 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
+5918 245a591b ncall mouse_wakeup_24g_from_long_sleep ,blank 
+5919 70473700 jam 0 ,mem_24g_shutdown_flag 
+591a 20600000 rtn 
+
+mouse_wakeup_24g_from_long_sleep:
+591b 704ac401 jam 1 ,mem_mouse_pair_flag 
+591c 20405263 call mouse_init_sensor_wakeup 
+591d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+591e c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+
+mouse_wheel_gpio_init:
+591f 6848c668 fetcht 1 ,mem_whee_a_data_gpio 
+5920 20404f0a call device_gpio_config_input_pu 
+5921 6848c669 fetcht 1 ,mem_whee_b_data_gpio 
+5922 20204f0a branch device_gpio_config_input_pu 
+
+mouse_24g_transmit_start:
+5923 20405927 call mouse_24g_fast_conn_mode_check 
+5924 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
+5925 243a5b02 nbranch mouse_24g_short_sleep ,blank 
+5926 202035e8 branch g24_transmit_start_next 
+
+mouse_24g_fast_conn_mode_check:
+5927 6fe245ff fetch 4 ,mem_24g_receiver_addr 
+5928 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
+5929 98467c00 isub temp ,null 
+592a 2022d92d branch mouse_soft_agc_enable ,zero 
+
+mouse_soft_agc_disable:
+592b 704143ff jam 0xff ,mem_gain_fix 
+592c 20600000 rtn 
+
+mouse_soft_agc_enable:
+592d 70414300 jam 0 ,mem_gain_fix 
+592e 704141aa jam tx_power_factory ,mem_tx_power 
+592f 20600000 rtn 
+
+device_store_normal_tx_power:
+5930 6fe0c141 fetch 1 ,mem_tx_power 
+5931 67e0c656 store 1 ,mem_device_normal_tx_power 
+5932 20600000 rtn 
+
+device_fetch_normal_tx_power:
+5933 6fe0c656 fetch 1 ,mem_device_normal_tx_power 
+5934 67e0c141 store 1 ,mem_tx_power 
+5935 20600000 rtn 
+
+mouse_24g_stop:
+5936 793f8026 set0 mark_24g ,mark 
+5937 70461300 jam state_24g_stop ,mem_24g_conn_sm 
+5938 d8e00001 arg mouse_24g_pairing_flag ,queue 
+5939 20205832 branch mouse_disable_function_flag 
+
+mouse_24g_start_mode:
+593a 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+593b c307d948 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+593c 20405a69 call mouse_device_24g_pair_led_config 
+593d 20404e14 call mouse_wakeup_from_power_check 
+593e 20345988 branch mouse_24g_reconn_dongle_start ,user 
+593f 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5940 c298594d bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+5941 c318d94d bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+5942 204051a7 call mouse_key_check_once 
+5943 1a217e07 and rega ,0x07 ,pdata 
+5944 6848cabe fetcht 1 ,mem_mouse_commbination_key_24g 
+5945 98467c00 isub temp ,null 
+5946 2022d965 branch mouse_24g_start_pair_mode ,zero 
+5947 2020594d branch mouse_24g_reconn_general_dongle 
+
+mouse_24g_mode_setup_error:
+5948 6fe0c73f fetch 1 ,mem_reconn_times 
+5949 243a5836 nbranch mouse_polling_device ,blank 
+594a 20600000 rtn 
+
+mouse_24g_first_start_auto_pair_mode:
+594b 20404e14 call mouse_wakeup_from_power_check 
+594c 20345956 branch mouse_24g_first_start_reconn ,user 
+
+mouse_24g_reconn_general_dongle:
+594d 70467800 jam mode_24g_device ,mem_device_flag 
+594e 6fe1471a fetch 2 ,mem_device_24g_power_on_fast_conn_timer 
+594f 67e145f5 store 2 ,mem_24g_reconn_timeout 
+5950 7045f901 jam fast_conn_and_receiver ,mem_24g_reconn_type 
+5951 2020350a branch g24_reconn_start 
+
+mouse_24g_start_auto_pair:
+5952 6fe145ed fetch 2 ,mem_24g_pair_timeout_init 
+5953 67e145f5 store 2 ,mem_24g_reconn_timeout 
+5954 7045f904 jam pair_and_3_0_addr ,mem_24g_reconn_type 
+5955 2020350a branch g24_reconn_start 
+
+mouse_24g_first_start_reconn:
+5956 6fe0c678 fetch 1 ,mem_device_flag 
+5957 c0005988 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
+5958 204053c1 call mouse_bluetooth_fast_conn_disable 
+
+mouse_24g_first_bluetooth_reconnect:
+5959 20405936 call mouse_24g_stop 
+595a 70467801 jam mode_bt_device1 ,mem_device_flag 
+595b 204067d5 call hid_device_select_reconn_device 
+595c 20204dfa branch mouse_le_fast_conn_judge 
+
+mouse_24g_first_bb_event_reconn_timeout:
+595d 20404e14 call mouse_wakeup_from_power_check 
+595e 20344e35 branch mouse_app_enter_hibernate ,user 
+595f 20205544 branch mouse_start_discovery 
+
+mouse_24g_first_store_reconn_info:
+5960 20404e14 call mouse_wakeup_from_power_check 
+5961 20740000 rtn user 
+5962 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5963 c29f5571 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_store_device_info_delay 
+5964 20600000 rtn 
+
+mouse_24g_start_pair_mode:
+5965 20405a69 call mouse_device_24g_pair_led_config 
+5966 7045f900 jam 0 ,mem_24g_reconn_type 
+5967 d8e00001 arg mouse_24g_pairing_flag ,queue 
+5968 2040582e call mouse_enable_function_flag 
+5969 58000000 setarg 0 
+596a 67e145f5 store 2 ,mem_24g_reconn_timeout 
+596b 20405562 call mouse_stop_discovery 
+
+mouse_24g_pair_mode_check:
+596c 7045a001 jam type_ms ,mem_24g_data_type 
+596d 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+596e c30a326f bbit0 mouse_enable_keyboard ,g24_pair_start 
+596f 7045a002 jam type_kb ,mem_24g_data_type 
+5970 2020326f branch g24_pair_start 
+
+mouse_24g_attempt_fail:
+5971 2040592b call mouse_soft_agc_disable 
+5972 20405933 call device_fetch_normal_tx_power 
+5973 6fe0c617 fetch 1 ,mem_24g_attempt_fail_flag 
+5974 243a590a nbranch mouse_24g_hibernate_set ,blank 
+5975 6fe0c5f9 fetch 1 ,mem_24g_reconn_type 
+5976 c0015980 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
+5977 c000d980 beq fast_conn_and_receiver ,mouse_24g_fast_conn_attempt_fail 
+5978 c002598c beq pair_and_3_0_addr ,mouse_24g_auto_pair_attempt_fail 
+5979 c001d991 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
+
+mouse_24g_attempt_fail_enter_hibernate:
+597a 20405936 call mouse_24g_stop 
+597b 6fe0c73f fetch 1 ,mem_reconn_times 
+597c 243a5836 nbranch mouse_polling_device ,blank 
+597d 6fe0c678 fetch 1 ,mem_device_flag 
+597e c0004e35 beq mode_24g_device ,mouse_app_enter_hibernate 
+597f 20600000 rtn 
+
+mouse_24g_fast_conn_attempt_fail:
+5980 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5981 c29f5952 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+5982 c2985952 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+5983 c31d5988 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+5984 6fe246a3 fetch 4 ,mem_device_24g_addr 
+5985 684a46f8 fetcht 4 ,mem_device_compare_addr 
+5986 98467c00 isub temp ,null 
+5987 2022d965 branch mouse_24g_start_pair_mode ,zero 
+
+mouse_24g_reconn_dongle_start:
+5988 6fe145f3 fetch 2 ,mem_24g_reconn_timeout_init 
+5989 67e145f5 store 2 ,mem_24g_reconn_timeout 
+598a 7045f903 jam receiver_and_3_0_addr ,mem_24g_reconn_type 
+598b 2020350a branch g24_reconn_start 
+
+mouse_24g_auto_pair_attempt_fail:
+598c 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+598d c31f597a bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+598e 6fe0c716 fetch 1 ,mem_device_number 
+598f c000d97a beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
+5990 20205959 branch mouse_24g_first_bluetooth_reconnect 
+
+mouse_reconn_dongle_attempt_fail:
+5991 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5992 c31f597a bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+5993 c288d97a bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
+5994 c288597a bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
+5995 c289597a bbit1 mouse_enable_otp ,mouse_24g_attempt_fail_enter_hibernate 
+5996 20205952 branch mouse_24g_start_auto_pair 
+
+mouse_24g_attempt_success:
+5997 6fe245a6 fetch 4 ,mem_24g_addr 
+5998 67e245ff store 4 ,mem_24g_receiver_addr 
+5999 67e246a3 store 4 ,mem_device_24g_addr 
+599a 20403530 call g24_ch_syncword_crc8_init 
+599b 20405535 call mouse_no_data_timer_init 
+599c 20405a62 call mouse_device_poweron_led_config 
+599d 2040538d call mouse_init_sensor_reset 
+599e 70473d00 jam 0 ,mem_mouse_long_mult_flag 
+599f 70461300 jam 0 ,mem_24g_conn_sm 
+59a0 7045f900 jam 0 ,mem_24g_reconn_type 
+59a1 6fe245ff fetch 4 ,mem_24g_receiver_addr 
+59a2 684a45fb fetcht 4 ,mem_24g_fast_conn_addr 
+59a3 98467c00 isub temp ,null 
+59a4 20628000 rtn zero 
+59a5 2040592b call mouse_soft_agc_disable 
+59a6 20405933 call device_fetch_normal_tx_power 
+59a7 20205960 branch mouse_24g_first_store_reconn_info 
+
+mouse_24g_pairing_complete:
+59a8 2040592b call mouse_soft_agc_disable 
+59a9 20405933 call device_fetch_normal_tx_power 
+59aa 2040538d call mouse_init_sensor_reset 
+59ab 2040539e call mouse_read_sensor_common 
+59ac 20405a62 call mouse_device_poweron_led_config 
+59ad 20405535 call mouse_no_data_timer_init 
+59ae d8e00001 arg mouse_24g_pairing_flag ,queue 
+59af 20405832 call mouse_disable_function_flag 
+59b0 58000000 setarg 0 
+59b1 67e145ef store 2 ,mem_24g_pair_timeout 
+59b2 67e145f5 store 2 ,mem_24g_reconn_timeout 
+59b3 67e0c613 store 1 ,mem_24g_conn_sm 
+59b4 67e0c8fd store 1 ,mem_mouse_move_flag 
+59b5 67e0c5f9 store 1 ,mem_24g_reconn_type 
+59b6 6fe245a6 fetch 4 ,mem_24g_addr 
+59b7 67e245ff store 4 ,mem_24g_receiver_addr 
+59b8 67e246a3 store 4 ,mem_device_24g_addr 
+59b9 20205571 branch mouse_store_device_info_delay 
+
+mouse_24g_short_sleep_clear_wake:
+59ba 20407de6 call clear_wake 
+59bb 202023e1 branch lpm_write_gpio_wakeup 
+
+mouse_24g_package_data:
+59bc 44d2c014 bpatch patch14_5 ,mem_patch14 
+59bd c6930000 rtnmark0 mark_24g 
+59be 20404f26 call mouse_motion 
+59bf 24740000 nrtn user 
+59c0 6fe0c73b fetch 1 ,mem_mouse_24g_long_sleep_flag 
+59c1 70473b00 jam 0 ,mem_mouse_24g_long_sleep_flag 
+59c2 245a59ba ncall mouse_24g_short_sleep_clear_wake ,blank 
+59c3 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+59c4 c30a59c7 bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+59c5 6fe0c72b fetch 1 ,mem_customer_key 
+59c6 243a59dc nbranch mouse_24g_keyboard_package_data ,blank 
+
+mouse_24g_mouse_package_data:
+59c7 2040538e call mouse_data_xy_release 
+59c8 6fe0c5a0 fetch 1 ,mem_24g_data_type 
+59c9 c280d9d6 bbit1 1 ,mouse_24g_mouse_package_data_now 
+59ca 6848c531 fetcht 1 ,mem_24g_txbuf + 1 
+59cb 6fe0c65c fetch 1 ,mem_mouse_key 
+59cc 9841fe00 ior temp ,pdata 
+59cd 67e0c65c store 1 ,mem_mouse_key 
+59ce 6848c536 fetcht 1 ,mem_24g_txbuf + 6 
+59cf 6fe0c661 fetch 1 ,mem_mouse_z 
+59d0 9840fe00 iadd temp ,pdata 
+59d1 67e0c661 store 1 ,mem_mouse_z 
+59d2 6848c537 fetcht 1 ,mem_24g_txbuf + 7 
+59d3 6fe0c662 fetch 1 ,mem_mouse_tz 
+59d4 9840fe00 iadd temp ,pdata 
+59d5 67e0c662 store 1 ,mem_mouse_tz 
+
+mouse_24g_mouse_package_data_now:
+59d6 7045a001 jam type_ms ,mem_24g_data_type 
+59d7 da200007 arg 7 ,rega 
+59d8 da40465c arg mem_mouse_key ,regb 
+59d9 6fe14661 fetch 2 ,mem_mouse_z 
+59da 207a0000 rtn blank 
+59db 202036bb branch g24_transmit_by_interrupt_enable 
+
+mouse_24g_keyboard_package_data:
+59dc 7045a002 jam type_kb ,mem_24g_data_type 
+59dd da200009 arg 9 ,rega 
+59de 20206852 branch hid_device_24g_keyboard_package_data_set 
+
+mouse_g24_retransmit:
+59df 6fe0c752 fetch 1 ,mem_device_need_soft_reset 
+59e0 247a0000 nrtn blank 
+59e1 204059e3 call mouse_g24_retransmit_100ms_timer 
+59e2 2020363b branch g24_retransmit0 
+
+mouse_g24_retransmit_100ms_timer:
+59e3 d8e0000c arg 12 ,queue 
+59e4 20407cf1 call timer_check 
+59e5 247a0000 nrtn blank 
+59e6 20405776 call mouse_retransmit_select_device_by_pb_button 
+59e7 204054c9 call mouse_retransmit_commbination_key_check 
+59e8 204059ed call mouse_dpi_check_once 
+59e9 20405050 call mouse_dpi_key_check_long_press 
+
+mouse_g24_retransmit_100ms_timer_init:
+59ea d8e0000c arg 12 ,queue 
+59eb 580000a0 setarg 160 
+59ec 20207ce3 branch timer_init 
+
+mouse_dpi_check_once:
+59ed 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+59ee c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
+59ef 20204fdb branch mouse_dpi_check 
+
+mouse_24g_before_lpm_sleep:
+59f0 20406f4b call lpm_puchk_set_check 
+59f1 202068c4 branch hid_device_before_lpm_set 
+
+mouse_logo_led_on_timer:
+59f2 6fe0c8a1 fetch 1 ,mem_mouse_logo_led_gpio 
+59f3 c17f8000 rtneq gpio_disable 
+59f4 6fe14741 fetch 2 ,mem_device_no_data_timer 
+59f5 207a0000 rtn blank 
+59f6 6fe1471e fetch 2 ,mem_device_no_data_timeout 
+59f7 68494741 fetcht 2 ,mem_device_no_data_timer 
+59f8 98460400 isub temp ,temp 
+59f9 6fe148bb fetch 2 ,mem_mouse_logo_led_on_time_init 
+59fa 98467e00 isub temp ,pdata 
+59fb 202159fe branch mouse_logo_led_on ,positive 
+
+mouse_logo_led_off:
+59fc 6848c8a1 fetcht 1 ,mem_mouse_logo_led_gpio 
+59fd 20205ab6 branch mouse_led_off 
+
+mouse_logo_led_on:
+59fe 6848c8a1 fetcht 1 ,mem_mouse_logo_led_gpio 
+59ff 20205ab5 branch mouse_led_on 
+
+mouse_dpi_led_blink_delay_timer:
+5a00 da6048bd arg mem_mouse_dpi_led_delay_count ,regc 
+5a01 da405a03 arg mouse_dpi_led_blink_init ,regb 
+5a02 20203755 branch timer_single_step 
+
+mouse_dpi_led_blink_init:
+5a03 44d34014 bpatch patch14_6 ,mem_patch14 
+5a04 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5a05 c28e5a0b bbit1 mouse_enable_dpi_level_4 ,mouse_dpi_led_blink_set_4_level 
+
+mouse_dpi_led_blink_set_3_level:
+5a06 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+5a07 c0005a13 beq mouse_dpi_level1 ,mouse_dpi_level_2_blink 
+5a08 c000da15 beq mouse_dpi_level2 ,mouse_dpi_level_3_blink 
+5a09 c0015a11 beq mouse_dpi_level3 ,mouse_dpi_level_1_blink 
+5a0a 20600000 rtn 
+
+mouse_dpi_led_blink_set_4_level:
+5a0b 6fe0c6a2 fetch 1 ,mem_mouse_dpi 
+5a0c c0005a15 beq mouse_dpi_level1 ,mouse_dpi_level_3_blink 
+5a0d c000da17 beq mouse_dpi_level2 ,mouse_dpi_level_4_blink 
+5a0e c0015a11 beq mouse_dpi_level3 ,mouse_dpi_level_1_blink 
+5a0f c001da13 beq mouse_dpi_level4 ,mouse_dpi_level_2_blink 
+5a10 20600000 rtn 
+
+mouse_dpi_level_1_blink:
+5a11 58000002 setarg 2 
+5a12 20205a19 branch mouse_multi_dpi_led_blink_enable 
+
+mouse_dpi_level_2_blink:
+5a13 58000004 setarg 4 
+5a14 20205a19 branch mouse_multi_dpi_led_blink_enable 
+
+mouse_dpi_level_3_blink:
+5a15 58000006 setarg 6 
+5a16 20205a19 branch mouse_multi_dpi_led_blink_enable 
+
+mouse_dpi_level_4_blink:
+5a17 58000008 setarg 8 
+5a18 20205a19 branch mouse_multi_dpi_led_blink_enable 
+
+mouse_multi_dpi_led_blink_enable:
+5a19 67e0c8b8 store 1 ,mem_mouse_multi_led_blink_count 
+5a1a 7048ab04 jam 4 ,mem_mouse_multi_led_blink_type 
+5a1b 20405a59 call mouse_multi_dpi_led_blink_timer_init 
+5a1c 7048a901 jam multi_led_blink ,mem_mouse_multi_led_type 
+5a1d 20205a66 branch mouse_multi_led_enable 
+
+mouse_dpi_led_blink_delay:
+5a1e 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
+5a1f 207a0000 rtn blank 
+5a20 6fe0c8be fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+5a21 203a5a03 branch mouse_dpi_led_blink_init ,blank 
+5a22 67e0c8bd store 1 ,mem_mouse_dpi_led_delay_count 
+5a23 20600000 rtn 
+
+mouse_check_dpi_blink:
+5a24 78547c00 disable user 
+5a25 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
+5a26 1fe67c04 sub pdata ,4 ,null 
+5a27 24628000 nrtn zero 
+5a28 20207dbc branch enable_user 
+
+mouse_low_voltage_led_timer:
+5a29 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5a2a c4118000 rtnbit0 mouse_enable_low_led 
+5a2b c4020000 rtnbit0 mouse_low_voltage_flag 
+5a2c 6fe0cac4 fetch 1 ,mem_mouse_pair_flag 
+5a2d 207a0000 rtn blank 
+5a2e 20405a24 call mouse_check_dpi_blink 
+5a2f 20740000 rtn user 
+5a30 6fe0c8ba fetch 1 ,mem_mouse_multi_low_led_blink_count 
+5a31 203a5a47 branch mouse_low_led_blink_count_init_judge ,blank 
+
+mouse_low_led_blink_timer:
+5a32 6848c64d fetcht 1 ,mem_adc_low_volatage_led_timer_count 
+5a33 18408401 increase 1 ,temp 
+5a34 6048c64d storet 1 ,mem_adc_low_volatage_led_timer_count 
+5a35 6fe0c8b4 fetch 1 ,mem_mouse_low_led_blink_timer 
+5a36 98467c00 isub temp ,null 
+5a37 24415a3f ncall mouse_low_led_timer_count_clean ,positive 
+5a38 6fe0c8b5 fetch 1 ,mem_mouse_low_led_blink_half_timer 
+5a39 98467c00 isub temp ,null 
+5a3a 24215a43 nbranch mouse_low_voltage_led_off_judge ,positive 
+
+mouse_low_voltage_led_on_judge:
+5a3b 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5a3c c2925aaa bbit1 mouse_enable_low_for_led ,mouse_device_led_on 
+
+mouse_low_voltage_led_on:
+5a3d 6848c8a5 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+5a3e 20205ab5 branch mouse_led_on 
+
+mouse_low_led_timer_count_clean:
+5a3f 70464d01 jam 1 ,mem_adc_low_volatage_led_timer_count 
+5a40 6fe0c8ba fetch 1 ,mem_mouse_multi_low_led_blink_count 
+5a41 1fe0ffff increase -1 ,pdata 
+5a42 67e0c8ba store 1 ,mem_mouse_multi_low_led_blink_count 
+
+mouse_low_voltage_led_off_judge:
+5a43 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5a44 c2925abc bbit1 mouse_enable_low_for_led ,mouse_device_led_off 
+
+mouse_low_voltage_led_off:
+5a45 6848c8a5 fetcht 1 ,mem_mouse_low_voltage_alarm_gpio 
+5a46 20205ab6 branch mouse_led_off 
+
+mouse_low_led_blink_count_init_judge:
+5a47 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5a48 c2915a43 bbit1 mouse_enable_low_led_blink_limit ,mouse_low_voltage_led_off_judge 
+5a49 20405a52 call mouse_multi_low_led_blink_count_init 
+5a4a 20205a32 branch mouse_low_led_blink_timer 
+
+mouse_device_multi_led_parm_init:
+5a4b 7048a800 jam 0 ,mem_mouse_multi_led_blink_enable 
+5a4c 20405ace call mouse_device_multi_led_all_off 
+5a4d 7048ab00 jam 0 ,mem_mouse_multi_led_blink_type 
+5a4e 6fe0c8b4 fetch 1 ,mem_mouse_low_led_blink_timer 
+5a4f 1fe37e00 rshift pdata ,pdata 
+5a50 67e0c8b5 store 1 ,mem_mouse_low_led_blink_half_timer 
+5a51 20600000 rtn 
+
+mouse_multi_low_led_blink_count_init:
+5a52 6fe0c8b9 fetch 1 ,mem_mouse_multi_lowled_blink_count_init 
+5a53 67e0c8ba store 1 ,mem_mouse_multi_low_led_blink_count 
+5a54 20600000 rtn 
+
+mouse_multi_led_blink_timer_init:
+5a55 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
+5a56 c000da5c beq 1 ,mouse_device_24g_led_blink_timer_init 
+5a57 c0015a5e beq 2 ,mouse_device_le_discovery_led_blink_timer_init 
+5a58 c001da60 beq 3 ,mouse_device_le_reconn_led_blink_timer_init 
+
+mouse_multi_dpi_led_blink_timer_init:
+5a59 6fe0c8b2 fetch 1 ,mem_mouse_dpi_led_blink_timer_init 
+
+mouse_store_multi_led_blink_timer:
+5a5a 67e0c8b3 store 1 ,mem_mouse_multi_led_blink_timer 
+5a5b 20600000 rtn 
+
+mouse_device_24g_led_blink_timer_init:
+5a5c 6fe0c8af fetch 1 ,mem_mouse_multi_24gled_blink_timer_init 
+5a5d 20205a5a branch mouse_store_multi_led_blink_timer 
+
+mouse_device_le_discovery_led_blink_timer_init:
+5a5e 6fe0c8b0 fetch 1 ,mem_mouse_multi_le_discovery_blink_timer_init 
+5a5f 20205a5a branch mouse_store_multi_led_blink_timer 
+
+mouse_device_le_reconn_led_blink_timer_init:
+5a60 6fe0c8b1 fetch 1 ,mem_mouse_multi_le_reconn_blink_timer_init 
+5a61 20205a5a branch mouse_store_multi_led_blink_timer 
+
+mouse_device_poweron_led_config:
+5a62 44d3c014 bpatch patch14_7 ,mem_patch14 
+5a63 6fe0c8ad fetch 1 ,mem_mouse_multi_led_powon_timer_init 
+5a64 67e0c8ae store 1 ,mem_mouse_multi_led_powon_timer 
+5a65 7048a900 jam multi_led_on ,mem_mouse_multi_led_type 
+
+mouse_multi_led_enable:
+5a66 7048aa00 jam off ,mem_mouse_multi_led_state 
+5a67 7048a801 jam on ,mem_mouse_multi_led_blink_enable 
+5a68 20600000 rtn 
+
+mouse_device_24g_pair_led_config:
+5a69 44d44015 bpatch patch15_0 ,mem_patch15 
+5a6a 20405a7c call mouse_multi_led_blink_enable_init 
+5a6b 7048ab01 jam 1 ,mem_mouse_multi_led_blink_type 
+5a6c 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
+5a6d 207a0000 rtn blank 
+5a6e 6fe0c8b6 fetch 1 ,mem_mouse_multi_24gled_blink_count_init 
+5a6f 20205a78 branch mouse_device_led_blink_count_init 
+
+mouse_device_le_reconn_led_config:
+5a70 4769c03a bpatchx patch3a_3 ,mem_patch3a 
+5a71 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5a72 c4108000 rtnbit0 mouse_enable_bt_reconn_led_effect 
+5a73 20405a7c call mouse_multi_led_blink_enable_init 
+5a74 7048ab03 jam 3 ,mem_mouse_multi_led_blink_type 
+5a75 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
+5a76 207a0000 rtn blank 
+5a77 6fe0c8b7 fetch 1 ,mem_mouse_multi_le_reconn_blink_count_init 
+
+mouse_device_led_blink_count_init:
+5a78 67e0c8b8 store 1 ,mem_mouse_multi_led_blink_count 
+5a79 20600000 rtn 
+
+mouse_device_discovery_led_config:
+5a7a 7048ac00 jam 0 ,mem_mouse_le_reconn_blink_limit 
+5a7b 7048ab02 jam 2 ,mem_mouse_multi_led_blink_type 
+
+mouse_multi_led_blink_enable_init:
+5a7c 476a403a bpatchx patch3a_4 ,mem_patch3a 
+5a7d 7048b30a jam 0x0a ,mem_mouse_multi_led_blink_timer 
+5a7e 7048a801 jam 1 ,mem_mouse_multi_led_blink_enable 
+5a7f 7048a901 jam multi_led_blink ,mem_mouse_multi_led_type 
+5a80 20205aa9 branch mouse_device_multi_led_on 
+
+mouse_led_multi_timer:
+5a81 6fe0c8a8 fetch 1 ,mem_mouse_multi_led_blink_enable 
+5a82 207a0000 rtn blank 
+5a83 6fe0c8a9 fetch 1 ,mem_mouse_multi_led_type 
+5a84 c000da8e beq multi_led_blink ,mouse_multi_led_type_blink 
+
+mouse_device_multi_led_type_on:
+5a85 6fe0c8ae fetch 1 ,mem_mouse_multi_led_powon_timer 
+5a86 203a5a8a branch mouse_device_poweron_led_off ,blank 
+5a87 1fe0ffff increase -1 ,pdata 
+5a88 67e0c8ae store 1 ,mem_mouse_multi_led_powon_timer 
+5a89 20205aaa branch mouse_device_led_on 
+
+mouse_device_poweron_led_off:
+5a8a 7048a800 jam 0 ,mem_mouse_multi_led_blink_enable 
+5a8b 704ac401 jam 1 ,mem_mouse_pair_flag 
+5a8c 20405a52 call mouse_multi_low_led_blink_count_init 
+5a8d 20205abc branch mouse_device_led_off 
+
+mouse_multi_led_type_blink:
+5a8e 44d4c015 bpatch patch15_1 ,mem_patch15 
+5a8f 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
+5a90 207a0000 rtn blank 
+5a91 c0025a96 beq 4 ,mouse_device_led_blink_limit 
+5a92 20205a93 branch mouse_device_led_blink_judge 
+
+mouse_device_led_blink_judge:
+5a93 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
+5a94 c000da96 beq 1 ,mouse_device_led_blink_limit 
+5a95 20205a98 branch mouse_multi_led_type_blink_next 
+
+mouse_device_led_blink_limit:
+5a96 6fe0c8b8 fetch 1 ,mem_mouse_multi_led_blink_count 
+5a97 203a5ab7 branch mouse_multi_led_off_judge ,blank 
+
+mouse_multi_led_type_blink_next:
+5a98 da6048b3 arg mem_mouse_multi_led_blink_timer ,regc 
+5a99 da405a9b arg mouse_multi_led_type_blink_start ,regb 
+5a9a 20203755 branch timer_single_step 
+
+mouse_multi_led_type_blink_start:
+5a9b 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
+5a9c c0025aa3 beq 4 ,mouse_multi_led_blink_count_decrease 
+5a9d 6fe0c8ac fetch 1 ,mem_mouse_le_reconn_blink_limit 
+5a9e c000daa3 beq 1 ,mouse_multi_led_blink_count_decrease 
+
+mouse_multi_led_blink:
+5a9f 20405a55 call mouse_multi_led_blink_timer_init 
+5aa0 6fe0c8aa fetch 1 ,mem_mouse_multi_led_state 
+5aa1 c000dab9 beq on ,mouse_multi_led_off_judge_next 
+5aa2 20205aa7 branch mouse_multi_led_on_judge 
+
+mouse_multi_led_blink_count_decrease:
+5aa3 6fe0c8b8 fetch 1 ,mem_mouse_multi_led_blink_count 
+5aa4 1fe0ffff increase -1 ,pdata 
+5aa5 67e0c8b8 store 1 ,mem_mouse_multi_led_blink_count 
+5aa6 20205a9f branch mouse_multi_led_blink 
+
+mouse_multi_led_on_judge:
+5aa7 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
+5aa8 c0025ad8 beq 4 ,mouse_multi_dpi_led_on_judge 
+
+mouse_device_multi_led_on:
+5aa9 7048aa01 jam on ,mem_mouse_multi_led_state 
+
+mouse_device_led_on:
+5aaa 44d54015 bpatch patch15_2 ,mem_patch15 
+5aab 6fe0c678 fetch 1 ,mem_device_flag 
+5aac c0005ab0 beq mode_24g_device ,mouse_device_24g_led_on 
+5aad c000dab2 beq mode_bt_device1 ,mouse_device_bt1_led_on 
+5aae c0015ab4 beq mode_bt_device2 ,mouse_device_bt2_led_on 
+5aaf 20600000 rtn 
+
+mouse_device_24g_led_on:
+5ab0 6848c8a2 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+5ab1 20205ab5 branch mouse_led_on 
+
+mouse_device_bt1_led_on:
+5ab2 6848c8a3 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+5ab3 20205ab5 branch mouse_led_on 
+
+mouse_device_bt2_led_on:
+5ab4 6848c8a4 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+
+mouse_led_on:
+5ab5 20206ef1 branch gpio_out_active 
+
+mouse_led_off:
+5ab6 20206eed branch gpio_out_inactive 
+
+mouse_multi_led_off_judge:
+5ab7 7048a800 jam 0 ,mem_mouse_multi_led_blink_enable 
+5ab8 7048ab00 jam 0 ,mem_mouse_multi_led_blink_type 
+
+mouse_multi_led_off_judge_next:
+5ab9 6fe0c8ab fetch 1 ,mem_mouse_multi_led_blink_type 
+5aba c0025ad3 beq 4 ,mouse_multi_dpi_led_off_judge 
+
+mouse_device_multi_led_off:
+5abb 7048aa00 jam off ,mem_mouse_multi_led_state 
+
+mouse_device_led_off:
+5abc 44d5c015 bpatch patch15_3 ,mem_patch15 
+5abd 6fe0c678 fetch 1 ,mem_device_flag 
+5abe c0005ac2 beq mode_24g_device ,mouse_device_24g_led_off 
+5abf c000dac6 beq mode_bt_device1 ,mouse_device_bt1_led_off 
+5ac0 c0015aca beq mode_bt_device2 ,mouse_device_bt2_led_off 
+5ac1 20600000 rtn 
+
+mouse_device_24g_led_off:
+5ac2 6848c8a2 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+5ac3 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5ac4 c3105ab6 bbit0 mouse_enable_1io2led ,mouse_led_off 
+5ac5 20206f05 branch gpio_set_analog 
+
+mouse_device_bt1_led_off:
+5ac6 6848c8a3 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+5ac7 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5ac8 c3105ab6 bbit0 mouse_enable_1io2led ,mouse_led_off 
+5ac9 20206f05 branch gpio_set_analog 
+
+mouse_device_bt2_led_off:
+5aca 6848c8a4 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+5acb 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5acc c3105ab6 bbit0 mouse_enable_1io2led ,mouse_led_off 
+5acd 20206f05 branch gpio_set_analog 
+
+mouse_device_multi_led_all_off:
+5ace 20405ac2 call mouse_device_24g_led_off 
+5acf 20405ac6 call mouse_device_bt1_led_off 
+5ad0 20405aca call mouse_device_bt2_led_off 
+5ad1 20405a43 call mouse_low_voltage_led_off_judge 
+5ad2 20205ad3 branch mouse_multi_dpi_led_off_judge 
+
+mouse_multi_dpi_led_off_judge:
+5ad3 7048aa00 jam off ,mem_mouse_multi_led_state 
+5ad4 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5ad5 c292dabb bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_off 
+
+mouse_multi_dpi_led_off:
+5ad6 6848c8a6 fetcht 1 ,mem_mouse_dpi_gpio 
+5ad7 20205ab6 branch mouse_led_off 
+
+mouse_multi_dpi_led_on_judge:
+5ad8 7048aa01 jam on ,mem_mouse_multi_led_state 
+5ad9 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5ada c292daa9 bbit1 mouse_enable_dpi_for_led ,mouse_device_multi_led_on 
+
+mouse_multi_dpi_led_on:
+5adb 6848c8a6 fetcht 1 ,mem_mouse_dpi_gpio 
+5adc 20205ab5 branch mouse_led_on 
+
+mouse_low_voltage_led_no_enter_lpm:
+5add 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5ade c4020000 rtnbit0 mouse_low_voltage_flag 
+5adf 6fe0c64d fetch 1 ,mem_adc_low_volatage_led_timer_count 
+5ae0 6848c8b5 fetcht 1 ,mem_mouse_low_led_blink_half_timer 
+5ae1 1fe67c02 sub pdata ,temp ,null 
+5ae2 20215ae9 branch mouse_lpm_mode_clear ,positive 
+
+mouse_low_voltage_led_no_enter_lpm_next:
+5ae3 6fe0c678 fetch 1 ,mem_device_flag 
+5ae4 c0005ae6 beq mode_24g_device ,g24_transmit_by_interrupt_exit_check 
+5ae5 20206820 branch hid_device_enable_lpm 
+
+g24_transmit_by_interrupt_exit_check:
+5ae6 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5ae7 c38c0000 rtnbit1 mouse_enable_24g_250hz 
+5ae8 202036aa branch g24_transmit_by_interrupt_exit 
+
+mouse_lpm_mode_clear:
+5ae9 6fe0c678 fetch 1 ,mem_device_flag 
+5aea c00036bb beq mode_24g_device ,g24_transmit_by_interrupt_enable 
+5aeb 20206822 branch hid_device_disable_lpm 
+
+mouse_store_signal_rssi:
+5aec 6fe08009 fetch 1 ,mem_rssi 
+5aed 202035a3 branch rssi_signal 
+
+mouse_le_transmit:
+5aee 20405aec call mouse_store_signal_rssi 
+5aef 202036c8 branch power_ctrl_start 
+
+mouse_set_lpm_mult:
+5af0 6fe14500 fetch 2 ,mem_ui_state_map 
+5af1 c4048000 rtnbit0 ui_state_ble_connected 
+
+mouse_le_set_lpm_mult:
+5af2 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
+5af3 2fe00603 compare 3 ,pdata ,3 
+5af4 2420fdca nbranch disable_blank ,true 
+5af5 204037a0 call app_lpm_mult_enable 
+5af6 20207dcc branch enable_blank 
+
+mouse_24g_long_sleep:
+5af7 44d64015 bpatch patch15_4 ,mem_patch15 
+5af8 20403694 call g24_lpm_wait 
+5af9 24740000 nrtn user 
+5afa 70473b01 jam 1 ,mem_mouse_24g_long_sleep_flag 
+5afb 2040369e call g24_setgpio_lpm_before 
+5afc 7048f100 jam 0 ,mem_mouse_24g_sleep_miss 
+5afd 20405b7f call mouse_24g_send_time_long_wake 
+5afe 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
+5aff 245a4e42 ncall mouse_setgpio_hibernate ,blank 
+5b00 6fe445c6 fetch 8 ,mem_24g_enter_hibernate 
+5b01 202035fa branch g24_long_seep2 
+
+mouse_24g_short_sleep:
+5b02 6fe0c8fa fetch 1 ,mem_mouse_sleep_deal_type 
+5b03 203a35ee branch g24_short_sleep ,blank 
+5b04 20403694 call g24_lpm_wait 
+5b05 24740000 nrtn user 
+5b06 6fe0c8f1 fetch 1 ,mem_mouse_24g_sleep_miss 
+5b07 7048f100 jam 0 ,mem_mouse_24g_sleep_miss 
+5b08 1fe67c00 sub pdata ,0 ,null 
+5b09 2422db0f nbranch mouse_24g_short_sleep_last_miss ,zero 
+5b0a 68494639 fetcht 2 ,mem_24g_retransmit 
+5b0b 18467c00 sub temp ,0 ,null 
+5b0c 2022db22 branch mouse_24g_short_sleep_default ,zero 
+5b0d 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+5b0e 203a5b22 branch mouse_24g_short_sleep_default ,blank 
+
+mouse_24g_short_sleep_last_miss:
+5b0f 684a48f6 fetcht 4 ,mem_mouse_24g_sleep_miss_temp 
+5b10 284ffe1f isolate1 31 ,temp 
+5b11 2020db2e branch mouse_24g_sub_miss_temp ,true 
+5b12 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+5b13 9840fe00 iadd temp ,pdata 
+
+mouse_24g_short_sleep_notify:
+5b14 684a48cc fetcht 4 ,mem_mouse_24g_tsniff 
+5b15 98460400 isub temp ,temp 
+5b16 604a48f6 storet 4 ,mem_mouse_24g_sleep_miss_temp 
+5b17 24215b25 nbranch mouse_24g_short_sleep_long ,positive 
+5b18 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
+5b19 98467e00 isub temp ,pdata 
+5b1a 24215b2c nbranch mouse_24g_short_sleep_2 ,positive 
+5b1b d8400600 arg 0x600 ,temp 
+5b1c 98467c00 isub temp ,null 
+5b1d 24215b2c nbranch mouse_24g_short_sleep_2 ,positive 
+
+mouse_24g_short_sleep2:
+5b1e 7048f0fa jam 250 ,mem_mouse_24g_tx_time_offset 
+
+mouse_24g_short_sleep3:
+5b1f 20407d27 call clk2lpo 
+5b20 604a40a9 storet 4 ,mem_sleep_counter 
+5b21 20202406 branch lpm_sleep 
+
+mouse_24g_short_sleep_default:
+5b22 20405b29 call mouse_24g_miss_temp_clear 
+5b23 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
+5b24 20205b1e branch mouse_24g_short_sleep2 
+
+mouse_24g_short_sleep_long:
+5b25 18460400 sub temp ,0 ,temp 
+5b26 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
+5b27 9840fe00 iadd temp ,pdata 
+5b28 20205b1e branch mouse_24g_short_sleep2 
+
+mouse_24g_miss_temp_clear:
+5b29 58000000 setarg 0 
+5b2a 67e248f6 store 4 ,mem_mouse_24g_sleep_miss_temp 
+5b2b 20600000 rtn 
+
+mouse_24g_short_sleep_2:
+5b2c 7048f101 jam 1 ,mem_mouse_24g_sleep_miss 
+5b2d 20600000 rtn 
+
+mouse_24g_sub_miss_temp:
+5b2e dfffffff arg -1 ,pdata 
+5b2f 98465e00 isub temp ,regext 
+5b30 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+5b31 9de67e00 isub regext ,pdata 
+5b32 20205b14 branch mouse_24g_short_sleep_notify 
+
+mouse_24g_transmit_callback:
+5b33 20405b35 call mouse_24g_send_time_check 
+5b34 20205916 branch mouse_wakeup_24g 
+
+mouse_24g_send_time_check:
+5b35 6fe0c8fa fetch 1 ,mem_mouse_sleep_deal_type 
+5b36 207a0000 rtn blank 
+5b37 6fe0c62f fetch 1 ,mem_24g_transmit_by_interrupt 
+5b38 c000db7b beq g24_tx_timer_int_enable ,mouse_24g_send_timer_first 
+5b39 6fe0c8df fetch 1 ,mem_mouse_24g_tx_count 
+5b3a 203a5b7b branch mouse_24g_send_timer_first ,blank 
+5b3b 1b227e00 copy clkn ,pdata 
+5b3c 684b48e0 fetcht 6 ,mem_mouse_24g_tx_time_last 
+5b3d 67e348e0 store 6 ,mem_mouse_24g_tx_time_last 
+5b3e 20407d12 call clk_diff_rt 
+5b3f 67e248e6 store 4 ,mem_mouse_24g_tx_time_last_delt 
+5b40 6fe0c8f1 fetch 1 ,mem_mouse_24g_sleep_miss 
+5b41 247a0000 nrtn blank 
+5b42 6fe14639 fetch 2 ,mem_24g_retransmit 
+5b43 247a0000 nrtn blank 
+5b44 6fe248f6 fetch 4 ,mem_mouse_24g_sleep_miss_temp 
+5b45 247a0000 nrtn blank 
+5b46 6fe248e6 fetch 4 ,mem_mouse_24g_tx_time_last_delt 
+5b47 684a48cc fetcht 4 ,mem_mouse_24g_tsniff 
+5b48 18438400 lshift temp ,temp 
+5b49 98467c00 isub temp ,null 
+5b4a 20215b7f branch mouse_24g_send_time_long_wake ,positive 
+5b4b 684ac8ea fetcht 5 ,mem_mouse_24g_tx_time_sum 
+5b4c 9840fe00 iadd temp ,pdata 
+5b4d 67e2c8ea store 5 ,mem_mouse_24g_tx_time_sum 
+5b4e 6848c8df fetcht 1 ,mem_mouse_24g_tx_count 
+5b4f 6fe0c8ef fetch 1 ,mem_mouse_24g_tx_time_sum_count 
+5b50 98467c00 isub temp ,null 
+5b51 2022db55 branch mouse_24g_send_time_check_average ,zero 
+5b52 18408401 increase 1 ,temp 
+5b53 6048c8df storet 1 ,mem_mouse_24g_tx_count 
+5b54 20600000 rtn 
+
+mouse_24g_send_time_check_average:
+5b55 7048df01 jam 1 ,mem_mouse_24g_tx_count 
+5b56 d8400000 arg 0 ,temp 
+5b57 6fe2c8ea fetch 5 ,mem_mouse_24g_tx_time_sum 
+5b58 604ac8ea storet 5 ,mem_mouse_24g_tx_time_sum 
+5b59 6848c8ef fetcht 1 ,mem_mouse_24g_tx_time_sum_count 
+5b5a 9846fc00 idiv temp 
+5b5b 20407d64 call wait_div_end 
+5b5c 1807a200 quotient rega 
+5b5d 6fe248cc fetch 4 ,mem_mouse_24g_tsniff 
+5b5e 6848c8f0 fetcht 1 ,mem_mouse_24g_tx_time_offset 
+5b5f 98460400 isub temp ,temp 
+5b60 1a227e00 copy rega ,pdata 
+5b61 98467e00 isub temp ,pdata 
+5b62 20215b6f branch mouse_24g_send_time_check_average_late ,positive 
+5b63 1fe67e00 sub pdata ,0 ,pdata 
+5b64 1feb7e00 rshift2 pdata ,pdata 
+5b65 6849c61f fetcht 3 ,mem_24g_short_sleep_set 
+5b66 98408400 iadd temp ,temp 
+5b67 44d6c015 bpatch patch15_5 ,mem_patch15 
+5b68 6fe1c8dc fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+5b69 da201800 arg 0x1800 ,rega 
+5b6a 9a20fe00 iadd rega ,pdata 
+5b6b 98467c00 isub temp ,null 
+5b6c 24215b79 nbranch mouse_24g_send_time_check_average_min ,positive 
+
+mouse_24g_short_sleep_storet:
+5b6d 6049c61f storet 3 ,mem_24g_short_sleep_set 
+5b6e 20600000 rtn 
+
+mouse_24g_send_time_check_average_late:
+5b6f 1feb0400 rshift2 pdata ,temp 
+5b70 6fe1c61f fetch 3 ,mem_24g_short_sleep_set 
+5b71 98460400 isub temp ,temp 
+5b72 44d74015 bpatch patch15_6 ,mem_patch15 
+5b73 6fe1c8dc fetch 3 ,mem_mouse_24g_short_sleep_set_init 
+5b74 da201800 arg 0x1800 ,rega 
+5b75 9a267e00 isub rega ,pdata 
+5b76 98467c00 isub temp ,null 
+5b77 20215b79 branch mouse_24g_send_time_check_average_min ,positive 
+5b78 20205b6d branch mouse_24g_short_sleep_storet 
+
+mouse_24g_send_time_check_average_min:
+5b79 67e1c61f store 3 ,mem_24g_short_sleep_set 
+5b7a 20600000 rtn 
+
+mouse_24g_send_timer_first:
+5b7b 7048df01 jam 1 ,mem_mouse_24g_tx_count 
+5b7c 1b227e00 copy clkn ,pdata 
+5b7d 67e348e0 store 6 ,mem_mouse_24g_tx_time_last 
+5b7e 20600000 rtn 
+
+mouse_24g_send_time_long_wake:
+5b7f 58000000 setarg 0 
+5b80 67e0c8df store 1 ,mem_mouse_24g_tx_count 
+5b81 67e2c8ea store 5 ,mem_mouse_24g_tx_time_sum 
+5b82 20600000 rtn 
+
+mouse_usb_check_enable:
+5b83 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5b84 c4060000 rtnbit0 mouse_enable_usb 
+5b85 704676a5 jam usb_interface_remove ,mem_usb_vdd_status 
+5b86 20600000 rtn 
+
+mouse_usb_isr:
+5b87 20405b8b call mouse_usb_interface_check 
+5b88 6fe0c676 fetch 1 ,mem_usb_vdd_status 
+5b89 c1ad0000 rtnne usb_interface_insert 
+5b8a 202078f6 branch usb_isr 
+
+mouse_usb_interface_check:
+5b8b 44d7c015 bpatch patch15_7 ,mem_patch15 
+5b8c 6848884a fetcht 1 ,mem_usb_offline_check_gpio 
+5b8d 20406ee0 call gpio_get_bit 
+5b8e 2420dba4 nbranch mouse_usb_mode_disable ,true 
+
+mouse_usb_mode_enable:
+5b8f 6fe0c676 fetch 1 ,mem_usb_vdd_status 
+5b90 c12d0000 rtneq usb_interface_insert 
+5b91 7046765a jam usb_interface_insert ,mem_usb_vdd_status 
+5b92 58000000 setarg 0 
+5b93 67e145ef store 2 ,mem_24g_pair_timeout 
+5b94 67e145f5 store 2 ,mem_24g_reconn_timeout 
+5b95 70409400 jam 0 ,mem_lpm_mode 
+5b96 2040712c call select_system_clk_12m_dpll 
+5b97 20405936 call mouse_24g_stop 
+5b98 204053c3 call mouse_stop_bluetooth_mode 
+5b99 7855fc00 disable wake 
+5b9a 2040538d call mouse_init_sensor_reset 
+5b9b 58005bd7 setarg mouse_usb_config_param 
+5b9c 67e10837 store 2 ,mem_cb_usb_config 
+5b9d 6fe0ca95 fetch 1 ,mem_usb_tx_interval_retention 
+5b9e 67e08839 store 1 ,mem_usb_tx_interval 
+5b9f d8c04a96 arg mem_usb_vid_pid_retention ,contr 
+5ba0 d8a0083a arg mem_usb_vid_pid ,contw 
+5ba1 df200009 arg 9 ,loopcnt 
+5ba2 20407cdc call memcpy 
+5ba3 20207902 branch usb_init 
+
+mouse_usb_mode_disable:
+5ba4 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
+5ba5 c1528000 rtneq usb_interface_remove 
+5ba6 704676a5 jam usb_interface_remove ,mem_usb_vdd_status 
+5ba7 7008ec00 jam 0 ,mem_usb_device_enumeration_endflag 
+5ba8 7006e700 jam 0 ,mem_usb_status 
+5ba9 7008de00 jam 0 ,mem_usb_state 
+5baa 6ff10050 fetch 2 ,core_clkoff 
+5bab 79207e0a set1 clock_off_usb ,pdata 
+5bac 67f10050 store 2 ,core_clkoff 
+5bad 70409401 jam 1 ,mem_lpm_mode 
+5bae 2040712c call select_system_clk_12m_dpll 
+5baf 20205801 branch mouse_soft_reset 
+
+mouse_usb_mode:
+5bb0 6ff08c01 fetch 1 ,core_usb_addr 
+5bb1 67e0c675 store 1 ,mem_usb_addr 
+5bb2 c4038000 rtnbit0 7 
+5bb3 20405bc2 call mouse_usb_timer_check 
+5bb4 24740000 nrtn user 
+5bb5 20404f26 call mouse_motion 
+5bb6 24740000 nrtn user 
+5bb7 6ff08c25 fetch 1 ,core_usb_txbusy 
+5bb8 c3810000 rtnbit1 2 
+5bb9 20205bba branch mouse_push_data_to_usb 
+
+mouse_push_data_to_usb:
+5bba 6ff08c01 fetch 1 ,core_usb_addr 
+5bbb c4038000 rtnbit0 7 
+5bbc 44d84016 bpatch patch16_0 ,mem_patch16 
+5bbd 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5bbe c30a6856 bbit0 mouse_enable_keyboard ,hid_device_push_mouse_data_to_usb 
+5bbf 6fe0c72b fetch 1 ,mem_customer_key 
+5bc0 c000e85b beq 1 ,hid_device_push_keyboard_data_to_usb 
+5bc1 20206856 branch hid_device_push_mouse_data_to_usb 
+
+mouse_usb_timer_check:
+5bc2 20407dbe call disable_user 
+5bc3 684a474b fetcht 4 ,mem_btclk_sensor 
+5bc4 1c427e00 copy clkn_bt ,pdata 
+5bc5 98467c00 isub temp ,null 
+5bc6 24415bd1 ncall mouse_usb_timer_timeout ,positive 
+5bc7 1fe22400 copy pdata ,regb 
+5bc8 6fe2474b fetch 4 ,mem_btclk_sensor 
+5bc9 6848c674 fetcht 1 ,mem_wire_usb_interval 
+5bca 98408400 iadd temp ,temp 
+5bcb 1a427e00 copy regb ,pdata 
+5bcc 98467c00 isub temp ,null 
+5bcd 24610000 nrtn positive 
+5bce 793ffe1c set0 28 ,pdata 
+5bcf 67e2474b store 4 ,mem_btclk_sensor 
+5bd0 20207dbc branch enable_user 
+
+mouse_usb_timer_timeout:
+5bd1 20628000 rtn zero 
+5bd2 79207e1c set1 28 ,pdata 
+5bd3 20600000 rtn 
+
+mouse_usb_timer_init:
+5bd4 58000000 setarg 0 
+5bd5 67e2474b store 4 ,mem_btclk_sensor 
+5bd6 20600000 rtn 
+
+mouse_usb_config_param:
+5bd7 44d8c016 bpatch patch16_1 ,mem_patch16 
+5bd8 20405be1 call mouse_usb_config_kb_check 
+5bd9 20405bea call mouse_usb_report_rate_set 
+5bda 20405be6 call mouse_usb_config_param_setup 
+
+mouse_usb_device_name_config:
+5bdb 6fe0ca9f fetch 1 ,mem_usb_device_name_retention 
+5bdc 207a0000 rtn blank 
+5bdd d8c04a9f arg mem_usb_device_name_retention ,contr 
+5bde d8a007fb arg mem_string2 ,contw 
+5bdf df20001e arg 30 ,loopcnt 
+5be0 20207cdc branch memcpy 
+
+mouse_usb_config_kb_check:
+5be1 704677c0 jam dongle_kb_bind_otp_offect ,mem_usb_keyboard_flag 
+5be2 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5be3 c40a0000 rtnbit0 mouse_enable_keyboard 
+5be4 7046775a jam dongle_kb_bind_success ,mem_usb_keyboard_flag 
+5be5 20600000 rtn 
+
+mouse_usb_config_param_setup:
+5be6 20407956 call usb_tx_interval_config 
+5be7 20403d20 call dongle_usb_vid_pid_config 
+
+mouse_usb_hid_icon_config:
+5be8 6fe0c677 fetch 1 ,mem_usb_keyboard_flag 
+5be9 20203d2a branch dongle_usb_hid_icon_config + 1 
+
+mouse_usb_report_rate_set:
+5bea 20405bd4 call mouse_usb_timer_init 
+5beb 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+5bec c28edbf1 bbit1 mouse_enable_usb_250 ,mouse_usb_report_rate_set_250hz 
+5bed c28f5bf3 bbit1 mouse_enable_usb_500 ,mouse_usb_report_rate_set_500hz 
+5bee c28fdbf5 bbit1 mouse_enable_usb_1000 ,mouse_usb_report_rate_set_1000hz 
+
+mouse_usb_report_rate_set_125hz:
+5bef 70467420 jam 32 ,mem_wire_usb_interval 
+5bf0 20600000 rtn 
+
+mouse_usb_report_rate_set_250hz:
+5bf1 70467410 jam 16 ,mem_wire_usb_interval 
+5bf2 20600000 rtn 
+
+mouse_usb_report_rate_set_500hz:
+5bf3 70467408 jam 8 ,mem_wire_usb_interval 
+5bf4 20600000 rtn 
+
+mouse_usb_report_rate_set_1000hz:
+5bf5 70467404 jam 4 ,mem_wire_usb_interval 
+5bf6 20600000 rtn 
+
+rec_cb_function:
+5bf7 58005bfa setarg rec_process_idle 
+5bf8 67e143e4 store 2 ,mem_cb_idle_process 
+5bf9 20600000 rtn 
+
+rec_process_idle:
+5bfa 20405bfc call rec_ui_timer_check 
+5bfb 20600000 rtn 
+
+rec_ui_timer_check:
+5bfc 44d94016 bpatch patch16_2 ,mem_patch16 
+5bfd da200000 arg 0 ,rega 
+5bfe 684a49f2 fetcht 4 ,mem_rec_ui_timer_btclk 
+5bff 1c422400 copy clkn_bt ,regb 
+5c00 1a427e00 copy regb ,pdata 
+5c01 98467c00 isub temp ,null 
+5c02 244177f4 ncall ui_timer_timeout ,positive 
+
+rec_ui_timer_check_loop:
+5c03 1a427e00 copy regb ,pdata 
+5c04 18408408 increase 8 ,temp 
+5c05 98467c00 isub temp ,null 
+5c06 24215c0e nbranch rec_ui_timer_check_end ,positive 
+5c07 1a20a201 increase 1 ,rega 
+5c08 1a217e0f and rega ,0x0f ,pdata 
+5c09 243a5c03 nbranch rec_ui_timer_check_loop ,blank 
+5c0a da200000 arg 0 ,rega 
+5c0b 20405c13 call rec_ui_timer_check_send_evt 
+
+rec_ui_timer_init:
+5c0c 644249f2 storer clkn_bt ,4 ,mem_rec_ui_timer_btclk 
+5c0d 20600000 rtn 
+
+rec_ui_timer_check_end:
+5c0e 1a227e00 copy rega ,pdata 
+5c0f 207a0000 rtn blank 
+5c10 184085f8 increase -8 ,temp 
+5c11 793f841c set0 28 ,temp 
+5c12 604a49f2 storet 4 ,mem_rec_ui_timer_btclk 
+
+rec_ui_timer_check_send_evt:
+5c13 67e0c9f6 store 1 ,mem_rec_ui_timer_count 
+
+rec_evt_timer_loop:
+5c14 6fe0c9f6 fetch 1 ,mem_rec_ui_timer_count 
+5c15 207a0000 rtn blank 
+5c16 1fe0ffff increase -1 ,pdata 
+5c17 67e0c9f6 store 1 ,mem_rec_ui_timer_count 
+5c18 6fe149f7 fetch 2 ,mem_rec_cb_timer 
+5c19 20407d7b call callback_func 
+5c1a 20205c14 branch rec_evt_timer_loop 
+
+rec_tscan:
+5c1b 44d9c016 bpatch patch16_3 ,mem_patch16 
+5c1c 6fe0c9fb fetch 1 ,mem_rec_tscan_row_nums 
+5c1d 207a0000 rtn blank 
+5c1e 704a0000 jam 0 ,mem_rec_tscan_col_scanned 
+5c1f 704a1700 jam 0 ,mem_rec_tscan_sequence 
+5c20 20405d0a call rec_gpio_wakeup_disable 
+
+rec_tscan_gnd_process:
+5c21 20405ca3 call rec_tscan_get_gndkey_state 
+5c22 6fe0ca22 fetch 1 ,mem_rec_tscan_gndkey_need_send_flag 
+5c23 247a0000 nrtn blank 
+5c24 20405d1b call rec_tscan_gpio_set_before_lpm 
+5c25 204023e1 call lpm_write_gpio_wakeup 
+
+rec_tscan_process:
+5c26 44da4016 bpatch patch16_4 ,mem_patch16 
+5c27 20405c2c call rec_tscan_col_state_init 
+5c28 20405c32 call rec_tscan_row_state_init 
+5c29 20405c3f call rec_tscan_get_row_state 
+5c2a 20405c77 call rec_tscan_pull_up_current_col_gpio 
+5c2b 20205c7a branch rec_tscan_col_state_next_gpio_check 
+
+rec_tscan_col_state_init:
+5c2c da204a0d arg mem_rec_tscan_col_gpio ,rega 
+5c2d 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
+5c2e 9a20a200 iadd rega ,rega 
+5c2f 622149fd storer rega ,2 ,mem_rec_tscan_col_gpio_ptr 
+5c30 e8408011 ifetcht 1 ,rega 
+5c31 20206ef1 branch gpio_config_output 
+
+rec_tscan_row_state_init:
+5c32 6fe0c9fb fetch 1 ,mem_rec_tscan_row_nums 
+5c33 207a0000 rtn blank 
+5c34 6848ca00 fetcht 1 ,mem_rec_tscan_col_scanned 
+5c35 98467e00 isub temp ,pdata 
+5c36 98007200 iforce loopcnt 
+5c37 da204a03 arg mem_rec_tscan_row_gpio ,rega 
+5c38 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
+5c39 9a20a200 iadd rega ,rega 
+
+rec_tscan_row_gpio_config_input_pull_up:
+5c3a efe08011 ifetch 1 ,rega 
+5c3b 20405cf3 call rec_gpio_weak_pullup 
+5c3c 1a20a201 increase 1 ,rega 
+5c3d c2005c3a loop rec_tscan_row_gpio_config_input_pull_up 
+5c3e 20600000 rtn 
+
+rec_tscan_get_row_state:
+5c3f 7049ff00 jam 0 ,mem_rec_tscan_row_scanned 
+5c40 6fe0c9fb fetch 1 ,mem_rec_tscan_row_nums 
+5c41 6848ca00 fetcht 1 ,mem_rec_tscan_col_scanned 
+5c42 98467e00 isub temp ,pdata 
+5c43 67e0ca19 store 1 ,mem_rec_tscan_row_scan_loop_count 
+5c44 da204a03 arg mem_rec_tscan_row_gpio ,rega 
+5c45 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
+5c46 9a20a200 iadd rega ,rega 
+
+rec_tscan_get_row_state_loop:
+5c47 e8408011 ifetcht 1 ,rega 
+5c48 6048ca6d storet 1 ,mem_rec_gpio_bit_check 
+5c49 20405ce4 call rec_tscan_debounce 
+5c4a 24740000 nrtn user 
+5c4b 2040dc5c call rec_tscan_record_key_coord ,true 
+5c4c 1a20a201 increase 1 ,rega 
+5c4d 6fe0c9ff fetch 1 ,mem_rec_tscan_row_scanned 
+5c4e 1fe0fe01 increase 1 ,pdata 
+5c4f 67e0c9ff store 1 ,mem_rec_tscan_row_scanned 
+5c50 6848ca17 fetcht 1 ,mem_rec_tscan_sequence 
+5c51 18408401 increase 1 ,temp 
+5c52 6048ca17 storet 1 ,mem_rec_tscan_sequence 
+5c53 6848ca19 fetcht 1 ,mem_rec_tscan_row_scan_loop_count 
+5c54 98467c00 isub temp ,null 
+5c55 24215c47 nbranch rec_tscan_get_row_state_loop ,positive 
+5c56 6fe14a01 fetch 2 ,mem_rec_tscan_record_row 
+5c57 207a0000 rtn blank 
+5c58 67e14a67 store 2 ,mem_rec_tscan_record_now 
+5c59 58000000 setarg 0 
+5c5a 67e14a01 store 2 ,mem_rec_tscan_record_row 
+5c5b 20600000 rtn 
+
+rec_tscan_record_key_coord:
+5c5c 62214a65 storer rega ,2 ,mem_rec_tscan_current_gpio_ptr 
+5c5d 6fe0c9ff fetch 1 ,mem_rec_tscan_row_scanned 
+5c5e 1fe20e00 copy pdata ,queue 
+5c5f 6848ca01 fetcht 1 ,mem_rec_tscan_record_row 
+5c60 f9200400 qset1 temp 
+5c61 6048ca01 storet 1 ,mem_rec_tscan_record_row 
+5c62 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
+5c63 1fe20e00 copy pdata ,queue 
+5c64 6848ca02 fetcht 1 ,mem_rec_tscan_record_col 
+5c65 f9200400 qset1 temp 
+5c66 6048ca02 storet 1 ,mem_rec_tscan_record_col 
+5c67 20405c6a call rec_tscan_combin_key_num_output 
+5c68 6a214a65 fetchr rega ,2 ,mem_rec_tscan_current_gpio_ptr 
+5c69 20600000 rtn 
+
+rec_tscan_combin_key_num_output:
+5c6a 68494a01 fetcht 2 ,mem_rec_tscan_record_row 
+5c6b da204a23 arg mem_rec_tscan_key_nums_list ,rega 
+
+rec_tscan_combin_key_num_loop:
+5c6c efe10011 ifetch 2 ,rega 
+5c6d 207a0000 rtn blank 
+5c6e 98467c00 isub temp ,null 
+5c6f 2042dc72 call rec_tscan_output_combin_key_num ,zero 
+5c70 1a20a202 increase 2 ,rega 
+5c71 20205c6c branch rec_tscan_combin_key_num_loop 
+
+rec_tscan_output_combin_key_num:
+5c72 68e0ca17 fetchr queue ,1 ,mem_rec_tscan_sequence 
+5c73 6fe44a55 fetch 8 ,mem_rec_tscan_key_num_bit 
+5c74 f9207e00 qset1 pdata 
+5c75 67e44a55 store 8 ,mem_rec_tscan_key_num_bit 
+5c76 20600000 rtn 
+
+rec_tscan_pull_up_current_col_gpio:
+5c77 6fe149fd fetch 2 ,mem_rec_tscan_col_gpio_ptr 
+5c78 efe0803f ifetch 1 ,pdata 
+5c79 20205cf3 branch rec_gpio_weak_pullup 
+
+rec_tscan_col_state_next_gpio_check:
+5c7a 6fe0ca00 fetch 1 ,mem_rec_tscan_col_scanned 
+5c7b 1fe0fe01 increase 1 ,pdata 
+5c7c 67e0ca00 store 1 ,mem_rec_tscan_col_scanned 
+5c7d 6848c9fc fetcht 1 ,mem_rec_tscan_col_nums 
+5c7e 98467c00 isub temp ,null 
+5c7f 24215c26 nbranch rec_tscan_process ,positive 
+5c80 6fe14a67 fetch 2 ,mem_rec_tscan_record_now 
+5c81 203a5c8e branch rec_tscan_key_up ,blank 
+
+rec_tscan_key_down:
+5c82 67e14a1c store 2 ,mem_rec_tscan_record_temp 
+5c83 6fe0ca1e fetch 1 ,mem_rec_tscan_key_need_send_flag 
+5c84 243a5ca0 nbranch rec_tscan_key_value_clear ,blank 
+5c85 6fe0ca1b fetch 1 ,mem_rec_tscan_key_state 
+5c86 c1008000 rtneq key_down 
+5c87 704a1b01 jam key_down ,mem_rec_tscan_key_state 
+5c88 704a1e01 jam 1 ,mem_rec_tscan_key_need_send_flag 
+5c89 44dac016 bpatch patch16_5 ,mem_patch16 
+5c8a 20405c9c call rec_tscan_key_num_output 
+5c8b 6fe14500 fetch 2 ,mem_ui_state_map 
+5c8c c3858000 rtnbit1 ui_state_ble_adv 
+5c8d 20205db7 branch rec_led_start_on 
+
+rec_tscan_key_up:
+5c8e 6fe0ca1b fetch 1 ,mem_rec_tscan_key_state 
+5c8f c1000000 rtneq key_up 
+5c90 704a1b00 jam key_up ,mem_rec_tscan_key_state 
+5c91 6fe14500 fetch 2 ,mem_ui_state_map 
+5c92 c285dc96 bbit1 ui_state_ble_adv ,rec_tscan_key_up_send 
+5c93 6fe08da0 fetch 1 ,mem_rec_nec_learn_state 
+5c94 243a5c96 nbranch rec_tscan_key_up_send ,blank 
+5c95 20405db9 call rec_led_start_off 
+
+rec_tscan_key_up_send:
+5c96 58000000 setarg 0 
+5c97 67e44a55 store 8 ,mem_rec_tscan_key_num_bit 
+5c98 67e0ca1e store 1 ,mem_rec_tscan_key_need_send_flag 
+
+rec_tscan_key_up_config:
+5c99 704a1f00 jam 0 ,mem_rec_tscan_current_key_num 
+5c9a da604bef arg mem_rec_key_release_le ,regc 
+5c9b 2020618e branch push_buffer_in_queue 
+
+rec_tscan_key_num_output:
+5c9c 20405d4c call rec_tscan_key_num_check 
+
+rec_tscan_record_init:
+5c9d 58000000 setarg 0 
+5c9e 67e14a1c store 2 ,mem_rec_tscan_record_temp 
+5c9f 20600000 rtn 
+
+rec_tscan_key_value_clear:
+5ca0 58000000 setarg 0 
+5ca1 67e14a67 store 2 ,mem_rec_tscan_record_now 
+5ca2 20600000 rtn 
+
+rec_tscan_get_gndkey_state:
+5ca3 da200000 arg 0 ,rega 
+5ca4 da400000 arg 0 ,regb 
+5ca5 18007000 force 0 ,regext_index 
+5ca6 6fe0ca18 fetch 1 ,mem_rec_tscan_gpio_nums 
+5ca7 98007200 iforce loopcnt 
+5ca8 da604a0d arg mem_rec_tscan_col_gpio ,regc 
+
+rec_tscan_get_gndkey_loop:
+5ca9 20405d0b call rec_save_regc 
+5caa 20405d10 call rec_save_rega 
+5cab efe08013 ifetch 1 ,regc 
+5cac 20405cf3 call rec_gpio_weak_pullup 
+5cad 20405d12 call rec_rescue_rega 
+5cae 20405d0d call rec_rescue_regc 
+5caf e8408013 ifetcht 1 ,regc 
+5cb0 6048ca6d storet 1 ,mem_rec_gpio_bit_check 
+5cb1 20405ce4 call rec_tscan_debounce 
+5cb2 24740000 nrtn user 
+5cb3 1a420e00 copy regb ,queue 
+5cb4 2040dcdc call rec_tscan_store_gndkey_press_state ,true 
+5cb5 2440dcde ncall rec_tscan_store_gndkey_release_state ,true 
+5cb6 1a60a601 increase 1 ,regc 
+5cb7 1a40a401 increase 1 ,regb 
+5cb8 c2005ca9 loop rec_tscan_get_gndkey_loop 
+5cb9 1a227e00 copy rega ,pdata 
+5cba 203a5cc5 branch rec_tscan_gndkey_up ,blank 
+
+rec_tscan_gndkey_down:
+5cbb 67e0ca21 store 1 ,mem_rec_tscan_gndkey_record_temp 
+5cbc 6fe0ca1a fetch 1 ,mem_rec_tscan_gndkey_state 
+5cbd c1008000 rtneq key_down 
+5cbe 704a1a01 jam key_down ,mem_rec_tscan_gndkey_state 
+5cbf 704a2201 jam 1 ,mem_rec_tscan_gndkey_need_send_flag 
+5cc0 44db4016 bpatch patch16_6 ,mem_patch16 
+5cc1 20405ccf call rec_tscan_gndkey_num_output 
+5cc2 6fe14500 fetch 2 ,mem_ui_state_map 
+5cc3 c3858000 rtnbit1 ui_state_ble_adv 
+5cc4 20205db7 branch rec_led_start_on 
+
+rec_tscan_gndkey_up:
+5cc5 6fe0ca1a fetch 1 ,mem_rec_tscan_gndkey_state 
+5cc6 c1000000 rtneq key_up 
+5cc7 704a1a00 jam key_up ,mem_rec_tscan_gndkey_state 
+5cc8 6fe14500 fetch 2 ,mem_ui_state_map 
+5cc9 c285dccd bbit1 ui_state_ble_adv ,rec_tscan_gndkey_up_send 
+5cca 6fe08da0 fetch 1 ,mem_rec_nec_learn_state 
+5ccb 243a5ccd nbranch rec_tscan_gndkey_up_send ,blank 
+5ccc 20405db9 call rec_led_start_off 
+
+rec_tscan_gndkey_up_send:
+5ccd 704a2200 jam 0 ,mem_rec_tscan_gndkey_need_send_flag 
+5cce 20205c99 branch rec_tscan_key_up_config 
+
+rec_tscan_gndkey_num_output:
+5ccf 20405cd2 call rec_tscan_gndkey_num_check 
+
+rec_tscan_gndkey_record_param_init:
+5cd0 704a2100 jam 0 ,mem_rec_tscan_gndkey_record_temp 
+5cd1 20600000 rtn 
+
+rec_tscan_gndkey_num_check:
+5cd2 6848ca21 fetcht 1 ,mem_rec_tscan_gndkey_record_temp 
+5cd3 da204a4b arg mem_rec_tscan_gndkey_nums_list ,rega 
+5cd4 da400000 arg 0 ,regb 
+
+rec_tscan_gndkey_num_loop:
+5cd5 efe08011 ifetch 1 ,rega 
+5cd6 207a0000 rtn blank 
+5cd7 98467c00 isub temp ,null 
+5cd8 2022dd3f branch rec_tscan_output_gndkey_num ,zero 
+5cd9 1a20a201 increase 1 ,rega 
+5cda 1a40a401 increase 1 ,regb 
+5cdb 20205cd5 branch rec_tscan_gndkey_num_loop 
+
+rec_tscan_store_gndkey_press_state:
+5cdc f9202200 qset1 rega 
+5cdd 20600000 rtn 
+
+rec_tscan_store_gndkey_release_state:
+5cde f93fa200 qset0 rega 
+5cdf 20600000 rtn 
+
+rec_gpio_bit_first_set:
+5ce0 704a6b01 jam 1 ,mem_rec_gpio_bit_first 
+5ce1 20600000 rtn 
+
+rec_gpio_bit_second_set:
+5ce2 704a6c01 jam 1 ,mem_rec_gpio_bit_second 
+5ce3 20600000 rtn 
+
+rec_tscan_debounce:
+5ce4 20407dbe call disable_user 
+5ce5 704a6b00 jam 0 ,mem_rec_gpio_bit_first 
+5ce6 704a6c00 jam 0 ,mem_rec_gpio_bit_second 
+5ce7 6848ca6d fetcht 1 ,mem_rec_gpio_bit_check 
+5ce8 20406ee0 call gpio_get_bit 
+5ce9 2040dce0 call rec_gpio_bit_first_set ,true 
+5cea 200004b0 nop 1200 
+5ceb 6848ca6d fetcht 1 ,mem_rec_gpio_bit_check 
+5cec 20406ee0 call gpio_get_bit 
+5ced 2040dce2 call rec_gpio_bit_second_set ,true 
+5cee 6fe0ca6b fetch 1 ,mem_rec_gpio_bit_first 
+5cef 6848ca6c fetcht 1 ,mem_rec_gpio_bit_second 
+5cf0 98467c00 isub temp ,null 
+5cf1 24628000 nrtn zero 
+5cf2 20207dbc branch enable_user 
+
+rec_gpio_weak_pullup:
+5cf3 67e0ca6e store 1 ,mem_rec_gpio_for_wake_pullup 
+5cf4 20405d07 call rec_gpio_set_input 
+5cf5 6fe0ca6e fetch 1 ,mem_rec_gpio_for_wake_pullup 
+
+rec_gpio_set_lpm_weak_pullup:
+5cf6 da600001 arg 0x01 ,regc 
+5cf7 1fe6fc02 div pdata ,2 
+5cf8 20407d64 call wait_div_end 
+5cf9 18078400 quotient temp 
+5cfa 18077e00 remainder pdata 
+5cfb 245a5d05 ncall rec_gpio_set_0x10_regc ,blank 
+5cfc 18427e00 copy temp ,pdata 
+5cfd d8a0814d arg core_gpio_wakeup_cfg ,contw 
+5cfe 37d98200 until null ,lpo_edge 
+5cff 37d98200 until null ,lpo_edge 
+5d00 98a08a00 iadd contw ,contw 
+5d01 efe08005 ifetch 1 ,contw 
+5d02 9a61fe00 ior regc ,pdata 
+5d03 e7e08005 istore 1 ,contw 
+5d04 202023c4 branch lpm_write_wait 
+
+rec_gpio_set_0x10_regc:
+5d05 da600010 arg 0x10 ,regc 
+5d06 20600000 rtn 
+
+rec_gpio_set_input:
+5d07 1fe1fe80 or pdata ,0x80 ,pdata 
+5d08 d8400000 arg gpcfg_input ,temp 
+5d09 20206f1c branch gpio_config_function 
+
+rec_gpio_wakeup_disable:
+5d0a 20206f4e branch lpm_config_puchk_disable 
+
+rec_save_regc:
+5d0b 1a627e00 copy regc ,pdata 
+5d0c 20205d15 branch rec_save_reg 
+
+rec_rescue_regc:
+5d0d 20405d18 call rec_rescue_reg 
+5d0e 1fe22600 copy pdata ,regc 
+5d0f 20600000 rtn 
+
+rec_save_rega:
+5d10 1a227e00 copy rega ,pdata 
+5d11 20205d15 branch rec_save_reg 
+
+rec_rescue_rega:
+5d12 20405d18 call rec_rescue_reg 
+5d13 1fe22200 copy pdata ,rega 
+5d14 20600000 rtn 
+
+rec_save_reg:
+5d15 1f00f001 increase 1 ,regext_index 
+5d16 1fe25e00 copy pdata ,regext 
+5d17 20600000 rtn 
+
+rec_rescue_reg:
+5d18 1de27e00 copy regext ,pdata 
+5d19 1f00f1ff increase -1 ,regext_index 
+5d1a 20600000 rtn 
+
+rec_tscan_gpio_set_before_lpm:
+5d1b 20405d21 call rec_tscan_gpio_config_high_impedance 
+5d1c 20405d24 call rec_tscan_gpio_config_tri_angle_wakeup 
+5d1d 20405d0a call rec_gpio_wakeup_disable 
+
+rec_gpio_wakeup_enable:
+5d1e 580000f0 setarg 0xf0 
+5d1f 67f08141 store 1 ,core_puwakeup 
+5d20 202023c4 branch lpm_write_wait 
+
+rec_tscan_gpio_config_high_impedance:
+5d21 6fe0ca18 fetch 1 ,mem_rec_tscan_gpio_nums 
+5d22 da204a0d arg mem_rec_tscan_col_gpio ,rega 
+5d23 20205d28 branch rec_gpio_config_high_impedance 
+
+rec_tscan_gpio_config_tri_angle_wakeup:
+5d24 6a40ca20 fetchr regb ,1 ,mem_rec_gpio_wakeup_source 
+5d25 6fe0ca18 fetch 1 ,mem_rec_tscan_gpio_nums 
+5d26 da204a0d arg mem_rec_tscan_col_gpio ,rega 
+5d27 20205d2e branch rec_gpio_wakeup_config 
+
+rec_gpio_config_high_impedance:
+5d28 1fe27200 copy pdata ,loopcnt 
+
+rec_high_impedance_loop:
+5d29 e8408011 ifetcht 1 ,rega 
+5d2a 20406f0b call gpio_set_high_impedance 
+5d2b 1a20a201 increase 1 ,rega 
+5d2c c2005d29 loop rec_high_impedance_loop 
+5d2d 20600000 rtn 
+
+rec_gpio_wakeup_config:
+5d2e 1fe27200 copy pdata ,loopcnt 
+
+rec_gpio_wakeup_config_loop:
+5d2f e8408011 ifetcht 1 ,rega 
+5d30 18437e00 rshift temp ,pdata 
+5d31 d8a00016 arg mem_gpio_wakeup_cfg ,contw 
+5d32 98a08a00 iadd contw ,contw 
+5d33 20405d3a call rec_gpio_wakeup_addr_search 
+5d34 e8408005 ifetcht 1 ,contw 
+5d35 9841fe00 ior temp ,pdata 
+5d36 e7e08005 istore 1 ,contw 
+5d37 1a20a201 increase 1 ,rega 
+5d38 c2005d2f loop rec_gpio_wakeup_config_loop 
+5d39 20600000 rtn 
+
+rec_gpio_wakeup_addr_search:
+5d3a 1a427e00 copy regb ,pdata 
+5d3b 284c0000 isolate0 0 ,temp 
+5d3c 20608000 rtn true 
+5d3d 1ff27e00 lshift4 pdata ,pdata 
+5d3e 20600000 rtn 
+
+rec_tscan_output_gndkey_num:
+5d3f 44dbc016 bpatch patch16_7 ,mem_patch16 
+5d40 1a427e00 copy regb ,pdata 
+5d41 6848cc07 fetcht 1 ,mem_rec_gnd_key_offset 
+5d42 9840fe00 iadd temp ,pdata 
+
+rec_tscan_output_key_map:
+5d43 da604bf2 arg mem_rec_key_map ,regc 
+5d44 9a60a600 iadd regc ,regc 
+5d45 efe08013 ifetch 1 ,regc 
+5d46 67e0ca1f store 1 ,mem_rec_tscan_current_key_num 
+5d47 1fe0ffff increase -1 ,pdata 
+5d48 1feffe03 mul32 pdata ,max_queue_unit ,pdata 
+5d49 da604bb0 arg mem_rec_key_press_le ,regc 
+5d4a 9a60a600 iadd regc ,regc 
+5d4b 20205d59 branch rec_push_buffer_in_queue 
+
+rec_tscan_key_num_check:
+5d4c 68494a1c fetcht 2 ,mem_rec_tscan_record_temp 
+5d4d da204a23 arg mem_rec_tscan_key_nums_list ,rega 
+5d4e da400000 arg 0 ,regb 
+
+rec_tscan_key_num_loop:
+5d4f efe10011 ifetch 2 ,rega 
+5d50 207a0000 rtn blank 
+5d51 98467c00 isub temp ,null 
+5d52 2022dd56 branch rec_tscan_output_key_num ,zero 
+5d53 1a20a202 increase 2 ,rega 
+5d54 1a40a401 increase 1 ,regb 
+5d55 20205d4f branch rec_tscan_key_num_loop 
+
+rec_tscan_output_key_num:
+5d56 44dc4017 bpatch patch17_0 ,mem_patch17 
+5d57 1a427e00 copy regb ,pdata 
+5d58 20205d43 branch rec_tscan_output_key_map 
+
+rec_push_buffer_in_queue:
+5d59 44dcc017 bpatch patch17_1 ,mem_patch17 
+5d5a 6fe0cc0b fetch 1 ,mem_rec_le_connect_state 
+5d5b 243a5d5e nbranch rec_puch_buffer_in_queue_check ,blank 
+
+rec_push_buffer_in_queue_end:
+5d5c 20405d61 call rec_key_type_select 
+5d5d 2020618e branch push_buffer_in_queue 
+
+rec_puch_buffer_in_queue_check:
+5d5e 6fe0cc09 fetch 1 ,mem_rec_le_enable_notify 
+5d5f 207a0000 rtn blank 
+5d60 20205d5c branch rec_push_buffer_in_queue_end 
+
+rec_key_type_select:
+5d61 efe08013 ifetch 1 ,regc 
+5d62 1a60a601 increase 1 ,regc 
+5d63 c0005d68 beq keypad_type_consumer ,rec_set_key_type_consumer 
+5d64 c000dd6a beq keypad_type_mouse ,rec_set_key_type_mouse 
+5d65 c0015d6c beq keypad_type_keypad ,rec_set_key_type_keypad 
+5d66 c001dd6e beq keypad_type_nec ,rec_set_key_type_nec 
+5d67 20600000 rtn 
+
+rec_set_key_type_consumer:
+5d68 704a6f00 jam keypad_type_consumer ,mem_rec_keypad_type 
+5d69 20600000 rtn 
+
+rec_set_key_type_mouse:
+5d6a 704a6f01 jam keypad_type_mouse ,mem_rec_keypad_type 
+5d6b 20600000 rtn 
+
+rec_set_key_type_keypad:
+5d6c 704a6f02 jam keypad_type_keypad ,mem_rec_keypad_type 
+5d6d 20600000 rtn 
+
+rec_set_key_type_nec:
+5d6e 704a6f03 jam keypad_type_nec ,mem_rec_keypad_type 
+5d6f 20600000 rtn 
+
+rec_tscan_key_send:
+5d70 44dd4017 bpatch patch17_2 ,mem_patch17 
+5d71 204061a2 call queue_pop_one_byte 
+5d72 24740000 nrtn user 
+5d73 67e0cc08 store 1 ,mem_rec_keypad_fun 
+5d74 6fe0ca1f fetch 1 ,mem_rec_tscan_current_key_num 
+5d75 205a5e05 call rec_nec_disable ,blank 
+
+rec_tscan_send_keypad:
+5d76 6fe14500 fetch 2 ,mem_ui_state_map 
+5d77 c304dd7e bbit0 ui_state_ble_connected ,rec_send_nec_keypad 
+5d78 6fe0ca6f fetch 1 ,mem_rec_keypad_type 
+5d79 c0005d88 beq keypad_type_consumer ,rec_le_send_consumer 
+5d7a c000dd9c beq keypad_type_mouse ,rec_le_send_mouse 
+5d7b c0015da9 beq keypad_type_keypad ,rec_le_send_keyboard 
+5d7c c001dd7e beq keypad_type_nec ,rec_send_nec_keypad 
+5d7d 20600000 rtn 
+
+rec_send_nec_keypad:
+5d7e 6fe0ca1f fetch 1 ,mem_rec_tscan_current_key_num 
+5d7f c0005e05 beq 0x00 ,rec_nec_disable 
+5d80 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
+5d81 1fe0ffff pincrease -1 
+5d82 1feffe03 mul32 pdata ,3 ,pdata 
+5d83 d8404b80 arg mem_rec_key_nec_value_list ,temp 
+5d84 98408c00 iadd temp ,contr 
+5d85 efe10006 ifetch 2 ,contr 
+5d86 e8408006 ifetcht 1 ,contr 
+5d87 20205e01 branch rec_nec_6122_start 
+
+rec_le_send_consumer:
+5d88 20402a06 call le_fifo_check_nearly_full 
+5d89 247a0000 nrtn blank 
+5d8a 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
+5d8b 1fe0ffff pincrease -1 
+5d8c 1feffe03 mul32 pdata ,3 ,pdata 
+5d8d d8404b10 arg mem_rec_key_consumer_value_list ,temp 
+5d8e 98408c00 iadd temp ,contr 
+5d8f df200003 arg 3 ,loopcnt 
+5d90 d8a0064e arg mem_pdatatemp ,contw 
+5d91 20407cdc call memcpy 
+5d92 704c0a03 jam 3 ,mem_rec_le_data_len 
+5d93 68494c0e fetcht 2 ,mem_rec_report_id2_handle 
+
+rec_le_send_data:
+5d94 6fe0cc09 fetch 1 ,mem_rec_le_enable_notify 
+5d95 207a0000 rtn blank 
+5d96 6a20cc0a fetchr rega ,1 ,mem_rec_le_data_len 
+5d97 20402dcc call le_att_malloc_tx_notify 
+5d98 6848cc0a fetcht 1 ,mem_rec_le_data_len 
+5d99 18427200 copy temp ,loopcnt 
+5d9a d8c0064e arg mem_pdatatemp ,contr 
+5d9b 20207cdc branch memcpy 
+
+rec_le_send_mouse:
+5d9c 20402a06 call le_fifo_check_nearly_full 
+5d9d 247a0000 nrtn blank 
+5d9e 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
+5d9f 1fe0ffff pincrease -1 
+5da0 1feffe04 mul32 pdata ,4 ,pdata 
+5da1 d8404b40 arg mem_rec_key_mouse_value_list ,temp 
+5da2 98408c00 iadd temp ,contr 
+5da3 df200004 arg 4 ,loopcnt 
+5da4 d8a0064e arg mem_pdatatemp ,contw 
+5da5 20407cdc call memcpy 
+5da6 704c0a04 jam 4 ,mem_rec_le_data_len 
+5da7 68494c12 fetcht 2 ,mem_rec_report_id4_handle 
+5da8 20205d94 branch rec_le_send_data 
+
+rec_le_send_keyboard:
+5da9 20402a06 call le_fifo_check_nearly_full 
+5daa 247a0000 nrtn blank 
+5dab 6fe0cc08 fetch 1 ,mem_rec_keypad_fun 
+5dac 1fe0ffff pincrease -1 
+5dad 1feffe0a mul32 pdata ,10 ,pdata 
+5dae d8404a70 arg mem_rec_key_keyboard_value_list ,temp 
+5daf 98408c00 iadd temp ,contr 
+5db0 efe10006 ifetch 2 ,contr 
+
+rec_le_fill_standard_key_data:
+5db1 df200008 arg 8 ,loopcnt 
+5db2 d8a0064e arg mem_pdatatemp ,contw 
+5db3 20407cdc call memcpy 
+5db4 704c0a08 jam 8 ,mem_rec_le_data_len 
+5db5 68494c0c fetcht 2 ,mem_rec_report_id1_handle 
+5db6 20205d94 branch rec_le_send_data 
+
+rec_led_start_on:
+5db7 da200000 arg 0 ,rega 
+5db8 202077a8 branch ui_led_on_global 
+
+rec_led_start_off:
+5db9 da200000 arg 0 ,rega 
+5dba 202077ad branch ui_led_off_global 
+
+rec_nec_send_userdata_6122:
+5dbb 67e10d96 store 2 ,mem_rec_nec_usercode 
+5dbc 60488d98 storet 1 ,mem_rec_nec_datacode 
+5dbd 18007000 force 0 ,regext_index 
+5dbe 20405dcd call rec_nec_init_6122 
+5dbf 20405dd9 call rec_nec_send_boot_6122 
+5dc0 6fe08d96 fetch 1 ,mem_rec_nec_usercode 
+5dc1 20405de5 call rec_nec_send_byte_6122 
+5dc2 6fe08d97 fetch 1 ,mem_rec_nec_usercode + 1 
+5dc3 20405de5 call rec_nec_send_byte_6122 
+5dc4 6fe08d98 fetch 1 ,mem_rec_nec_datacode 
+5dc5 20405de5 call rec_nec_send_byte_6122 
+5dc6 6fe08d98 fetch 1 ,mem_rec_nec_datacode 
+5dc7 1fe47e00 invert pdata ,pdata 
+5dc8 20405de5 call rec_nec_send_byte_6122 
+5dc9 5800023a setarg 570 
+5dca 20405dde call rec_nec_carrier 
+5dcb 58000001 setarg 1 
+5dcc 20205ddc branch rec_nec_empty 
+
+rec_nec_init_6122:
+5dcd 58000000 setarg 0 
+5dce 204070bc call pwm_init + 3 
+5dcf 20407103 call pwm_disable 
+5dd0 20405dd3 call rec_pwm_duty_cycle_set 
+5dd1 6fe0ce33 fetch 1 ,mem_rec_nec_send_gpio 
+5dd2 20207100 branch pwm_enable 
+
+rec_pwm_duty_cycle_set:
+5dd3 da20009d arg 157 ,rega 
+5dd4 da40009d arg 157 ,regb 
+5dd5 dfe00000 arg 0 ,pdata 
+5dd6 204070de call pwm_duty_cycle_set 
+5dd7 70809a00 jam 0 ,core_pwm_en 
+5dd8 20600000 rtn 
+
+rec_nec_send_boot_6122:
+5dd9 58002328 setarg 9000 
+5dda 20405dde call rec_nec_carrier 
+5ddb 58001194 setarg 4500 
+
+rec_nec_empty:
+5ddc 70809a00 jam 0 ,core_pwm_en 
+5ddd 20205de0 branch rec_nec_delay_us 
+
+rec_nec_carrier:
+5dde 70809a01 jam 1 ,core_pwm_en 
+5ddf 20205de0 branch rec_nec_delay_us 
+
+rec_nec_delay_us:
+5de0 207a0000 rtn blank 
+
+rec_nec_delay_us_loop:
+5de1 1fe0ffff increase -1 ,pdata 
+5de2 20000008 nop 8 
+5de3 243a5de1 nbranch rec_nec_delay_us_loop ,blank 
+5de4 20600000 rtn 
+
+rec_nec_send_byte_6122:
+5de5 df200008 arg 8 ,loopcnt 
+
+rec_nec_send_byte_loop_6122:
+5de6 20405d15 call rec_save_reg 
+5de7 20405dec call rec_nec_send_bit_6122 
+5de8 20405d18 call rec_rescue_reg 
+5de9 1fe37e00 rshift pdata ,pdata 
+5dea c2005de6 loop rec_nec_send_byte_loop_6122 
+5deb 20600000 rtn 
+
+rec_nec_send_bit_6122:
+5dec c3005def bbit0 0 ,rec_nec_send_bit0_6122 
+5ded c2805df2 bbit1 0 ,rec_nec_send_bit1_6122 
+5dee 20600000 rtn 
+
+rec_nec_send_bit0_6122:
+5def da20023a arg 570 ,rega 
+5df0 da400226 arg 550 ,regb 
+5df1 20205df5 branch rec_nec_send_bit 
+
+rec_nec_send_bit1_6122:
+5df2 da20023a arg 570 ,rega 
+5df3 da400690 arg 1680 ,regb 
+5df4 20205df5 branch rec_nec_send_bit 
+
+rec_nec_send_bit:
+5df5 1a227e00 copy rega ,pdata 
+5df6 20405dde call rec_nec_carrier 
+5df7 1a427e00 copy regb ,pdata 
+5df8 20205ddc branch rec_nec_empty 
+
+rec_nec_send_repeat_6122:
+5df9 58002328 setarg 9000 
+5dfa 20405dde call rec_nec_carrier 
+5dfb 580008ca setarg 2250 
+5dfc 20405ddc call rec_nec_empty 
+5dfd 58000230 setarg 560 
+5dfe 20405dde call rec_nec_carrier 
+5dff 58000001 setarg 1 
+5e00 20205ddc branch rec_nec_empty 
+
+rec_nec_6122_start:
+5e01 20405dbb call rec_nec_send_userdata_6122 
+5e02 20405e0c call rec_nec_send_repeat_6122_timer_init 
+5e03 700d9410 jam 16 ,mem_rec_nec_timer 
+5e04 20600000 rtn 
+
+rec_nec_disable:
+5e05 20405e10 call rec_nec_send_repeat_6122_timer_clear 
+
+rec_nec_6122_stop:
+5e06 20407103 call pwm_disable 
+
+rec_nec_io_disable:
+5e07 6fe0ce33 fetch 1 ,mem_rec_nec_send_gpio 
+
+rec_gpio_config_output_low:
+5e08 d840003e arg gpcfg_output_low ,temp 
+5e09 20206f1d branch gpio_config_function_int 
+
+rec_gpio_config_output_high:
+5e0a d840003f arg gpcfg_output_high ,temp 
+5e0b 20206f1d branch gpio_config_function_int 
+
+rec_nec_send_repeat_6122_timer_init:
+5e0c 5800002b setarg 43 
+
+rec_nec_timer_set:
+5e0d 67e08d95 store 1 ,mem_rec_nec_timeout 
+5e0e 67e08d94 store 1 ,mem_rec_nec_timer 
+5e0f 20600000 rtn 
+
+rec_nec_send_repeat_6122_timer_clear:
+5e10 58000000 setarg 0 
+5e11 20205e0d branch rec_nec_timer_set 
+
+rec_nec_rx_num:
+5e12 6ff10120 fetch 2 ,core_nec_wptr 
+5e13 68590066 fetcht 2 ,core_nec_rptr 
+5e14 98467e00 isub temp ,pdata 
+5e15 24215e17 nbranch rec_nec_rptr_big_wptr ,positive 
+5e16 20600000 rtn 
+
+rec_nec_rptr_big_wptr:
+5e17 68590120 fetcht 2 ,core_nec_wptr 
+5e18 6ff10066 fetch 2 ,core_nec_rptr 
+5e19 98460400 isub temp ,temp 
+5e1a 58000100 setarg nec_store_buf_size 
+5e1b 98467e00 isub temp ,pdata 
+5e1c 20600000 rtn 
+
+rec_nec_receive_data:
+5e1d 6ff10066 fetch 2 ,core_nec_rptr 
+5e1e e841803f ifetcht 3 ,pdata 
+5e1f 60488dd2 storet 1 ,mem_rec_nec_receive_data0 
+5e20 184c8400 rshift8 temp ,temp 
+5e21 60488dd3 storet 1 ,mem_rec_nec_receive_data1 
+5e22 184c8400 rshift8 temp ,temp 
+5e23 60488dd4 storet 1 ,mem_rec_nec_receive_data2 
+5e24 6fe08dd2 fetch 1 ,mem_rec_nec_receive_data0 
+5e25 1fe17e80 and_into 0x80 ,pdata 
+5e26 c0c05e28 bne 0x80 ,rec_nec_receive_one_data 
+5e27 20205e33 branch rec_nec_receive_two_data 
+
+rec_nec_receive_one_data:
+5e28 6fe08dd2 fetch 1 ,mem_rec_nec_receive_data0 
+5e29 67e08dd5 store 1 ,mem_rec_nec_receive_data 
+5e2a 6ff10066 fetch 2 ,core_nec_rptr 
+5e2b 68590064 fetcht 2 ,core_nec_end_addr 
+5e2c 98467e00 isub temp ,pdata 
+5e2d 20215e5b branch rec_nec_rptr_reset ,positive 
+5e2e 6ff10066 fetch 2 ,core_nec_rptr 
+5e2f 1fe0fe01 increase 1 ,pdata 
+5e30 67f10066 store 2 ,core_nec_rptr 
+5e31 700dd801 jam 1 ,mem_rec_nec_data 
+5e32 20600000 rtn 
+
+rec_nec_receive_two_data:
+5e33 6fe08dd4 fetch 1 ,mem_rec_nec_receive_data2 
+5e34 1fe17e80 and_into 0x80 ,pdata 
+5e35 c0405e46 beq 0x80 ,rec_nec_receive_three_data 
+5e36 6fe08dd3 fetch 1 ,mem_rec_nec_receive_data1 
+5e37 1fed7e00 lshift8 pdata ,pdata 
+5e38 1fe37e00 rshift pdata ,pdata 
+5e39 68488dd2 fetcht 1 ,mem_rec_nec_receive_data0 
+5e3a 1841047f and_into 0x7f ,temp 
+5e3b 9841fe00 ior temp ,pdata 
+5e3c 67e10dd5 store 2 ,mem_rec_nec_receive_data 
+5e3d 6ff10066 fetch 2 ,core_nec_rptr 
+5e3e 68590064 fetcht 2 ,core_nec_end_addr 
+5e3f 98467e00 isub temp ,pdata 
+5e40 20215e5b branch rec_nec_rptr_reset ,positive 
+5e41 6ff10066 fetch 2 ,core_nec_rptr 
+5e42 1fe0fe02 increase 2 ,pdata 
+5e43 67f10066 store 2 ,core_nec_rptr 
+5e44 700dd802 jam 2 ,mem_rec_nec_data 
+5e45 20600000 rtn 
+
+rec_nec_receive_three_data:
+5e46 6fe08dd4 fetch 1 ,mem_rec_nec_receive_data2 
+5e47 1fe17e7f and_into 0x7f ,pdata 
+5e48 1ff07e00 lshift16 pdata ,pdata 
+5e49 1fe32200 rshift pdata ,rega 
+5e4a 6fe08dd3 fetch 1 ,mem_rec_nec_receive_data1 
+5e4b 1fed7e00 lshift8 pdata ,pdata 
+5e4c 1fe37e00 rshift pdata ,pdata 
+5e4d 68488dd2 fetcht 1 ,mem_rec_nec_receive_data0 
+5e4e 1841047f and_into 0x7f ,temp 
+5e4f 9841fe00 ior temp ,pdata 
+5e50 9a21fe00 ior rega ,pdata 
+5e51 67e18dd5 store 3 ,mem_rec_nec_receive_data 
+5e52 6ff10066 fetch 2 ,core_nec_rptr 
+5e53 68590064 fetcht 2 ,core_nec_end_addr 
+5e54 98467e00 isub temp ,pdata 
+5e55 20215e5b branch rec_nec_rptr_reset ,positive 
+5e56 6ff10066 fetch 2 ,core_nec_rptr 
+5e57 1fe0fe03 increase 3 ,pdata 
+5e58 67f10066 store 2 ,core_nec_rptr 
+5e59 700dd803 jam 3 ,mem_rec_nec_data 
+5e5a 20600000 rtn 
+
+rec_nec_rptr_reset:
+5e5b d8400a88 arg mem_rec_nec_rx_start ,temp 
+5e5c 9840fe00 iadd temp ,pdata 
+5e5d 67f10066 store 2 ,core_nec_rptr 
+5e5e 20600000 rtn 
+
+rec_nec_receiver_init_wtr:
+5e5f 58000b88 setarg mem_rec_nec_rx_store_start 
+5e60 67e10dcc store 2 ,mem_rec_nec_store_sptr 
+5e61 67e10dd0 store 2 ,mem_rec_nec_store_wptr 
+5e62 20600000 rtn 
+
+rec_nec_carry_time:
+5e63 20405e6c call rec_nec_carry_store 
+5e64 6fe08dd5 fetch 1 ,mem_rec_nec_receive_data 
+5e65 68490ddc fetcht 2 ,mem_rec_nec_carry_time 
+5e66 9840fe00 iadd temp ,pdata 
+5e67 67e10ddc store 2 ,mem_rec_nec_carry_time 
+5e68 58000000 setarg 0 
+5e69 67e18dd5 store 3 ,mem_rec_nec_receive_data 
+5e6a 67e08dd8 store 1 ,mem_rec_nec_data 
+5e6b 20600000 rtn 
+
+rec_nec_carry_store:
+5e6c 6fe08db7 fetch 1 ,mem_rec_period_cal_count 
+5e6d 1fe67c14 sub pdata ,20 ,null 
+5e6e 20628000 rtn zero 
+5e6f 1fe0fe01 increase 1 ,pdata 
+5e70 67e08db7 store 1 ,mem_rec_period_cal_count 
+5e71 6fe08dd5 fetch 1 ,mem_rec_nec_receive_data 
+5e72 68490db5 fetcht 2 ,mem_rec_period_cal_ptr 
+5e73 e7e08002 istore 1 ,temp 
+5e74 18408401 increase 1 ,temp 
+5e75 60490db5 storet 2 ,mem_rec_period_cal_ptr 
+5e76 20600000 rtn 
+
+rec_nec_receive_run_time:
+5e77 6ff20100 fetch 4 ,core_clkn 
+5e78 684a0dde fetcht 4 ,mem_rec_nec_learn_stime 
+5e79 98467e00 isub temp ,pdata 
+5e7a 20600000 rtn 
+
+rec_nec_receive_timeout:
+5e7b 684a0de6 fetcht 4 ,mem_rec_nec_learn_outtime 
+5e7c 98467c00 isub temp ,null 
+5e7d 20600000 rtn 
+
+rec_nec_update_timeout:
+5e7e 6ff20100 fetch 4 ,core_clkn 
+5e7f 67e20dde store 4 ,mem_rec_nec_learn_stime 
+5e80 5800026c setarg 620 
+5e81 67e20de6 store 4 ,mem_rec_nec_learn_outtime 
+5e82 20600000 rtn 
+
+rec_nec_learn_analysis:
+5e83 6fe08d93 fetch 1 ,mem_rec_nec_rx_count 
+5e84 207a0000 rtn blank 
+5e85 1feffe04 mul32 pdata ,4 ,pdata 
+5e86 1fe0fff6 increase -10 ,pdata 
+5e87 1fe27200 copy pdata ,loopcnt 
+5e88 67e08c90 store 1 ,mem_rec_nec_rx_len 
+5e89 d8c00b88 arg mem_rec_nec_rx_store_start ,contr 
+5e8a 18c08c06 increase 6 ,contr 
+5e8b d8a00c93 arg mem_rec_nec_rx_data ,contw 
+5e8c 20207cdc branch memcpy 
+
+rec_audio_adpcm_encode:
+5e8d 704db528 jam 40 ,mem_rec_ad_in_numsamples1 
+5e8e 6fe14df2 fetch 2 ,mem_rec_adc_dma_rptr 
+5e8f 67e14db6 store 2 ,mem_rec_ad_in_ptr1 
+5e90 58000a24 setarg mem_rec_adpcm 
+5e91 67e14db8 store 2 ,mem_rec_ad_out_ptr1 
+
+rec_adpcm_encode:
+5e92 6fe24dad fetch 4 ,mem_rec_ad_state_valpred1 
+5e93 67e24dc0 store 4 ,mem_rec_ad_valpred1 
+5e94 6fe24db1 fetch 4 ,mem_rec_ad_state_index1 
+5e95 67e24dc4 store 4 ,mem_rec_ad_index1 
+5e96 6fe0cdc4 fetch 1 ,mem_rec_ad_index1 
+5e97 1febfe00 lshift2 pdata ,pdata 
+5e98 d8404c49 arg mem_rec_ad_stepsizetable1 ,temp 
+5e99 98408400 iadd temp ,temp 
+5e9a efe20002 ifetch 4 ,temp 
+5e9b 67e24dbc store 4 ,mem_rec_ad_step1 
+5e9c 704dd001 jam 1 ,mem_rec_ad_bufferstep1 
+
+rec_adpcm_encode_loop:
+5e9d 20405f3c call rec_adpcm_get_val_from_inp 
+5e9e 6fe24dd1 fetch 4 ,mem_rec_ad_val1 
+5e9f 684a4dc0 fetcht 4 ,mem_rec_ad_valpred1 
+5ea0 98467e00 isub temp ,pdata 
+5ea1 67e24dd9 store 4 ,mem_rec_ad_diff1 
+5ea2 20405ed7 call rec_adpcm_encode_cal_delta 
+5ea3 20405ede call rec_adpcm_set_diff_by_sign 
+5ea4 704dbb00 jam 0 ,mem_rec_ad_delta1 
+5ea5 6fe24dbc fetch 4 ,mem_rec_ad_step1 
+5ea6 1fe97e00 rshift3 pdata ,pdata 
+5ea7 67e24dc8 store 4 ,mem_rec_ad_vpdiff1 
+5ea8 20405ee5 call rec_check_diff_big_step1 
+5ea9 6fe24dbc fetch 4 ,mem_rec_ad_step1 
+5eaa 1fe37e00 rshift pdata ,pdata 
+5eab 67e24dbc store 4 ,mem_rec_ad_step1 
+5eac 20405ef3 call rec_check_diff_big_step2 
+5ead 6fe24dbc fetch 4 ,mem_rec_ad_step1 
+5eae 1fe37e00 rshift pdata ,pdata 
+5eaf 67e24dbc store 4 ,mem_rec_ad_step1 
+5eb0 20405efb call rec_check_diff_big_step3 
+5eb1 20405f03 call rec_check_sign_deal1 
+5eb2 20405f0e call rec_adpcm_check_valpred_more_32767 
+5eb3 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
+5eb4 6848cdba fetcht 1 ,mem_rec_ad_sign1 
+5eb5 9841fe00 ior temp ,pdata 
+5eb6 67e0cdbb store 1 ,mem_rec_ad_delta1 
+5eb7 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
+5eb8 d8404c39 arg mem_rec_ad_indextable1 ,temp 
+5eb9 98408400 iadd temp ,temp 
+5eba efe08002 ifetch 1 ,temp 
+5ebb 20405f49 call rec_char_2_int32 
+5ebc 684a4dc4 fetcht 4 ,mem_rec_ad_index1 
+5ebd 9840fe00 iadd temp ,pdata 
+5ebe 67e24dc4 store 4 ,mem_rec_ad_index1 
+5ebf 20405f1b call rec_adpcm_check_index_less_0 
+5ec0 20405f20 call rec_adpcm_check_index_big_88 
+5ec1 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
+5ec2 1febfe00 lshift2 pdata ,pdata 
+5ec3 d8404c49 arg mem_rec_ad_stepsizetable1 ,temp 
+5ec4 98408400 iadd temp ,temp 
+5ec5 efe20002 ifetch 4 ,temp 
+5ec6 67e24dbc store 4 ,mem_rec_ad_step1 
+5ec7 20405f2a call rec_adpcm_check_bufferstep 
+5ec8 6fe0cdd0 fetch 1 ,mem_rec_ad_bufferstep1 
+5ec9 d8400001 arg 0x01 ,temp 
+5eca 9842fe00 ixor temp ,pdata 
+5ecb 67e0cdd0 store 1 ,mem_rec_ad_bufferstep1 
+5ecc 6fe0cdb5 fetch 1 ,mem_rec_ad_in_numsamples1 
+5ecd 1fe0ffff increase -1 ,pdata 
+5ece 67e0cdb5 store 1 ,mem_rec_ad_in_numsamples1 
+5ecf 243a5e9d nbranch rec_adpcm_encode_loop ,blank 
+5ed0 6fe0cdd0 fetch 1 ,mem_rec_ad_bufferstep1 
+5ed1 205a5f3a call rec_adpcm_set_bufferstep_to_outp ,blank 
+5ed2 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
+5ed3 67e24dad store 4 ,mem_rec_ad_state_valpred1 
+5ed4 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
+5ed5 67e24db1 store 4 ,mem_rec_ad_state_index1 
+5ed6 20600000 rtn 
+
+rec_adpcm_encode_cal_delta:
+5ed7 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
+5ed8 c28fdedc bbit1 31 ,rec_adpcm_encode_cal_smaller_zero 
+5ed9 58000000 setarg 0 
+
+rec_adpcm_encode_store_sign1:
+5eda 67e0cdba store 1 ,mem_rec_ad_sign1 
+5edb 20600000 rtn 
+
+rec_adpcm_encode_cal_smaller_zero:
+5edc 58000008 setarg 8 
+5edd 20205eda branch rec_adpcm_encode_store_sign1 
+
+rec_adpcm_set_diff_by_sign:
+5ede 6fe0cdba fetch 1 ,mem_rec_ad_sign1 
+5edf 243a5ee1 nbranch rec_adpcm_diff_negation ,blank 
+5ee0 20600000 rtn 
+
+rec_adpcm_diff_negation:
+5ee1 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
+5ee2 1fe67e00 sub pdata ,0 ,pdata 
+5ee3 67e24dd9 store 4 ,mem_rec_ad_diff1 
+5ee4 20600000 rtn 
+
+rec_check_diff_big_step1:
+5ee5 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
+5ee6 684a4dbc fetcht 4 ,mem_rec_ad_step1 
+5ee7 98467e00 isub temp ,pdata 
+5ee8 c38f8000 rtnbit1 31 
+5ee9 704dbb04 jam 4 ,mem_rec_ad_delta1 
+
+rec_check_diff_big_common:
+5eea 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
+5eeb 684a4dbc fetcht 4 ,mem_rec_ad_step1 
+5eec 98467e00 isub temp ,pdata 
+5eed 67e24dd9 store 4 ,mem_rec_ad_diff1 
+
+rec_check_diff_big_common_next:
+5eee 6fe24dc8 fetch 4 ,mem_rec_ad_vpdiff1 
+5eef 684a4dbc fetcht 4 ,mem_rec_ad_step1 
+5ef0 9840fe00 iadd temp ,pdata 
+5ef1 67e24dc8 store 4 ,mem_rec_ad_vpdiff1 
+5ef2 20600000 rtn 
+
+rec_check_diff_big_step2:
+5ef3 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
+5ef4 684a4dbc fetcht 4 ,mem_rec_ad_step1 
+5ef5 98467e00 isub temp ,pdata 
+5ef6 c38f8000 rtnbit1 31 
+5ef7 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
+5ef8 1fe1fe02 or pdata ,2 ,pdata 
+5ef9 67e0cdbb store 1 ,mem_rec_ad_delta1 
+5efa 20205eea branch rec_check_diff_big_common 
+
+rec_check_diff_big_step3:
+5efb 6fe24dd9 fetch 4 ,mem_rec_ad_diff1 
+5efc 684a4dbc fetcht 4 ,mem_rec_ad_step1 
+5efd 98467e00 isub temp ,pdata 
+5efe c38f8000 rtnbit1 31 
+5eff 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
+5f00 1fe1fe01 or pdata ,1 ,pdata 
+5f01 67e0cdbb store 1 ,mem_rec_ad_delta1 
+5f02 20205eee branch rec_check_diff_big_common_next 
+
+rec_check_sign_deal1:
+5f03 6fe0cdba fetch 1 ,mem_rec_ad_sign1 
+5f04 203a5f0a branch rec_valpred_add_vpdiff ,blank 
+
+rec_valpred_sub_vpdiff:
+5f05 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
+5f06 684a4dc8 fetcht 4 ,mem_rec_ad_vpdiff1 
+5f07 98467e00 isub temp ,pdata 
+
+rec_valpred1_store:
+5f08 67e24dc0 store 4 ,mem_rec_ad_valpred1 
+5f09 20600000 rtn 
+
+rec_valpred_add_vpdiff:
+5f0a 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
+5f0b 684a4dc8 fetcht 4 ,mem_rec_ad_vpdiff1 
+5f0c 9840fe00 iadd temp ,pdata 
+5f0d 20205f08 branch rec_valpred1_store 
+
+rec_adpcm_check_valpred_more_32767:
+5f0e 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
+5f0f d8407fff arg 32767 ,temp 
+5f10 98467e00 isub temp ,pdata 
+5f11 c30fdf17 bbit0 31 ,rec_adpcm_valpred_more_32767 
+
+rec_adpcm_check_valpred_less_f32767:
+5f12 6fe24dc0 fetch 4 ,mem_rec_ad_valpred1 
+5f13 d85f8001 arg -32767 ,temp 
+5f14 98467e00 isub temp ,pdata 
+5f15 c28fdf19 bbit1 31 ,rec_adpcm_valpred_less_f32767 
+5f16 20600000 rtn 
+
+rec_adpcm_valpred_more_32767:
+5f17 58007fff setarg 32767 
+5f18 20205f08 branch rec_valpred1_store 
+
+rec_adpcm_valpred_less_f32767:
+5f19 5fff8001 setarg -32767 
+5f1a 20205f08 branch rec_valpred1_store 
+
+rec_adpcm_check_index_less_0:
+5f1b 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
+5f1c d8400000 arg 0 ,temp 
+5f1d 98467e00 isub temp ,pdata 
+5f1e c28fdf25 bbit1 31 ,rec_adpcm_set_0_index 
+5f1f 20600000 rtn 
+
+rec_adpcm_check_index_big_88:
+5f20 6fe24dc4 fetch 4 ,mem_rec_ad_index1 
+5f21 d8400058 arg 88 ,temp 
+5f22 98467e00 isub temp ,pdata 
+5f23 c30fdf28 bbit0 31 ,rec_adpcm_set_88_index 
+5f24 20600000 rtn 
+
+rec_adpcm_set_0_index:
+5f25 58000000 setarg 0 
+
+rec_adpcm_store_index1:
+5f26 67e24dc4 store 4 ,mem_rec_ad_index1 
+5f27 20600000 rtn 
+
+rec_adpcm_set_88_index:
+5f28 58000058 setarg 88 
+5f29 20205f26 branch rec_adpcm_store_index1 
+
+rec_adpcm_check_bufferstep:
+5f2a 6fe0cdd0 fetch 1 ,mem_rec_ad_bufferstep1 
+5f2b 203a5f30 branch rec_adpcm_bufferstep_eque_0 ,blank 
+
+rec_adpcm_bufferstep_neque_0:
+5f2c 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
+5f2d 1fe17e0f and pdata ,0x0f ,pdata 
+5f2e 67e24dd5 store 4 ,mem_rec_ad_outputbuffer1 
+5f2f 20600000 rtn 
+
+rec_adpcm_bufferstep_eque_0:
+5f30 6fe0cdbb fetch 1 ,mem_rec_ad_delta1 
+5f31 1ff27e00 lshift4 ,pdata ,pdata 
+5f32 1fe17ef0 and pdata ,0xf0 ,pdata 
+5f33 684a4dd5 fetcht 4 ,mem_rec_ad_outputbuffer1 
+5f34 9841fe00 ior temp ,pdata 
+
+rec_adpcm_bufferstep_increase_out_ptr1:
+5f35 68494db8 fetcht 2 ,mem_rec_ad_out_ptr1 
+5f36 e7e08002 istore 1 ,temp 
+5f37 18408401 increase 1 ,temp 
+5f38 60494db8 storet 2 ,mem_rec_ad_out_ptr1 
+5f39 20600000 rtn 
+
+rec_adpcm_set_bufferstep_to_outp:
+5f3a 6fe24dd5 fetch 4 ,mem_rec_ad_outputbuffer1 
+5f3b 20205f35 branch rec_adpcm_bufferstep_increase_out_ptr1 
+
+rec_adpcm_get_val_from_inp:
+5f3c 68494db6 fetcht 2 ,mem_rec_ad_in_ptr1 
+5f3d efe10002 ifetch 2 ,temp 
+5f3e 18408402 increase 2 ,temp 
+5f3f 60494db6 storet 2 ,mem_rec_ad_in_ptr1 
+5f40 20405f43 call rec_int16_2_int32 
+5f41 67e24dd1 store 4 ,mem_rec_ad_val1 
+5f42 20600000 rtn 
+
+rec_int16_2_int32:
+5f43 c287df45 bbit1 15 ,rec_int16_2_int32_less_0 
+5f44 20600000 rtn 
+
+rec_int16_2_int32_less_0:
+5f45 d840ffff arg 0xffff ,temp 
+5f46 18500400 lshift16 temp ,temp 
+
+rec_calca_ixor:
+5f47 9842fe00 ixor temp ,pdata 
+5f48 20600000 rtn 
+
+rec_char_2_int32:
+5f49 c283df4b bbit1 7 ,rec_char_2_int32_less_0 
+5f4a 20600000 rtn 
+
+rec_char_2_int32_less_0:
+5f4b d85fffff arg 0xffffff ,temp 
+5f4c 184d0400 lshift8 temp ,temp 
+5f4d 20205f47 branch rec_calca_ixor 
+
+rec_voice_notify_apk:
+5f4e da200014 arg 20 ,rega 
+5f4f 68494df4 fetcht 2 ,mem_rec_voice_notify_apk_handle 
+
+rec_le_notify_data:
+5f50 20402dcc call le_att_malloc_tx_notify 
+5f51 d8c04dde arg mem_rec_voice_notify ,contr 
+5f52 df200014 arg 20 ,loopcnt 
+5f53 20207cdc branch memcpy 
+
+rec_voice_start_apk:
+5f54 70064e01 jam 0x01 ,mem_pdatatemp 
+
+rec_voice_notify_apk_data:
+5f55 704c0a01 jam 1 ,mem_rec_le_data_len 
+5f56 68494df8 fetcht 2 ,mem_rec_control_notify_apk_handle 
+5f57 20205d94 branch rec_le_send_data 
+
+rec_voice_end_apk:
+5f58 70064e00 jam 0x00 ,mem_pdatatemp 
+5f59 20205f55 branch rec_voice_notify_apk_data 
+
+rec_voice_notify_box:
+5f5a da200014 arg 20 ,rega 
+5f5b 68494df6 fetcht 2 ,mem_rec_voice_notify_box_handle 
+5f5c 20205f50 branch rec_le_notify_data 
+
+rec_voice_start_box:
+5f5d 58000221 setarg 0x221 
+
+rec_voice_notify_box_data:
+5f5e 67e1864e store 3 ,mem_pdatatemp 
+5f5f 704c0a03 jam 3 ,mem_rec_le_data_len 
+5f60 68494dfa fetcht 2 ,mem_rec_control_notify_box_handle 
+5f61 20205d94 branch rec_le_send_data 
+
+rec_voice_end_box:
+5f62 5800cccc setarg 0xcccc 
+5f63 20205f5e branch rec_voice_notify_box_data 
+
+rec_ota_process:
+5f64 44ddc017 bpatch patch17_3 ,mem_patch17 
+5f65 1a220c00 copy rega ,contr 
+5f66 efe08006 ifetch 1 ,contr 
+5f67 c1dd0000 rtnne ota_command 
+5f68 efe08006 ifetch 1 ,contr 
+5f69 67e0ce51 store 1 ,mem_rec_ota_notify_opcode 
+5f6a c0085f77 beq ota_portocol_version_request ,rec_ota_parse_protocol_version_req 
+5f6b c008df7f beq ota_buck_size_request ,rec_ota_parse_buck_size_req 
+5f6c c00adf86 beq ota_start_request ,rec_ota_parse_start_req 
+5f6d c00b5fb2 beq ota_data_write_cmd ,rec_ota_parse_data_write_cmd 
+5f6e c00bdfbf beq ota_data_write_request ,rec_ota_prep_data_write_rsp 
+5f6f c00c5fcd beq ota_end_request ,rec_ota_parse_end_req 
+
+rec_ota_init:
+5f70 5fffffff setarg -1 
+5f71 67e14e35 store 2 ,mem_rec_ota_write_index 
+5f72 58000000 setarg 0 
+5f73 67e24e43 store 4 ,mem_rec_ota_total_sum 
+5f74 67e14e37 store 2 ,mem_rec_ota_write_length 
+5f75 704e5200 jam ota_result_success ,mem_rec_ota_notify_result 
+5f76 20600000 rtn 
+
+rec_ota_parse_protocol_version_req:
+5f77 da200005 arg 5 ,rega 
+5f78 20405fc4 call rec_ota_tx_notify_success 
+5f79 6fe14e48 fetch 2 ,mem_rec_ota_version 
+5f7a e7e10005 istore 2 ,contw 
+5f7b 704e6501 jam ota_le_conn_param_update_enable ,mem_rec_ota_le_conn_param_update 
+5f7c 6fe44e5c fetch 8 ,mem_rec_ota_le_conn_update_param 
+5f7d 67e442d5 store 8 ,mem_le_interval_min 
+5f7e 20202e71 branch le_l2cap_tx_update_req 
+
+rec_ota_parse_buck_size_req:
+5f7f da200007 arg 7 ,rega 
+5f80 20405fc4 call rec_ota_tx_notify_success 
+5f81 6fe14e4a fetch 2 ,mem_rec_ota_buck_size 
+5f82 e7e10005 istore 2 ,contw 
+5f83 6fe14e4c fetch 2 ,mem_rec_ota_packet_max_len 
+5f84 e7e10005 istore 2 ,contw 
+5f85 20600000 rtn 
+
+rec_ota_parse_start_req:
+5f86 efe08006 ifetch 1 ,contr 
+5f87 67e0ce47 store 1 ,mem_rec_ota_update_flash_mode 
+5f88 c0005f92 beq ota_update_flash_normal ,rec_ota_parse_start_req_update_normal 
+
+rec_ota_tx_flashmode_not_support:
+5f89 da200004 arg 4 ,rega 
+5f8a 704e5203 jam ota_result_flashmode_not_support ,mem_rec_ota_notify_result 
+5f8b 20405fc5 call rec_ota_tx_notify_common 
+5f8c 6fe0ce47 fetch 1 ,mem_rec_ota_update_flash_mode 
+5f8d 20207dce branch istore_1_contw_rtn 
+
+rec_ota_tx_start_req_success:
+5f8e da200004 arg 4 ,rega 
+5f8f 20405fc4 call rec_ota_tx_notify_success 
+5f90 6fe0ce47 fetch 1 ,mem_rec_ota_update_flash_mode 
+5f91 20207dce branch istore_1_contw_rtn 
+
+rec_ota_parse_start_req_update_normal:
+5f92 20405f8e call rec_ota_tx_start_req_success 
+5f93 20405f70 call rec_ota_init 
+5f94 58000000 setarg 0 
+5f95 67e1ce6b store 3 ,mem_rec_ota_flash_offset_addr 
+5f96 704e6601 jam 1 ,mem_rec_ota_enable 
+5f97 58000000 setarg 0 
+5f98 d8400010 arg 0x10 ,temp 
+5f99 da200c8c arg mem_rec_ota_flash_buf ,rega 
+5f9a 20406c43 call spid_read_flash 
+5f9b 20405fa8 call rec_ota_set_flash_start_addr 
+5f9c 6a21ce68 fetchr rega ,3 ,mem_rec_ota_flash_base_addr 
+5f9d df200009 arg 9 ,loopcnt 
+
+rec_erase_num_sector_flash:
+5f9e 18007000 force 0 ,regext_index 
+
+rec_erase_num_sector_flash_loop:
+5f9f 2040608e call rec_spi_wait_flash 
+5fa0 6221c430 storer rega ,3 ,mem_spi_write_addr 
+5fa1 2040609f call rec_save_loopcnt_rega 
+5fa2 20406bee call spid_flash_erase_sector 
+5fa3 204060a1 call rec_rescue_rega_loopcnt 
+5fa4 58001000 setarg 4096 
+5fa5 9a20a200 iadd rega ,rega 
+5fa6 c2005f9f loop rec_erase_num_sector_flash_loop 
+5fa7 20600000 rtn 
+
+rec_ota_set_flash_start_addr:
+5fa8 4778c03e bpatchx patch3e_1 ,mem_patch3e 
+5fa9 6849ce75 fetcht 3 ,mem_rec_code_b_flash_addr 
+5faa 6049ce68 storet 3 ,mem_rec_ota_flash_base_addr 
+5fab 6049ce40 storet 3 ,mem_rec_ota_write_flash_addr_start 
+5fac 6fe08c8c fetch 1 ,mem_rec_ota_flash_buf 
+5fad c1300000 rtneq 0x60 
+5fae 6849ce72 fetcht 3 ,mem_rec_code_a_flash_addr 
+5faf 6049ce68 storet 3 ,mem_rec_ota_flash_base_addr 
+5fb0 6049ce40 storet 3 ,mem_rec_ota_write_flash_addr_start 
+5fb1 20600000 rtn 
+
+rec_ota_parse_data_write_cmd:
+
+rec_ota_parse_data_write_req:
+
+rec_ota_parse_data_write_data_store:
+5fb2 68494337 fetcht 2 ,mem_le_l2cap_size 
+5fb3 184085f8 increase -8 ,temp 
+5fb4 6fe14e37 fetch 2 ,mem_rec_ota_write_length 
+5fb5 9840fe00 iadd temp ,pdata 
+5fb6 67e14e37 store 2 ,mem_rec_ota_write_length 
+5fb7 18427200 copy temp ,loopcnt 
+5fb8 1a220c00 copy rega ,contr 
+5fb9 18c08c05 increase 5 ,contr 
+5fba 20406052 call rec_queue_ota_push 
+5fbb 6fe14e35 fetch 2 ,mem_rec_ota_write_index 
+5fbc 1fe0fe01 increase 1 ,pdata 
+5fbd 67e14e35 store 2 ,mem_rec_ota_write_index 
+5fbe 20600000 rtn 
+
+rec_ota_prep_data_write_rsp:
+5fbf 20405fb2 call rec_ota_parse_data_write_req 
+5fc0 704e5200 jam ota_result_success ,mem_rec_ota_notify_result 
+5fc1 704e5117 jam ota_data_write_request ,mem_rec_ota_notify_opcode 
+5fc2 da200003 arg 3 ,rega 
+5fc3 20205fc5 branch rec_ota_tx_notify_common 
+
+rec_ota_tx_notify_success:
+5fc4 704e5200 jam ota_result_success ,mem_rec_ota_notify_result 
+
+rec_ota_tx_notify_common:
+5fc5 68494e4f fetcht 2 ,mem_rec_ota_notify_handle 
+5fc6 20402dcc call le_att_malloc_tx_notify 
+5fc7 580000ab setarg ota_event 
+5fc8 e7e08005 istore 1 ,contw 
+5fc9 6fe0ce52 fetch 1 ,mem_rec_ota_notify_result 
+5fca e7e08005 istore 1 ,contw 
+5fcb 6fe0ce51 fetch 1 ,mem_rec_ota_notify_opcode 
+5fcc 20207dce branch istore_1_contw_rtn 
+
+rec_ota_parse_end_req:
+5fcd 18007000 force 0 ,regext_index 
+5fce 20406097 call rec_save_contr 
+5fcf 20405ff2 call rec_ota_data2flash_remain 
+5fd0 704e6600 jam 0 ,mem_rec_ota_enable 
+5fd1 58000000 setarg 0 
+5fd2 67e1ce6b store 3 ,mem_rec_ota_flash_offset_addr 
+5fd3 67e24e43 store 4 ,mem_rec_ota_total_sum 
+5fd4 20406007 call rec_ota_sum_all 
+5fd5 20406099 call rec_rescue_contr 
+5fd6 18c08c01 increase 1 ,contr 
+5fd7 efe20006 ifetch 4 ,contr 
+5fd8 67e2064e store 4 ,mem_pdatatemp 
+5fd9 efe20006 ifetch 4 ,contr 
+5fda 67e20652 store 4 ,mem_pdatatemp + 4 
+5fdb 6fe2064e fetch 4 ,mem_pdatatemp 
+5fdc 684a4e37 fetcht 4 ,mem_rec_ota_write_length 
+5fdd 98467c00 isub temp ,null 
+5fde 2422dfee nbranch rec_ota_tx_length_error ,zero 
+5fdf 6fe24e43 fetch 4 ,mem_rec_ota_total_sum 
+5fe0 684a0652 fetcht 4 ,mem_pdatatemp + 4 
+5fe1 98467c00 isub temp ,null 
+5fe2 2422dff0 nbranch rec_ota_result_error_write_flash ,zero 
+5fe3 20406070 call rec_ota_updata_head 
+5fe4 704e6402 jam 2 ,mem_rec_ota_reset_timeout 
+
+rec_ota_tx_end_req_return:
+5fe5 da20000c arg 0x0c ,rega 
+5fe6 20405fc5 call rec_ota_tx_notify_common 
+5fe7 6fe0ce47 fetch 1 ,mem_rec_ota_update_flash_mode 
+5fe8 e7e08005 istore 1 ,contw 
+5fe9 6fe24e37 fetch 4 ,mem_rec_ota_write_length 
+5fea e7e20005 istore 4 ,contw 
+5feb 6fe24e43 fetch 4 ,mem_rec_ota_total_sum 
+5fec e7e20005 istore 4 ,contw 
+5fed 20600000 rtn 
+
+rec_ota_tx_length_error:
+5fee 704e5205 jam ota_result_length_error ,mem_rec_ota_notify_result 
+5fef 20205fe5 branch rec_ota_tx_end_req_return 
+
+rec_ota_result_error_write_flash:
+5ff0 704e5207 jam ota_result_write_flash_error ,mem_rec_ota_notify_result 
+5ff1 20600000 rtn 
+
+rec_ota_data2flash_remain:
+5ff2 6fe0ce66 fetch 1 ,mem_rec_ota_enable 
+5ff3 207a0000 rtn blank 
+5ff4 20406001 call rec_ota_queue_count_256 
+5ff5 20610000 rtn positive 
+5ff6 68494e6e fetcht 2 ,mem_rec_queue_ota_count 
+5ff7 204060a7 call rec_save_temp 
+5ff8 18427200 copy temp ,loopcnt 
+5ff9 d8a00c8c arg mem_rec_ota_flash_buf ,contw 
+5ffa 20406061 call rec_queue_ota_pop 
+5ffb 2040608e call rec_spi_wait_flash 
+5ffc 204060a9 call rec_rescue_temp 
+5ffd 204060a7 call rec_save_temp 
+5ffe 20406041 call rec_ota_data2flash 
+5fff 204060a9 call rec_rescue_temp 
+6000 2020603d branch rec_ota_increase_flash_offset_addr 
+
+rec_ota_queue_count_256:
+6001 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
+6002 d8400100 arg 256 ,temp 
+6003 98467c00 isub temp ,null 
+6004 20600000 rtn 
+
+rec_ota_sum_page:
+6005 df200100 arg 0x100 ,loopcnt 
+6006 20206017 branch rec_ota_sum 
+
+rec_ota_sum_all:
+6007 6fe14e37 fetch 2 ,mem_rec_ota_write_length 
+6008 68494e6b fetcht 2 ,mem_rec_ota_flash_offset_addr 
+6009 98467e00 isub temp ,pdata 
+600a 20628000 rtn zero 
+600b 20405d15 call rec_save_reg 
+600c 2040601d call rec_ota_data_from_flash_len 
+600d 20405d18 call rec_rescue_reg 
+600e 20406013 call rec_ota_sum_len 
+600f 6fe24e43 fetch 4 ,mem_rec_ota_total_sum 
+6010 9840fe00 iadd temp ,pdata 
+6011 67e24e43 store 4 ,mem_rec_ota_total_sum 
+6012 20206007 branch rec_ota_sum_all 
+
+rec_ota_sum_len:
+6013 d8400100 arg 0x100 ,temp 
+6014 98467c00 isub temp ,null 
+6015 20216005 branch rec_ota_sum_page ,positive 
+6016 1fe27200 copy pdata ,loopcnt 
+
+rec_ota_sum:
+6017 d8c00c8c arg mem_rec_ota_flash_buf ,contr 
+6018 d8400000 arg 0 ,temp 
+
+rec_ota_sum_loop:
+6019 efe08006 ifetch 1 ,contr 
+601a 98408400 iadd temp ,temp 
+601b c2006019 loop rec_ota_sum_loop 
+601c 20600000 rtn 
+
+rec_ota_data_from_flash_len:
+601d d8400100 arg 0x100 ,temp 
+601e 98467c00 isub temp ,null 
+601f 2021602b branch rec_ota_data_from_flash_page ,positive 
+6020 20405d15 call rec_save_reg 
+6021 1fe27200 copy pdata ,loopcnt 
+6022 20406026 call rec_ota_data_from_flash 
+6023 20405d18 call rec_rescue_reg 
+6024 1fe20400 copy pdata ,temp 
+6025 2020603d branch rec_ota_increase_flash_offset_addr 
+
+rec_ota_data_from_flash:
+6026 6fe1ce68 fetch 3 ,mem_rec_ota_flash_base_addr 
+6027 6a41ce6b fetchr regb ,3 ,mem_rec_ota_flash_offset_addr 
+6028 9a40fe00 iadd regb ,pdata 
+6029 da200c8c arg mem_rec_ota_flash_buf ,rega 
+602a 20206c43 branch spid_read_flash 
+
+rec_ota_data_from_flash_page:
+602b d8400100 arg 0x100 ,temp 
+602c 20406026 call rec_ota_data_from_flash 
+602d d8400100 arg 0x100 ,temp 
+602e 2020603d branch rec_ota_increase_flash_offset_addr 
+
+rec_ota_polling:
+602f 6fe0ce66 fetch 1 ,mem_rec_ota_enable 
+6030 245a6032 ncall rec_ota_data2flash_page ,blank 
+6031 20600000 rtn 
+
+rec_ota_data2flash_page:
+6032 6fe0ce66 fetch 1 ,mem_rec_ota_enable 
+6033 207a0000 rtn blank 
+6034 20406001 call rec_ota_queue_count_256 
+6035 24610000 nrtn positive 
+6036 df200100 arg 256 ,loopcnt 
+6037 d8a00c8c arg mem_rec_ota_flash_buf ,contw 
+6038 20406061 call rec_queue_ota_pop 
+6039 2040608e call rec_spi_wait_flash 
+603a d8400100 arg 256 ,temp 
+603b 20406041 call rec_ota_data2flash 
+603c d8400100 arg 256 ,temp 
+
+rec_ota_increase_flash_offset_addr:
+603d 6fe14e6b fetch 2 ,mem_rec_ota_flash_offset_addr 
+603e 9840fe00 iadd temp ,pdata 
+603f 67e14e6b store 2 ,mem_rec_ota_flash_offset_addr 
+6040 20600000 rtn 
+
+rec_ota_data2flash:
+6041 6fe1ce68 fetch 3 ,mem_rec_ota_flash_base_addr 
+6042 6a41ce6b fetchr regb ,3 ,mem_rec_ota_flash_offset_addr 
+6043 9a40fe00 iadd regb ,pdata 
+6044 da200c8c arg mem_rec_ota_flash_buf ,rega 
+6045 20206c29 branch spid_write_flash_data 
+
+rec_queue_ota_init:
+6046 580006ef setarg mem_rec_queue_ota_buf 
+6047 68494e70 fetcht 2 ,mem_rec_ota_queue_size 
+
+rec_queue_init_config:
+6048 184085ff increase -1 ,temp 
+6049 1fe20a00 copy pdata ,contw 
+604a 18a08bf8 increase -8 ,contw 
+604b e7e10005 istore 2 ,contw 
+604c 9840fe00 iadd temp ,pdata 
+604d e7e10005 istore 2 ,contw 
+604e 98467e00 isub temp ,pdata 
+604f e7e10005 istore 2 ,contw 
+6050 e7e10005 istore 2 ,contw 
+6051 20600000 rtn 
+
+rec_queue_ota_push:
+6052 20406097 call rec_save_contr 
+6053 44de4017 bpatch patch17_4 ,mem_patch17 
+6054 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
+6055 9f20fe00 iadd loopcnt ,pdata 
+6056 67e14e6e store 2 ,mem_rec_queue_ota_count 
+6057 580006ef setarg mem_rec_queue_ota_buf 
+6058 204060ac call rec_queue_enter_config 
+6059 20406099 call rec_rescue_contr 
+605a 204060c0 call rec_enter_queue 
+605b 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
+605c 68494e70 fetcht 2 ,mem_rec_ota_queue_size 
+605d 98467c00 isub temp ,null 
+605e 20416060 call rec_queue_ota_data_loss ,positive 
+605f 20600000 rtn 
+
+rec_queue_ota_data_loss:
+6060 20600000 rtn 
+
+rec_queue_ota_pop:
+6061 2040609b call rec_save_contw 
+6062 6fe14e6e fetch 2 ,mem_rec_queue_ota_count 
+6063 9f267e00 isub loopcnt ,pdata 
+6064 67e14e6e store 2 ,mem_rec_queue_ota_count 
+6065 580006ef setarg mem_rec_queue_ota_buf 
+6066 204060b6 call rec_queue_out_config 
+6067 2040609d call rec_rescue_contw 
+
+rec_out_queue:
+6068 18627e00 copy contu ,pdata 
+6069 98467c00 isub temp ,null 
+606a 2022a33e branch assert ,zero 
+
+rec_out_queue_loop:
+606b efe08003 ifetch 1 ,contru 
+606c e7e08005 istore 1 ,contw 
+606d c200606b loop rec_out_queue_loop 
+606e e0610011 istorer contru ,2 ,rega 
+606f 20600000 rtn 
+
+rec_ota_updata_head:
+6070 20406079 call rec_ota_read_head 
+6071 58000000 setarg 0 
+6072 20406085 call rec_spid_flash_erase_page 
+
+rec_ota_write_head_check:
+6073 44dec017 bpatch patch17_5 ,mem_patch17 
+6074 6fe08c8c fetch 1 ,mem_rec_ota_flash_buf 
+6075 c030607d beq 0x60 ,rec_ota_write_head_b 
+6076 c0786077 beq 0xf0 ,rec_ota_write_head_a 
+
+rec_ota_write_head_a:
+6077 6fe1ce72 fetch 3 ,mem_rec_code_a_flash_addr 
+6078 2020607e branch rec_ota_write_head 
+
+rec_ota_read_head:
+6079 58000000 setarg 0 
+607a d8400100 arg 0x100 ,temp 
+607b da200c8c arg mem_rec_ota_flash_buf ,rega 
+607c 20206c43 branch spid_read_flash 
+
+rec_ota_write_head_b:
+607d 6fe1ce75 fetch 3 ,mem_rec_code_b_flash_addr 
+
+rec_ota_write_head:
+607e 1fe0fe02 increase 2 ,pdata 
+607f 1ff0fe00 byteswap pdata ,pdata 
+6080 67e10c8c store 2 ,mem_rec_ota_flash_buf 
+6081 d8400100 arg 0x100 ,temp 
+6082 da200c8c arg mem_rec_ota_flash_buf ,rega 
+6083 58000000 setarg 0 
+6084 20206c29 branch spid_write_flash_data 
+
+rec_spid_flash_erase_page:
+6085 67e1c430 store 3 ,mem_spi_write_addr 
+6086 2040608e call rec_spi_wait_flash 
+6087 20406c16 call spid_init_flash 
+6088 20406c1c call spid_unlock_flash 
+6089 da2001bc arg mem_spid_tbuf ,rega 
+608a 70808204 jam 4 ,core_spid_txlen 
+608b 6fe1c430 fetch 3 ,mem_spi_write_addr 
+608c d8400081 arg flash_command_page_erase ,temp 
+608d 20206c36 branch spid_write_flash_common 
+
+rec_spi_wait_flash:
+608e 580001bc setarg mem_spid_tbuf 
+608f 67f10084 store 2 ,core_spid_txaddr 
+6090 580001c1 setarg mem_spid_rbuf 
+6091 67f10086 store 2 ,core_spid_rxaddr 
+6092 70808300 jam 0 ,core_spid_txlen + 1 
+6093 58000005 setarg flash_read_satus 
+6094 20406bcd call spid_read_reg 
+6095 c280608e bbit1 flash_status_wip ,rec_spi_wait_flash 
+6096 20600000 rtn 
+
+rec_save_contr:
+6097 18c27e00 copy contr ,pdata 
+6098 20205d15 branch rec_save_reg 
+
+rec_rescue_contr:
+6099 20405d18 call rec_rescue_reg 
+609a 20207c6a branch get_contr_end 
+
+rec_save_contw:
+609b 18a27e00 copy contw ,pdata 
+609c 20205d15 branch rec_save_reg 
+
+rec_rescue_contw:
+609d 20405d18 call rec_rescue_reg 
+609e 20207c67 branch get_contw_end 
+
+rec_save_loopcnt_rega:
+609f 204060a5 call rec_save_loopcnt 
+60a0 20205d10 branch rec_save_rega 
+
+rec_rescue_rega_loopcnt:
+60a1 20405d12 call rec_rescue_rega 
+
+rec_rescue_loopcnt:
+60a2 20405d18 call rec_rescue_reg 
+60a3 1fe27200 copy pdata ,loopcnt 
+60a4 20600000 rtn 
+
+rec_save_loopcnt:
+60a5 1f227e00 copy loopcnt ,pdata 
+60a6 20205d15 branch rec_save_reg 
+
+rec_save_temp:
+60a7 18427e00 copy temp ,pdata 
+60a8 20205d15 branch rec_save_reg 
+
+rec_rescue_temp:
+60a9 20405d18 call rec_rescue_reg 
+60aa 1fe20400 copy pdata ,temp 
+60ab 20600000 rtn 
+
+rec_queue_enter_config:
+60ac 1fe0fff8 increase -8 ,pdata 
+60ad e941003f ifetchr contus ,2 ,pdata 
+60ae 1fe0fe02 increase 2 ,pdata 
+60af ea01003f ifetchr contue ,2 ,pdata 
+60b0 1fe0fe02 increase 2 ,pdata 
+60b1 e841003f ifetchr temp ,2 ,pdata 
+60b2 1fe0fe02 increase 2 ,pdata 
+60b3 e861003f ifetchr contu ,2 ,pdata 
+60b4 1fe22200 copy pdata ,rega 
+60b5 20600000 rtn 
+
+rec_queue_out_config:
+60b6 1fe0fff8 increase -8 ,pdata 
+60b7 e941003f ifetchr contus ,2 ,pdata 
+60b8 1fe0fe02 increase 2 ,pdata 
+60b9 ea01003f ifetchr contue ,2 ,pdata 
+60ba 1fe0fe02 increase 2 ,pdata 
+60bb e861003f ifetchr contu ,2 ,pdata 
+60bc 1fe22200 copy pdata ,rega 
+60bd 1fe0fe02 increase 2 ,pdata 
+60be e841003f ifetchr temp ,2 ,pdata 
+60bf 20600000 rtn 
+
+rec_enter_queue:
+
+rec_enter_queue_loop:
+60c0 efe08006 ifetch 1 ,contr 
+60c1 e7e08003 istore 1 ,contwu 
+60c2 c20060c0 loop rec_enter_queue_loop 
+60c3 e0610011 istorer contwu ,2 ,rega 
+60c4 18627e00 copy contwu ,pdata 
+60c5 98467c00 isub temp ,null 
+60c6 2022a33e branch assert ,zero 
+60c7 20600000 rtn 
+
+shutter_init:
+60c8 20407384 call enable_authrom 
+60c9 20758000 rtn wake 
+60ca 58006143 setarg shutter_process_idle 
+60cb 67e143e4 store 2 ,mem_cb_idle_process 
+60cc 580060f3 setarg shutter_process_bb_event 
+60cd 67e143e6 store 2 ,mem_cb_bb_event_process 
+60ce 580061a7 setarg ble_shutter_receive_data 
+60cf 67e143e8 store 2 ,mem_cb_att_write 
+60d0 5800612a setarg shutter_le_bb_event_timer 
+60d1 67e143ec store 2 ,mem_cb_event_timer 
+60d2 58006182 setarg shutter_key_change 
+60d3 67e1453b store 2 ,mem_cb_shutter_keycan 
+60d4 204060dc call shutter_common_init 
+60d5 44df4017 bpatch patch17_6 ,mem_patch17 
+60d6 204061b3 call shutter_load_buffer_config_form_datarom 
+
+shutter_power_switch:
+60d7 6fe0c531 fetch 1 ,mem_shutter_hard_soft_switch_case 
+60d8 c00060ea beq hard_switch ,shutter_hart_swtich_power_on 
+60d9 6fe0c532 fetch 1 ,mem_shutter_soft_switch_button_gpio 
+60da 67e0c503 store 1 ,mem_ui_button_gpio 
+60db 202061be branch ui_soft_swtich_init 
+
+shutter_common_init:
+60dc 58006147 setarg shutter_le_before_hibernate 
+60dd 67e143de store 2 ,mem_cb_before_hibernate 
+60de 58006145 setarg shutter_process_lpm_before 
+60df 67e143e0 store 2 ,mem_cb_before_lpm 
+60e0 5800615d setarg shutter_soft_swtich_power_on 
+60e1 67e14536 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+60e2 580061b7 setarg shutter_soft_swtich_power_off 
+60e3 67e14538 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+60e4 70416007 jam 7 ,mem_version 
+60e5 20402948 call le_modified_name_adv 
+60e6 204061aa call shutter_init_param 
+60e7 2040705b call keyscan_key_init 
+60e8 2040789d call queue_init 
+60e9 2020779a branch ui_led_init_global 
+
+shutter_hart_swtich_power_on:
+60ea 704503ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
+60eb 70453301 jam ss_state_power_on ,mem_shutter_soft_switch_power_state 
+60ec 2020615d branch shutter_start_reconnect 
+
+shutter_le_scale_lpm_lock:
+60ed 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
+60ee c001377d beq ss_state_power_off ,app_get_lpm_wake_lock 
+60ef 20406945 call l2cap_malloc_get_full_map 
+60f0 6fe0c458 fetch 1 ,mem_used_map 
+60f1 243a377d nbranch app_get_lpm_wake_lock ,blank 
+60f2 2020377f branch app_put_lpm_wake_lock 
+
+shutter_process_bb_event:
+60f3 1a627e00 copy regc ,pdata 
+60f4 c00a60fc beq bt_evt_le_connected ,ble_shutter_process_baseband_connect 
+60f5 c00ae100 beq bt_evt_le_disconnected ,ble_shutter_process_baseband_disconnect 
+60f6 c01fe103 beq bt_evt_le_reconnect_complete ,ble_shutter_process_reconnect_complete 
+60f7 c020610b beq bt_evt_le_parse_conn_papa_update_rsp ,ble_shutter_process_parse_connect_parameter_update_response 
+60f8 c00861d3 beq bt_evt_button_long_pressed ,ui_soft_switch_botton_long_press 
+60f9 c0166111 beq bt_evt_button_down ,shutter_process_soft_swtich_button_down 
+60fa c016e11c beq bt_evt_button_up ,shutter_process_soft_swtich_button_up 
+60fb 20600000 rtn 
+
+ble_shutter_process_baseband_connect:
+60fc 2040614a call shutter_stop_bluetooth_discovery 
+60fd 58000000 setarg 0 
+60fe 67e1450f store 2 ,mem_ble_shutter_reconn_timer 
+60ff 2020379a branch app_led_off 
+
+ble_shutter_process_baseband_disconnect:
+6100 2040789d call queue_init 
+6101 70450800 jam 0 ,mem_ble_shutter_enable_notify 
+6102 2020615d branch shutter_start_reconnect 
+
+ble_shutter_process_reconnect_complete:
+6103 2040789d call queue_init 
+6104 70450801 jam 1 ,mem_ble_shutter_enable_notify 
+6105 204065b3 call shutter_dy_check_iphone 
+6106 204037a0 call app_lpm_mult_enable 
+6107 243a632b nbranch ble_parameter_updata_response_ios ,blank 
+6108 6fe44ecb fetch 8 ,mem_ble_shutter_dy_interval_min_android 
+6109 67e442d5 store 8 ,mem_le_interval_min 
+610a 20202e71 branch le_l2cap_tx_update_req 
+
+ble_shutter_process_parse_connect_parameter_update_response:
+610b 6fe14340 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+610c c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+610d 6fe44521 fetch 8 ,mem_ble_shutter_interval_min_new 
+610e 207a0000 rtn blank 
+610f 67e442d5 store 8 ,mem_le_interval_min 
+6110 20202e71 branch le_l2cap_tx_update_req 
+
+shutter_process_soft_swtich_button_down:
+6111 6fe0c531 fetch 1 ,mem_shutter_hard_soft_switch_case 
+6112 c1000000 rtneq hard_switch 
+6113 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
+6114 c1808000 rtnne ss_state_power_on 
+6115 20406117 call shutter_store_currenct_led_state 
+6116 20203798 branch app_led_on 
+
+shutter_store_currenct_led_state:
+6117 70469c01 jam 1 ,mem_shutter_soft_swtich_botton_down 
+6118 df20000b arg 11 ,loopcnt 
+6119 d8a0469d arg mem_shutter_soft_swtich_led_struct_temp ,contw 
+611a d8c04686 arg mem_shutter_led_struct_app_led ,contr 
+611b 20207cdc branch memcpy 
+
+shutter_process_soft_swtich_button_up:
+611c 6fe0c531 fetch 1 ,mem_shutter_hard_soft_switch_case 
+611d c1000000 rtneq hard_switch 
+611e 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
+611f c000e121 beq ss_state_power_on ,shutter_load_currenct_led_state 
+6120 202061cf branch ui_soft_switch_botton_up 
+
+shutter_load_currenct_led_state:
+6121 6fe0c69c fetch 1 ,mem_shutter_soft_swtich_botton_down 
+6122 c1808000 rtnne 1 
+6123 70469c00 jam 0 ,mem_shutter_soft_swtich_botton_down 
+6124 6fe14500 fetch 2 ,mem_ui_state_map 
+6125 c284b79a bbit1 ui_state_ble_connected ,app_led_off 
+6126 df20000b arg 11 ,loopcnt 
+6127 d8c0469d arg mem_shutter_soft_swtich_led_struct_temp ,contr 
+6128 d8a04686 arg mem_shutter_led_struct_app_led ,contw 
+6129 20207cdc branch memcpy 
+
+shutter_le_bb_event_timer:
+612a 2040612d call shutter_check_sleep_timer 
+612b 20406134 call shutter_check_power_off_timer 
+612c 2020613e branch ble_shutter_reconn_timer 
+
+shutter_check_sleep_timer:
+612d da60452f arg mem_shutter_sleep_timer ,regc 
+612e da406130 arg shutter_sleep_timeout ,regb 
+612f 2020375c branch timer_single_step_2b 
+
+shutter_sleep_timeout:
+6130 70453302 jam ss_state_power_off ,mem_shutter_soft_switch_power_state 
+6131 2040379a call app_led_off 
+6132 2040616b call shutter_disconnect_current_connection 
+6133 202061bb branch shutter_wait_power_off 
+
+shutter_check_power_off_timer:
+6134 da6046a9 arg mem_shutter_power_off_timer ,regc 
+6135 da406137 arg shutter_check_power_off_timeout ,regb 
+6136 20203755 branch timer_single_step 
+
+shutter_check_power_off_timeout:
+6137 6fe14500 fetch 2 ,mem_ui_state_map 
+6138 c284e1bb bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+6139 6fe0c686 fetch 1 ,mem_shutter_led_struct_app_led_type 
+613a c000e1bb beq ui_led_state_blink_start ,shutter_wait_power_off 
+613b c00261bb beq ui_led_state_blink_lighting ,shutter_wait_power_off 
+613c c002e1bb beq ui_led_state_blink_darking ,shutter_wait_power_off 
+613d 2020379c branch app_enter_hibernate 
+
+ble_shutter_reconn_timer:
+613e 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
+613f c1808000 rtnne ss_state_power_on 
+6140 da60450f arg mem_ble_shutter_reconn_timer ,regc 
+6141 da40614e arg shutter_start_bluetooth_discovery ,regb 
+6142 2020375c branch timer_single_step_2b 
+
+shutter_process_idle:
+6143 20406193 call shutter_send_data_to_master 
+6144 2020708b branch keyscan_key_process 
+
+shutter_process_lpm_before:
+6145 20406f32 call gpio_set_before_lpm 
+6146 2020707f branch keyscan_process_lpm_before 
+
+shutter_le_before_hibernate:
+6147 704503ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
+6148 20406f32 call gpio_set_before_lpm 
+6149 20207388 branch disable_authrom 
+
+shutter_stop_bluetooth_discovery:
+
+ble_shutter_stop_bluetooth_discovery:
+614a 6fe1452b fetch 2 ,mem_ble_shutter_connect_timeout 
+614b 67e1452d store 2 ,mem_shutter_sleep_timeout 
+614c 67e1452f store 2 ,mem_shutter_sleep_timer 
+614d 2020378a branch app_ble_stop_adv 
+
+shutter_start_bluetooth_discovery:
+614e 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
+614f c1808000 rtnne ss_state_power_on 
+
+ble_shutter_start_discovery:
+6150 6fe14500 fetch 2 ,mem_ui_state_map 
+6151 c3848000 rtnbit1 ui_state_ble_connected 
+6152 6fe14529 fetch 2 ,mem_ble_shutter_discovery_timeout 
+6153 67e1452d store 2 ,mem_shutter_sleep_timeout 
+6154 67e1452f store 2 ,mem_shutter_sleep_timer 
+6155 6fe1450b fetch 2 ,mem_ble_shutter_discovery_adv_interval 
+6156 204061e4 call shutter_ble_adv_interval_set 
+6157 20403796 call app_led_start_blink 
+6158 6fe24515 fetch 4 ,mem_ble_shutter_discovery_blink_on_time 
+6159 67e24689 store 4 ,mem_shutter_led_struct_app_led_on_time 
+615a 6fe14500 fetch 2 ,mem_ui_state_map 
+615b c3858000 rtnbit1 ui_state_ble_adv 
+615c 2020378c branch app_ble_start_adv 
+
+shutter_soft_swtich_power_on:
+
+shutter_start_reconnect:
+615d 6fe0c533 fetch 1 ,mem_shutter_soft_switch_power_state 
+615e c1808000 rtnne ss_state_power_on 
+
+ble_shutter_start_reconnect:
+615f 6fe1450f fetch 2 ,mem_ble_shutter_reconn_timer 
+6160 6849450d fetcht 2 ,mem_ble_shutter_reconn_timeout 
+6161 6049450f storet 2 ,mem_ble_shutter_reconn_timer 
+6162 247a0000 nrtn blank 
+6163 6fe14509 fetch 2 ,mem_ble_shutter_reconn_adv_interval 
+6164 204061e4 call shutter_ble_adv_interval_set 
+6165 20403796 call app_led_start_blink 
+6166 6fe24511 fetch 4 ,mem_ble_shutter_reconn_blink_on_time 
+6167 67e24689 store 4 ,mem_shutter_led_struct_app_led_on_time 
+6168 6fe14500 fetch 2 ,mem_ui_state_map 
+6169 c3858000 rtnbit1 ui_state_ble_adv 
+616a 2020378c branch app_ble_start_adv 
+
+shutter_disconnect_current_connection:
+616b 6fe14500 fetch 2 ,mem_ui_state_map 
+616c c284b794 bbit1 ui_state_ble_connected ,app_ble_disconnect 
+616d 2020614a branch shutter_stop_bluetooth_discovery 
+
+shutter_check_data_enable:
+616e 20407dbe call disable_user 
+616f 6fe14500 fetch 2 ,mem_ui_state_map 
+6170 c284e172 bbit1 ui_state_ble_connected ,shutter_check_ble_data_enable 
+6171 20600000 rtn 
+
+shutter_check_ble_data_enable:
+6172 6fe0c508 fetch 1 ,mem_ble_shutter_enable_notify 
+6173 207a0000 rtn blank 
+6174 20207dbc branch enable_user 
+
+shutter_check_bluetooth_conn:
+6175 20407dbe call disable_user 
+6176 6fe14500 fetch 2 ,mem_ui_state_map 
+6177 c3848000 rtnbit1 ui_state_ble_connected 
+6178 20207dbc branch enable_user 
+
+shutter_change_bluetooth_status_bt_disconn:
+
+ble_shutter_change_bluetooth_status_bt_disconn:
+6179 2020615d branch shutter_start_reconnect 
+
+shutter_check_send_data:
+617a 78567c00 disable user2 
+617b 6fe1452d fetch 2 ,mem_shutter_sleep_timeout 
+617c 67e1452f store 2 ,mem_shutter_sleep_timer 
+617d 20406175 call shutter_check_bluetooth_conn 
+617e 20346179 branch shutter_change_bluetooth_status_bt_disconn ,user 
+617f 2040616e call shutter_check_data_enable 
+6180 24740000 nrtn user 
+6181 20207dc0 branch enable_user2 
+
+shutter_key_change:
+6182 2040617a call shutter_check_send_data 
+6183 24760000 nrtn user2 
+6184 1a227e00 deposit rega 
+6185 203a6189 branch shutter_key_release ,blank 
+
+shutter_key_press:
+6186 20403798 call app_led_on 
+6187 da60453f arg mem_key0_press ,regc 
+6188 2020618b branch push_queue_press_or_release 
+
+shutter_key_release:
+6189 2040379a call app_led_off 
+618a da60454e arg mem_key0_release ,regc 
+
+push_queue_press_or_release:
+618b dfe00005 arg max_queue_num ,pdata 
+618c 98effe00 imul32 queue ,pdata 
+618d 9a60a600 iadd regc ,regc 
+
+push_buffer_in_queue:
+618e efe08013 ifetch 1 ,regc 
+618f 207a0000 rtn blank 
+6190 2040619f call queue_push_one_byte 
+6191 1a60a601 increase 1 ,regc 
+6192 2020618e branch push_buffer_in_queue 
+
+shutter_send_data_to_master:
+6193 6fe14500 fetch 2 ,mem_ui_state_map 
+6194 c284e196 bbit1 ui_state_ble_connected ,pop_queue_to_ble_data 
+6195 20600000 rtn 
+
+pop_queue_to_ble_data:
+6196 20402a06 call le_fifo_check_nearly_full 
+6197 247a0000 nrtn blank 
+6198 204061a2 call queue_pop_one_byte 
+6199 24740000 nrtn user 
+619a 1fe0ffff pincrease -1 
+619b 1feffe05 mul32 pdata ,shutter_ble_data_buffer ,pdata 
+619c d840455d arg mem_ble_data_buffer1 ,temp 
+619d 98408c00 iadd temp ,contr 
+619e 202061e8 branch le_send_notify_from_list 
+
+queue_push_one_byte:
+619f 67e0864e store 1 ,mem_pdatatemp 
+61a0 da20064e arg mem_pdatatemp ,rega 
+61a1 202078a2 branch queue_push 
+
+queue_pop_one_byte:
+61a2 da20064e arg mem_pdatatemp ,rega 
+61a3 204078ba call queue_pop 
+61a4 24740000 nrtn user 
+61a5 6fe0864e fetch 1 ,mem_pdatatemp 
+61a6 20600000 rtn 
+
+ble_shutter_receive_data:
+61a7 6fe1439c fetch 2 ,mem_le_att_handle 
+61a8 c00c6103 beq gatt_keyboard_write_handle ,ble_shutter_process_reconnect_complete 
+61a9 20600000 rtn 
+
+shutter_init_param:
+61aa 7046a802 jam 0x02 ,mem_shutter_power_off_timeout 
+61ab 58200008 setarg 0x00200008 
+61ac 67e24519 store 4 ,mem_ble_shutter_interval_min 
+61ad 592c0005 setarg 0x012c0005 
+61ae e7e20005 istore 4 ,contw 
+61af 7042e317 jam 0x17 ,mem_le_local_mtu 
+61b0 5800001b setarg 0x1b 
+61b1 67e14334 store 2 ,mem_le_pairing_handle 
+61b2 20202a1f branch le_set_fixed_ltk_justwork 
+
+shutter_load_buffer_config_form_datarom:
+61b3 df200028 arg ble_key_value_list_size ,loopcnt 
+61b4 d8a0455d arg mem_ble_data_buffer1 ,contw 
+61b5 d8c097bd arg ble_shutter_key_value_list_addr ,contr 
+61b6 20207cce branch memcpy_fast 
+
+shutter_soft_swtich_power_off:
+61b7 da200000 arg 0 ,rega 
+61b8 da604691 arg mem_shutter_power_off_led_style ,regc 
+61b9 204077b8 call ui_led_set_style_global 
+61ba 2040616b call shutter_disconnect_current_connection 
+
+shutter_wait_power_off:
+61bb 6fe0c6a8 fetch 1 ,mem_shutter_power_off_timeout 
+61bc 67e0c6a9 store 1 ,mem_shutter_power_off_timer 
+61bd 20600000 rtn 
+
+ui_soft_swtich_init:
+61be 58000000 setarg ss_state_power_up 
+61bf 204061ca call ui_soft_swtich_init_power_on_time 
+61c0 7044fb01 jam ui_button_state_up ,mem_ui_button_last_state 
+61c1 20407764 call ui_button_init 
+61c2 2040776e call ui_button_polling 
+
+ui_soft_switch_first_power_on:
+61c3 6fe0c6af fetch 1 ,mem_shutter_soft_switch_first_power_on 
+61c4 203a61c7 branch ui_soft_swtich_init_next ,blank 
+61c5 6ff08132 fetch 1 ,core_lpm_isogate 
+61c6 c28261d6 bbit1 cold_wake ,ui_soft_switch_power_on 
+
+ui_soft_swtich_init_next:
+61c7 6fe14500 fetch 2 ,mem_ui_state_map 
+61c8 c3860000 rtnbit1 ui_state_btn_down 
+61c9 2020379c branch app_enter_hibernate 
+
+ui_soft_swtich_init_power_on_time:
+61ca 68494447 fetcht 2 ,mem_power_param_ptr 
+61cb e7e08002 istore 1 ,temp 
+61cc efe08005 ifetch 1 ,contw 
+61cd 67e0c502 store 1 ,mem_ui_button_timeout 
+61ce 20600000 rtn 
+
+ui_soft_switch_botton_up:
+61cf 6fe14447 fetch 2 ,mem_power_param_ptr 
+61d0 efe0803f ifetch 1 ,pdata 
+61d1 c1800000 rtnne ss_state_power_up 
+61d2 2020379c branch app_enter_hibernate 
+
+ui_soft_switch_botton_long_press:
+61d3 68494447 fetcht 2 ,mem_power_param_ptr 
+61d4 efe08002 ifetch 1 ,temp 
+61d5 c000e1de beq ss_state_power_on ,ui_soft_switch_power_off 
+
+ui_soft_switch_power_on:
+61d6 58000001 setarg ss_state_power_on 
+61d7 68494447 fetcht 2 ,mem_power_param_ptr 
+61d8 e7e08002 istore 1 ,temp 
+61d9 18408c02 add temp ,ss_power_off_time ,contr 
+61da efe08006 ifetch 1 ,contr 
+61db e7e08002 istore 1 ,mem_ui_button_timeout 
+61dc efe10006 ifetch 2 ,contr 
+61dd 20207d7b branch callback_func 
+
+ui_soft_switch_power_off:
+61de 58000002 setarg ss_state_power_off 
+61df 204061ca call ui_soft_swtich_init_power_on_time 
+61e0 18408c05 add temp ,ss_power_off_cb ,contr 
+61e1 efe10006 ifetch 2 ,contr 
+61e2 203a379c branch app_enter_hibernate ,blank 
+61e3 20207d7b branch callback_func 
+
+shutter_ble_adv_interval_set:
+61e4 67e140a4 store 2 ,mem_lpm_interval 
+61e5 1fe0fffc increase -4 ,pdata 
+61e6 67e1438d store 2 ,mem_le_adv_interval 
+61e7 20600000 rtn 
+
+le_send_notify_from_list:
+61e8 efe08006 ifetch 1 ,contr 
+61e9 1fe22200 copy pdata ,rega 
+61ea e8410006 ifetcht 2 ,contr 
+61eb 20407c6f call store_contr 
+61ec 20402dcc call le_att_malloc_tx_notify 
+61ed 1a227200 copy rega ,loopcnt 
+61ee 20407c69 call get_contr 
+61ef 20207cdc branch memcpy 
+
+shutter_le_uuid_table_conf:
+61f0 58009684 setarg ble_shutter_gatt_list_addr 
+61f1 67e142f9 store 2 ,mem_ui_le_uuid_table 
+61f2 20600000 rtn 
+
+shutter_default_init:
+61f3 6fe146aa fetch 2 ,mem_shutter_key_conf0_temp 
+61f4 67e1453d store 2 ,mem_shutter_key_conf0 
+61f5 6fe0c6ac fetch 1 ,mem_shutter_led_struct_app_led_gpio_temp 
+61f6 67e0c688 store 1 ,mem_shutter_led_struct_app_led_gpio 
+61f7 67e0c693 store 1 ,mem_shutter_power_off_led_style_gpio 
+61f8 6fe0c6ad fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+61f9 67e0c531 store 1 ,mem_shutter_hard_soft_switch_case 
+61fa 6fe0c6ae fetch 1 ,mem_shutter_soft_switch_button_gpio_temp 
+61fb 67e0c532 store 1 ,mem_shutter_soft_switch_button_gpio 
+61fc 58000002 setarg 0x0002 
+61fd 67e1453f store 2 ,mem_key0_press 
+61fe 58000001 setarg 0x0001 
+61ff 67e14544 store 2 ,mem_key1_press 
+6200 58000006 setarg 0x0006 
+6201 67e1454e store 2 ,mem_key0_release 
+6202 67e14553 store 2 ,mem_key1_release 
+6203 58004533 setarg mem_shutter_soft_switch_power_state 
+6204 67e14447 store 2 ,mem_power_param_ptr 
+6205 58201400 setarg 0x201400 
+6206 67e1c533 store 3 ,mem_shutter_soft_switch_power_state 
+6207 70409401 jam 0x01 ,mem_lpm_mode 
+6208 58000100 setarg 0x0100 
+6209 67e140a4 store 2 ,mem_lpm_interval 
+620a 7040a608 jam 0x08 ,mem_lpm_overhead 
+620b 7040c005 jam 0x05 ,mem_lpm_mult 
+620c 7040c102 jam 0x02 ,mem_lpm_mult_timeout 
+620d 58000096 setarg 0x0096 
+620e 67e14511 store 2 ,mem_ble_shutter_reconn_blink_on_time 
+620f e7e10005 istore 2 ,contw 
+6210 58000296 setarg 0x0296 
+6211 67e14515 store 2 ,mem_ble_shutter_discovery_blink_on_time 
+6212 e7e10005 istore 2 ,contw 
+6213 38000010 setsect 0 ,0x10 
+6214 38048008 setsect 1 ,0x8008 
+6215 380ac000 setsect 2 ,0x2c000 
+6216 380c0004 setsect 3 ,0x04 
+6217 67e44521 store 8 ,mem_ble_shutter_interval_min_new 
+6218 70450501 jam 0x01 ,mem_ui_led_struct_num 
+6219 58004686 setarg mem_shutter_led_struct_app_led 
+621a 67e14506 store 2 ,mem_ui_led_struct_ptr 
+621b 58000000 setarg 0x0000 
+621c 67e14686 store 2 ,mem_shutter_led_struct_app_led 
+621d 380001a0 setsect 0 ,0x1a0 
+621e 38040068 setsect 1 ,0x68 
+621f 38080000 setsect 2 ,0x00 
+6220 380c0000 setsect 3 ,0x00 
+6221 67e44689 store 8 ,mem_shutter_led_struct_app_led_on_time 
+6222 58000301 setarg 0x0301 
+6223 67e14691 store 2 ,mem_shutter_power_off_led_style 
+6224 380001a0 setsect 0 ,0x1a0 
+6225 380400e8 setsect 1 ,0xe8 
+6226 38080000 setsect 2 ,0x00 
+6227 380c0000 setsect 3 ,0x00 
+6228 67e44694 store 8 ,mem_shutter_power_off_led_style_on_time 
+6229 5800000e setarg 0x000e 
+622a 67e14509 store 2 ,mem_ble_shutter_reconn_adv_interval 
+622b 58000140 setarg 0x0140 
+622c 67e1450b store 2 ,mem_ble_shutter_discovery_adv_interval 
+622d 67e1438d store 2 ,mem_le_adv_interval 
+622e 58000050 setarg 0x0050 
+622f 67e1450d store 2 ,mem_ble_shutter_reconn_timeout 
+6230 70439707 jam 0x07 ,mem_le_adv_channel_map 
+6231 70438c00 jam 0x00 ,mem_le_adv_enable 
+6232 380000fb setsect 0 ,0xfb 
+6233 3806c212 setsect 1 ,0x2c212 
+6234 3808800f setsect 2 ,0x800f 
+6235 380c0021 setsect 3 ,0x21 
+6236 67e443c4 store 8 ,mem_local_rx_max_octets 
+6237 38000bb8 setsect 0 ,0x0bb8 
+6238 380402ee setsect 1 ,0x02ee 
+6239 67e24529 store 4 ,mem_ble_shutter_discovery_timeout 
+623a 580045b7 setarg mem_queue_each_size 
+623b 67e14404 store 2 ,mem_queue_ptr 
+623c 58002001 setarg 0x2001 
+623d 67e145b7 store 2 ,mem_queue_each_size 
+623e 70434c1f jam 0x1f ,mem_le_adv_data_len 
+623f 38010102 setsect 0 ,0x10102 
+6240 380480c1 setsect 1 ,0x80c1 
+6241 38098120 setsect 2 ,0x18120 
+6242 380c640c setsect 3 ,0x640c 
+6243 67e4c34d store 9 ,mem_le_adv_data 
+6244 380003c1 setsect 0 ,0x3c1 
+6245 e7e10005 istore 2 ,contw 
+6246 70436c1f jam 0x1f ,mem_le_scan_data_len 
+6247 3802090d setsect 0 ,0x2090d 
+6248 38074c15 setsect 1 ,0x34c15 
+6249 380a8532 setsect 2 ,0x28532 
+624a 380dd1d5 setsect 3 ,0x1d1d5 
+624b 67e4c36d store 9 ,mem_le_scan_data 
+624c 38026574 setsect 0 ,0x26574 
+624d 3804001c setsect 1 ,0x1c 
+624e e7e18005 istore 3 ,contw 
+624f 5800453a setarg mem_shutter_keyscan 
+6250 67e14443 store 2 ,mem_keyscan_ptr 
+6251 70453a02 jam 0x02 ,mem_shutter_key_num 
+6252 580045dc setarg mem_shutter_nv_data 
+6253 67e14401 store 2 ,mem_nv_data_ptr 
+6254 70440305 jam 0x05 ,mem_nv_data_number 
+6255 6fe0c6b0 fetch 1 ,mem_shutter_dy_conf 
+6256 c00061f0 beq shutter_type ,shutter_le_uuid_table_conf 
+6257 c000e283 beq shutter_dy_type ,shutter_dy_le_uuid_table_conf 
+6258 20600000 rtn 
+
+shutter_dy_6_key_conf:
+6259 6fe34eab fetch shutter_six_key ,mem_shutter_dy_key_conf 
+625a 67e3453d store shutter_six_key ,mem_shutter_key_conf0 
+625b 70453a06 jam shutter_six_key ,mem_shutter_key_num 
+625c 5800453a setarg mem_shutter_key_num 
+625d 67e14443 store 2 ,mem_keyscan_ptr 
+625e 20600000 rtn 
+
+shutter_dy_7_key_conf:
+625f 6fe3ceab fetch shutter_seven_key ,mem_shutter_dy_key_conf 
+6260 67e3c53d store shutter_seven_key ,mem_shutter_key_conf0 
+6261 70453a07 jam shutter_seven_key ,mem_shutter_key_num 
+6262 5800453a setarg mem_shutter_key_num 
+6263 67e14443 store 2 ,mem_keyscan_ptr 
+6264 20600000 rtn 
+
+shutter_dy_8_key_conf:
+6265 6fe44eab fetch shutter_eight_key ,mem_shutter_dy_key_conf 
+6266 67e4453d store shutter_eight_key ,mem_shutter_key_conf0 
+6267 70453a08 jam shutter_eight_key ,mem_shutter_key_num 
+6268 5800453a setarg mem_shutter_key_num 
+6269 67e14443 store 2 ,mem_keyscan_ptr 
+626a 20600000 rtn 
+
+shutter_dy_key_conf:
+626b 6fe0ceaa fetch 1 ,mem_shutter_key_num_conf 
+626c c0036259 beq shutter_six_key ,shutter_dy_6_key_conf 
+626d c003e25f beq shutter_seven_key ,shutter_dy_7_key_conf 
+626e c0046265 beq shutter_eight_key ,shutter_dy_8_key_conf 
+626f 20600000 rtn 
+
+shutter_dy_adv_conf:
+6270 44dfc017 bpatch patch17_7 ,mem_patch17 
+6271 6fe44edb fetch 8 ,mem_shutter_ble_discovery_time_conf 
+6272 67e44529 store 8 ,mem_ble_shutter_discovery_timeout 
+6273 58000096 setarg 0x0096 
+6274 67e1450d store 2 ,mem_ble_shutter_reconn_timeout 
+6275 6fe3cee5 fetch 7 ,mem_shutter_led_on_light_dark_led_conf 
+6276 67e3c686 store 7 ,mem_shutter_led_struct_app_led 
+6277 6fe3ceec fetch 7 ,mem_shutter_led_off_light_dark_led_conf 
+6278 67e3c691 store 7 ,mem_shutter_power_off_led_style 
+6279 6fe24ef3 fetch 4 ,mem_shutter_reconn_blink_on_time_conf 
+627a 67e24511 store 4 ,mem_ble_shutter_reconn_blink_on_time 
+627b 6fe24ef7 fetch 4 ,mem_shutter_discovery_blink_on_time_conf 
+627c 67e24515 store 4 ,mem_ble_shutter_discovery_blink_on_time 
+627d 5800000e setarg 0x000e 
+627e 67e14509 store 2 ,mem_ble_shutter_reconn_adv_interval 
+627f 58000140 setarg 0x0140 
+6280 67e1450b store 2 ,mem_ble_shutter_discovery_adv_interval 
+6281 67e1438d store 2 ,mem_le_adv_interval 
+6282 20600000 rtn 
+
+shutter_dy_le_uuid_table_conf:
+6283 580047a7 setarg mem_shutter_le_uuid_sup 
+6284 67e142f9 store 2 ,mem_ui_le_uuid_table 
+6285 20600000 rtn 
+
+shutter_dy_init:
+6286 20407384 call enable_authrom 
+6287 20758000 rtn wake 
+6288 2040626b call shutter_dy_key_conf 
+6289 20406270 call shutter_dy_adv_conf 
+628a 580062c1 setarg shutter_dy_process_idle 
+628b 67e143e4 store 2 ,mem_cb_idle_process 
+628c 5800631a setarg shutter_dy_process_bb_event 
+628d 67e143e6 store 2 ,mem_cb_bb_event_process 
+628e 58006548 setarg ble_shutter_dy_receive_data 
+628f 67e143e8 store 2 ,mem_cb_att_write 
+6290 580062f2 setarg shutter_dy_le_bb_event_timer 
+6291 67e143ec store 2 ,mem_cb_event_timer 
+6292 5800634d setarg shutter_dy_key_change 
+6293 67e1453b store 2 ,mem_cb_shutter_keycan 
+6294 580062ab setarg shutter_dy_le_before_hibernate 
+6295 67e143de store 2 ,mem_cb_before_hibernate 
+6296 580062a9 setarg shutter_dy_process_lpm_before 
+6297 67e143e0 store 2 ,mem_cb_before_lpm 
+6298 5800615d setarg shutter_soft_swtich_power_on 
+6299 67e14536 store 2 ,mem_shutter_soft_switch_poweron_callback_function 
+629a 580061b7 setarg shutter_soft_swtich_power_off 
+629b 67e14538 store 2 ,mem_shutter_soft_switch_poweroff_callback_function 
+629c 70416007 jam 7 ,mem_version 
+629d 20402948 call le_modified_name_adv 
+629e 204061aa call shutter_init_param 
+629f 2040705b call keyscan_key_init 
+62a0 2040789d call queue_init 
+62a1 2040779a call ui_led_init_global 
+62a2 6fe14f12 fetch 2 ,mem_shutter_le_pairing_handle 
+62a3 67e14334 store 2 ,mem_le_pairing_handle 
+62a4 6fe44521 fetch 8 ,mem_ble_shutter_interval_min_new 
+62a5 67e44519 store 8 ,mem_ble_shutter_interval_min 
+62a6 204062cb call shutter_dy_iphone_every_move_max_set 
+62a7 44e04018 bpatch patch18_0 ,mem_patch18 
+62a8 202060d7 branch shutter_power_switch 
+
+shutter_dy_process_lpm_before:
+62a9 20406f32 call gpio_set_before_lpm 
+62aa 2020707f branch keyscan_process_lpm_before 
+
+shutter_dy_le_before_hibernate:
+62ab 704503ff jam ui_button_gpio_disable ,mem_ui_button_gpio 
+62ac 20406f32 call gpio_set_before_lpm 
+62ad 204062af call dy_set_key_gpio_before_hiernate 
+62ae 20207388 branch disable_authrom 
+
+dy_set_key_gpio_before_hiernate:
+62af 6fe0c6ad fetch 1 ,mem_shutter_hard_soft_switch_case_temp 
+62b0 207a0000 rtn blank 
+62b1 6fe0ceaa fetch 1 ,mem_shutter_key_num_conf 
+62b2 1fe27200 copy pdata ,loopcnt 
+62b3 da20453d arg mem_shutter_key_conf0 ,rega 
+
+dy_set_key_gpio_loop:
+62b4 efe08011 ifetch 1 ,rega 
+62b5 6848c6ae fetcht 1 ,mem_shutter_soft_switch_button_gpio_temp 
+62b6 98467c00 isub temp ,null 
+62b7 2022e2bc branch dy_set_key_gpio_loop_end ,zero 
+62b8 1fe67cff sub pdata ,0xff ,null 
+62b9 2022e2bc branch dy_set_key_gpio_loop_end ,zero 
+62ba 1fe20400 copy pdata ,temp 
+62bb 204062bf call dy_shutter_gpio_config_input_pd 
+
+dy_set_key_gpio_loop_end:
+62bc 1a20a201 increase 1 ,rega 
+62bd c20062b4 loop dy_set_key_gpio_loop 
+62be 20600000 rtn 
+
+dy_shutter_gpio_config_input_pd:
+62bf 79200407 set1 gpio_active_bit ,temp 
+62c0 20206ed7 branch gpio_config_input 
+
+shutter_dy_process_idle:
+62c1 204062d8 call shutter_dy_shutter_send_data_to_master 
+62c2 d8e00009 arg key_scan_timer ,queue 
+62c3 20407cf1 call timer_check 
+62c4 247a0000 nrtn blank 
+62c5 58000020 setarg 0x20 
+62c6 d8e00009 arg key_scan_timer ,queue 
+62c7 20407ce3 call timer_init 
+62c8 78547c00 disable user 
+62c9 2040707f call keyscan_process_lpm_before 
+62ca 202063b7 branch shutter_dy_keyscan_key_process 
+
+shutter_dy_iphone_every_move_max_set:
+62cb 5800002b setarg 0x2b 
+62cc 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+62cd d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+62ce 9840a200 iadd temp ,rega 
+62cf 1a20a203 increase 3 ,rega 
+62d0 d8400fff arg iphone_once_max_move_value ,temp 
+62d1 e0408011 istoret 1 ,rega 
+62d2 1a20a20b increase 11 ,rega 
+62d3 dfe00fff arg 0xfff ,pdata 
+62d4 98467e00 isub temp ,pdata 
+62d5 1ff27e00 lshift4 pdata ,pdata 
+62d6 e7e10011 istore 2 ,rega 
+62d7 20600000 rtn 
+
+shutter_dy_shutter_send_data_to_master:
+62d8 6fe14500 fetch 2 ,mem_ui_state_map 
+62d9 c284e2dd bbit1 ui_state_ble_connected ,shutter_dy_pop_queue_to_ble_data 
+62da d8a045b9 arg mem_queue_curr_num ,contw 
+62db df200023 arg 35 ,loopcnt 
+62dc 20207ca3 branch clear_mem 
+
+shutter_dy_pop_queue_to_ble_data:
+62dd 20402a06 call le_fifo_check_nearly_full 
+62de 247a0000 nrtn blank 
+62df 204078ea call queue_empty 
+62e0 207a0000 rtn blank 
+62e1 684a4959 fetcht 4 ,mem_key_send_clk 
+62e2 1c427e00 copy clkn_bt ,pdata 
+62e3 98460400 isub temp ,temp 
+62e4 20628000 rtn zero 
+62e5 242162e9 nbranch shutter_dy_pop_queue_to_ble_data2 ,positive 
+62e6 6fe0c958 fetch 1 ,mem_send_data_delay 
+62e7 98467c00 isub temp ,null 
+62e8 20610000 rtn positive 
+
+shutter_dy_pop_queue_to_ble_data2:
+62e9 1c427e00 copy clkn_bt ,pdata 
+62ea 67e24959 store 4 ,mem_key_send_clk 
+62eb 204061a2 call queue_pop_one_byte 
+62ec 24740000 nrtn user 
+62ed 1fe0ffff pincrease -1 
+62ee 1feffe0a mul32 pdata ,10 ,pdata 
+62ef d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+62f0 98408c00 iadd temp ,contr 
+62f1 202061e8 branch le_send_notify_from_list 
+
+shutter_dy_le_bb_event_timer:
+62f2 204066d9 call shutter_dy_shutter_1s_timer 
+62f3 204065ef call shutter_dy_link_key_loop_timer 
+62f4 204065dd call shutter_dy_long_key_volume_timer 
+62f5 204062f9 call shutter_dy_iphone_move_mid_timer 
+62f6 2040630e call shutter_dy_clear_key_state_timer 
+62f7 2040612d call shutter_check_sleep_timer 
+62f8 20206314 branch shutter_dy_check_power_off_timer 
+
+shutter_dy_iphone_move_mid_timer:
+62f9 da604e88 arg mem_shutter_move_mid_timer ,regc 
+62fa da4062fc arg shutter_dy_iphone_move_mid_timeout ,regb 
+62fb 20203755 branch timer_single_step 
+
+shutter_dy_iphone_move_mid_timeout:
+62fc 204078ea call queue_empty 
+62fd 247a0000 nrtn blank 
+62fe 6fe146bf fetch 2 ,mem_key_value_xmem 
+62ff 247a0000 nrtn blank 
+
+shutter_dy_iphone_move_mid:
+6300 204065b3 call shutter_dy_check_iphone 
+6301 207a0000 rtn blank 
+6302 18e27e00 copy queue ,pdata 
+6303 2fe00e04 compare 0x04 ,pdata ,0x07 
+6304 2020e30a branch shutter_dy_iphone_up_mid ,true 
+6305 18e27e00 copy queue ,pdata 
+6306 2fe00e01 compare 0x01 ,pdata ,0x07 
+6307 2020e30c branch shutter_dy_iphone_like_mid ,true 
+6308 da604e7d arg mem_shutter_iphone_move_mid ,regc 
+6309 2020618e branch push_buffer_in_queue 
+
+shutter_dy_iphone_up_mid:
+630a da604e96 arg mem_shutter_iphone_up_mid ,regc 
+630b 2020618e branch push_buffer_in_queue 
+
+shutter_dy_iphone_like_mid:
+630c da604ea0 arg mem_shutter_iphone_like_mid ,regc 
+630d 2020618e branch push_buffer_in_queue 
+
+shutter_dy_clear_key_state_timer:
+630e da604c48 arg mem_shutter_like_timeout ,regc 
+630f da406311 arg shutter_dy_clear_key_state_timeout ,regb 
+6310 20203755 branch timer_single_step 
+
+shutter_dy_clear_key_state_timeout:
+6311 df20000a arg shutter_key_conf_sate_bytes ,loopcnt 
+6312 d8a04967 arg mem_shutter_key_state1 ,contw 
+6313 20207ca3 branch clear_mem 
+
+shutter_dy_check_power_off_timer:
+6314 da6046a9 arg mem_shutter_power_off_timer ,regc 
+6315 da406317 arg shutter_dy_check_power_off_timeout ,regb 
+6316 20203755 branch timer_single_step 
+
+shutter_dy_check_power_off_timeout:
+6317 6fe14500 fetch 2 ,mem_ui_state_map 
+6318 c284e1bb bbit1 ui_state_ble_connected ,shutter_wait_power_off 
+6319 2020379c branch app_enter_hibernate 
+
+shutter_dy_process_bb_event:
+631a 1a627e00 copy regc ,pdata 
+631b c00a633c beq bt_evt_le_connected ,ble_shutter_dy_process_baseband_connect 
+631c c00ae337 beq bt_evt_le_disconnected ,ble_shutter_dy_process_baseband_disconnect 
+631d c018e32e beq bt_evt_le_pairing_success ,ble_shutter_dy_pairing_success 
+631e c0206322 beq bt_evt_le_parse_conn_papa_update_rsp ,ble_dy_shutter_process_parse_connect_parameter_update_response 
+631f c1200000 rtneq bt_evt_le_parse_conn_papa_update_rsp 
+6320 c019654b beq bt_evt_le_start_enc ,shutter_dy_le_find_service_hand_by_uuid 
+6321 202060f3 branch shutter_process_bb_event 
+
+ble_dy_shutter_process_parse_connect_parameter_update_response:
+6322 6fe14340 fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+6323 c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+6324 6fe44521 fetch 8 ,mem_ble_shutter_interval_min_new 
+6325 207a0000 rtn blank 
+6326 204065b3 call shutter_dy_check_iphone 
+6327 243a632b nbranch ble_parameter_updata_response_ios ,blank 
+6328 6fe44ecb fetch 8 ,mem_ble_shutter_dy_interval_min_android 
+6329 67e442d5 store 8 ,mem_le_interval_min 
+632a 20202e71 branch le_l2cap_tx_update_req 
+
+ble_parameter_updata_response_ios:
+632b 6fe44ed3 fetch 8 ,mem_ble_shutter_dy_interval_min_ios 
+632c 67e442d5 store 8 ,mem_le_interval_min 
+632d 20202e71 branch le_l2cap_tx_update_req 
+
+ble_shutter_dy_pairing_success:
+632e 704e8901 jam 1 ,mem_shutter_pairing_success 
+632f 20406606 call shutter_dy_clear_move_config 
+6330 6fe14eff fetch 2 ,mem_android_initial_move_x 
+6331 67e14e75 store 2 ,mem_shutter_move_data_x 
+6332 68494f01 fetcht 2 ,mem_android_initial_move_y 
+6333 58000fff setarg 0xfff 
+6334 98467e00 isub temp ,pdata 
+6335 67e14e77 store 2 ,mem_shutter_move_data_y 
+6336 20600000 rtn 
+
+ble_shutter_dy_process_baseband_disconnect:
+6337 704e7200 jam 0 ,mem_shutter_le_conned 
+6338 704e8900 jam 0 ,mem_shutter_pairing_success 
+6339 204063f6 call shutter_dy_move_mode_disable 
+633a 20406348 call shutter_dy_over_clear 
+633b 20206100 branch ble_shutter_process_baseband_disconnect 
+
+ble_shutter_dy_process_baseband_connect:
+633c 1c427e00 copy clkn_bt ,pdata 
+633d 67e24959 store 4 ,mem_key_send_clk 
+633e 204065ac call shutter_dy_remote_not_iphone 
+633f 202060fc branch ble_shutter_process_baseband_connect 
+
+shutter_dy_check_send_data:
+6340 78567c00 disable user2 
+6341 6fe1452d fetch 2 ,mem_shutter_sleep_timeout 
+6342 67e1452f store 2 ,mem_shutter_sleep_timer 
+6343 20406175 call shutter_check_bluetooth_conn 
+6344 20346179 branch shutter_change_bluetooth_status_bt_disconn ,user 
+6345 2040616e call shutter_check_data_enable 
+6346 24740000 nrtn user 
+6347 20207dc0 branch enable_user2 
+
+shutter_dy_over_clear:
+6348 704e8c00 jam 0 ,mem_last_press_key_value 
+6349 20600000 rtn 
+
+shutter_dy_key_value_filter:
+634a 18e27e00 copy queue ,pdata 
+634b c1808000 rtnne shutter_like_key_num 
+634c 20206354 branch shutter_dy_key_press_next 
+
+shutter_dy_key_change:
+634d 20406340 call shutter_dy_check_send_data 
+634e 24760000 nrtn user2 
+634f 1a227e00 deposit rega 
+6350 203a637f branch shutter_dy_shutter_key_release ,blank 
+
+shutter_dy_key_press:
+6351 44e0c018 bpatch patch18_1 ,mem_patch18 
+6352 6fe0cf2a fetch 1 ,mem_shutter_link_loop_flag 
+6353 243a634a nbranch shutter_dy_key_value_filter ,blank 
+
+shutter_dy_key_press_next:
+6354 704c4901 jam 1 ,mem_shutter_key_pressed 
+6355 20403798 call app_led_on 
+6356 20406374 call shutter_dy_key_press_clk 
+6357 204063a9 call shutter_dy_jude_queue_size 
+6358 20216348 branch shutter_dy_over_clear ,positive 
+6359 18e27e00 copy queue ,pdata 
+635a 6848ce8c fetcht 1 ,mem_last_press_key_value 
+635b 98467c00 isub temp ,null 
+635c 2442e36e ncall shutter_dy_iphone_check_move_mid ,zero 
+635d 18e27e00 copy queue ,pdata 
+635e 67e0ce8c store 1 ,mem_last_press_key_value 
+635f 6848ce8f fetcht 1 ,mem_move_mode_key_index 
+6360 98467c00 isub temp ,null 
+6361 2022e36c branch shutter_dy_key_move_to_specify_location ,zero 
+6362 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
+6363 243a6367 nbranch shutter_dy_move_set ,blank 
+
+shutter_dy_page_set:
+6364 204065b5 call shutter_dy_le_get_press_ptr 
+6365 dfe0000a arg max_queue_new_press ,pdata 
+6366 202063a2 branch shutter_dy_push_queue_press_or_release 
+
+shutter_dy_move_set:
+6367 20406602 call shutter_dy_jude_clear_move_config 
+6368 18e27e00 copy queue ,pdata 
+6369 c000e364 beq shutter_like_key_num ,shutter_dy_page_set 
+636a 2040648c call shutter_dy_check_move_data 
+636b 2020643d branch shutter_dy_move_to_specify_location 
+
+shutter_dy_key_move_to_specify_location:
+636c 704e8d01 jam 1 ,mem_shutter_first_move 
+636d 2020643d branch shutter_dy_move_to_specify_location 
+
+shutter_dy_iphone_check_move_mid:
+636e 44e14018 bpatch patch18_2 ,mem_patch18 
+636f 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
+6370 203a6300 branch shutter_dy_iphone_move_mid ,blank 
+6371 18e27e00 copy queue ,pdata 
+6372 c000e300 beq shutter_like_key_num ,shutter_dy_iphone_move_mid 
+6373 20600000 rtn 
+
+shutter_dy_key_press_clk:
+6374 dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
+6375 98effe00 imul32 queue ,pdata 
+6376 da60495d arg mem_shutter_key_state0 ,regc 
+6377 9a60a600 iadd regc ,regc 
+6378 1c427e00 copy clkn_bt ,pdata 
+6379 e7e20013 istore key_state_press_clk_length ,regc 
+637a 1a60a604 increase key_state_press_count_offset ,regc 
+637b efe08013 ifetch 1 ,regc 
+637c 1fe0fe01 increase 1 ,pdata 
+637d e7e08013 istore 1 ,regc 
+637e 20600000 rtn 
+
+shutter_dy_shutter_key_release:
+637f 44e1c018 bpatch patch18_3 ,mem_patch18 
+6380 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
+6381 205a6393 call shutter_dy_key_release_led ,blank 
+
+shutter_dy_shutter_key_release_time:
+6382 dfe0000a arg shutter_key_conf_sate_bytes ,pdata 
+6383 98effe00 imul32 queue ,pdata 
+6384 da60495d arg mem_shutter_key_state0 ,regc 
+6385 9a60a600 iadd regc ,regc 
+6386 e8420013 ifetcht 4 ,regc 
+6387 18467c00 sub temp ,0 ,null 
+6388 20628000 rtn zero 
+6389 1c427e00 copy clkn_bt ,pdata 
+638a 98460400 isub temp ,temp 
+638b 244177f4 ncall ui_timer_timeout ,positive 
+638c 1a608c09 add regc ,key_state_longpress_offset ,contr 
+638d efe08006 ifetch 1 ,contr 
+638e 243a63ae nbranch shutter_dy_push_queue_long_release ,blank 
+638f 1a60a605 increase key_state_release_clk_offset ,regc 
+6390 1c427e00 copy clkn_bt ,pdata 
+6391 e7e20013 istore key_state_release_clk_length ,regc 
+6392 20600000 rtn 
+
+shutter_dy_key_release_led:
+6393 6fe0cf2a fetch 1 ,mem_shutter_link_loop_flag 
+6394 243a3798 nbranch app_led_on ,blank 
+6395 2020379a branch app_led_off 
+
+shutter_dy_push_queue_release:
+6396 1a608c04 add regc ,4 ,contr 
+6397 efe08006 ifetch 1 ,contr 
+6398 20206399 branch shutter_dy_push_queue_release1 
+
+shutter_dy_push_queue_release1:
+6399 204063b4 call shutter_clear_dy_key_state 
+639a 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
+639b 243a63a5 nbranch shutter_dy_move_mode_queue_release ,blank 
+
+shutter_dy_push_queue_release1_next:
+639c 204063a9 call shutter_dy_jude_queue_size 
+639d 20216348 branch shutter_dy_over_clear ,positive 
+639e 204065bb call shutter_dy_le_get_release_ptr 
+639f 18e27e00 copy queue ,pdata 
+63a0 c001e5c3 beq shutter_photo_key_num ,shutter_dy_le_get_release_ptr_volume 
+63a1 dfe0000f arg max_queue_num_release ,pdata 
+
+shutter_dy_push_queue_press_or_release:
+63a2 98effe00 imul32 queue ,pdata 
+63a3 9a60a600 iadd regc ,regc 
+63a4 2020618e branch push_buffer_in_queue 
+
+shutter_dy_move_mode_queue_release:
+63a5 18e27e00 copy queue ,pdata 
+63a6 c000e39c beq shutter_like_key_num ,shutter_dy_push_queue_release1_next 
+63a7 c001e39c beq shutter_photo_key_num ,shutter_dy_push_queue_release1_next 
+63a8 20600000 rtn 
+
+shutter_dy_jude_queue_size:
+63a9 204078f2 call queue_get_size 
+63aa e8408006 ifetcht 1 ,contr 
+63ab 98467e00 isub temp ,pdata 
+63ac 1fe67c0a sub pdata ,max_queue_new_press ,null 
+63ad 20600000 rtn 
+
+shutter_dy_push_queue_long_release:
+63ae 704e8701 jam 1 ,mem_shutter_long_key_released_flag 
+63af 204063b4 call shutter_clear_dy_key_state 
+63b0 204065ec call shutter_dy_clear_volume_timer 
+63b1 da604ab3 arg mem_key0_long_release ,regc 
+63b2 dfe00003 arg max_queue_num_long_release ,pdata 
+63b3 202063a2 branch shutter_dy_push_queue_press_or_release 
+
+shutter_clear_dy_key_state:
+63b4 df20000a arg shutter_key_conf_sate_bytes ,loopcnt 
+63b5 1a620a00 copy regc ,contw 
+63b6 20207ca3 branch clear_mem 
+
+shutter_dy_keyscan_key_process:
+63b7 6fe146bf fetch 2 ,mem_key_value_xmem 
+63b8 67e14445 store 2 ,mem_key_value_retention 
+63b9 20406407 call shutter_dy_keyscan_key_process_next 
+63ba 6fe14445 fetch 2 ,mem_key_value_retention 
+63bb 67e146bf store 2 ,mem_key_value_xmem 
+63bc d8e00000 arg 0 ,queue 
+63bd 6fe0c53a fetch 1 ,mem_shutter_key_num 
+63be 1fe27200 copy pdata ,loopcnt 
+63bf da60495d arg mem_shutter_key_state0 ,regc 
+
+shutter_dy_keyscan_key_check_release_loop:
+63c0 1f227e00 copy loopcnt ,pdata 
+63c1 67e10656 store 2 ,mem_temp 
+63c2 1a627e00 copy regc ,pdata 
+63c3 67e1066a store 2 ,mem_regc 
+63c4 18e27e00 copy queue ,pdata 
+63c5 67e10658 store 2 ,mem_temp + 2 
+63c6 204063fd call shutter_dy_keyscan_key_check_release 
+63c7 6fe1066a fetch 2 ,mem_regc 
+63c8 1fe22600 copy pdata ,regc 
+63c9 6fe10658 fetch 2 ,mem_temp + 2 
+63ca 1fe20e00 copy pdata ,queue 
+63cb 204063d4 call shutter_dy_keyscan_key_check_long_press 
+63cc 6fe10658 fetch 2 ,mem_temp + 2 
+63cd 1fe08e01 add pdata ,1 ,queue 
+63ce 6fe1066a fetch 2 ,mem_regc 
+63cf 1fe0a60a add pdata ,shutter_key_conf_sate_bytes ,regc 
+63d0 6fe10656 fetch 2 ,mem_temp 
+63d1 1fe27200 copy pdata ,loopcnt 
+63d2 c20063c0 loop shutter_dy_keyscan_key_check_release_loop 
+63d3 20600000 rtn 
+
+shutter_dy_keyscan_key_check_long_press:
+63d4 efe20013 ifetch key_state_press_clk_length ,regc 
+63d5 207a0000 rtn blank 
+63d6 1fe20400 copy pdata ,temp 
+63d7 1c427e00 copy clkn_bt ,pdata 
+63d8 98460400 isub temp ,temp 
+63d9 24610000 nrtn positive 
+63da 580009c4 setarg 2500 
+63db 98467c00 isub temp ,null 
+63dc 20610000 rtn positive 
+63dd 1c427e00 copy clkn_bt ,pdata 
+63de e7e20013 istore 4 ,regc 
+63df 1a60a609 increase key_state_longpress_offset ,regc 
+63e0 58000001 setarg 1 
+63e1 e7e08013 istore key_state_longpress_length ,regc 
+63e2 6fe0ce87 fetch 1 ,mem_shutter_long_key_released_flag 
+63e3 207a0000 rtn blank 
+63e4 704e8700 jam 0 ,mem_shutter_long_key_released_flag 
+63e5 44e24018 bpatch patch18_4 ,mem_patch18 
+63e6 204065d8 call shutter_dy_long_key_function 
+63e7 6fe0ce8e fetch 1 ,mem_move_mode_set 
+63e8 c00063eb beq move_combine_key ,shutter_dy_key_long_press_set_key_normal 
+63e9 c000e3ee beq move_single_key ,shutter_dy_key_long_press_set_move_trigger 
+63ea 20600000 rtn 
+
+shutter_dy_key_long_press_set_key_normal:
+63eb 204063f8 call shutter_dy_long_press_android_or_ios 
+63ec dfe00003 arg max_queue_num_long ,pdata 
+63ed 202063a2 branch shutter_dy_push_queue_press_or_release 
+
+shutter_dy_key_long_press_set_move_trigger:
+63ee 18e27e00 copy queue ,pdata 
+63ef 6848ce8f fetcht 1 ,mem_move_mode_key_index 
+63f0 98467c00 isub temp ,null 
+63f1 2422e3eb nbranch shutter_dy_key_long_press_set_key_normal ,zero 
+63f2 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
+63f3 79407e00 setflip 0 ,pdata 
+63f4 67e0ce90 store 1 ,mem_move_mode_trigger_enable 
+63f5 247a0000 nrtn blank 
+
+shutter_dy_move_mode_disable:
+63f6 704e9000 jam 0 ,mem_move_mode_trigger_enable 
+63f7 2020379a branch app_led_off 
+
+shutter_dy_long_press_android_or_ios:
+63f8 da604a98 arg mem_key0_long_press ,regc 
+63f9 204065b3 call shutter_dy_check_iphone 
+63fa 207a0000 rtn blank 
+63fb da604bfd arg mem_key0_long_press_i ,regc 
+63fc 20600000 rtn 
+
+shutter_dy_keyscan_key_check_release:
+63fd 1a60a405 add regc ,key_state_release_clk_offset ,regb 
+63fe efe20012 ifetch key_state_release_clk_length ,regb 
+63ff 207a0000 rtn blank 
+6400 1fe20400 copy pdata ,temp 
+6401 1c427e00 copy clkn_bt ,pdata 
+6402 98460400 isub temp ,temp 
+6403 244177f4 ncall ui_timer_timeout ,positive 
+6404 580003e8 setarg 1000 
+6405 98467c00 isub temp ,null 
+6406 20206396 branch shutter_dy_push_queue_release 
+
+shutter_dy_keyscan_key_process_next:
+6407 6fe14443 fetch 2 ,mem_key_num_ptr 
+6408 efe0803f ifetch 1 ,pdata 
+6409 207a0000 rtn blank 
+640a 58000000 setarg 0 
+640b 67e106cf store 2 ,mem_key_value_temp 
+640c 20407067 call keyscan_scan_key 
+640d 24347793 nbranch lpm_button_clean_wake_lock ,user 
+640e 20407791 call lpm_button_get_wake_lock 
+640f 78547c00 disable user 
+6410 6fe0c38c fetch 1 ,mem_le_adv_enable 
+6411 247a0000 nrtn blank 
+6412 44e2c018 bpatch patch18_5 ,mem_patch18 
+6413 6fe0ce8e fetch 1 ,mem_move_mode_set 
+6414 c000e418 beq move_single_key ,shutter_dy_skip_check_combine_key 
+6415 20406472 call shutter_dy_check_combine_key_release 
+6416 20406425 call shutter_dy_check_combine_key 
+6417 20740000 rtn user 
+
+shutter_dy_skip_check_combine_key:
+6418 2040641e call shutter_dy_single_key_led 
+6419 6fe106cf fetch 2 ,mem_key_value_temp 
+641a 67e106d6 store 2 ,mem_key_value_temp4 
+641b 7006d800 jam 0 ,mem_key_value_temp6 
+641c 18000e00 force 0 ,queue 
+641d 2020709f branch keyscan_key_lp1 
+
+shutter_dy_single_key_led:
+641e 6fe0ce8c fetch 1 ,mem_last_press_key_value 
+641f 6848ce8f fetcht 1 ,mem_move_mode_key_index 
+6420 98467c00 isub temp ,null 
+6421 2022b798 branch app_led_on ,zero 
+6422 6fe0ce90 fetch 1 ,mem_move_mode_trigger_enable 
+6423 243a379a nbranch app_led_off ,blank 
+6424 20600000 rtn 
+
+shutter_dy_check_combine_key:
+6425 d8e00000 arg 0 ,queue 
+
+shutter_dy_check_combine_key_loop:
+6426 da404ace arg mem_combine_key0 ,regb 
+6427 dfe00002 arg 2 ,pdata 
+6428 98effe00 imul32 queue ,pdata 
+6429 9a40a400 iadd regb ,regb 
+642a efe10012 ifetch 2 ,regb 
+642b 207a0000 rtn blank 
+642c 684906cf fetcht 2 ,mem_key_value_temp 
+642d 9842fc00 ixor temp ,null 
+642e 2022e431 branch shutter_dy_check_combine_key_parse ,zero 
+642f 18e08e01 increase 1 ,queue 
+6430 20206426 branch shutter_dy_check_combine_key_loop 
+
+shutter_dy_check_combine_key_parse:
+6431 67e14ada store 2 ,mem_combine_key_state0 
+6432 20403798 call app_led_on 
+6433 da604adc arg mem_combine_key0_press ,regc 
+6434 dfe0000a arg max_queue_num_combinekey ,pdata 
+6435 98effe00 imul32 queue ,pdata 
+6436 9a60a600 iadd regc ,regc 
+6437 20406439 call shutter_dy_push_buffer_in_queue 
+6438 2020647d branch shutter_dy_combine_key_enableuser 
+
+shutter_dy_push_buffer_in_queue:
+6439 20406602 call shutter_dy_jude_clear_move_config 
+643a efe08013 ifetch 1 ,regc 
+643b 207a0000 rtn blank 
+643c 2040648c call shutter_dy_check_move_data 
+
+shutter_dy_move_to_specify_location:
+643d 20406602 call shutter_dy_jude_clear_move_config 
+643e 204065b3 call shutter_dy_check_iphone 
+643f 243a6444 nbranch shutter_dy_move_ios_to_specify_location ,blank 
+6440 dfe0001c arg 0x1c ,pdata 
+6441 2040619f call queue_push_one_byte 
+6442 dfe0001d arg 0x1d ,pdata 
+6443 2020619f branch queue_push_one_byte 
+
+shutter_dy_move_ios_to_specify_location:
+6444 20406453 call shutter_dy_move_down_left_corner 
+6445 2040645e call shutter_dy_move_x_max 
+6446 20406468 call shutter_dy_move_y_max 
+6447 dfe00029 arg 0x29 ,pdata 
+6448 2020619f branch queue_push_one_byte 
+
+shutter_dy_move_down_left_corner_count_set:
+6449 6848ce71 fetcht 1 ,mem_shutter_back_count 
+644a 204065b3 call shutter_dy_check_iphone 
+644b 207a0000 rtn blank 
+644c 6848ce74 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+644d 18408401 increase 1 ,temp 
+644e 6fe0ce8d fetch 1 ,mem_shutter_first_move 
+644f 207a0000 rtn blank 
+6450 6848ce71 fetcht 1 ,mem_shutter_back_count 
+6451 704e8d00 jam 0 ,mem_shutter_first_move 
+6452 20600000 rtn 
+
+shutter_dy_move_down_left_corner:
+6453 20406449 call shutter_dy_move_down_left_corner_count_set 
+6454 18427e00 copy temp ,pdata 
+6455 207a0000 rtn blank 
+6456 67e0ce7a store 1 ,mem_shutter_back_count_cache 
+
+shutter_dy_move_down_left_corner_loop:
+6457 dfe0002b arg 0x2b ,pdata 
+6458 2040619f call queue_push_one_byte 
+6459 6fe0ce7a fetch 1 ,mem_shutter_back_count_cache 
+645a 1fe0ffff increase -1 ,pdata 
+645b 67e0ce7a store 1 ,mem_shutter_back_count_cache 
+645c 207a0000 rtn blank 
+645d 20206457 branch shutter_dy_move_down_left_corner_loop 
+
+shutter_dy_move_x_max:
+645e 6fe0ce73 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+645f 207a0000 rtn blank 
+6460 67e0ce7b store 1 ,mem_shutter_iphone_beyond_x_cache 
+
+shutter_dy_move_x_max_number:
+6461 dfe0002c arg 0x2c ,pdata 
+6462 2040619f call queue_push_one_byte 
+6463 6fe0ce7b fetch 1 ,mem_shutter_iphone_beyond_x_cache 
+6464 1fe0ffff increase -1 ,pdata 
+6465 67e0ce7b store 1 ,mem_shutter_iphone_beyond_x_cache 
+6466 207a0000 rtn blank 
+6467 20206461 branch shutter_dy_move_x_max_number 
+
+shutter_dy_move_y_max:
+6468 6fe0ce74 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+6469 207a0000 rtn blank 
+646a 67e0ce7c store 1 ,mem_shutter_iphone_beyond_y_cache 
+
+shutter_dy_move_y_max_number:
+646b dfe0002d arg 0x2d ,pdata 
+646c 2040619f call queue_push_one_byte 
+646d 6fe0ce7c fetch 1 ,mem_shutter_iphone_beyond_y_cache 
+646e 1fe0ffff increase -1 ,pdata 
+646f 67e0ce7c store 1 ,mem_shutter_iphone_beyond_y_cache 
+6470 207a0000 rtn blank 
+6471 2020646b branch shutter_dy_move_y_max_number 
+
+shutter_dy_check_combine_key_release:
+6472 6fe14ada fetch 2 ,mem_combine_key_state0 
+6473 207a0000 rtn blank 
+6474 684906cf fetcht 2 ,mem_key_value_temp 
+6475 18467c00 sub temp ,0 ,null 
+6476 2022e480 branch shutter_dy_check_combine_key_release_all ,zero 
+6477 98467c00 isub temp ,null 
+6478 20628000 rtn zero 
+6479 60494ada storet 2 ,mem_combine_key_state0 
+647a 6fe14e8a fetch 2 ,mem_combine_key_release_value 
+647b 98467c00 isub temp ,null 
+647c 2042b79a call app_led_off ,zero 
+
+shutter_dy_combine_key_enableuser:
+647d 6fe106cf fetch 2 ,mem_key_value_temp 
+647e 67e14445 store 2 ,mem_key_value_retention 
+647f 20207dbc branch enable_user 
+
+shutter_dy_check_combine_key_release_all:
+6480 704e8701 jam 1 ,mem_shutter_long_key_released_flag 
+6481 2040379a call app_led_off 
+6482 da604b18 arg mem_combine_key_release ,regc 
+6483 20406439 call shutter_dy_push_buffer_in_queue 
+6484 58000000 setarg 0 
+6485 67e14ada store 2 ,mem_combine_key_state0 
+6486 7046b132 jam 50 ,mem_shutter_1s_timer 
+6487 2040647d call shutter_dy_combine_key_enableuser 
+6488 6fe0c53a fetch 1 ,mem_shutter_key_num 
+6489 1feff20a mul32 pdata ,shutter_key_conf_sate_bytes ,loopcnt 
+648a d8a0495d arg mem_shutter_key_state0 ,contw 
+648b 20207ca3 branch clear_mem 
+
+shutter_dy_check_move_data:
+648c 44e34018 bpatch patch18_6 ,mem_patch18 
+648d 6fe0ce8e fetch 1 ,mem_move_mode_set 
+648e c000e491 beq move_single_key ,shutter_dy_check_move_data_single_key 
+648f c0006497 beq move_combine_key ,shutter_dy_check_move_data_combine_key 
+6490 20600000 rtn 
+
+shutter_dy_check_move_data_single_key:
+6491 18e27e00 copy queue ,pdata 
+6492 c002e4c0 beq shutter_left_key_num ,shutter_dy_move_left 
+6493 c0006507 beq shutter_right_key_num ,shutter_dy_move_right 
+6494 c002650f beq shutter_up_key_num ,shutter_dy_move_up 
+6495 c0016539 beq shutter_down_key_num ,shutter_dy_move_down 
+6496 20600000 rtn 
+
+shutter_dy_check_move_data_combine_key:
+6497 efe08013 ifetch 1 ,regc 
+6498 c000e4c0 beq 0x01 ,shutter_dy_move_left 
+6499 c0016507 beq 0x02 ,shutter_dy_move_right 
+649a c001e50f beq 0x03 ,shutter_dy_move_up 
+649b c0026539 beq 0x04 ,shutter_dy_move_down 
+649c c002e49e beq 0x05 ,shutter_dy_get_move_data 
+649d 20600000 rtn 
+
+shutter_dy_get_move_data:
+649e 204065b3 call shutter_dy_check_iphone 
+649f 243a64a8 nbranch shutter_dy_get_move_data_iphone ,blank 
+64a0 5800001b setarg 0x1b 
+64a1 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+64a2 d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+64a3 98408a00 iadd temp ,contw 
+64a4 18a08a05 increase 5 ,contw 
+64a5 6fe24b22 fetch 4 ,mem_shutter_move_data 
+64a6 e7e20005 istore 4 ,contw 
+64a7 20600000 rtn 
+
+shutter_dy_get_move_data_iphone:
+64a8 58000029 setarg 0x29 
+64a9 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+64aa d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+64ab 98408a00 iadd temp ,contw 
+64ac 18a08a03 increase 3 ,contw 
+64ad 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+64ae e7e18005 istore 3 ,contw 
+64af 18a08a07 increase 7 ,contw 
+64b0 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
+64b1 1ff27e00 lshift4 pdata ,pdata 
+64b2 1fed7e00 lshift8 pdata ,pdata 
+64b3 e7e18005 istore 3 ,contw 
+64b4 20600000 rtn 
+
+shutter_dy_move_x_empty_check:
+64b5 6fe0ce73 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+64b6 207a0000 rtn blank 
+64b7 1fe0ffff increase -1 ,pdata 
+64b8 67e0ce73 store 1 ,mem_shutter_iphone_beyond_x_count 
+64b9 dfe00fff arg iphone_once_max_move_value ,pdata 
+64ba 20600000 rtn 
+
+shutter_dy_every_move_size_set:
+64bb d8400055 arg android_every_move_size ,temp 
+64bc 204065b3 call shutter_dy_check_iphone 
+64bd 207a0000 rtn blank 
+64be d8400007 arg iphone_every_move_size ,temp 
+64bf 20600000 rtn 
+
+shutter_dy_move_left:
+64c0 204064bb call shutter_dy_every_move_size_set 
+64c1 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+64c2 98467c00 isub temp ,null 
+64c3 244164b5 ncall shutter_dy_move_x_empty_check ,positive 
+64c4 24610000 nrtn positive 
+64c5 98467e00 isub temp ,pdata 
+
+shutter_dy_move_store_x:
+64c6 67e14e75 store 2 ,mem_shutter_move_data_x 
+
+shutter_dy_move_data_store:
+64c7 44e3c018 bpatch patch18_7 ,mem_patch18 
+64c8 204065b3 call shutter_dy_check_iphone 
+64c9 203a64e2 branch shutter_dy_move_android_data_store ,blank 
+64ca 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+64cb 68494e77 fetcht 2 ,mem_shutter_move_data_y 
+64cc 184d0400 lshift8 temp ,temp 
+64cd 18520400 lshift4 temp ,temp 
+64ce 9840fe00 iadd temp ,pdata 
+64cf 67e1cb22 store 3 ,mem_shutter_move_data 
+64d0 204064d2 call shutter_dy_get_ios_move_data 
+64d1 202064da branch shutter_dy_move_ios_release_data 
+
+shutter_dy_get_ios_move_data:
+64d2 58000028 setarg 0x28 
+64d3 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+64d4 d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+64d5 98408a00 iadd temp ,contw 
+64d6 18a08a03 increase 3 ,contw 
+64d7 6fe1cb22 fetch 3 ,mem_shutter_move_data 
+64d8 e7e18005 istore 3 ,contw 
+64d9 20600000 rtn 
+
+shutter_dy_move_ios_release_data:
+64da 58000029 setarg 0x29 
+64db 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+64dc d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+64dd 98408a00 iadd temp ,contw 
+64de 18a08a03 increase 3 ,contw 
+64df 6fe1cb22 fetch 3 ,mem_shutter_move_data 
+64e0 e7e18005 istore 3 ,contw 
+64e1 20600000 rtn 
+
+shutter_dy_move_android_data_store:
+64e2 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+64e3 68494e77 fetcht 2 ,mem_shutter_move_data_y 
+64e4 18500400 lshift16 temp ,temp 
+64e5 9840fe00 iadd temp ,pdata 
+64e6 67e24b22 store 4 ,mem_shutter_move_data 
+64e7 204064e9 call shutter_dy_move_android_release_data 
+64e8 202064f1 branch shutter_dy_data_android_xy_data 
+
+shutter_dy_move_android_release_data:
+64e9 5800001b setarg 0x1b 
+64ea 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+64eb d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+64ec 98408a00 iadd temp ,contw 
+64ed 18a08a05 increase 5 ,contw 
+64ee 6fe24b22 fetch 4 ,mem_shutter_move_data 
+64ef e7e20005 istore 4 ,contw 
+64f0 20600000 rtn 
+
+shutter_dy_data_android_xy_data:
+64f1 5800001c setarg 0x1c 
+64f2 1feffe0a mul32 pdata ,every_payload_len ,pdata 
+64f3 d8404c4b arg mem_shutter_mousekey_value_list ,temp 
+64f4 98408a00 iadd temp ,contw 
+64f5 18a08a05 increase 5 ,contw 
+64f6 6fe24b22 fetch 4 ,mem_shutter_move_data 
+64f7 e7e20005 istore 4 ,contw 
+64f8 20600000 rtn 
+
+shutter_dy_move_x_check_max:
+64f9 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+64fa d8400fff arg iphone_once_max_move_value ,temp 
+64fb 98460400 isub temp ,temp 
+64fc 24610000 nrtn positive 
+64fd 18427e00 copy temp ,pdata 
+64fe 6848ce73 fetcht 1 ,mem_shutter_iphone_beyond_x_count 
+64ff 18467c03 sub temp ,0x03 ,null 
+6500 2022e504 branch shutter_dy_clear_move_x ,zero 
+6501 18408401 increase 1 ,temp 
+6502 6048ce73 storet 1 ,mem_shutter_iphone_beyond_x_count 
+6503 202064c6 branch shutter_dy_move_store_x 
+
+shutter_dy_clear_move_x:
+6504 704e7300 jam 0 ,mem_shutter_iphone_beyond_x_count 
+6505 dfe00000 arg 0 ,pdata 
+6506 202064c6 branch shutter_dy_move_store_x 
+
+shutter_dy_move_right:
+6507 204065b3 call shutter_dy_check_iphone 
+6508 245a64f9 ncall shutter_dy_move_x_check_max ,blank 
+6509 204064bb call shutter_dy_every_move_size_set 
+650a 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+
+shutter_dy_move_right_next:
+650b 9840fe00 iadd temp ,pdata 
+650c d8400fff arg 0xfff ,temp 
+650d 20407d6e call ceiling 
+650e 202064c6 branch shutter_dy_move_store_x 
+
+shutter_dy_move_up:
+650f 204065b3 call shutter_dy_check_iphone 
+6510 203a6523 branch shutter_dy_dnroid_up_check_y ,blank 
+
+shutter_dy_move_y_check_max:
+6511 204064bb call shutter_dy_every_move_size_set 
+6512 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
+6513 98467e00 isub temp ,pdata 
+6514 67e14e77 store 2 ,mem_shutter_move_data_y 
+6515 68494e77 fetcht 2 ,mem_shutter_move_data_y 
+6516 58000fff setarg 0xfff 
+6517 98467e00 isub temp ,pdata 
+6518 d8400fff arg iphone_once_max_move_value ,temp 
+6519 98460400 isub temp ,temp 
+651a 242164c7 nbranch shutter_dy_move_data_store ,positive 
+651b 58000fff setarg 0xfff 
+651c 98467e00 isub temp ,pdata 
+651d 6848ce74 fetcht 1 ,mem_shutter_iphone_beyond_y_count 
+651e 18467c05 sub temp ,0x05 ,null 
+651f 2022e52a branch shutter_dy_clear_move_y ,zero 
+6520 18408401 increase 1 ,temp 
+6521 6048ce74 storet 1 ,mem_shutter_iphone_beyond_y_count 
+6522 20206537 branch shutter_dy_move_store_y 
+
+shutter_dy_dnroid_up_check_y:
+6523 204064bb call shutter_dy_every_move_size_set 
+6524 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
+6525 98467c00 isub temp ,null 
+6526 24610000 nrtn positive 
+6527 98467e00 isub temp ,pdata 
+6528 67e14e77 store 2 ,mem_shutter_move_data_y 
+6529 202064c7 branch shutter_dy_move_data_store 
+
+shutter_dy_clear_move_y:
+652a 704e7400 jam 0 ,mem_shutter_iphone_beyond_y_count 
+
+shutter_dy_android_move_y_empty_check:
+652b 58000fff setarg 0xfff 
+652c 20206537 branch shutter_dy_move_store_y 
+
+shutter_dy_move_y_empty_check:
+652d 204065b3 call shutter_dy_check_iphone 
+652e 203a652b branch shutter_dy_android_move_y_empty_check ,blank 
+652f 6fe0ce74 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+6530 203a652b branch shutter_dy_android_move_y_empty_check ,blank 
+6531 1fe0ffff increase -1 ,pdata 
+6532 67e0ce74 store 1 ,mem_shutter_iphone_beyond_y_count 
+6533 5800ffff setarg 0xffff 
+6534 d8400fff arg iphone_once_max_move_value ,temp 
+6535 98467e00 isub temp ,pdata 
+6536 9a20fe00 iadd rega ,pdata 
+
+shutter_dy_move_store_y:
+6537 67e14e77 store 2 ,mem_shutter_move_data_y 
+6538 202064c7 branch shutter_dy_move_data_store 
+
+shutter_dy_move_down:
+6539 204065b3 call shutter_dy_check_iphone 
+653a 203a6542 branch shutter_dy_move_android_down ,blank 
+
+shutter_dy_move_down_next:
+653b 204064bb call shutter_dy_every_move_size_set 
+653c 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
+653d 9840fe00 iadd temp ,pdata 
+653e d8400fff arg 0xfff ,temp 
+653f 98462200 isub temp ,rega 
+6540 2041652d call shutter_dy_move_y_empty_check ,positive 
+6541 20206537 branch shutter_dy_move_store_y 
+
+shutter_dy_move_android_down:
+6542 204064bb call shutter_dy_every_move_size_set 
+6543 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
+6544 9840fe00 iadd temp ,pdata 
+6545 d8400fff arg 0xfff ,temp 
+6546 20407d6e call ceiling 
+6547 20206537 branch shutter_dy_move_store_y 
+
+ble_shutter_dy_receive_data:
+6548 6fe1439c fetch 2 ,mem_le_att_handle 
+6549 c0126103 beq gatt_keyboard_write_handle_new ,ble_shutter_process_reconnect_complete 
+654a 20600000 rtn 
+
+shutter_dy_le_find_service_hand_by_uuid:
+654b da200017 arg 23 ,rega 
+654c da400004 arg le_l2cap_cid_att ,regb 
+654d 204029d9 call le_fifo_malloc_tx_l2cap 
+654e 58000006 setarg attop_find_by_type_value_request 
+654f e7e08005 istore 1 ,contw 
+6550 58000001 setarg 0x0001 
+6551 e7e10005 istore 2 ,contw 
+6552 5800ffff setarg 0xffff 
+6553 e7e10005 istore 2 ,contw 
+6554 58002800 setarg 0x2800 
+6555 e7e10005 istore 2 ,contw 
+6556 d8c04947 arg mem_dy_le_search_service_uuid ,contr 
+6557 20207c91 branch memcpy16 
+
+shutter_dy_le_parse_att:
+6558 44e44019 bpatch patch19_0 ,mem_patch19 
+6559 1a220c00 copy rega ,contr 
+655a efe18006 ifetch 3 ,contr 
+655b 67e1c39b store 3 ,mem_le_att_opcode 
+655c c003e587 beq attop_find_by_type_value_response ,shutter_dy_le_parse_att_find_by_type_value_rsp 
+655d c000e5a8 beq attop_error_response ,shutter_dy_le_parse_error_rsp 
+655e c0056577 beq attop_read_request ,shutter_dy_le_parse_att_read_request 
+655f c0066561 beq attop_read_blob_request ,shutter_dy_le_parse_att_read_blob_request 
+6560 20202b76 branch le_parse_att2 
+
+shutter_dy_le_parse_att_read_blob_request:
+6561 efe10006 ifetch 2 ,contr 
+6562 67e10693 store 2 ,mem_le_att_offset 
+6563 98002200 iforce rega 
+6564 6849439c fetcht 2 ,mem_le_att_handle 
+6565 6fe14334 fetch 2 ,mem_le_pairing_handle 
+6566 98467c00 isub temp ,null 
+6567 2422ad2e nbranch le_send_att_read_blob_response ,zero 
+6568 204065b3 call shutter_dy_check_iphone 
+6569 243a656c nbranch shutter_dy_le_parse_att_read_blob_request_ios ,blank 
+656a 68494943 fetcht 2 ,mem_shutter_le_map_len_android 
+656b 2020656d branch shutter_dy_le_parse_att_read_blob_request2 
+
+shutter_dy_le_parse_att_read_blob_request_ios:
+656c 68494945 fetcht 2 ,mem_shutter_le_map_len_ios 
+
+shutter_dy_le_parse_att_read_blob_request2:
+656d d8c046c1 arg mem_shutter_le_hid_map ,contr 
+656e 20407c6f call store_contr 
+656f 18427e00 copy temp ,pdata 
+6570 9a267e00 isub rega ,pdata 
+6571 24212de1 nbranch le_send_att_error_response_notfound ,positive 
+6572 1fe0fe01 increase 1 ,pdata 
+6573 1fe67c17 sub pdata ,23 ,null 
+6574 20212d37 branch le_send_att_read_blob_response_less ,positive 
+6575 18007e17 force 23 ,pdata 
+6576 20202d37 branch le_send_att_read_blob_response_less 
+
+shutter_dy_le_parse_att_read_request:
+6577 6849439c fetcht 2 ,mem_le_att_handle 
+6578 6fe0c323 fetch 1 ,mem_le_configuration 
+6579 c281e57b bbit1 bit_ble_read_auth ,shutter_dy_le_send_att_read_response_check_auth 
+657a 20202cfb branch le_send_att_read_response 
+
+shutter_dy_le_send_att_read_response_check_auth:
+657b 6fe14334 fetch 2 ,mem_le_pairing_handle 
+657c 98467c00 isub temp ,null 
+657d 2422acfb nbranch le_send_att_read_response ,zero 
+657e 20402da5 call le_check_encrypt_state 
+657f 24346581 nbranch shutter_dy_le_send_att_read_response ,user 
+6580 20202d24 branch le_send_att_read_response_error_insufficient_auth 
+
+shutter_dy_le_send_att_read_response:
+6581 6fe14334 fetch 2 ,mem_le_pairing_handle 
+6582 98467c00 isub temp ,null 
+6583 2422acfb nbranch le_send_att_read_response ,zero 
+6584 d8c046c1 arg mem_shutter_le_hid_map ,contr 
+6585 18007e17 force 23 ,pdata 
+6586 20202d0b branch le_send_att_read_response_less 
+
+shutter_dy_le_parse_att_find_by_type_value_rsp:
+
+shutter_dy_le_remote_iphone:
+6587 44e4c019 bpatch patch19_1 ,mem_patch19 
+6588 704e7105 jam 5 ,mem_shutter_back_count 
+6589 70495701 jam 1 ,mem_iphone_flag 
+658a 704e7901 jam 1 ,mem_last_shutter_le_iphone_flag 
+658b 704958f0 jam 240 ,mem_send_data_delay 
+658c 704e880a jam 10 ,mem_shutter_move_mid_timer 
+658d 704e8d01 jam 1 ,mem_shutter_first_move 
+658e 20406642 call shutter_dy_load_move_config_info 
+658f 6fe0ce89 fetch 1 ,mem_shutter_pairing_success 
+6590 207a0000 rtn blank 
+6591 20406606 call shutter_dy_clear_move_config 
+6592 d8400fff arg iphone_once_max_move_value ,temp 
+6593 6fe14f03 fetch 2 ,mem_iphone_initial_move_x 
+6594 da204e75 arg mem_shutter_move_data_x ,rega 
+6595 da404e73 arg mem_shutter_iphone_beyond_x_count ,regb 
+6596 204065a1 call shutter_dy_iphone_move_initial_set 
+6597 d8400fff arg iphone_once_max_move_value ,temp 
+6598 6fe14f05 fetch 2 ,mem_iphone_initial_move_y 
+6599 da204e77 arg mem_shutter_move_data_y ,rega 
+659a da404e74 arg mem_shutter_iphone_beyond_y_count ,regb 
+659b 204065a1 call shutter_dy_iphone_move_initial_set 
+659c 58000fff setarg 0xfff 
+659d 68494e77 fetcht 2 ,mem_shutter_move_data_y 
+659e 98467e00 isub temp ,pdata 
+659f 67e14e77 store 2 ,mem_shutter_move_data_y 
+65a0 20600000 rtn 
+
+shutter_dy_iphone_move_initial_set:
+65a1 9846fc00 idiv temp 
+65a2 20407d64 call wait_div_end 
+65a3 1807fe00 quotient pdata 
+65a4 18070400 remainder temp 
+65a5 e7e08012 istore 1 ,regb 
+65a6 e0410011 istoret 2 ,rega 
+65a7 20600000 rtn 
+
+shutter_dy_le_parse_error_rsp:
+65a8 18c08dfe increase -2 ,contr 
+65a9 efe08006 ifetch 1 ,contr 
+65aa c00365b1 beq attop_find_by_type_value_request ,shutter_dy_not_iphone_read_conf 
+65ab 20600000 rtn 
+
+shutter_dy_remote_not_iphone:
+65ac 704e7101 jam 1 ,mem_shutter_back_count 
+65ad 70495700 jam 0 ,mem_iphone_flag 
+65ae 704e7900 jam 0 ,mem_last_shutter_le_iphone_flag 
+65af 7049580a jam 10 ,mem_send_data_delay 
+65b0 20600000 rtn 
+
+shutter_dy_not_iphone_read_conf:
+65b1 204065ac call shutter_dy_remote_not_iphone 
+65b2 20206642 branch shutter_dy_load_move_config_info 
+
+shutter_dy_check_iphone:
+65b3 6fe0c957 fetch 1 ,mem_iphone_flag 
+65b4 20600000 rtn 
+
+shutter_dy_le_get_press_ptr:
+65b5 da6049b7 arg mem_dy_key0_press ,regc 
+65b6 204065b3 call shutter_dy_check_iphone 
+65b7 207a0000 rtn blank 
+65b8 70495878 jam 120 ,mem_send_data_delay 
+65b9 da604b26 arg mem_key0_press_i ,regc 
+65ba 20600000 rtn 
+
+shutter_dy_le_get_release_ptr:
+
+shutter_dy_le_get_release_ptr_set:
+65bb da604a11 arg mem_key0_release_new ,regc 
+65bc 204065b3 call shutter_dy_check_iphone 
+65bd 207a0000 rtn blank 
+65be da604b76 arg mem_key0_release_new_i ,regc 
+65bf 7049580c jam 12 ,mem_send_data_delay 
+65c0 18e27e00 copy queue ,pdata 
+65c1 c1008000 rtneq shutter_like_key_num 
+65c2 20600000 rtn 
+
+shutter_dy_le_get_release_ptr_volume:
+65c3 44e54019 bpatch patch19_2 ,mem_patch19 
+65c4 6fe0cc47 fetch 1 ,mem_key3_press_count 
+65c5 79407e00 setflip 0 ,pdata 
+65c6 67e0cc47 store 1 ,mem_key3_press_count 
+65c7 c00065cc beq 0 ,shutter_dy_le_get_release_ptr_set_volume_inc 
+65c8 c000e5ca beq 1 ,shutter_dy_le_get_release_ptr_set_volume_dec 
+65c9 20600000 rtn 
+
+shutter_dy_le_get_release_ptr_set_volume_dec:
+65ca 204065d3 call shutter_dy_le_get_vol_dec_ptr 
+65cb 2020618e branch push_buffer_in_queue 
+
+shutter_dy_le_get_release_ptr_set_volume_inc:
+65cc 204065ce call shutter_dy_le_get_vol_inc_ptr 
+65cd 2020618e branch push_buffer_in_queue 
+
+shutter_dy_le_get_vol_inc_ptr:
+65ce da604a3e arg mem_key3_release_new ,regc 
+65cf 204065b3 call shutter_dy_check_iphone 
+65d0 207a0000 rtn blank 
+65d1 da604ba3 arg mem_key3_release_new_i ,regc 
+65d2 20600000 rtn 
+
+shutter_dy_le_get_vol_dec_ptr:
+65d3 da604c33 arg mem_key3_release_new_t ,regc 
+65d4 204065b3 call shutter_dy_check_iphone 
+65d5 207a0000 rtn blank 
+65d6 da604c3d arg mem_key3_release_new_i_t ,regc 
+65d7 20600000 rtn 
+
+shutter_dy_long_key_function:
+65d8 18e27e00 copy queue ,pdata 
+65d9 c000e5fa beq shutter_like_key_num ,shutter_dy_link_key_long_press 
+65da c00165e8 beq shutter_down_key_num ,shutter_dy_loop_send_volume_dec_page 
+65db c00265e4 beq shutter_up_key_num ,shutter_dy_loop_send_volume_inc_page 
+65dc 20600000 rtn 
+
+shutter_dy_long_key_volume_timer:
+65dd da604f18 arg mem_shutter_volume_timer ,regc 
+65de da4065e0 arg shutter_dy_long_key_volume_timeout ,regb 
+65df 20203755 branch timer_single_step 
+
+shutter_dy_long_key_volume_timeout:
+65e0 704f1804 jam 4 ,mem_shutter_volume_timer 
+65e1 6fe0cc47 fetch 1 ,mem_key3_press_count 
+65e2 203a65e4 branch shutter_dy_loop_send_volume_inc_page ,blank 
+65e3 202065e8 branch shutter_dy_loop_send_volume_dec_page 
+
+shutter_dy_loop_send_volume_inc_page:
+65e4 704c4700 jam 0 ,mem_key3_press_count 
+65e5 704f1804 jam 4 ,mem_shutter_volume_timer 
+65e6 da604aa4 arg mem_key4_long_press ,regc 
+65e7 2020618e branch push_buffer_in_queue 
+
+shutter_dy_loop_send_volume_dec_page:
+65e8 704c4701 jam 1 ,mem_key3_press_count 
+65e9 704f1804 jam 4 ,mem_shutter_volume_timer 
+65ea da604a9e arg mem_key2_long_press ,regc 
+65eb 2020618e branch push_buffer_in_queue 
+
+shutter_dy_clear_volume_timer:
+65ec 704c4700 jam 0 ,mem_key3_press_count 
+65ed 704f1800 jam 0 ,mem_shutter_volume_timer 
+65ee 20600000 rtn 
+
+shutter_dy_link_key_loop_timer:
+65ef da604f19 arg mem_shutter_link_timer ,regc 
+65f0 da4065f2 arg shutter_dy_link_key_loop_timeout ,regb 
+65f1 20203755 branch timer_single_step 
+
+shutter_dy_link_key_loop_timeout:
+65f2 704f1902 jam 2 ,mem_shutter_link_timer 
+65f3 204065f5 call shutter_dy_link_data_android_or_ios 
+65f4 2020618e branch push_buffer_in_queue 
+
+shutter_dy_link_data_android_or_ios:
+65f5 da604f1a arg mem_shutter_link_data ,regc 
+65f6 204065b3 call shutter_dy_check_iphone 
+65f7 207a0000 rtn blank 
+65f8 da604f22 arg mem_shutter_link_data_i ,regc 
+65f9 20600000 rtn 
+
+shutter_dy_link_key_long_press:
+65fa 6fe0cf2a fetch 1 ,mem_shutter_link_loop_flag 
+65fb 243a65ff nbranch shutter_dy_clear_link_key_timer ,blank 
+65fc 704f2a01 jam 1 ,mem_shutter_link_loop_flag 
+65fd 704f1902 jam 2 ,mem_shutter_link_timer 
+65fe 20600000 rtn 
+
+shutter_dy_clear_link_key_timer:
+65ff 704f2a00 jam 0 ,mem_shutter_link_loop_flag 
+6600 704f1900 jam 0 ,mem_shutter_link_timer 
+6601 20600000 rtn 
+
+shutter_dy_jude_clear_move_config:
+6602 6fe0ce72 fetch 1 ,mem_shutter_le_conned 
+6603 247a0000 nrtn blank 
+6604 704e7201 jam 1 ,mem_shutter_le_conned 
+6605 202064c7 branch shutter_dy_move_data_store 
+
+shutter_dy_clear_move_config:
+6606 58000000 setarg 0 
+6607 67e3ce73 store 7 ,mem_move_config 
+6608 20600000 rtn 
+
+shutter_dy_write_otp_convert_data:
+6609 204065b3 call shutter_dy_check_iphone 
+660a c000e611 beq 0x01 ,shutter_dy_store_ios_config_data 
+660b c0006623 beq 0x00 ,shutter_dy_store_android_config 
+660c 20600000 rtn 
+
+shutter_dy_read_otp_convert_data:
+660d 6fe0cf0b fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+660e c000e62a beq 0x01 ,shutter_dy_get_ios_config 
+660f c000663c beq 0x00 ,shutter_dy_get_android_config 
+6610 20600000 rtn 
+
+shutter_dy_store_ios_config_data:
+6611 6fe0ce73 fetch 1 ,mem_shutter_iphone_beyond_x_count 
+6612 1fefffff mul32 pdata ,iphone_once_max_move_value ,pdata 
+6613 1fe20400 copy pdata ,temp 
+6614 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+6615 9840fe00 iadd temp ,pdata 
+6616 67e14f07 store 2 ,mem_otp_shutter_move_data_x 
+6617 6fe0ce74 fetch 1 ,mem_shutter_iphone_beyond_y_count 
+6618 1fefffff mul32 pdata ,iphone_once_max_move_value ,pdata 
+6619 1fe20400 copy pdata ,temp 
+661a 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
+661b 1fe22200 copy pdata ,rega 
+661c 58000fff setarg 0xfff 
+661d 9a267e00 isub rega ,pdata 
+661e 9840fe00 iadd temp ,pdata 
+661f 67e14f09 store 2 ,mem_otp_shutter_move_data_y 
+6620 204065b3 call shutter_dy_check_iphone 
+6621 67e0cf0b store 1 ,mem_otp_last_shutter_le_iphone_flag 
+6622 20600000 rtn 
+
+shutter_dy_store_android_config:
+6623 6fe14e75 fetch 2 ,mem_shutter_move_data_x 
+6624 67e14f07 store 2 ,mem_otp_shutter_move_data_x 
+6625 6fe14e77 fetch 2 ,mem_shutter_move_data_y 
+6626 67e14f09 store 2 ,mem_otp_shutter_move_data_y 
+6627 204065b3 call shutter_dy_check_iphone 
+6628 67e0cf0b store 1 ,mem_otp_last_shutter_le_iphone_flag 
+6629 20600000 rtn 
+
+shutter_dy_get_ios_config:
+662a 6fe14f07 fetch 2 ,mem_otp_shutter_move_data_x 
+662b 1fe6fdff div pdata ,iphone_once_max_move_value 
+662c 20407d64 call wait_div_end 
+662d 1807fe00 quotient pdata 
+662e 18070400 remainder temp 
+662f 67e0ce73 store 1 ,mem_shutter_iphone_beyond_x_count 
+6630 18427e00 copy temp ,pdata 
+6631 67e14e75 store 2 ,mem_shutter_move_data_x 
+6632 6fe14f09 fetch 2 ,mem_otp_shutter_move_data_y 
+6633 1fe6fdff div pdata ,iphone_once_max_move_value 
+6634 20407d64 call wait_div_end 
+6635 1807fe00 quotient pdata 
+6636 18070400 remainder temp 
+6637 67e0ce74 store 1 ,mem_shutter_iphone_beyond_y_count 
+6638 58000fff setarg 0xfff 
+6639 98467e00 isub temp ,pdata 
+663a 67e14e77 store 2 ,mem_shutter_move_data_y 
+663b 20600000 rtn 
+
+shutter_dy_get_android_config:
+663c 6fe14f07 fetch 2 ,mem_otp_shutter_move_data_x 
+663d 67e14e75 store 2 ,mem_shutter_move_data_x 
+663e 6fe14f09 fetch 2 ,mem_otp_shutter_move_data_y 
+663f 67e14e77 store 2 ,mem_shutter_move_data_y 
+6640 20600000 rtn 
+
+shutter_dy_store_move_config_info:
+6641 202066bd branch shutter_dy_campare_effective_addr_write_otp 
+
+shutter_dy_load_move_config_info:
+6642 202066a4 branch shutter_dy_campare_effective_addr_read_otp 
+
+shutter_dy_shutter_uart_config_loop:
+6643 20406665 call shutter_dy_update_read_check_addr 
+6644 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+6645 204066d0 call shutter_dy_shutter_read_move_config_from_otp_addr 
+6646 704f1600 jam 0 ,mem_shutter_first_read_flag 
+6647 6fe2cf07 fetch 5 ,mem_otp_move_config 
+6648 704f1700 jam 0 ,mem_shutter_valid_data_flag 
+6649 704f1400 jam 0 ,mem_shutter_temp_count 
+664a 20406669 call shutter_dy_campare_otp_data 
+664b 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
+664c c1000000 rtneq 0 
+664d 20206643 branch shutter_dy_shutter_uart_config_loop 
+
+shutter_dy_shutter_get_first_read_addr:
+664e 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
+664f 1fe0fffb increase -5 ,pdata 
+6650 67e14f0e store 2 ,mem_otp_read_offset_addr 
+6651 20600000 rtn 
+
+shutter_dy_shutter_next_read_addr:
+6652 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+6653 1fe0fffb increase -5 ,pdata 
+6654 67e14f0e store 2 ,mem_otp_read_offset_addr 
+6655 20600000 rtn 
+
+shutter_dy_shutter_last_read_addr:
+6656 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+6657 1fe0fe05 pincrease 5 
+6658 67e14f0e store 2 ,mem_otp_read_offset_addr 
+6659 20600000 rtn 
+
+shutter_dy_shutter_read_ios_android_addr:
+665a 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
+665b 1fe0fe05 pincrease 5 
+665c 67e14f10 store 2 ,mem_otp_read_ios_android_addr 
+665d 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
+665e 1fe20400 copy pdata ,temp 
+665f 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
+6660 98467e00 isub temp ,pdata 
+6661 d8400005 arg shutter_para_total_num ,temp 
+6662 98467c00 isub temp ,null 
+6663 24216689 nbranch shutter_dy_shutter_not_find_ios_or_android ,positive 
+6664 20600000 rtn 
+
+shutter_dy_update_read_check_addr:
+6665 6fe0cf16 fetch 1 ,mem_shutter_first_read_flag 
+6666 c000e64e beq 0x01 ,shutter_dy_shutter_get_first_read_addr 
+6667 c0006652 beq 0x00 ,shutter_dy_shutter_next_read_addr 
+6668 20600000 rtn 
+
+shutter_dy_campare_otp_data:
+6669 da400000 arg 0x0 ,regb 
+666a 1a420400 copy regb ,temp 
+666b 6fe14f07 fetch 2 ,mem_otp_shutter_move_data_x 
+666c a843fe00 icompare 0xffff ,temp 
+666d 2440e679 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+666e da400000 arg 0x0 ,regb 
+666f 1a420400 copy regb ,temp 
+6670 6fe14f09 fetch 2 ,mem_otp_shutter_move_data_y 
+6671 a843fe00 icompare 0xffff ,temp 
+6672 2440e679 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+6673 da400000 arg 0x0 ,regb 
+6674 1a420400 copy regb ,temp 
+6675 6fe0cf0b fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+6676 a841fe00 icompare 0xff ,temp 
+6677 2440e679 ncall shutter_dy_set_shutter_valid_data_flag ,true 
+6678 20600000 rtn 
+
+shutter_dy_set_shutter_valid_data_flag:
+6679 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
+667a 1fe0fe01 pincrease 1 
+667b 67e0cf14 store 1 ,mem_shutter_temp_count 
+667c 20600000 rtn 
+
+shutter_dy_shutter_judge_ios_or_android:
+667d 704f1401 jam 1 ,mem_shutter_temp_count 
+667e 2040665a call shutter_dy_shutter_read_ios_android_addr 
+667f 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
+6680 204066d0 call shutter_dy_shutter_read_move_config_from_otp_addr 
+6681 204065b3 call shutter_dy_check_iphone 
+6682 1fe20400 copy pdata ,temp 
+6683 6fe0cf0b fetch 1 ,mem_otp_last_shutter_le_iphone_flag 
+6684 a841fe00 icompare 0xff ,temp 
+6685 2040e6a2 call shutter_dy_clear_temp_count ,true 
+6686 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
+6687 c1000000 rtneq 0 
+6688 2020667d branch shutter_dy_shutter_judge_ios_or_android 
+
+shutter_dy_shutter_not_find_ios_or_android:
+6689 44e5c019 bpatch patch19_3 ,mem_patch19 
+668a 204066a2 call shutter_dy_clear_temp_count 
+668b 204065b3 call shutter_dy_check_iphone 
+668c 203a668e branch shutter_dy_shutter_android_save_init_loaction ,blank 
+668d 20206693 branch shutter_dy_shutter_ios_save_init_loaction 
+
+shutter_dy_shutter_android_save_init_loaction:
+668e 6fe14eff fetch 2 ,mem_android_initial_move_x 
+668f 67e14e75 store 2 ,mem_shutter_move_data_x 
+6690 6fe14f01 fetch 2 ,mem_android_initial_move_y 
+6691 67e14e77 store 2 ,mem_shutter_move_data_y 
+6692 20206641 branch shutter_dy_store_move_config_info 
+
+shutter_dy_shutter_ios_save_init_loaction:
+6693 d8400fff arg iphone_once_max_move_value ,temp 
+6694 6fe14f03 fetch 2 ,mem_iphone_initial_move_x 
+6695 da204e75 arg mem_shutter_move_data_x ,rega 
+6696 da404e73 arg mem_shutter_iphone_beyond_x_count ,regb 
+6697 204065a1 call shutter_dy_iphone_move_initial_set 
+6698 d8400fff arg iphone_once_max_move_value ,temp 
+6699 6fe14f05 fetch 2 ,mem_iphone_initial_move_y 
+669a da204e77 arg mem_shutter_move_data_y ,rega 
+669b da404e74 arg mem_shutter_iphone_beyond_y_count ,regb 
+669c 204065a1 call shutter_dy_iphone_move_initial_set 
+669d 58000fff setarg 0xfff 
+669e 68494e77 fetcht 2 ,mem_shutter_move_data_y 
+669f 98467e00 isub temp ,pdata 
+66a0 67e14e77 store 2 ,mem_shutter_move_data_y 
+66a1 20206641 branch shutter_dy_store_move_config_info 
+
+shutter_dy_clear_temp_count:
+66a2 704f1400 jam 0 ,mem_shutter_temp_count 
+66a3 20600000 rtn 
+
+shutter_dy_campare_effective_addr_read_otp:
+66a4 44e64019 bpatch patch19_4 ,mem_patch19 
+66a5 704f1601 jam 1 ,mem_shutter_first_read_flag 
+66a6 20406643 call shutter_dy_shutter_uart_config_loop 
+66a7 6fe14efd fetch 2 ,mem_shutter_efuse_end_offset 
+66a8 1fe20400 copy pdata ,temp 
+66a9 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+66aa 98467e00 isub temp ,pdata 
+66ab d8400000 arg 0x0 ,temp 
+66ac 98467c00 isub temp ,null 
+66ad 24610000 nrtn positive 
+66ae 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+66af 1fe20400 copy pdata ,temp 
+66b0 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
+66b1 1fe0fffb increase -5 ,pdata 
+66b2 98467e00 isub temp ,pdata 
+66b3 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+66b4 67e14f10 store 2 ,mem_otp_read_ios_android_addr 
+66b5 2040667d call shutter_dy_shutter_judge_ios_or_android 
+66b6 6fe14f10 fetch 2 ,mem_otp_read_ios_android_addr 
+66b7 2442e6d0 ncall shutter_dy_shutter_read_move_config_from_otp_addr ,zero 
+66b8 704f1400 jam 0 ,mem_shutter_temp_count 
+66b9 20406669 call shutter_dy_campare_otp_data 
+66ba 6fe0cf14 fetch 1 ,mem_shutter_temp_count 
+66bb c1000000 rtneq 0 
+66bc 2020660d branch shutter_dy_read_otp_convert_data 
+
+shutter_dy_campare_effective_addr_write_otp:
+66bd 44e6c019 bpatch patch19_5 ,mem_patch19 
+66be 704f1601 jam 1 ,mem_shutter_first_read_flag 
+66bf 20406643 call shutter_dy_shutter_uart_config_loop 
+66c0 68494efd fetcht 2 ,mem_shutter_efuse_end_offset 
+66c1 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+66c2 98467e00 isub temp ,pdata 
+66c3 d8400000 arg 0x0 ,temp 
+66c4 98467c00 isub temp ,null 
+66c5 24610000 nrtn positive 
+66c6 68494f0e fetcht 2 ,mem_otp_read_offset_addr 
+66c7 6fe14efb fetch 2 ,mem_shutter_efuse_start_offset 
+66c8 98467e00 isub temp ,pdata 
+66c9 d8400000 arg 0x0 ,temp 
+66ca 98467c00 isub temp ,null 
+66cb 24610000 nrtn positive 
+66cc 6fe14f0e fetch 2 ,mem_otp_read_offset_addr 
+66cd 67e14f0c store 2 ,mem_otp_write_offset_addr 
+66ce 20406609 call shutter_dy_write_otp_convert_data 
+66cf 202066d5 branch shutter_dy_shutter_write_move_config_to_otp_addr 
+
+shutter_dy_shutter_read_move_config_from_otp_addr:
+66d0 1fe22400 copy pdata ,regb 
+66d1 44e74019 bpatch patch19_6 ,mem_patch19 
+66d2 df200005 arg shutter_para_total_num ,loopcnt 
+66d3 da204f07 arg mem_otp_move_config ,rega 
+66d4 20206b62 branch otp_read_data 
+
+shutter_dy_shutter_write_move_config_to_otp_addr:
+66d5 df200005 arg shutter_para_total_num ,loopcnt 
+66d6 da204f07 arg mem_otp_move_config ,rega 
+66d7 6a414f0c fetchr regb ,2 ,mem_otp_write_offset_addr 
+66d8 20206b33 branch otp_write 
+
+shutter_dy_shutter_1s_timer:
+66d9 da6046b1 arg mem_shutter_1s_timer ,regc 
+66da da406641 arg shutter_dy_store_move_config_info ,regb 
+66db 20203755 branch timer_single_step 
+
+rf_debug_rx_gpio_low:
+66dc 6fe0c456 fetch 1 ,mem_rf_debug_rx_gpio 
+
+rf_debug_gpio_low:
+66dd d840003e arg gpcfg_output_low ,temp 
+66de 20206f1c branch gpio_config_function 
+
+rf_debug_rx_on_line:
+
+rf_debug_rx_gpio_high:
+66df 6fe0c456 fetch 1 ,mem_rf_debug_rx_gpio 
+
+rf_debug_gpio_high:
+66e0 d840003f arg gpcfg_output_high ,temp 
+66e1 20206f1c branch gpio_config_function 
+
+rf_debug_rx_gpio_h_l_h:
+66e2 204066df call rf_debug_rx_gpio_high 
+
+rf_debug_rx_gpio_l_h:
+66e3 204066dc call rf_debug_rx_gpio_low 
+66e4 202066df branch rf_debug_rx_gpio_high 
+
+rf_debug_rx_gpio_l_h_l:
+
+rf_debug_shutdown_radio_line:
+66e5 204066e3 call rf_debug_rx_gpio_l_h 
+
+rf_debug_rx_crc_line:
+66e6 202066dc branch rf_debug_rx_gpio_low 
+
+rf_debug_rx_sync_line:
+66e7 202066e3 branch rf_debug_rx_gpio_l_h 
+
+rf_debug_rx_crc_fail_line:
+66e8 204066e3 call rf_debug_rx_gpio_l_h 
+66e9 202066e5 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:
+66ea 202066dc branch rf_debug_rx_gpio_low 
+
+rf_debug_tx_off_line:
+
+rf_debug_tx_gpio_low:
+66eb 6fe0c457 fetch 1 ,mem_rf_debug_tx_gpio 
+66ec 202066dd branch rf_debug_gpio_low 
+
+rf_debug_tx_on_line:
+
+rf_debug_tx_gpio_high:
+66ed 6fe0c457 fetch 1 ,mem_rf_debug_tx_gpio 
+66ee 202066e0 branch rf_debug_gpio_high 
+
+rf_debug_tx_gpio_l_h_l:
+66ef 204066eb call rf_debug_tx_gpio_low 
+66f0 204066ed call rf_debug_tx_gpio_high 
+66f1 202066eb branch rf_debug_tx_gpio_low 
+
+hci_init:
+66f2 20800000 clear_stack 
+66f3 2040711d call wdt_set_disable 
+66f4 204066fd call hci_init_clksel_xtal 
+66f5 204066ff call hci_init_uart_default_config 
+66f6 20406713 call hci_init_uart_config 
+66f7 2040672f call hci_init_pwm_default_config 
+66f8 20406733 call hci_init_pwm 
+66f9 7006ed01 jam 1 ,mem_hci_command_complete_num_hci_command_packet 
+66fa 7006ea04 jam hci_h4_type_event ,mem_hci_event_head_type 
+
+hci_process_loop:
+66fb 2040673e call hci_process_check_uart_rx 
+66fc 202066fb branch hci_process_loop 
+
+hci_init_clksel_xtal:
+66fd 70804204 jam clksel_xtal ,core_clksel 
+66fe 20600000 rtn 
+
+hci_init_uart_default_config:
+66ff 20406703 call hci_init_uart_default_config_tx 
+6700 20406707 call hci_init_uart_default_config_rx 
+6701 2040670b call hci_init_uart_default_config_rts 
+6702 2020670f branch hci_init_uart_default_config_cts 
+
+hci_init_uart_default_config_tx:
+6703 6fe0c508 fetch 1 ,mem_hci_uart_tx_gpio 
+6704 247a0000 nrtn blank 
+6705 70450807 jam hci_uart_tx_gpio_num ,mem_hci_uart_tx_gpio 
+6706 20600000 rtn 
+
+hci_init_uart_default_config_rx:
+6707 6fe0c509 fetch 1 ,mem_hci_uart_rx_gpio 
+6708 247a0000 nrtn blank 
+6709 70450906 jam hci_uart_rx_gpio_num ,mem_hci_uart_rx_gpio 
+670a 20600000 rtn 
+
+hci_init_uart_default_config_rts:
+670b 6fe0c50a fetch 1 ,mem_hci_uart_rts_gpio 
+670c 247a0000 nrtn blank 
+670d 70450a09 jam hci_uart_rts_gpio_num ,mem_hci_uart_rts_gpio 
+670e 20600000 rtn 
+
+hci_init_uart_default_config_cts:
+670f 6fe0c50b fetch 1 ,mem_hci_uart_cts_gpio 
+6710 247a0000 nrtn blank 
+6711 70450b0a jam hci_uart_cts_gpio_num ,mem_hci_uart_cts_gpio 
+6712 20600000 rtn 
+
+hci_init_uart_config:
+6713 58000c00 setarg mem_h5rx_buf 
+6714 67e1064e store 2 ,mem_pdatatemp 
+6715 58000eff setarg mem_h5rx_buf_end 
+6716 e7e10005 istore 2 ,contw 
+6717 58000f00 setarg mem_h5tx_buf 
+6718 e7e10005 istore 2 ,contw 
+6719 58000fff setarg mem_h5tx_buf_end 
+671a e7e10005 istore 2 ,contw 
+671b 6fe4064e fetch 8 ,mem_pdatatemp 
+671c 20406d5b call uarta_init_dma_mem 
+671d 20406d75 call uart_clock_select_main_freq_crystal 
+671e d841c200 arg 115200 ,temp 
+671f 20406d68 call uarta_calc_baud_rate_config 
+6720 6fe0c508 fetch 1 ,mem_hci_uart_tx_gpio 
+6721 d8400008 arg gpcfg_uart_txd ,temp 
+6722 20406f1d call gpio_config_function_int 
+6723 6fe0c509 fetch 1 ,mem_hci_uart_rx_gpio 
+6724 d8400049 arg gpcfg_uart_rxd | gpcfg_pullup ,temp 
+6725 20406f1d call gpio_config_function_int 
+6726 6fe0c50a fetch 1 ,mem_hci_uart_rts_gpio 
+6727 d840000a arg gpcfg_uart_rts ,temp 
+6728 20406f1d call gpio_config_function_int 
+6729 6fe0c50b fetch 1 ,mem_hci_uart_cts_gpio 
+672a d840000b arg gpcfg_uart_cts ,temp 
+672b 20406f1d call gpio_config_function_int 
+672c d8400081 arg fun_uart_control_enable | fun_uart_control_setting_rate_baud ,temp 
+672d 60588060 storet 1 ,core_uart_ctrl 
+672e 20207d78 branch clean_xmem 
+
+hci_init_pwm_default_config:
+672f 6fe0c50c fetch 1 ,mem_hci_pwm_12mhz_gpio 
+6730 247a0000 nrtn blank 
+6731 70450c0c jam hci_pmw_12mhz_gpio_num ,mem_hci_pwm_12mhz_gpio 
+6732 20600000 rtn 
+
+hci_init_pwm:
+6733 6fe0c50c fetch 1 ,mem_hci_pwm_12mhz_gpio 
+6734 d8400010 arg gpcfg_pwm_out0 ,temp 
+6735 20406f1d call gpio_config_function_int 
+6736 da200040 arg 0x40 ,rega 
+6737 204070b9 call pwm_init 
+6738 da200000 arg 0 ,rega 
+6739 da400000 arg 0 ,regb 
+673a 58000000 setarg 0 
+673b 204070de call pwm_duty_cycle_set 
+673c d8e00000 arg 0 ,queue 
+673d 20207106 branch pwm_set_select 
+
+hci_process_check_uart_rx:
+673e 6ff10112 fetch 2 ,core_uart_rxitems 
+673f 1fe0a3fc add pdata ,-4 ,rega 
+6740 24610000 nrtn positive 
+6741 20406d89 call uarta_prepare_rx 
+6742 efe08003 ifetch 1 ,contru 
+6743 c000e746 beq hci_h4_type_cmd ,hci_parse_packet_cmd 
+6744 20407c97 call delay_10ms 
+6745 20206d91 branch uarta_clear_current_rx 
+
+hci_parse_packet_cmd:
+6746 efe10003 ifetch 2 ,contru 
+6747 67e106ee store 2 ,mem_hci_opcode 
+6748 d84003ff arg 0x3ff ,temp 
+6749 98410400 iand temp ,temp 
+674a 604906e7 storet 2 ,mem_hci_opcode_ocf 
+674b 1feb7e00 rshift2 pdata ,pdata 
+674c 1fecfe00 rshift8 pdata ,pdata 
+674d 67e086e9 store 1 ,mem_hci_opcode_ogf 
+674e efe08003 ifetch 1 ,contru 
+674f 1fe0ffff pincrease -1 
+6750 9a267c00 isub rega ,null 
+6751 20610000 rtn positive 
+6752 20406754 call hci_parse_complete_packet 
+6753 202067af branch hci_drop_current_packet 
+
+hci_parse_complete_packet:
+6754 6fe086e9 fetch 1 ,mem_hci_opcode_ogf 
+6755 c01fe757 beq hci_ogf_vendor_specific_debug ,hci_parse_packet_cmd_ogf_vendorspecific_debug 
+6756 2020679b branch hci_send_event_command_complete_error_command_nuknown 
+
+hci_parse_packet_cmd_ogf_vendorspecific_debug:
+6757 44e9401a bpatch patch1a_2 ,mem_patch1a 
+6758 6fe086e7 fetch 1 ,mem_hci_opcode_ocf 
+6759 c000679a beq hci_vendor_cmd_reset ,hci_normal_reply 
+675a c000e762 beq hci_vendor_cmd_chipid ,phci_grp_vendor_chipid 
+675b c0016767 beq hci_vendor_cmd_baud ,phci_grp_vendor_baud 
+675c c001e775 beq hci_vendor_cmd_patch ,phci_grp_vendor_patch 
+675d c002677f beq hci_vendor_cmd_patch_done ,phci_grp_vendor_done 
+675e c002e79a beq hci_vendor_cmd_echo ,hci_normal_reply 
+675f c0086790 beq hci_vendor_cmd_mem ,phci_grp_vendor_mem 
+6760 c00a6796 beq hci_vendor_cmd_set_flow_control ,phci_grp_vendor_flow_control 
+6761 2020679a branch hci_normal_reply 
+
+phci_grp_vendor_chipid:
+6762 7006f000 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+6763 6ff10000 fetch 2 ,core_chipid 
+6764 67e106f1 store 2 ,mem_hci_command_complete_return_parameter_chip_id 
+6765 df200003 arg 3 ,loopcnt 
+6766 202067a2 branch hci_send_event_command_complete 
+
+phci_grp_vendor_baud:
+6767 efe10003 ifetch 2 ,contu 
+6768 67f10052 store 2 ,core_uart_baud 
+6769 20600000 rtn 
+
+phci_grp_vendor_patch_common:
+676a efe08003 ifetch 1 ,contu 
+676b 1fe20400 copy pdata ,temp 
+676c 67f08024 store 1 ,core_ucode_low 
+676d efe08003 ifetch 1 ,contu 
+676e 98408400 iadd temp ,temp 
+676f 79207e07 set1 7 ,pdata 
+6770 67f08023 store 1 ,core_ucode_ctrl 
+6771 efe08003 ifetch 1 ,contu 
+6772 98408400 iadd temp ,temp 
+6773 1fe27200 copy pdata ,loopcnt 
+6774 20600000 rtn 
+
+phci_grp_vendor_patch:
+6775 2040676a call phci_grp_vendor_patch_common 
+
+phci_grp_vendor_patch_loop:
+6776 efe08003 ifetch 1 ,contu 
+6777 67f08025 store 1 ,core_ucode_data 
+6778 98408400 iadd temp ,temp 
+6779 c2006776 loop phci_grp_vendor_patch_loop 
+
+phci_grp_vendor_patch_check_sum:
+677a 184104ff and temp ,0xff ,temp 
+677b efe08003 ifetch 1 ,contu 
+677c 98467c00 isub temp ,null 
+677d 2422e78e nbranch phci_grp_vendor_patch_bad ,zero 
+677e 2020679a branch hci_normal_reply 
+
+phci_grp_vendor_done:
+677f df200020 arg 0x20 ,loopcnt 
+6780 d8a04000 arg mem_patch00 ,contw 
+6781 d8400000 arg 0 ,temp 
+
+phci_grp_vendor_done_loop:
+6782 efe08003 ifetch 1 ,contu 
+6783 e7e08005 istore 1 ,contw 
+6784 98408400 iadd temp ,temp 
+6785 c2006782 loop phci_grp_vendor_done_loop 
+6786 184104ff and temp ,0xff ,temp 
+6787 efe08003 ifetch 1 ,contu 
+6788 98467c00 isub temp ,null 
+6789 2422e78e nbranch phci_grp_vendor_patch_bad ,zero 
+678a 70802300 jam 0 ,core_ucode_ctrl 
+678b 2040679a call hci_normal_reply 
+678c 20406da1 call wait_uarttx 
+678d 20202001 branch soft_reset 
+
+phci_grp_vendor_patch_bad:
+678e 70802300 jam 0 ,core_ucode_ctrl 
+678f 2020679b branch hci_send_event_command_complete_error_command_nuknown 
+
+phci_grp_vendor_mem:
+6790 efe08003 ifetch 1 ,contu 
+6791 1fe27200 copy pdata ,loopcnt 
+6792 efe10003 ifetch 2 ,contu 
+6793 1fe20a00 copy pdata ,contw 
+6794 20406dd0 call uart_copy_rx_bytes 
+6795 2020679a branch hci_normal_reply 
+
+phci_grp_vendor_flow_control:
+6796 6ff08060 fetch 1 ,core_uart_ctrl 
+6797 79207e04 set1 bit_uart_control_flow_control ,pdata 
+6798 67f08060 store 1 ,core_uart_ctrl 
+6799 2020679a branch hci_normal_reply 
+
+hci_normal_reply:
+679a 2020679f branch hci_send_event_command_complete_without_payload 
+
+hci_send_event_command_complete_error_command_nuknown:
+679b 7006f001 jam command_unknown ,mem_hci_command_complete_return_parameter 
+679c 202067a0 branch hci_send_event_command_complete_without_payload + 1 
+
+hci_send_event_command_complete_error_command_disallowed:
+679d 7006f00c jam command_disallowed ,mem_hci_command_complete_return_parameter 
+679e 202067a0 branch hci_send_event_command_complete_without_payload + 1 
+
+hci_send_event_command_complete_without_payload:
+679f 7006f000 jam command_succeeded ,mem_hci_command_complete_return_parameter 
+67a0 df200001 arg 1 ,loopcnt 
+67a1 202067a2 branch hci_send_event_command_complete 
+
+hci_send_event_command_complete:
+67a2 7006eb0e jam hci_event_command_complete ,mem_hci_event_head_event_code 
+67a3 1f20fe03 add loopcnt ,3 ,pdata 
+67a4 67e086ec store 1 ,mem_hci_event_para_total_length 
+67a5 204067ab call hci_prepare_send_event 
+67a6 6fe186ed fetch 3 ,mem_hci_command_complete_num_hci_command_packet 
+67a7 e7e18003 istore 3 ,contwu 
+67a8 d8c006f0 arg mem_hci_command_complete_return_parameter ,contr 
+67a9 20406db7 call uart_copy_tx_bytes 
+67aa 20206d97 branch uarta_send_register_pop 
+
+hci_prepare_send_event:
+67ab 20406d95 call uarta_prepare_tx_register_push 
+67ac 6fe186ea fetch 3 ,mem_hci_event_head_type 
+67ad e7e18003 istore 3 ,contwu 
+67ae 20600000 rtn 
+
+hci_drop_current_packet:
+67af 20406d89 call uarta_prepare_rx 
+67b0 18608603 increase 3 ,contru 
+67b1 efe08003 ifetch 1 ,contru 
+67b2 98608600 iadd contru ,contru 
+67b3 20206d8f branch uarta_rxdone 
+
+cmd_exit:
+67b4 70411400 jam 0 ,mem_hci_cmd 
+67b5 20600000 rtn 
+
+hid_device_load_flash_info_check:
+67b6 20406c16 call spid_init_flash 
+67b7 2040565a call mouse_spid_flash_release_form_powerdown 
+67b8 20405654 call mouse_information_flash_parameters 
+67b9 20406c43 call spid_read_flash 
+67ba 20205661 branch mouse_spid_flash_powerdown 
+
+hid_device_store_flash_device_info:
+67bb 20406c16 call spid_init_flash 
+67bc 2040565a call mouse_spid_flash_release_form_powerdown 
+67bd 2040566f call mouse_flash_erase_sector 
+67be 20405654 call mouse_information_flash_parameters 
+67bf 20405672 call mouse_spid_write_flash 
+67c0 20205661 branch mouse_spid_flash_powerdown 
+
+hid_device_before_store_reconn_info:
+67c1 da204679 arg mem_device1_type ,rega 
+67c2 6fe0c678 fetch 1 ,mem_device_flag 
+67c3 1fe0ffff increase -1 ,pdata 
+67c4 1feffe0d mul32 pdata ,13 ,pdata 
+67c5 9a20a200 iadd rega ,rega 
+67c6 6fe08032 fetch 1 ,mem_record_bt_mode 
+67c7 e7e08011 istore 1 ,rega 
+67c8 c01a67ca beq rec_4_mode ,hid_device_store_le_device 
+67c9 20600000 rtn 
+
+hid_device_store_le_device:
+67ca 6fe30178 fetch 6 ,mem_le_plap 
+67cb e7e30005 istore 6 ,contw 
+67cc 6fe342dd fetch 6 ,mem_le_lap 
+67cd e7e30005 istore 6 ,contw 
+67ce 20600000 rtn 
+
+hid_device_load_device_info:
+67cf 44e9c01a bpatch patch1a_3 ,mem_patch1a 
+67d0 204067d5 call hid_device_select_reconn_device 
+67d1 6fe246a3 fetch 4 ,mem_device_24g_addr 
+67d2 67e245ff store 4 ,mem_24g_receiver_addr 
+67d3 67e245a6 store 4 ,mem_24g_addr 
+67d4 20600000 rtn 
+
+hid_device_select_reconn_device:
+67d5 44ea401a bpatch patch1a_4 ,mem_patch1a 
+67d6 da204679 arg mem_device1_type ,rega 
+67d7 6fe0c678 fetch 1 ,mem_device_flag 
+67d8 c1000000 rtneq mode_24g_device 
+67d9 1fe0ffff increase -1 ,pdata 
+67da 1feffe0d mul32 pdata ,13 ,pdata 
+67db 9a20a200 iadd rega ,rega 
+67dc efe08011 ifetch 1 ,rega 
+67dd 67e0c3fc store 1 ,mem_xrecord_mode 
+67de c19a0000 rtnne rec_4_mode 
+
+hid_device_load_le_device:
+67df efe30006 ifetch 6 ,contr 
+67e0 67e34116 store 6 ,mem_hci_plap 
+67e1 efe30006 ifetch 6 ,contr 
+67e2 67e342dd store 6 ,mem_le_lap 
+67e3 20600000 rtn 
+
+hid_device_check_device_addr:
+67e4 6fe08032 fetch 1 ,mem_record_bt_mode 
+67e5 c19a0000 rtnne rec_4_mode 
+
+hid_device_check_le_device_addr:
+67e6 67e0c884 store 1 ,mem_device_addr_temp 
+67e7 6fe30178 fetch 6 ,mem_le_plap 
+
+hid_device_check_bt_device_addr_common:
+67e8 67e34885 store 6 ,mem_device_addr_temp + 1 
+67e9 6fe3c884 fetch 7 ,mem_device_addr_temp 
+67ea d8c04679 arg mem_device1_type ,contr 
+67eb df200003 arg 3 ,loopcnt 
+
+hid_device_check_device_addr_end:
+67ec e8438006 ifetcht 7 ,contr 
+67ed 98467c00 isub temp ,null 
+67ee 2022e7f2 branch hid_device_clean_addr ,zero 
+67ef 18c08c07 increase 7 ,contr 
+67f0 c20067ec loop hid_device_check_device_addr_end 
+67f1 20600000 rtn 
+
+hid_device_clean_addr:
+67f2 18c08dfa increase -6 ,contr 
+67f3 18c20a00 copy contr ,contw 
+67f4 684b4885 fetcht 6 ,mem_device_addr_temp + 1 
+67f5 18408403 increase 3 ,temp 
+67f6 e0430005 istoret 6 ,contw 
+67f7 20600000 rtn 
+
+hid_device_ble_init_address:
+67f8 6fe342dd fetch 6 ,mem_le_lap 
+67f9 67e34680 store 6 ,mem_device1_locall_addr 
+67fa 1fe0ff00 add pdata ,0x0100 ,pdata 
+67fb 67e3468d store 6 ,mem_device2_locall_addr 
+67fc 1fe0ff00 add pdata ,0x0100 ,pdata 
+67fd 67e3469a store 6 ,mem_device3_locall_addr 
+67fe 20600000 rtn 
+
+hid_device_default_parm_init:
+67ff 704503ff jam 0xff ,mem_ui_button_gpio 
+6800 70450500 jam 0 ,mem_ui_led_struct_num 
+6801 6fe14651 fetch 2 ,mem_device_24g_pair_timeout_init 
+6802 67e145ed store 2 ,mem_24g_pair_timeout_init 
+6803 6fe0c654 fetch 1 ,mem_device_24g_reconn_timeout_init 
+6804 67e145f3 store 2 ,mem_24g_reconn_timeout_init 
+6805 6fe2c657 fetch 5 ,mem_rssi_dis_min_24g_init 
+6806 67e2c63f store 5 ,mem_rssi_dis_min_24g 
+6807 6fe0c655 fetch 1 ,mem_device_24g_pair_tx_power 
+6808 67e0c5e8 store 1 ,mem_24g_pair_tx_power 
+6809 6fe0c5d0 fetch 1 ,mem_24g_ch_map_update 
+680a 245a324a ncall g24_chamap_param_update ,blank 
+680b 20600000 rtn 
+
+hid_device_param_common_init:
+680c 7040c103 jam 3 ,mem_lpm_mult_timeout 
+680d 7040a608 jam 8 ,mem_lpm_overhead 
+680e 70473400 jam pb_button_state_up ,mem_select_device_button_statue 
+680f 70473500 jam commbination_key_state_up ,mem_commbination_key_statue 
+6810 58000200 setarg 0x0200 
+6811 67e140a4 store 2 ,mem_lpm_interval 
+6812 7042e317 jam 0x17 ,mem_le_local_mtu 
+6813 7042e517 jam 0x17 ,mem_le_remote_mtu 
+6814 6fe0c678 fetch 1 ,mem_device_flag 
+6815 67e0c717 store 1 ,mem_device_flag_temp 
+6816 6fe1c2e0 fetch 3 ,mem_le_lap + 3 
+6817 67e1c756 store 3 ,mem_device_le_lap_temp 
+6818 58004782 setarg mem_le_tx_buffer0_omemalloc 
+6819 67e14343 store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+681a 58000020 setarg mouse_ble_l2cap_txbuff_size 
+681b 67e14345 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+681c 20205930 branch device_store_normal_tx_power 
+
+hid_device_compare_addr_store:
+681d 6049c6f8 storet 3 ,mem_device_compare_addr 
+681e 6049c6fb storet 3 ,mem_device_compare_addr + 3 
+681f 20600000 rtn 
+
+hid_device_enable_lpm:
+6820 70409401 jam 1 ,mem_lpm_mode 
+6821 20600000 rtn 
+
+hid_device_disable_lpm:
+6822 70409400 jam 0 ,mem_lpm_mode 
+6823 20600000 rtn 
+
+hid_device_le_send_empty_packet:
+6824 70472c00 jam 0 ,mem_customer_data_trigger 
+
+hid_device_le_send_package_data:
+6825 44eac01a bpatch patch1a_5 ,mem_patch1a 
+6826 6fe0c72c fetch 1 ,mem_customer_data_trigger 
+6827 205a684b call hid_device_clear_key_data ,blank 
+
+hid_device_le_fill_package_data:
+6828 6fe0c721 fetch 1 ,mem_customer_key_press 
+6829 c000682e beq hid_reportid_key_standard ,hid_device_le_fill_standard_key_data 
+682a c002e833 beq hid_reportid_bit_consumer_key ,hid_device_le_fill_bit_consumer_key_data 
+682b c001e836 beq hid_reportid_consumer_key ,hid_device_le_fill_multimedia_key_data 
+682c c0016839 beq hid_reportid_system_ctrl ,hid_device_le_fill_systemctrl_key_data 
+682d c0044885 beq hid_reportid_n_key_rollover ,keyboard_le_fill_n_key_rollover_key_data 
+
+hid_device_le_fill_standard_key_data:
+682e 6fe0c3cf fetch 1 ,mem_device_option 
+682f c007c88e beq dvc_op_keyboard ,keyboard_le_fill_standard_key_data 
+
+mouse_le_fill_standard_key_data:
+6830 70477308 jam 8 ,mem_le_data_len 
+
+keyoard_le_fill_standard_key_data_send:
+6831 68494774 fetcht 2 ,mem_le_keyboard_handle 
+6832 20206843 branch hid_device_le_fill_data 
+
+hid_device_le_fill_bit_consumer_key_data:
+6833 70477304 jam 4 ,mem_le_data_len 
+6834 68494776 fetcht 2 ,mem_le_multimedia_handle 
+6835 20206843 branch hid_device_le_fill_data 
+
+hid_device_le_fill_multimedia_key_data:
+6836 70477303 jam 3 ,mem_le_data_len 
+6837 68494776 fetcht 2 ,mem_le_multimedia_handle 
+6838 20206843 branch hid_device_le_fill_data 
+
+hid_device_le_fill_systemctrl_key_data:
+6839 70477302 jam 2 ,mem_le_data_len 
+683a 68494778 fetcht 2 ,mem_le_systemctrl_handle 
+683b 20206843 branch hid_device_le_fill_data 
+
+hid_device_send_package_data_check:
+683c 6fe0c72b fetch 1 ,mem_customer_key 
+683d c000e825 beq 1 ,hid_device_le_send_package_data 
+
+hid_device_le_send_mouse_data:
+683e 70477307 jam 7 ,mem_le_data_len 
+683f 6fe3c65c fetch 7 ,mem_mouse_key 
+6840 67e3c722 store 7 ,mem_customer_key_press + 1 
+6841 6849439f fetcht 2 ,mem_le_notify_handle 
+6842 20206843 branch hid_device_le_fill_data 
+
+hid_device_le_fill_data:
+6843 44eb401a bpatch patch1a_6 ,mem_patch1a 
+6844 6fe0c773 fetch 1 ,mem_le_data_len 
+6845 1fe22200 copy pdata ,rega 
+6846 20402dcc call le_att_malloc_tx_notify 
+6847 6848c773 fetcht 1 ,mem_le_data_len 
+6848 18427200 copy temp ,loopcnt 
+6849 d8c04722 arg mem_customer_key_press + 1 ,contr 
+684a 20207cdc branch memcpy 
+
+hid_device_clear_key_data:
+684b df200009 arg 9 ,loopcnt 
+684c d8a04722 arg mem_customer_key_press + 1 ,contw 
+684d 20207ca3 branch clear_mem 
+
+hid_device_copy_key_data:
+684e df20000a arg 10 ,loopcnt 
+684f d8c049fd arg mem_customer_key_press_init ,contr 
+6850 d8a04721 arg mem_customer_key_press ,contw 
+6851 20207cdc branch memcpy 
+
+hid_device_24g_keyboard_package_data_set:
+6852 6fe0c72c fetch 1 ,mem_customer_data_trigger 
+6853 205a684b call hid_device_clear_key_data ,blank 
+6854 da404721 arg mem_customer_key_press ,regb 
+6855 20600000 rtn 
+
+hid_device_push_mouse_data_to_usb:
+6856 58000001 setarg ms_report_id 
+6857 67e088f1 store 1 ,mem_usb_mouse_data 
+6858 6fe3c65c fetch 7 ,mem_mouse_key 
+6859 e7e38005 istore 7 ,contw 
+685a 20203d52 branch dongle_usb_tx_ms_data 
+
+hid_device_push_keyboard_data_to_usb:
+685b 6fe0c72c fetch 1 ,mem_customer_data_trigger 
+685c 205a684b call hid_device_clear_key_data ,blank 
+
+hid_device_push_keyboard_package_data_to_usb:
+685d 44b5c00d bpatch patch0d_3 ,mem_patch0d 
+685e 6fe0c721 fetch 1 ,mem_customer_key_press 
+685f c0006864 beq hid_reportid_key_standard ,hid_device_push_standard_keyboard_data_to_usb 
+6860 c0016869 beq kb_system_conctrl_report_id ,hid_device_push_systemctrl_key_data_to_usb 
+6861 c001e86f beq kb_multikey_report_id ,hid_device_push_multimedia_key_data_to_usb 
+6862 c002e875 beq hid_reportid_bit_consumer_key ,hid_device_push_bit_consumer_key_data_to_usb 
+6863 c0044a15 beq hid_reportid_n_key_rollover ,keyboard_push_n_key_rollover_key_data_to_usb 
+
+hid_device_push_standard_keyboard_data_to_usb:
+6864 20403d61 call dongle_usb_tx_kb_data 
+6865 d8c04722 arg mem_customer_key_press + 1 ,contr 
+6866 d8a00901 arg mem_usb_kb_data ,contw 
+6867 df200009 arg 9 ,loopcnt 
+6868 20207cdc branch memcpy 
+
+hid_device_push_systemctrl_key_data_to_usb:
+6869 7008ea22 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+686a 58000002 setarg kb_system_conctrl_report_id 
+686b 67e08929 store 1 ,mem_usb_kb_system 
+686c 6fe0c722 fetch 1 ,mem_customer_key_press + 1 
+686d e7e08005 istore 1 ,contw 
+686e 20203d53 branch dongle_usb_tx_enable_ep2 
+
+hid_device_push_multimedia_key_data_to_usb:
+686f 7008ea21 jam usb_ep2_multikey ,mem_usb_ep2_data 
+6870 58000003 setarg kb_multikey_report_id 
+6871 67e08921 store 1 ,mem_usb_kb_multikey 
+6872 6fe1c722 fetch 3 ,mem_customer_key_press + 1 
+6873 e7e18005 istore 3 ,contw 
+6874 20203d53 branch dongle_usb_tx_enable_ep2 
+
+hid_device_push_bit_consumer_key_data_to_usb:
+6875 7008ea23 jam usb_ep2_bit_consumer ,mem_usb_ep2_data 
+6876 58000005 setarg kb_bit_consumer_report_id 
+6877 20206871 branch hid_device_push_multimedia_key_data_to_usb + 2 
+
+hid_device_le_parse_att_write_request:
+6878 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+6879 c07fad8a beq 0xff ,le_send_att_write_response_check_auth 
+687a 6fe0c74f fetch 1 ,mem_device_fast_conn_flag 
+687b 203a2d8a branch le_send_att_write_response_check_auth ,blank 
+687c 6fe0c882 fetch 1 ,mem_le_connect_status_flag 
+687d c280ad8a bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+687e 5800001a setarg 0x001a 
+687f 6849439c fetcht 2 ,mem_le_att_handle 
+6880 98467c00 isub temp ,null 
+6881 2422ad8a nbranch le_send_att_write_response_check_auth ,zero 
+6882 20202d24 branch le_send_att_read_response_error_insufficient_auth 
+
+hid_device_24g_search_dongle_init:
+6883 58000000 setarg 0 
+6884 67e1c70a store 3 ,mem_device_search_dongle_action 
+6885 20600000 rtn 
+
+mouse_24g_search_dongle:
+6886 6fe4470e fetch mouse_flag_len ,mem_mouse_flag 
+6887 c4068000 rtnbit0 mouse_enable_24g_search_dongle 
+
+hid_device_24g_search_dongle:
+6888 6fe0c73d fetch 1 ,mem_mouse_long_mult_flag 
+6889 207a0000 rtn blank 
+688a 6fe0c619 fetch 1 ,mem_24g_abort_pac 
+688b 207a0000 rtn blank 
+688c 6fe0c707 fetch 1 ,mem_device_search_dongle_interval 
+688d 1fe0fe01 increase 1 ,pdata 
+688e 1fe17e03 and_into 3 ,pdata 
+688f 67e0c707 store 1 ,mem_device_search_dongle_interval 
+6890 247a0000 nrtn blank 
+6891 70470800 jam 0 ,mem_device_search_dongle_ch 
+
+hid_device_24g_search_dongle_loop:
+6892 44ebc01a bpatch patch1a_7 ,mem_patch1a 
+6893 6fe0c708 fetch 1 ,mem_device_search_dongle_ch 
+6894 1fe0fe01 increase 1 ,pdata 
+6895 67e0c708 store 1 ,mem_device_search_dongle_ch 
+6896 1fe67c08 sub pdata ,g24_ch_number ,null 
+6897 2421689e nbranch hid_device_24g_search_dongle_loop_end ,positive 
+6898 20403557 call g24_reconn_data_prep 
+6899 2040362a call g24_transmit_receive_ack 
+689a 242c68a4 nbranch hid_device_24g_search_dongle_loop_retry ,sync 
+689b 2437e8a4 nbranch hid_device_24g_search_dongle_loop_retry ,user3 
+689c 204068bc call hid_device_g24_ackpayload_parse 
+689d 204068b1 call hid_device_24g_search_dongle_success 
+
+hid_device_24g_search_dongle_loop_end:
+689e 20403553 call g24_txbuf_clear 
+689f 6fe0c709 fetch 1 ,mem_device_search_dongle_count 
+68a0 1fe0fe01 increase 1 ,pdata 
+68a1 67e0c709 store 1 ,mem_device_search_dongle_count 
+68a2 c00868a6 beq g24_ch_poll_count ,hid_device_24g_search_dongle_check 
+68a3 20600000 rtn 
+
+hid_device_24g_search_dongle_loop_retry:
+68a4 20403201 call g24_ch 
+68a5 20206892 branch hid_device_24g_search_dongle_loop 
+
+hid_device_24g_search_dongle_check:
+68a6 44ec401b bpatch patch1b_0 ,mem_patch1b 
+68a7 70470900 jam 0 ,mem_device_search_dongle_count 
+68a8 6fe0c70a fetch 1 ,mem_device_search_dongle_action 
+68a9 c3800000 rtnbit1 g24_disconn_state 
+68aa 79207e00 set1 g24_disconn_state ,pdata 
+68ab 67e0c70a store 1 ,mem_device_search_dongle_action 
+68ac 6fe1471c fetch 2 ,mem_device_24g_search_dongle_time_init 
+68ad 67e14741 store 2 ,mem_device_no_data_timer 
+68ae 6fe0c3cf fetch 1 ,mem_device_option 
+68af c0045303 beq dvc_op_mouse ,mouse_sensor_powerdown 
+68b0 20600000 rtn 
+
+hid_device_24g_search_dongle_success:
+68b1 6fe0c619 fetch 1 ,mem_24g_abort_pac 
+68b2 203a6883 branch hid_device_24g_search_dongle_init ,blank 
+68b3 70470900 jam 0 ,mem_device_search_dongle_count 
+68b4 6fe0c70a fetch 1 ,mem_device_search_dongle_action 
+68b5 c4000000 rtnbit0 g24_disconn_state 
+68b6 793ffe00 set0 g24_disconn_state ,pdata 
+68b7 67e0c70a store 1 ,mem_device_search_dongle_action 
+68b8 20405535 call mouse_no_data_timer_init 
+68b9 6fe0c3cf fetch 1 ,mem_device_option 
+68ba c0045263 beq dvc_op_mouse ,mouse_init_sensor_wakeup 
+68bb 20600000 rtn 
+
+hid_device_g24_ackpayload_parse:
+68bc 20403647 call g24_ackpayload_parse 
+68bd 6fe0c50f fetch 1 ,mem_24g_rxbuf + 1 
+68be 2fe1f008 compare 0x08 ,pdata ,0xf8 
+68bf 24608000 nrtn true 
+68c0 6fe0c510 fetch 1 ,mem_24g_rxbuf + 2 
+68c1 c07fd90a beq 0xff ,mouse_24g_hibernate_set 
+68c2 67e0c70d store 1 ,mem_keyboard_led_status 
+68c3 20600000 rtn 
+
+hid_device_before_lpm_set:
+68c4 6fe0c678 fetch 1 ,mem_device_flag 
+68c5 c1800000 rtnne mode_24g_device 
+68c6 6fe0c5e1 fetch 1 ,mem_24g_disable_fec1 
+68c7 207a0000 rtn blank 
+
+hid_device_peripheral_clock_off:
+68c8 70804202 jam 2 ,core_clksel 
+68c9 708130f8 jam 0xf8 ,core_lpm_ctrl 
+68ca 20600000 rtn 
+
+hid_device_cb_fuction:
+68cb 58004f1f setarg mouse_spi_write_flash_cb 
+68cc 67e143f0 store 2 ,mem_cb_spi_flash_write_complate 
+68cd 58005aee setarg mouse_le_transmit 
+68ce 67e143ea store 2 ,mem_cb_ble_transmit 
+68cf 58005af0 setarg mouse_set_lpm_mult 
+68d0 67e143ee store 2 ,mem_cb_bt_set_mult 
+68d1 20600000 rtn 
+
+l2cap_init:
+68d2 2035e8d7 branch l2cap_init_wake ,wake 
+68d3 58004467 setarg mem_l2cap_xmem_end 
+68d4 d8a04458 arg mem_l2cap_xmem_start ,contw 
+68d5 98a67200 isub contw ,loopcnt 
+68d6 20407ca3 call clear_mem 
+
+l2cap_init_wake:
+68d7 20600000 rtn 
+
+check_l2cap_map:
+68d8 d8e00000 arg 0 ,queue 
+68d9 da400000 arg 0 ,regb 
+
+check_l2cap_map_loop:
+68da 18e67c07 sub queue ,7 ,null 
+68db 24610000 nrtn positive 
+68dc aa2fffff qisolate1 rega 
+68dd 2020e8df branch check_l2cap_map_used ,true 
+68de 202068e3 branch check_l2cap_map_used2 
+
+check_l2cap_map_used:
+68df 18427e00 copy temp ,pdata 
+68e0 203a68e3 branch check_l2cap_map_used2 ,blank 
+68e1 f9202400 qset1 regb 
+68e2 184085ff increase -1 ,temp 
+
+check_l2cap_map_used2:
+68e3 18e08e01 increase 1 ,queue 
+68e4 202068da branch check_l2cap_map_loop 
+
+ble_l2cap_malloc:
+68e5 6b014343 fetchr regd ,2 ,mem_ble_l2cap_tx_buff0_ptr 
+68e6 6d614345 fetchr rege ,2 ,mem_ble_l2cap_tx_buff_size_ptr 
+68e7 20407dbe call disable_user 
+68e8 202068e9 branch host_l2cap_malloc 
+
+host_l2cap_malloc:
+68e9 44ed401b bpatch patch1b_2 ,mem_patch1b 
+68ea 20406935 call l2cap_malloc_is_fifo_full 
+68eb 243a233e nbranch assert ,blank 
+68ec 20406945 call l2cap_malloc_get_full_map 
+68ed df200008 arg 8 ,loopcnt 
+
+host_l2cap_malloc_loop:
+68ee 6848c458 fetcht 1 ,mem_used_map 
+68ef 1f260e08 sub loopcnt ,8 ,queue 
+68f0 a84fffff qisolate1 temp 
+68f1 2020e8f6 branch host_l2cap_malloc_next_buffer ,true 
+68f2 204068fd call host_l2cap_malloc_check_buffer_enough 
+68f3 242168f6 nbranch host_l2cap_malloc_next_buffer ,positive 
+68f4 20406913 call host_l2cap_malloc_into_fifo 
+68f5 202068fa branch host_l2cap_malloc_succ 
+
+host_l2cap_malloc_next_buffer:
+68f6 1d627e00 copy rege ,pdata 
+68f7 9b00b000 iadd regd ,regd 
+68f8 c20068ee loop host_l2cap_malloc_loop 
+68f9 2020233e branch assert 
+
+host_l2cap_malloc_succ:
+68fa 1b027e00 copy regd ,pdata 
+68fb 1b020a00 copy regd ,contw 
+68fc 20600000 rtn 
+
+host_l2cap_malloc_check_buffer_enough:
+68fd 44edc01b bpatch patch1b_3 ,mem_patch1b 
+68fe 1f260e08 sub loopcnt ,8 ,queue 
+68ff d8400000 arg 0 ,temp 
+6900 d9600000 arg 0 ,timeup 
+
+host_l2cap_malloc_check_buffer_enough_loop:
+6901 18e27e00 copy queue ,pdata 
+6902 c004690e beq 8 ,host_l2cap_malloc_check_buffer_enough_end 
+6903 6fe0c458 fetch 1 ,mem_used_map 
+6904 afefffff qisolate1 pdata 
+6905 2020e90e branch host_l2cap_malloc_check_buffer_enough_end ,true 
+6906 f9201600 qset1 timeup 
+6907 1d627e00 copy rege ,pdata 
+6908 98408400 iadd temp ,temp 
+6909 18e08e01 increase 1 ,queue 
+690a 1a227e00 copy rega ,pdata 
+690b 98467c00 isub temp ,null 
+690c 2022e90e branch host_l2cap_malloc_check_buffer_enough_end ,zero 
+690d 20216901 branch host_l2cap_malloc_check_buffer_enough_loop ,positive 
+
+host_l2cap_malloc_check_buffer_enough_end:
+690e 18427e00 copy temp ,pdata 
+690f 9a267c00 isub rega ,null 
+6910 24628000 nrtn zero 
+6911 f9201600 qset1 timeup 
+6912 20600000 rtn 
+
+host_l2cap_malloc_into_fifo:
+6913 44ee401b bpatch patch1b_4 ,mem_patch1b 
+6914 20406935 call l2cap_malloc_is_fifo_full 
+6915 243a233e nbranch assert ,blank 
+6916 2040693b call l2cap_malloc_is_fifo_empty 
+6917 203a691c branch host_l2cap_malloc_into_fifo_no_push ,blank 
+6918 6fe4c45c fetch 9 ,mem_tx_fifo1 
+6919 67e4c459 store 9 ,mem_tx_fifo0 
+691a 58000000 setarg 0 
+691b e7e18005 istore 3 ,contw 
+
+host_l2cap_malloc_into_fifo_no_push:
+691c 6160c462 storer timeup ,1 ,mem_tx_fifo3_map 
+691d 63014463 storer regd ,2 ,mem_tx_fifo3_ptr 
+691e 20600000 rtn 
+
+l2cap_malloc_fifo_out:
+691f 44eec01b bpatch patch1b_5 ,mem_patch1b 
+6920 2040693e call l2cap_malloc_fifo_get_first_ptr 
+6921 18c08c01 increase 1 ,contr 
+6922 efe10006 ifetch 2 ,contr 
+6923 20600000 rtn 
+
+l2cap_malloc_free:
+6924 44ef401b bpatch patch1b_6 ,mem_patch1b 
+6925 2040693e call l2cap_malloc_fifo_get_first_ptr 
+6926 18c20a00 copy contr ,contw 
+6927 18c20400 copy contr ,temp 
+6928 58000000 setarg 0 
+6929 e7e18005 istore 3 ,contw 
+692a 20600000 rtn 
+
+l2cap_malloc_discard:
+692b 44efc01b bpatch patch1b_7 ,mem_patch1b 
+692c 2040693b call l2cap_malloc_is_fifo_empty 
+692d 203a233e branch assert ,blank 
+692e 6fe1c45f fetch 3 ,mem_tx_fifo2 
+692f 67e1c462 store 3 ,mem_tx_fifo3 
+6930 6fe1c45c fetch 3 ,mem_tx_fifo1 
+6931 67e1c45f store 3 ,mem_tx_fifo2 
+6932 6fe1c459 fetch 3 ,mem_tx_fifo0 
+6933 67e1c45c store 3 ,mem_tx_fifo1 
+6934 20600000 rtn 
+
+l2cap_malloc_is_fifo_full:
+6935 44f0401c bpatch patch1c_0 ,mem_patch1c 
+6936 6fe1c459 fetch 3 ,mem_tx_fifo0 
+6937 20600000 rtn 
+
+l2cap_malloc_is_fifo_nearly_full:
+6938 44f0c01c bpatch patch1c_1 ,mem_patch1c 
+6939 6fe1c45c fetch 3 ,mem_tx_fifo1 
+693a 20600000 rtn 
+
+l2cap_malloc_is_fifo_empty:
+693b 44f1401c bpatch patch1c_2 ,mem_patch1c 
+693c 6fe1c462 fetch 3 ,mem_tx_fifo3 
+693d 20600000 rtn 
+
+l2cap_malloc_fifo_get_first_ptr:
+693e 2040693b call l2cap_malloc_is_fifo_empty 
+693f 203a6943 branch l2cap_malloc_fifo_get_first_ptr_empty ,blank 
+6940 d8c04459 arg mem_tx_fifo0 ,contr 
+
+l2cap_malloc_free_loop:
+6941 efe18006 ifetch 3 ,contr 
+6942 203a6941 branch l2cap_malloc_free_loop ,blank 
+
+l2cap_malloc_fifo_get_first_ptr_empty:
+6943 18c08dfd increase -3 ,contr 
+6944 20600000 rtn 
+
+l2cap_malloc_get_full_map:
+6945 44f1c01c bpatch patch1c_3 ,mem_patch1c 
+6946 df200004 arg 4 ,loopcnt 
+6947 d8c04459 arg mem_tx_fifo0_map ,contr 
+6948 d8400000 arg 0 ,temp 
+
+l2cap_malloc_get_full_map_loop:
+6949 efe18006 ifetch 3 ,contr 
+694a 1fe17eff and pdata ,0xff ,pdata 
+694b 98418400 ior temp ,temp 
+694c c2006949 loop l2cap_malloc_get_full_map_loop 
+694d 6048c458 storet 1 ,mem_used_map 
+694e 20600000 rtn 
+
+l2cap_lpm_get_wake_lock:
+694f d8e0000c arg wake_lock_l2cap_tx ,queue 
+6950 202024be branch lpm_get_wake_lock 
+
+l2cap_lpm_put_wake_lock:
+6951 d8e0000c arg wake_lock_l2cap_tx ,queue 
+6952 202024c2 branch lpm_put_wake_lock 
+
+twspi_reset:
+6953 44f2c01c bpatch patch1c_5 ,mem_patch1c 
+6954 18467cff sub temp ,ui_button_gpio_disable ,null 
+6955 20628000 rtn zero 
+6956 18427e00 copy temp ,pdata 
+6957 1fe17eff and_into 0xff ,pdata 
+6958 1fe67c0f sub pdata ,gpio_number + -1 ,null 
+6959 24216965 nbranch twspi_reset_ext ,positive 
+695a d8a08070 arg core_gpio_conf ,contw 
+
+twspi_reset_next:
+695b 98a08a00 iadd contw ,contw 
+695c 18a22200 copy contw ,rega 
+695d d840003e arg gpcfg_output_low ,temp 
+695e e0408005 istoret 1 ,contw 
+695f 20406968 call twspi_disable 
+6960 2000001e nop 30 
+6961 1a220a00 copy rega ,contw 
+6962 d840003f arg gpcfg_output_high ,temp 
+6963 e0408005 istoret 1 ,contw 
+6964 2020696c branch twspi_enable 
+
+twspi_reset_ext:
+6965 d8a080d4 arg core_gpio_conf_hi ,contw 
+6966 1fe0fff0 increase -16 ,pdata 
+6967 2020695b branch twspi_reset_next 
+
+twspi_disable:
+6968 6ff08081 fetch 1 ,core_spid_delay 
+6969 1fe17e7f and_into 0x7f ,pdata 
+696a 67f08081 store 1 ,core_spid_delay 
+696b 20600000 rtn 
+
+twspi_enable:
+696c 6ff08081 fetch 1 ,core_spid_delay 
+696d 1fe1fe80 or_into 0x80 ,pdata 
+696e 67f08081 store 1 ,core_spid_delay 
+696f 20600000 rtn 
+
+twspi_write:
+6970 20206bc6 branch spid_write_reg 
+
+twspi_read:
+6971 20206bcd branch spid_read_reg 
+
+aes_disable:
+6972 6ff0806f fetch 1 ,core_bist_ctrl 
+6973 793ffe07 set0 aes_en ,pdata 
+6974 67f0806f store 1 ,core_bist_ctrl 
+6975 20600000 rtn 
+
+read_function_aes:
+6976 2434697a nbranch read_function ,user 
+6977 6ff0806f fetch 1 ,core_bist_ctrl 
+6978 79207e07 set1 aes_en ,pdata 
+6979 67f0806f store 1 ,core_bist_ctrl 
+
+read_function:
+697a 18427c00 copy temp ,null 
+697b 2022e97d branch read_fuction_zero ,zero 
+697c 1a627a00 copy regc ,pc 
+
+read_fuction_zero:
+697d 2fcc0000 isolate0 0 ,null 
+697e 20206ae9 branch set_ucode_status 
+
+get_block_header:
+697f 18000404 force 4 ,temp 
+
+get_block_header0:
+6980 da2001c5 arg mem_ucode_buf ,rega 
+6981 20406972 call aes_disable 
+6982 2040697a call read_function 
+6983 da2055aa arg 0x55aa ,rega 
+6984 6fe101c5 fetch 2 ,mem_ucode_buf 
+6985 e8410006 ifetcht 2 ,contr 
+6986 9a267c00 isub rega ,null 
+6987 20600000 rtn 
+
+read_first_block:
+6988 2054699a call load_aes_reinit ,user 
+6989 d8400002 arg 2 ,temp 
+698a da2043cc arg mem_ucode_ptr ,rega 
+698b 2040697a call read_function 
+698c 6fe143cc fetch 2 ,mem_ucode_ptr 
+
+read_first_block_cont:
+698d 67e101be store 2 ,mem_addr_mi 
+698e 20546990 call get_iv ,user 
+698f 20600000 rtn 
+
+get_iv:
+6990 d8400010 arg 16 ,temp 
+6991 da2001cb arg mem_ucode_keybuf ,rega 
+6992 20406972 call aes_disable 
+6993 2040697a call read_function 
+
+set_iv:
+6994 d8c001cb arg mem_ucode_keybuf ,contr 
+6995 df200010 arg 16 ,loopcnt 
+6996 20407341 call aes_load_data 
+6997 204072c8 call aes_init 
+6998 2040735d call aes_clear_data 
+6999 202072c2 branch do_aes_cbc 
+
+load_aes_reinit:
+699a 70802300 jam 0x0 ,core_ucode_ctrl 
+699b 20406972 call aes_disable 
+699c 2020735d branch aes_clear_data 
+
+load_storage:
+699d 58000000 setarg 0 
+699e 67e10677 store 2 ,mem_queue 
+699f 7856fc00 disable match 
+69a0 2040697f call get_block_header 
+69a1 24628000 nrtn zero 
+69a2 7836fc00 enable match 
+69a3 58008000 setarg 0x8000 
+69a4 67f18022 store 3 ,core_ucode_hi 
+69a5 da208025 arg core_ucode_data ,rega 
+69a6 20406976 call read_function_aes 
+69a7 70802300 jam 0x0 ,core_ucode_ctrl 
+69a8 6fe081bb fetch 1 ,mem_ucode_status 
+69a9 c4000000 rtnbit0 0 
+
+load_storage_loop:
+69aa d8400006 arg 6 ,temp 
+69ab 20406980 call get_block_header0 
+69ac 2422e9ba nbranch load_data_checksum_compare ,zero 
+69ad ea210006 ifetchr rega ,2 ,contr 
+69ae 2040697a call read_function 
+69af 204069b1 call load_data_checksum_calc 
+69b0 202069aa branch load_storage_loop 
+
+load_data_checksum_calc:
+69b1 6fe10677 fetch 2 ,mem_queue 
+69b2 df200006 arg 6 ,loopcnt 
+69b3 d8c001c5 arg mem_ucode_buf ,contr 
+69b4 20407dd0 call cal_sum 
+69b5 6f2101c7 fetchr loopcnt ,2 ,mem_ucode_len 
+69b6 1a220c00 copy rega ,contr 
+69b7 20407dd0 call cal_sum 
+69b8 67e10677 store 2 ,mem_queue 
+69b9 20600000 rtn 
+
+load_data_checksum_compare:
+69ba 6fe081fa fetch 1 ,mem_otp_load_check_sum 
+69bb c02d69c8 beq 0x5a ,load_data_checksum_ok 
+69bc da20aa55 arg 0xaa55 ,rega 
+69bd 6fe101c5 fetch 2 ,mem_ucode_buf 
+69be 9a267c00 isub rega ,null 
+69bf 2422e9ca nbranch load_data_checksum_compare_fail ,zero 
+69c0 da2055aa arg 0x55aa ,rega 
+69c1 6fe101c7 fetch 2 ,mem_ucode_len 
+69c2 9a267c00 isub rega ,null 
+69c3 2422e9ca nbranch load_data_checksum_compare_fail ,zero 
+69c4 6fe101c9 fetch 2 ,mem_sched_addr 
+69c5 68490677 fetcht 2 ,mem_queue 
+69c6 98467c00 isub temp ,null 
+69c7 2422e9ca nbranch load_data_checksum_compare_fail ,zero 
+
+load_data_checksum_ok:
+69c8 7920220f set1 15 ,rega 
+69c9 2020697d branch read_fuction_zero 
+
+load_data_checksum_compare_fail:
+69ca 7001bb00 jam 0 ,mem_ucode_status 
+69cb 20600000 rtn 
+
+loadcode_lock_load_ucode:
+69cc 1fe17eff and pdata ,0xff ,pdata 
+69cd 1ff1fe00 rshift4 pdata ,pdata 
+69ce 67e0c3cf store 1 ,mem_device_option 
+69cf 20206a11 branch loadcode_load_key 
+
+loadcode_lock:
+69d0 6ff10143 fetch 2 ,core_ucode_flag 
+69d1 243a69cc nbranch loadcode_lock_load_ucode ,blank 
+69d2 20406a11 call loadcode_load_key 
+69d3 6fe143cf fetch 2 ,mem_device_option 
+69d4 207a0000 rtn blank 
+69d5 204069d7 call loadcode_set_lock 
+69d6 2020239c branch lpm_write_lock 
+
+loadcode_set_lock:
+69d7 6fe0c3cf fetch 1 ,mem_device_option 
+69d8 207a0000 rtn blank 
+69d9 1fe1040f and pdata ,0xf ,temp 
+69da 6048c3cf storet 1 ,mem_device_option 
+69db 1ff1fe00 rshift4 pdata ,pdata 
+69dc 9842fe00 ixor temp ,pdata 
+69dd c087ebb8 bne 0xf ,app_lpm_mpu_lock_24g_ble 
+69de 20206b7b branch app_lpm_lock_check 
+
+load_otp_hv_vsel:
+69df 6fe081f7 fetch 1 ,mem_otp_hv_sel 
+69e0 245a23c2 ncall lpm_save_sel_hv ,blank 
+69e1 6fe081f8 fetch 1 ,mem_otp_ldo_vsel 
+69e2 207a0000 rtn blank 
+69e3 202023c7 branch lpm_write_io_vsel 
+
+load_otp_set_init:
+69e4 44f3401c bpatch patch1c_6 ,mem_patch1c 
+69e5 24758000 nrtn wake 
+69e6 6fe1415d fetch 2 ,mem_otp_charge_pump_x 
+69e7 207a0000 rtn blank 
+69e8 67e101ed store 2 ,mem_otp_charge_pump 
+69e9 202069fb branch set_otp_config2 
+
+set_otp_config:
+69ea 204069df call load_otp_hv_vsel 
+69eb 6fe201eb fetch 4 ,mem_otp_core_ldo 
+69ec 207a0000 rtn blank 
+69ed 37d98200 until null ,lpo_edge 
+69ee 6ff08136 fetch 1 ,0x8136 
+69ef 1fe17ef0 and pdata ,0xf0 ,pdata 
+69f0 684881eb fetcht 1 ,mem_otp_core_ldo 
+69f1 9841fe00 ior temp ,pdata 
+69f2 67f08136 store 1 ,0x8136 
+69f3 37d98200 until null ,lpo_edge 
+69f4 6ff08138 fetch 1 ,0x8138 
+69f5 1fe17e07 and pdata ,0x7 ,pdata 
+69f6 684881ec fetcht 1 ,mem_otp_verf_bg 
+69f7 18498400 lshift3 temp ,temp 
+69f8 9841fe00 ior temp ,pdata 
+69f9 67f08138 store 1 ,0x8138 
+69fa 37d98200 until null ,lpo_edge 
+
+set_otp_config2:
+69fb 6ff08acb fetch 1 ,0x8acb 
+69fc 1fe17ef0 and pdata ,0xf0 ,pdata 
+69fd 684881ed fetcht 1 ,mem_otp_charge_pump 
+69fe 6048c15d storet 1 ,mem_otp_charge_pump_x 
+69ff 9841fe00 ior temp ,pdata 
+6a00 67f08acb store 1 ,0x8acb 
+6a01 6fe081ee fetch 1 ,mem_otp_dpll_ibais 
+6a02 67e0c15e store 1 ,mem_otp_dpll_ibais_x 
+6a03 2feffe03 isolate1 3 ,pdata 
+6a04 6ff08a06 fetch 1 ,0x8a06 
+6a05 7920fe07 setflag true ,7 ,pdata 
+6a06 67f08a06 store 1 ,0x8a06 
+6a07 6fe081ee fetch 1 ,mem_otp_dpll_ibais 
+6a08 1fe10407 and pdata ,7 ,temp 
+6a09 18520400 lshift4 temp ,temp 
+6a0a 18438400 lshift temp ,temp 
+6a0b 6048c44f storet 1 ,mem_ring_ibias_trim 
+6a0c 6ff08a02 fetch 1 ,0x8a02 
+6a0d 1fe17e1f and pdata ,0x1f ,pdata 
+6a0e 9841fe00 ior temp ,pdata 
+6a0f 67f08a02 store 1 ,0x8a02 
+6a10 20600000 rtn 
+
+loadcode_load_key:
+6a11 78547c00 disable user 
+6a12 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6a13 c4018000 rtnbit0 otp_uflag_aes 
+6a14 20406a67 call loadcode_check_otp_lock 
+6a15 dfe00ff0 arg otp_offset_ucode_key_l ,pdata 
+6a16 9a40a400 iadd regb ,regb 
+6a17 18007210 force 16 ,loopcnt 
+6a18 da2001cb arg mem_ucode_keybuf ,rega 
+6a19 20406b62 call otp_read_data 
+6a1a 70800608 jam otp_key_lock ,core_misc_ctrl 
+6a1b d8c001cb arg mem_ucode_keybuf ,contr 
+6a1c 2040734d call load_key 
+6a1d d8a001cb arg mem_ucode_keybuf ,contw 
+6a1e 20407c9b call memset0_16 
+6a1f 20207dbc branch enable_user 
+
+loadcode:
+6a20 70805025 jam 0x25 ,core_clkoff 
+6a21 20406b28 call enable_otp_read 
+6a22 da400000 arg otp_offset_patch_ptr ,regb 
+6a23 1800720b force 11 ,loopcnt 
+6a24 da2043cc arg mem_ucode_ptr ,rega 
+6a25 20406b63 call otp_read_data1 
+6a26 6ee2c3cc fetchr regf ,5 ,mem_ucode_ptr 
+6a27 6d6343d1 fetchr rege ,6 ,mem_bistfix_val 
+6a28 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6a29 c3026a31 bbit0 otp_uflag_bist ,loadcode_nobist 
+6a2a 70806f07 jam 0x7 ,core_bist_ctrl 
+
+loadcode_bistwait:
+6a2b 6ff0815e fetch 1 ,core_bist_done 
+6a2c c083ea2b bne 7 ,loadcode_bistwait 
+6a2d 6ff08160 fetch 1 ,core_bist_fail 
+6a2e 1ff27e00 lshift4 pdata ,pdata 
+6a2f 67f0806f store 1 ,core_bist_ctrl 
+6a30 20206a34 branch loadcode_otp 
+
+loadcode_nobist:
+6a31 20406adc call set_bistfix 
+6a32 20407d78 call clean_xmem 
+6a33 20407d76 call clean_smem 
+
+loadcode_otp:
+6a34 66e2c3cc storer regf ,5 ,mem_ucode_ptr 
+6a35 656343d1 storer rege ,6 ,mem_bistfix_val 
+6a36 20406a67 call loadcode_check_otp_lock 
+6a37 dfe00fd0 arg otp_offset_adc_param_l ,pdata 
+6a38 9a40a400 iadd regb ,regb 
+6a39 df200020 arg 32 ,loopcnt 
+6a3a da2001db arg mem_otp_temp ,rega 
+6a3b 20406b62 call otp_read_data 
+6a3c 204069ea call set_otp_config 
+6a3d 204069d0 call loadcode_lock 
+6a3e 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6a3f c301ea49 bbit0 otp_uflag_aes ,loadcode_unenc 
+6a40 6848c3d0 fetcht 1 ,mem_peripheral_lock_flag 
+6a41 dfe00000 arg 0 ,pdata 
+6a42 79207e06 set1 otp_not_limit ,pdata 
+6a43 79207e07 set1 otp_limit ,pdata 
+6a44 98412200 iand temp ,rega 
+6a45 1a267c00 sub rega ,0 ,null 
+6a46 2022eaab branch loadcode_error ,zero 
+6a47 9a267c00 isub rega ,null 
+6a48 2022eaab branch loadcode_error ,zero 
+
+loadcode_unenc:
+6a49 70003000 jam 0 ,mem_loadcode_times 
+6a4a da606b0c arg otp_load_code ,regc 
+
+loadcode_otp_loop:
+6a4b 20406a9f call loadcode_timeout 
+6a4c 24216aab nbranch loadcode_error ,positive 
+6a4d 6fe143cc fetch 2 ,mem_ucode_ptr 
+6a4e 203a6a56 branch loadcode_otp_end ,blank 
+6a4f 2040698d call read_first_block_cont 
+6a50 2040699d call load_storage 
+6a51 2436ea56 nbranch loadcode_otp_end ,match 
+6a52 6fe081bb fetch 1 ,mem_ucode_status 
+6a53 2fe00603 compare 3 ,pdata ,3 
+6a54 2420ea4b nbranch loadcode_otp_loop ,true 
+6a55 20406a64 call run_otp_code 
+
+loadcode_otp_end:
+6a56 20406b25 call disable_otp 
+6a57 70003000 jam 0 ,mem_loadcode_times 
+
+loadcode_iic_loop:
+6a58 20406a9f call loadcode_timeout 
+6a59 24216aab nbranch loadcode_error ,positive 
+6a5a 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6a5b c2816a77 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+6a5c 20406a91 call iicd_load_gpio_init 
+6a5d 20406cba call clear_eeprom_size_2k 
+6a5e 20406a99 call loadcode_iic_by_eeprom 
+6a5f 2436ea6e nbranch loadcode_iic_eeprom_2k ,match 
+6a60 6fe081bb fetch 1 ,mem_ucode_status 
+6a61 2fe00603 compare 3 ,pdata ,3 
+6a62 2420ea58 nbranch loadcode_iic_loop ,true 
+6a63 20206a77 branch loadcode_spi 
+
+run_otp_code:
+6a64 580001ff setarg 0x1ff 
+6a65 dfa00000 arg 0 ,pc 
+6a66 20600000 rtn 
+
+loadcode_check_otp_lock:
+6a67 da401000 arg otp_offset_h ,regb 
+6a68 6ff08144 fetch 1 ,core_peripheral_lock 
+6a69 c283ea6c bbit1 otp_limit ,loadcode_otp_lock 
+6a6a 6fe0c3d0 fetch 1 ,mem_peripheral_lock_flag 
+6a6b c4038000 rtnbit0 otp_limit 
+
+loadcode_otp_lock:
+6a6c da400000 arg 0 ,regb 
+6a6d 20600000 rtn 
+
+loadcode_iic_eeprom_2k:
+6a6e 20406cb7 call set_eeprom_size_2k 
+6a6f 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6a70 c2816a77 bbit1 otp_uflag_skip_eep ,loadcode_spi 
+6a71 20406a99 call loadcode_iic_by_eeprom 
+6a72 2436ea77 nbranch loadcode_spi ,match 
+6a73 6fe081bb fetch 1 ,mem_ucode_status 
+6a74 2fe00603 compare 3 ,pdata ,3 
+6a75 2420ea58 nbranch loadcode_iic_loop ,true 
+6a76 20206a87 branch loadcode_hci 
+
+loadcode_spi:
+6a77 70003000 jam 0 ,mem_loadcode_times 
+
+loadcode_spi_loop:
+6a78 20406a9f call loadcode_timeout 
+6a79 24216aab nbranch loadcode_error ,positive 
+6a7a 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6a7b c280ea87 bbit1 otp_uflag_skip_flash ,loadcode_hci 
+6a7c 20406c16 call spid_init_flash 
+6a7d 200000c8 nop 200 
+6a7e 20406c25 call spid_flash_release_form_powerdown 
+6a7f 20000064 nop 100 
+6a80 da606c62 arg spid_load_flash ,regc 
+6a81 20406988 call read_first_block 
+6a82 2040699d call load_storage 
+6a83 2436ea87 nbranch loadcode_hci ,match 
+6a84 6fe081bb fetch 1 ,mem_ucode_status 
+6a85 2fe00603 compare 3 ,pdata ,3 
+6a86 2420ea78 nbranch loadcode_spi_loop ,true 
+
+loadcode_hci:
+6a87 20406a8b call clear_key_buf 
+6a88 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6a89 c4000000 rtnbit0 otp_uflag_hci 
+6a8a 202066f2 branch hci_init 
+
+clear_key_buf:
+6a8b d8a001cb arg mem_ucode_keybuf ,contw 
+6a8c 20407c9b call memset0_16 
+6a8d 18007004 force regidx_key ,regext_index 
+6a8e 2040735e call aes_clear 
+6a8f 70805021 jam 0x21 ,core_clkoff 
+6a90 20600000 rtn 
+
+iicd_load_gpio_init:
+6a91 6fe0c440 fetch 1 ,mem_eeprom_sda_gpio 
+6a92 6848c43f fetcht 1 ,mem_eeprom_scl_gpio 
+6a93 98467c00 isub temp ,null 
+6a94 2422ecb2 nbranch iicd_read_init_pin ,zero 
+
+iicd_load_default_gpio:
+6a95 70443e04 jam 4 ,mem_eeprom_wp_gpio 
+6a96 70443f08 jam 8 ,mem_eeprom_scl_gpio 
+6a97 70444007 jam 7 ,mem_eeprom_sda_gpio 
+6a98 20206cb2 branch iicd_read_init_pin 
+
+loadcode_iic_by_eeprom:
+6a99 58000000 setarg 0x0 
+6a9a 67e101be store 2 ,mem_addr_mi 
+6a9b da606cdd arg iicd_read_eep ,regc 
+6a9c 20406c9b call iic_init_600khz 
+6a9d 20406988 call read_first_block 
+6a9e 2020699d branch load_storage 
+
+loadcode_timeout:
+6a9f 20406aa5 call loadcode_error_delay 
+6aa0 6fe08030 fetch 1 ,mem_loadcode_times 
+6aa1 1fe0fe01 increase 1 ,pdata 
+6aa2 1fe67c03 sub pdata ,3 ,null 
+6aa3 67e08030 store 1 ,mem_loadcode_times 
+6aa4 20600000 rtn 
+
+loadcode_error_delay:
+6aa5 6fe08030 fetch 1 ,mem_loadcode_times 
+6aa6 207a0000 rtn blank 
+6aa7 6fe081f9 fetch 1 ,mem_otp_load_delay 
+6aa8 207a0000 rtn blank 
+6aa9 1fe27200 copy pdata ,loopcnt 
+6aaa 20207c98 branch delay_ms_wait 
+
+loadcode_error:
+6aab 20406a8b call clear_key_buf 
+6aac 20406972 call aes_disable 
+6aad 20407d7e call ice_break 
+6aae 20600000 rtn 
+
+set_bistfix_wake:
+6aaf 20406adc call set_bistfix 
+6ab0 20406ab7 call set_bistfix_wake_xram 
+
+set_bistfix_wake_patchram:
+6ab1 6ff0806f fetch 1 ,core_bist_ctrl 
+6ab2 c4030000 rtnbit0 bist_ctrl_fix_patch_ram 
+6ab3 20406ad1 call set_bistfix_set_patchram_addr 
+6ab4 df200004 arg 4 ,loopcnt 
+6ab5 d8c043d8 arg mem_bistfix_val_patchram ,contr 
+6ab6 20206b07 branch load_ucode_loop 
+
+set_bistfix_wake_xram:
+6ab7 6ff0806f fetch 1 ,core_bist_ctrl 
+6ab8 c4028000 rtnbit0 bist_ctrl_fix_xram 
+6ab9 684943d3 fetcht 2 ,mem_bistfix_addr_x 
+6aba 18490400 rshift3 temp ,temp 
+6abb dfe04000 arg 0x4000 ,pdata 
+6abc 98408a00 iadd temp ,contw 
+6abd 6fe0c3d7 fetch 1 ,mem_bistfix_val_xram 
+6abe 20207dce branch istore_1_contw_rtn 
+
+set_bistfix_save_xram:
+6abf 4779403e bpatchx patch3e_2 ,mem_patch3e 
+6ac0 6ff0806f fetch 1 ,core_bist_ctrl 
+6ac1 c4028000 rtnbit0 bist_ctrl_fix_xram 
+6ac2 6a2143d3 fetchr rega ,2 ,mem_bistfix_addr_x 
+6ac3 1a292200 rshift3 rega ,rega 
+6ac4 dfe04000 arg 0x4000 ,pdata 
+6ac5 9a208c00 iadd rega ,contr 
+6ac6 efe08006 ifetch 1 ,contr 
+6ac7 67e0c3d7 store 1 ,mem_bistfix_val_xram 
+6ac8 20600000 rtn 
+
+set_bistfix_save_patchram:
+6ac9 20758000 rtn wake 
+6aca 6ff0806f fetch 1 ,core_bist_ctrl 
+6acb c4030000 rtnbit0 bist_ctrl_fix_patch_ram 
+6acc 20406ad1 call set_bistfix_set_patchram_addr 
+6acd 2000000a nop 10 
+6ace df200004 arg 4 ,loopcnt 
+6acf d8a043d8 arg mem_bistfix_val_patchram ,contw 
+6ad0 20206afa branch save_ucode_loop 
+
+set_bistfix_set_patchram_addr:
+6ad1 70802200 jam 0 ,core_ucode_hi 
+6ad2 6fe143d5 fetch 2 ,mem_bistfix_addr_patch 
+6ad3 1ff1fe00 rshift4 pdata ,pdata 
+6ad4 1fe37e00 rshift pdata ,pdata 
+6ad5 1ff18400 rshift4 pdata ,temp 
+6ad6 184b0400 rshift2 temp ,temp 
+6ad7 79200407 set1 7 ,temp 
+6ad8 60588023 storet 1 ,core_ucode_ctrl 
+6ad9 1febfe00 lshift2 pdata ,pdata 
+6ada 67f08024 store 1 ,core_ucode_low 
+6adb 20600000 rtn 
+
+set_bistfix:
+6adc 6fe0c3ce fetch 1 ,mem_ucode_flag 
+6add 1fe17ee0 and_into 0xe0 ,pdata 
+6ade 207a0000 rtn blank 
+6adf 1fe37e00 rshift pdata ,pdata 
+6ae0 67f0806f store 1 ,core_bist_ctrl 
+6ae1 58000001 setarg 1 
+6ae2 d8c043d1 arg mem_bistfix_val ,contr 
+
+set_bistfix_loop:
+6ae3 e8410006 ifetcht 2 ,contr 
+6ae4 6059004c storet 2 ,core_lpm_reg 
+6ae5 67f08020 store 1 ,core_set_bistfix 
+6ae6 1fe3fe00 lshift pdata ,pdata 
+6ae7 c301eae3 bbit0 3 ,set_bistfix_loop 
+6ae8 20600000 rtn 
+
+set_ucode_status:
+6ae9 6fe081bb fetch 1 ,mem_ucode_status 
+6aea 1fe3fe00 lshift pdata ,pdata 
+6aeb 7920fe00 setflag true ,0 ,pdata 
+6aec 2a2c000f isolate0 15 ,rega 
+6aed 20608000 rtn true 
+6aee 67e081bb store 1 ,mem_ucode_status 
+6aef 20600000 rtn 
+
+decrypt_code:
+6af0 6ff0806f fetch 1 ,core_bist_ctrl 
+6af1 c4038000 rtnbit0 aes_en 
+6af2 20206af6 branch decrypt_code_skip 
+
+decrypt_code_loop:
+6af3 6ff08128 fetch 1 ,core_dma_status 
+6af4 afefffff qisolate1 pdata 
+6af5 20608000 rtn true 
+
+decrypt_code_skip:
+6af6 6ff08108 fetch 1 ,core_misc_status 
+6af7 c300eaf3 bbit0 1 ,decrypt_code_loop 
+6af8 204072c2 call do_aes_cbc 
+6af9 20206af3 branch decrypt_code_loop 
+
+save_ucode_loop:
+6afa 6ff08025 fetch 1 ,core_ucode_data 
+6afb e7e08005 istore 1 ,contw 
+6afc c2006afa loop save_ucode_loop 
+6afd 70802300 jam 0x0 ,core_ucode_ctrl 
+6afe 20600000 rtn 
+
+load_ucode:
+6aff 6fe140f0 fetch 2 ,mem_patch_ptr 
+6b00 207a0000 rtn blank 
+6b01 70802380 jam 0x80 ,core_ucode_ctrl 
+6b02 70802200 jam 0 ,core_ucode_hi 
+6b03 70802400 jam 0 ,core_ucode_low 
+6b04 684940f2 fetcht 2 ,mem_patch_len 
+6b05 184bf200 lshift2 temp ,loopcnt 
+6b06 98000c00 iforce contr 
+
+load_ucode_loop:
+6b07 efe08006 ifetch 1 ,contr 
+6b08 67f08025 store 1 ,core_ucode_data 
+6b09 c2006b07 loop load_ucode_loop 
+6b0a 70802300 jam 0x0 ,core_ucode_ctrl 
+6b0b 20600000 rtn 
+
+otp_load_code:
+6b0c 18427200 copy temp ,loopcnt 
+6b0d 6fe101be fetch 2 ,mem_addr_mi 
+6b0e 98408400 iadd temp ,temp 
+6b0f 604901be storet 2 ,mem_addr_mi 
+6b10 98002400 iforce regb 
+6b11 1a225c00 copy rega ,nap 
+6b12 70800610 jam init_key ,core_misc_ctrl 
+6b13 20406b62 call otp_read_data 
+6b14 1dc22200 copy nap ,rega 
+6b15 2a2c000f isolate0 15 ,rega 
+6b16 20608000 rtn true 
+6b17 205a7dc8 call enable_true ,blank 
+6b18 20206ae9 branch set_ucode_status 
+
+otp_enable_chgpump25:
+6b19 708ac801 jam 0x1 ,core_chgpump_ctrl 
+6b1a 2000012c nop 300 
+6b1b 708ac805 jam 0x5 ,core_chgpump_ctrl 
+6b1c 20000064 nop 100 
+6b1d 708ac825 jam 0x25 ,core_chgpump_ctrl 
+6b1e 200003e8 nop 1000 
+6b1f 708ac827 jam 0x27 ,core_chgpump_ctrl 
+6b20 2000012c nop 300 
+6b21 20600000 rtn 
+
+otp_enable_chgpump65:
+6b22 20406b19 call otp_enable_chgpump25 
+6b23 708ac83f jam 0x3f ,core_chgpump_ctrl 
+6b24 20600000 rtn 
+
+disable_otp:
+6b25 70804783 jam 0x83 ,core_otp_ctrl 
+
+otp_disable_chgpump:
+6b26 708ac800 jam 0 ,core_chgpump_ctrl 
+6b27 20600000 rtn 
+
+enable_otp_read:
+6b28 20406b19 call otp_enable_chgpump25 
+
+otp_reset:
+6b29 70804782 jam 0x82 ,core_otp_ctrl 
+6b2a 2000000c nop 12 
+6b2b 70804780 jam 0x80 ,core_otp_ctrl 
+6b2c 70804782 jam 0x82 ,core_otp_ctrl 
+6b2d 20000096 nop 150 
+6b2e 20600000 rtn 
+
+otp_set_addr:
+6b2f 1a49a400 lshift3 regb ,regb 
+6b30 62510044 storer regb ,2 ,core_otp_addr 
+6b31 70804600 jam 0 ,core_otp_din 
+6b32 20600000 rtn 
+
+otp_write:
+6b33 44f4c01d bpatch patch1d_1 ,mem_patch1d 
+6b34 20406b22 call otp_enable_chgpump65 
+6b35 20406b2f call otp_set_addr 
+6b36 20406b29 call otp_reset 
+
+otp_program:
+6b37 e8408011 ifetcht 1 ,rega 
+6b38 1a20a201 increase 1 ,rega 
+6b39 18000e00 force 0 ,queue 
+
+otp_program_bit:
+6b3a a84c0000 qisolate0 temp 
+6b3b 2020eb5a branch otp_skip_0 ,true 
+6b3c 6ff08046 fetch 1 ,core_otp_din 
+6b3d 79207e06 set1 6 ,pdata 
+6b3e 79207e07 set1 7 ,pdata 
+6b3f 67f08046 store 1 ,core_otp_din 
+6b40 70804702 jam 0x02 ,core_otp_ctrl 
+6b41 70804782 jam 0x82 ,core_otp_ctrl 
+6b42 793ffe07 set0 7 ,pdata 
+6b43 67f08046 store 1 ,core_otp_din 
+6b44 7080478a jam 0x8a ,core_otp_ctrl 
+6b45 2000000b nop 11 
+6b46 708047ca jam 0xca ,core_otp_ctrl 
+6b47 20000021 nop 33 
+6b48 7080474a jam 0x4a ,core_otp_ctrl 
+6b49 2000002c nop 44 
+6b4a 708047ca jam 0xca ,core_otp_ctrl 
+6b4b 20000016 nop 22 
+6b4c 7080478a jam 0x8a ,core_otp_ctrl 
+6b4d 20000021 nop 33 
+6b4e 70804782 jam 0x82 ,core_otp_ctrl 
+6b4f 20000001 nop 1 
+6b50 70804792 jam 0x92 ,core_otp_ctrl 
+6b51 2000000a nop 10 
+6b52 708047b2 jam 0xb2 ,core_otp_ctrl 
+6b53 6ff08007 fetch 1 ,core_otp_rdata 
+6b54 70804792 jam 0x92 ,core_otp_ctrl 
+6b55 20000001 nop 1 
+6b56 70804782 jam 0x82 ,core_otp_ctrl 
+6b57 20000001 nop 1 
+6b58 afec0000 qisolate0 pdata 
+6b59 2020eb3a branch otp_program_bit ,true 
+
+otp_skip_0:
+6b5a 6ff10044 fetch 2 ,core_otp_addr 
+6b5b 1fe0fe01 increase 1 ,pdata 
+6b5c 67f10044 store 2 ,core_otp_addr 
+6b5d 18e08e01 increase 1 ,queue 
+6b5e 28e01e08 compare 8 ,queue ,0xf 
+6b5f 2420eb3a nbranch otp_program_bit ,true 
+6b60 c2006b37 loop otp_program 
+6b61 20206b26 branch otp_disable_chgpump 
+
+otp_read_data:
+6b62 44f5401d bpatch patch1d_2 ,mem_patch1d 
+
+otp_read_data1:
+6b63 20406b2f call otp_set_addr 
+6b64 708047a2 jam 0xa2 ,core_otp_ctrl 
+6b65 1a40a408 increase 8 ,regb 
+6b66 d8e00000 arg 0 ,queue 
+6b67 5fffffff setarg -1 
+
+otp_read_data_loop:
+6b68 68588007 fetcht 1 ,core_otp_rdata 
+6b69 e0408011 istoret 1 ,rega 
+6b6a 984c7e00 bcrc temp 
+6b6b 70800620 jam shift_key ,core_misc_ctrl 
+6b6c 62510044 storer regb ,2 ,core_otp_addr 
+6b6d 2a2ffe0f isolate1 15 ,rega 
+6b6e 2020eb71 branch otp_read_noinc ,true 
+6b6f 1a20a201 increase 1 ,rega 
+6b70 20206b77 branch otp_read_unenc 
+
+otp_read_noinc:
+6b71 24346b77 nbranch otp_read_unenc ,user 
+6b72 18e08e01 increase 1 ,queue 
+6b73 28e01e00 compare 0 ,queue ,0xf 
+6b74 2420eb77 nbranch otp_read_unenc ,true 
+6b75 204072c2 call do_aes_cbc 
+6b76 70800610 jam init_key ,core_misc_ctrl 
+
+otp_read_unenc:
+6b77 1a40a408 increase 8 ,regb 
+6b78 c2006b68 loop otp_read_data_loop 
+6b79 70804782 jam 0x82 ,core_otp_ctrl 
+6b7a 20600000 rtn 
+
+app_lpm_lock_check:
+6b7b 6fe0c3cf fetch 1 ,mem_device_option 
+6b7c c0056b8c beq dvc_op_module ,app_lpm_module_lock 
+6b7d c0026b90 beq dvc_op_dongle ,app_lpm_dongle_lock 
+6b7e c0046b96 beq dvc_op_mouse ,app_lpm_mouse_lock 
+6b7f c004eba0 beq dvc_op_shutter ,app_lpm_shutter_lock 
+6b80 c0036ba0 beq dvc_op_shutter_dy ,app_lpm_shutter_lock 
+6b81 c0066b8c beq dvc_op_hci_boot ,app_lpm_hciboot_lock 
+6b82 c006eba7 beq dvc_op_remote_car ,app_lpm_car_lock_application_and_ble 
+6b83 c0076ba4 beq dvc_op_car ,app_lpm_car_lock 
+6b84 c007eb89 beq dvc_op_keyboard ,app_lpm_kb_lock 
+6b85 c000ebb0 beq dvc_op_2g4 ,app_lpm_mpu_lock_ble 
+6b86 c0016bb5 beq dvc_op_ble ,app_lpm_mpu_lock_24g 
+6b87 c003eb9c beq dvc_op_mouse_2g4 ,app_lpm_mouse_lock_24g 
+6b88 20206bb8 branch app_lpm_mpu_lock_24g_ble 
+
+app_lpm_kb_lock:
+6b89 dfe04a31 arg module_init ,pdata 
+6b8a d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
+6b8b 20206bad branch app_mpu_s0_lock 
+
+app_lpm_module_lock:
+
+app_lpm_hciboot_lock:
+6b8c dfe037c1 arg car_init ,pdata 
+6b8d d8404a2f arg keyboard_bt_discovery_button_down_disable ,temp 
+6b8e 20406bad call app_mpu_s0_lock 
+6b8f 20206bb5 branch app_lpm_mpu_lock_24g 
+
+app_lpm_dongle_lock:
+6b90 dfe03e8f arg keyboard_softreset_process ,pdata 
+6b91 d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
+6b92 20406bad call app_mpu_s0_lock 
+6b93 dfe037c1 arg car_init ,pdata 
+6b94 d8403cc7 arg remote_car_wakeup_config_loop ,temp 
+6b95 20206bb2 branch app_mpu_s1_lock 
+
+app_lpm_mouse_lock:
+6b96 dfe037c1 arg car_init ,pdata 
+6b97 d8404d0d arg module_set_state ,temp 
+6b98 20406bad call app_mpu_s0_lock 
+6b99 dfe05bf7 arg rec_cb_function ,pdata 
+6b9a d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
+6b9b 20206bb2 branch app_mpu_s1_lock 
+
+app_lpm_mouse_lock_24g:
+6b9c dfe037c1 arg car_init ,pdata 
+6b9d d8404d0d arg module_set_state ,temp 
+6b9e 20406bad call app_mpu_s0_lock 
+6b9f 20206bb0 branch app_lpm_mpu_lock_ble 
+
+app_lpm_shutter_lock:
+6ba0 dfe037c1 arg car_init ,pdata 
+6ba1 d84060c0 arg rec_enter_queue ,temp 
+6ba2 20406bad call app_mpu_s0_lock 
+6ba3 20206bb5 branch app_lpm_mpu_lock_24g 
+
+app_lpm_car_lock:
+6ba4 dfe03cd1 arg dongle_init ,pdata 
+6ba5 d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
+6ba6 20206bad branch app_mpu_s0_lock 
+
+app_lpm_car_lock_application_and_ble:
+6ba7 dfe03cd1 arg dongle_init ,pdata 
+6ba8 d84066d9 arg shutter_dy_shutter_1s_timer ,temp 
+6ba9 20406bad call app_mpu_s0_lock 
+6baa dfe02ae3 arg le_send_adv_ind ,pdata 
+6bab d84030eb arg le_send_ll_one_lenth ,temp 
+6bac 20206bb2 branch app_mpu_s1_lock 
+
+app_mpu_s0_lock:
+6bad 18500400 lshift16 temp ,temp 
+6bae 9841fe00 ior temp ,pdata 
+6baf 202023b1 branch lpm_write_mpu_s0 
+
+app_lpm_mpu_lock_ble:
+6bb0 dfe02b6e arg le_parse_att ,pdata 
+6bb1 d84030eb arg le_send_ll_one_lenth ,temp 
+
+app_mpu_s1_lock:
+6bb2 18500400 lshift16 temp ,temp 
+6bb3 9841fe00 ior temp ,pdata 
+6bb4 202023b8 branch lpm_write_mpu_s1 
+
+app_lpm_mpu_lock_24g:
+6bb5 dfe030f1 arg g24_prep ,pdata 
+6bb6 d84036bf arg g24_factory_check ,temp 
+6bb7 20206bb2 branch app_mpu_s1_lock 
+
+app_lpm_mpu_lock_24g_ble:
+6bb8 20406bb5 call app_lpm_mpu_lock_24g 
+6bb9 dfe02b6e arg le_parse_att ,pdata 
+6bba d84030eb arg le_send_ll_one_lenth ,temp 
+6bbb 20206bad branch app_mpu_s0_lock 
+
+spid_init:
+6bbc 44f5c01d bpatch patch1d_3 ,mem_patch1d 
+
+spid_init_common:
+6bbd 6fe0c3fe fetch 1 ,mem_spi_init_clk 
+6bbe 67f08080 store 1 ,core_spid_ctrl 
+6bbf 6fe0c3ff fetch 1 ,mem_spi_init_delay_time 
+6bc0 67f08081 store 1 ,core_spid_delay 
+6bc1 580001bc setarg mem_spid_tbuf 
+6bc2 67f10084 store 2 ,core_spid_txaddr 
+6bc3 580001c1 setarg mem_spid_rbuf 
+6bc4 67f10086 store 2 ,core_spid_rxaddr 
+6bc5 20206968 branch twspi_disable 
+
+spid_write_reg:
+6bc6 79207e07 set1 7 ,pdata 
+6bc7 67e101bc store 2 ,mem_spid_tbuf 
+6bc8 44f6401d bpatch patch1d_4 ,mem_patch1d 
+6bc9 70808202 jam 2 ,core_spid_txlen 
+6bca 70808800 jam 0 ,core_spid_rxlen 
+6bcb 70800602 jam spid_start ,core_misc_ctrl 
+6bcc 20206bd6 branch wait_spid_done 
+
+spid_read_reg:
+6bcd 18000401 force 1 ,temp 
+
+spid_read_regs:
+6bce 67e081bc store 1 ,mem_spid_tbuf 
+6bcf 44f6c01d bpatch patch1d_5 ,mem_patch1d 
+6bd0 70808201 jam 1 ,core_spid_txlen 
+6bd1 60590088 storet 2 ,core_spid_rxlen 
+6bd2 70800602 jam spid_start ,core_misc_ctrl 
+6bd3 20406bd6 call wait_spid_done 
+6bd4 6fe081c1 fetch 1 ,mem_spid_rbuf 
+6bd5 20600000 rtn 
+
+wait_spid_done:
+6bd6 20000005 nop 5 
+6bd7 6ff08128 fetch 1 ,core_dma_status 
+6bd8 c301ebd6 bbit0 spid_done ,wait_spid_done 
+6bd9 20600000 rtn 
+
+flash_write:
+6bda 78547c00 disable user 
+6bdb 1fe22400 copy pdata ,regb 
+6bdc 6fe0c437 fetch 1 ,mem_spi_write_flash_sm 
+6bdd c1800000 rtnne flash_sm_no_buys 
+6bde 78347c00 enable user 
+6bdf 1a427e00 copy regb ,pdata 
+6be0 20206be8 branch spid_flash_write_start 
+
+flash_write_spi_sm_timer:
+6be1 6fe0c437 fetch 1 ,mem_spi_write_flash_sm 
+6be2 c000ebe8 beq flash_sm_start ,spid_flash_write_start 
+6be3 c0016bee beq flash_sm_erase_sector ,spid_flash_erase_sector 
+6be4 c001ebf6 beq flash_sm_wait_erase_sector ,spid_flash_wait_erase_sector 
+6be5 c0026bfa beq flash_sm_write_data ,spid_flash_write_data 
+6be6 c002ec01 beq flash_sm_wait_write_data ,spid_flash_wait_write_data 
+6be7 20600000 rtn 
+
+spid_flash_write_start:
+6be8 67e1c430 store 3 ,mem_spi_write_addr 
+6be9 1a227e00 copy rega ,pdata 
+6bea 67e14433 store 2 ,mem_spi_write_ptr 
+6beb 60494435 storet 2 ,mem_spi_write_len 
+6bec 70443702 jam flash_sm_erase_sector ,mem_spi_write_flash_sm 
+6bed 20206c16 branch spid_init_flash 
+
+spid_flash_erase_sector:
+6bee 20406c16 call spid_init_flash 
+6bef 70443703 jam flash_sm_wait_erase_sector ,mem_spi_write_flash_sm 
+6bf0 20406c1c call spid_unlock_flash 
+6bf1 da2001bc arg mem_spid_tbuf ,rega 
+6bf2 70808204 jam 4 ,core_spid_txlen 
+6bf3 6fe1c430 fetch 3 ,mem_spi_write_addr 
+6bf4 d8400020 arg flash_command_sector_erase ,temp 
+6bf5 20206c36 branch spid_write_flash_common 
+
+spid_flash_wait_erase_sector:
+6bf6 20406c16 call spid_init_flash 
+6bf7 20406c59 call wait_spid_flash_done 
+6bf8 70443704 jam flash_sm_write_data ,mem_spi_write_flash_sm 
+6bf9 20600000 rtn 
+
+spid_flash_write_data:
+6bfa 44f7401d bpatch patch1d_6 ,mem_patch1d 
+6bfb 20406c16 call spid_init_flash 
+6bfc 70443705 jam flash_sm_wait_write_data ,mem_spi_write_flash_sm 
+6bfd 20406c1c call spid_unlock_flash 
+6bfe 20406c0e call spid_flash_data_preserve 
+6bff 20406c32 call spid_write_flash 
+6c00 20206c09 branch spid_flash_data_recover 
+
+spid_flash_wait_write_data:
+6c01 20406c16 call spid_init_flash 
+6c02 20406c1c call spid_unlock_flash 
+6c03 58000005 setarg flash_read_satus 
+6c04 20406bcd call spid_read_reg 
+6c05 c3800000 rtnbit1 flash_status_wip 
+6c06 70443700 jam flash_sm_no_buys ,mem_spi_write_flash_sm 
+6c07 6fe143f0 fetch 2 ,mem_cb_spi_flash_write_complate 
+6c08 20207d7b branch callback_func 
+
+spid_flash_data_recover:
+6c09 6fe20656 fetch 4 ,mem_temp 
+6c0a 68494433 fetcht 2 ,mem_spi_write_ptr 
+
+spid_flash_data_recover_comm:
+6c0b 184085fc increase -4 ,temp 
+6c0c e7e20002 istore 4 ,temp 
+6c0d 20600000 rtn 
+
+spid_flash_data_preserve:
+6c0e 68494433 fetcht 2 ,mem_spi_write_ptr 
+6c0f 18422200 copy temp ,rega 
+6c10 184085fc increase -4 ,temp 
+6c11 efe20002 ifetch 4 ,temp 
+6c12 67e20656 store 4 ,mem_temp 
+6c13 68494435 fetcht 2 ,mem_spi_write_len 
+6c14 6fe1c430 fetch 3 ,mem_spi_write_addr 
+6c15 20600000 rtn 
+
+spid_init_flash:
+6c16 44f7c01d bpatch patch1d_7 ,mem_patch1d 
+6c17 20406c81 call spi_gpio_init 
+6c18 20406968 call twspi_disable 
+6c19 58000000 setarg 0 
+6c1a 67e201bc store 4 ,mem_spid_tbuf 
+6c1b 20600000 rtn 
+
+spid_unlock_flash:
+6c1c 7001bc06 jam flash_command_write_enable ,mem_spid_tbuf 
+
+spid_sendcmd_common:
+6c1d 58000000 setarg 0 
+6c1e 67f10088 store 2 ,core_spid_rxlen 
+6c1f 58000001 setarg 1 
+6c20 67f10082 store 2 ,core_spid_txlen 
+6c21 580001bc setarg mem_spid_tbuf 
+6c22 67f10084 store 2 ,core_spid_txaddr 
+6c23 70800602 jam spid_start ,core_misc_ctrl 
+6c24 20206bd6 branch wait_spid_done 
+
+spid_flash_release_form_powerdown:
+6c25 7001bcab jam flash_command_release_from_powerdown ,mem_spid_tbuf 
+6c26 20206c1d branch spid_sendcmd_common 
+
+spid_flash_powerdown:
+6c27 7001bcb9 jam flash_command_powerdown ,mem_spid_tbuf 
+6c28 20206c1d branch spid_sendcmd_common 
+
+spid_write_flash_data:
+6c29 67e1864e store 3 ,mem_pdatatemp 
+6c2a 60490656 storet 2 ,mem_temp 
+6c2b 62210662 storer rega ,2 ,mem_rega 
+6c2c 44f8401e bpatch patch1e_0 ,mem_patch1e 
+6c2d 20406c1c call spid_unlock_flash 
+6c2e 6fe1864e fetch 3 ,mem_pdatatemp 
+6c2f 68490656 fetcht 2 ,mem_temp 
+6c30 6a210662 fetchr rega ,2 ,mem_rega 
+6c31 20206c32 branch spid_write_flash 
+
+spid_write_flash:
+6c32 18408404 increase 4 ,temp 
+6c33 60590082 storet 2 ,core_spid_txlen 
+6c34 d8400002 arg flash_command_write_data ,temp 
+6c35 1a20a3fc increase -4 ,rega 
+
+spid_write_flash_common:
+6c36 e0408011 istoret 1 ,rega 
+6c37 1ff10400 rshift16 pdata ,temp 
+6c38 e0408005 istoret 1 ,contw 
+6c39 1fec8400 rshift8 pdata ,temp 
+6c3a e0408005 istoret 1 ,contw 
+6c3b e7e08005 istore 1 ,contw 
+6c3c 1a227e00 deposit rega 
+6c3d 67f10084 store 2 ,core_spid_txaddr 
+6c3e 58000000 setarg 0 
+6c3f 67f10088 store 2 ,core_spid_rxlen 
+6c40 70800602 jam spid_start ,core_misc_ctrl 
+6c41 20406bd6 call wait_spid_done 
+6c42 20206c59 branch wait_spid_flash_done 
+
+spid_read_flash:
+6c43 60590088 storet 2 ,core_spid_rxlen 
+6c44 1ff10400 rshift16 pdata ,temp 
+6c45 604881bd storet 1 ,mem_addr_hi 
+6c46 1fec8400 rshift8 pdata ,temp 
+6c47 604881be storet 1 ,mem_addr_mi 
+6c48 67e081bf store 1 ,mem_addr_lo 
+6c49 58000004 setarg 4 
+6c4a 67f10082 store 2 ,core_spid_txlen 
+6c4b 7001bc03 jam flash_command_read_data ,mem_spid_tbuf 
+6c4c 580001bc setarg mem_spid_tbuf 
+6c4d 67f10084 store 2 ,core_spid_txaddr 
+6c4e 1a227e00 deposit rega 
+6c4f 67f10086 store 2 ,core_spid_rxaddr 
+6c50 6ff08080 fetch 1 ,core_spid_ctrl 
+6c51 2a2c000f isolate0 15 ,rega 
+6c52 7920fe06 setflag true ,6 ,pdata 
+6c53 67f08080 store 1 ,core_spid_ctrl 
+6c54 70800602 jam spid_start ,core_misc_ctrl 
+
+spid_read_flash_wait:
+6c55 6ff08128 fetch 1 ,core_dma_status 
+6c56 c283ec55 bbit1 7 ,spid_read_flash_wait 
+6c57 d8e00003 arg spid_done ,queue 
+6c58 20206bd6 branch wait_spid_done 
+
+wait_spid_flash_done:
+6c59 580007d0 setarg 2000 
+6c5a 20402340 call sleep 
+6c5b 20406c1c call spid_unlock_flash 
+6c5c 580001c1 setarg mem_spid_rbuf 
+6c5d 67f10086 store 2 ,core_spid_rxaddr 
+6c5e 58000005 setarg flash_read_satus 
+6c5f 20406bcd call spid_read_reg 
+6c60 c2806c59 bbit1 flash_status_wip ,wait_spid_flash_done 
+6c61 20600000 rtn 
+
+spid_load_flash:
+6c62 60590088 storet 2 ,core_spid_rxlen 
+6c63 58000004 setarg 4 
+6c64 67f10082 store 2 ,core_spid_txlen 
+6c65 7001bc03 jam 3 ,mem_spid_tbuf 
+6c66 580001bc setarg mem_spid_tbuf 
+6c67 67f10084 store 2 ,core_spid_txaddr 
+6c68 1a227e00 deposit rega 
+6c69 67f10086 store 2 ,core_spid_rxaddr 
+6c6a 6ff08080 fetch 1 ,core_spid_ctrl 
+6c6b 2a2c000f isolate0 15 ,rega 
+6c6c 7920fe06 setflag true ,6 ,pdata 
+6c6d 67f08080 store 1 ,core_spid_ctrl 
+6c6e 70800602 jam spid_start ,core_misc_ctrl 
+
+spi_load_flash_wait:
+6c6f 6ff08128 fetch 1 ,core_dma_status 
+6c70 c283ec6f bbit1 7 ,spi_load_flash_wait 
+6c71 d8e00003 arg spid_done ,queue 
+6c72 20406af0 call decrypt_code 
+6c73 20406bd6 call wait_spid_done 
+6c74 2feffe02 isolate1 spid_crcok ,pdata 
+6c75 20406ae9 call set_ucode_status 
+6c76 6fe081bd fetch 1 ,mem_addr_hi 
+6c77 1ff02400 lshift16 pdata ,regb 
+6c78 6fe101be fetch 2 ,mem_addr_mi 
+6c79 1ff0fe00 byteswap pdata ,pdata 
+6c7a 9a41fe00 ior regb ,pdata 
+6c7b 9840fe00 iadd temp ,pdata 
+6c7c 67e081bf store 1 ,mem_addr_lo 
+6c7d 1fecfe00 rshift8 pdata ,pdata 
+6c7e 1ff0fe00 byteswap pdata ,pdata 
+6c7f 67e101bd store 2 ,mem_addr_hi 
+6c80 20600000 rtn 
+
+spi_gpio_init:
+6c81 6fe0c438 fetch 1 ,mem_spi_cs_gpio 
+6c82 6848c43a fetcht 1 ,mem_spi_so_gpio 
+6c83 98467c00 isub temp ,null 
+6c84 2422ec86 nbranch spi_pin_set ,zero 
+6c85 20406c92 call spi_gpio_default_init 
+
+spi_pin_set:
+6c86 6fe0c438 fetch 1 ,mem_spi_cs_gpio 
+6c87 d8400020 arg gpcfg_spid_ncs ,temp 
+6c88 20406f1d call gpio_config_function_int 
+6c89 6fe0c43b fetch 1 ,mem_spi_sclk_gpio 
+6c8a d8400021 arg gpcfg_spid_sck ,temp 
+6c8b 20406f1d call gpio_config_function_int 
+6c8c 6fe0c439 fetch 1 ,mem_spi_si_gpio 
+6c8d d8400022 arg gpcfg_spid_mosi ,temp 
+6c8e 20406f1d call gpio_config_function_int 
+6c8f 6fe0c43a fetch 1 ,mem_spi_so_gpio 
+6c90 d840001f arg gpcfg_spid_miso ,temp 
+6c91 20206f1d branch gpio_config_function_int 
+
+spi_gpio_default_init:
+6c92 70443801 jam 1 ,mem_spi_cs_gpio 
+6c93 70443903 jam 3 ,mem_spi_si_gpio 
+6c94 70443a00 jam 0 ,mem_spi_so_gpio 
+6c95 70443b02 jam 2 ,mem_spi_sclk_gpio 
+6c96 70443c0b jam 11 ,mem_spi_wp_gpio 
+6c97 70443d0a jam 10 ,mem_spi_hold_gpio 
+6c98 20600000 rtn 
+
+soft_reset_chip:
+6c99 70801001 jam 1 ,core_reset 
+6c9a 20600000 rtn 
+
+iic_init_600khz:
+6c9b 70808b05 jam 5 ,core_iicd_scl_low 
+6c9c 70808c07 jam 7 ,core_iicd_scl_high 
+6c9d 70808d07 jam 7 ,core_iicd_start_setup 
+6c9e 70808e07 jam 7 ,core_iicd_start_hold 
+6c9f 70808f07 jam 7 ,core_iicd_stop_setup 
+6ca0 70809005 jam 5 ,core_iicd_data_setup 
+6ca1 70809100 jam 0 ,core_iicd_data_hold 
+6ca2 20600000 rtn 
+
+iic_init_360khz:
+6ca3 70808b0c jam 12 ,core_iicd_scl_low 
+6ca4 70808c0d jam 13 ,core_iicd_scl_high 
+6ca5 70808d0d jam 13 ,core_iicd_start_setup 
+6ca6 70808e0d jam 13 ,core_iicd_start_hold 
+6ca7 70808f0d jam 13 ,core_iicd_stop_setup 
+6ca8 7080900c jam 12 ,core_iicd_data_setup 
+6ca9 70809100 jam 0 ,core_iicd_data_hold 
+6caa 20600000 rtn 
+
+iicd_init_pin:
+6cab 20406cce call iicd_eeprom_write_enable 
+
+iicd_init_pin_scl_sda:
+6cac 6fe0c43f fetch 1 ,mem_eeprom_scl_gpio 
+6cad d840006c arg gpcfg_iic_scl | gpcfg_pullup ,temp 
+6cae 20406f1d call gpio_config_function_int 
+6caf 6fe0c440 fetch 1 ,mem_eeprom_sda_gpio 
+6cb0 d840006d arg gpcfg_iic_sda | gpcfg_pullup ,temp 
+6cb1 20206f1d branch gpio_config_function_int 
+
+iicd_read_init_pin:
+6cb2 20406cd5 call iicd_eeprom_write_disable 
+6cb3 20206cac branch iicd_init_pin_scl_sda 
+
+wait_iicd_done:
+6cb4 6ff08128 fetch 1 ,core_dma_status 
+6cb5 c302ecb4 bbit0 iicd_done ,wait_iicd_done 
+6cb6 20600000 rtn 
+
+set_eeprom_size_2k:
+6cb7 79200028 set1 mark_eeprom_size ,mark 
+6cb8 7043fd08 jam 0x08 ,mem_eeprom_block_size 
+6cb9 20600000 rtn 
+
+clear_eeprom_size_2k:
+6cba 793f8028 set0 mark_eeprom_size ,mark 
+6cbb 7043fd20 jam 0x20 ,mem_eeprom_block_size 
+6cbc 20600000 rtn 
+
+iicd_read_eep_data_size_2k:
+6cbd 6fe0c3f4 fetch 1 ,mem_eeprom_base 
+6cbe 9a40fe00 iadd regb ,pdata 
+6cbf 67e081be store 1 ,mem_addr_mi 
+6cc0 20206cc4 branch iicd_read_eep_size_2k 
+
+iicd_read_eep_size_2k_lcadcode:
+6cc1 6fe101be fetch 2 ,mem_addr_mi 
+6cc2 1ff0fe00 byteswap pdata ,pdata 
+6cc3 67e081be store 1 ,mem_addr_mi 
+
+iicd_read_eep_size_2k:
+6cc4 58000003 setarg 3 
+6cc5 67f10092 store 2 ,core_iicd_txlen 
+6cc6 7001bda0 jam 0xa0 ,mem_iicd_tbuf 
+6cc7 7001bfa1 jam 0xa1 ,mem_iicd_tbuf + 2 
+6cc8 20206ce3 branch iicd_read_eep_common 
+
+iicd_write_protect_eep_data:
+6cc9 60490656 storet 2 ,mem_temp 
+6cca 20406cce call iicd_eeprom_write_enable 
+6ccb 68490656 fetcht 2 ,mem_temp 
+6ccc 20406cfa call iicd_write_eep_data 
+6ccd 20206cd5 branch iicd_eeprom_write_disable 
+
+iicd_eeprom_write_enable:
+6cce 6fe0c43e fetch 1 ,mem_eeprom_wp_gpio 
+6ccf c17f8000 rtneq gpio_disable 
+6cd0 c3036cd3 bbit0 6 ,iicd_wp_gpio_output_low 
+6cd1 580249f0 setarg 150000 
+6cd2 20402340 call sleep 
+
+iicd_wp_gpio_output_low:
+6cd3 6848c43e fetcht 1 ,mem_eeprom_wp_gpio 
+6cd4 20206ef1 branch gpio_out_active 
+
+iicd_eeprom_write_disable:
+6cd5 6848c43e fetcht 1 ,mem_eeprom_wp_gpio 
+6cd6 20206eed branch gpio_out_inactive 
+
+iicd_read_eep_data:
+6cd7 44f8c01e bpatch patch1e_1 ,mem_patch1e 
+6cd8 c5146cbd bmark1 mark_eeprom_size ,iicd_read_eep_data_size_2k 
+6cd9 6fe143f4 fetch 2 ,mem_eeprom_base 
+6cda 9a40fe00 iadd regb ,pdata 
+6cdb 1ff0fe00 byteswap pdata ,pdata 
+6cdc 67e101be store 2 ,mem_addr_mi 
+
+iicd_read_eep:
+6cdd 44f9401e bpatch patch1e_2 ,mem_patch1e 
+6cde c5146cc1 bmark1 mark_eeprom_size ,iicd_read_eep_size_2k_lcadcode 
+6cdf 58000004 setarg 4 
+6ce0 67f10092 store 2 ,core_iicd_txlen 
+6ce1 7001bda0 jam 0xa0 ,mem_iicd_tbuf 
+6ce2 7001c0a1 jam 0xa1 ,mem_iicd_tbuf + 3 
+
+iicd_read_eep_common:
+6ce3 580001bd setarg mem_iicd_tbuf 
+6ce4 67f10094 store 2 ,core_iicd_txaddr 
+6ce5 60590098 storet 2 ,core_iicd_rxlen 
+6ce6 62310096 storer rega ,2 ,core_iicd_rxaddr 
+6ce7 58000002 setarg 2 
+6ce8 2a2c000f isolate0 15 ,rega 
+6ce9 7920fe00 setflag true ,0 ,pdata 
+6cea 67f0808a store 1 ,core_iicd_ctrl 
+6ceb 70800604 jam iicd_start ,core_misc_ctrl 
+6cec d8e00005 arg iicd_done ,queue 
+6ced 20406af0 call decrypt_code 
+6cee 20406cb4 call wait_iicd_done 
+6cef 2feffe04 isolate1 iicd_crcok ,pdata 
+6cf0 20406ae9 call set_ucode_status 
+6cf1 c5146cf5 bmark1 mark_eeprom_size ,iicd_read_eep_load_code_size_2k 
+
+iicd_inc_addr:
+6cf2 6fe101be fetch 2 ,mem_addr_mi 
+6cf3 1ff0fe00 byteswap pdata ,pdata 
+6cf4 20206cf6 branch iicd_set_addr 
+
+iicd_read_eep_load_code_size_2k:
+6cf5 6fe081be fetch 1 ,mem_addr_mi 
+
+iicd_set_addr:
+6cf6 9840fe00 iadd temp ,pdata 
+6cf7 1ff0fe00 byteswap pdata ,pdata 
+6cf8 67e101be store 2 ,mem_addr_mi 
+6cf9 20600000 rtn 
+
+iicd_write_eep_data:
+6cfa 6fe143f4 fetch 2 ,mem_eeprom_base 
+6cfb 9a40fe00 iadd regb ,pdata 
+6cfc 67e1064e store 2 ,mem_pdatatemp 
+6cfd 44f9c01e bpatch patch1e_3 ,mem_patch1e 
+6cfe 60490656 storet 2 ,mem_temp 
+6cff 6221066d storer rega ,2 ,mem_contr 
+
+iicd_write_eep_loop:
+6d00 20406d0f call iicd_eep_transparency 
+6d01 68490666 fetcht 2 ,mem_regb 
+6d02 6a21066d fetchr rega ,2 ,mem_contr 
+6d03 6fe1064e fetch 2 ,mem_pdatatemp 
+6d04 20406d30 call iicd_write_eep 
+6d05 6fe10666 fetch 2 ,mem_regb 
+6d06 6849066d fetcht 2 ,mem_contr 
+6d07 98408400 iadd temp ,temp 
+6d08 6049066d storet 2 ,mem_contr 
+6d09 6849064e fetcht 2 ,mem_pdatatemp 
+6d0a 98408400 iadd temp ,temp 
+6d0b 6049064e storet 2 ,mem_pdatatemp 
+6d0c 6fe10656 fetch 2 ,mem_temp 
+6d0d 243a6d00 nbranch iicd_write_eep_loop ,blank 
+6d0e 20600000 rtn 
+
+iicd_eep_transparency:
+6d0f 44fa401e bpatch patch1e_4 ,mem_patch1e 
+6d10 6fe0c3fd fetch 1 ,mem_eeprom_block_size 
+6d11 1fe0ffff increase -1 ,pdata 
+6d12 6849064e fetcht 2 ,mem_pdatatemp 
+6d13 9841fe00 ior temp ,pdata 
+6d14 1fe0fe01 increase 1 ,pdata 
+6d15 67e1866a store 3 ,mem_regc 
+6d16 6fe10656 fetch 2 ,mem_temp 
+6d17 9840fe00 iadd temp ,pdata 
+6d18 6849866a fetcht 3 ,mem_regc 
+6d19 98467e00 isub temp ,pdata 
+6d1a 24216d21 nbranch iicd_eep_deal_short_packet ,positive 
+6d1b 67e10656 store 2 ,mem_temp 
+6d1c 6fe1866a fetch 3 ,mem_regc 
+6d1d 6849064e fetcht 2 ,mem_pdatatemp 
+6d1e 98467e00 isub temp ,pdata 
+6d1f 67e10666 store 2 ,mem_regb 
+6d20 20600000 rtn 
+
+iicd_eep_deal_short_packet:
+6d21 6fe10656 fetch 2 ,mem_temp 
+6d22 67e10666 store 2 ,mem_regb 
+6d23 58000000 setarg 0 
+6d24 67e10656 store 2 ,mem_temp 
+6d25 20600000 rtn 
+
+iicd_write_eep_size_2k:
+6d26 1a427e00 copy regb ,pdata 
+6d27 18408402 increase 2 ,temp 
+6d28 60590092 storet 2 ,core_iicd_txlen 
+6d29 1a20a3fe increase -2 ,rega 
+6d2a e8418011 ifetcht 3 ,rega 
+6d2b 18422400 copy temp ,regb 
+6d2c d84000a0 arg 0xa0 ,temp 
+6d2d e0408011 istoret 1 ,rega 
+6d2e e7e08005 istore 1 ,contw 
+6d2f 20206d3d branch iicd_write_eep_common 
+
+iicd_write_eep:
+6d30 1fe22400 copy pdata ,regb 
+6d31 44fac01e bpatch patch1e_5 ,mem_patch1e 
+6d32 c5146d26 bmark1 mark_eeprom_size ,iicd_write_eep_size_2k 
+6d33 1a427e00 copy regb ,pdata 
+6d34 18408403 increase 3 ,temp 
+6d35 60590092 storet 2 ,core_iicd_txlen 
+6d36 1a20a3fd increase -3 ,rega 
+6d37 e8418011 ifetcht 3 ,rega 
+6d38 18422400 copy temp ,regb 
+6d39 d84000a0 arg 0xa0 ,temp 
+6d3a e0408011 istoret 1 ,rega 
+6d3b 1ff0fe00 byteswap pdata ,pdata 
+6d3c e7e10005 istore 2 ,contw 
+
+iicd_write_eep_common:
+6d3d 62310094 storer rega ,2 ,core_iicd_txaddr 
+6d3e 58000000 setarg 0 
+6d3f 67f10098 store 2 ,core_iicd_rxlen 
+6d40 70808a01 jam 1 ,core_iicd_ctrl 
+6d41 70800604 jam iicd_start ,core_misc_ctrl 
+6d42 20406cb4 call wait_iicd_done 
+6d43 e2418011 istorer regb ,3 ,rega 
+
+iic_check_eeprom_standby:
+6d44 44fb401e bpatch patch1e_6 ,mem_patch1e 
+6d45 7001c000 jam 0 ,mem_iicd_tbuf + 3 
+
+iic_check_eeprom_standby_wait:
+6d46 58000001 setarg 1 
+6d47 67f10092 store 2 ,core_iicd_txlen 
+6d48 7001bda0 jam 0xa0 ,mem_iicd_tbuf 
+6d49 580001bd setarg mem_iicd_tbuf 
+6d4a 67f10094 store 2 ,core_iicd_txaddr 
+6d4b 58000000 setarg 0 
+6d4c 67f10098 store 2 ,core_iicd_rxlen 
+6d4d 67f10096 store 2 ,core_iicd_rxaddr 
+6d4e 58000003 setarg 3 
+6d4f 67f0808a store 1 ,core_iicd_ctrl 
+6d50 70800604 jam iicd_start ,core_misc_ctrl 
+6d51 20406cb4 call wait_iicd_done 
+6d52 6ff08128 fetch 1 ,core_dma_status 
+6d53 c4030000 rtnbit0 iicd_ack 
+6d54 200005dc nop 1500 
+6d55 6fe081c0 fetch 1 ,mem_iicd_tbuf + 3 
+6d56 1fe0fe01 increase 1 ,pdata 
+6d57 67e081c0 store 1 ,mem_iicd_tbuf + 3 
+6d58 1fe67c28 sub pdata ,40 ,null 
+6d59 24610000 nrtn positive 
+6d5a 20206d46 branch iic_check_eeprom_standby_wait 
+
+uarta_init_dma_mem:
+6d5b 20407dbc call enable_user 
+6d5c 20206d5d branch uart_init_dma_mem 
+
+uart_init_dma_mem:
+6d5d 1ff10400 rshift16 pdata ,temp 
+6d5e 20546d81 call uarta_init_rx ,user 
+6d5f 1fef7e00 rshift32 pdata ,pdata 
+6d60 1ff10400 rshift16 pdata ,temp 
+6d61 20546d7d call uarta_init_tx ,user 
+6d62 6ff10050 fetch 2 ,core_clkoff 
+6d63 793ffe0f set0 clock_off_uart ,pdata 
+6d64 67f10050 store 2 ,core_clkoff 
+6d65 20600000 rtn 
+
+uarta_init_baud_rate:
+6d66 67f10052 store uart_baud_len ,core_uart_baud 
+6d67 20600000 rtn 
+
+uarta_calc_baud_rate_config:
+6d68 20406d6a call uart_calc_baud_rate_config 
+6d69 20206d66 branch uarta_init_baud_rate 
+
+uart_calc_baud_rate_config:
+6d6a 20406d6f call uart_calc_baud_rate_config_choice_uart_clock 
+6d6b 9846fc00 idiv temp 
+6d6c 20407d64 call wait_div_end 
+6d6d 1807fe00 quotient pdata 
+6d6e 20600000 rtn 
+
+uart_calc_baud_rate_config_choice_uart_clock:
+6d6f 6ff08043 fetch 1 ,core_uart_clksel 
+6d70 c3006d73 bbit0 uart_clock_select_bit ,uart_calc_baud_rate_config_choice_uart_clock_crystal 
+6d71 5adc6c00 setarg uart_clock_freq_48m 
+6d72 20600000 rtn 
+
+uart_calc_baud_rate_config_choice_uart_clock_crystal:
+6d73 596e3600 setarg uart_clock_freq_24m 
+6d74 20600000 rtn 
+
+uart_clock_select_main_freq_crystal:
+6d75 6ff08043 fetch 1 ,core_uart_clksel 
+6d76 1fe17efe and pdata ,uart_clock_select_crystal ,pdata 
+6d77 67f08043 store 1 ,core_uart_clksel 
+6d78 20600000 rtn 
+
+uart_clock_select_main_freq_dpll:
+6d79 6ff08043 fetch 1 ,core_uart_clksel 
+6d7a 1fe1fe01 or pdata ,uart_clock_select_dpll ,pdata 
+6d7b 67f08043 store 1 ,core_uart_clksel 
+6d7c 20600000 rtn 
+
+uarta_init_tx:
+6d7d 67f1005a store 2 ,core_uart_tsaddr 
+6d7e 67f1005e store 2 ,core_uart_twptr 
+6d7f 6059005c storet 2 ,core_uart_teaddr 
+6d80 20600000 rtn 
+
+uarta_init_rx:
+6d81 67f10054 store 2 ,core_uart_rsaddr 
+6d82 67f10058 store 2 ,core_uart_rrptr 
+6d83 60590056 storet 2 ,core_uart_readdr 
+6d84 20600000 rtn 
+
+uarta_prepare_tx:
+6d85 6951005a fetchr contus ,2 ,core_uart_tsaddr 
+6d86 6a11005c fetchr contue ,2 ,core_uart_teaddr 
+6d87 6871005e fetchr contu ,2 ,core_uart_twptr 
+6d88 20600000 rtn 
+
+uarta_prepare_rx:
+6d89 69510054 fetchr contus ,2 ,core_uart_rsaddr 
+6d8a 6a110056 fetchr contue ,2 ,core_uart_readdr 
+6d8b 68710058 fetchr contu ,2 ,core_uart_rrptr 
+6d8c 20600000 rtn 
+
+uarta_send:
+6d8d 6071005e storer contu ,2 ,core_uart_twptr 
+6d8e 20600000 rtn 
+
+uarta_rxdone:
+6d8f 60710058 storer contu ,2 ,core_uart_rrptr 
+6d90 20600000 rtn 
+
+uarta_clear_current_rx:
+6d91 20406d89 call uarta_prepare_rx 
+6d92 6ff10112 fetch 2 ,core_uart_rxitems 
+6d93 98608600 iadd contu ,contu 
+6d94 20206d8f branch uarta_rxdone 
+
+uarta_prepare_tx_register_push:
+6d95 20406d99 call uart_register_push 
+6d96 20206d85 branch uarta_prepare_tx 
+
+uarta_send_register_pop:
+6d97 20406d8d call uarta_send 
+6d98 20206d9d branch uart_register_pop 
+
+uart_register_push:
+6d99 60610675 storer contu ,2 ,mem_contu 
+6d9a 61410673 storer contus ,2 ,mem_contue 
+6d9b 62010671 storer contue ,2 ,mem_contus 
+6d9c 20600000 rtn 
+
+uart_register_pop:
+6d9d 68610675 fetchr contu ,2 ,mem_contu 
+6d9e 69410673 fetchr contus ,2 ,mem_contue 
+6d9f 6a010671 fetchr contue ,2 ,mem_contus 
+6da0 20600000 rtn 
+
+wait_uarttx:
+6da1 6ff1010e fetch 2 ,core_uart_txitems 
+6da2 243a6da1 nbranch wait_uarttx ,blank 
+6da3 20600000 rtn 
+
+uart_copy_tx_bytes_fast:
+6da4 1f227e00 deposit loopcnt 
+6da5 207a0000 rtn blank 
+
+uart_copy_tx_bytes_fast_loop:
+6da6 1f20f3f8 increase -8 ,loopcnt 
+6da7 20416db1 call uart_tx_8_bytes ,positive 
+6da8 20628000 rtn zero 
+6da9 20216da6 branch uart_copy_tx_bytes_fast_loop ,positive 
+6daa 1f20f208 increase 8 ,loopcnt 
+
+uart_copy_tx_bytes_fast_loop_four:
+6dab 1f20f3fc increase -4 ,loopcnt 
+6dac 20416db4 call uart_tx_4_bytes ,positive 
+6dad 20628000 rtn zero 
+6dae 20216dab branch uart_copy_tx_bytes_fast_loop_four ,positive 
+6daf 1f20f204 increase 4 ,loopcnt 
+6db0 20206db7 branch uart_copy_tx_bytes 
+
+uart_tx_8_bytes:
+6db1 efe40006 ifetch 8 ,contr 
+6db2 e7e40003 istore 8 ,contu 
+6db3 20600000 rtn 
+
+uart_tx_4_bytes:
+6db4 efe20006 ifetch 4 ,contr 
+6db5 e7e20003 istore 4 ,contu 
+6db6 20600000 rtn 
+
+uart_copy_tx_bytes:
+6db7 1f227e00 deposit loopcnt 
+6db8 207a0000 rtn blank 
+
+uart_copy_tx_bytes_loop:
+6db9 efe08006 ifetch 1 ,contr 
+6dba e7e08003 istore 1 ,contu 
+6dbb c2006db9 loop uart_copy_tx_bytes_loop 
+6dbc 20600000 rtn 
+
+uart_copy_rx_bytes_fast:
+6dbd 1f227e00 deposit loopcnt 
+6dbe 207a0000 rtn blank 
+
+uart_copy_rx_bytes_fast_loop:
+6dbf 1f20f3f8 increase -8 ,loopcnt 
+6dc0 20416dca call uart_rx_8_bytes ,positive 
+6dc1 20628000 rtn zero 
+6dc2 20216dbf branch uart_copy_rx_bytes_fast_loop ,positive 
+6dc3 1f20f208 increase 8 ,loopcnt 
+
+uart_copy_rx_bytes_fast_loop_four:
+6dc4 1f20f3fc increase -4 ,loopcnt 
+6dc5 20416dcd call uart_rx_4_bytes ,positive 
+6dc6 20628000 rtn zero 
+6dc7 20216dc4 branch uart_copy_rx_bytes_fast_loop_four ,positive 
+6dc8 1f20f204 increase 4 ,loopcnt 
+6dc9 20206dd0 branch uart_copy_rx_bytes 
+
+uart_rx_8_bytes:
+6dca efe40003 ifetch 8 ,contu 
+6dcb e7e40005 istore 8 ,contw 
+6dcc 20600000 rtn 
+
+uart_rx_4_bytes:
+6dcd efe20003 ifetch 4 ,contu 
+6dce e7e20005 istore 4 ,contw 
+6dcf 20600000 rtn 
+
+uart_copy_rx_bytes:
+6dd0 1f227e00 deposit loopcnt 
+6dd1 207a0000 rtn blank 
+
+uart_copy_rx_bytes_loop:
+6dd2 efe08003 ifetch 1 ,contu 
+6dd3 e7e08005 istore 1 ,contw 
+6dd4 c2006dd2 loop uart_copy_rx_bytes_loop 
+6dd5 20600000 rtn 
+
+app_store_nvram_event:
+6dd6 70064d3d jam bt_evt_store_nvram ,mem_fifo_temp 
+6dd7 20207819 branch ui_ipc_send_event 
+
+check_51cmd_update_device_record:
+6dd8 44fbc01e bpatch patch1e_7 ,mem_patch1e 
+6dd9 6fe0c403 fetch 1 ,mem_nv_data_number 
+6dda 207a0000 rtn blank 
+6ddb 20406e79 call check_nvram 
+6ddc 2042ee7f call init_device_list ,zero 
+6ddd 20407dc2 call disable_user2 
+6dde 20406e0b call nvram_find_addr_from_bd_list 
+
+write_device_record:
+6ddf 6fe0c403 fetch 1 ,mem_nv_data_number 
+6de0 1fe22600 icopy regc 
+6de1 68494401 fetcht 2 ,mem_nv_data_ptr 
+6de2 60490033 storet 2 ,mem_list_item_ptr 
+
+write_device_loop_find:
+6de3 1a627e00 copy regc ,pdata 
+6de4 203a6dd6 branch app_store_nvram_event ,blank 
+6de5 1a60a7ff increase -1 ,regc 
+6de6 18422200 copy temp ,rega 
+6de7 efe08011 ifetch 1 ,rega 
+6de8 68488031 fetcht 1 ,mem_select_list_item 
+6de9 98467c00 isub temp ,null 
+6dea 2042edf3 call set_index_finded_device ,zero 
+6deb 20216def branch write_device_loop_find0 ,positive 
+6dec efe08011 ifetch 1 ,rega 
+6ded 1fe0fe01 increase 1 ,pdata 
+6dee e7e08011 istore 1 ,rega 
+
+write_device_loop_find0:
+6def 68490033 fetcht 2 ,mem_list_item_ptr 
+6df0 18408422 increase nv_data_len ,temp 
+6df1 60490033 storet 2 ,mem_list_item_ptr 
+6df2 20206de3 branch write_device_loop_find 
+
+set_index_finded_device:
+6df3 58000000 setarg 0 
+6df4 e7e08011 istore 1 ,rega 
+6df5 6fe08032 fetch 1 ,mem_temp_reconn_record 
+6df6 e7e08005 istore 1 ,contw 
+6df7 c099ee00 bne rec_3_mode ,set_index_finded_device_ble_mode 
+
+set_index_find_device_master_addr:
+6df8 efe30006 ifetch 6 ,contr 
+6df9 e7e40005 istore 8 ,contw 
+6dfa 58000000 setarg 0 
+6dfb e7e40005 istore 8 ,contw 
+6dfc 1a420c00 copy regb ,contr 
+
+store_rec_data_common:
+6dfd 20407c91 call memcpy16 
+6dfe 18007c01 force 1 ,null 
+6dff 20600000 rtn 
+
+set_index_finded_device_ble_mode:
+6e00 c01b6e04 beq rec_4_mode_random_resolvable_private_address ,set_index_finded_device_irk 
+6e01 c01bee08 beq rec_4_mode_random_non_resolvable_private_address ,set_index_finded_device_ediv 
+6e02 da40428c arg mem_le_ltk ,regb 
+6e03 20206df8 branch set_index_find_device_master_addr 
+
+set_index_finded_device_irk:
+6e04 d8c0430f arg mem_le_irk ,contr 
+6e05 20407c91 call memcpy16 
+
+store_ble_rec_data_common:
+6e06 d8c0428c arg mem_le_ltk ,contr 
+6e07 20206dfd branch store_rec_data_common 
+
+set_index_finded_device_ediv:
+6e08 d8c04307 arg mem_le_rand ,contr 
+6e09 20407c91 call memcpy16 
+6e0a 20206e06 branch store_ble_rec_data_common 
+
+nvram_find_addr_from_bd_list:
+6e0b 44fc401f bpatch patch1f_0 ,mem_patch1f 
+6e0c 20407dbe call disable_user 
+6e0d 6fe0c403 fetch 1 ,mem_nv_data_number 
+6e0e 207a0000 rtn blank 
+6e0f 6fe14500 fetch 2 ,mem_ui_state_map 
+6e10 c4048000 rtnbit0 ui_state_ble_connected 
+
+find_addr_from_bd_list_ble_mode:
+6e11 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
+6e12 c0006e26 beq master_public_addr ,find_addr_from_bd_list_public_device_addr 
+6e13 6fe0817d fetch 1 ,mem_le_plap + 5 
+6e14 2fe180c0 compare 0xc0 ,pdata ,0xc0 
+6e15 2020ee19 branch find_addr_from_bd_list_static_addr ,true 
+6e16 2fe18040 compare 0x40 ,pdata ,0xc0 
+6e17 2020ee2b branch find_addr_from_bd_list_random_addr ,true 
+6e18 20206e20 branch find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy 
+
+find_addr_from_bd_list_static_addr:
+6e19 20366e1d branch find_addr_from_bd_list_static_addr_reconnect ,user2 
+6e1a 6fe0c2c4 fetch 1 ,mem_le_preq_init_key_distribution 
+6e1b c300ee26 bbit0 le_initator_irk_bit ,find_addr_from_bd_list_public_device_addr 
+6e1c 20206e20 branch find_addr_from_bd_list_static_addr_sc_or_legacy 
+
+find_addr_from_bd_list_static_addr_reconnect:
+6e1d 20406e26 call find_addr_from_bd_list_public_device_addr 
+6e1e 20740000 rtn user 
+6e1f 20206e20 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:
+6e20 6fe0c300 fetch 1 ,mem_le_pairing_mode 
+6e21 c283ee23 bbit1 le_pairing_mode_secure_connect_bit ,find_addr_from_bd_list_random_non_resolvable_private_address_sc 
+6e22 20206e29 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:
+6e23 6fe30178 fetch 6 ,mem_le_plap 
+6e24 67e44307 store 8 ,mem_le_rand 
+6e25 20206e29 branch find_addr_from_bd_list_random_non_resolvable_private_address 
+
+find_addr_from_bd_list_public_device_addr:
+6e26 70003235 jam rec_4_mode_static_address ,mem_temp_reconn_record 
+6e27 6fe30178 fetch 6 ,mem_le_plap 
+6e28 20206e2d branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_random_non_resolvable_private_address:
+6e29 70003237 jam rec_4_mode_random_non_resolvable_private_address ,mem_temp_reconn_record 
+6e2a 20206e2d branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_random_addr:
+6e2b 70003236 jam rec_4_mode_random_resolvable_private_address ,mem_temp_reconn_record 
+6e2c 20206e2d branch find_addr_from_bd_list_common 
+
+find_addr_from_bd_list_common:
+6e2d 44fcc01f bpatch patch1f_1 ,mem_patch1f 
+6e2e 6fe14401 fetch 2 ,mem_nv_data_ptr 
+6e2f e840803f ifetcht 1 ,pdata 
+6e30 1fe0fe01 pincrease 1 
+6e31 67e10033 store 2 ,mem_list_item_ptr 
+6e32 60488031 storet 1 ,mem_select_list_item 
+6e33 6fe0c403 fetch 1 ,mem_nv_data_number 
+6e34 1fe22600 icopy regc 
+
+nvram_find_addr_from_list:
+6e35 6fe10033 fetch 2 ,mem_list_item_ptr 
+6e36 1fe22200 copy pdata ,rega 
+6e37 20406e45 call nvram_find_addr_from_list_compare 
+6e38 20740000 rtn user 
+6e39 68490033 fetcht 2 ,mem_list_item_ptr 
+6e3a 18408422 increase nv_data_len ,temp 
+6e3b 60490033 storet 2 ,mem_list_item_ptr 
+6e3c 184085ff increase -1 ,temp 
+6e3d efe08002 ifetch 1 ,temp 
+6e3e 67e08031 store 1 ,mem_select_list_item 
+6e3f 1a60a7ff increase -1 ,regc 
+6e40 2422ee35 nbranch nvram_find_addr_from_list ,zero 
+6e41 6fe0c403 fetch 1 ,mem_nv_data_number 
+6e42 1fe0ffff pincrease decreased_one 
+6e43 67e08031 store 1 ,mem_select_list_item 
+6e44 20600000 rtn 
+
+nvram_find_addr_from_list_compare:
+6e45 6fe08032 fetch 1 ,mem_temp_reconn_record 
+6e46 c099ee4c bne rec_3_mode ,find_addr_from_list_compare_ble_mode 
+
+find_master_addr_from_list_compare:
+6e47 da400032 arg mem_temp_reconn_record ,regb 
+6e48 df200007 arg 7 ,loopcnt 
+6e49 20407d66 call string_compare 
+6e4a 2022fdbc branch enable_user ,zero 
+6e4b 20600000 rtn 
+
+find_addr_from_list_compare_ble_mode:
+6e4c c01b6e4f beq rec_4_mode_random_resolvable_private_address ,find_irk_form_list_compare 
+6e4d c01bee6a beq rec_4_mode_random_non_resolvable_private_address ,find_ediv_form_list_compare 
+6e4e 20206e47 branch find_master_addr_from_list_compare 
+
+find_irk_form_list_compare:
+6e4f e8408011 ifetcht 1 ,rega 
+6e50 98467c00 isub temp ,null 
+6e51 24628000 nrtn zero 
+6e52 d8a0067f arg mem_le_prand ,contw 
+6e53 df200010 arg 16 ,loopcnt 
+6e54 20407ca3 call clear_mem 
+6e55 6fe1817b fetch 3 ,mem_le_plap + 3 
+6e56 67e1867f store 3 ,mem_le_prand 
+6e57 20406e61 call genernate_master_macaddress 
+6e58 6fe1069c fetch 2 ,mem_le_aes_128 + 13 
+6e59 1ff0fe00 byteswap pdata ,pdata 
+6e5a 1fed0400 lshift8 pdata ,temp 
+6e5b efe08006 ifetch 1 ,contr 
+6e5c 9840fe00 iadd temp ,pdata 
+6e5d 68498178 fetcht 3 ,mem_le_plap 
+6e5e 98467c00 isub temp ,null 
+6e5f 2022fdbc branch enable_user ,zero 
+6e60 20600000 rtn 
+
+genernate_master_macaddress:
+6e61 d8c0067f arg mem_le_prand ,contr 
+6e62 2040734f call load_data128 
+6e63 efe08011 ifetch 1 ,rega 
+6e64 20407350 call load_regext 
+6e65 18006c38 force 0x38 ,aes_ctrl 
+6e66 18006c00 force 0x0 ,aes_ctrl 
+6e67 204072bd call wait_aes 
+6e68 d8a0068f arg mem_le_aes_128 ,contw 
+6e69 20207363 branch store_aes_result 
+
+find_ediv_form_list_compare:
+6e6a e8408011 ifetcht 1 ,rega 
+6e6b 98467c00 isub temp ,null 
+6e6c 24628000 nrtn zero 
+6e6d 18c22200 copy contr ,rega 
+6e6e 18c0a608 add contr ,8 ,regc 
+6e6f da404307 arg mem_le_rand ,regb 
+6e70 df200008 arg 8 ,loopcnt 
+6e71 20407d66 call string_compare 
+6e72 2022fdbc branch enable_user ,zero 
+6e73 1a622200 copy regc ,rega 
+6e74 da40430f arg mem_le_irk ,regb 
+6e75 df200008 arg 8 ,loopcnt 
+6e76 20407d66 call string_compare 
+6e77 2022fdbc branch enable_user ,zero 
+6e78 20600000 rtn 
+
+check_nvram:
+6e79 6fe14401 fetch 2 ,mem_nv_data_ptr 
+6e7a e840803f ifetcht 1 ,pdata 
+6e7b 1fe0fe22 pincrease nv_data_len 
+6e7c efe0803f ifetch 1 ,pdata 
+6e7d 98467c00 isub temp ,null 
+6e7e 20600000 rtn 
+
+init_device_list:
+6e7f 6fe0c403 fetch 1 ,mem_nv_data_number 
+6e80 1fe27200 icopy loopcnt 
+6e81 68494401 fetcht 2 ,mem_nv_data_ptr 
+6e82 58000000 setarg 0 
+
+init_device_list_loop:
+6e83 e7e08002 istore 1 ,temp 
+6e84 18408422 increase nv_data_len ,temp 
+6e85 1fe0fe01 pincrease 1 
+6e86 c2006e83 loop init_device_list_loop 
+6e87 20600000 rtn 
+
+load_device_list_mode_4:
+6e88 20407dc0 call enable_user2 
+6e89 20406e0b call nvram_find_addr_from_bd_list 
+6e8a 24346e93 nbranch clear_ltk_exists ,user 
+6e8b 6fe10033 fetch 2 ,mem_list_item_ptr 
+6e8c 1fe08c01 add pdata ,1 ,contr 
+6e8d d8a0430f arg mem_le_irk ,contw 
+6e8e 20407c91 call memcpy16 
+6e8f d8a0428c arg mem_le_ltk ,contw 
+6e90 20407c91 call memcpy16 
+6e91 70429c01 jam 1 ,mem_ltk_exists 
+6e92 20600000 rtn 
+
+clear_ltk_exists:
+6e93 70429c00 jam 0 ,mem_ltk_exists 
+6e94 20600000 rtn 
+
+eeprom_store_le_reconn_info:
+6e95 70003234 jam rec_4_mode ,mem_record_bt_mode 
+6e96 20206e97 branch eeprom_store_reconn_info 
+
+eeprom_store_reconn_info:
+6e97 6fe0c3cf fetch 1 ,mem_device_option 
+6e98 c0056dd8 beq dvc_op_module ,check_51cmd_update_device_record 
+6e99 c0045569 beq dvc_op_mouse ,mouse_store_remote_bdaddr 
+6e9a c007c8f2 beq dvc_op_keyboard ,keyboard_store_remote_bdaddr 
+6e9b 20600000 rtn 
+
+get_gpio_wakeup_index:
+6e9c 18417e1f and temp ,0x1f ,pdata 
+6e9d 1fe37e00 rshift pdata ,pdata 
+6e9e d8a00016 arg mem_gpio_wakeup_cfg ,contw 
+6e9f 98a08a00 iadd contw ,contw 
+6ea0 de0000f0 arg 0xf0 ,alarm 
+6ea1 284c0000 isolate0 0 ,temp 
+6ea2 20608000 rtn true 
+6ea3 de00000f arg 0xf ,alarm 
+6ea4 20600000 rtn 
+
+gpio_set_wake_by_current_state:
+6ea5 44fd401f bpatch patch1f_2 ,mem_patch1f 
+6ea6 18467cff sub temp ,gpio_disable ,null 
+6ea7 20628000 rtn zero 
+6ea8 79200407 set1 gpio_active_bit ,temp 
+6ea9 20406ee0 call gpio_get_bit 
+6eaa 2420eebc nbranch gpio_set_qdec_mode ,true 
+6eab 7d208407 nsetflag true ,gpio_active_bit ,temp 
+
+gpio_set_wake:
+6eac 44fdc01f bpatch patch1f_3 ,mem_patch1f 
+6ead 18467cff sub temp ,ui_button_gpio_disable ,null 
+6eae 20628000 rtn zero 
+6eaf d9000004 arg 4 ,debug 
+6eb0 284ffe07 isolate1 gpio_active_bit ,temp 
+6eb1 2020eeb3 branch gpio_set_wake_high ,true 
+6eb2 d9000002 arg 2 ,debug 
+
+gpio_set_wake_high:
+6eb3 20406e9c call get_gpio_wakeup_index 
+6eb4 284c0000 isolate0 0 ,temp 
+6eb5 2020eeb7 branch gpio_set_wake_low4bit ,true 
+6eb6 19121000 lshift4 debug ,debug 
+
+gpio_set_wake_low4bit:
+6eb7 efe08005 ifetch 1 ,contw 
+6eb8 9e017e00 iand alarm ,pdata 
+6eb9 9901fe00 ior debug ,pdata 
+6eba e7e08005 istore 1 ,contw 
+6ebb 20600000 rtn 
+
+gpio_set_qdec_mode:
+6ebc 70488c01 jam 1 ,mem_qdec_set_flag 
+6ebd 20406f0b call gpio_set_high_impedance 
+6ebe d9000006 arg 6 ,debug 
+6ebf 20206eb3 branch gpio_set_wake_high 
+
+gpio_set_low_pullup:
+6ec0 44fe401f bpatch patch1f_4 ,mem_patch1f 
+6ec1 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ec2 20628000 rtn zero 
+6ec3 d9000001 arg 1 ,debug 
+6ec4 20406e9c call get_gpio_wakeup_index 
+6ec5 284c0000 isolate0 0 ,temp 
+6ec6 2020eec8 branch gpio_set_low_pullup_low4bit ,true 
+6ec7 19121000 lshift4 debug ,debug 
+
+gpio_set_low_pullup_low4bit:
+6ec8 efe08005 ifetch 1 ,contw 
+6ec9 9e017e00 iand alarm ,pdata 
+6eca 9901fe00 ior debug ,pdata 
+6ecb e7e08005 istore 1 ,contw 
+6ecc 20600000 rtn 
+
+gpio_clr_wake:
+6ecd 44fec01f bpatch patch1f_5 ,mem_patch1f 
+6ece 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ecf 20628000 rtn zero 
+6ed0 20406e9c call get_gpio_wakeup_index 
+6ed1 efe08005 ifetch 1 ,contw 
+6ed2 9e017e00 iand alarm ,pdata 
+6ed3 e7e08005 istore 1 ,contw 
+6ed4 20600000 rtn 
+
+gpio_config_input_nowake:
+6ed5 20406ecd call gpio_clr_wake 
+6ed6 20206eda branch gpio_config_input_without_wake 
+
+gpio_config_input:
+6ed7 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ed8 20628000 rtn zero 
+6ed9 2455eeac ncall gpio_set_wake ,wake 
+
+gpio_config_input_without_wake:
+6eda 20406f10 call gpio_addr 
+6edb 58000000 setarg 0 
+6edc 284ffe07 isolate1 gpio_active_bit ,temp 
+6edd 7d20fe06 nsetflag true ,6 ,pdata 
+6ede 7920fe07 setflag true ,7 ,pdata 
+6edf 20206f09 branch gpio_write 
+
+gpio_get_bit:
+6ee0 44ff401f bpatch patch1f_6 ,mem_patch1f 
+6ee1 d8a0811c arg core_gpio_in ,contw 
+6ee2 18410e07 and temp ,0x07 ,queue 
+6ee3 18497e00 rshift3 temp ,pdata 
+6ee4 1fe17e03 and_into 3 ,pdata 
+6ee5 98a08a00 iadd contw ,contw 
+6ee6 efe08005 ifetch 1 ,contw 
+6ee7 284ffe07 isolate1 gpio_active_bit ,temp 
+6ee8 2020eeeb branch gpio_get_bit_reverse ,true 
+6ee9 afec0000 qisolate0 pdata 
+6eea 20600000 rtn 
+
+gpio_get_bit_reverse:
+6eeb afefffff qisolate1 pdata 
+6eec 20600000 rtn 
+
+gpio_out_inactive:
+6eed 18467cff sub temp ,ui_button_gpio_disable ,null 
+6eee 20628000 rtn zero 
+6eef 2fcffe07 isolate1 gpio_active_bit ,null 
+6ef0 20206ef4 branch gpio_out_flag 
+
+gpio_config_output:
+
+gpio_out_active:
+6ef1 18467cff sub temp ,ui_button_gpio_disable ,null 
+6ef2 20628000 rtn zero 
+6ef3 2fcc0007 isolate0 gpio_active_bit ,null 
+
+gpio_out_flag:
+6ef4 58000000 setarg 0 
+6ef5 7d20fe07 nsetflag true ,gpio_active_bit ,pdata 
+6ef6 98428400 ixor temp ,temp 
+
+gpio_out:
+6ef7 20406f10 call gpio_addr 
+6ef8 5800003f setarg gpcfg_output_high 
+6ef9 284ffe07 isolate1 gpio_active_bit ,temp 
+6efa 7920fe00 setflag true ,0 ,pdata 
+6efb 20206f09 branch gpio_write 
+
+gpio_check_active:
+6efc 18467cff sub temp ,ui_button_gpio_disable ,null 
+6efd 2022fdc6 branch disable_true ,zero 
+6efe 20406f10 call gpio_addr 
+6eff efe08005 ifetch 1 ,contw 
+6f00 c2806f03 bbit1 0 ,gpio_check_active_high 
+6f01 284c0007 isolate0 gpio_active_bit ,temp 
+6f02 20600000 rtn 
+
+gpio_check_active_high:
+6f03 284ffe07 isolate1 gpio_active_bit ,temp 
+6f04 20600000 rtn 
+
+gpio_set_analog:
+6f05 18467cff sub temp ,ui_button_gpio_disable ,null 
+6f06 20628000 rtn zero 
+6f07 20406f10 call gpio_addr 
+6f08 580000c0 setarg gpcfg_no_ie 
+
+gpio_write:
+6f09 e7e08005 istore 1 ,contw 
+6f0a 20600000 rtn 
+
+gpio_set_high_impedance:
+6f0b 18467cff sub temp ,ui_button_gpio_disable ,null 
+6f0c 20628000 rtn zero 
+6f0d 20406f10 call gpio_addr 
+6f0e 58000000 setarg gpcfg_high_impedance 
+6f0f 20206f09 branch gpio_write 
+
+gpio_addr:
+6f10 18417e3f and temp ,0x3f ,pdata 
+6f11 1fe67c0f sub pdata ,gpio_number + -1 ,null 
+6f12 24216f16 nbranch gpio_addr_ext ,positive 
+6f13 d8a08070 arg core_gpio_conf ,contw 
+
+gpio_addr_next:
+6f14 98a08a00 iadd contw ,contw 
+6f15 20600000 rtn 
+
+gpio_addr_ext:
+6f16 d8a080d4 arg core_gpio_conf_hi ,contw 
+6f17 1fe0fff0 increase -16 ,pdata 
+6f18 20206f14 branch gpio_addr_next 
+
+gpio_config_param:
+6f19 1fe104ff and pdata ,0xff ,temp 
+6f1a 1fecfe00 rshift8 pdata ,pdata 
+6f1b 20206f1d branch gpio_config_function_int 
+
+gpio_config_function:
+6f1c c4038000 rtnbit0 gpio_active_bit 
+
+gpio_config_function_int:
+6f1d c17f8000 rtneq gpio_disable 
+6f1e 1fe17e3f and_into 0x3f ,pdata 
+6f1f 1fe67c0f sub pdata ,gpio_number + -1 ,null 
+6f20 24216f25 nbranch gpio_config_function_int_ext ,positive 
+6f21 d8a08070 arg core_gpio_conf ,contw 
+
+gpio_config_function_int_next:
+6f22 98a08a00 iadd contw ,contw 
+6f23 e0408005 istoret 1 ,contw 
+6f24 20600000 rtn 
+
+gpio_config_function_int_ext:
+6f25 d8a080d4 arg core_gpio_conf_hi ,contw 
+6f26 1fe0fff0 increase -16 ,pdata 
+6f27 20206f22 branch gpio_config_function_int_next 
+
+gpio_get_config:
+6f28 1841043f and_into 0x3f ,temp 
+6f29 18467c0f sub temp ,gpio_number + -1 ,null 
+6f2a 24216f2f nbranch gpio_get_config_ext ,positive 
+6f2b 58008070 setarg core_gpio_conf 
+
+gpio_get_config_next:
+6f2c 98408c00 iadd temp ,contr 
+6f2d efe08006 ifetch 1 ,contr 
+6f2e 20600000 rtn 
+
+gpio_get_config_ext:
+6f2f 580080d4 setarg core_gpio_conf_hi 
+6f30 184085f0 increase -16 ,temp 
+6f31 20206f2c branch gpio_get_config_next 
+
+gpio_set_before_lpm:
+6f32 df200010 arg gpio_number ,loopcnt 
+6f33 d8c08070 arg core_gpio_conf ,contr 
+
+setgpio_loop:
+6f34 18c20a00 copy contr ,contw 
+6f35 efe08006 ifetch 1 ,contr 
+6f36 c00fef45 beq gpcfg_spid_miso ,setgpio_pullup 
+6f37 c0106f45 beq gpcfg_spid_ncs ,setgpio_pullup 
+6f38 c010ef45 beq gpcfg_spid_sck ,setgpio_pullup 
+6f39 c0116f45 beq gpcfg_spid_mosi ,setgpio_pullup 
+6f3a c011ef45 beq gpcfg_spid_sdio ,setgpio_pullup 
+6f3b c0166f45 beq gpcfg_iic_scl ,setgpio_pullup 
+6f3c c016ef45 beq gpcfg_iic_sda ,setgpio_pullup 
+6f3d c0006f45 beq gpcfg_input ,setgpio_pullup 
+
+setgpio_loop_end:
+6f3e c2006f34 loop setgpio_loop 
+6f3f dfe080dc arg core_gpio_conf_hi + gpio_number_ext ,pdata 
+6f40 98c67c00 isub contr ,null 
+6f41 20628000 rtn zero 
+
+gpio_set_before_lpm_ext:
+6f42 df200008 arg gpio_number_ext ,loopcnt 
+6f43 d8c080d4 arg core_gpio_conf_hi ,contr 
+6f44 20206f34 branch setgpio_loop 
+
+setgpio_pullup:
+6f45 58000040 setarg gpcfg_pullup 
+6f46 e7e08005 istore 1 ,contw 
+6f47 20206f3e branch setgpio_loop_end 
+
+setgpio_pulldown:
+6f48 58000080 setarg gpcfg_pulldown 
+6f49 e7e08005 istore 1 ,contw 
+6f4a 20206f3e branch setgpio_loop_end 
+
+lpm_puchk_set_check:
+6f4b 6fe0c88c fetch 1 ,mem_qdec_set_flag 
+6f4c 203a6f4e branch lpm_config_puchk_disable ,blank 
+6f4d 20206f51 branch lpm_config_puchk_enable 
+
+lpm_config_puchk_disable:
+6f4e 58000010 setarg 0x10 
+
+lpm_config_puchk_set:
+6f4f 67f08141 store 1 ,core_puwakeup 
+6f50 202023c4 branch lpm_write_wait 
+
+lpm_config_puchk_enable:
+6f51 58000080 setarg 0x80 
+6f52 20206f4f branch lpm_config_puchk_set 
+
+sadc_calibration:
+6f53 44ffc01f bpatch patch1f_7 ,mem_patch1f 
+6f54 20758000 rtn wake 
+6f55 708a0777 jam 0x77 ,core_gpadc_ctrl 
+6f56 708a08c9 jam 0xc9 ,core_gpadc_cfg0 
+6f57 708a0b01 jam 0x01 ,core_gpadc_cfg3 
+6f58 6fe0c41f fetch 1 ,mem_adc_clkdiv 
+6f59 67f080cd store 1 ,core_sadc_clkdiv 
+6f5a 7080cc03 jam 0x03 ,core_sadc_ctrl 
+6f5b 2040700e call sar_adc_read_wait 
+6f5c 68590164 fetcht 2 ,core_sadc_data 
+6f5d 7080cc00 jam 0x00 ,core_sadc_ctrl 
+6f5e 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+
+sadc_cal_read:
+6f5f df200008 arg 8 ,loopcnt 
+6f60 da204428 arg mem_adc_cal_c0 ,rega 
+6f61 708a0a05 jam 0x05 ,core_gpadc_cfg2 
+
+sadc_cal_read_loop:
+6f62 6ff08a0c fetch 1 ,core_gpadc_status 
+6f63 e7e08011 istore 1 ,rega 
+6f64 1a20a201 increase 1 ,rega 
+6f65 6ff08a0a fetch 1 ,core_gpadc_cfg2 
+6f66 1fe0fe20 increase 0x20 ,pdata 
+6f67 67f08a0a store 1 ,core_gpadc_cfg2 
+6f68 c2006f62 loop sadc_cal_read_loop 
+6f69 708a0700 jam 0x00 ,core_gpadc_ctrl 
+6f6a 20600000 rtn 
+
+sadc_cal_write:
+6f6b 6ff080cc fetch 1 ,core_sadc_ctrl 
+6f6c 79207e01 set1 1 ,pdata 
+6f6d 67f080cc store 1 ,core_sadc_ctrl 
+6f6e df200008 arg 8 ,loopcnt 
+6f6f da204428 arg mem_adc_cal_c0 ,rega 
+6f70 708a0a15 jam 0x15 ,core_gpadc_cfg2 
+
+sadc_cal_write_loop:
+6f71 efe08011 ifetch 1 ,rega 
+6f72 67f08a09 store 1 ,core_gpadc_cfg1 
+6f73 1a20a201 increase 1 ,rega 
+6f74 6ff08a0a fetch 1 ,core_gpadc_cfg2 
+6f75 1fe0fe20 increase 0x20 ,pdata 
+6f76 67f08a0a store 1 ,core_gpadc_cfg2 
+6f77 c2006f71 loop sadc_cal_write_loop 
+6f78 6ff080cc fetch 1 ,core_sadc_ctrl 
+6f79 793ffe01 set0 1 ,pdata 
+6f7a 67f080cc store 1 ,core_sadc_ctrl 
+6f7b 20600000 rtn 
+
+adc_init_data:
+6f7c 47004020 bpatchx patch20_0 ,mem_patch20 
+6f7d 6fe401db fetch 8 ,mem_otp_adc 
+6f7e 207a0000 rtn blank 
+6f7f 67e44406 store 8 ,mem_reference_inter1p8v_2v_adc_io_data 
+6f80 20406b28 call enable_otp_read 
+6f81 20406a67 call loadcode_check_otp_lock 
+6f82 dfe00fc0 arg otp_offset_adc_param_l_c0 ,pdata 
+6f83 9a40a400 iadd regb ,regb 
+6f84 df20000a arg 10 ,loopcnt 
+6f85 da2001db arg mem_otp_temp ,rega 
+6f86 20406b62 call otp_read_data 
+6f87 20406b25 call disable_otp 
+6f88 6fe401db fetch 8 ,mem_otp_temp 
+6f89 207a0000 rtn blank 
+6f8a 67e4440e store 8 ,mem_adc_reference3v_gpio1v_ft_data 
+6f8b efe10006 ifetch 2 ,contr 
+6f8c e7e10005 istore 2 ,contw 
+6f8d 20600000 rtn 
+
+vdd_calculate_by_mode:
+6f8e 4700c020 bpatchx patch20_1 ,mem_patch20 
+6f8f 6fe0c41a fetch 1 ,mem_adc_reference_mode 
+6f90 c000ef93 beq sadc_reference_inter3v ,vdd_reference_inter3v_calculate 
+6f91 c0016fd1 beq sadc_reference_inter1p8v_div2 ,vdd_reference_inter1p8v_calculate 
+6f92 20206f93 branch vdd_reference_inter3v_calculate 
+
+vdd_reference_inter3v_calculate:
+6f93 6fe0c41d fetch 1 ,mem_adc_config_flag 
+6f94 c000ef97 beq adc_config_hvin ,vdd_reference_inter3v_calculate_by_mode_vdcdc 
+6f95 c0016f9e beq adc_config_gpio ,vdd_reference_inter3v_calculate_by_mode_gpio 
+6f96 20600000 rtn 
+
+vdd_reference_inter3v_calculate_by_mode_vdcdc:
+6f97 580003e8 setarg 1000 
+6f98 67e1441b store 2 ,mem_reference_voltage 
+6f99 68494412 fetcht 2 ,mem_adc_reference3v_vdcdc3p6v_ft_data 
+6f9a 6fe14414 fetch 2 ,mem_adc_reference3v_vdcdc4p6v_ft_data 
+6f9b da600e10 arg 3600 ,regc 
+6f9c 2040702a call vdd_calculate 
+6f9d 20206fa4 branch mul1v_div1v_to_cal 
+
+vdd_reference_inter3v_calculate_by_mode_gpio:
+6f9e 580003e8 setarg 1000 
+6f9f 67e1441b store 2 ,mem_reference_voltage 
+6fa0 6849440e fetcht 2 ,mem_adc_reference3v_gpio1v_ft_data 
+6fa1 6fe14410 fetch 2 ,mem_adc_reference3v_gpio2v_ft_data 
+6fa2 da6003e8 arg 1000 ,regc 
+6fa3 2040702a call vdd_calculate 
+
+mul1v_div1v_to_cal:
+6fa4 68494416 fetcht 2 ,mem_adc_reference3v_inter1v_ft_data 
+6fa5 984ffe00 imul32 temp ,pdata 
+6fa6 68494418 fetcht 2 ,mem_adc_reference3v_inter1v_now_data 
+6fa7 9846fc00 idiv temp 
+6fa8 20207d61 branch get_div_result 
+
+enable_adc_init_config:
+6fa9 20406f6b call sadc_cal_write 
+6faa 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+6fab 793ffe07 set0 7 ,pdata 
+6fac 67f08a09 store 1 ,core_gpadc_cfg1 
+6fad 708a0777 jam 0x77 ,core_gpadc_ctrl 
+6fae 708a08c1 jam 0xc1 ,core_gpadc_cfg0 
+6faf 708a0d61 jam 0x61 ,core_vtest_ctrl0 
+6fb0 708a0b00 jam 0x00 ,core_gpadc_cfg3 
+6fb1 20600000 rtn 
+
+enable_adc:
+6fb2 47014020 bpatchx patch20_2 ,mem_patch20 
+6fb3 6fe0c41a fetch 1 ,mem_adc_reference_mode 
+6fb4 c000efb7 beq sadc_reference_inter3v ,enable_adc_reference_source_inter3v 
+6fb5 c0016fee beq sadc_reference_inter1p8v_div2 ,enable_adc_reference_source_inter1p8v 
+6fb6 20206fb7 branch enable_adc_reference_source_inter3v 
+
+enable_adc_reference_source_inter3v:
+6fb7 20406fa9 call enable_adc_init_config 
+6fb8 20407007 call sadc_channel 
+6fb9 6fe0c41f fetch 1 ,mem_adc_clkdiv 
+6fba 67f080cd store 1 ,core_sadc_clkdiv 
+6fbb 20407011 call sadc_read 
+6fbc 708a0d60 jam 0x60 ,core_vtest_ctrl0 
+6fbd 7080cd00 jam 0x00 ,core_sadc_clkdiv 
+
+read_adc_inter1v:
+6fbe 20406fa9 call enable_adc_init_config 
+6fbf 6fe0c41f fetch 1 ,mem_adc_clkdiv 
+6fc0 67f080cd store 1 ,core_sadc_clkdiv 
+6fc1 708a0b50 jam 0x50 ,core_gpadc_cfg3 
+6fc2 708a0ec0 jam 0xc0 ,core_vtest_ctrl1 
+6fc3 df00000b arg 0xb ,regext_index 
+6fc4 6de14420 fetchr regext ,2 ,mem_adc_current_value 
+6fc5 7080cc03 jam 0x03 ,core_sadc_ctrl 
+6fc6 2040700e call sar_adc_read_wait 
+6fc7 68590164 fetcht 2 ,core_sadc_data 
+6fc8 60494418 storet 2 ,mem_adc_reference3v_inter1v_now_data 
+6fc9 7080cc06 jam 0x06 ,core_sadc_ctrl 
+6fca 20407017 call sadc_read_wait2 
+6fcb df00000b arg 0xb ,regext_index 
+6fcc 65e14420 storer regext ,2 ,mem_adc_current_value 
+6fcd 708a0d60 jam 0x60 ,core_vtest_ctrl0 
+6fce 7080cd00 jam 0x00 ,core_sadc_clkdiv 
+6fcf 7080cc00 jam 0x00 ,core_sadc_ctrl 
+6fd0 20600000 rtn 
+
+vdd_reference_inter1p8v_calculate:
+6fd1 6fe0c41d fetch 1 ,mem_adc_config_flag 
+6fd2 c000efd5 beq adc_config_hvin ,vdd_reference_inter1p8v_calculate_by_mode_vdcdc 
+6fd3 c0016fdb beq adc_config_gpio ,vdd_reference_inter1p8v_div2_calculate_by_mode_gpio 
+6fd4 20600000 rtn 
+
+vdd_reference_inter1p8v_calculate_by_mode_vdcdc:
+6fd5 580007d0 setarg 2000 
+6fd6 67e1441b store 2 ,mem_reference_voltage 
+6fd7 68494408 fetcht 2 ,mem_reference_inter1p8v_2p6v_adc_vdcdc_data 
+6fd8 6fe1440c fetch 2 ,mem_reference_inter1p8v_4p6v_adc_vdcdc_data 
+6fd9 da600a28 arg 2600 ,regc 
+6fda 2020702a branch vdd_calculate 
+
+vdd_reference_inter1p8v_div2_calculate_by_mode_gpio:
+6fdb 580003e8 setarg 1000 
+6fdc 67e1441b store 2 ,mem_reference_voltage 
+6fdd 68494406 fetcht 2 ,mem_reference_inter1p8v_2v_adc_io_data 
+6fde 6fe1440a fetch 2 ,mem_reference_inter1p8v_1v_adc_io_data 
+6fdf da6007d0 arg 2000 ,regc 
+
+vdd_calculate00:
+6fe0 98462200 isub temp ,rega 
+6fe1 6fe14420 fetch 2 ,mem_adc_current_value 
+6fe2 98467e00 isub temp ,pdata 
+6fe3 24216fe8 nbranch vdd_calculate11 ,positive 
+6fe4 20407039 call vdd_calculate_common 
+6fe5 9a467e00 isub regb ,pdata 
+6fe6 24217dcc nbranch set_pdata_0 ,positive 
+6fe7 20207030 branch vdd_calculate2 
+
+vdd_calculate11:
+6fe8 18427e00 copy temp ,pdata 
+6fe9 68494420 fetcht 2 ,mem_adc_current_value 
+6fea 98467e00 isub temp ,pdata 
+6feb 20407039 call vdd_calculate_common 
+6fec 9a40fe00 iadd regb ,pdata 
+6fed 20207030 branch vdd_calculate2 
+
+enable_adc_reference_source_inter1p8v:
+6fee 6fe0c41d fetch 1 ,mem_adc_config_flag 
+6fef c000eff8 beq adc_config_hvin ,enable_adc_reference_source_inter1p8v_vdcdc 
+
+enable_adc_reference_source_inter1p8v_div2_gpio:
+6ff0 20406f6b call sadc_cal_write 
+6ff1 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+6ff2 793ffe07 set0 7 ,pdata 
+6ff3 67f08a09 store 1 ,core_gpadc_cfg1 
+6ff4 708a0777 jam 0x77 ,core_gpadc_ctrl 
+6ff5 708a0841 jam 0x41 ,core_gpadc_cfg0 
+6ff6 708ac614 jam 0x14 ,0x8ac6 
+6ff7 20206fff branch enable_adc_reference_source_inter1p8v_common 
+
+enable_adc_reference_source_inter1p8v_vdcdc:
+6ff8 20406f6b call sadc_cal_write 
+6ff9 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+6ffa 793ffe07 set0 7 ,pdata 
+6ffb 67f08a09 store 1 ,core_gpadc_cfg1 
+6ffc 708a0777 jam 0x77 ,core_gpadc_ctrl 
+6ffd 708a0841 jam 0x41 ,core_gpadc_cfg0 
+6ffe 708ac610 jam 0x10 ,0x8ac6 
+
+enable_adc_reference_source_inter1p8v_common:
+6fff 708a0b00 jam 0x00 ,core_gpadc_cfg3 
+7000 20407007 call sadc_channel 
+7001 6fe0c41f fetch 1 ,mem_adc_clkdiv 
+7002 67f080cd store 1 ,core_sadc_clkdiv 
+7003 20407011 call sadc_read 
+7004 7080cd00 jam 0x00 ,core_sadc_clkdiv 
+7005 708ac600 jam 0x00 ,0x8ac6 
+7006 20600000 rtn 
+
+sadc_channel:
+7007 6fe0c41e fetch 1 ,mem_adc_channel 
+7008 1ff27e00 lshift4 pdata ,pdata 
+7009 68588a0b fetcht 1 ,core_gpadc_cfg3 
+700a 1841040f and_into 0x0f ,temp 
+700b 98418400 ior temp ,temp 
+700c 60588a0b storet 1 ,core_gpadc_cfg3 
+700d 20600000 rtn 
+
+sar_adc_read_wait:
+700e 6ff08129 fetch 1 ,core_perf_status 
+700f c302f00e bbit0 saradc_done ,sar_adc_read_wait 
+7010 20600000 rtn 
+
+sadc_read:
+7011 4701c020 bpatchx patch20_3 ,mem_patch20 
+7012 7080cc03 jam 0x03 ,core_sadc_ctrl 
+7013 2040700e call sar_adc_read_wait 
+7014 68590164 fetcht 2 ,core_sadc_data 
+7015 60494420 storet 2 ,mem_adc_current_value 
+7016 7080cc06 jam 0x06 ,core_sadc_ctrl 
+
+sadc_read_wait2:
+7017 6ff08129 fetch 1 ,core_perf_status 
+7018 c282f017 bbit1 saradc_done ,sadc_read_wait2 
+7019 7080cc00 jam 0x00 ,core_sadc_ctrl 
+701a 20600000 rtn 
+
+sadc_dma:
+701b 6fe0c427 fetch 1 ,mem_adc_dma_enable 
+701c 207a0000 rtn blank 
+701d 6ff08a09 fetch 1 ,core_gpadc_cfg1 
+701e 79207e07 set1 7 ,pdata 
+701f 67f08a09 store 1 ,core_gpadc_cfg1 
+7020 6fe0c41f fetch 1 ,mem_adc_clkdiv 
+7021 67f080cd store 1 ,core_sadc_clkdiv 
+7022 6fe14423 fetch 2 ,mem_adc_saddr_ptr 
+7023 67f100ce store 2 ,core_sadc_saddr 
+7024 6fe14425 fetch 2 ,mem_adc_eaddr_ptr 
+7025 67f100d0 store 2 ,core_sadc_eaddr 
+7026 7080cc0b jam 0x0b ,core_sadc_ctrl 
+7027 200003e8 nop 1000 
+7028 7080cc03 jam 0x03 ,core_sadc_ctrl 
+7029 20600000 rtn 
+
+vdd_calculate:
+702a 98462200 isub temp ,rega 
+702b 6fe14420 fetch 2 ,mem_adc_current_value 
+702c 98467e00 isub temp ,pdata 
+702d 24217032 nbranch vdd_calculate1 ,positive 
+702e 20407039 call vdd_calculate_common 
+702f 9a40fe00 iadd regb ,pdata 
+
+vdd_calculate2:
+7030 9a26fc00 idiv rega 
+7031 20207d61 branch get_div_result 
+
+vdd_calculate1:
+7032 18427e00 copy temp ,pdata 
+7033 68494420 fetcht 2 ,mem_adc_current_value 
+7034 98467e00 isub temp ,pdata 
+7035 20407039 call vdd_calculate_common 
+7036 9a467e00 isub regb ,pdata 
+7037 24217dcc nbranch set_pdata_0 ,positive 
+7038 20207030 branch vdd_calculate2 
+
+vdd_calculate_common:
+7039 6849441b fetcht 2 ,mem_reference_voltage 
+703a 984fa400 imul32 temp ,regb 
+703b 1a627e00 copy regc ,pdata 
+703c 9a2ffe00 imul32 rega ,pdata 
+703d 20600000 rtn 
+
+adc_bat_percent_lowpower_out:
+703e efe40011 ifetch 8 ,rega 
+703f 67e4064e store 8 ,mem_pdatatemp 
+7040 6fe1064e fetch 2 ,mem_pdatatemp 
+7041 68490650 fetcht 2 ,mem_pdatatemp + 2 
+7042 98462200 isub temp ,rega 
+7043 6fe10654 fetch 2 ,mem_pdatatemp + 6 
+7044 98462400 isub temp ,regb 
+7045 68490652 fetcht 2 ,mem_pdatatemp + 4 
+7046 98467c00 isub temp ,null 
+7047 2441704e ncall adc_set_low_power_flag ,positive 
+7048 1a4ffe64 mul32 regb ,100 ,pdata 
+7049 9a26fc00 idiv rega 
+704a 20407d64 call wait_div_end 
+704b 1807fe00 quotient pdata 
+704c 205a7054 call adc_set_no_power_flag ,blank 
+704d 20600000 rtn 
+
+adc_set_low_power_flag:
+704e 6fe0c422 fetch 1 ,mem_adc_power_flag 
+704f 79207e00 set1 0 ,pdata 
+7050 20207059 branch adc_set_power_flag 
+
+adc_clear_low_power_flag:
+7051 6fe0c422 fetch 1 ,mem_adc_power_flag 
+7052 793ffe00 set0 0 ,pdata 
+7053 20207059 branch adc_set_power_flag 
+
+adc_set_no_power_flag:
+7054 6848c422 fetcht 1 ,mem_adc_power_flag 
+7055 79200401 set1 1 ,temp 
+7056 20207059 branch adc_set_power_flag 
+
+adc_clear_no_power_flag:
+7057 6848c422 fetcht 1 ,mem_adc_power_flag 
+7058 793f8401 set0 1 ,temp 
+
+adc_set_power_flag:
+7059 6048c422 storet 1 ,mem_adc_power_flag 
+705a 20600000 rtn 
+
+keyscan_key_init:
+705b 6fe14443 fetch 2 ,mem_key_num_ptr 
+705c efe0803f ifetch 1 ,pdata 
+
+keyscan_key_init_next:
+705d 207a0000 rtn blank 
+705e 1fe27200 copy pdata ,loopcnt 
+705f 6fe14443 fetch 2 ,mem_keyscan_ptr 
+7060 1fe0fe03 increase 3 ,pdata 
+7061 1fe22200 copy pdata ,rega 
+
+keyscan_key_init_lp1:
+7062 e8408011 ifetcht 1 ,rega 
+7063 20406ed7 call gpio_config_input 
+7064 1a20a201 increase key_conf_struct_len ,rega 
+7065 c2007062 loop keyscan_key_init_lp1 
+
+keyscan_key_init_end:
+7066 20600000 rtn 
+
+keyscan_scan_key:
+7067 6fe14443 fetch 2 ,mem_keyscan_ptr 
+7068 1fe0fe03 increase 3 ,pdata 
+7069 1fe22200 copy pdata ,rega 
+706a 18002400 force 0 ,regb 
+706b 58000000 setarg 0 
+706c 67e106cf store 2 ,mem_key_value_temp 
+
+keyscan_scan_key_lp1:
+706d e8408011 ifetcht 1 ,rega 
+706e 20406ee0 call gpio_get_bit 
+706f 47024020 bpatchx patch20_4 ,mem_patch20 
+7070 6fe106cf fetch 2 ,mem_key_value_temp 
+7071 1a420e00 copy regb ,queue 
+7072 f920fe00 qsetflag true ,pdata 
+7073 67e106cf store 2 ,mem_key_value_temp 
+7074 1a20a201 increase key_conf_struct_len ,rega 
+7075 1a40a401 increase 1 ,regb 
+7076 6fe14443 fetch 2 ,mem_key_num_ptr 
+7077 efe0803f ifetch 1 ,pdata 
+
+keyscan_scan_key_lp1_next:
+7078 9a42fc00 ixor regb ,null 
+7079 2422f06d nbranch keyscan_scan_key_lp1 ,zero 
+707a 6fe106cf fetch 2 ,mem_key_value_temp 
+707b 68494445 fetcht 2 ,mem_key_value_retention 
+707c 9842fc00 ixor temp ,null 
+707d 20628000 rtn zero 
+707e 20207dbc branch enable_user 
+
+keyscan_process_lpm_before:
+707f 6fe14443 fetch 2 ,mem_key_num_ptr 
+7080 efe0803f ifetch 1 ,pdata 
+
+keyscan_process_lpm_before_next:
+7081 207a0000 rtn blank 
+7082 1fe27200 copy pdata ,loopcnt 
+7083 6fe14443 fetch 2 ,mem_keyscan_ptr 
+7084 1fe0fe03 increase 3 ,pdata 
+7085 1fe22200 copy pdata ,rega 
+
+keyscan_process_lpm_before_lp1:
+7086 e8408011 ifetcht 1 ,rega 
+7087 20406ea5 call gpio_set_wake_by_current_state 
+7088 1a20a201 increase key_conf_struct_len ,rega 
+7089 c2007086 loop keyscan_process_lpm_before_lp1 
+
+keyscan_process_lpm_before_end:
+708a 20600000 rtn 
+
+keyscan_key_process:
+708b d8e00009 arg key_scan_timer ,queue 
+708c 20407cf1 call timer_check 
+708d 247a0000 nrtn blank 
+708e 58000020 setarg 0x20 
+708f d8e00009 arg key_scan_timer ,queue 
+7090 20407ce3 call timer_init 
+7091 78547c00 disable user 
+7092 2040707f call keyscan_process_lpm_before 
+7093 4702c020 bpatchx patch20_5 ,mem_patch20 
+7094 6fe14443 fetch 2 ,mem_key_num_ptr 
+7095 efe0803f ifetch 1 ,pdata 
+
+keyscan_key_process_next:
+7096 207a0000 rtn blank 
+7097 20407067 call keyscan_scan_key 
+7098 24347793 nbranch lpm_button_clean_wake_lock ,user 
+7099 20407791 call lpm_button_get_wake_lock 
+709a 78547c00 disable user 
+709b 6fe106cf fetch 2 ,mem_key_value_temp 
+709c 67e106d6 store 2 ,mem_key_value_temp4 
+709d 7006d800 jam 0 ,mem_key_value_temp6 
+709e 18000e00 force 0 ,queue 
+
+keyscan_key_lp1:
+709f 6fe14445 fetch 2 ,mem_key_value_retention 
+70a0 1fe30400 rshift pdata ,temp 
+70a1 60494445 storet 2 ,mem_key_value_retention 
+70a2 1fe17e01 and pdata ,0x01 ,pdata 
+70a3 684906d6 fetcht 2 ,mem_key_value_temp4 
+70a4 18412201 and temp ,0x01 ,rega 
+70a5 18430400 rshift temp ,temp 
+70a6 604906d6 storet 2 ,mem_key_value_temp4 
+70a7 9a22fc00 ixor rega ,null 
+70a8 2442f0b4 ncall keyscan_send_key_data ,zero 
+70a9 6fe14443 fetch 2 ,mem_key_num_ptr 
+70aa efe0803f ifetch 1 ,pdata 
+
+keyscan_key_lp1_next:
+70ab 684886d8 fetcht 1 ,mem_key_value_temp6 
+70ac 18408401 increase 1 ,temp 
+70ad 604886d8 storet 1 ,mem_key_value_temp6 
+70ae 18420e00 copy temp ,queue 
+70af 98e2fc00 ixor queue ,null 
+70b0 2422f09f nbranch keyscan_key_lp1 ,zero 
+70b1 6fe106cf fetch 2 ,mem_key_value_temp 
+70b2 67e14445 store 2 ,mem_key_value_retention 
+70b3 20600000 rtn 
+
+keyscan_send_key_data:
+70b4 47034020 bpatchx patch20_6 ,mem_patch20 
+70b5 6fe14443 fetch 2 ,mem_keyscan_ptr 
+70b6 1fe0fe01 increase 1 ,pdata 
+70b7 efe1003f ifetch 2 ,pdata 
+70b8 20207d7b branch callback_func 
+
+pwm_init:
+70b9 6ff08042 fetch 1 ,core_clksel 
+70ba 9a21fe00 ior rega ,pdata 
+70bb 67f08042 store 1 ,core_clksel 
+70bc 6ff10050 fetch 2 ,core_clkoff 
+70bd 793ffe0d set0 clock_off_pwm ,pdata 
+70be 67f10050 store 2 ,core_clkoff 
+
+delay_nop100:
+70bf 20000064 nop 100 
+70c0 20600000 rtn 
+
+pwm_clk_set:
+70c1 6ff08042 fetch 1 ,core_clksel 
+70c2 c28370c6 bbit1 6 ,pwm_24m_clk_set 
+70c3 c283f0c8 bbit1 7 ,pwm_33k_clk_set 
+
+pwm_12m_clk_set:
+70c4 58b71b00 setarg pwm_12mhz 
+70c5 20600000 rtn 
+
+pwm_24m_clk_set:
+70c6 596e3600 setarg pwm_24mhz 
+70c7 20600000 rtn 
+
+pwm_33k_clk_set:
+70c8 580080e8 setarg pwm_33khz 
+70c9 20600000 rtn 
+
+pwm_out_set:
+70ca 68498650 fetcht 3 ,mem_pdatatemp + 2 
+70cb 204070c1 call pwm_clk_set 
+70cc 9846fc00 idiv temp 
+70cd 20407d64 call wait_div_end 
+70ce 18078400 quotient temp 
+70cf 6fe08653 fetch 1 ,mem_pdatatemp + 5 
+70d0 984ffe00 imul32 temp ,pdata 
+70d1 1fe6fc64 div pdata ,100 
+70d2 20407d64 call wait_div_end 
+70d3 1807a200 quotient rega 
+70d4 18427e00 copy temp ,pdata 
+70d5 9a262400 isub rega ,regb 
+70d6 6fe0864f fetch 1 ,mem_pdatatemp + 1 
+70d7 204070de call pwm_duty_cycle_set 
+70d8 6fe0864e fetch 1 ,mem_pdatatemp 
+70d9 6848864f fetcht 1 ,mem_pdatatemp + 1 
+70da 1841040f and_into 0x0f ,temp 
+70db 184d0400 lshift8 temp ,temp 
+70dc 9841fe00 ior temp ,pdata 
+70dd 20207100 branch pwm_enable 
+
+pwm_duty_cycle_set:
+70de 98000e00 iforce queue 
+70df 204070ec call pwm_duty_cycle_set_without_autoload 
+70e0 202070e1 branch pwm_autoload_set 
+
+pwm_autoload_set:
+70e1 6ff080be fetch 1 ,core_pwm_autoload 
+70e2 f9207e00 qset1 pdata 
+70e3 67f080be store 1 ,core_pwm_autoload 
+70e4 68588042 fetcht 1 ,core_clksel 
+70e5 284ffe07 isolate1 7 ,temp 
+70e6 2040f0ea call delay_1clk_of_33k ,true 
+70e7 f93ffe00 qset0 pdata 
+70e8 67f080be store 1 ,core_pwm_autoload 
+70e9 20600000 rtn 
+
+delay_1clk_of_33k:
+70ea 200001e0 nop 480 
+70eb 20600000 rtn 
+
+pwm_duty_cycle_set_without_autoload:
+70ec 1fe17e0f and_into 0x0f ,pdata 
+70ed d8a0809c arg core_pwm_pcnt0 ,contw 
+70ee 1feffe04 mul32 pdata ,4 ,pdata 
+70ef 98a08a00 iadd contw ,contw 
+70f0 1a227e00 copy rega ,pdata 
+70f1 e7e10005 istore 2 ,contw 
+70f2 1a427e00 copy regb ,pdata 
+70f3 e7e10005 istore 2 ,contw 
+70f4 20600000 rtn 
+
+pwm_init_bit_set:
+70f5 28effe06 isolate1 6 ,queue 
+
+pwm_init_bit_set_process:
+70f6 18e10e0f and queue ,0x0f ,queue 
+70f7 6ff0809b fetch 1 ,core_pwm_init 
+70f8 f920fe00 qsetflag true ,pdata 
+70f9 67f0809b store 1 ,core_pwm_init 
+70fa 20600000 rtn 
+
+pwm_gpio_select:
+70fb 2040710b call pwm_select_channel 
+
+pwm_gpio_select_process:
+70fc 1fed7e00 lshift8 pdata ,pdata 
+70fd 18e08410 add queue ,gpcfg_pwm_out0 ,temp 
+70fe 9841fe00 ior temp ,pdata 
+70ff 20206f19 branch gpio_config_param 
+
+pwm_enable:
+7100 78347c00 enable user 
+7101 204070fb call pwm_gpio_select 
+7102 20207106 branch pwm_set_select 
+
+pwm_disable:
+7103 78547c00 disable user 
+7104 2040710b call pwm_select_channel 
+7105 20207106 branch pwm_set_select 
+
+pwm_set_select:
+7106 18e10e0f and queue ,0x0f ,queue 
+7107 6ff0809a fetch 1 ,core_pwm_en 
+7108 f9347e00 qsetflag user ,pdata 
+7109 67f0809a store 1 ,core_pwm_en 
+710a 20600000 rtn 
+
+pwm_select_channel:
+710b 1fec8e00 rshift8 pdata ,queue 
+710c 18e10e0f and queue ,0x0f ,queue 
+710d 20600000 rtn 
+
+wdt_init_config:
+710e 1fe20400 copy pdata ,temp 
+710f 4703c020 bpatchx patch20_7 ,mem_patch20 
+7110 2040711b call wdt_set_enable 
+7111 58000800 setarg 2048 
+7112 98467e00 isub temp ,pdata 
+7113 1fe20400 copy pdata ,temp 
+7114 18518400 rshift4 temp ,temp 
+7115 60588004 storet 1 ,core_write_wdt 
+7116 20000578 nop 1400 
+7117 1fe20400 copy pdata ,temp 
+7118 1841040f and_into 0x0f ,temp 
+7119 6058800b storet 1 ,core_write_wdt2 
+711a 20600000 rtn 
+
+wdt_set_enable:
+711b 78367c00 enable user2 
+711c 2020711f branch wdt_init_set 
+
+wdt_set_disable:
+711d 47044021 bpatchx patch21_0 ,mem_patch21 
+711e 78567c00 disable user2 
+
+wdt_init_set:
+711f 6ff08043 fetch 1 ,core_config 
+7120 79367e03 setflag user2 ,3 ,pdata 
+7121 67f08043 store 1 ,core_config 
+7122 20600000 rtn 
+
+nec_init_config:
+7123 67f20062 store 4 ,core_nec_start_addr 
+7124 67f10066 store 2 ,core_nec_rptr 
+7125 60588061 storet 1 ,core_nec_ctrl 
+7126 20600000 rtn 
+
+select_system_clk_12m_xtal:
+7127 70804204 jam clksel_xtal ,core_clksel 
+
+select_system_clk_12m_common:
+7128 7041480c jam system_clk_12m ,mem_system_clk 
+7129 58000ea5 setarg 3749 
+712a 67f10040 store 2 ,core_halfslot 
+712b 20600000 rtn 
+
+select_system_clk_12m_dpll:
+712c 70804205 jam clksel_dpll ,core_clksel 
+712d 20207128 branch select_system_clk_12m_common 
+
+function_g2:
+712e 4704c021 bpatchx patch21_1 ,mem_patch21 
+712f 70020e50 jam 80 ,mem_aes_cmac_data_length 
+7130 d8a0020f arg mem_dat ,contw 
+7131 d8c042ad arg mem_le_srand ,contr 
+7132 20407c91 call memcpy16 
+7133 d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
+7134 20407c8f call memcpy32 
+7135 d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
+7136 20407c8f call memcpy32 
+7137 204071e9 call inverse_memdat 
+7138 d8c00158 arg mem_le_mrand ,contr 
+7139 204071e4 call store_inverse_k 
+713a 204071af call function_aes_cmac 
+713b d8a006af arg mem_aes_cmac_temp ,contw 
+713c 204071e0 call load_inverse_result 
+713d 580f4240 setarg 1000000 
+713e 1fe22200 copy pdata ,rega 
+713f 6fe206af fetch 4 ,mem_aes_cmac_temp 
+7140 9a26fc00 idiv rega 
+7141 20407d64 call wait_div_end 
+7142 18077e00 remainder pdata 
+7143 67e205d8 store 4 ,mem_gkey 
+7144 20600000 rtn 
+
+function_f6_eb:
+7145 70020e41 jam 65 ,mem_aes_cmac_data_length 
+7146 d8a0020f arg mem_dat ,contw 
+7147 20407194 call store_addr_common_a 
+7148 2040718f call store_addr_common_b 
+7149 6fe1c2c7 fetch 3 ,mem_le_pres + 1 
+714a e7e18005 istore 3 ,contw 
+714b 20407155 call get_r 
+714c d8c00158 arg mem_le_mrand ,contr 
+714d 20407c91 call memcpy16 
+714e d8c042ad arg mem_le_srand ,contr 
+714f 20407c91 call memcpy16 
+7150 204071e9 call inverse_memdat 
+7151 d8c006cf arg mem_le_mackey ,contr 
+7152 d8a0067f arg mem_aes_cmac_k ,contw 
+7153 20407c91 call memcpy16 
+7154 202071af branch function_aes_cmac 
+
+get_r:
+7155 6fe24301 fetch 4 ,mem_le_tk 
+7156 e7e20005 istore 4 ,contw 
+7157 20407c9d call memset0_4 
+7158 20207c9c branch memset0_8 
+
+function_f6_ea:
+7159 47054021 bpatchx patch21_2 ,mem_patch21 
+715a 70020e41 jam 65 ,mem_aes_cmac_data_length 
+715b d8a0020f arg mem_dat ,contw 
+715c 2040718f call store_addr_common_b 
+715d 20407194 call store_addr_common_a 
+715e 6fe1c2c0 fetch 3 ,mem_le_preq + 1 
+715f e7e18005 istore 3 ,contw 
+7160 20407155 call get_r 
+7161 d8c042ad arg mem_le_srand ,contr 
+7162 20407c91 call memcpy16 
+7163 d8c00158 arg mem_le_mrand ,contr 
+7164 20407c91 call memcpy16 
+7165 204071e9 call inverse_memdat 
+7166 d8c006cf arg mem_le_mackey ,contr 
+7167 d8a0067f arg mem_aes_cmac_k ,contw 
+7168 20407c91 call memcpy16 
+7169 204071af call function_aes_cmac 
+716a d8a006af arg mem_aes_cmac_temp ,contw 
+716b 202071e0 branch load_inverse_result 
+
+function_f5:
+716c 70020e20 jam 32 ,mem_aes_cmac_data_length 
+716d d8c0061c arg mem_le_dhkey_256 ,contr 
+716e d8a0020f arg mem_dat ,contw 
+716f 20407c8f call memcpy32 
+7170 204071e9 call inverse_memdat 
+7171 d8c005c7 arg mem_le_slat ,contr 
+7172 204071e4 call store_inverse_k 
+7173 204071af call function_aes_cmac 
+7174 d8a0067f arg mem_aes_cmac_k ,contw 
+7175 20407363 call store_aes_result 
+7176 d8400001 arg 1 ,temp 
+7177 2040717e call function_f5_common 
+7178 d8a0428c arg mem_le_ltk ,contw 
+7179 204071e0 call load_inverse_result 
+717a d8400000 arg 0 ,temp 
+717b 2040717e call function_f5_common 
+717c d8a006cf arg mem_le_mackey ,contw 
+717d 20207363 branch store_aes_result 
+
+function_f5_common:
+717e 4705c021 bpatchx patch21_3 ,mem_patch21 
+717f 70020e35 jam 53 ,mem_aes_cmac_data_length 
+7180 58000100 setarg 0x100 
+7181 67e1020f store 2 ,mem_dat 
+7182 2040718f call store_addr_common_b 
+7183 20407194 call store_addr_common_a 
+7184 d8c042ad arg mem_le_srand ,contr 
+7185 20407c91 call memcpy16 
+7186 d8c00158 arg mem_le_mrand ,contr 
+7187 20407c91 call memcpy16 
+7188 58006c65 setarg 0x6c65 
+7189 e7e10005 istore 2 ,contw 
+718a 58006274 setarg 0x6274 
+718b e7e10005 istore 2 ,contw 
+718c e0408005 istoret 1 ,contw 
+718d 204071e9 call inverse_memdat 
+718e 202071af branch function_aes_cmac 
+
+store_addr_common_b:
+718f 6fe342dd fetch 6 ,mem_le_lap 
+7190 e7e30005 istore 6 ,contw 
+7191 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
+7192 e7e08005 istore 1 ,contw 
+7193 20600000 rtn 
+
+store_addr_common_a:
+7194 6fe30178 fetch 6 ,mem_le_plap 
+7195 e7e30005 istore 6 ,contw 
+7196 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
+7197 e7e08005 istore 1 ,contw 
+7198 20600000 rtn 
+
+function_f4_ca:
+7199 70020e41 jam 65 ,mem_aes_cmac_data_length 
+719a 6fe0c4e7 fetch 1 ,mem_passkey_1bit 
+719b 67e0820f store 1 ,mem_dat 
+719c d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
+719d 20407c8f call memcpy32 
+719e d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
+719f 20407c8f call memcpy32 
+71a0 204071e9 call inverse_memdat 
+71a1 d8c00158 arg mem_le_mrand ,contr 
+71a2 204071e4 call store_inverse_k 
+71a3 202071af branch function_aes_cmac 
+
+function_f4_cb:
+71a4 70020e41 jam 65 ,mem_aes_cmac_data_length 
+71a5 6fe0c4e7 fetch 1 ,mem_passkey_1bit 
+71a6 67e0820f store 1 ,mem_dat 
+71a7 d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
+71a8 20407c8f call memcpy32 
+71a9 d8c044a6 arg mem_sc_pubkey_local_x_256 ,contr 
+71aa 20407c8f call memcpy32 
+71ab 204071e9 call inverse_memdat 
+71ac d8c042ad arg mem_le_srand ,contr 
+71ad 204071e4 call store_inverse_k 
+71ae 202071af branch function_aes_cmac 
+
+function_aes_cmac:
+71af 47064021 bpatchx patch21_4 ,mem_patch21 
+71b0 204071fe call function_aes_cmac_generate_subkey 
+71b1 6fe0820e fetch 1 ,mem_aes_cmac_data_length 
+71b2 1fe20400 copy pdata ,temp 
+
+function_ceil16:
+71b3 1fe0fe0f increase 15 ,pdata 
+71b4 1ff1fe00 rshift4 pdata ,pdata 
+71b5 1fe22400 copy pdata ,regb 
+71b6 203a71c1 branch function_aes_cmac_set_flag_0_balnk ,blank 
+71b7 18417e0f and temp ,0x0f ,pdata 
+71b8 243a71c4 nbranch function_aes_cmac_set_flag_0 ,blank 
+71b9 da60068f arg mem_aes_cmac_k1 ,regc 
+71ba dfe0020f arg mem_dat ,pdata 
+71bb 1fe0fff0 increase -16 ,pdata 
+71bc 9840a200 iadd temp ,rega 
+71bd d8a006bf arg mem_aes_cmac_m_last ,contw 
+71be df200004 arg 4 ,loopcnt 
+71bf 20407cab call xor_loop 
+71c0 202071cf branch function_aes_cmac_aes 
+
+function_aes_cmac_set_flag_0_balnk:
+71c1 da400001 arg 1 ,regb 
+71c2 da200000 arg 0 ,rega 
+71c3 202071c5 branch function_aes_cmac_set_flag_0_common 
+
+function_aes_cmac_set_flag_0:
+71c4 1841220f and temp ,0x0f ,rega 
+
+function_aes_cmac_set_flag_0_common:
+71c5 dfe0020f arg mem_dat ,pdata 
+71c6 9840fe00 iadd temp ,pdata 
+71c7 9a260c00 isub rega ,contr 
+71c8 d8a006af arg mem_aes_cmac_temp ,contw 
+71c9 20407224 call function_aes_cmac_padding 
+71ca da60069f arg mem_aes_cmac_k2 ,regc 
+71cb da2006af arg mem_aes_cmac_temp ,rega 
+71cc d8a006bf arg mem_aes_cmac_m_last ,contw 
+71cd df200004 arg 4 ,loopcnt 
+71ce 20407cab call xor_loop 
+
+function_aes_cmac_aes:
+71cf 2040735d call aes_clear_data 
+71d0 204072c8 call aes_init 
+71d1 d8c0020f arg mem_dat ,contr 
+
+function_aes_cmac_aes_loop:
+71d2 1a40a5ff increase -1 ,regb 
+71d3 1a427e00 deposit regb 
+71d4 203a71d8 branch function_aes_cmac_aes_loop_end ,blank 
+71d5 2040734f call load_data128 
+71d6 204072c2 call do_aes_cbc 
+71d7 202071d2 branch function_aes_cmac_aes_loop 
+
+function_aes_cmac_aes_loop_end:
+71d8 d8a006af arg mem_aes_cmac_temp ,contw 
+71d9 20407363 call store_aes_result 
+71da d8c006bf arg mem_aes_cmac_m_last ,contr 
+71db 2040734f call load_data128 
+71dc 204072c8 call aes_init 
+71dd d8c006af arg mem_aes_cmac_temp ,contr 
+71de 2040734f call load_data128 
+71df 202072c2 branch do_aes_cbc 
+
+load_inverse_result:
+71e0 18a22200 copy contw ,rega 
+71e1 20407363 call store_aes_result 
+71e2 df200010 arg 16 ,loopcnt 
+71e3 20207cb3 branch inverse_data 
+
+store_inverse_k:
+71e4 d8a0067f arg mem_aes_cmac_k ,contw 
+71e5 20407c91 call memcpy16 
+
+inverse_k:
+71e6 df200010 arg 16 ,loopcnt 
+71e7 da20067f arg mem_aes_cmac_k ,rega 
+71e8 20207cb3 branch inverse_data 
+
+inverse_memdat:
+71e9 6fe0820e fetch 1 ,mem_aes_cmac_data_length 
+71ea 1fe27200 copy pdata ,loopcnt 
+71eb da20020f arg mem_dat ,rega 
+71ec 20207cb3 branch inverse_data 
+
+bn_lshift_0_inverse:
+71ed efe08011 ifetch 1 ,rega 
+71ee 1fe3fe00 lshift pdata ,pdata 
+71ef 2a6ffe00 isolate1 0 ,regc 
+71f0 7920fe00 setflag true ,0 ,pdata 
+71f1 2feffe08 isolate1 8 ,pdata 
+71f2 7920a600 setflag true ,0 ,regc 
+71f3 e7e08011 istore 1 ,rega 
+71f4 1a20a3ff increase -1 ,rega 
+71f5 c20071ed loop bn_lshift_0_inverse 
+71f6 20600000 rtn 
+
+function_aes_cmac_k1_inverse:
+71f7 da20068f arg mem_aes_cmac_k1 ,rega 
+
+function_aes_cmac_inverse_common:
+71f8 1a20a20f increase 15 ,rega 
+71f9 18007210 force 16 ,loopcnt 
+71fa 18002600 force 0 ,regc 
+71fb 202071ed branch bn_lshift_0_inverse 
+
+function_aes_cmac_k2_inverse:
+71fc da20069f arg mem_aes_cmac_k2 ,rega 
+71fd 202071f8 branch function_aes_cmac_inverse_common 
+
+function_aes_cmac_generate_subkey:
+71fe d8c0067f arg mem_aes_cmac_k ,contr 
+71ff 2040734d call load_key 
+7200 18007008 force regidx_xor ,regext_index 
+7201 2040735e call aes_clear 
+7202 2040735d call aes_clear_data 
+7203 204072bf call do_aes_ocb 
+7204 d8a0068f arg mem_aes_cmac_k1 ,contw 
+7205 20407363 call store_aes_result 
+
+function_aes_cmac_k1:
+7206 4706c021 bpatchx patch21_5 ,mem_patch21 
+7207 6fe0868f fetch 1 ,mem_aes_cmac_k1 
+7208 2feffe07 isolate1 7 ,pdata 
+7209 2420f20f nbranch function_aes_cmac_k1_0 ,true 
+720a 204071f7 call function_aes_cmac_k1_inverse 
+720b da60068f arg mem_aes_cmac_k1 ,regc 
+720c d8a0068f arg mem_aes_cmac_k1 ,contw 
+720d 20407219 call function_aes_cmac_xor_rb 
+720e 20207210 branch function_aes_cmac_k2 
+
+function_aes_cmac_k1_0:
+720f 204071f7 call function_aes_cmac_k1_inverse 
+
+function_aes_cmac_k2:
+7210 d8c0068f arg mem_aes_cmac_k1 ,contr 
+7211 d8a0069f arg mem_aes_cmac_k2 ,contw 
+7212 20407c91 call memcpy16 
+7213 6fe0869f fetch 1 ,mem_aes_cmac_k2 
+7214 2feffe07 isolate1 7 ,pdata 
+7215 2420f1fc nbranch function_aes_cmac_k2_inverse ,true 
+7216 204071fc call function_aes_cmac_k2_inverse 
+7217 da60069f arg mem_aes_cmac_k2 ,regc 
+7218 d8a0069f arg mem_aes_cmac_k2 ,contw 
+
+function_aes_cmac_xor_rb:
+7219 df200003 arg 3 ,loopcnt 
+
+function_aes_cmac_xor_rb_loop:
+721a d8400000 arg 0 ,temp 
+721b 20407220 call function_aes_cmac_xor_loop_common 
+721c 1a60a604 increase 4 ,regc 
+721d c200721a loop function_aes_cmac_xor_rb_loop 
+721e d8408700 arg 0x8700 ,temp 
+721f 18500400 lshift16 temp ,temp 
+
+function_aes_cmac_xor_loop_common:
+7220 efe20013 ifetch 4 ,regc 
+7221 9842fe00 ixor temp ,pdata 
+7222 e7e20005 istore 4 ,contw 
+7223 20600000 rtn 
+
+function_aes_cmac_padding:
+7224 47074021 bpatchx patch21_6 ,mem_patch21 
+7225 df200010 arg 16 ,loopcnt 
+7226 dfe00000 arg 0 ,pdata 
+
+function_aes_cmac_padding_loop:
+7227 9a267c00 isub rega ,null 
+7228 2022f22f branch function_aes_cmac_padding_beq_length ,zero 
+7229 20217232 branch function_aes_cmac_padding_big_length ,positive 
+722a e8408006 ifetcht 1 ,contr 
+722b e0408005 istoret 1 ,contw 
+
+function_aes_cmac_padding_loop2:
+722c 1fe0fe01 increase 1 ,pdata 
+722d c2007227 loop function_aes_cmac_padding_loop 
+722e 20600000 rtn 
+
+function_aes_cmac_padding_beq_length:
+722f d8400080 arg 0x80 ,temp 
+
+function_aes_cmac_padding_common:
+7230 e0408005 istoret 1 ,contw 
+7231 2020722c branch function_aes_cmac_padding_loop2 
+
+function_aes_cmac_padding_big_length:
+7232 d8400000 arg 0 ,temp 
+7233 20207230 branch function_aes_cmac_padding_common 
+
+concatenate_temp24:
+7234 184d0400 lshift8 temp ,temp 
+
+concatenate_temp16:
+7235 18500400 lshift16 temp ,temp 
+7236 98418400 ior temp ,temp 
+7237 20600000 rtn 
+
+generate_stk:
+7238 4707c021 bpatchx patch21_7 ,mem_patch21 
+7239 204072f4 call function_s1 
+723a d8a0428c arg mem_le_ltk ,contw 
+723b 20207363 branch store_aes_result 
+
+authenticate_rconfirm:
+723c d8a042ad arg mem_le_srand ,contw 
+723d 2034f23f branch authenticate_mconfirm ,master 
+723e d8a00158 arg mem_le_mrand ,contw 
+
+authenticate_mconfirm:
+723f 18c22200 copy contr ,rega 
+7240 20407c91 call memcpy16 
+7241 20407309 call function_c1 
+7242 d8c0429d arg mem_le_rconfirm ,contr 
+7243 2020737c branch compare_res 
+
+generate_confirm:
+7244 da200158 arg mem_le_mrand ,rega 
+7245 2034f247 branch generate_mrand ,master 
+7246 da2042ad arg mem_le_srand ,rega 
+
+generate_mrand:
+7247 1a220a00 copy rega ,contw 
+7248 20407ded call generate_random 
+7249 20207309 branch function_c1 
+
+generate_sk:
+724a d8c042e7 arg mem_le_skdm ,contr 
+724b 2040734f call load_data128 
+724c d8c0428c arg mem_le_ltk ,contr 
+724d 20407350 call load_regext 
+724e 18006c38 force 0x38 ,aes_ctrl 
+724f 18006c00 force 0x0 ,aes_ctrl 
+7250 204072bd call wait_aes 
+7251 d8a001a8 arg mem_le_sk ,contw 
+7252 20207363 branch store_aes_result 
+
+ccm_b0:
+7253 18007008 force regidx_xor ,regext_index 
+7254 18007e49 force 0x49 ,pdata 
+7255 2020725a branch iv_common 
+
+first_block_counter:
+7256 18007e49 force 0x49 ,pdata 
+7257 20207259 branch first_block 
+
+first_block_data:
+7258 18007e01 force 1 ,pdata 
+
+first_block:
+7259 18007000 force regidx_data ,regext_index 
+
+iv_common:
+725a 184d5e00 lshift8 temp ,regext 
+725b 9de1de00 ior regext ,regext 
+725c 1f00f001 increase 1 ,regext_index 
+725d 184cde00 rshift8 temp ,regext 
+725e 1df15e00 rshift16 regext ,regext 
+725f 6fe14475 fetch 2 ,mem_ccm_iv 
+7260 1ff07e00 lshift16 pdata ,pdata 
+7261 9de1de00 ior regext ,regext 
+7262 1f00f001 increase 1 ,regext_index 
+7263 ede20006 ifetchr regext ,4 ,contr 
+7264 1f00f001 increase 1 ,regext_index 
+7265 efe10006 ifetch 2 ,contr 
+7266 1a30de00 byteswap rega ,regext 
+7267 1df05e00 lshift16 regext ,regext 
+7268 9de1de00 ior regext ,regext 
+7269 1f00f001 increase 1 ,regext_index 
+726a 20600000 rtn 
+
+generate_mic:
+726b 1a608c01 add regc ,1 ,contr 
+726c efe08006 ifetch 1 ,contr 
+726d 98002200 iforce rega 
+726e 20407256 call first_block_counter 
+726f 204072bf call do_aes_ocb 
+7270 18007000 force regidx_data ,regext_index 
+7271 efe08013 ifetch 1 ,regc 
+7272 1fe17e03 and_into 0x3 ,pdata 
+7273 1ff05e00 lshift16 pdata ,regext 
+7274 79205e08 set1 8 ,regext 
+7275 20407358 call clear_hidata 
+7276 204072c2 call do_aes_cbc 
+7277 1a227200 copy rega ,loopcnt 
+7278 1a608c02 add regc ,2 ,contr 
+7279 20407337 call padding_data 
+
+generate_mic_loop:
+727a 20407341 call aes_load_data 
+727b 204072c2 call do_aes_cbc 
+727c 1f227e00 deposit loopcnt 
+727d 203a727f branch generate_mic_end ,blank 
+727e 2020727a branch generate_mic_loop 
+
+generate_mic_end:
+727f 1800700c force regidx_result ,regext_index 
+7280 1de27e00 deposit regext 
+7281 67e20150 store 4 ,mem_le_mic 
+7282 20600000 rtn 
+
+aes_crypt_data:
+7283 1a20a201 increase 1 ,rega 
+7284 20407258 call first_block_data 
+7285 1a620c00 copy regc ,contr 
+7286 2040734b call aes_load_xor 
+7287 204072c5 call do_aes_ctr 
+7288 2040736a call store_enc_data 
+7289 1a60a610 increase 16 ,regc 
+728a 1a40a5f0 increase -16 ,regb 
+728b 20217283 branch aes_crypt_data ,positive 
+728c 20600000 rtn 
+
+le_encrypt_new_start:
+728d 204072b2 call ccm_init_common 
+728e 47084022 bpatchx patch22_0 ,mem_patch22 
+728f 70806c00 jam 0 ,core_ccm_aad0 
+7290 70806d01 jam 1 ,core_ccm_aad1 
+7291 6fe0c16b fetch 1 ,mem_le_txheader 
+7292 1fe17e03 and_into 0x3 ,pdata 
+7293 67f0806e store 1 ,core_ccm_aad2 
+7294 6fe1066d fetch 2 ,mem_contr 
+7295 67f10068 store 2 ,core_ccm_input_playload_addr 
+7296 5800416d setarg mem_le_txpayload 
+7297 67f1006a store 2 ,core_ccm_output_playload_addr 
+7298 6a20c16c fetchr rega ,1 ,mem_le_txlen 
+7299 684ac467 fetcht 5 ,mem_ccm_pcnt_tx 
+729a 20407253 call ccm_b0 
+729b 70800a02 jam 2 ,core_ccm_ctrl 
+729c 70800a03 jam 3 ,core_ccm_ctrl 
+729d 6fe0c16c fetch 1 ,mem_le_txlen 
+729e 67f100c0 store 2 ,core_ccm_inptr 
+729f 1fe0fe04 increase 4 ,pdata 
+72a0 67e0c16c store 1 ,mem_le_txlen 
+72a1 6fe2c467 fetch 5 ,mem_ccm_pcnt_tx 
+72a2 1fe0fe01 increase 1 ,pdata 
+72a3 793ffe27 set0 le_ccm_directionbit ,pdata 
+72a4 67e2c467 store 5 ,mem_ccm_pcnt_tx 
+72a5 20600000 rtn 
+
+ccm_wait_enc:
+72a6 6ff1011a fetch 2 ,core_ccm_outptr 
+72a7 98467c00 isub temp ,null 
+72a8 20628000 rtn zero 
+72a9 247a0000 nrtn blank 
+72aa 202072a6 branch ccm_wait_enc 
+
+ccm_check_enc_done:
+72ab 6ff08108 fetch 1 ,core_misc_status 
+72ac c303233e bbit0 6 ,assert 
+
+ccm_enc_done:
+72ad 5800416d setarg mem_le_txpayload 
+72ae 98408a00 iadd temp ,contw 
+72af df00000c arg regidx_result ,regext_index 
+72b0 e5e20005 istorer regext ,4 ,contw 
+72b1 202072bb branch ccm_ctrl_clr 
+
+ccm_init_common:
+72b2 4708c022 bpatchx patch22_1 ,mem_patch22 
+72b3 1800700c force regidx_result ,regext_index 
+72b4 2040735e call aes_clear 
+72b5 2040735d call aes_clear_data 
+72b6 58000000 setarg 0 
+72b7 67f100c0 store 2 ,core_ccm_inptr 
+72b8 20600000 rtn 
+
+wait_ccm_done:
+72b9 6ff08108 fetch 1 ,core_misc_status 
+72ba c30372b9 bbit0 6 ,wait_ccm_done 
+
+ccm_ctrl_clr:
+72bb 70800a00 jam 0 ,core_ccm_ctrl 
+72bc 20600000 rtn 
+
+wait_aes:
+72bd 243bf2bd nbranch wait_aes ,aes_ready 
+72be 20600000 rtn 
+
+do_aes_ocb:
+72bf 18006c30 force 0x30 ,aes_ctrl 
+72c0 18006c00 force 0x0 ,aes_ctrl 
+72c1 202072bd branch wait_aes 
+
+do_aes_cbc:
+72c2 18006c32 force 0x32 ,aes_ctrl 
+72c3 18006c02 force 0x2 ,aes_ctrl 
+72c4 202072bd branch wait_aes 
+
+do_aes_ctr:
+72c5 18006c34 force 0x34 ,aes_ctrl 
+72c6 18006c04 force 0x4 ,aes_ctrl 
+72c7 202072bd branch wait_aes 
+
+aes_init:
+72c8 18006c01 force 1 ,aes_ctrl 
+72c9 18006c00 force 0 ,aes_ctrl 
+72ca 20600000 rtn 
+
+wait_keyinit_done:
+72cb 6ff08155 fetch 1 ,core_aes_decode_key_init 
+72cc c30172cb bbit0 2 ,wait_keyinit_done 
+72cd 20600000 rtn 
+
+dec_key_initial:
+72ce 67f100d2 store 2 ,core_keybuf_saddr 
+72cf 18006cc0 force 0xc0 ,aes_ctrl 
+72d0 18006c80 force 0x80 ,aes_ctrl 
+72d1 202072cb branch wait_keyinit_done 
+
+do_aes_ecb_dec:
+72d2 18007000 force regidx_data ,regext_index 
+72d3 1a420c00 copy regb ,contr 
+72d4 18007204 force 4 ,loopcnt 
+72d5 204072e1 call aes_ecb_dec_loop 
+72d6 18006d80 force 0x180 ,aes_ctrl 
+72d7 18006c80 force 0x80 ,aes_ctrl 
+72d8 204072bd call wait_aes 
+
+ecb_dec_generate:
+72d9 1800700c force regidx_result ,regext_index 
+72da 1a620a00 copy regc ,contw 
+72db 18007204 force 4 ,loopcnt 
+
+ecb_dec_generate_loop:
+72dc 1de27e00 copy regext ,pdata 
+72dd e7e20005 istore 4 ,contw 
+72de 1f00f001 increase 1 ,regext_index 
+72df c20072dc loop ecb_dec_generate_loop 
+72e0 20600000 rtn 
+
+aes_ecb_dec_loop:
+72e1 efe10006 ifetch 2 ,contr 
+72e2 e8410006 ifetcht 2 ,contr 
+72e3 18500400 lshift16 temp ,temp 
+72e4 9841de00 ior temp ,regext 
+72e5 1f00f001 increase 1 ,regext_index 
+72e6 c20072e1 loop aes_ecb_dec_loop 
+72e7 20600000 rtn 
+
+do_aes_cbc_dec:
+72e8 18007008 force regidx_xor ,regext_index 
+72e9 1a220c00 copy rega ,contr 
+72ea 18007204 force 4 ,loopcnt 
+72eb 204072e1 call aes_ecb_dec_loop 
+72ec 18007000 force regidx_data ,regext_index 
+72ed 1a420c00 copy regb ,contr 
+72ee 18007204 force 4 ,loopcnt 
+72ef 204072e1 call aes_ecb_dec_loop 
+72f0 18006d82 force 0x182 ,aes_ctrl 
+72f1 18006c82 force 0x82 ,aes_ctrl 
+72f2 204072bd call wait_aes 
+72f3 202072d9 branch ecb_dec_generate 
+
+function_s1:
+72f4 18007000 force regidx_data ,regext_index 
+72f5 6fe20158 fetch 4 ,mem_le_mrand 
+72f6 98005e00 iforce regext 
+72f7 1f00f001 increase 1 ,regext_index 
+72f8 efe20006 ifetch 4 ,contr 
+72f9 98005e00 iforce regext 
+72fa 1f00f001 increase 1 ,regext_index 
+72fb 6fe242ad fetch 4 ,mem_le_srand 
+72fc 98005e00 iforce regext 
+72fd 1f00f001 increase 1 ,regext_index 
+72fe efe20006 ifetch 4 ,contr 
+72ff 98005e00 iforce regext 
+7300 1f00f001 increase 1 ,regext_index 
+7301 2040735e call aes_clear 
+7302 1f00f1fc increase -4 ,regext_index 
+7303 6fe24301 fetch 4 ,mem_le_tk 
+7304 1fe25e00 copy pdata ,regext 
+7305 1f00f004 increase 4 ,regext_index 
+7306 18006c38 force 0x38 ,aes_ctrl 
+7307 18006c08 force 0x8 ,aes_ctrl 
+7308 202072bd branch wait_aes 
+
+function_c1:
+7309 47094022 bpatchx patch22_2 ,mem_patch22 
+730a 6fe342dd fetch 6 ,mem_le_lap 
+730b 684b0178 fetcht 6 ,mem_le_plap 
+730c 2034f30f branch function_c1_master ,master 
+730d 6fe30178 fetch 6 ,mem_le_plap 
+730e 684b42dd fetcht 6 ,mem_le_lap 
+
+function_c1_master:
+730f 18007008 force regidx_xor ,regext_index 
+7310 18425e00 copy temp ,regext 
+7311 1f00f001 increase 1 ,regext_index 
+7312 184f5e00 rshift32 temp ,regext 
+7313 1ff07e00 lshift16 pdata ,pdata 
+7314 9de1de00 ior regext ,regext 
+7315 1f00f001 increase 1 ,regext_index 
+7316 1fef5e00 rshift32 pdata ,regext 
+7317 1f00f001 increase 1 ,regext_index 
+7318 18005e00 force 0 ,regext 
+7319 18007e00 force 0 ,pdata 
+731a 6fe0c2cd fetch 1 ,mem_le_conn_peer_addr_type 
+731b 6848c390 fetcht 1 ,mem_le_adv_own_addr_type 
+731c 2434f31f nbranch function_c1_irat ,master 
+731d 6fe0c2d4 fetch 1 ,mem_le_conn_own_addr_type 
+731e 6848c2cd fetcht 1 ,mem_le_conn_peer_addr_type 
+
+function_c1_irat:
+731f 67e0c2bd store 1 ,mem_le_iat 
+7320 6048c2be storet 1 ,mem_le_rat 
+7321 18007000 force regidx_data ,regext_index 
+7322 da4042bd arg mem_le_iat ,regb 
+7323 18007204 force 4 ,loopcnt 
+
+function_c1_loop1:
+7324 efe20011 ifetch 4 ,rega 
+7325 e8420012 ifetcht 4 ,regb 
+7326 9842de00 ixor temp ,regext 
+7327 1f00f001 increase 1 ,regext_index 
+7328 1a20a204 increase 4 ,rega 
+7329 1a40a404 increase 4 ,regb 
+732a c2007324 loop function_c1_loop1 
+732b 2040735e call aes_clear 
+732c 1f00f1fc increase -4 ,regext_index 
+732d 6fe24301 fetch 4 ,mem_le_tk 
+732e 1fe25e00 copy pdata ,regext 
+732f 1f00f004 increase 4 ,regext_index 
+7330 18006c38 force 0x38 ,aes_ctrl 
+7331 18006c0c force 0xc ,aes_ctrl 
+7332 204072bd call wait_aes 
+7333 2040735d call aes_clear_data 
+7334 18006c3a force 0x3a ,aes_ctrl 
+7335 18006c08 force 0x8 ,aes_ctrl 
+7336 202072bd branch wait_aes 
+
+padding_data:
+7337 2f200600 compare 0 ,loopcnt ,3 
+7338 20608000 rtn true 
+7339 18c27e00 deposit contr 
+733a 9f208a00 iadd loopcnt ,contw 
+733b 18007e00 force 0 ,pdata 
+
+padding_loop:
+733c e7e08005 istore 1 ,contw 
+733d 1f20f201 increase 1 ,loopcnt 
+733e 2f200600 compare 0 ,loopcnt ,3 
+733f 20608000 rtn true 
+7340 2020733c branch padding_loop 
+
+aes_load_data:
+7341 18007000 force regidx_data ,regext_index 
+
+load_data_loop:
+7342 1f227e00 deposit loopcnt 
+7343 203a7346 branch load_data_padding ,blank 
+7344 efe20006 ifetch 4 ,contr 
+7345 1f20f3fc increase -4 ,loopcnt 
+
+load_data_padding:
+7346 98005e00 iforce regext 
+7347 1f00f001 increase 1 ,regext_index 
+7348 2f001e04 compare regidx_key ,regext_index ,0xf 
+7349 20608000 rtn true 
+734a 20207342 branch load_data_loop 
+
+aes_load_xor:
+734b 18007008 force regidx_xor ,regext_index 
+734c 20207350 branch load_regext 
+
+load_key:
+734d 18007004 force regidx_key ,regext_index 
+734e 20207350 branch load_regext 
+
+load_data128:
+734f 18007000 force regidx_data ,regext_index 
+
+load_regext:
+7350 18007204 force 4 ,loopcnt 
+
+load_regext_loop:
+7351 efe20006 ifetch 4 ,contr 
+7352 98005e00 iforce regext 
+7353 1f00f001 increase 1 ,regext_index 
+7354 c2007351 loop load_regext_loop 
+7355 20600000 rtn 
+
+load_sk:
+7356 d8c001a8 arg mem_le_sk ,contr 
+7357 2020734d branch load_key 
+
+clear_hidata:
+7358 18007204 force 4 ,loopcnt 
+7359 20207360 branch clear_data_rest 
+
+regext_clear:
+735a 18007000 force 0 ,regext_index 
+735b 18007210 force 16 ,loopcnt 
+735c 2020735f branch clear_loop 
+
+aes_clear_data:
+735d 18007000 force regidx_data ,regext_index 
+
+aes_clear:
+735e 18007204 force 4 ,loopcnt 
+
+clear_loop:
+735f 18005e00 force 0 ,regext 
+
+clear_data_rest:
+7360 1f00f001 increase 1 ,regext_index 
+7361 c200735f loop clear_loop 
+7362 20600000 rtn 
+
+store_aes_result:
+7363 1800700c force regidx_result ,regext_index 
+7364 18007204 force 4 ,loopcnt 
+
+send_aes_result_loop:
+7365 1de27e00 deposit regext 
+7366 e7e20005 istore 4 ,contw 
+7367 1f00f001 increase 1 ,regext_index 
+7368 c2007365 loop send_aes_result_loop 
+7369 20600000 rtn 
+
+store_enc_data:
+736a 1800700c force regidx_result ,regext_index 
+736b 1a620a00 copy regc ,contw 
+736c 1a40f201 add regb ,1 ,loopcnt 
+736d 1f267c0f sub loopcnt ,15 ,null 
+736e 20217370 branch store_enc_loop ,positive 
+736f 18007210 force 16 ,loopcnt 
+
+store_enc_loop:
+7370 1de27e00 deposit regext 
+7371 1f267c03 sub loopcnt ,3 ,null 
+7372 20217378 branch store_enc_byte ,positive 
+7373 e7e20005 istore 4 ,contw 
+7374 1f20f3fc increase -4 ,loopcnt 
+7375 20628000 rtn zero 
+7376 1f00f001 increase 1 ,regext_index 
+7377 20207370 branch store_enc_loop 
+
+store_enc_byte:
+7378 e7e08005 istore 1 ,contw 
+7379 1fecfe00 rshift8 pdata ,pdata 
+737a c2007378 loop store_enc_byte 
+737b 20600000 rtn 
+
+compare_res:
+737c 1800700c force regidx_result ,regext_index 
+737d 18007204 force 4 ,loopcnt 
+
+compare_res_loop:
+737e efe20006 ifetch 4 ,contr 
+737f 9de67c00 isub regext ,null 
+7380 24628000 nrtn zero 
+7381 1f00f001 increase 1 ,regext_index 
+7382 c200737e loop compare_res_loop 
+7383 20207dba branch enable_zero 
+
+enable_authrom:
+7384 6ff08050 fetch 1 ,core_clkoff 
+7385 793ffe00 set0 clock_off_auth_rom ,pdata 
+7386 67f08050 store 1 ,core_clkoff 
+7387 20600000 rtn 
+
+disable_authrom:
+7388 6ff08050 fetch 1 ,core_clkoff 
+7389 79207e00 set1 clock_off_auth_rom ,pdata 
+738a 67f08050 store 1 ,core_clkoff 
+738b 20600000 rtn 
+
+init_memp:
+738c d8a004af arg mem_p ,contw 
+738d 3803ffff setsect 0 ,0x3ffff 
+738e 3807ffff setsect 1 ,0x3ffff 
+738f 380bffff setsect 2 ,0x3ffff 
+7390 380ffbff setsect 3 ,0x3fbff 
+7391 e7e48005 istore 9 ,contw 
+7392 3803ffff setsect 0 ,0x3ffff 
+7393 3807ffff setsect 1 ,0x3ffff 
+7394 380bffff setsect 2 ,0x3ffff 
+7395 380fffff setsect 3 ,0x3ffff 
+7396 e7e48005 istore 9 ,contw 
+7397 3803ffff setsect 0 ,0x3ffff 
+7398 3807ffff setsect 1 ,0x3ffff 
+7399 380bcfff setsect 2 ,0x3cfff 
+739a 380fffff setsect 3 ,0x3ffff 
+739b e7e48005 istore 9 ,contw 
+739c 3803ffff setsect 0 ,0x3ffff 
+739d 3807ffff setsect 1 ,0x3ffff 
+739e 380bffef setsect 2 ,0x3ffef 
+739f 380fffff setsect 3 ,0x3ffff 
+73a0 e7e48005 istore 9 ,contw 
+73a1 3803ffff setsect 0 ,0x3ffff 
+73a2 3807ffff setsect 1 ,0x3ffff 
+73a3 380bffff setsect 2 ,0x3ffff 
+73a4 380fffff setsect 3 ,0x3ffff 
+73a5 e7e48005 istore 9 ,contw 
+73a6 3803ffff setsect 0 ,0x3ffff 
+73a7 38066c7f setsect 1 ,0x26c7f 
+73a8 3808146b setsect 2 ,0x146b 
+73a9 380f7bb3 setsect 3 ,0x37bb3 
+73aa e7e48005 istore 9 ,contw 
+73ab 3801feb8 setsect 0 ,0x1feb8 
+73ac 38050c12 setsect 1 ,0x10c12 
+73ad 380ab722 setsect 2 ,0x2b722 
+73ae 380e9fa6 setsect 3 ,0x29fa6 
+73af e7e48005 istore 9 ,contw 
+73b0 3800e70f setsect 0 ,0xe70f 
+73b1 38056720 setsect 1 ,0x16720 
+73b2 3808519e setsect 2 ,0x519e 
+73b3 380d9084 setsect 3 ,0x19084 
+73b4 e7e48005 istore 9 ,contw 
+73b5 38031012 setsect 0 ,0x31012 
+73b6 380760bf setsect 1 ,0x360bf 
+73b7 380bf0af setsect 2 ,0x3f0af 
+73b8 380c03d3 setsect 3 ,0x3d3 
+73b9 e7e48005 istore 9 ,contw 
+73ba 3803a188 setsect 0 ,0x3a188 
+73bb 38043ad0 setsect 1 ,0x3ad0 
+73bc 380bcbf2 setsect 2 ,0x3cbf2 
+73bd 380e43d9 setsect 3 ,0x243d9 
+73be e7e48005 istore 9 ,contw 
+73bf 3802b030 setsect 0 ,0x2b030 
+73c0 38076a03 setsect 1 ,0x36a03 
+73c1 38091188 setsect 2 ,0x11188 
+73c2 380de520 setsect 3 ,0x1e520 
+73c3 e7e48005 istore 9 ,contw 
+73c4 3803a11e setsect 0 ,0x3a11e 
+73c5 3804fe5d setsect 1 ,0xfe5d 
+73c6 3808dd57 setsect 2 ,0xdd57 
+73c7 380dac93 setsect 3 ,0x1ac93 
+73c8 e7e48005 istore 9 ,contw 
+73c9 380011ed setsect 0 ,0x11ed 
+73ca 380618c4 setsect 1 ,0x218c4 
+73cb 38088da7 setsect 2 ,0x8da7 
+73cc 380e57ff setsect 3 ,0x257ff 
+73cd e7e48005 istore 9 ,contw 
+73ce 3803192b setsect 0 ,0x3192b 
+73cf 38074641 setsect 1 ,0x34641 
+73d0 3809be0c setsect 2 ,0x1be0c 
+73d1 380f66ad setsect 3 ,0x366ad 
+73d2 e7e48005 istore 9 ,contw 
+73d3 38001f83 setsect 0 ,0x1f83 
+73d4 38055a23 setsect 1 ,0x15a23 
+73d5 380bf9b0 setsect 2 ,0x3f9b0 
+73d6 380c3949 setsect 3 ,0x3949 
+73d7 e7e48005 istore 9 ,contw 
+73d8 38013a51 setsect 0 ,0x13a51 
+73d9 380553fd setsect 1 ,0x153fd 
+73da 380b372a setsect 2 ,0x3372a 
+73db 380cf1bb setsect 3 ,0xf1bb 
+73dc e7e48005 istore 9 ,contw 
+73dd 3803ae85 setsect 0 ,0x3ae85 
+73de 3805eed9 setsect 1 ,0x1eed9 
+73df 38089e66 setsect 2 ,0x9e66 
+73e0 380c01a8 setsect 3 ,0x1a8 
+73e1 e7e40005 istore 8 ,contw 
+73e2 20600000 rtn 
+
+init_memp_256:
+73e3 d8a00547 arg mem_p_256 ,contw 
+73e4 3803ffff setsect 0 ,0x3ffff 
+73e5 3807ffff setsect 1 ,0x3ffff 
+73e6 380bffff setsect 2 ,0x3ffff 
+73e7 380fffff setsect 3 ,0x3ffff 
+73e8 e7e48005 istore 9 ,contw 
+73e9 3803ffff setsect 0 ,0x3ffff 
+73ea 3804003f setsect 1 ,0x3f 
+73eb 38080000 setsect 2 ,0x0 
+73ec 380c0000 setsect 3 ,0x0 
+73ed e7e48005 istore 9 ,contw 
+73ee 38000000 setsect 0 ,0x0 
+73ef 38040000 setsect 1 ,0x0 
+73f0 38081000 setsect 2 ,0x1000 
+73f1 380c0000 setsect 3 ,0x0 
+73f2 e7e48005 istore 9 ,contw 
+73f3 3803ff00 setsect 0 ,0x3ff00 
+73f4 3807ffff setsect 1 ,0x3ffff 
+73f5 380bffcf setsect 2 ,0x3ffcf 
+73f6 380fffff setsect 3 ,0x3ffff 
+73f7 e7e48005 istore 9 ,contw 
+73f8 3803ffff setsect 0 ,0x3ffff 
+73f9 3807ffff setsect 1 ,0x3ffff 
+73fa 380bffff setsect 2 ,0x3ffff 
+73fb 380c03ff setsect 3 ,0x3ff 
+73fc e7e48005 istore 9 ,contw 
+73fd 38000000 setsect 0 ,0x0 
+73fe 38040000 setsect 1 ,0x0 
+73ff 38080000 setsect 2 ,0x0 
+7400 380c0000 setsect 3 ,0x0 
+7401 e7e48005 istore 9 ,contw 
+7402 38010000 setsect 0 ,0x10000 
+7403 38040000 setsect 1 ,0x0 
+7404 380bf000 setsect 2 ,0x3f000 
+7405 380fffff setsect 3 ,0x3ffff 
+7406 e7e48005 istore 9 ,contw 
+7407 380296ff setsect 0 ,0x296ff 
+7408 38062630 setsect 1 ,0x22630 
+7409 380b945d setsect 2 ,0x3945d 
+740a 380fd284 setsect 3 ,0x3d284 
+740b e7e48005 istore 9 ,contw 
+740c 380333a0 setsect 0 ,0x333a0 
+740d 38044b7a setsect 1 ,0x4b7a 
+740e 380837d8 setsect 2 ,0x37d8 
+740f 380fc9dc setsect 3 ,0x3c9dc 
+7410 e7e48005 istore 9 ,contw 
+7411 3803a440 setsect 0 ,0x3a440 
+7412 3805b958 setsect 1 ,0x1b958 
+7413 380b8bce setsect 2 ,0x38bce 
+7414 380d091f setsect 3 ,0x1091f 
+7415 e7e48005 istore 9 ,contw 
+7416 3802e12c setsect 0 ,0x2e12c 
+7417 3805f47c setsect 1 ,0x1f47c 
+7418 380b56b1 setsect 2 ,0x356b1 
+7419 380efd47 setsect 3 ,0x2fd47 
+741a e7e48005 istore 9 ,contw 
+741b 38006837 setsect 0 ,0x6837 
+741c 3806ed90 setsect 1 ,0x2ed90 
+741d 3809ecec setsect 2 ,0x1ecec 
+741e 380dacc5 setsect 3 ,0x1acc5 
+741f e7e48005 istore 9 ,contw 
+7420 38023357 setsect 0 ,0x23357 
+7421 38058af3 setsect 1 ,0x18af3 
+7422 3808f9e1 setsect 2 ,0xf9e1 
+7423 380d29f0 setsect 3 ,0x129f0 
+7424 e7e48005 istore 9 ,contw 
+7425 3802e7eb setsect 0 ,0x2e7eb 
+7426 3807e6e3 setsect 1 ,0x3e6e3 
+7427 380be1a7 setsect 2 ,0x3e1a7 
+7428 380d0b8b setsect 3 ,0x10b8b 
+7429 e7e48005 istore 9 ,contw 
+742a 38024fe3 setsect 0 ,0x24fe3 
+742b 380420ef setsect 1 ,0x20ef 
+742c 3809b5a6 setsect 2 ,0x1b5a6 
+742d 380cdc2f setsect 3 ,0xdc2f 
+742e e7e48005 istore 9 ,contw 
+742f 38013860 setsect 0 ,0x13860 
+7430 3806bd69 setsect 1 ,0x2bd69 
+7431 3808391a setsect 2 ,0x391a 
+7432 380db222 setsect 3 ,0x1b222 
+7433 e7e48005 istore 9 ,contw 
+7434 20600000 rtn 
+
+publickey_init:
+7435 202074ea branch sp_initialize_256 
+
+sp_calc_sequence_256_check:
+7436 4709c022 bpatchx patch22_3 ,mem_patch22 
+7437 6fe0c483 fetch 1 ,mem_secure_connections_enable 
+7438 207a0000 rtn blank 
+7439 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
+743a c1018000 rtneq sp_key_valid_256 
+743b 6fe0c484 fetch 1 ,mem_sc_calc 
+743c c00074ea beq sp_calc_standby ,sp_initialize_256 
+743d 20600000 rtn 
+
+stop_publickey_calc_256:
+743e 70448400 jam sp_calc_standby ,mem_sc_calc 
+743f 20600000 rtn 
+
+sp_clear_flags:
+7440 470a4022 bpatchx patch22_4 ,mem_patch22 
+7441 580005dc setarg mem_sp_state_end 
+7442 d8a005d7 arg mem_sp_state_start ,contw 
+7443 98a67200 isub contw ,loopcnt 
+7444 20407ca3 call clear_mem 
+7445 580044e8 setarg mem_sp_state_xmem_end 
+7446 d8a044e6 arg mem_sp_state_xmem ,contw 
+7447 98a67200 isub contw ,loopcnt 
+7448 20207ca3 branch clear_mem 
+
+sp_calc_check_publickey_256:
+7449 20407464 call sp_calc_b256 
+744a da2005fc arg mem_le_pubkey_remote_y_256 ,rega 
+744b d8a0048f arg mem_t7_256 ,contw 
+744c 2040770a call bn_sqrmod_256 
+744d da2005dc arg mem_le_pubkey_remote_x_256 ,rega 
+744e d8a0044f arg mem_t2_256 ,contw 
+744f 2040770a call bn_sqrmod_256 
+7450 da20044f arg mem_t2_256 ,rega 
+7451 da4005dc arg mem_le_pubkey_remote_x_256 ,regb 
+7452 d8a0044f arg mem_t2_256 ,contw 
+7453 20407672 call bn_mulmod_256 
+7454 da200567 arg mem_a_256 ,rega 
+7455 da4005dc arg mem_le_pubkey_remote_x_256 ,regb 
+7456 d8a0046f arg mem_t3_256 ,contw 
+7457 20407672 call bn_mulmod_256 
+7458 da20046f arg mem_t3_256 ,rega 
+7459 da40044f arg mem_t2_256 ,regb 
+745a d8a0044f arg mem_t2_256 ,contw 
+745b 2040770e call bn_addmod_256 
+745c da20042f arg mem_t0_256 ,rega 
+745d da40044f arg mem_t2_256 ,regb 
+745e d8a0042f arg mem_t0_256 ,contw 
+745f 2040770e call bn_addmod_256 
+7460 df200020 arg 32 ,loopcnt 
+7461 da20048f arg mem_t7_256 ,rega 
+7462 da40042f arg mem_t0_256 ,regb 
+7463 20207d66 branch string_compare 
+
+sp_calc_b256:
+7464 da2005a7 arg mem_gy_256 ,rega 
+7465 d8a0042f arg mem_t0_256 ,contw 
+7466 2040770a call bn_sqrmod_256 
+7467 da200587 arg mem_gx_256 ,rega 
+7468 d8a0044f arg mem_t2_256 ,contw 
+7469 2040770a call bn_sqrmod_256 
+746a da20044f arg mem_t2_256 ,rega 
+746b da400587 arg mem_gx_256 ,regb 
+746c d8a0044f arg mem_t2_256 ,contw 
+746d 20407672 call bn_mulmod_256 
+746e da200567 arg mem_a_256 ,rega 
+746f da400587 arg mem_gx_256 ,regb 
+7470 d8a0046f arg mem_t3_256 ,contw 
+7471 20407672 call bn_mulmod_256 
+7472 da20046f arg mem_t3_256 ,rega 
+7473 da40044f arg mem_t2_256 ,regb 
+7474 d8a0044f arg mem_t2_256 ,contw 
+7475 2040770e call bn_addmod_256 
+7476 da20042f arg mem_t0_256 ,rega 
+7477 da40044f arg mem_t2_256 ,regb 
+7478 d8a0042f arg mem_t0_256 ,contw 
+7479 20207727 branch bn_submod_256 
+
+random_generator:
+747a 18e08fff increase -1 ,queue 
+747b 24610000 nrtn positive 
+747c 180a7e00 random pdata 
+747d e7e10005 istore 2 ,contw 
+747e 2020747a branch random_generator 
+
+compare4:
+747f 18e08fff increase -1 ,queue 
+7480 2421748a nbranch compare4_success ,positive 
+7481 efe20011 ifetch 4 ,rega 
+7482 1fe20400 copy pdata ,temp 
+7483 efe20012 ifetch 4 ,regb 
+7484 9842fe00 iflip temp ,pdata 
+7485 2422f489 nbranch compare4_failed ,zero 
+7486 1a20a204 increase 4 ,rega 
+7487 1a40a404 increase 4 ,regb 
+7488 2020747f branch compare4 
+
+compare4_failed:
+7489 20207dc6 branch disable_true 
+
+compare4_success:
+748a 20207dc8 branch enable_true 
+
+bn_testbit:
+748b 1fe10e07 and pdata ,7 ,queue 
+748c 1fe97e00 rshift3 pdata ,pdata 
+748d 98c08c00 iadd contr ,contr 
+748e efe08006 ifetch 1 ,contr 
+748f afec0000 qisolate0 pdata 
+7490 20600000 rtn 
+
+bn_eq_zero:
+7491 efe40006 ifetch 8 ,contr 
+7492 247a0000 nrtn blank 
+7493 efe40006 ifetch 8 ,contr 
+7494 247a0000 nrtn blank 
+7495 efe40006 ifetch 8 ,contr 
+7496 20600000 rtn 
+
+bn_eq_0:
+7497 efe20011 ifetch 4 ,rega 
+7498 98000400 iforce temp 
+7499 efe20012 ifetch 4 ,regb 
+749a 98467c00 isub temp ,null 
+749b 24628000 nrtn zero 
+749c 1a20a204 increase 4 ,rega 
+749d 1a40a404 increase 4 ,regb 
+749e c2007497 loop bn_eq_0 
+749f 20600000 rtn 
+
+bn_bigeq:
+74a0 18007206 force 6 ,loopcnt 
+74a1 1a20a214 increase 20 ,rega 
+74a2 1a40a414 increase 20 ,regb 
+
+bn_bigeq_0:
+74a3 efe20012 ifetch 4 ,regb 
+74a4 98000400 iforce temp 
+74a5 efe20011 ifetch 4 ,rega 
+74a6 98467e00 isub temp ,pdata 
+74a7 24610000 nrtn positive 
+74a8 247a0000 nrtn blank 
+74a9 1a20a3fc increase -4 ,rega 
+74aa 1a40a5fc increase -4 ,regb 
+74ab c20074a3 loop bn_bigeq_0 
+74ac 20600000 rtn 
+
+bn_add:
+74ad 18007206 force 6 ,loopcnt 
+74ae 18002600 force 0 ,regc 
+
+bn_add_0:
+74af efe20011 ifetch 4 ,rega 
+74b0 98000400 iforce temp 
+74b1 efe20012 ifetch 4 ,regb 
+74b2 9840fe00 iadd temp ,pdata 
+74b3 9a60fe00 iadd regc ,pdata 
+74b4 e7e20005 istore 4 ,contw 
+74b5 2feffe20 isolate1 32 ,pdata 
+74b6 7920a600 setflag true ,0 ,regc 
+74b7 1a20a204 increase 4 ,rega 
+74b8 1a40a404 increase 4 ,regb 
+74b9 c20074af loop bn_add_0 
+74ba 20600000 rtn 
+
+bn_sub:
+74bb 18007206 force 6 ,loopcnt 
+74bc 18002600 force 0 ,regc 
+
+bn_sub_0:
+74bd efe20012 ifetch 4 ,regb 
+74be 98000400 iforce temp 
+74bf efe20011 ifetch 4 ,rega 
+74c0 98467e00 isub temp ,pdata 
+74c1 9a667e00 isub regc ,pdata 
+74c2 e7e20005 istore 4 ,contw 
+74c3 2feffe20 isolate1 32 ,pdata 
+74c4 7920a600 setflag true ,0 ,regc 
+74c5 1a20a204 increase 4 ,rega 
+74c6 1a40a404 increase 4 ,regb 
+74c7 c20074bd loop bn_sub_0 
+74c8 20600000 rtn 
+
+bn_rshift6:
+74c9 18007206 force 6 ,loopcnt 
+74ca 1a20a214 increase 20 ,rega 
+
+bn_rshift:
+74cb 18002600 force 0 ,regc 
+
+bn_rshift_0:
+74cc efe20011 ifetch 4 ,rega 
+74cd 2feffe00 isolate1 0 ,pdata 
+74ce 7920a601 setflag true ,1 ,regc 
+74cf 1fe37e00 rshift pdata ,pdata 
+74d0 2a6ffe00 isolate1 0 ,regc 
+74d1 7920fe1f setflag true ,31 ,pdata 
+74d2 e7e20011 istore 4 ,rega 
+74d3 1a20a3fc increase -4 ,rega 
+74d4 1a632600 rshift regc ,regc 
+74d5 c20074cc loop bn_rshift_0 
+74d6 20600000 rtn 
+
+bn_lshift:
+74d7 18007206 force 6 ,loopcnt 
+74d8 18002600 force 0 ,regc 
+
+bn_lshift_0:
+74d9 efe20011 ifetch 4 ,rega 
+74da 2feffe1f isolate1 31 ,pdata 
+74db 7920a601 setflag true ,1 ,regc 
+74dc 1fe3fe00 lshift pdata ,pdata 
+74dd 2a6ffe00 isolate1 0 ,regc 
+74de 7920fe00 setflag true ,0 ,pdata 
+74df e7e20011 istore 4 ,rega 
+74e0 1a20a204 increase 4 ,rega 
+74e1 1a632600 rshift regc ,regc 
+74e2 c20074d9 loop bn_lshift_0 
+74e3 20600000 rtn 
+
+bn_load:
+74e4 18007206 force 6 ,loopcnt 
+
+bn_load_0:
+74e5 efe20006 ifetch 4 ,contr 
+74e6 98005e00 iforce regext 
+74e7 1f00f001 increase 1 ,regext_index 
+74e8 c20074e5 loop bn_load_0 
+74e9 20600000 rtn 
+
+sp_initialize_256:
+74ea 470ac022 bpatchx patch22_5 ,mem_patch22 
+74eb 6fe0c483 fetch 1 ,mem_secure_connections_enable 
+74ec 243a750b nbranch sp_pubkey_calc_256 ,blank 
+
+sc_reset:
+74ed 70448400 jam sp_calc_standby ,mem_sc_calc 
+74ee 70448500 jam sp_key_invalid ,mem_sc_local_key_invalid 
+74ef 20600000 rtn 
+
+sp_wait_pubkey_calc_256_done:
+74f0 6fe0c483 fetch 1 ,mem_secure_connections_enable 
+74f1 207a0000 rtn blank 
+74f2 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
+74f3 c1018000 rtneq sp_key_valid_256 
+74f4 20407540 call sp_calc_sequence_256 
+74f5 202074f0 branch sp_wait_pubkey_calc_256_done 
+
+sp_debug_private_256:
+74f6 d8a04486 arg mem_sc_private_key_256 ,contw 
+74f7 38001abd setsect 0 ,0x1abd 
+74f8 3805b34f setsect 1 ,0x1b34f 
+74f9 38099b8a setsect 2 ,0x19b8a 
+74fa 380e6562 setsect 3 ,0x26562 
+74fb e7e48005 istore 9 ,contw 
+74fc 380340b7 setsect 0 ,0x340b7 
+74fd 38041efa setsect 1 ,0x1efa 
+74fe 3808aff6 setsect 2 ,0xaff6 
+74ff 380cfd41 setsect 3 ,0xfd41 
+7500 e7e48005 istore 9 ,contw 
+7501 3803d210 setsect 0 ,0x3d210 
+7502 38066cf8 setsect 1 ,0x26cf8 
+7503 380b874c setsect 2 ,0x3874c 
+7504 380f157c setsect 3 ,0x3157c 
+7505 e7e48005 istore 9 ,contw 
+7506 3802d4a3 setsect 0 ,0x2d4a3 
+7507 3807d27d setsect 1 ,0x3d27d 
+7508 38080003 setsect 2 ,0x3 
+7509 e7e28005 istore 5 ,contw 
+750a 20600000 rtn 
+
+sp_pubkey_calc_256:
+750b 6fe0c485 fetch 1 ,mem_sc_local_key_invalid 
+750c c1800000 rtnne sp_key_invalid 
+750d 6fe0c484 fetch 1 ,mem_sc_calc 
+750e c1800000 rtnne sp_calc_standby 
+750f 204073e3 call init_memp_256 
+7510 d8a04486 arg mem_sc_private_key_256 ,contw 
+7511 18000e0f force 15 ,queue 
+7512 2040747a call random_generator 
+7513 180a7e00 random pdata 
+7514 1fe37e00 rshift pdata ,pdata 
+7515 e7e10005 istore 2 ,contw 
+7516 6fe0c482 fetch 1 ,mem_sp_debug_mode 
+7517 245a74f6 ncall sp_debug_private_256 ,blank 
+7518 d8a0038f arg mem_k_256 ,contw 
+7519 d8c04486 arg mem_sc_private_key_256 ,contr 
+751a 20407c8f call memcpy32 
+751b d8a0026f arg mem_ax_256 ,contw 
+751c d8c00587 arg mem_gx_256 ,contr 
+751d 20407c83 call memcpy64 
+751e d8a002af arg mem_az_256 ,contw 
+751f 20407c9f call clear_mem_256 
+7520 7002af01 jam 1 ,mem_az_256 
+7521 20407558 call eckp_calc_init_256 
+7522 70448403 jam sp_calc_pubkey_256 ,mem_sc_calc 
+7523 20600000 rtn 
+
+sp_pubkey_generated_256:
+7524 d8a044a6 arg mem_sc_pubkey_local_x_256 ,contw 
+7525 d8c002cf arg mem_bx_256 ,contr 
+7526 20407c83 call memcpy64 
+7527 70448503 jam sp_key_valid_256 ,mem_sc_local_key_invalid 
+7528 70448400 jam sp_calc_standby ,mem_sc_calc 
+7529 20600000 rtn 
+
+sp_dhkey_calc_256:
+752a 6fe085d7 fetch 1 ,mem_sp_dhkey_invalid 
+752b c1800000 rtnne sp_key_invalid 
+752c 6fe0c484 fetch 1 ,mem_sc_calc 
+752d c1800000 rtnne sp_calc_standby 
+752e d8a0038f arg mem_k_256 ,contw 
+752f d8c04486 arg mem_sc_private_key_256 ,contr 
+7530 20407c8f call memcpy32 
+7531 d8a0026f arg mem_ax_256 ,contw 
+7532 d8c005dc arg mem_le_pubkey_remote_x_256 ,contr 
+7533 20407c83 call memcpy64 
+7534 d8a002af arg mem_az_256 ,contw 
+7535 20407c9f call clear_mem_256 
+7536 7002af01 jam 1 ,mem_az_256 
+7537 20407558 call eckp_calc_init_256 
+7538 70448404 jam sp_calc_dhkey_256 ,mem_sc_calc 
+7539 20600000 rtn 
+
+sp_dhkey_generated_256:
+753a d8a0061c arg mem_le_dhkey_256 ,contw 
+753b d8c002cf arg mem_bx_256 ,contr 
+753c 20407c8f call memcpy32 
+753d 7005d703 jam sp_key_valid_256 ,mem_sp_dhkey_invalid 
+753e 70448400 jam sp_calc_standby ,mem_sc_calc 
+753f 20600000 rtn 
+
+sp_calc_sequence_256:
+7540 6fe0c483 fetch 1 ,mem_secure_connections_enable 
+7541 207a0000 rtn blank 
+7542 6fe0c484 fetch 1 ,mem_sc_calc 
+7543 207a0000 rtn blank 
+7544 1fe0fe80 increase 0x80 ,pdata 
+7545 67e0c484 store 1 ,mem_sc_calc 
+7546 c3838000 rtnbit1 7 
+7547 6fe1020c fetch 2 ,mem_ec_loopc 
+7548 203a754a branch sp_calc_sequence_done_256 ,blank 
+7549 20207550 branch eckp_calc_256 
+
+sp_calc_sequence_done_256:
+754a 470b4022 bpatchx patch22_6 ,mem_patch22 
+754b 20407565 call ecunmapz_256 
+754c 6fe0c484 fetch 1 ,mem_sc_calc 
+754d c001f524 beq sp_calc_pubkey_256 ,sp_pubkey_generated_256 
+754e c002753a beq sp_calc_dhkey_256 ,sp_dhkey_generated_256 
+754f 20600000 rtn 
+
+eckp_calc_256:
+7550 20407577 call ecdbl_256 
+7551 6fe1020c fetch 2 ,mem_ec_loopc 
+7552 1fe0ffff increase -1 ,pdata 
+7553 67e1020c store 2 ,mem_ec_loopc 
+7554 d8c0038f arg mem_k_256 ,contr 
+7555 2040748b call bn_testbit 
+7556 20608000 rtn true 
+7557 202075c8 branch ecadd_256 
+
+eckp_calc_init_256:
+7558 470bc022 bpatchx patch22_7 ,mem_patch22 
+7559 58000100 setarg 256 
+755a 67e1020c store 2 ,mem_ec_loopc 
+
+eckp_calc_init_256_1:
+755b 6fe1020c fetch 2 ,mem_ec_loopc 
+755c 207a0000 rtn blank 
+755d 1fe0ffff increase -1 ,pdata 
+755e 67e1020c store 2 ,mem_ec_loopc 
+755f d8c0038f arg mem_k_256 ,contr 
+7560 2040748b call bn_testbit 
+7561 2020f55b branch eckp_calc_init_256_1 ,true 
+7562 d8c0026f arg mem_ax_256 ,contr 
+7563 d8a0032f arg mem_cx_256 ,contw 
+7564 20207c82 branch memcpy96 
+
+ecunmapz_256:
+7565 da20036f arg mem_cz_256 ,rega 
+7566 d8a0046f arg mem_t3_256 ,contw 
+7567 20407634 call bn_invmod_256 
+7568 da20046f arg mem_t3_256 ,rega 
+7569 d8a0040f arg mem_t1_256 ,contw 
+756a 2040770a call bn_sqrmod_256 
+756b da20032f arg mem_cx_256 ,rega 
+756c da40040f arg mem_t1_256 ,regb 
+756d d8a002cf arg mem_bx_256 ,contw 
+756e 20407672 call bn_mulmod_256 
+756f da20046f arg mem_t3_256 ,rega 
+7570 da40040f arg mem_t1_256 ,regb 
+7571 d8a0044f arg mem_t2_256 ,contw 
+7572 20407672 call bn_mulmod_256 
+7573 da20034f arg mem_cy_256 ,rega 
+7574 da40044f arg mem_t2_256 ,regb 
+7575 d8a002ef arg mem_by_256 ,contw 
+7576 20207672 branch bn_mulmod_256 
+
+ecdbl_256:
+7577 da20036f arg mem_cz_256 ,rega 
+7578 d8a0044f arg mem_t2_256 ,contw 
+7579 2040770a call bn_sqrmod_256 
+757a da20044f arg mem_t2_256 ,rega 
+757b d8a0046f arg mem_t3_256 ,contw 
+757c 2040770a call bn_sqrmod_256 
+757d da200567 arg mem_a_256 ,rega 
+757e da40046f arg mem_t3_256 ,regb 
+757f d8a0046f arg mem_t3_256 ,contw 
+7580 20407672 call bn_mulmod_256 
+7581 da20032f arg mem_cx_256 ,rega 
+7582 d8a0044f arg mem_t2_256 ,contw 
+7583 2040770a call bn_sqrmod_256 
+7584 d8c0044f arg mem_t2_256 ,contr 
+7585 d8a0040f arg mem_t1_256 ,contw 
+7586 20407c8f call memcpy32 
+7587 da20040f arg mem_t1_256 ,rega 
+7588 20407711 call bn_lshiftmod_256 
+7589 da20044f arg mem_t2_256 ,rega 
+758a da40040f arg mem_t1_256 ,regb 
+758b d8a0044f arg mem_t2_256 ,contw 
+758c 2040770e call bn_addmod_256 
+758d da20044f arg mem_t2_256 ,rega 
+758e da40046f arg mem_t3_256 ,regb 
+758f d8a0044f arg mem_t2_256 ,contw 
+7590 2040770e call bn_addmod_256 
+7591 d8c0032f arg mem_cx_256 ,contr 
+7592 d8a0040f arg mem_t1_256 ,contw 
+7593 20407c8f call memcpy32 
+7594 da20034f arg mem_cy_256 ,rega 
+7595 d8a0046f arg mem_t3_256 ,contw 
+7596 2040770a call bn_sqrmod_256 
+7597 da20040f arg mem_t1_256 ,rega 
+7598 20407711 call bn_lshiftmod_256 
+7599 da20040f arg mem_t1_256 ,rega 
+759a 20407711 call bn_lshiftmod_256 
+759b da20040f arg mem_t1_256 ,rega 
+759c da40046f arg mem_t3_256 ,regb 
+759d d8a0040f arg mem_t1_256 ,contw 
+759e 20407672 call bn_mulmod_256 
+759f da20046f arg mem_t3_256 ,rega 
+75a0 d8a0042f arg mem_t0_256 ,contw 
+75a1 2040770a call bn_sqrmod_256 
+75a2 da20042f arg mem_t0_256 ,rega 
+75a3 20407711 call bn_lshiftmod_256 
+75a4 da20042f arg mem_t0_256 ,rega 
+75a5 20407711 call bn_lshiftmod_256 
+75a6 da20042f arg mem_t0_256 ,rega 
+75a7 20407711 call bn_lshiftmod_256 
+75a8 d8c0034f arg mem_cy_256 ,contr 
+75a9 d8a0046f arg mem_t3_256 ,contw 
+75aa 20407c8f call memcpy32 
+75ab da20046f arg mem_t3_256 ,rega 
+75ac 20407711 call bn_lshiftmod_256 
+75ad da20046f arg mem_t3_256 ,rega 
+75ae da40036f arg mem_cz_256 ,regb 
+75af d8a0036f arg mem_cz_256 ,contw 
+75b0 20407672 call bn_mulmod_256 
+75b1 da20044f arg mem_t2_256 ,rega 
+75b2 d8a0046f arg mem_t3_256 ,contw 
+75b3 2040770a call bn_sqrmod_256 
+75b4 da20046f arg mem_t3_256 ,rega 
+75b5 da40040f arg mem_t1_256 ,regb 
+75b6 d8a0046f arg mem_t3_256 ,contw 
+75b7 20407727 call bn_submod_256 
+75b8 da20046f arg mem_t3_256 ,rega 
+75b9 da40040f arg mem_t1_256 ,regb 
+75ba d8a0032f arg mem_cx_256 ,contw 
+75bb 20407727 call bn_submod_256 
+75bc da20040f arg mem_t1_256 ,rega 
+75bd da40032f arg mem_cx_256 ,regb 
+75be d8a0046f arg mem_t3_256 ,contw 
+75bf 20407727 call bn_submod_256 
+75c0 da20046f arg mem_t3_256 ,rega 
+75c1 da40044f arg mem_t2_256 ,regb 
+75c2 d8a0046f arg mem_t3_256 ,contw 
+75c3 20407672 call bn_mulmod_256 
+75c4 da20046f arg mem_t3_256 ,rega 
+75c5 da40042f arg mem_t0_256 ,regb 
+75c6 d8a0034f arg mem_cy_256 ,contw 
+75c7 20207727 branch bn_submod_256 
+
+ecadd_256:
+75c8 da2002af arg mem_az_256 ,rega 
+75c9 d8a0048f arg mem_t7_256 ,contw 
+75ca 2040770a call bn_sqrmod_256 
+75cb da20032f arg mem_cx_256 ,rega 
+75cc da40048f arg mem_t7_256 ,regb 
+75cd d8a0042f arg mem_t0_256 ,contw 
+75ce 20407672 call bn_mulmod_256 
+75cf da2002af arg mem_az_256 ,rega 
+75d0 da40048f arg mem_t7_256 ,regb 
+75d1 d8a0048f arg mem_t7_256 ,contw 
+75d2 20407672 call bn_mulmod_256 
+75d3 da20034f arg mem_cy_256 ,rega 
+75d4 da40048f arg mem_t7_256 ,regb 
+75d5 d8a0040f arg mem_t1_256 ,contw 
+75d6 20407672 call bn_mulmod_256 
+75d7 da20036f arg mem_cz_256 ,rega 
+75d8 d8a0048f arg mem_t7_256 ,contw 
+75d9 2040770a call bn_sqrmod_256 
+75da da20026f arg mem_ax_256 ,rega 
+75db da40048f arg mem_t7_256 ,regb 
+75dc d8a0044f arg mem_t2_256 ,contw 
+75dd 20407672 call bn_mulmod_256 
+75de da20036f arg mem_cz_256 ,rega 
+75df da40048f arg mem_t7_256 ,regb 
+75e0 d8a0048f arg mem_t7_256 ,contw 
+75e1 20407672 call bn_mulmod_256 
+75e2 da20028f arg mem_ay_256 ,rega 
+75e3 da40048f arg mem_t7_256 ,regb 
+75e4 d8a0046f arg mem_t3_256 ,contw 
+75e5 20407672 call bn_mulmod_256 
+75e6 da40042f arg mem_t0_256 ,regb 
+75e7 da20044f arg mem_t2_256 ,rega 
+75e8 d8a0048f arg mem_t7_256 ,contw 
+75e9 20407727 call bn_submod_256 
+75ea da20042f arg mem_t0_256 ,rega 
+75eb da40044f arg mem_t2_256 ,regb 
+75ec d8a0042f arg mem_t0_256 ,contw 
+75ed 2040770e call bn_addmod_256 
+75ee da40040f arg mem_t1_256 ,regb 
+75ef da20046f arg mem_t3_256 ,rega 
+75f0 d8a0044f arg mem_t2_256 ,contw 
+75f1 20407727 call bn_submod_256 
+75f2 da20040f arg mem_t1_256 ,rega 
+75f3 da40046f arg mem_t3_256 ,regb 
+75f4 d8a0040f arg mem_t1_256 ,contw 
+75f5 2040770e call bn_addmod_256 
+75f6 da20040f arg mem_t1_256 ,rega 
+75f7 da40048f arg mem_t7_256 ,regb 
+75f8 d8a0040f arg mem_t1_256 ,contw 
+75f9 20407672 call bn_mulmod_256 
+75fa da20036f arg mem_cz_256 ,rega 
+75fb da4002af arg mem_az_256 ,regb 
+75fc d8a0046f arg mem_t3_256 ,contw 
+75fd 20407672 call bn_mulmod_256 
+75fe da20046f arg mem_t3_256 ,rega 
+75ff da40048f arg mem_t7_256 ,regb 
+7600 d8a0036f arg mem_cz_256 ,contw 
+7601 20407672 call bn_mulmod_256 
+7602 da20048f arg mem_t7_256 ,rega 
+7603 d8a0048f arg mem_t7_256 ,contw 
+7604 2040770a call bn_sqrmod_256 
+7605 da20048f arg mem_t7_256 ,rega 
+7606 da40042f arg mem_t0_256 ,regb 
+7607 d8a0046f arg mem_t3_256 ,contw 
+7608 20407672 call bn_mulmod_256 
+7609 da20048f arg mem_t7_256 ,rega 
+760a da40040f arg mem_t1_256 ,regb 
+760b d8a0040f arg mem_t1_256 ,contw 
+760c 20407672 call bn_mulmod_256 
+760d da20044f arg mem_t2_256 ,rega 
+760e d8a0032f arg mem_cx_256 ,contw 
+760f 2040770a call bn_sqrmod_256 
+7610 da20032f arg mem_cx_256 ,rega 
+7611 da40046f arg mem_t3_256 ,regb 
+7612 d8a0032f arg mem_cx_256 ,contw 
+7613 20407727 call bn_submod_256 
+7614 d8c0032f arg mem_cx_256 ,contr 
+7615 d8a0048f arg mem_t7_256 ,contw 
+7616 20407c8f call memcpy32 
+7617 da20048f arg mem_t7_256 ,rega 
+7618 20407711 call bn_lshiftmod_256 
+7619 da20046f arg mem_t3_256 ,rega 
+761a da40048f arg mem_t7_256 ,regb 
+761b d8a0046f arg mem_t3_256 ,contw 
+761c 20407727 call bn_submod_256 
+761d da20046f arg mem_t3_256 ,rega 
+761e da40044f arg mem_t2_256 ,regb 
+761f d8a0044f arg mem_t2_256 ,contw 
+7620 20407672 call bn_mulmod_256 
+7621 da20044f arg mem_t2_256 ,rega 
+7622 da40040f arg mem_t1_256 ,regb 
+7623 d8a0034f arg mem_cy_256 ,contw 
+7624 20407727 call bn_submod_256 
+7625 da20034f arg mem_cy_256 ,rega 
+7626 da400547 arg mem_p_256 ,regb 
+7627 d8a0034f arg mem_cy_256 ,contw 
+7628 18002600 force 0 ,regc 
+7629 6fe0834f fetch 1 ,mem_cy_256 
+762a 2feffe00 isolate1 0 ,pdata 
+762b 2040f70c call bn_add_256 ,true 
+762c 1a626000 copy regc ,alarm 
+762d da20034f arg mem_cy_256 ,rega 
+762e 2040773c call bn_rshift_256 
+762f 6fe0836e fetch 1 ,mem_cy5_256 
+7630 2e0ffe00 isolate1 0 ,alarm 
+7631 7920fe07 setflag true ,7 ,pdata 
+7632 67e0836e store 1 ,mem_cy5_256 
+7633 20600000 rtn 
+
+bn_invmod_256:
+7634 18a21600 copy contw ,timeup 
+7635 d8a0042f arg mem_tmp0_256 ,contw 
+7636 20407c9f call clear_mem_256 
+7637 18007e00 force 0 ,pdata 
+7638 67e2044f store 4 ,mem_t2_256 
+7639 70042f01 jam 1 ,mem_tmp0_256 
+763a d8a003af arg mem_tmp1_256 ,contw 
+763b 20407ca1 call clear_mem_512 
+763c d8c00547 arg mem_p_256 ,contr 
+763d d8a003ef arg mem_tmp2_256 ,contw 
+763e 20407c8f call memcpy32 
+763f 1a220c00 copy rega ,contr 
+7640 d8a0040f arg mem_tmp3_256 ,contw 
+7641 20407c8f call memcpy32 
+
+bn_invmod_256_2:
+7642 d8c0040f arg mem_tmp3_256 ,contr 
+7643 20407746 call bn_eq_zero_256 
+7644 203a766b branch bn_invmod_256_0 ,blank 
+7645 da20040f arg mem_tmp3_256 ,rega 
+7646 da40042f arg mem_tmp0_256 ,regb 
+7647 20407749 call bn_rshifteven_256 
+7648 da2003ef arg mem_tmp2_256 ,rega 
+7649 da4003af arg mem_tmp1_256 ,regb 
+764a 20407749 call bn_rshifteven_256 
+764b da20040f arg mem_tmp3_256 ,rega 
+764c da4003ef arg mem_tmp2_256 ,regb 
+764d 20407742 call bn_bigeq_256 
+764e 2021765d branch bn_invmod_256_1 ,positive 
+764f da2003ef arg mem_tmp2_256 ,rega 
+7650 da40040f arg mem_tmp3_256 ,regb 
+7651 1a220a00 copy rega ,contw 
+7652 2040773a call bn_sub_256 
+7653 da20042f arg mem_tmp0_256 ,rega 
+7654 da4003af arg mem_tmp1_256 ,regb 
+7655 1a420a00 copy regb ,contw 
+7656 2040770c call bn_add_256 
+7657 efe08011 ifetch 1 ,rega 
+7658 9a60a600 iadd regc ,regc 
+7659 efe08012 ifetch 1 ,regb 
+765a 9a60fe00 iadd regc ,pdata 
+765b e7e08012 istore 1 ,regb 
+765c 20207642 branch bn_invmod_256_2 
+
+bn_invmod_256_1:
+765d da20040f arg mem_tmp3_256 ,rega 
+765e da4003ef arg mem_tmp2_256 ,regb 
+765f 1a220a00 copy rega ,contw 
+7660 2040773a call bn_sub_256 
+7661 da2003af arg mem_tmp1_256 ,rega 
+7662 da40042f arg mem_tmp0_256 ,regb 
+7663 1a420a00 copy regb ,contw 
+7664 2040770c call bn_add_256 
+7665 efe08011 ifetch 1 ,rega 
+7666 9a60a600 iadd regc ,regc 
+7667 efe08012 ifetch 1 ,regb 
+7668 9a60fe00 iadd regc ,pdata 
+7669 e7e08012 istore 1 ,regb 
+766a 20207642 branch bn_invmod_256_2 
+
+bn_invmod_256_0:
+766b da2003af arg mem_tmp1_256 ,rega 
+766c 19620a00 copy timeup ,contw 
+766d 2040769b call bn_p256mod 
+766e da200547 arg mem_p_256 ,rega 
+766f 19622400 copy timeup ,regb 
+7670 19620a00 copy timeup ,contw 
+7671 20207727 branch bn_submod_256 
+
+bn_mulmod_256:
+7672 18a21600 copy contw ,timeup 
+7673 18007000 force 0 ,regext_index 
+7674 d8a003af arg mem_tmp1_256 ,contw 
+7675 20407ca1 call clear_mem_512 
+7676 d8a0068f arg mem_regext ,contw 
+7677 20407ca1 call clear_mem_512 
+7678 1a220c00 copy rega ,contr 
+7679 70068f00 jam 0 ,mem_regext 
+767a 58000000 setarg 0 
+767b 20407704 call bn_load_mem 
+767c 1a420c00 copy regb ,contr 
+767d 20407708 call bn_load_256 
+767e 18000e00 force 0 ,queue 
+767f d8a003af arg mem_tmp1_256 ,contw 
+
+bn_mulmod_256_1:
+7680 d840068f arg mem_regext ,temp 
+7681 18e22400 copy queue ,regb 
+7682 1a4bfe00 lshift2 regb ,pdata 
+7683 9840a400 iadd temp ,regb 
+7684 18000400 force 0 ,temp 
+7685 18002600 force 0 ,regc 
+
+bn_mulmod_256_0:
+7686 efe20005 ifetch 4 ,contw 
+7687 98002200 iforce rega 
+7688 efe20012 ifetch 4 ,regb 
+7689 1a627000 copy regc ,regext_index 
+768a 9deffe00 imul32 regext ,pdata 
+768b 9a20fe00 iadd rega ,pdata 
+768c 9840fe00 iadd temp ,pdata 
+768d e7e20005 istore 4 ,contw 
+768e 1fef0400 rshift32 pdata ,temp 
+768f 1a60a601 increase 1 ,regc 
+7690 2a61fe08 compare 8 ,regc ,0xff 
+7691 2420f686 nbranch bn_mulmod_256_0 ,true 
+7692 18427e00 deposit temp 
+7693 e7e20005 istore 4 ,contw 
+7694 18a08be0 increase -32 ,contw 
+7695 18e08e01 increase 1 ,queue 
+7696 28e1fe08 compare 8 ,queue ,0xff 
+7697 2420f680 nbranch bn_mulmod_256_1 ,true 
+7698 da2003af arg mem_tmp1_256 ,rega 
+7699 19620a00 copy timeup ,contw 
+769a 2020769b branch bn_p256mod 
+
+bn_p256mod:
+769b 470c4023 bpatchx patch23_0 ,mem_patch23 
+769c 18a21600 copy contw ,timeup 
+769d 1a226000 copy rega ,alarm 
+769e da4003ef arg mem_tmp2_256 ,regb 
+769f 1a420a00 copy regb ,contw 
+76a0 20407c9d call memset0_4 
+76a1 e7e40005 istore 8 ,contw 
+76a2 1a208c2c add rega ,44 ,contr 
+76a3 20407c8b call memcpy8 
+76a4 20407c85 call memcpy12 
+76a5 1a422200 copy regb ,rega 
+76a6 20407711 call bn_lshiftmod_256 
+76a7 da4003ef arg mem_tmp2_256 ,regb 
+76a8 1e022200 copy alarm ,rega 
+76a9 19620a00 copy timeup ,contw 
+76aa 2040770e call bn_addmod_256 
+76ab da4003ef arg mem_tmp2_256 ,regb 
+76ac 1a420a00 copy regb ,contw 
+76ad 20407c9d call memset0_4 
+76ae e7e40005 istore 8 ,contw 
+76af 1e008c30 add alarm ,48 ,contr 
+76b0 20407c91 call memcpy16 
+76b1 20407c9d call memset0_4 
+76b2 1a422200 copy regb ,rega 
+76b3 20407711 call bn_lshiftmod_256 
+76b4 da4003ef arg mem_tmp2_256 ,regb 
+76b5 19622200 copy timeup ,rega 
+76b6 1a220a00 copy rega ,contw 
+76b7 2040770e call bn_addmod_256 
+76b8 da4003ef arg mem_tmp2_256 ,regb 
+76b9 1a420a00 copy regb ,contw 
+76ba 1e008c20 add alarm ,32 ,contr 
+76bb 20407c85 call memcpy12 
+76bc 20407c9d call memset0_4 
+76bd e7e40005 istore 8 ,contw 
+76be 1e008c38 add alarm ,56 ,contr 
+76bf 20407c8b call memcpy8 
+76c0 19622200 copy timeup ,rega 
+76c1 1a220a00 copy rega ,contw 
+76c2 2040770e call bn_addmod_256 
+76c3 da4003ef arg mem_tmp2_256 ,regb 
+76c4 1a420a00 copy regb ,contw 
+76c5 1e008c24 add alarm ,36 ,contr 
+76c6 20407c85 call memcpy12 
+76c7 1e008c34 add alarm ,52 ,contr 
+76c8 20407c85 call memcpy12 
+76c9 1e008c34 add alarm ,52 ,contr 
+76ca 20407c86 call memcpy4 
+76cb 1e008c20 add alarm ,32 ,contr 
+76cc 20407c86 call memcpy4 
+76cd 19622200 copy timeup ,rega 
+76ce 1a220a00 copy rega ,contw 
+76cf 2040770e call bn_addmod_256 
+76d0 da4003ef arg mem_tmp2_256 ,regb 
+76d1 1a420a00 copy regb ,contw 
+76d2 1e008c2c add alarm ,44 ,contr 
+76d3 20407c85 call memcpy12 
+76d4 20407c9d call memset0_4 
+76d5 e7e40005 istore 8 ,contw 
+76d6 1e008c20 add alarm ,32 ,contr 
+76d7 20407c86 call memcpy4 
+76d8 1e008c28 add alarm ,40 ,contr 
+76d9 20407c86 call memcpy4 
+76da 19622200 copy timeup ,rega 
+76db 1a220a00 copy rega ,contw 
+76dc 20407727 call bn_submod_256 
+76dd da4003ef arg mem_tmp2_256 ,regb 
+76de 1a420a00 copy regb ,contw 
+76df 1e008c30 add alarm ,48 ,contr 
+76e0 20407c8b call memcpy8 
+76e1 20407c8b call memcpy8 
+76e2 18007e00 force 0 ,pdata 
+76e3 e7e40005 istore 8 ,contw 
+76e4 1e008c24 add alarm ,36 ,contr 
+76e5 20407c86 call memcpy4 
+76e6 1e008c2c add alarm ,44 ,contr 
+76e7 20407c86 call memcpy4 
+76e8 19622200 copy timeup ,rega 
+76e9 1a220a00 copy rega ,contw 
+76ea 20407727 call bn_submod_256 
+76eb da4003ef arg mem_tmp2_256 ,regb 
+76ec 1a420a00 copy regb ,contw 
+76ed 1e008c34 add alarm ,52 ,contr 
+76ee 20407c85 call memcpy12 
+76ef 1e008c20 add alarm ,32 ,contr 
+76f0 20407c85 call memcpy12 
+76f1 20407c9d call memset0_4 
+76f2 1e008c30 add alarm ,48 ,contr 
+76f3 20407c86 call memcpy4 
+76f4 19622200 copy timeup ,rega 
+76f5 1a220a00 copy rega ,contw 
+76f6 20407727 call bn_submod_256 
+76f7 da4003ef arg mem_tmp2_256 ,regb 
+76f8 1a420a00 copy regb ,contw 
+76f9 1e008c38 add alarm ,56 ,contr 
+76fa 20407c8b call memcpy8 
+76fb 20407c9d call memset0_4 
+76fc 1e008c24 add alarm ,36 ,contr 
+76fd 20407c85 call memcpy12 
+76fe 20407c9d call memset0_4 
+76ff 1e008c34 add alarm ,52 ,contr 
+7700 20407c86 call memcpy4 
+7701 19622200 copy timeup ,rega 
+7702 1a220a00 copy rega ,contw 
+7703 20207727 branch bn_submod_256 
+
+bn_load_mem:
+7704 18007220 force 32 ,loopcnt 
+7705 d8a0068f arg mem_regext ,contw 
+7706 98a08a00 iadd contw ,contw 
+7707 20207cdc branch memcpy 
+
+bn_load_256:
+7708 18007208 force 8 ,loopcnt 
+7709 202074e5 branch bn_load_0 
+
+bn_sqrmod_256:
+770a 1a222400 copy rega ,regb 
+770b 20207672 branch bn_mulmod_256 
+
+bn_add_256:
+770c 18007208 force 8 ,loopcnt 
+770d 202074ae branch bn_add + 1 
+
+bn_addmod_256:
+770e 2040770c call bn_add_256 
+770f 18a22200 copy contw ,rega 
+7710 20207712 branch bn_lshiftmod_ismod_256 
+
+bn_lshiftmod_256:
+7711 2040773f call bn_lshift_256 
+
+bn_lshiftmod_ismod_256:
+7712 2a6ffe00 isolate1 0 ,regc 
+7713 2020f71b branch bn_lshiftmod_p_256 ,true 
+7714 da400547 arg mem_p_256 ,regb 
+7715 1a222600 copy rega ,regc 
+7716 1a20a3e0 increase -32 ,rega 
+7717 20407742 call bn_bigeq_256 
+7718 24610000 nrtn positive 
+7719 1a622200 copy regc ,rega 
+771a 20207723 branch sub_p2_256 
+
+bn_lshiftmod_p_256:
+771b 20407723 call sub_p2_256 
+771c 1a222600 copy rega ,regc 
+771d 1a20a3e0 increase -32 ,rega 
+771e da400547 arg mem_p_256 ,regb 
+771f 20407742 call bn_bigeq_256 
+7720 24610000 nrtn positive 
+7721 1a622200 copy regc ,rega 
+7722 20207723 branch sub_p2_256 
+
+sub_p2_256:
+7723 1a20a3e0 increase -32 ,rega 
+7724 da400547 arg mem_p_256 ,regb 
+7725 1a220a00 copy rega ,contw 
+7726 2020773a branch bn_sub_256 
+
+bn_submod_256:
+7727 2040773a call bn_sub_256 
+7728 2020f731 branch bn_submod_256_np ,true 
+7729 18a0a3e0 add contw ,-32 ,rega 
+772a da400547 arg mem_p_256 ,regb 
+772b 20407742 call bn_bigeq_256 
+772c 24610000 nrtn positive 
+772d da400547 arg mem_p_256 ,regb 
+772e 18a0a3e0 add contw ,-32 ,rega 
+772f 1a220a00 copy rega ,contw 
+7730 2020773a branch bn_sub_256 
+
+bn_submod_256_np:
+7731 18a0a3e0 add contw ,-32 ,rega 
+7732 da400547 arg mem_p_256 ,regb 
+7733 1a220a00 copy rega ,contw 
+7734 2040770c call bn_add_256 
+7735 20608000 rtn true 
+7736 18a0a3e0 add contw ,-32 ,rega 
+7737 da400547 arg mem_p_256 ,regb 
+7738 1a220a00 copy rega ,contw 
+7739 2020770c branch bn_add_256 
+
+bn_sub_256:
+773a 18007208 force 8 ,loopcnt 
+773b 202074bc branch bn_sub + 1 
+
+bn_rshift_256:
+773c 18007208 force 8 ,loopcnt 
+773d 1a20a21c increase 28 ,rega 
+773e 202074cb branch bn_rshift 
+
+bn_lshift_256:
+773f 18007208 force 8 ,loopcnt 
+7740 18002600 force 0 ,regc 
+7741 202074d9 branch bn_lshift_0 
+
+bn_bigeq_256:
+7742 18007208 force 8 ,loopcnt 
+7743 1a20a21c increase 28 ,rega 
+7744 1a40a41c increase 28 ,regb 
+7745 202074a3 branch bn_bigeq_0 
+
+bn_eq_zero_256:
+7746 efe40006 ifetch 8 ,contr 
+7747 247a0000 nrtn blank 
+7748 20207491 branch bn_eq_zero 
+
+bn_rshifteven_256:
+7749 1a226000 copy rega ,alarm 
+
+bn_rshifteven_256_1:
+774a 1e022200 copy alarm ,rega 
+774b efe08011 ifetch 1 ,rega 
+774c 2feffe00 isolate1 0 ,pdata 
+774d 20608000 rtn true 
+774e 2040773c call bn_rshift_256 
+774f efe08012 ifetch 1 ,regb 
+7750 2fec0000 isolate0 0 ,pdata 
+7751 2020f759 branch bn_rshifteven_256_0 ,true 
+7752 da200547 arg mem_p_256 ,rega 
+7753 1a420a00 copy regb ,contw 
+7754 2040770c call bn_add_256 
+7755 efe08012 ifetch 1 ,regb 
+7756 9a60fe00 iadd regc ,pdata 
+7757 e7e08012 istore 1 ,regb 
+7758 1a40a5e0 increase -32 ,regb 
+
+bn_rshifteven_256_0:
+7759 1a40a220 add regb ,32 ,rega 
+775a 18007209 force 9 ,loopcnt 
+775b 204074cb call bn_rshift 
+775c 2020774a branch bn_rshifteven_256_1 
+
+ui_init:
+775d 20758000 rtn wake 
+775e 204023ba call lpm_disable_exen_output 
+775f 20407764 call ui_button_init 
+7760 20407809 call ui_timer_init 
+7761 2020779a branch ui_led_init_global 
+
+ui_dispatch:
+7762 204077bd call ui_led_dispatch 
+7763 202077f8 branch ui_timer_check 
+
+ui_button_init:
+7764 6fe0c503 fetch 1 ,mem_ui_button_gpio 
+7765 c17f8000 rtneq ui_button_gpio_disable 
+7766 98000400 iforce temp 
+7767 20406ef1 call gpio_config_output 
+7768 6848c503 fetcht 1 ,mem_ui_button_gpio 
+7769 20406eed call gpio_out_inactive 
+776a 20000064 nop 100 
+776b 6848c503 fetcht 1 ,mem_ui_button_gpio 
+776c 20406ed7 call gpio_config_input 
+776d 2020776e branch ui_button_polling 
+
+ui_button_polling:
+776e 470cc023 bpatchx patch23_1 ,mem_patch23 
+776f 6fe0c503 fetch 1 ,mem_ui_button_gpio 
+7770 c17f8000 rtneq ui_button_gpio_disable 
+7771 1fe20400 copy pdata ,temp 
+7772 20406ee0 call gpio_get_bit 
+7773 2420f780 nbranch ui_button_up ,true 
+
+ui_button_down:
+7774 2040778a call ui_button_check_long_press 
+7775 6fe14500 fetch 2 ,mem_ui_state_map 
+7776 79207e0c set1 ui_state_btn_down ,pdata 
+7777 67e14500 store 2 ,mem_ui_state_map 
+7778 6fe0c4fb fetch 1 ,mem_ui_button_last_state 
+7779 c1000000 rtneq ui_button_state_down 
+777a 7044fb00 jam ui_button_state_down ,mem_ui_button_last_state 
+777b 6fe0c502 fetch 1 ,mem_ui_button_timeout 
+777c 67e0c4fa store 1 ,mem_ui_button_timer 
+777d 20407791 call lpm_button_get_wake_lock 
+777e 70064d2c jam bt_evt_button_down ,mem_fifo_temp 
+777f 20207819 branch ui_ipc_send_event 
+
+ui_button_up:
+7780 6fe14500 fetch 2 ,mem_ui_state_map 
+7781 793ffe0c set0 ui_state_btn_down ,pdata 
+7782 67e14500 store 2 ,mem_ui_state_map 
+7783 6fe0c4fb fetch 1 ,mem_ui_button_last_state 
+7784 c1008000 rtneq ui_button_state_up 
+7785 7044fb01 jam ui_button_state_up ,mem_ui_button_last_state 
+7786 7044fa00 jam 0 ,mem_ui_button_timer 
+7787 20407793 call lpm_button_clean_wake_lock 
+7788 70064d2d jam bt_evt_button_up ,mem_fifo_temp 
+7789 20207819 branch ui_ipc_send_event 
+
+ui_button_check_long_press:
+778a 6fe0c4fa fetch 1 ,mem_ui_button_timer 
+778b 207a0000 rtn blank 
+778c 1fe0ffff increase -1 ,pdata 
+778d 67e0c4fa store 1 ,mem_ui_button_timer 
+778e 247a0000 nrtn blank 
+778f 70064d10 jam bt_evt_button_long_pressed ,mem_fifo_temp 
+7790 20207819 branch ui_ipc_send_event 
+
+lpm_button_get_wake_lock:
+7791 d8e00007 arg wake_lock_button ,queue 
+7792 202024be branch lpm_get_wake_lock 
+
+lpm_button_clean_wake_lock:
+7793 d8e00007 arg wake_lock_button ,queue 
+7794 202024c2 branch lpm_put_wake_lock 
+
+calc_curr_struct_prt:
+7795 470d4023 bpatchx patch23_2 ,mem_patch23 
+7796 6fe14506 fetch 2 ,mem_ui_led_struct_ptr 
+7797 1a2fa40b mul32 rega ,led_offset_length ,regb 
+7798 9a40a400 iadd regb ,regb 
+7799 20600000 rtn 
+
+ui_led_init_global:
+779a 6fe0c505 fetch 1 ,mem_ui_led_struct_num 
+779b 207a0000 rtn blank 
+779c 1fe27200 copy pdata ,loopcnt 
+779d 6fe14506 fetch 2 ,mem_ui_led_struct_ptr 
+779e 1fe22400 copy pdata ,regb 
+
+ui_led_init_loop:
+779f 1a40a602 add regb ,led_offset_led_gpio ,regc 
+77a0 e8408013 ifetcht 1 ,regc 
+77a1 204077a5 call ui_led_init_set 
+77a2 1a40a40b increase led_offset_length ,regb 
+77a3 c200779f loop ui_led_init_loop 
+77a4 20600000 rtn 
+
+ui_led_init_set:
+77a5 6fe0c504 fetch 1 ,mem_ui_led_init_state_set 
+77a6 203a6eed branch gpio_out_inactive ,blank 
+77a7 20206ef1 branch gpio_out_active 
+
+ui_led_on_global:
+77a8 20407795 call calc_curr_struct_prt 
+77a9 58000002 setarg ui_led_state_lighting 
+77aa e7e08012 istore 1 ,regb 
+77ab 204077f2 call ui_led_stop_timer 
+77ac 202077c9 branch ui_led_on_static 
+
+ui_led_blink_stop_global:
+
+ui_led_off_global:
+77ad 20407795 call calc_curr_struct_prt 
+77ae 58000003 setarg ui_led_state_darking 
+77af e7e08012 istore 1 ,regb 
+77b0 204077f2 call ui_led_stop_timer 
+77b1 202077c6 branch ui_led_off_static 
+
+ui_led_blink_start_global:
+77b2 20407795 call calc_curr_struct_prt 
+77b3 58000001 setarg ui_led_state_blink_start 
+77b4 e7e08012 istore 1 ,regb 
+77b5 580000ff setarg led_infinite_flash_num 
+77b6 e7e08005 istore 1 ,contw 
+77b7 202077c6 branch ui_led_off_static 
+
+ui_led_set_style_global:
+77b8 20407795 call calc_curr_struct_prt 
+77b9 df20000b arg led_offset_length ,loopcnt 
+77ba 1a620c00 copy regc ,contr 
+77bb 1a420a00 copy regb ,contw 
+77bc 20207cce branch memcpy_fast 
+
+ui_led_dispatch:
+77bd 6fe0c505 fetch 1 ,mem_ui_led_struct_num 
+77be 207a0000 rtn blank 
+77bf da200000 arg 0 ,rega 
+
+ui_led_blink_polling:
+77c0 204077cc call ui_led_change_style_by_type 
+77c1 1a20a201 increase 1 ,rega 
+77c2 6fe0c505 fetch 1 ,mem_ui_led_struct_num 
+77c3 9a267c00 isub rega ,null 
+77c4 20628000 rtn zero 
+77c5 202077c0 branch ui_led_blink_polling 
+
+ui_led_off_static:
+77c6 1a40a602 add regb ,led_offset_led_gpio ,regc 
+77c7 e8408013 ifetcht 1 ,regc 
+77c8 20206eed branch gpio_out_inactive 
+
+ui_led_on_static:
+77c9 1a40a602 add regb ,led_offset_led_gpio ,regc 
+77ca e8408013 ifetcht 1 ,regc 
+77cb 20206ef1 branch gpio_out_active 
+
+ui_led_change_style_by_type:
+77cc 1a208e0b add rega ,ui_led_blink ,queue 
+77cd 20407cf1 call timer_check 
+77ce 247a0000 nrtn blank 
+77cf 20407795 call calc_curr_struct_prt 
+77d0 efe08012 ifetch 1 ,regb 
+77d1 c00177c9 beq ui_led_state_lighting ,ui_led_on_static 
+77d2 c001f7c6 beq ui_led_state_darking ,ui_led_off_static 
+77d3 c00077c6 beq ui_led_state_blink_stop ,ui_led_off_static 
+77d4 c002f7e0 beq ui_led_state_blink_darking ,ui_led_blink_state_darking 
+
+ui_led_blink_state_lighting:
+77d5 204077c9 call ui_led_on_static 
+77d6 1a40a607 add regb ,led_offset_cb_ledon ,regc 
+77d7 20407c4b call push_stack 
+77d8 efe10013 ifetch 2 ,regc 
+77d9 20407d7b call callback_func 
+77da 20407c57 call pop_stack 
+77db 58000005 setarg ui_led_state_blink_darking 
+77dc e7e08012 istore 1 ,regb 
+77dd 1a40a603 add regb ,led_offset_on_time ,regc 
+77de efe10013 ifetch 2 ,regc 
+77df 202077f0 branch ui_led_blink_timer_start 
+
+ui_led_blink_state_darking:
+77e0 204077c6 call ui_led_off_static 
+77e1 1a40a609 add regb ,led_offset_cb_ledoff ,regc 
+77e2 20407c4b call push_stack 
+77e3 efe10013 ifetch 2 ,regc 
+77e4 20407d7b call callback_func 
+77e5 20407c57 call pop_stack 
+77e6 1a40a601 add regb ,led_offset_blink_count ,regc 
+77e7 efe08013 ifetch 1 ,regc 
+77e8 c07ff7ec beq led_infinite_flash_num ,ui_led_blink_infinite 
+77e9 1fe0ffff increase -1 ,pdata 
+77ea e7e08013 istore 1 ,regc 
+77eb 203a77ad branch ui_led_blink_stop_global ,blank 
+
+ui_led_blink_infinite:
+77ec 58000004 setarg ui_led_state_blink_lighting 
+77ed e7e08012 istore 1 ,regb 
+77ee 1a40a605 add regb ,led_offset_off_time ,regc 
+77ef efe10013 ifetch 2 ,regc 
+
+ui_led_blink_timer_start:
+77f0 1a208e0b add rega ,ui_led_blink ,queue 
+77f1 20207ce3 branch timer_init 
+
+ui_led_stop_timer:
+77f2 58000000 setarg 0 
+77f3 202077f0 branch ui_led_blink_timer_start 
+
+ui_timer_timeout:
+77f4 58001000 setarg 0x1000 
+77f5 1ff07e00 lshift16 pdata ,pdata 
+77f6 9a40a400 iadd regb ,regb 
+77f7 20600000 rtn 
+
+ui_timer_check:
+77f8 470dc023 bpatchx patch23_3 ,mem_patch23 
+77f9 da200000 arg 0 ,rega 
+77fa 684a44fc fetcht 4 ,mem_ui_timer_last_btclk 
+77fb 1c422400 copy clkn_bt ,regb 
+77fc 1a427e00 copy regb ,pdata 
+77fd 98467c00 isub temp ,null 
+77fe 244177f4 ncall ui_timer_timeout ,positive 
+
+ui_timer_check_loop:
+77ff 1a427e00 copy regb ,pdata 
+7800 184084a0 increase 160 ,temp 
+7801 184084a0 increase 160 ,temp 
+7802 98467c00 isub temp ,null 
+7803 2421780c nbranch ui_timer_check_end ,positive 
+7804 1a20a201 increase 1 ,rega 
+7805 1a217e0f and rega ,0x0f ,pdata 
+7806 243a77ff nbranch ui_timer_check_loop ,blank 
+7807 da200000 arg 0 ,rega 
+7808 20407812 call ui_timer_check_send_evt 
+
+ui_timer_init:
+7809 1c427e00 copy clkn_bt ,pdata 
+780a 67e244fc store 4 ,mem_ui_timer_last_btclk 
+780b 20600000 rtn 
+
+ui_timer_check_end:
+780c 1a227e00 copy rega ,pdata 
+780d 207a0000 rtn blank 
+780e 18408560 increase -160 ,temp 
+780f 18408560 increase -160 ,temp 
+7810 793f841c set0 28 ,temp 
+7811 604a44fc storet 4 ,mem_ui_timer_last_btclk 
+
+ui_timer_check_send_evt:
+7812 20203749 branch app_evt_timer 
+
+ui_ipc_get_lock:
+7813 7044e801 jam 1 ,mem_ipc_lock_bt 
+
+ui_ipc_get_lock_wait:
+7814 6fe0c4e9 fetch 1 ,mem_ipc_lock_c51 
+7815 243a7814 nbranch ui_ipc_get_lock_wait ,blank 
+7816 20600000 rtn 
+
+ui_ipc_put_lock:
+7817 7044e800 jam 0 ,mem_ipc_lock_bt 
+7818 20600000 rtn 
+
+ui_ipc_send_event:
+7819 470e4023 bpatchx patch23_4 ,mem_patch23 
+781a 6fe0c3cf fetch 1 ,mem_device_option 
+781b c007ca1d beq dvc_op_keyboard ,keyboard_ui_ipc_send_event 
+781c 20407813 call ui_ipc_get_lock 
+781d 1a227e00 copy rega ,pdata 
+781e 67e20662 store 4 ,mem_rega 
+781f da2044ea arg mem_ipc_fifo_bt2c51 ,rega 
+7820 20407d8d call fifo_in 
+7821 6fe20662 fetch 4 ,mem_rega 
+7822 1fe22200 copy pdata ,rega 
+7823 20207817 branch ui_ipc_put_lock 
+
+ui_ipc_send_cmd:
+7824 470ec023 bpatchx patch23_5 ,mem_patch23 
+7825 20407813 call ui_ipc_get_lock 
+7826 1a227e00 copy rega ,pdata 
+7827 67e20662 store 4 ,mem_rega 
+7828 da2044f2 arg mem_ipc_fifo_c512bt ,rega 
+7829 20407d8d call fifo_in 
+782a 6fe20662 fetch 4 ,mem_rega 
+782b 1fe22200 copy pdata ,rega 
+782c 20207817 branch ui_ipc_put_lock 
+
+ui_ipc_clean_all_fifo:
+782d 58000000 setarg 0 
+782e 67e444f2 store util_fifo_len ,mem_ipc_fifo_c512bt 
+782f 67e444ea store util_fifo_len ,mem_ipc_fifo_bt2c51 
+7830 20600000 rtn 
+
+check_51cmd:
+7831 470f4023 bpatchx patch23_6 ,mem_patch23 
+7832 6fe0c114 fetch 1 ,mem_hci_cmd 
+7833 247a0000 nrtn blank 
+7834 da2044f2 arg mem_ipc_fifo_c512bt ,rega 
+7835 20407da5 call fifo_is_empty 
+7836 207a0000 rtn blank 
+7837 70064c00 jam ipc_continue_process ,mem_ipc_skip_continue_proc 
+7838 2040783c call check_51cmd_once 
+7839 6fe0864c fetch 1 ,mem_ipc_skip_continue_proc 
+783a 203a7831 branch check_51cmd ,blank 
+783b 20600000 rtn 
+
+check_51cmd_once:
+783c 20407813 call ui_ipc_get_lock 
+783d da2044f2 arg mem_ipc_fifo_c512bt ,rega 
+783e 20407d99 call fifo_out 
+783f 1fe20400 copy pdata ,temp 
+7840 20407817 call ui_ipc_put_lock 
+7841 470fc023 bpatchx patch23_7 ,mem_patch23 
+7842 18427e00 copy temp ,pdata 
+7843 207a0000 rtn blank 
+7844 c006f860 beq bt_cmd_start_adv ,check_51cmd_adv 
+7845 c0077866 beq bt_cmd_stop_adv ,check_51cmd_stop_adv 
+7846 c007f86b beq bt_cmd_start_direct_adv ,check_51cmd_direct_adv 
+7847 c0087871 beq bt_cmd_stop_direct_adv ,check_51cmd_stop_direct_adv 
+7848 c009f87b beq bt_cmd_led_off ,check_51cmd_led_off 
+7849 c00a787d beq bt_cmd_led_on ,check_51cmd_led_on 
+784a c00af87f beq bt_cmd_led_blink ,check_51cmd_led_start_blink 
+784b c00b7889 beq bt_cmd_le_start_conn ,check_51cmd_le_start_con 
+784c c00bf88c beq bt_cmd_le_start_scan ,check_51cmd_start_scan 
+784d c00c788e beq bt_cmd_le_stop_scan ,check_51cmd_stop_scan 
+784e c00cf891 beq bt_cmd_enter_hibernate ,check_51cmd_hibernate 
+784f 67e0864d store 1 ,mem_fifo_temp 
+
+check_51cmd_once_continue:
+7850 6fe0864d fetch 1 ,mem_fifo_temp 
+7851 c584f859 bmark0 mark_context ,check_51cmd_check_idle 
+7852 47104024 bpatchx patch24_0 ,mem_patch24 
+7853 6fe0864d fetch 1 ,mem_fifo_temp 
+7854 c008f876 beq bt_cmd_le_disconnect ,check_51cmd_le_disconnect 
+7855 c00df899 beq bt_cmd_le_smp_security_request ,check_51cmd_le_smp_sec_req 
+7856 c009787a beq bt_cmd_le_update_conn ,check_51cmd_ble_update_connect_param 
+7857 c00fee95 beq bt_cmd_store_reconn_info_le ,eeprom_store_le_reconn_info 
+7858 20600000 rtn 
+
+check_51cmd_check_idle:
+7859 67e0864d store 1 ,mem_fifo_temp 
+785a 2040205d call context_check_idle 
+785b 2022f85e branch check_51cmd_restore ,zero 
+785c 20402062 call context_search_plap 
+785d 24628000 nrtn zero 
+
+check_51cmd_restore:
+785e 70064c01 jam ipc_skip_continue_process ,mem_ipc_skip_continue_proc 
+785f 20207824 branch ui_ipc_send_cmd 
+
+check_51cmd_adv:
+7860 70438c01 jam on ,mem_le_adv_enable 
+7861 70438f00 jam adv_ind ,mem_le_adv_type 
+7862 6fe14500 fetch 2 ,mem_ui_state_map 
+7863 79207e0b set1 ui_state_ble_adv ,pdata 
+7864 67e14500 store 2 ,mem_ui_state_map 
+7865 20600000 rtn 
+
+check_51cmd_stop_adv:
+7866 6fe14500 fetch 2 ,mem_ui_state_map 
+7867 793ffe0b set0 ui_state_ble_adv ,pdata 
+7868 67e14500 store 2 ,mem_ui_state_map 
+7869 70438c00 jam off ,mem_le_adv_enable 
+786a 20600000 rtn 
+
+check_51cmd_direct_adv:
+786b 70438c01 jam on ,mem_le_adv_enable 
+786c 70438f01 jam adv_direct_ind ,mem_le_adv_type 
+786d 6fe14500 fetch 2 ,mem_ui_state_map 
+786e 79207e0b set1 ui_state_ble_adv ,pdata 
+786f 67e14500 store 2 ,mem_ui_state_map 
+7870 20600000 rtn 
+
+check_51cmd_stop_direct_adv:
+7871 6fe14500 fetch 2 ,mem_ui_state_map 
+7872 793ffe0b set0 ui_state_ble_adv ,pdata 
+7873 67e14500 store 2 ,mem_ui_state_map 
+7874 70438c00 jam off ,mem_le_adv_enable 
+7875 20600000 rtn 
+
+check_51cmd_le_disconnect:
+7876 58000014 setarg 20 
+7877 67e10196 store 2 ,mem_le_superto 
+7878 67e142f7 store 2 ,mem_le_init_superto 
+7879 202030a3 branch le_send_terminate_ind_user_terminated 
+
+check_51cmd_ble_update_connect_param:
+787a 20202e71 branch le_l2cap_tx_update_req 
+
+check_51cmd_led_off:
+787b da200000 arg 0 ,rega 
+787c 202077ad branch ui_led_off_global 
+
+check_51cmd_led_on:
+787d da200000 arg 0 ,rega 
+787e 202077a8 branch ui_led_on_global 
+
+check_51cmd_led_start_blink:
+787f da200000 arg 0 ,rega 
+7880 20407795 call calc_curr_struct_prt 
+7881 efe08012 ifetch 1 ,regb 
+7882 c000f886 beq ui_led_state_blink_start ,check_51cmd_led_start_blink_in_blink 
+7883 c0027886 beq ui_led_state_blink_lighting ,check_51cmd_led_start_blink_in_blink 
+7884 c002f886 beq ui_led_state_blink_darking ,check_51cmd_led_start_blink_in_blink 
+7885 202077b2 branch ui_led_blink_start_global 
+
+check_51cmd_led_start_blink_in_blink:
+7886 efe08006 ifetch 1 ,contr 
+7887 c17f8000 rtneq led_infinite_flash_num 
+7888 202077b2 branch ui_led_blink_start_global 
+
+check_51cmd_le_start_con:
+7889 70434701 jam on ,mem_le_scan_enable 
+788a 7041141b jam hci_cmd_le_create_conn ,mem_hci_cmd 
+788b 20600000 rtn 
+
+check_51cmd_start_scan:
+788c 70434701 jam on ,mem_le_scan_enable 
+788d 20600000 rtn 
+
+check_51cmd_stop_scan:
+788e 70434700 jam off ,mem_le_scan_enable 
+788f 70411400 jam 0 ,mem_hci_cmd 
+7890 20600000 rtn 
+
+check_51cmd_hibernate:
+7891 6fe143de fetch 2 ,mem_cb_before_hibernate 
+7892 20407d7b call callback_func 
+7893 6fe0c503 fetch 1 ,mem_ui_button_gpio 
+7894 c07ff897 beq ui_button_gpio_disable ,check_51cmd_hibernate_btn_disabled 
+7895 1fe20400 copy pdata ,temp 
+7896 20406ed7 call gpio_config_input 
+
+check_51cmd_hibernate_btn_disabled:
+7897 2040782d call ui_ipc_clean_all_fifo 
+7898 202023ff branch lpm_hibernate 
+
+check_51cmd_le_smp_sec_req:
+7899 20202eb3 branch le_send_smp_security_request 
+
+ui_check_paring_button:
+789a 6fe0c500 fetch 1 ,mem_ui_state_map 
+789b c4060000 rtnbit0 ui_state_btn_down 
+789c 20600000 rtn 
+
+queue_init:
+789d 6fe14404 fetch 2 ,mem_queue_ptr 
+789e 1fe08a02 add pdata ,queue_offset_curr_num ,contw 
+789f 58000000 setarg 0 
+78a0 e7e18005 istore 3 ,contw 
+78a1 20600000 rtn 
+
+queue_push:
+78a2 4710c024 bpatchx patch24_1 ,mem_patch24 
+78a3 20407dbe call disable_user 
+78a4 204078ee call queue_full 
+78a5 207a0000 rtn blank 
+78a6 6fe14404 fetch 2 ,mem_queue_ptr 
+78a7 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
+78a8 e8408012 ifetcht 1 ,regb 
+78a9 18408401 increase 1 ,temp 
+78aa e0408012 istoret 1 ,regb 
+78ab e840803f ifetcht 1 ,pdata 
+78ac 18427200 copy temp ,loopcnt 
+78ad 1fe0a404 add pdata ,queue_offset_write_ptr ,regb 
+78ae efe08012 ifetch 1 ,regb 
+78af 984ffe00 imul32 temp ,pdata 
+78b0 98c08a00 iadd contr ,contw 
+78b1 1a220c00 copy rega ,contr 
+
+calc_queue_next_ptr:
+78b2 20407cdc call memcpy 
+78b3 204078f2 call queue_get_size 
+78b4 1fe0ffff pincrease -1 
+78b5 e8408012 ifetcht 1 ,regb 
+78b6 18408401 increase 1 ,temp 
+78b7 98410400 iand temp ,temp 
+78b8 e0408012 istoret 1 ,regb 
+78b9 20207dbc branch enable_user 
+
+queue_pop:
+78ba 47114024 bpatchx patch24_2 ,mem_patch24 
+78bb 20407dbe call disable_user 
+78bc 204078ea call queue_empty 
+78bd 207a0000 rtn blank 
+78be 6fe14404 fetch 2 ,mem_queue_ptr 
+78bf 1fe0a402 add pdata ,queue_offset_curr_num ,regb 
+78c0 e8408012 ifetcht 1 ,regb 
+78c1 184085ff increase -1 ,temp 
+78c2 e0408012 istoret 1 ,regb 
+78c3 e840803f ifetcht 1 ,pdata 
+78c4 18427200 copy temp ,loopcnt 
+78c5 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
+78c6 efe08012 ifetch 1 ,regb 
+78c7 984ffe00 imul32 temp ,pdata 
+78c8 98c08c00 iadd contr ,contr 
+78c9 18c08c01 increase 1 ,contr 
+78ca 1a220a00 copy rega ,contw 
+78cb 202078b2 branch calc_queue_next_ptr 
+
+queue_get_new_ele:
+78cc 20407dbe call disable_user 
+78cd 204078ea call queue_empty 
+78ce 207a0000 rtn blank 
+78cf 6fe14404 fetch 2 ,mem_queue_ptr 
+78d0 e840803f ifetcht 1 ,pdata 
+78d1 18427200 copy temp ,loopcnt 
+78d2 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
+78d3 efe08012 ifetch 1 ,regb 
+78d4 984ffe00 imul32 temp ,pdata 
+78d5 98c08c00 iadd contr ,contr 
+78d6 18c08c01 increase 1 ,contr 
+78d7 18c22400 copy contr ,regb 
+78d8 1a220a00 copy rega ,contw 
+78d9 20407cdc call memcpy 
+78da 20207dbc branch enable_user 
+
+queue_store_new_ele:
+78db 20407dbe call disable_user 
+78dc 204078ea call queue_empty 
+78dd 207a0000 rtn blank 
+78de 6fe14404 fetch 2 ,mem_queue_ptr 
+78df e840803f ifetcht 1 ,pdata 
+78e0 18427200 copy temp ,loopcnt 
+78e1 1fe0a403 add pdata ,queue_offset_read_ptr ,regb 
+78e2 efe08012 ifetch 1 ,regb 
+78e3 984ffe00 imul32 temp ,pdata 
+78e4 98c08c00 iadd contr ,contr 
+78e5 18c08a02 add contr ,2 ,contw 
+78e6 1a220c00 copy rega ,contr 
+78e7 1f20f3ff increase -1 ,loopcnt 
+78e8 20407cdc call memcpy 
+78e9 20207dbc branch enable_user 
+
+queue_empty:
+78ea 6fe14404 fetch 2 ,mem_queue_ptr 
+78eb 1fe08c02 add pdata ,queue_offset_curr_num ,contr 
+78ec efe08006 ifetch 1 ,contr 
+78ed 20600000 rtn 
+
+queue_full:
+78ee 204078f2 call queue_get_size 
+78ef e8408006 ifetcht 1 ,contr 
+78f0 98467e00 isub temp ,pdata 
+78f1 20600000 rtn 
+
+queue_get_size:
+78f2 6fe14404 fetch 2 ,mem_queue_ptr 
+78f3 1fe08c01 add pdata ,queue_offset_length ,contr 
+78f4 efe08006 ifetch 1 ,contr 
+78f5 20600000 rtn 
+
+usb_isr:
+78f6 4711c024 bpatchx patch24_3 ,mem_patch24 
+78f7 6ff08c22 fetch 1 ,core_usb_status 
+78f8 2feffe03 isolate1 usb_status_reset ,pdata 
+78f9 2040f905 call usb_init_restart ,true 
+78fa 6ff10c22 fetch 2 ,core_usb_status 
+78fb 67f10c22 store 2 ,core_usb_status 
+78fc 67e106e7 store 2 ,mem_usb_status 
+78fd 20407963 call usb_nak_state_judge 
+78fe 20407994 call usb_rx 
+78ff 20407b8a call usb0_tx 
+7900 20407bd3 call usb_tx 
+7901 2020795b branch usb_nak_state 
+
+usb_init:
+7902 47124024 bpatchx patch24_4 ,mem_patch24 
+7903 20407384 call enable_authrom 
+7904 20407922 call usb_init_param 
+
+usb_init_restart:
+7905 708c0000 jam 0x00 ,core_usb_config 
+7906 20002710 nop 10000 
+7907 708c1200 jam 0x0 ,core_usb_hmode 
+7908 6ff10050 fetch 2 ,core_clkoff 
+7909 793ffe0a set0 clock_off_usb ,pdata 
+790a 67f10050 store 2 ,core_clkoff 
+790b 708c1021 jam 0x21 ,core_usb_epmap 
+790c 708c119d jam 0x9d ,core_usb_pupd 
+790d 708c003c jam 0x3c ,core_usb_config 
+790e 58000741 setarg mem_usb_rxbuf 
+790f 67f10c02 store 2 ,core_usb_rx_saddr 
+7910 67f10c06 store 2 ,core_usb_rxptr 
+7911 58000781 setarg mem_usb_rxbuf_end 
+7912 67f10c04 store 2 ,core_usb_rx_eaddr 
+7913 708c1280 jam 0x80 ,core_usb_hmode 
+7914 708c0100 jam 0 ,core_usb_addr 
+7915 708c22ff jam 0xff ,core_usb_status 
+7916 5800093d setarg mem_usb_clear_mem_end 
+7917 d8a0084b arg mem_usb_clear_mem_start ,contw 
+7918 98a67200 isub contw ,loopcnt 
+7919 20207ca3 branch clear_mem 
+
+usb_offline_check_init:
+791a 6848884a fetcht 1 ,mem_usb_offline_check_gpio 
+791b 20206ed7 branch gpio_config_input 
+
+usb_offline_state:
+791c 6fe088ec fetch 1 ,mem_usb_device_enumeration_endflag 
+791d 207a0000 rtn blank 
+791e 6848884a fetcht 1 ,mem_usb_offline_check_gpio 
+791f 20406ee0 call gpio_get_bit 
+7920 2020f905 branch usb_init_restart ,true 
+7921 20600000 rtn 
+
+usb_init_param:
+7922 70084902 jam dev_default ,mem_usb0_state 
+7923 58000000 setarg 0x0 
+7924 67e08784 store 1 ,mem_remain 
+7925 67e10843 store 2 ,mem_usb_zero_packet 
+7926 1fe0fe01 pincrease 1 
+7927 67e10845 store 2 ,mem_usb_ones_packet 
+7928 1fe0fe01 pincrease 1 
+7929 67e10847 store 2 ,mem_usb_two_packet 
+792a d8a007d8 arg mem_string0 ,contw 
+792b 58030404 setarg 0x030404 
+792c e7e18005 istore 3 ,contw 
+792d 58000409 setarg 0x0409 
+792e e7e10005 istore 2 ,contw 
+792f d8a007dd arg mem_string1 ,contw 
+7930 38015906 setsect 0 ,0x15906 
+7931 380610d2 setsect 1 ,0x210d2 
+7932 38090494 setsect 2 ,0x10494 
+7933 380c0001 setsect 3 ,0x1 
+7934 e7e48005 istore 9 ,contw 
+7935 d8a007fb arg mem_string2 ,contw 
+7936 3801570f setsect 0 ,0x1570f 
+7937 38055c9a setsect 1 ,0x15c9a 
+7938 380a56c6 setsect 2 ,0x256c6 
+7939 380dcdcd setsect 3 ,0x1cdcd 
+793a e7e48005 istore 9 ,contw 
+793b 38014420 setsect 0 ,0x14420 
+793c 38065d99 setsect 1 ,0x25d99 
+793d 380a5636 setsect 2 ,0x25636 
+793e 380c0001 setsect 3 ,0x1 
+793f e7e38005 istore 7 ,contw 
+7940 d8a00819 arg mem_string3 ,contw 
+7941 3801620a setsect 0 ,0x1620a 
+7942 38040c8c setsect 1 ,0xc8c 
+7943 380b0333 setsect 2 ,0x30333 
+7944 380cc0c0 setsect 3 ,0xc0c0 
+7945 e7e48005 istore 9 ,contw 
+7946 38003130 setsect 0 ,0x3130 
+7947 e7e10005 istore 2 ,contw 
+7948 580092aa setarg usb_kbdata_vendor_define_addr 
+7949 67e10785 store 2 ,mem_hidreportdesc_kb 
+794a 58009307 setarg usb_msdata_addr 
+794b 67e10787 store 2 ,mem_hidreportdesc_m 
+794c d8c093fb arg usb_devicedata_addr ,contr 
+794d d8a00789 arg mem_devicedesc ,contw 
+794e df200013 arg 19 ,loopcnt 
+794f 20407cdc call memcpy 
+7950 d8c0940e arg usb_confdata_addr ,contr 
+7951 d8a0079c arg mem_confdesc ,contw 
+7952 df20003c arg 60 ,loopcnt 
+7953 20407cdc call memcpy 
+
+usb_config_cb:
+7954 6fe10837 fetch 2 ,mem_cb_usb_config 
+7955 20207d7b branch callback_func 
+
+usb_tx_interval_config:
+7956 6fe08839 fetch 1 ,mem_usb_tx_interval 
+7957 207a0000 rtn blank 
+7958 67e087be store 1 ,mem_confdesc + 34 
+7959 67e087d7 store 1 ,mem_confdesc + 59 
+795a 20600000 rtn 
+
+usb_nak_state:
+795b d8e00001 arg usb_timer_nak ,queue 
+795c 20407cf1 call timer_check 
+795d 247a0000 nrtn blank 
+795e 6fe088ed fetch 1 ,mem_usb_wakestate_onetime_flag 
+795f 247a0000 nrtn blank 
+7960 6fe088ec fetch 1 ,mem_usb_device_enumeration_endflag 
+7961 245a7c3a ncall usb_mac_wakeup_judge ,blank 
+7962 20600000 rtn 
+
+usb_nak_state_judge:
+7963 6fe086e7 fetch 1 ,mem_usb_status 
+7964 c2817966 bbit1 usb_status_nak ,usb_nak_state_timer_init 
+7965 20600000 rtn 
+
+usb_nak_state_timer_init:
+7966 2040796b call usb0_attached_state_judge 
+7967 20407cf0 call timer_reinit 
+7968 58000280 setarg timer_nak_delay 
+7969 d8e00001 arg usb_timer_nak ,queue 
+796a 20207ce3 branch timer_init 
+
+usb0_attached_state_judge:
+796b 6fe088de fetch 1 ,mem_usb_state 
+796c c0817970 bne usb_connected ,usb_clear_halt_dispose 
+796d 7008ed00 jam 0 ,mem_usb_wakestate_onetime_flag 
+796e 7008ee00 jam 0 ,mem_usb_mac_wakeup_trig 
+796f 20600000 rtn 
+
+usb_clear_halt_dispose:
+7970 6fe088f0 fetch 1 ,mem_usb_clear_halt 
+7971 207a0000 rtn blank 
+7972 7008f000 jam 0 ,mem_usb_clear_halt 
+7973 7008de02 jam usb_connected ,mem_usb_state 
+7974 7008ec01 jam 1 ,mem_usb_device_enumeration_endflag 
+7975 20600000 rtn 
+
+usb_rx_no_data:
+7976 6fe086e7 fetch 1 ,mem_usb_status 
+7977 c28079a1 bbit1 usb_status_setup ,usb_class_type 
+7978 20600000 rtn 
+
+usb_rx_len:
+7979 69510c02 fetchr contus ,2 ,core_usb_rx_saddr 
+797a 6a110c04 fetchr contue ,2 ,core_usb_rx_eaddr 
+797b 68710c06 fetchr contu ,2 ,core_usb_rxptr 
+797c efe10003 ifetch 2 ,contu 
+797d 1fec8400 rshift8 pdata ,temp 
+797e 18518400 rshift4 temp ,temp 
+797f d8c00fff arg 0xfff ,contr 
+7980 98c17200 iand contr ,loopcnt 
+7981 672106ea storer loopcnt ,2 ,mem_usb_read_len 
+7982 20600000 rtn 
+
+usb_rx_data:
+7983 6ff08c25 fetch 1 ,core_usb_txbusy 
+7984 c3830000 rtnbit1 usb_status_rxfull 
+7985 20407979 call usb_rx_len 
+
+usb_rx_read:
+7986 efe08003 ifetch 1 ,contu 
+7987 e7e08005 istore 1 ,contw 
+7988 c2007986 loop usb_rx_read 
+7989 60710c06 storer contu ,2 ,core_usb_rxptr 
+798a 20600000 rtn 
+
+usb_rx_ep13:
+798b d8a0093d arg mem_usb_ccid_buf ,contw 
+798c 20407986 call usb_rx_read 
+798d d8400941 arg mem_usb_ccid_buf + 4 ,temp 
+798e 60590c0e storet 2 ,core_usb_tx_saddr3 
+798f 6fe0893e fetch 1 ,mem_usb_ccid_buf + 1 
+7990 1fe0fe06 pincrease 6 
+7991 e7e08002 istore 1 ,temp 
+7992 708c1808 jam 0x8 ,core_usb_trig 
+7993 20600000 rtn 
+
+usb_rx:
+7994 4712c024 bpatchx patch24_5 ,mem_patch24 
+7995 6fe086e7 fetch 1 ,mem_usb_status 
+7996 c4028000 rtnbit0 usb_status_rxready 
+7997 20407979 call usb_rx_len 
+7998 2841fe0d compare 13 ,temp ,0xff 
+7999 2020f98b branch usb_rx_ep13 ,true 
+799a d8a0084b arg mem_usb_setup ,contw 
+799b 20407986 call usb_rx_read 
+799c 6fe086ea fetch 1 ,mem_usb_read_len 
+799d c0007976 beq 0x00 ,usb_rx_no_data 
+799e c000f9a8 beq 0x01 ,usb_out_one_byte 
+799f 1fe67c07 sub pdata ,7 ,null 
+79a0 20610000 rtn positive 
+
+usb_class_type:
+79a1 47134024 bpatchx patch24_6 ,mem_patch24 
+79a2 793f8023 set0 mark_isstr ,mark 
+79a3 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+79a4 1fe17e80 and_into 0x80 ,pdata 
+79a5 c04079ac beq in_device ,usb_in_device 
+79a6 c00079b4 beq out_device ,usb_out_device 
+79a7 2020233e branch assert 
+
+usb_out_one_byte:
+79a8 6fe0884b fetch 1 ,mem_usb_setup 
+79a9 c3838000 rtnbit1 7 
+79aa 20407b5e call usb_get_led_status 
+79ab 202079db branch usb0_reply_zerolen 
+
+usb_in_device:
+79ac 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+79ad 1ff1fe00 rshift4 pdata ,pdata 
+79ae 1fe37e00 rshift pdata ,pdata 
+79af 1fe17e03 and_into 0x03 ,pdata 
+79b0 c00079bc beq standard_req ,usb_in_standard_req 
+79b1 c000f9c2 beq class_req ,usb_in_class_req 
+79b2 c00179c7 beq manufacturer_req ,usb_in_manufacturer_req 
+79b3 2020233e branch assert 
+
+usb_out_device:
+79b4 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+79b5 1ff1fe00 rshift4 pdata ,pdata 
+79b6 1fe37e00 rshift pdata ,pdata 
+79b7 1fe17e03 and_into 0x03 ,pdata 
+79b8 c00079c8 beq standard_req ,usb_out_standard_req 
+79b9 c000f9d0 beq class_req ,usb_out_class_req 
+79ba c00179d5 beq manufacturer_req ,usb_out_manufacturer_req 
+79bb 2020233e branch assert 
+
+usb_in_standard_req:
+79bc 6fe0884c fetch 1 ,mem_usb_setup_brequest 
+79bd c00479dd beq get_configuration ,usb0_request_get_configuration 
+79be c00379f3 beq get_descriptor ,usb0_request_get_descriptor 
+79bf c0057a38 beq get_interface ,usb0_request_get_interface 
+79c0 c0007a4a beq get_status ,usb0_request_get_status 
+79c1 202079d6 branch usb0_force_stall 
+
+usb_in_class_req:
+79c2 6fe0884c fetch 1 ,mem_usb_setup_brequest 
+79c3 c0017a7f beq get_idle ,usb_get_idle 
+79c4 c000fa83 beq get_report ,usb_get_report 
+79c5 c001fa95 beq get_protocol ,usb_get_protocol_req 
+79c6 202079d6 branch usb0_force_stall 
+
+usb_in_manufacturer_req:
+79c7 202079d6 branch usb0_force_stall 
+
+usb_out_standard_req:
+79c8 6fe0884c fetch 1 ,mem_usb_setup_brequest 
+79c9 c000fa9f beq clear_feature ,usb0_request_clear_feature 
+79ca c001facf beq set_feature ,usb0_request_set_feature 
+79cb c002fafb beq set_address ,usb0_request_set_address 
+79cc c004fb14 beq set_configuration ,usb0_request_set_configuration 
+79cd c005fb2f beq set_interface ,usb0_request_set_interface 
+79ce c003f9d6 beq set_descriptor ,usb0_force_stall 
+79cf 202079d6 branch usb0_force_stall 
+
+usb_out_class_req:
+79d0 6fe0884c fetch 1 ,mem_usb_setup_brequest 
+79d1 c0057b40 beq set_idle ,usb_set_idle 
+79d2 c004fb52 beq set_report ,usb_set_report 
+79d3 c005fb70 beq set_protocol ,usb_set_protocol_req 
+79d4 202079d6 branch usb0_force_stall 
+
+usb_out_manufacturer_req:
+79d5 202079d6 branch usb0_force_stall 
+
+usb0_force_stall:
+79d6 4713c024 bpatchx patch24_7 ,mem_patch24 
+79d7 6ff08c19 fetch 1 ,core_usb_stall 
+79d8 79207e00 set1 0 ,pdata 
+79d9 67f08c19 store 1 ,core_usb_stall 
+79da 202079db branch usb0_reply_zerolen 
+
+usb0_reply_zerolen:
+79db 708c1b01 jam 0x1 ,core_usb_clear_nak 
+79dc 20600000 rtn 
+
+usb0_request_get_configuration:
+79dd 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+79de c0c079d6 bne in_device ,usb0_force_stall 
+79df 6fe0884f fetch 1 ,mem_usb_setup_windex 
+79e0 c08079d6 bne 0 ,usb0_force_stall 
+79e1 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
+79e2 c08079d6 bne 0 ,usb0_force_stall 
+79e3 6fe08851 fetch 1 ,mem_usb_setup_blength 
+79e4 c080f9d6 bne 1 ,usb0_force_stall 
+79e5 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+79e6 c08079d6 bne 0 ,usb0_force_stall 
+79e7 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+79e8 c08079d6 bne 0 ,usb0_force_stall 
+79e9 6fe0884e fetch 1 ,mem_usb_setup_bvalue + 1 
+79ea c08079d6 bne 0 ,usb0_force_stall 
+79eb 6fe08849 fetch 1 ,mem_usb0_state 
+79ec c00279ef beq dev_configured ,usb0_request_get_cfg_dev_cfg 
+79ed c001f9f1 beq dev_address ,usb0_request_get_cfg_dev_addr 
+79ee 202079d6 branch usb0_force_stall 
+
+usb0_request_get_cfg_dev_cfg:
+79ef da400001 arg 1 ,regb 
+79f0 20207a64 branch usb_send_ones_packet 
+
+usb0_request_get_cfg_dev_addr:
+79f1 da400001 arg 1 ,regb 
+79f2 20207a62 branch usb_send_zero_packet 
+
+usb0_request_get_descriptor:
+79f3 47144025 bpatchx patch25_0 ,mem_patch25 
+79f4 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+79f5 c000fa06 beq dsc_device ,dsc_device_info 
+79f6 c0017a1f beq dsc_config ,dsc_config_info 
+79f7 c001fa22 beq dsc_string ,dsc_string_info 
+79f8 c010f9fb beq dsc_hid ,dsc_hid_info 
+79f9 c0117a30 beq dsc_hid_report ,dsc_hid_report_info 
+79fa 202079d6 branch usb0_force_stall 
+
+dsc_hid_info:
+79fb 7008db00 jam 0 ,mem_usb_get_protocol_flag 
+79fc 6fe0884f fetch 1 ,mem_usb_setup_windex 
+79fd c0007a00 beq 0 ,dsc_hid_info_interface0 
+79fe c000fa03 beq 1 ,dsc_hid_info_interface1 
+79ff 202079d6 branch usb0_force_stall 
+
+dsc_hid_info_interface0:
+7a00 6a4087af fetchr regb ,1 ,mem_confdesc + 19 
+7a01 da2007af arg mem_confdesc + 19 ,rega 
+7a02 20207b7f branch usb0_respond 
+
+dsc_hid_info_interface1:
+7a03 6a4087c8 fetchr regb ,1 ,mem_confdesc + 44 
+7a04 da2007c8 arg mem_confdesc + 44 ,rega 
+7a05 20207b7f branch usb0_respond 
+
+dsc_device_info:
+7a06 6fe088ef fetch 1 ,mem_usb_set_high_addr_flag 
+7a07 245a7a17 ncall usb_set_high_addr ,blank 
+7a08 58000789 setarg mem_devicedesc 
+7a09 68488789 fetcht 1 ,mem_devicedesc 
+
+dsc_info_set_data_len:
+7a0a 67e108e6 store 2 ,mem_dsc_info_data_pointer 
+7a0b 604888e8 storet 1 ,mem_dsc_info_len 
+7a0c 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7a0d 98467c00 isub temp ,null 
+7a0e 24217a15 nbranch dsc_info_set_current_data_len ,positive 
+
+dsc_info_set_initial_data_len:
+7a0f 6fe088e8 fetch 1 ,mem_dsc_info_len 
+
+dsc_info_set_data_size_completed:
+7a10 98002400 iforce regb 
+7a11 6fe108e6 fetch 2 ,mem_dsc_info_data_pointer 
+7a12 1fe0fe01 add pdata ,1 ,pdata 
+7a13 98002200 iforce rega 
+7a14 20207b7f branch usb0_respond 
+
+dsc_info_set_current_data_len:
+7a15 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7a16 20207a10 branch dsc_info_set_data_size_completed 
+
+usb_set_high_addr:
+7a17 6ff08c01 fetch 1 ,core_usb_addr 
+7a18 245a7a1b ncall usb0_set_addr ,blank 
+7a19 7008ef00 jam 0 ,mem_usb_set_high_addr_flag 
+7a1a 20600000 rtn 
+
+usb0_set_addr:
+7a1b 6ff08c01 fetch 1 ,core_usb_addr 
+7a1c 79207e07 set1 7 ,pdata 
+7a1d 67f08c01 store 1 ,core_usb_addr 
+7a1e 20600000 rtn 
+
+dsc_config_info:
+7a1f 5800079c setarg mem_confdesc 
+7a20 6848879c fetcht 1 ,mem_confdesc 
+7a21 20207a0a branch dsc_info_set_data_len 
+
+dsc_string_info:
+7a22 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7a23 1fe67c03 sub pdata ,3 ,null 
+7a24 242179d6 nbranch usb0_force_stall ,positive 
+7a25 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7a26 da2007d8 arg mem_string0 ,rega 
+7a27 c0007b7d beq 0 ,usb0_respond_length 
+7a28 79200023 set1 mark_isstr ,mark 
+7a29 da2007dd arg mem_string1 ,rega 
+7a2a c000fb7d beq 1 ,usb0_respond_length 
+7a2b da2007fb arg mem_string2 ,rega 
+7a2c c0017b7d beq 2 ,usb0_respond_length 
+7a2d da200819 arg mem_string3 ,rega 
+7a2e c001fb7d beq 3 ,usb0_respond_length 
+7a2f 20600000 rtn 
+
+dsc_hid_report_info:
+7a30 6fe1084f fetch 2 ,mem_usb_setup_windex 
+7a31 c000fa34 beq 1 ,dsc_hid_report_info0 
+7a32 6a210785 fetchr rega ,2 ,mem_hidreportdesc_kb 
+7a33 20207b7d branch usb0_respond_length 
+
+dsc_hid_report_info0:
+7a34 7008ec01 jam 1 ,mem_usb_device_enumeration_endflag 
+7a35 7008de01 jam usb_got_report_req ,mem_usb_state 
+7a36 6a210787 fetchr rega ,2 ,mem_hidreportdesc_m 
+7a37 20207b7d branch usb0_respond_length 
+
+usb0_request_get_interface:
+7a38 6fe08849 fetch 1 ,mem_usb0_state 
+7a39 c08279d6 bne dev_configured ,usb0_force_stall 
+7a3a 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+7a3b c0c0f9d6 bne in_interface ,usb0_force_stall 
+7a3c 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7a3d c08079d6 bne 0 ,usb0_force_stall 
+7a3e 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+7a3f c08079d6 bne 0 ,usb0_force_stall 
+7a40 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7a41 c080f9d6 bne 1 ,usb0_force_stall 
+7a42 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+7a43 c08079d6 bne 0 ,usb0_force_stall 
+7a44 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7a45 c08079d6 bne 0 ,usb0_force_stall 
+7a46 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
+7a47 c08079d6 bne 0 ,usb0_force_stall 
+7a48 da400001 arg 1 ,regb 
+7a49 20207a62 branch usb_send_zero_packet 
+
+usb0_request_get_status:
+7a4a 6fe08849 fetch 1 ,mem_usb0_state 
+7a4b c00179d6 beq dev_default ,usb0_force_stall 
+7a4c 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7a4d c08079d6 bne 0 ,usb0_force_stall 
+7a4e 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+7a4f c08079d6 bne 0 ,usb0_force_stall 
+7a50 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7a51 c08179d6 bne 2 ,usb0_force_stall 
+7a52 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+7a53 c08079d6 bne 0 ,usb0_force_stall 
+7a54 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
+7a55 c08079d6 bne 0 ,usb0_force_stall 
+7a56 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+7a57 c0407a5d beq in_device ,usb0_get_status_in_device 
+7a58 c040fa68 beq in_interface ,usb0_get_status_in_interface 
+7a59 c0417a6c beq in_endpoint ,usb0_get_status_in_endpoint 
+7a5a 202079d6 branch usb0_force_stall 
+
+usb0_sdsystem_dispose:
+7a5b 7008e101 jam 1 ,mem_sdsystem_wakeup_flag 
+7a5c 20207a66 branch usb_send_two_packet 
+
+usb0_get_status_in_device:
+7a5d 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7a5e c08079d6 bne 0 ,usb0_force_stall 
+7a5f da400002 arg 2 ,regb 
+7a60 6fe088df fetch 1 ,mem_usb_remote_wakeup 
+7a61 c000fa5b beq 0x01 ,usb0_sdsystem_dispose 
+
+usb_send_zero_packet:
+7a62 da200843 arg mem_usb_zero_packet ,rega 
+7a63 20207b7f branch usb0_respond 
+
+usb_send_ones_packet:
+7a64 da200845 arg mem_usb_ones_packet ,rega 
+7a65 20207b7f branch usb0_respond 
+
+usb_send_two_packet:
+7a66 da200847 arg mem_usb_two_packet ,rega 
+7a67 20207b7f branch usb0_respond 
+
+usb0_get_status_in_interface:
+7a68 6fe08849 fetch 1 ,mem_usb0_state 
+7a69 c08279d6 bne dev_configured ,usb0_force_stall 
+7a6a da400002 arg 2 ,regb 
+7a6b 20207a62 branch usb_send_zero_packet 
+
+usb0_get_status_in_endpoint:
+7a6c 6fe08849 fetch 1 ,mem_usb0_state 
+7a6d c08279d6 bne dev_configured ,usb0_force_stall 
+7a6e 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7a6f c040fa79 beq in_ep1 ,usb0_get_status_in_ep_in_ep1 
+7a70 c0417a7b beq in_ep2 ,usb0_get_status_in_ep_in_ep2 
+7a71 c041fa7d beq in_ep3 ,usb0_get_status_in_ep_in_ep3 
+7a72 1fe17e7f and_into 0x7f ,pdata 
+7a73 c0007a75 beq 0x00 ,usb0_get_status_in_ep_in_ep0 
+7a74 202079d6 branch usb0_force_stall 
+
+usb0_get_status_in_ep_in_ep0:
+7a75 6fe088e2 fetch 1 ,mem_usb_ep0_stall_status 
+
+usb0_get_status_in_ep_in_ack:
+7a76 da400002 arg 2 ,regb 
+7a77 c000fa64 beq 1 ,usb_send_ones_packet 
+7a78 20207a62 branch usb_send_zero_packet 
+
+usb0_get_status_in_ep_in_ep1:
+7a79 6fe088e3 fetch 1 ,mem_usb_ep1_stall_status 
+7a7a 20207a76 branch usb0_get_status_in_ep_in_ack 
+
+usb0_get_status_in_ep_in_ep2:
+7a7b 6fe088e4 fetch 1 ,mem_usb_ep2_stall_status 
+7a7c 20207a76 branch usb0_get_status_in_ep_in_ack 
+
+usb0_get_status_in_ep_in_ep3:
+7a7d 6fe088e5 fetch 1 ,mem_usb_ep3_stall_status 
+7a7e 20207a76 branch usb0_get_status_in_ep_in_ack 
+
+usb_get_idle:
+7a7f 7008d901 jam 1 ,mem_usb_idle_flag 
+7a80 da2008da arg mem_usb_idle_rate ,rega 
+7a81 da400001 arg 1 ,regb 
+7a82 20207b7f branch usb0_respond 
+
+usb_get_report:
+7a83 4714c025 bpatchx patch25_1 ,mem_patch25 
+7a84 6fe1084d fetch 2 ,mem_usb_setup_bvalue 
+7a85 d84001ba arg pc_get_report ,temp 
+7a86 98467c00 isub temp ,null 
+7a87 2422f9d6 nbranch usb0_force_stall ,zero 
+
+usb_get_report_dispose:
+7a88 6fe088d6 fetch 1 ,mem_usb0_data_ready_report 
+7a89 243a7a92 nbranch usb_get_report_data_success ,blank 
+7a8a 70089300 jam pc_get_nondata ,mem_usb0_get_report_data 
+
+usb_get_report_send_data:
+7a8b 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7a8c 98002400 iforce regb 
+7a8d da200893 arg mem_usb0_get_report_data ,rega 
+7a8e 20407b7f call usb0_respond 
+
+usb_get_report_data_release:
+7a8f d8a00893 arg mem_usb0_get_report_data ,contw 
+7a90 df200040 arg 64 ,loopcnt 
+7a91 20207ca5 branch memset0 
+
+usb_get_report_data_success:
+7a92 7008d600 jam 0 ,mem_usb0_data_ready_report 
+7a93 70089301 jam pc_get_data ,mem_usb0_get_report_data 
+7a94 20207a8b branch usb_get_report_send_data 
+
+usb_get_protocol_req:
+7a95 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7a96 c080f9d6 bne 1 ,usb0_force_stall 
+7a97 7008db01 jam 1 ,mem_usb_get_protocol_flag 
+7a98 da400001 arg 1 ,regb 
+7a99 6fe088dd fetch 1 ,mem_usb_set_protocol_value 
+7a9a c0007a9d beq 0 ,usb_get_report_protocol 
+7a9b c000fa9e beq 1 ,usb_get_boot_protocol 
+7a9c 20207a62 branch usb_send_zero_packet 
+
+usb_get_report_protocol:
+7a9d 20207a64 branch usb_send_ones_packet 
+
+usb_get_boot_protocol:
+7a9e 20207a62 branch usb_send_zero_packet 
+
+usb0_request_clear_feature:
+7a9f 6fe08849 fetch 1 ,mem_usb0_state 
+7aa0 c08279d6 bne dev_configured ,usb0_force_stall 
+7aa1 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7aa2 c08079d6 bne 0 ,usb0_force_stall 
+7aa3 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+7aa4 c08079d6 bne 0 ,usb0_force_stall 
+7aa5 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+7aa6 c08079d6 bne 0 ,usb0_force_stall 
+7aa7 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
+7aa8 c08079d6 bne 0 ,usb0_force_stall 
+7aa9 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+7aaa c0007aae beq out_device ,usb0_request_clear_feature_out_device 
+7aab c000fabc beq out_interface ,usb0_request_clear_feature_out_interface 
+7aac c0017abd beq out_endpoint ,usb0_request_clear_feature_out_endpoint 
+7aad 202079d6 branch usb0_force_stall 
+
+usb0_request_clear_feature_out_device:
+7aae 47154025 bpatchx patch25_2 ,mem_patch25 
+7aaf 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7ab0 c080f9d6 bne device_remote_wakeup ,usb0_force_stall 
+7ab1 6ff08c00 fetch 1 ,core_usb_config 
+7ab2 793ffe07 set0 7 ,pdata 
+7ab3 67f08c00 store 1 ,core_usb_config 
+7ab4 7008df00 jam 0 ,mem_usb_remote_wakeup 
+7ab5 7008e001 jam 1 ,mem_usb_clear_remote_wakeup 
+7ab6 6fe088e1 fetch 1 ,mem_sdsystem_wakeup_flag 
+7ab7 203a79db branch usb0_reply_zerolen ,blank 
+7ab8 7008e100 jam 0 ,mem_sdsystem_wakeup_flag 
+7ab9 7008e000 jam 0 ,mem_usb_clear_remote_wakeup 
+7aba 7008de02 jam usb_connected ,mem_usb_state 
+7abb 202079db branch usb0_reply_zerolen 
+
+usb0_request_clear_feature_out_interface:
+7abc 202079d6 branch usb0_force_stall 
+
+usb0_request_clear_feature_out_endpoint:
+7abd 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7abe c08079d6 bne endpoint_halt ,usb0_force_stall 
+7abf 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7ac0 c040fac8 beq in_ep1 ,usb0_force_stall_ep1_in_off 
+7ac1 c0417acb beq in_ep2 ,usb0_force_stall_ep2_in_off 
+7ac2 c041facd beq in_ep3 ,usb0_force_stall_ep3_in_off 
+7ac3 1fe17e7f and_into 0x7f ,pdata 
+7ac4 c0007ac6 beq 0x00 ,usb0_force_stall_ep0_in_off 
+7ac5 202079d6 branch usb0_force_stall 
+
+usb0_force_stall_ep0_in_off:
+7ac6 7008e200 jam 0 ,mem_usb_ep0_stall_status 
+7ac7 202079db branch usb0_reply_zerolen 
+
+usb0_force_stall_ep1_in_off:
+7ac8 7008e300 jam 0 ,mem_usb_ep1_stall_status 
+
+usb0_force_stall_ep1_in_off_reply:
+7ac9 7008f001 jam 1 ,mem_usb_clear_halt 
+7aca 202079db branch usb0_reply_zerolen 
+
+usb0_force_stall_ep2_in_off:
+7acb 7008e400 jam 0 ,mem_usb_ep2_stall_status 
+7acc 20207ac9 branch usb0_force_stall_ep1_in_off_reply 
+
+usb0_force_stall_ep3_in_off:
+7acd 7008e500 jam 0 ,mem_usb_ep3_stall_status 
+7ace 20207ac9 branch usb0_force_stall_ep1_in_off_reply 
+
+usb0_request_set_feature:
+7acf 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7ad0 c08079d6 bne 0 ,usb0_force_stall 
+7ad1 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+7ad2 c08079d6 bne 0 ,usb0_force_stall 
+7ad3 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+7ad4 c0007ad8 beq out_device ,usb0_request_set_feature_out_device 
+7ad5 c000fae7 beq out_interface ,usb0_request_set_feature_out_interface 
+7ad6 c0017ae8 beq out_endpoint ,usb0_request_set_feature_out_endpoint 
+7ad7 202079d6 branch usb0_force_stall 
+
+usb0_request_set_feature_out_device:
+7ad8 4715c025 bpatchx patch25_3 ,mem_patch25 
+7ad9 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7ada c080f9d6 bne device_remote_wakeup ,usb0_force_stall 
+7adb 20403dd6 call dongle_set_pc_sleep_flag 
+7adc 6ff08c00 fetch 1 ,core_usb_config 
+7add 79207e07 set1 7 ,pdata 
+7ade 67f08c00 store 1 ,core_usb_config 
+7adf 7008df01 jam 1 ,mem_usb_remote_wakeup 
+7ae0 7008de03 jam usb_sleep ,mem_usb_state 
+7ae1 7008d700 jam 0 ,mem_usb_tx_win_enable 
+7ae2 204079db call usb0_reply_zerolen 
+
+usb_wakeup_timer_reinit:
+7ae3 20407cf0 call timer_reinit 
+7ae4 58001388 setarg timer_wakeup_delay 
+7ae5 d8e0000f arg usb_timer_wakeup ,queue 
+7ae6 20207ce3 branch timer_init 
+
+usb0_request_set_feature_out_interface:
+7ae7 202079d6 branch usb0_force_stall 
+
+usb0_request_set_feature_out_endpoint:
+7ae8 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7ae9 c08079d6 bne endpoint_halt ,usb0_force_stall 
+7aea 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+7aeb c08079d6 bne 0 ,usb0_force_stall 
+7aec 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7aed c040faf5 beq in_ep1 ,usb0_force_stall_ep1_in_on 
+7aee c0417af7 beq in_ep2 ,usb0_force_stall_ep2_in_on 
+7aef c041faf9 beq in_ep3 ,usb0_force_stall_ep3_in_on 
+7af0 1fe17e7f and_into 0x7f ,pdata 
+7af1 c0007af3 beq 0x00 ,usb0_force_stall_ep0_in_on 
+7af2 202079d6 branch usb0_force_stall 
+
+usb0_force_stall_ep0_in_on:
+7af3 7008e201 jam 1 ,mem_usb_ep0_stall_status 
+7af4 202079db branch usb0_reply_zerolen 
+
+usb0_force_stall_ep1_in_on:
+7af5 7008e301 jam 1 ,mem_usb_ep1_stall_status 
+7af6 202079db branch usb0_reply_zerolen 
+
+usb0_force_stall_ep2_in_on:
+7af7 7008e401 jam 1 ,mem_usb_ep2_stall_status 
+7af8 202079db branch usb0_reply_zerolen 
+
+usb0_force_stall_ep3_in_on:
+7af9 7008e501 jam 1 ,mem_usb_ep3_stall_status 
+7afa 202079db branch usb0_reply_zerolen 
+
+usb0_request_set_address:
+7afb 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+7afc c08079d6 bne out_device ,usb0_force_stall 
+7afd 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7afe c08079d6 bne 0 ,usb0_force_stall 
+7aff 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
+7b00 c08079d6 bne 0 ,usb0_force_stall 
+7b01 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7b02 c08079d6 bne 0 ,usb0_force_stall 
+7b03 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+7b04 c08079d6 bne 0 ,usb0_force_stall 
+7b05 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+7b06 c08079d6 bne 0 ,usb0_force_stall 
+7b07 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7b08 1fe17e80 and_into 0x80 ,pdata 
+7b09 c08079d6 bne 0 ,usb0_force_stall 
+7b0a 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7b0b c0807b12 bne 0 ,usb_usb0_state_set_dev_addr 
+
+usb_usb0_state_set_dev_default:
+7b0c 70084902 jam dev_default ,mem_usb0_state 
+
+usb0_request_set_wait_address:
+7b0d 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7b0e 67f08c01 store 1 ,core_usb_addr 
+7b0f 204079db call usb0_reply_zerolen 
+7b10 7008ef01 jam 1 ,mem_usb_set_high_addr_flag 
+7b11 20600000 rtn 
+
+usb_usb0_state_set_dev_addr:
+7b12 70084903 jam dev_address ,mem_usb0_state 
+7b13 20207b0d branch usb0_request_set_wait_address 
+
+usb0_request_set_configuration:
+7b14 6fe08849 fetch 1 ,mem_usb0_state 
+7b15 c00179d6 beq dev_default ,usb0_force_stall 
+7b16 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+7b17 c08079d6 bne out_device ,usb0_force_stall 
+7b18 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7b19 c08079d6 bne 0 ,usb0_force_stall 
+7b1a 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
+7b1b c08079d6 bne 0 ,usb0_force_stall 
+7b1c 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7b1d c08079d6 bne 0 ,usb0_force_stall 
+7b1e 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+7b1f c08079d6 bne 0 ,usb0_force_stall 
+7b20 6fe0884e fetch 1 ,mem_usb_setup_bvalue + 1 
+7b21 c08079d6 bne 0 ,usb0_force_stall 
+7b22 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7b23 1fe67c01 sub pdata ,usb_max_num_cfg ,null 
+7b24 242179d6 nbranch usb0_force_stall ,positive 
+7b25 6fe08849 fetch 1 ,mem_usb0_state 
+7b26 c001fb29 beq dev_address ,usb0_request_set_cfg_addr_state 
+7b27 c0027b29 beq dev_configured ,usb0_request_set_cfg_cfg_state 
+7b28 202079d6 branch usb0_force_stall 
+
+usb0_request_set_cfg_addr_state:
+
+usb0_request_set_cfg_cfg_state:
+7b29 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7b2a c0007b2d beq 0 ,usb0_request_set_cfg_stay_addr_state 
+7b2b 70084904 jam dev_configured ,mem_usb0_state 
+7b2c 202079db branch usb0_reply_zerolen 
+
+usb0_request_set_cfg_stay_addr_state:
+7b2d 70084903 jam dev_address ,mem_usb0_state 
+7b2e 202079db branch usb0_reply_zerolen 
+
+usb0_request_set_interface:
+7b2f 6fe08849 fetch 1 ,mem_usb0_state 
+7b30 c08279d6 bne dev_configured ,usb0_force_stall 
+7b31 6fe0884b fetch 1 ,mem_usb_setup_bmrequesttype 
+7b32 c080f9d6 bne out_interface ,usb0_force_stall 
+7b33 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7b34 c08079d6 bne 0 ,usb0_force_stall 
+7b35 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+7b36 c08079d6 bne 0 ,usb0_force_stall 
+7b37 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7b38 c08079d6 bne 0 ,usb0_force_stall 
+7b39 6fe08852 fetch 1 ,mem_usb_setup_blengthh 
+7b3a c08079d6 bne 0 ,usb0_force_stall 
+7b3b 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7b3c c08079d6 bne 0 ,usb0_force_stall 
+7b3d 6fe08850 fetch 1 ,mem_usb_setup_windex + 1 
+7b3e c08079d6 bne 0 ,usb0_force_stall 
+7b3f 202079db branch usb0_reply_zerolen 
+
+usb_set_idle:
+7b40 47164025 bpatchx patch25_4 ,mem_patch25 
+7b41 7008d901 jam 1 ,mem_usb_idle_flag 
+7b42 6fe0884e fetch 1 ,mem_usb_setup_bvalueh 
+7b43 67e088da store 1 ,mem_usb_idle_rate 
+7b44 6fe0884f fetch 1 ,mem_usb_setup_windex 
+7b45 1fe67c01 sub pdata ,1 ,null 
+7b46 2042fb4e call usb_clear_remote_wakeup_set0 ,zero 
+7b47 6fe088de fetch 1 ,mem_usb_state 
+7b48 c08279db bne usb_resume ,usb0_reply_zerolen 
+7b49 7008de02 jam usb_connected ,mem_usb_state 
+7b4a 204079db call usb0_reply_zerolen 
+7b4b 20007530 nop 30000 
+7b4c 20007530 nop 30000 
+7b4d 20600000 rtn 
+
+usb_clear_remote_wakeup_set0:
+7b4e 7008ec01 jam 1 ,mem_usb_device_enumeration_endflag 
+7b4f 7008e000 jam 0 ,mem_usb_clear_remote_wakeup 
+7b50 7008de04 jam usb_resume ,mem_usb_state 
+7b51 20600000 rtn 
+
+usb_set_report:
+7b52 4716c025 bpatchx patch25_5 ,mem_patch25 
+7b53 20003a98 nop 15000 
+7b54 d8a00853 arg mem_usb0_set_report_data ,contw 
+7b55 20407983 call usb_rx_data 
+7b56 7008d501 jam 1 ,mem_usb0_get_set_report 
+7b57 20407b62 call usb_set_report_resume_judge 
+7b58 6fe1084d fetch 2 ,mem_usb_setup_bvalue 
+7b59 67e108d3 store 2 ,mem_usb_setup_bvalue_temp 
+7b5a 708c1b02 jam 0x02 ,core_usb_clear_nak 
+7b5b 6fe088d7 fetch 1 ,mem_usb_tx_win_enable 
+7b5c 207a0000 rtn blank 
+7b5d 6fe08853 fetch 1 ,mem_usb0_set_report_data 
+
+usb_get_led_status:
+7b5e 67e0c638 store 1 ,mem_24g_led_status 
+7b5f 7008d700 jam 0 ,mem_usb_tx_win_enable 
+7b60 70462803 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+7b61 20600000 rtn 
+
+usb_set_report_resume_judge:
+7b62 6fe1084d fetch 2 ,mem_usb_setup_bvalue 
+7b63 d8400200 arg pc_set_report_bvalue ,temp 
+7b64 98467c00 isub temp ,null 
+7b65 24628000 nrtn zero 
+7b66 6fe1084f fetch 2 ,mem_usb_setup_windex 
+7b67 d8400000 arg pc_set_report_windex ,temp 
+7b68 98467c00 isub temp ,null 
+7b69 24628000 nrtn zero 
+7b6a 6fe10851 fetch 2 ,mem_usb_setup_blength 
+7b6b d8400001 arg pc_set_report_blength ,temp 
+7b6c 98467c00 isub temp ,null 
+7b6d 24628000 nrtn zero 
+7b6e 7008d701 jam 1 ,mem_usb_tx_win_enable 
+7b6f 20600000 rtn 
+
+usb_set_protocol_req:
+7b70 6fe08851 fetch 1 ,mem_usb_setup_blength 
+7b71 c08079d6 bne 0 ,usb0_force_stall 
+7b72 6fe0884d fetch 1 ,mem_usb_setup_bvalue 
+7b73 c0007b76 beq boot_protocol ,usb_set_boot_protocol 
+7b74 c000fb79 beq report_protocol ,usb_set_report_protocol 
+7b75 202079d6 branch usb0_force_stall 
+
+usb_set_boot_protocol:
+7b76 7008dc00 jam 0 ,mem_usb_set_protocol_status 
+7b77 7008dd01 jam 1 ,mem_usb_set_protocol_value 
+7b78 202079db branch usb0_reply_zerolen 
+
+usb_set_report_protocol:
+7b79 7008d801 jam 1 ,mem_usb_tx_mac_enable 
+7b7a 7008dc01 jam 1 ,mem_usb_set_protocol_status 
+7b7b 7008dd00 jam 0 ,mem_usb_set_protocol_value 
+7b7c 202079db branch usb0_reply_zerolen 
+
+usb0_respond_length:
+7b7d ea408011 ifetchr regb ,1 ,rega 
+7b7e 1a20a201 increase 1 ,rega 
+
+usb0_respond:
+7b7f 47174025 bpatchx patch25_6 ,mem_patch25 
+7b80 7920000e set1 mark_usb_first_resp ,mark 
+7b81 c591fb84 bmark0 mark_isstr ,usb0_respond_nostr 
+7b82 1a40a401 increase 1 ,regb 
+7b83 1a43a400 lshift regb ,regb 
+
+usb0_respond_nostr:
+7b84 62210782 storer rega ,2 ,mem_bufptr 
+7b85 62408784 storer regb ,1 ,mem_remain 
+7b86 20207b8a branch usb0_tx 
+7b87 20600000 rtn 
+
+usb_no_respond_data:
+7b88 d8e00000 arg 0 ,queue 
+7b89 20207bcb branch usb_trig 
+
+usb0_tx:
+7b8a 4717c025 bpatchx patch25_7 ,mem_patch25 
+7b8b 6ff08c25 fetch 1 ,core_usb_txbusy 
+7b8c c3800000 rtnbit1 0 
+7b8d 6fe08784 fetch 1 ,mem_remain 
+7b8e 207a0000 rtn blank 
+7b8f 1fe27200 copy pdata ,loopcnt 
+7b90 98000400 iforce temp 
+7b91 6fe10851 fetch 2 ,mem_usb_setup_blength 
+7b92 1fe67c40 sub pdata ,ep0_packet_size ,null 
+7b93 20217b98 branch usb0_tx_short ,positive 
+7b94 1f267c40 sub loopcnt ,ep0_packet_size ,null 
+7b95 20217b9c branch usb0_tx_info ,positive 
+7b96 18007240 force ep0_packet_size ,loopcnt 
+7b97 20207b9c branch usb0_tx_info 
+
+usb0_tx_short:
+7b98 9f267c00 isub loopcnt ,null 
+7b99 20217b9c branch usb0_tx_info ,positive 
+7b9a 98007200 iforce loopcnt 
+7b9b 67e08784 store 1 ,mem_remain 
+
+usb0_tx_info:
+7b9c 6fe08784 fetch 1 ,mem_remain 
+7b9d 9f267e00 isub loopcnt ,pdata 
+7b9e 67e08784 store 1 ,mem_remain 
+7b9f 1f20ffff add loopcnt ,-1 ,pdata 
+7ba0 67e086ec store 1 ,mem_usb_txbuf 
+7ba1 c591fbae bmark0 mark_isstr ,usb0_tx_nostr 
+7ba2 1fe37e00 rshift pdata ,pdata 
+7ba3 1f20ffff add loopcnt ,-1 ,pdata 
+7ba4 67e086ec store 1 ,mem_usb_txbuf 
+7ba5 c5877bae bmark0 mark_usb_first_resp ,usb0_tx_nostr 
+7ba6 793f800e set0 mark_usb_first_resp ,mark 
+7ba7 e0408005 istoret 1 ,contw 
+7ba8 58000003 setarg 3 
+7ba9 e7e08005 istore 1 ,contw 
+7baa 1f20f3ff increase -1 ,loopcnt 
+7bab 1f227e00 copy loopcnt ,pdata 
+7bac 2422fbae nbranch usb0_tx_nostr ,zero 
+7bad 1f20f201 increase 1 ,loopcnt 
+
+usb0_tx_nostr:
+7bae 6fe10782 fetch 2 ,mem_bufptr 
+7baf 1fe20c00 copy pdata ,contr 
+
+usb0_tx0:
+7bb0 efe08006 ifetch 1 ,contr 
+7bb1 e7e08005 istore 1 ,contw 
+7bb2 c591fbb5 bmark0 mark_isstr ,usb0_tx1 
+7bb3 58000000 setarg 0 
+7bb4 e7e08005 istore 1 ,contw 
+
+usb0_tx1:
+7bb5 c2007bb0 loop usb0_tx0 
+7bb6 18c27e00 copy contr ,pdata 
+7bb7 67e10782 store 2 ,mem_bufptr 
+7bb8 580006ec setarg mem_usb_txbuf 
+7bb9 67f10c08 store 2 ,core_usb_tx_saddr0 
+7bba d8e00000 arg 0 ,queue 
+7bbb 20407bcb call usb_trig 
+7bbc 6fe08784 fetch 1 ,mem_remain 
+7bbd 247a0000 nrtn blank 
+7bbe 708c1b02 jam 2 ,core_usb_clear_nak 
+7bbf 6fe088de fetch 1 ,mem_usb_state 
+7bc0 c1808000 rtnne usb_got_report_req 
+7bc1 7008de02 jam usb_connected ,mem_usb_state 
+7bc2 20600000 rtn 
+
+usb_tx_ep1:
+7bc3 da20072d arg mem_usb_txbuf1 ,rega 
+7bc4 d8e00001 arg 1 ,queue 
+7bc5 62310c0a storer rega ,2 ,core_usb_tx_saddr1 
+
+usb_tx_buf:
+7bc6 1f20ffff add loopcnt ,-1 ,pdata 
+7bc7 e7e08011 istore 1 ,rega 
+
+usb_tx_loop:
+7bc8 efe08006 ifetch 1 ,contr 
+7bc9 e7e08005 istore 1 ,contw 
+7bca c2007bc8 loop usb_tx_loop 
+
+usb_trig:
+7bcb 58000000 setarg 0 
+7bcc f9207e00 qset1 pdata 
+7bcd 67f08c18 store 1 ,core_usb_trig 
+7bce 20600000 rtn 
+
+usb_tx_ep2:
+7bcf d8e00002 arg 2 ,queue 
+7bd0 da200737 arg mem_usb_txbuf2 ,rega 
+7bd1 62310c0c storer rega ,2 ,core_usb_tx_saddr2 
+7bd2 20207bc6 branch usb_tx_buf 
+
+usb_tx:
+7bd3 47184026 bpatchx patch26_0 ,mem_patch26 
+7bd4 6fe088eb fetch 1 ,mem_usb_tx_enable 
+7bd5 207a0000 rtn blank 
+7bd6 6ff08c25 fetch 1 ,core_usb_txbusy 
+7bd7 1fe17e0f and_into 0x0f ,pdata 
+7bd8 243a7c32 nbranch usb_inwake_state_tx_dispose ,blank 
+7bd9 6fe088ec fetch 1 ,mem_usb_device_enumeration_endflag 
+7bda 203a7bfe branch usb_tx_fifo_release ,blank 
+7bdb 6fe088de fetch 1 ,mem_usb_state 
+7bdc c001fc42 beq usb_sleep ,usb_windows_wakeup 
+7bdd c0817bfe bne usb_connected ,usb_tx_fifo_release 
+7bde 6fe088e0 fetch 1 ,mem_usb_clear_remote_wakeup 
+7bdf 243a7bfe nbranch usb_tx_fifo_release ,blank 
+7be0 20407be2 call usb_tx_data_ep1 
+7be1 20207bee branch usb_tx_data_ep2 
+
+usb_tx_data_ep1:
+7be2 6ff08c25 fetch 1 ,core_usb_txbusy 
+7be3 c3808000 rtnbit1 1 
+7be4 6fe088eb fetch 1 ,mem_usb_tx_enable 
+7be5 c4008000 rtnbit0 1 
+7be6 6fe088eb fetch 1 ,mem_usb_tx_enable 
+7be7 793ffe01 set0 1 ,pdata 
+7be8 67e088eb store 1 ,mem_usb_tx_enable 
+7be9 4718c026 bpatchx patch26_1 ,mem_patch26 
+7bea 6fe088e9 fetch 1 ,mem_usb_ep1_data 
+7beb 207a0000 rtn blank 
+7bec c0087c20 beq usb_ep1_kb ,usb_tx_kb_normal_data 
+7bed 2020233e branch assert 
+
+usb_tx_data_ep2:
+7bee 6ff08c25 fetch 1 ,core_usb_txbusy 
+7bef c3810000 rtnbit1 2 
+7bf0 6fe088eb fetch 1 ,mem_usb_tx_enable 
+7bf1 c4010000 rtnbit0 2 
+7bf2 6fe088eb fetch 1 ,mem_usb_tx_enable 
+7bf3 793ffe02 set0 2 ,pdata 
+7bf4 67e088eb store 1 ,mem_usb_tx_enable 
+7bf5 47194026 bpatchx patch26_2 ,mem_patch26 
+7bf6 6fe088ea fetch 1 ,mem_usb_ep2_data 
+7bf7 207a0000 rtn blank 
+7bf8 c0107c01 beq usb_ep2_ms ,usb_tx_ms_data 
+7bf9 c010fc1c beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+7bfa c0117c26 beq usb_ep2_systemkey ,usb_tx_kb_systemkey_data 
+7bfb c011fc2a beq usb_ep2_bit_consumer ,usb_tx_kb_bit_consumer_data 
+7bfc c0127c2e beq usb_ep2_n_key_rollover ,usb_tx_kb_n_key_rollover_data 
+7bfd 2020233e branch assert 
+
+usb_tx_fifo_release:
+7bfe d8a008f1 arg mem_usb_mouse_data ,contw 
+7bff df200040 arg 64 ,loopcnt 
+7c00 20207ca5 branch memset0 
+
+usb_tx_ms_data:
+7c01 6fe088d9 fetch 1 ,mem_usb_idle_flag 
+7c02 684888db fetcht 1 ,mem_usb_get_protocol_flag 
+7c03 98417e00 iand temp ,pdata 
+7c04 203a7c18 branch usb_tx_ms_data_normal_mode ,blank 
+7c05 684888dc fetcht 1 ,mem_usb_set_protocol_status 
+7c06 9840fe00 iadd temp ,pdata 
+7c07 c000fc09 beq mac_boot_mode ,usb_tx_ms_data_mac_boot_mode 
+7c08 20207c18 branch usb_tx_ms_data_normal_mode 
+
+usb_tx_ms_data_mac_boot_mode:
+7c09 7008ea00 jam 0 ,mem_usb_ep2_data 
+
+usb_tx_ms_data_mac_boot_regroup:
+7c0a 6fe088f2 fetch 1 ,mem_usb_mouse_data + 1 
+7c0b c0017c19 beq r_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+7c0c c001fc19 beq lr_key ,usb_tx_mac_boot_ms_regroup_r_or_lrkey 
+7c0d 6fe088f2 fetch 1 ,mem_usb_mouse_data + 1 
+7c0e 67e088f1 store 1 ,mem_usb_mouse_data 
+7c0f 6fe088f3 fetch 1 ,mem_usb_mouse_data + 2 
+7c10 e7e08005 istore 1 ,contw 
+7c11 6fe088f5 fetch 1 ,mem_usb_mouse_data + 4 
+7c12 e7e08005 istore 1 ,contw 
+7c13 6fe088f7 fetch 1 ,mem_usb_mouse_data + 6 
+7c14 e7e08005 istore 1 ,contw 
+7c15 df200004 arg 4 ,loopcnt 
+7c16 d8c008f1 arg mem_usb_mouse_data ,contr 
+7c17 20207bcf branch usb_tx_ep2 
+
+usb_tx_ms_data_normal_mode:
+7c18 7008ea00 jam 0 ,mem_usb_ep2_data 
+
+usb_tx_mac_boot_ms_regroup_r_or_lrkey:
+7c19 df200008 arg 8 ,loopcnt 
+7c1a d8c008f1 arg mem_usb_mouse_data ,contr 
+7c1b 20207bcf branch usb_tx_ep2 
+
+usb_tx_kb_multikey_data:
+7c1c 7008ea00 jam 0 ,mem_usb_ep2_data 
+7c1d df200003 arg 3 ,loopcnt 
+7c1e d8c00921 arg mem_usb_kb_multikey ,contr 
+7c1f 20207bcf branch usb_tx_ep2 
+
+usb_tx_kb_normal_data:
+7c20 6fe0c3cf fetch 1 ,mem_device_option 
+7c21 c007ca10 beq dvc_op_keyboard ,keyboard_usb_tx_kb_normal_data 
+7c22 7008e900 jam 0 ,mem_usb_ep1_data 
+7c23 df200008 arg 8 ,loopcnt 
+7c24 d8c00901 arg mem_usb_kb_data ,contr 
+7c25 20207bc3 branch usb_tx_ep1 
+
+usb_tx_kb_systemkey_data:
+7c26 7008ea00 jam 0 ,mem_usb_ep2_data 
+7c27 df200002 arg 2 ,loopcnt 
+7c28 d8c00929 arg mem_usb_kb_system ,contr 
+7c29 20207bcf branch usb_tx_ep2 
+
+usb_tx_kb_bit_consumer_data:
+7c2a 7008ea00 jam 0 ,mem_usb_ep2_data 
+7c2b df200004 arg 4 ,loopcnt 
+7c2c d8c00921 arg mem_usb_kb_multikey ,contr 
+7c2d 20207bcf branch usb_tx_ep2 
+
+usb_tx_kb_n_key_rollover_data:
+7c2e 7008ea00 jam 0 ,mem_usb_ep2_data 
+7c2f df20000f arg 15 ,loopcnt 
+7c30 d8c00911 arg mem_usb_kb_n_key_rollvoer_data ,contr 
+7c31 20207bcf branch usb_tx_ep2 
+
+usb_inwake_state_tx_dispose:
+7c32 6fe088de fetch 1 ,mem_usb_state 
+7c33 c0017c35 beq usb_connected ,usb_mac_wakeup_trig 
+7c34 20600000 rtn 
+
+usb_mac_wakeup_trig:
+7c35 6ff08c00 fetch 1 ,core_usb_config 
+7c36 79207e07 set1 7 ,pdata 
+7c37 67f08c00 store 1 ,core_usb_config 
+7c38 7008ee01 jam 1 ,mem_usb_mac_wakeup_trig 
+7c39 20600000 rtn 
+
+usb_mac_wakeup_judge:
+7c3a 6fe088de fetch 1 ,mem_usb_state 
+7c3b c1018000 rtneq usb_sleep 
+7c3c c0017c3e beq usb_connected ,usb_mac_wakeup 
+7c3d 20600000 rtn 
+
+usb_mac_wakeup:
+7c3e 6fe088ee fetch 1 ,mem_usb_mac_wakeup_trig 
+7c3f 207a0000 rtn blank 
+7c40 7008ed01 jam 1 ,mem_usb_wakestate_onetime_flag 
+7c41 20207c45 branch usb_wakeup 
+
+usb_windows_wakeup:
+7c42 d8e0000f arg usb_timer_wakeup ,queue 
+7c43 20407cf1 call timer_check 
+7c44 247a0000 nrtn blank 
+
+usb_wakeup:
+7c45 6ff08c00 fetch 1 ,core_usb_config 
+7c46 c4038000 rtnbit0 7 
+7c47 708c00fc jam 0xfc ,core_usb_config 
+7c48 20007530 nop 30000 
+7c49 708c003c jam 0x3c ,core_usb_config 
+7c4a 20600000 rtn 
+
+push_stack:
+7c4b 60a1066f storer contw ,2 ,mem_contw 
+7c4c 604c0656 storet 8 ,mem_temp 
+7c4d 6162065e storer timeup ,4 ,mem_timeup 
+7c4e 20407c53 call push_stack_rega_b_c 
+7c4f 60c1066d storer contr ,2 ,mem_contr 
+7c50 67210679 storer loopcnt ,2 ,mem_loopcnt 
+7c51 60e10677 storer queue ,2 ,mem_queue 
+7c52 20600000 rtn 
+
+push_stack_rega_b_c:
+7c53 62220662 storer rega ,4 ,mem_rega 
+7c54 62420666 storer regb ,4 ,mem_regb 
+7c55 6261866a storer regc ,3 ,mem_regc 
+7c56 20600000 rtn 
+
+pop_stack:
+7c57 4719c026 bpatchx patch26_3 ,mem_patch26 
+7c58 6fe1066f fetch 2 ,mem_contw 
+7c59 98000a00 iforce contw 
+7c5a 684c0656 fetcht 8 ,mem_temp 
+7c5b 6962065e fetchr timeup ,4 ,mem_timeup 
+7c5c 20407c62 call pop_stack_rega_b_c 
+7c5d 6f210679 fetchr loopcnt ,2 ,mem_loopcnt 
+7c5e 68e10677 fetchr queue ,2 ,mem_queue 
+7c5f 6fe1066d fetch 2 ,mem_contr 
+7c60 98000c00 iforce contr 
+7c61 20600000 rtn 
+
+pop_stack_rega_b_c:
+7c62 6a220662 fetchr rega ,4 ,mem_rega 
+7c63 6a420666 fetchr regb ,4 ,mem_regb 
+7c64 6a61866a fetchr regc ,3 ,mem_regc 
+7c65 20600000 rtn 
+
+get_contw:
+7c66 6fe1066f fetch 2 ,mem_contw 
+
+get_contw_end:
+7c67 1fe20a00 copy pdata ,contw 
+7c68 20600000 rtn 
+
+get_contr:
+7c69 6fe1066d fetch 2 ,mem_contr 
+
+get_contr_end:
+7c6a 1fe20c00 copy pdata ,contr 
+7c6b 20600000 rtn 
+
+store_contw:
+7c6c 18a27e00 copy contw ,pdata 
+7c6d 67e1066f store 2 ,mem_contw 
+7c6e 20600000 rtn 
+
+store_contr:
+7c6f 18c27e00 copy contr ,pdata 
+7c70 67e1066d store 2 ,mem_contr 
+7c71 20600000 rtn 
+
+save_cont_pointers:
+7c72 18a27e00 copy contw ,pdata 
+7c73 67e1066f store 2 ,mem_contw 
+7c74 18c27e00 copy contr ,pdata 
+7c75 67e1066d store 2 ,mem_contr 
+7c76 20600000 rtn 
+
+load_cont_pointers:
+7c77 6fe1066f fetch 2 ,mem_contw 
+7c78 1fe20a00 copy pdata ,contw 
+7c79 6fe1066d fetch 2 ,mem_contr 
+7c7a 1fe20c00 copy pdata ,contr 
+7c7b 20600000 rtn 
+
+get_diff:
+7c7c 98462200 isub temp ,rega 
+7c7d 20610000 rtn positive 
+7c7e da200100 arg 0x100 ,rega 
+7c7f 9a20fe00 iadd rega ,pdata 
+7c80 98462200 isub temp ,rega 
+7c81 20600000 rtn 
+
+memcpy96:
+7c82 20407c8f call memcpy32 
+
+memcpy64:
+7c83 20407c8f call memcpy32 
+7c84 20207c8f branch memcpy32 
+
+memcpy12:
+7c85 20407c8b call memcpy8 
+
+memcpy4:
+7c86 efe08006 ifetch 1 ,contr 
+7c87 e7e08005 istore 1 ,contw 
+
+memcpy3:
+7c88 efe18006 ifetch 3 ,contr 
+7c89 e7e18005 istore 3 ,contw 
+7c8a 20600000 rtn 
+
+memcpy8:
+7c8b efe40006 ifetch 8 ,contr 
+7c8c e7e40005 istore 8 ,contw 
+7c8d 20600000 rtn 
+
+memcpy48:
+7c8e 20407c91 call memcpy16 
+
+memcpy32:
+7c8f 20407c8b call memcpy8 
+
+memcpy24:
+7c90 20407c8b call memcpy8 
+
+memcpy16:
+7c91 20407c8b call memcpy8 
+7c92 20207c8b branch memcpy8 
+
+delay:
+7c93 1fe0ffff increase -1 ,pdata 
+7c94 20000026 nop 38 
+7c95 243a7c93 nbranch delay ,blank 
+7c96 20600000 rtn 
+
+delay_10ms:
+7c97 df20000a arg 10 ,loopcnt 
+
+delay_ms_wait:
+7c98 20002ee0 nop 12000 
+7c99 c2007c98 loop delay_ms_wait 
+7c9a 20600000 rtn 
+
+memset0_16:
+7c9b 20407c9c call memset0_8 
+
+memset0_8:
+7c9c 20407c9d call memset0_4 
+
+memset0_4:
+7c9d 18007204 force 4 ,loopcnt 
+7c9e 20207ca5 branch memset0 
+
+clear_mem_256:
+7c9f 18007220 force 32 ,loopcnt 
+7ca0 20207ca5 branch memset0 
+
+clear_mem_512:
+7ca1 18007240 force 64 ,loopcnt 
+7ca2 20207ca5 branch memset0 
+
+clear_mem:
+7ca3 1f227e00 deposit loopcnt 
+7ca4 207a0000 rtn blank 
+
+memset0:
+7ca5 18007e00 force 0 ,pdata 
+7ca6 e7e00005 lstore contw 
+7ca7 20600000 rtn 
+
+clear_temp_block:
+7ca8 df200020 arg 32 ,loopcnt 
+7ca9 d8a0067f arg mem_temp_block0 ,contw 
+7caa 20207ca3 branch clear_mem 
+
+xor_loop:
+7cab efe20013 ifetch 4 ,regc 
+7cac e8420011 ifetcht 4 ,rega 
+7cad 9842fe00 ixor temp ,pdata 
+7cae e7e20005 istore 4 ,contw 
+7caf 1a20a204 increase 4 ,rega 
+7cb0 1a60a604 increase 4 ,regc 
+7cb1 c2007cab loop xor_loop 
+7cb2 20600000 rtn 
+
+inverse_data:
+7cb3 471a4026 bpatchx patch26_4 ,mem_patch26 
+7cb4 1f227e00 copy loopcnt ,pdata 
+7cb5 1fe67c01 sub pdata ,1 ,null 
+7cb6 20610000 rtn positive 
+7cb7 9a20a400 iadd rega ,regb 
+7cb8 1a40a5ff increase -1 ,regb 
+7cb9 1f237200 rshift loopcnt ,loopcnt 
+
+inverse_loop:
+7cba e8408011 ifetcht 1 ,rega 
+7cbb efe08012 ifetch 1 ,regb 
+7cbc e7e08011 istore 1 ,rega 
+7cbd e0408012 istoret 1 ,regb 
+7cbe 1a40a5ff increase -1 ,regb 
+7cbf 1a20a201 increase 1 ,rega 
+7cc0 c2007cba loop inverse_loop 
+7cc1 20600000 rtn 
+
+le2be_6byte:
+
+inverse_data_6byte:
+7cc2 1fef0400 rshift32 pdata ,temp 
+7cc3 20407cc8 call inverse_data_4byte 
+7cc4 18508400 byteswap temp ,temp 
+7cc5 1ff07e00 lshift16 pdata ,pdata 
+7cc6 9841fe00 ior temp ,pdata 
+7cc7 20600000 rtn 
+
+le2be_4byte:
+
+inverse_data_4byte:
+7cc8 1ff10c00 rshift16 pdata ,contr 
+7cc9 18d08c00 byteswap contr ,contr 
+7cca 1ff0fe00 byteswap pdata ,pdata 
+7ccb 1ff07e00 lshift16 pdata ,pdata 
+7ccc 98c1fe00 ior contr ,pdata 
+7ccd 20600000 rtn 
+
+memcpy_fast:
+7cce 471ac026 bpatchx patch26_5 ,mem_patch26 
+7ccf 1f227e00 deposit loopcnt 
+7cd0 207a0000 rtn blank 
+
+memcpy_fast_loop:
+7cd1 1f20f3f8 increase -8 ,loopcnt 
+7cd2 20417c8b call memcpy8 ,positive 
+7cd3 20628000 rtn zero 
+7cd4 20217cd1 branch memcpy_fast_loop ,positive 
+7cd5 1f20f208 increase 8 ,loopcnt 
+
+memcpy_fast_loop_four:
+7cd6 1f20f3fc increase -4 ,loopcnt 
+7cd7 20417c86 call memcpy4 ,positive 
+7cd8 20628000 rtn zero 
+7cd9 20217cd6 branch memcpy_fast_loop_four ,positive 
+7cda 1f20f204 increase 4 ,loopcnt 
+7cdb 20207cdc branch memcpy 
+
+memcpy:
+7cdc 1f227e00 deposit loopcnt 
+7cdd 207a0000 rtn blank 
+
+memcpy_loop:
+7cde efe08006 ifetch 1 ,contr 
+7cdf e7e08005 istore 1 ,contw 
+7ce0 c2007cde loop memcpy_loop 
+7ce1 20600000 rtn 
+
+timer_stop:
+7ce2 58000000 setarg 0 
+
+timer_init:
+7ce3 67e1064e store 2 ,mem_pdatatemp 
+7ce4 471b4026 bpatchx patch26_6 ,mem_patch26 
+7ce5 20407cf1 call timer_check 
+7ce6 6849064e fetcht 2 ,mem_pdatatemp 
+7ce7 d8a040f4 arg mem_timers ,contw 
+7ce8 18e3fe00 lshift queue ,pdata 
+7ce9 98a08a00 iadd contw ,contw 
+7cea e0410005 istoret 2 ,contw 
+7ceb 20600000 rtn 
+
+timer_check_timeout:
+7cec d9600800 arg 0x800 ,timeup 
+7ced 19701600 lshift16 timeup ,timeup 
+7cee 9960fe00 iadd timeup ,pdata 
+7cef 20600000 rtn 
+
+timer_reinit:
+7cf0 d8e00000 arg 0 ,queue 
+
+timer_check:
+7cf1 471bc026 bpatchx patch26_7 ,mem_patch26 
+7cf2 684a4095 fetcht 4 ,mem_last_clkn 
+7cf3 1c437e00 rshift clkn_bt ,pdata 
+7cf4 67e24095 store 4 ,mem_last_clkn 
+7cf5 98467c00 isub temp ,null 
+7cf6 24417cec ncall timer_check_timeout ,positive 
+7cf7 98461600 isub temp ,timeup 
+7cf8 19620400 copy timeup ,temp 
+7cf9 d8c040f4 arg mem_timers ,contr 
+7cfa 18c20a00 copy contr ,contw 
+7cfb df200010 arg 16 ,loopcnt 
+
+timer_loop:
+7cfc efe10006 ifetch 2 ,contr 
+7cfd 98467e00 isub temp ,pdata 
+7cfe 20217d00 branch timer_counting ,positive 
+7cff 18007e00 force 0 ,pdata 
+
+timer_counting:
+7d00 e7e10005 istore 2 ,contw 
+7d01 c2007cfc loop timer_loop 
+7d02 d8c040f4 arg mem_timers ,contr 
+7d03 18e3fe00 lshift queue ,pdata 
+7d04 98c08c00 iadd contr ,contr 
+7d05 efe10006 ifetch 2 ,contr 
+7d06 20600000 rtn 
+
+clk_add:
+7d07 98408400 iadd temp ,temp 
+7d08 18427200 copy temp ,loopcnt 
+7d09 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
+7d0a 9f267e00 isub loopcnt ,pdata 
+7d0b 20610000 rtn positive 
+7d0c 1fe67e00 sub pdata ,0 ,pdata 
+7d0d 18510400 rshift16 temp ,temp 
+7d0e 18408401 increase 1 ,temp 
+7d0f 18500400 lshift16 temp ,temp 
+7d10 98418400 ior temp ,temp 
+7d11 20600000 rtn 
+
+clk_diff_rt:
+7d12 20407d14 call clk_diff 
+7d13 20207d21 branch clk2rt 
+
+clk_diff:
+7d14 78547c00 disable user 
+7d15 98467e00 isub temp ,pdata 
+7d16 20217d19 branch clk_diff_pos ,positive 
+7d17 78347c00 enable user 
+7d18 1fe67e00 sub pdata ,0 ,pdata 
+
+clk_diff_pos:
+7d19 c4078000 rtnbit0 15 
+7d1a 1fe22800 copy pdata ,regab 
+7d1b d8410000 arg 0x10000 ,temp 
+7d1c 6fe10044 fetch 2 ,mem_param_rt_rthalfslot 
+7d1d 98467e00 isub temp ,pdata 
+7d1e 9a80fe00 iadd regab ,pdata 
+7d1f 793ffe40 set0 64 ,pdata 
+7d20 20600000 rtn 
+
+clk2rt:
+7d21 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+7d22 98000c00 iforce contr 
+7d23 1ff17e00 rshift16 pdata ,pdata 
+7d24 984ffe00 imul32 temp ,pdata 
+7d25 98c0fe00 iadd contr ,pdata 
+7d26 20600000 rtn 
+
+clk2lpo:
+7d27 1fed7e00 lshift8 pdata ,pdata 
+7d28 1ff27e00 lshift4 pdata ,pdata 
+7d29 6849c0bd fetcht 3 ,mem_clks_per_lpo 
+7d2a 9846fc00 idiv temp 
+7d2b 20407d64 call wait_div_end 
+7d2c 18078400 quotient temp 
+7d2d 20600000 rtn 
+
+clk2bt:
+7d2e 68490044 fetcht 2 ,mem_param_rt_rthalfslot 
+7d2f 9846fc00 idiv temp 
+7d30 20407d61 call get_div_result 
+7d31 1ff07e00 lshift16 pdata ,pdata 
+7d32 18070400 remainder temp 
+7d33 98418400 ior temp ,temp 
+7d34 20600000 rtn 
+
+string2dec_from_uart:
+7d35 d8400000 arg 0 ,temp 
+
+string2dec_from_uart_done:
+7d36 18422800 copy temp ,regab 
+7d37 efe08003 ifetch 1 ,contu 
+7d38 20407d41 call uchar2dialog 
+7d39 1a820400 copy regab ,temp 
+7d3a 20407d72 call swap 
+7d3b da40000a arg 10 ,regb 
+7d3c 9a4ffe00 imul32 regb ,pdata 
+7d3d 9840fe00 iadd temp ,pdata 
+7d3e 1fe20400 copy pdata ,temp 
+7d3f c2007d36 loop string2dec_from_uart_done 
+7d40 20600000 rtn 
+
+uchar2dialog:
+7d41 d840003a arg 0x3a ,temp 
+7d42 98467c00 isub temp ,null 
+7d43 24217d4a nbranch uchar2dialog_number ,positive 
+7d44 d8400061 arg 0x61 ,temp 
+7d45 98467c00 isub temp ,null 
+7d46 20217d4d branch uchar2dialog_a2f ,positive 
+7d47 d8400037 arg 0x37 ,temp 
+7d48 98467e00 isub temp ,pdata 
+7d49 20600000 rtn 
+
+uchar2dialog_number:
+7d4a d8400030 arg 0x30 ,temp 
+7d4b 98467e00 isub temp ,pdata 
+7d4c 20600000 rtn 
+
+uchar2dialog_a2f:
+7d4d d8400057 arg 0x57 ,temp 
+7d4e 98467e00 isub temp ,pdata 
+7d4f 20600000 rtn 
+
+right_shift_n:
+7d50 1f267c00 sub loopcnt ,0 ,null 
+7d51 20628000 rtn zero 
+
+right_shift_n_loop:
+7d52 1fe37e00 rshift pdata ,pdata 
+7d53 c2007d52 loop right_shift_n_loop 
+7d54 20600000 rtn 
+
+left_shift_n:
+7d55 18007e01 force 1 ,pdata 
+7d56 1f267c00 sub loopcnt ,0 ,null 
+7d57 20628000 rtn zero 
+
+left_shift_n_loop:
+7d58 1fe3fe00 lshift pdata ,pdata 
+7d59 c2007d58 loop left_shift_n_loop 
+7d5a 20600000 rtn 
+
+calc_average:
+7d5b 58000000 setarg 0 
+7d5c 1f222200 copy loopcnt ,rega 
+
+calc_average_loop:
+7d5d e8410006 ifetcht 2 ,contr 
+7d5e 9840fe00 iadd temp ,pdata 
+7d5f c2007d5d loop calc_average_loop 
+7d60 9a26fc00 idiv rega 
+
+get_div_result:
+7d61 20407d64 call wait_div_end 
+7d62 1807fe00 quotient pdata 
+7d63 20600000 rtn 
+
+wait_div_end:
+7d64 207a8000 rtn modone 
+7d65 20207d64 branch wait_div_end 
+
+compare_loop:
+
+string_compare:
+7d66 efe08011 ifetch 1 ,rega 
+7d67 e8408012 ifetcht 1 ,regb 
+7d68 98467c00 isub temp ,null 
+7d69 24628000 nrtn zero 
+7d6a 1a20a201 increase 1 ,rega 
+7d6b 1a40a401 increase 1 ,regb 
+7d6c c2007d66 loop string_compare 
+7d6d 20207dba branch enable_zero 
+
+ceiling:
+7d6e 98467c00 isub temp ,null 
+7d6f 24610000 nrtn positive 
+7d70 18427e00 deposit temp 
+7d71 20600000 rtn 
+
+swap:
+7d72 9840fe00 iadd temp ,pdata 
+7d73 98460400 isub temp ,temp 
+7d74 98467e00 isub temp ,pdata 
+7d75 20600000 rtn 
+
+clean_smem:
+7d76 d8a00000 arg 0 ,contw 
+7d77 20207d79 branch clean_mem 
+
+clean_xmem:
+7d78 d8a04000 arg 0x4000 ,contw 
+
+clean_mem:
+7d79 df201000 arg 0x1000 ,loopcnt 
+7d7a 20207ca5 branch memset0 
+
+callback_func:
+7d7b 207a0000 rtn blank 
+7d7c 1fe27a00 copy pdata ,pc 
+
+ice_break_disable_wdt:
+7d7d 2040711d call wdt_set_disable 
+
+ice_break:
+7d7e 70820301 jam 0x1 ,core_ice_ctrl 
+7d7f 20600000 rtn 
+
+ice_setbp:
+7d80 67f10205 store 2 ,core_ice_break0 
+7d81 6ff08203 fetch 1 ,core_ice_ctrl 
+7d82 79207e04 set1 4 ,pdata 
+7d83 67f08203 store 1 ,core_ice_ctrl 
+7d84 20600000 rtn 
+
+ice_setbp2:
+7d85 67f10207 store 2 ,core_ice_break1 
+7d86 6ff08203 fetch 1 ,core_ice_ctrl 
+7d87 79207e06 set1 6 ,pdata 
+7d88 67f08203 store 1 ,core_ice_ctrl 
+7d89 20600000 rtn 
+
+ice_set_write_bp:
+7d8a 67f10205 store 2 ,core_ice_break0 
+7d8b 70820330 jam 0x30 ,core_ice_ctrl 
+7d8c 20600000 rtn 
+
+fifo_in:
+7d8d 471c4027 bpatchx patch27_0 ,mem_patch27 
+7d8e e8440011 ifetcht util_fifo_len ,rega 
+7d8f 18417eff and temp ,0xff ,pdata 
+7d90 243a7d93 nbranch fifo_in_push ,blank 
+7d91 184cfe00 rshift8 temp ,pdata 
+7d92 e7e40011 istore util_fifo_len ,rega 
+
+fifo_in_push:
+7d93 1a20a207 increase util_fifo_len + util_fifo_offset ,rega 
+7d94 efe08011 ifetch 1 ,rega 
+7d95 243a233e nbranch assert ,blank 
+7d96 6fe0864d fetch 1 ,mem_fifo_temp 
+7d97 e7e08011 istore 1 ,rega 
+7d98 20600000 rtn 
+
+fifo_out:
+7d99 471cc027 bpatchx patch27_1 ,mem_patch27 
+7d9a df200008 arg util_fifo_len ,loopcnt 
+7d9b efe40011 ifetch util_fifo_len ,rega 
+7d9c 207a0000 rtn blank 
+
+fifo_out_loop:
+7d9d efe08011 ifetch 1 ,rega 
+7d9e 243a7da2 nbranch fifo_out_end ,blank 
+7d9f 1a20a201 increase 1 ,rega 
+7da0 c2007d9d loop fifo_out_loop 
+7da1 2020233e branch assert 
+
+fifo_out_end:
+7da2 d8400000 arg 0 ,temp 
+7da3 e0408011 istoret 1 ,rega 
+7da4 20600000 rtn 
+
+fifo_is_empty:
+7da5 efe40011 ifetch util_fifo_len ,rega 
+7da6 20600000 rtn 
+
+fifo_is_full:
+7da7 efe08011 ifetch 1 ,rega 
+7da8 20600000 rtn 
+
+fifo_is_near_full:
+7da9 efe10011 ifetch 2 ,rega 
+7daa 20600000 rtn 
+
+fifo_content_count:
+7dab d8400000 arg 0 ,temp 
+
+fifo_content_count_loop:
+7dac 6fe08006 fetch 1 ,contr 
+7dad c2007dac loop fifo_content_count_loop ,blank 
+7dae 18408401 increase 1 ,temp 
+7daf c2007dac loop fifo_content_count_loop 
+7db0 18427e00 copy temp ,pdata 
+7db1 20600000 rtn 
+
+not_greater_than:
+7db2 98467c00 isub temp ,null 
+7db3 24610000 nrtn positive 
+
+copy_temp2pdata:
+7db4 18427e00 copy temp ,pdata 
+7db5 20600000 rtn 
+
+disable_positive:
+7db6 18007dff force -1 ,null 
+7db7 20600000 rtn 
+
+enable_positive:
+
+disable_zero:
+7db8 18007c01 force 1 ,null 
+7db9 20600000 rtn 
+
+enable_zero:
+7dba 18007c00 force 0 ,null 
+7dbb 20600000 rtn 
+
+enable_user:
+7dbc 78347c00 enable user 
+7dbd 20600000 rtn 
+
+disable_user:
+7dbe 78547c00 disable user 
+7dbf 20600000 rtn 
+
+enable_user2:
+7dc0 78367c00 enable user2 
+7dc1 20600000 rtn 
+
+disable_user2:
+7dc2 78567c00 disable user2 
+7dc3 20600000 rtn 
+
+enable_user7:
+7dc4 7838fc00 enable user7 
+7dc5 20600000 rtn 
+
+disable_true:
+7dc6 7840fc00 disable true 
+7dc7 20600000 rtn 
+
+enable_true:
+7dc8 7820fc00 enable true 
+7dc9 20600000 rtn 
+
+disable_blank:
+7dca 58000001 setarg 1 
+7dcb 20600000 rtn 
+
+enable_blank:
+
+set_pdata_0:
+7dcc 58000000 setarg 0 
+7dcd 20600000 rtn 
+
+istore_1_contw_rtn:
+7dce e7e08005 istore 1 ,contw 
+7dcf 20600000 rtn 
+
+cal_sum:
+7dd0 1f267c00 sub loopcnt ,0 ,null 
+7dd1 20628000 rtn zero 
+
+cal_sum_loop:
+7dd2 e8408006 ifetcht 1 ,contr 
+7dd3 9840fe00 iadd temp ,pdata 
+7dd4 c2007dd2 loop cal_sum_loop 
+7dd5 20600000 rtn 
+
+reverse_byte:
+7dd6 1f227e00 copy loopcnt ,pdata 
+7dd7 207a0000 rtn blank 
+7dd8 18c27e00 copy contr ,pdata 
+7dd9 9f20fe00 iadd loopcnt ,pdata 
+7dda 1fe0ffff increase -1 ,pdata 
+7ddb 1fe20c00 copy pdata ,contr 
+
+reverse_loop:
+7ddc efe08006 ifetch 1 ,contr 
+7ddd 18c08dfe increase -2 ,contr 
+7dde e7e08005 istore 1 ,contw 
+7ddf c2007ddc loop reverse_loop 
+7de0 20600000 rtn 
+
+lshift14:
+7de1 1ff07e00 lshift16 pdata ,pdata 
+
+rshift2:
+7de2 1feb7e00 rshift2 pdata ,pdata 
+7de3 20600000 rtn 
+
+lshift6:
+7de4 1fed7e00 lshift8 pdata ,pdata 
+7de5 20207de2 branch rshift2 
+
+clear_wake:
+7de6 471d4027 bpatchx patch27_2 ,mem_patch27 
+7de7 58000000 setarg 0 
+7de8 79207e15 set1 21 ,pdata 
+7de9 67e40016 store 8 ,mem_gpio_wakeup_cfg 
+7dea 58000000 setarg 0 
+7deb e7e20005 istore 4 ,contw 
+7dec 20600000 rtn 
+
+generate_random:
+7ded df200010 arg 16 ,loopcnt 
+
+generate_random_loop:
+7dee 180a7e00 random pdata 
+7def e7e08005 istore 1 ,contw 
+7df0 c2007dee loop generate_random_loop 
+7df1 20600000 rtn 
+
Index: GK308_keyboard_only_24g/output/ramcode.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/ramcode.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/ramcode.rom	(working copy)
@@ -0,0 +1,757 @@
+c2840016
+c00d0052
+c0140093
+c01f0153
+c02000d8
+c021810c
+c0220269
+c024827b
+c02600f2
+c02a02e7
+c02b0152
+c02c81bd
+c02e01c0
+c03501a8
+c03e0256
+c0410257
+c051c7fb
+c074805d
+c075005a
+c06780a1
+c07d008f
+2020233e
+c056803a
+c05e803d
+c06102e6
+c079801c
+c17f8000
+2020233e
+37d98200
+708a8660
+708a8b3b
+2040229d
+70804300
+70804205
+58557474
+67f18968
+7089606e
+20402135
+20402287
+20402281
+7041480c
+20406f53
+204022cb
+20206ac9
+2435802f
+37d98200
+37d98200
+20403e9a
+24342002
+6fe0c88d
+203a2002
+6fe0c90f
+c17f8000
+1fe20e00
+6fe2067b
+afec0000
+2040c69b
+20202002
+6fe24576
+207a0000
+202032ad
+6fe145f7
+1fe17ee0
+203a0044
+6fe145f7
+1fe0fe01
+67e145f7
+20600000
+20403557
+2040362a
+242c355e
+2437b55e
+2040004a
+20203540
+20403647
+6fe0c50f
+2fe1f008
+24608000
+6fe0c510
+c07fc7fb
+67e0c70d
+20600000
+37d98200
+7089460d
+70896f10
+708a13cd
+6ff08a06
+1fe17efc
+67f08a06
+20202255
+20406b28
+20406b63
+20206b26
+20406b22
+20406b2f
+20406b29
+e8408011
+1a20a201
+18000e00
+793f8022
+a84c0000
+20208087
+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
+20208063
+c5110087
+79200022
+20200064
+6ff10044
+1fe0fe01
+67f10044
+18e08e01
+28e01e08
+24208063
+c2000060
+20206b26
+79200407
+20406ee0
+7d208407
+20206eac
+204023f0
+6fe1c0bd
+207a0000
+6fe0ca7a
+247a0000
+6fe0ca7b
+247a0000
+6fe0c720
+247a0000
+6fe14750
+247a0000
+6fe0ca9f
+247a0000
+20202467
+20403717
+20407384
+204000a6
+204000bf
+20203eb0
+20758000
+204035c8
+2040323a
+204000ac
+7040a60a
+20203ec1
+20403ef4
+204000af
+20203edd
+58009000
+67e142f9
+6fe4488e
+c291e80c
+580095b8
+67e148d6
+6fe4488e
+c290680c
+c290e80c
+580094fc
+67e148d6
+6fe4488e
+c291680c
+58004ae8
+67e148d6
+2020680c
+6fe0c917
+6848c914
+98467c00
+204280cc
+6fe0c917
+6848c913
+98467c00
+204280d0
+6fe0c917
+6848c915
+98467c00
+202280d4
+20600000
+6fe0cba0
+79207e01
+67e0cba0
+20600000
+6fe0cba0
+79207e00
+67e0cba0
+20600000
+6fe0cba0
+79207e02
+67e0cba0
+20600000
+6fe4488e
+c28780db
+20203fd8
+6fe14abd
+68494abf
+98467c00
+20610000
+6fe0c678
+c00000e3
+c000bfeb
+20600000
+68494abd
+58001fb0
+98462400
+da2046a3
+df200004
+20406b33
+68494abd
+18408404
+60494abd
+20600000
+2040413c
+20404166
+2040419d
+204041a3
+202041a9
+204000f5
+20400275
+20204333
+20403ef9
+58000000
+67e1499e
+d8c0494e
+d8a04963
+df200014
+20407cdc
+204043af
+5800494e
+67e14998
+58004adc
+67e1499a
+204043ad
+204043ab
+6fe1499e
+1fe0fe01
+67e1499e
+c28480f5
+6848c911
+20406ee0
+24208103
+204043af
+2020434a
+204040e0
+204040cc
+204040dd
+20400124
+2040428f
+204042c4
+2040326c
+20403507
+204058f6
+204042b5
+204042bf
+20404299
+204042a4
+2040550d
+204042ad
+20405510
+204042b2
+204042a1
+20405527
+2040429e
+204042c9
+204042cc
+204002a3
+202042d5
+6fe0c8a6
+c280012a
+20400142
+6fe0c8a6
+c2808136
+20200148
+6fe0c8a9
+1fe67c64
+24610000
+1fe0fe01
+67e0c8a9
+c18c8000
+7048a700
+6fe0c678
+c1020000
+2040014e
+204048e6
+20204680
+6fe0c8aa
+1fe67c64
+24610000
+1fe0fe01
+67e0c8aa
+c18c8000
+7048a800
+6fe0c678
+c1020000
+2040014e
+20406824
+20204675
+7048a900
+6fe0c8a7
+207a0000
+7048a700
+2040014e
+20206c99
+7048aa00
+6fe0c8a8
+207a0000
+7048a800
+20404045
+20206c99
+6fe4488e
+c287d594
+c2874045
+20600000
+20204677
+6fe4488e
+c2878163
+20203ec8
+6fe4488e
+c31e815d
+6848c440
+20404f0a
+6848c440
+20406ee0
+20208156
+20404049
+d8400080
+da204678
+da400000
+20406cd7
+20203fa2
+6fe0c678
+c0000166
+20203f33
+db000008
+6fe14abf
+9b06fc00
+20407d64
+1807fe00
+67e1064e
+dfe01fac
+d8400004
+dd600004
+20200170
+67e10650
+60488656
+da204aa5
+da600000
+6fe10650
+1fe22400
+6f208656
+da204aa5
+20406b62
+6fe44aa5
+684c4aad
+9841fe00
+684c4ab5
+9841fe00
+203a0186
+1a60a601
+6fe1064e
+9a667c00
+6fe10650
+9b067e00
+67e10650
+20200174
+1a667c00
+20228199
+6fe10650
+9b00fe00
+9d667e00
+67e10650
+6fe10650
+1fe22400
+6f208656
+da204aa5
+20406b62
+6fe44aa5
+684c4aad
+9841fe00
+684c4ab5
+9841fe00
+203a019b
+6fe10650
+2020018a
+6560cabd
+20600000
+58001fb0
+68490650
+98467e00
+67e14abd
+18427e00
+9d60a400
+6f208656
+da204aa5
+20406b62
+6fe0c678
+c0003f81
+c000bf87
+20600000
+1a220c00
+efe18006
+67e1c39b
+c000c919
+c003c95c
+c004c938
+c005c952
+c0044971
+c00601b5
+c005499f
+c00949c5
+c02949cb
+20202b76
+efe10006
+67e10693
+98002200
+6849439c
+6fe14334
+98467c00
+2422ad2e
+20204999
+6fe0caa0
+c00101de
+202046cd
+18427e00
+704a6f05
+6848c9a6
+18467c00
+2022c74b
+c07401ea
+c07481f0
+c07501f4
+c07581f8
+c07601fc
+c0768200
+c0770204
+c0778208
+c078020c
+c0788210
+c0790214
+c0798218
+c07a021c
+c07a8220
+c07b0227
+c07b822b
+c07c0233
+c07c8237
+c07d023b
+c07d823f
+c07e0243
+c07e8247
+c07f024b
+c07f824f
+202046e6
+7049a902
+6fe0c9a6
+205a46ef
+704aa000
+6fe0c678
+c00001e7
+58000005
+67e1ca6f
+202046e6
+58000003
+67e1ca6f
+202046e6
+6fe0c678
+c0804715
+58000183
+67e14a70
+704a6f03
+202046e6
+6fe0c678
+c0804718
+580000ea
+202001ed
+6fe0c678
+c080471a
+580000e9
+202001ed
+6fe0c678
+c080471c
+580000e2
+202001ed
+6fe0c678
+c080471e
+580000b6
+202001ed
+6fe0c678
+c0804720
+580000b5
+202001ed
+6fe0c678
+c0804722
+580000cd
+202001ed
+6fe0c678
+c0804724
+580000b7
+202001ed
+6fe0c678
+c0804726
+58000223
+202001ed
+6fe0c678
+c0804728
+5800018a
+202001ed
+6fe0c678
+c080472a
+58000194
+202001ed
+6fe0c678
+c080472c
+5800022a
+202001ed
+6fe0c678
+c080472e
+58000192
+202001ed
+6fe0c678
+c0804730
+6fe0caa1
+c001020c
+c001820c
+58000221
+202001ed
+6fe0c678
+c0804732
+58000224
+202001ed
+6fe0c678
+c0804737
+6fe0caa1
+c0008231
+580001ae
+202001ed
+58000307
+202001ed
+6fe0c678
+c080473d
+58000070
+202001ed
+6fe0c678
+c080473f
+5800006f
+202001ed
+6fe0c678
+c0804741
+58000030
+202001ed
+6fe0c678
+c0804743
+580000b8
+202001ed
+6fe0c678
+c0804745
+58000225
+202001ed
+6fe0c678
+c0804747
+58000226
+202001ed
+6fe0c678
+c0804749
+58000227
+202001ed
+6fe0c678
+c0804752
+704a6f02
+58000002
+67e0ca70
+202046e6
+c076c720
+2020379c
+efe40011
+67e4064e
+20407057
+20400263
+6fe10654
+68490650
+98467c00
+24417054
+68490652
+98467c00
+24410266
+20204ed0
+6848c422
+793f8400
+20207059
+6848c422
+79200400
+20207059
+6fe148ab
+67e14644
+6fe148ad
+67e14646
+6fe148af
+67e14648
+20600000
+582c1270
+67e1c8ab
+58014001
+e7e18005
+20600000
+da20494e
+da404963
+df200014
+20407d66
+242282a0
+202043ba
+2040027d
+202042de
+da200000
+684a4b9a
+1c422400
+1a427e00
+98467c00
+244177f4
+1a427e00
+18408428
+98467c00
+2421028f
+1a20a201
+1a217e0f
+243a0283
+da200000
+20400294
+1c427e00
+67e24b9a
+20600000
+1a227e00
+207a0000
+184085d8
+793f841c
+604a4b9a
+67e0cb9e
+6fe0cb9e
+207a0000
+1fe0ffff
+67e0cb9e
+2040029b
+20200295
+6fe0cb99
+207a0000
+70409401
+704b9900
+20600000
+70409400
+704b9901
+202043b1
+204041ab
+204002ab
+2040413e
+204002e1
+20404186
+204002cf
+204002b7
+20600000
+6fe0cac2
+207a0000
+1fe0ffff
+67e0cac2
+6fe4488e
+c29402b4
+6fe0cac2
+203a4166
+2020416c
+6fe0cac2
+203a413c
+2020413a
+704acb00
+6fe14750
+247a0000
+6fe145ef
+247a0000
+6fe145f5
+247a0000
+6fe0cac2
+247a0000
+6fe4488e
+c4058000
+c4148000
+c4010000
+c295411b
+44a2c008
+6fe0cac6
+1fe0fe01
+67e0cac6
+1fe67c06
+24414119
+1fe67c03
+24414184
+20404182
+20600000
+6fe0c613
+c1020000
+6fe0c678
+c00002d4
+20204148
+6fe145ef
+203a02d7
+2020414d
+6fe0c422
+c28002e0
+6fe0c70d
+c28002e0
+6fe145f5
+243a414b
+6fe0cac2
+247a0000
+20204172
+20600000
+704aa103
+6fe0c70d
+c3838000
+704aa100
+20600000
+20204815
+704a9b00
+6fe0c678
+c08045d7
+6fe4488e
+c4098000
+6fe149af
+68494a97
+98467c00
+202282f4
+18508400
+98467c00
+202282f4
+202054e6
+20204680
Index: GK308_keyboard_only_24g/output/romcode.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/romcode.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/romcode.rom	(working copy)
@@ -0,0 +1,24576 @@
+20402369
+44804000
+20800000
+204069e4
+20403717
+20402244
+20406ca3
+20402347
+204068d2
+4480c000
+2040775d
+2040370a
+20407435
+2055a421
+44814000
+20407540
+20407436
+20402a23
+2040202a
+20403722
+20402018
+204030ed
+20402463
+2020200e
+2040201d
+c6848000
+793f8009
+20402041
+20202591
+4481c000
+20402066
+2422a025
+20402036
+1a208c01
+efe08006
+c280250d
+20600000
+70000600
+20402047
+1f227c00
+20628000
+2020233e
+6fe0c114
+207a0000
+c00da033
+2040205f
+20628000
+20402062
+20628000
+70411400
+20600000
+70433e1b
+70411400
+20600000
+44824000
+79200009
+1a227e00
+67e1000a
+18007253
+d8a00168
+1a208c01
+efe08006
+1a220c00
+c2807cdc
+20600000
+4482c000
+6fe1000a
+98000a00
+18007253
+d8c00168
+20207cdc
+df200001
+68488006
+18408401
+2841fe01
+2420a04d
+d8400000
+60488006
+184ffe53
+da204040
+9a20a200
+efe08011
+c280a054
+c3800000
+c2002049
+20600000
+44834000
+da602073
+20402069
+24628000
+1a227e00
+67e1000a
+20207dba
+da6020ad
+20202069
+6848c115
+da60207b
+20202069
+4483c000
+684b4116
+da602075
+20202069
+da602081
+20202069
+da6020c7
+44844001
+da204040
+df200001
+efe08011
+1a627a00
+4484c001
+1a20a253
+c200206c
+18007c01
+20600000
+c280206e
+20207dba
+c300206e
+1a208c10
+efe30006
+98467c00
+20628000
+2020206e
+c300206e
+1a208c16
+efe08006
+98467c00
+20628000
+2020206e
+c300a06e
+204020b4
+2040209d
+98467e00
+1fe0fe01
+20212097
+18c22400
+67e48656
+44854001
+6fe0c484
+243a2090
+6fe48656
+1a420c00
+1fe0fe05
+20202093
+6fe48656
+1a420c00
+1fe0fe14
+2421206e
+18424200
+204020c0
+20207dba
+98002400
+1a208c02
+efe10006
+203a2094
+204020c0
+20202082
+1ff11600
+196c9600
+2022a0a7
+29601e0f
+24608000
+18511600
+196c9600
+24628000
+7920041c
+20600000
+18511600
+196c9600
+29601e0f
+24608000
+79207e1c
+20600000
+c300206e
+20207dba
+c300206e
+1a208c01
+efe08006
+c280206e
+20600000
+1a208c01
+e8408006
+1c427e00
+284ffe01
+1a208c04
+e8420006
+20608000
+1a208c08
+efe30006
+20402109
+1d027e00
+20600000
+1a208c02
+1a208a04
+efe10006
+98409600
+19627e00
+e7e20005
+202025de
+c300a06e
+204020b4
+9b60fe00
+9b60fe00
+98e0fe00
+98467c00
+2421206e
+20207dba
+4485c001
+785d7c00
+784efc00
+784e7c00
+7846fc00
+78467c00
+7844fc00
+78477c00
+7843fc00
+2030a155
+37d38200
+20000064
+20202155
+44864001
+78487c00
+18423600
+20402068
+78547c00
+24628000
+18003600
+20207dbc
+4486c001
+37d10200
+1b427e00
+98000c00
+1ff17e00
+9c467200
+1f217203
+2422a0ee
+18007e00
+202020f2
+68490044
+18007e00
+9840fe00
+c20020f0
+98c0fe00
+1fe6fc0c
+20407d61
+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
+58000f00
+67f10982
+58000ff0
+67f10984
+70898109
+70898103
+70898006
+2000003c
+da200000
+da400000
+df200010
+d8c00f00
+efe10006
+9a20a200
+efe10006
+9a40a400
+c200212f
+20600000
+4487c001
+20758000
+20402164
+d8400027
+20402173
+204021aa
+708a257f
+708a301a
+708a3178
+708a8fb2
+708ac200
+708ac300
+d8e00006
+20402122
+2a2ffe0d
+2040211d
+2a4ffe0d
+2040211e
+d8e00005
+2040211c
+2040211e
+20402122
+d8a08ac2
+1a31fe00
+20402117
+1a51fe00
+20402117
+18e08fff
+20212148
+708a8f52
+708a3002
+70898100
+44884002
+204066e5
+78507c00
+7850fc00
+58000200
+67f20a23
+708a01fa
+2000000c
+708a0f00
+708a121a
+708a142b
+18002a08
+18002a00
+70890000
+202022f3
+4488c002
+708a0f60
+708a10aa
+708a127a
+708a2500
+708a2600
+2000003c
+708a2020
+708a23f5
+708a2412
+708a2410
+2000003c
+708a1260
+708a23dd
+20600000
+44894002
+70890001
+708a239d
+708a2402
+20000014
+708a7065
+708a239f
+20402193
+60488008
+18408401
+4489c002
+1851fe00
+d8c04135
+98c08c00
+efe08006
+6a308a71
+1a21220f
+9a21fe00
+67f08a71
+204021d4
+20000090
+6fe0c099
+c00c218b
+20000024
+708a2080
+20600000
+58008312
+67f10907
+2020219b
+58004189
+67f10907
+202021a6
+448a4002
+708a8211
+708a8d12
+708a8e0a
+6fe0c099
+c008218d
+58005762
+67f10907
+70890103
+70893003
+c6168000
+70890101
+708a8207
+708a8d44
+708a8e0a
+6fe0c099
+c0082190
+58002bb1
+67f10907
+c6978000
+70893024
+70890105
+20600000
+448ac002
+204066df
+204021be
+18002a08
+18002a00
+580aaada
+67f18a0f
+708a2540
+708a2610
+2000003c
+708a01fb
+708a25ff
+708a2630
+708a16fe
+20000014
+708a1000
+708a1108
+20000078
+7089000d
+20600000
+6fe0c143
+c07fa1c5
+d8c04144
+98c08c00
+efe08006
+67f08961
+70896027
+6848c147
+6ff08960
+9841fe00
+67f08960
+20600000
+70890003
+708a2402
+20000014
+708a7065
+708a23df
+20402193
+204021ee
+60488008
+18408402
+2020217d
+448b4002
+58000960
+9840fe00
+1fe22200
+6848c099
+18430400
+9846fc00
+20407d64
+1807fe00
+1fec8e00
+60f0890a
+67f08909
+18077e00
+1ff07e00
+1fed7e00
+9846fc00
+20407d64
+1807fe00
+67f1890b
+62308a22
+1a2ca200
+62308a21
+708a20a0
+708a20e0
+708a20a0
+20600000
+1840fe02
+1fe97e00
+1fe17ffe
+d8c0411d
+c596a1f4
+18c08c0c
+98c08c00
+ea210006
+efe10006
+9a267e00
+18408c02
+18c10c0f
+98cffe00
+1ff1fe00
+9a20fe00
+67f10905
+20600000
+448bc002
+204021ca
+20000258
+448c4003
+580aaa7e
+67f18a0f
+2000003c
+708a2500
+708a260d
+708a16f6
+2000001e
+708a151b
+20402212
+20000014
+708a260f
+20000014
+708a10a8
+708a1100
+20600000
+448cc003
+6fe0c141
+c000221d
+c001a222
+c002a227
+c003a22b
+c005222f
+c041a234
+c042a238
+c045223c
+c04a2240
+708a1417
+58251a3f
+67f18a60
+708a6328
+20600000
+708a1425
+58a91c2d
+67f18a60
+708a632f
+20600000
+708a1425
+58a91c3f
+67f18a60
+20202225
+708a1425
+58a9383f
+67f18a60
+20202225
+708a1425
+58a93f3f
+67f18a60
+708a631f
+20600000
+708a1417
+58251827
+67f18a60
+20202220
+708a1417
+5825181c
+67f18a60
+20202220
+708a1417
+5825180b
+67f18a60
+20202220
+708a1417
+58251000
+67f18a60
+20202220
+70804206
+6fe1409c
+c3072245
+98000c00
+d8408a00
+efe08006
+c07fa24f
+98418a00
+efe08006
+e7e08005
+20202249
+448d4003
+37d98200
+7089460d
+70896f10
+708a13cd
+708a0610
+708a844a
+708a8540
+708a16fe
+6fe0c44d
+205a711d
+37d98200
+70813b5f
+6fe0c099
+c0082276
+6fe0c44f
+1fe1fe04
+67f08a02
+70890f01
+708a8024
+708a8162
+58e61212
+67f18a73
+4779c03e
+708a8660
+708a8b3b
+2040229d
+70804300
+70804205
+58557474
+67f18968
+7089606e
+20402135
+20402287
+20402281
+7041480c
+20406f53
+204022cb
+20206ac9
+6fe0c44f
+1fe1fe06
+67f08a02
+70890f00
+708a8023
+708a81b0
+58e40909
+67f18a73
+708a762a
+70890204
+20202266
+20758000
+37d98200
+6fe0c11c
+67f0813a
+37d98200
+20600000
+448dc003
+20758000
+20402164
+70890003
+708a7001
+da40411d
+db004135
+20402293
+7920002d
+20402293
+708a7061
+20202155
+20402193
+df200006
+da600000
+1a620400
+204022ab
+1a40a402
+1b00b001
+1a60a610
+c2002296
+20600000
+6fe0c099
+c00c22a3
+6fe0c44f
+1fe1fe06
+67f08a02
+708a05e0
+708a00d8
+2000003c
+708a01a0
+708a00df
+708a01fa
+20000014
+708a009f
+20600000
+448e4003
+708a2030
+708a23dd
+204021d4
+6ff08a7c
+c30022af
+708a7b30
+204022c5
+98002200
+708a7b40
+204022c5
+9a267e00
+1fef847d
+58b00000
+9846fc00
+20407d64
+1807fe00
+c596a2be
+1fe3fe00
+e7e10012
+708a7b20
+6ff08a7e
+1ff27e00
+e7e08018
+708a7b00
+20600000
+6ff10a7d
+1ff0fe00
+68588a7c
+18500400
+9841fe00
+20600000
+448ec003
+20600000
+448f4003
+6ff089a2
+2feffe06
+7920fe07
+67e0c142
+6ff089a3
+1fe1040f
+18438400
+1ff1fe00
+98408400
+184fa203
+6fe0c142
+204022e3
+1fe67e00
+9a20fe00
+1fe0fff7
+1fe17fff
+2feffe08
+2420a2e1
+58000000
+67e08035
+202022e8
+2feffe07
+24608000
+d840ff00
+9841fe00
+20600000
+6fe08035
+204022ec
+67e08009
+20600000
+1fe17eff
+1fe6fc0a
+20407d61
+1ff27e00
+18070400
+9841fe00
+20600000
+448fc003
+6fe0c143
+c17f8000
+242c231a
+6fe0c142
+1fe67cf0
+2421231e
+1fe67c7f
+2021231e
+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
+c000a323
+c0012325
+20202323
+6fe0c143
+c0002325
+c000a321
+70414302
+20600000
+70414300
+20600000
+70414301
+20600000
+1fe20400
+44904004
+18427e00
+20407d2e
+1c307e00
+79207e2c
+20407d14
+793ffe2c
+20402336
+20407d14
+20740000
+20407d21
+98003600
+37c18200
+20600000
+1b220400
+20748000
+1b420400
+20600000
+1c427e00
+20748000
+1d027e00
+20600000
+4490c004
+2020233e
+207a0000
+1fe37e00
+1fe0fffd
+1fe0ffff
+2422a343
+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
+67e142e5
+7041698b
+58000d00
+67e14343
+58000060
+67e14345
+1c437e00
+67e24095
+20600000
+5800ee21
+67f10050
+6e12011c
+6ff08132
+c302a383
+7835fc00
+c2822377
+7855fc00
+1ce27e00
+243a2377
+6ff08142
+c2822377
+d85fffff
+2020241d
+20402387
+2055a3c9
+37d98200
+6ff08132
+793ffe05
+67f08132
+37d98200
+2435a384
+20406aaf
+6602067b
+70800608
+20600000
+20402387
+20406a20
+6602067b
+20600000
+37d98200
+6ff08133
+1fe17e88
+67f08133
+37d98200
+6ff08132
+1fe1fe0f
+67f08132
+37d98200
+79207e07
+67f08132
+37d98200
+79207e06
+67f08132
+37d98200
+20600000
+37d98200
+70813d76
+37d98200
+70813a37
+20600000
+6fe0c3cf
+1ff27e00
+67f08143
+37d98200
+6fe0c3d0
+79207e05
+79207e06
+67f08144
+202023c4
+6ff08142
+793ffe03
+67f08142
+20600000
+6ff08142
+79207e03
+67f08142
+20600000
+6fe1c0c3
+d8a0813e
+df200003
+202023b3
+d8a08145
+df200004
+37d98200
+e7e08005
+1fecfe00
+c20023b3
+202023c4
+d8a08149
+202023b2
+6ff08133
+793ffe03
+67f08133
+20600000
+6fe0c0cb
+207a0000
+793ffe04
+202023c3
+67e0c0cb
+67f08135
+37d98200
+37d98200
+20600000
+67f08134
+202023c4
+204023be
+6fe0c0ef
+67f08080
+d8c040cc
+d8a08070
+20407c91
+d8a080d4
+20407c8b
+680440e7
+d8c0814d
+d8a00016
+df20000c
+20407cdc
+20206aff
+600440e7
+d8c08070
+d8a040cc
+20407c91
+d8c080d4
+20407c8b
+6ff08080
+67e0c0ef
+18422400
+202023e1
+df20000c
+da200016
+da60814d
+37d98200
+efe08011
+e8408013
+98467c00
+2022a3eb
+e7e08013
+37d98200
+1a20a201
+1a60a601
+c20023e5
+1a420400
+20600000
+4491c004
+6ff080cb
+243a23f7
+6fe1c0bd
+247a0000
+7080cb0c
+70800680
+6ff08129
+c4008000
+6ff1815b
+67e1c0bd
+20600000
+6fe0c0ca
+79207e04
+67e0c0ca
+44924004
+d85fffff
+6fe0c0a7
+67e0c0c8
+6fe0c0ca
+67f08142
+37d98200
+4492c004
+6fe143f2
+20407d7b
+6fe240ad
+9840fe00
+67e240ad
+204023d7
+6fe0c0cb
+79207e04
+204023c3
+2455a3ad
+37d98200
+632340b1
+20406abf
+6fe1c0c6
+6a20c0c9
+df200003
+37d98200
+67f08132
+1fecfe00
+c2002417
+37d98200
+62308133
+37d98200
+605a004c
+70800501
+37df8200
+44934004
+58000000
+1ce27c00
+2022a42c
+6ff0813e
+6858813f
+98467c00
+2021242a
+18427e00
+9ce67e00
+1fe0fe01
+1fe0fe08
+37d98200
+9e20fe00
+684a40a9
+9840fe00
+6849c0bd
+984ffe00
+1fecfe00
+1ff1fe00
+1fe0fe6e
+68490044
+9846fc00
+20407d61
+1ff07e00
+18070400
+9841fe00
+684b40b1
+20407d07
+18423200
+6fe34048
+20402109
+1b427e00
+67e3064e
+1ce27e00
+e7e08005
+6ff0811d
+1fe1fef0
+e7e08005
+20600000
+4493c004
+c584a460
+684a40ad
+dfe00600
+98467c00
+20610000
+18422200
+684b000f
+1d627e00
+20407d12
+1a220400
+1fed7e00
+1ff27e00
+9846fc00
+20407d61
+d84000c8
+20407d6e
+67e0800e
+2434245d
+1fe67e00
+6849c0bd
+9840fe00
+67e1c0bd
+58000000
+67e240ad
+20600000
+44944005
+204023f0
+6fe1c0bd
+207a0000
+6fe0c094
+207a0000
+6fe0c483
+203a246d
+6fe0c485
+207a0000
+6fe0c484
+247a0000
+da6020af
+20402069
+20628000
+204024c6
+247a0000
+2040205d
+2422a494
+20758000
+4494c005
+68488015
+6fe14042
+984ffe00
+18518400
+184b0400
+98467e00
+684a4044
+9840fe00
+6848c0a6
+98467e00
+1ff06000
+6fe1404e
+1fe37e00
+20407d2e
+1e027e00
+20407d14
+1b420400
+20407d12
+20740000
+20407d27
+44954005
+6fe0c0c3
+98467c00
+20212460
+604a40a9
+2040373a
+684a40a9
+20202406
+4495c005
+6fe0c38c
+243a2498
+20600000
+6fe140a4
+207a0000
+6848c0a6
+98467e00
+d8401d4c
+984ffe00
+2020248b
+6fe143ee
+20407d7b
+243a24b7
+70001500
+c586a4b7
+6fe0c0c2
+203a24bb
+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
+20403738
+6fe140a2
+1fe22200
+6fe1c462
+7d3a2201
+6fe444ea
+7d3a220f
+6fe444f2
+7d3a220e
+6fe0c114
+7d3a2208
+6fe0c3cf
+2fe1fe0a
+2040a4d8
+1a227e00
+67e140a2
+20600000
+6ff10112
+7d3a2206
+6ff1010e
+7d3a2205
+20600000
+471dc027
+7855fc00
+70017e01
+70016803
+70017f01
+5fffffff
+67e10182
+18007e00
+67e08180
+67e0818b
+67e1c0b7
+67e1c0ba
+2040283a
+70416b01
+70416c00
+70019d01
+70019e01
+70439a00
+20202914
+471e4027
+7834fc00
+70016903
+70439c01
+70068f01
+5800ffff
+67e10691
+18007e00
+67e2c46c
+79207e27
+67e2c467
+202024dd
+471ec027
+7854fc00
+58000017
+67e142e5
+1fe0fe04
+67e143bc
+70016901
+70438c00
+70001500
+20402567
+6fe10196
+67e142f7
+6fe1016a
+1feffe05
+1ff1fe00
+67e10196
+202024dd
+471f4027
+2040258d
+6fe08168
+2feffe04
+79208032
+20403727
+6fe08169
+c280a516
+20202527
+471fc027
+7834fc00
+2040290a
+20212524
+204025d0
+2040284f
+7856fc00
+2040270e
+24768000
+6fe08005
+1fe0fe01
+67e08005
+20402801
+20202525
+2040255b
+7854fc00
+20600000
+47204028
+70434200
+793f8030
+20407540
+20402fd3
+78577c00
+2040290a
+2021255b
+6fe0819d
+20402579
+204025d0
+20402627
+242c254d
+2040256c
+2036a538
+c5182538
+20202547
+4720c028
+6fe0c342
+1fe0fe01
+67e0c342
+c0062547
+20402801
+2040284f
+6fe0819e
+20402579
+2040271f
+204028b2
+6fe143ea
+20407d7b
+20402551
+20342555
+47214028
+20402f98
+20402f8f
+20407831
+6fe0818b
+c281a55b
+4721c028
+204020cf
+20402984
+202020f7
+c5157dbc
+c514fdbc
+c5187dbc
+20207dbe
+47224028
+78377c00
+20402712
+2036a538
+c5182538
+20202547
+4722c028
+20402562
+20403777
+20402567
+20402fe1
+70064d15
+20207819
+d8a04458
+20407c9b
+70017e00
+70016900
+70016800
+47234028
+7042ff00
+7042fe00
+20407440
+20600000
+4723c028
+6fe08005
+1fe0fe01
+67e08005
+6fe08168
+c3818000
+79207e03
+67e08168
+6fe142f7
+67e10196
+58000000
+67e2431f
+20600000
+1fe20400
+47244029
+18427e00
+c280258d
+c280a582
+c301258d
+c283a589
+c2812585
+2020258d
+793f802f
+7920002d
+20600000
+793f802d
+7920002f
+793f802e
+20600000
+793f802d
+7920002f
+7920002e
+20600000
+4724c029
+793f802d
+793f802f
+20600000
+47254029
+793f8032
+70890101
+70892080
+70893003
+20600000
+4725c029
+7844fc00
+7843fc00
+6fe18190
+98001e00
+6fe08007
+1fed8400
+79200401
+18431c00
+20600000
+204025aa
+20402173
+6fe1003e
+20402340
+202021aa
+2036a202
+c5182202
+204025aa
+202021ff
+47264029
+20402164
+6fe0c33d
+243a25bd
+6fe08007
+1fe67c24
+202125b7
+18000400
+c1128000
+18000418
+c1130000
+1800044e
+20600000
+1fe67c0a
+202125ba
+1fe0fe01
+1fe3fe00
+1fe08402
+20600000
+6fe08007
+1fe38400
+20600000
+d84001f4
+207a0000
+d84000fa
+c1008000
+d8400096
+c1010000
+d8400064
+c1018000
+d840004b
+c1020000
+d8400032
+c1028000
+d8400028
+c1030000
+d8400014
+20600000
+4726c029
+78287c00
+6fe2018c
+98001200
+20402605
+58000200
+2034a5d9
+6fe10176
+1fe37e00
+6849003e
+9840fe00
+20402327
+1b427e00
+20600000
+47274029
+20407c53
+67210679
+1a208c01
+efe08006
+c4000000
+1a208a1a
+efe10005
+1fe0fe01
+e7e10005
+20402780
+204027a2
+204027ab
+204025ef
+20407c62
+6f210679
+20600000
+1a208c19
+efe08006
+1a208a18
+e8408005
+9840fe00
+1fe67c24
+202125f7
+1fe0ffdb
+e7e08005
+20600000
+1a208c30
+efe28006
+18000400
+18007225
+c30025ff
+18408401
+1fe37e00
+c20025fd
+1840ffff
+1a208a22
+e7e08005
+20600000
+4727c029
+6fe08180
+98000e00
+684a8198
+a84fffff
+2020a61a
+6fe0818a
+98e67e00
+20212610
+1fe60fff
+2020260b
+18e27200
+18000e00
+a84fffff
+2020a615
+1f20f201
+1f227e00
+203a261a
+18e08e01
+1f20f3ff
+20202612
+18e27e00
+67e08007
+20600000
+2034a620
+37c18200
+20600000
+d9600ea0
+34730200
+20600000
+78487c00
+6fe1434a
+1fe21600
+2020262d
+4728402a
+20402692
+78287c00
+6fe10176
+684a431f
+98409600
+204025a1
+4728c02a
+20402597
+c597a635
+783cfc00
+2000001e
+20402597
+19699600
+7856fc00
+7826fc00
+7830fc00
+78507c00
+19623600
+37c18400
+2037263e
+1b420400
+604b000f
+242c26ce
+78287c00
+6fe0c169
+d8404e20
+98408400
+6fe0c148
+984fb600
+204066e7
+2037264b
+204026d3
+6fe08168
+c301a64b
+2055a449
+204022cd
+7823fc00
+7824fc00
+09800008
+19897e00
+67e0804c
+09800008
+19897e00
+67e0804d
+1fe27200
+2022a671
+c519265c
+09800008
+19897e00
+e7e08005
+c2002657
+20202671
+18a22400
+4729402a
+204027fa
+6a20804d
+1a20a3fc
+242126ce
+20402697
+1a420a00
+d8400000
+6f20804d
+1f20f3fc
+2022a66f
+09800008
+19897e00
+e7e08005
+18408401
+18417c0f
+2042a6b5
+c2002668
+204026bd
+1a420a00
+4729c02a
+09800018
+1fef7e00
+1ff17e00
+e7e18005
+78287c00
+204026eb
+202326c9
+c5992683
+6fe0804d
+203a2683
+1fe0fffc
+67e0804d
+204072b9
+6ff08108
+c303a6ce
+1800700c
+65e20154
+204066e6
+7836fc00
+793f8030
+472a402a
+204072bb
+6fe0819d
+7d3e7e07
+67e0819d
+2040268d
+2020268f
+7846fc00
+20202164
+472ac02a
+68488008
+202021ca
+c6990000
+20407356
+1800700c
+2040735e
+2020735d
+472b402a
+70806c00
+70806d01
+6fe0804c
+1fe17e03
+67f0806e
+5800004e
+67f10068
+67f1006a
+6a20804d
+1a20a3fc
+684ac46c
+280ffe0f
+2040a6ab
+20407253
+58000000
+67f100c0
+70800a06
+70800a07
+20600000
+18467c00
+2022a6b0
+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
+204026eb
+204020cf
+20202683
+204066e8
+c50826ce
+c51826ce
+79200030
+20202686
+793f8030
+202026d0
+472bc02a
+204072bb
+202020cf
+684b000f
+1b427e00
+20407d14
+1fe20400
+204026dd
+1b425600
+1d227e00
+9840fe00
+1fe25200
+20600000
+c517a6e3
+c516a6e7
+6fe10046
+1fe25200
+1c225000
+20600000
+6fe1004a
+1fe25200
+1c20d001
+20600000
+6fe10048
+1fe25200
+1c225000
+20600000
+6fe0804d
+1fe08405
+18498400
+6fe0819d
+c517a6f2
+c28026f4
+c280a6f5
+203e26f7
+202026fa
+202026ff
+18430400
+202026ff
+18408403
+18438400
+202026fc
+18408403
+18498400
+58000028
+98408400
+202026ff
+6fe0c148
+984f8400
+da204e20
+9a2ffe00
+98460400
+1b627e00
+98463600
+20600000
+2040271f
+68488008
+20402173
+204021aa
+78287c00
+d960157c
+2020262e
+472c402b
+6fe0819e
+20402579
+2040271f
+6fe0819d
+20402579
+68488008
+20402173
+204021aa
+78287c00
+d960157c
+c597a62e
+d9602134
+2020262e
+472cc02b
+2040271f
+202020cf
+472d402b
+20402597
+204025a6
+204066ed
+79202a00
+782efc00
+78307c00
+7850fc00
+2040261d
+785d7c00
+c517a762
+c516a774
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+7823fc00
+7824fc00
+472dc02b
+6fe0c16b
+08008608
+efe08006
+1fe27200
+08008608
+1f267c00
+2022a740
+6ff0800a
+203a273c
+c5192757
+d8c0416d
+efe08006
+08008608
+c200273d
+78247c00
+08008618
+78447c00
+c597a747
+7843fc00
+58000000
+08008603
+37d38200
+20000064
+472e402b
+784efc00
+785c7c00
+20402164
+204066eb
+6fe0c16b
+1fe17e03
+c1818000
+6fe0c2ff
+c001283a
+c1828000
+6fe0c16d
+c002a835
+20600000
+1f20f3fc
+1f220400
+204072a6
+d8c0416d
+efe08006
+08008608
+c200275b
+204072ab
+1de27e00
+08008620
+20202740
+df20000a
+5800003c
+08008608
+c2002763
+784efc00
+783c7c00
+19317e00
+1ff17e00
+1ff1fe00
+08008620
+c5172771
+58000001
+08008605
+783d7c00
+2020272f
+58000000
+08008605
+2020272f
+6fe0c148
+6848c16a
+9840fe00
+20402340
+19317e00
+1fecfe00
+1ff18400
+18427e00
+08008608
+18427e00
+08008628
+2020272f
+da602784
+da40279a
+d8e00005
+202027d9
+1a208c04
+e8420006
+1a208c37
+efe08006
+1a208a2b
+e7e08005
+efe10006
+1febfe00
+98409600
+1a208a04
+19627e00
+e7e20005
+efe10006
+1febfe00
+1a208a02
+e7e10005
+efe10006
+1a208a2c
+e7e10005
+efe10006
+67e142f7
+20202917
+efe08011
+793ffe03
+e7e08011
+62210662
+70064d44
+20407819
+6a210662
+20600000
+da600000
+da4027a6
+d8e00006
+202027d9
+1a208c37
+efe28006
+1a208a30
+e7e28005
+202025f9
+da600000
+da4027af
+d8e00007
+202027d9
+1a208c37
+efe08006
+204027bc
+e7e08005
+1a208c38
+efe08006
+204027ca
+e7e08005
+62210662
+70064d42
+20407819
+6a210662
+20600000
+205a27c4
+1a208a35
+24748000
+6848c3ba
+284ffe07
+7920fe07
+1a208a36
+20600000
+1a208c35
+efe08006
+24748000
+1a208c36
+efe08006
+20600000
+205a27d3
+6848c3ba
+284ffe07
+7920fe07
+1a208a36
+24748000
+793ffe07
+1a208a35
+20600000
+1a208c36
+efe08006
+24748000
+1a208c35
+efe08006
+20600000
+472ec02b
+efe08011
+afec0000
+20608000
+1a208c1a
+e8410006
+1a208c20
+efe10006
+98467e00
+2022a7e9
+242127ee
+1fe67c01
+2022a7e7
+20600000
+1a627e00
+20207d7b
+efe08011
+f93ffe00
+e7e08011
+1a427e00
+20207d7b
+1a208c1a
+efe10006
+1a208c20
+efe10006
+98467e00
+d840ffff
+98467c00
+2022a7e9
+d840f000
+98467c00
+242127e9
+20600000
+6848817f
+6fe0804c
+1fe37e00
+9842fe00
+2feffe02
+7920800f
+20600000
+472f402b
+20402914
+c6180000
+20402828
+6fe0804c
+2feffe04
+7920802a
+1fe37e00
+9842fe00
+2feffe02
+7920800f
+c6078000
+6fe0804d
+203a281a
+6fe08168
+c302281a
+684a0154
+6fe24471
+98467c00
+2022a33e
+604a4471
+6fe2c46c
+1fe0fe01
+79207e27
+67e2c46c
+6848817f
+79400402
+6048817f
+6fe0c323
+c4030000
+472fc02b
+6fe0804d
+207a0000
+6fe0804c
+2fe00601
+2020ae43
+2fe00602
+2020ae31
+20600000
+4730402c
+6848817f
+284c0005
+20608000
+6fe0804c
+1fe3fe00
+9842fe00
+c4018000
+793f8405
+79400403
+6048817f
+28400603
+20600000
+6fe08168
+79207e04
+67e08168
+79200032
+20600000
+4730c02c
+7042ff00
+dfe00000
+67e24471
+67e2c467
+79207e27
+67e2c46c
+6fe08168
+793ffe04
+67e08168
+793f8032
+20600000
+da200001
+6fe0804c
+c3830000
+da200000
+20600000
+18c20a00
+684943bc
+18a20c00
+20600000
+4731402c
+6fe0817f
+c3828000
+20402870
+204029ee
+203a2894
+efe10006
+e8410006
+18422200
+9a267e00
+2040284b
+20407db2
+1fe20400
+e8208006
+1a227e00
+98c0fe00
+67e1066d
+20402884
+20402896
+204029ee
+efe10006
+1fe22200
+18c22600
+e8410006
+18422400
+9a467e00
+2040284b
+20407db2
+9a40fe00
+e7e10013
+9a267c00
+24628000
+20202a08
+20402877
+c6148000
+6fe0c323
+c3012882
+204029f2
+203a2882
+20202880
+204029ee
+203a2882
+efe10006
+e8410006
+98462200
+2040284b
+18427e00
+9a267c00
+20212882
+79200029
+20600000
+793f8029
+20600000
+1a227e00
+207a0000
+d8200001
+20600000
+4731c02c
+18408401
+20402cad
+18c08dfe
+efe10006
+d8402902
+98467c00
+24628000
+18c08c01
+18c22200
+efe08006
+20600000
+18000400
+18000201
+4732402c
+6048c16c
+6848817f
+79200405
+18417efc
+9821fe00
+67e0817f
+1fe17e1f
+280ffe29
+7920fe04
+67e0c16b
+6fe0c16b
+28200601
+2420a8a6
+6fe0c16c
+207a0000
+c51928ac
+6f20c16c
+6fe1066d
+1fe20c00
+d8a0416d
+20207cce
+20407356
+2020728d
+d8e00000
+202024be
+d8e00000
+202024c2
+4732c02c
+c6078000
+c6180000
+6fe0804c
+1fe17e03
+67e0c336
+6fe0804d
+207a0000
+5800004e
+67e1433b
+4733402c
+6fe0c336
+c1000000
+c001b028
+204028cd
+243428ae
+204028b0
+58000000
+67e14339
+6fe1433b
+1fe08c02
+4733c02c
+efe10006
+c0022b6e
+c0032ea6
+c002ae68
+20600000
+6fe0c336
+c00128dc
+c000a8f3
+20600000
+20407dbc
+d8400004
+9fe67c00
+20628000
+d8400005
+9fe67c00
+20628000
+d8400006
+9fe67c00
+20628000
+20207dbe
+6fe1433b
+1fe20c00
+efe10006
+67e14337
+efe10006
+204028d1
+24740000
+6848804d
+60494339
+6fe14337
+1fe0fe04
+98467c00
+2022fdbc
+6f20804d
+d8a00f00
+6fe1433b
+1fe20c00
+20407cce
+20207dbe
+20407dbc
+6fe14339
+247a0000
+20207dbe
+204028ef
+24740000
+6fe14339
+d8a00f00
+98a0a200
+6848804d
+9840fe00
+67e14339
+6f20804d
+1a220a00
+6fe1433b
+1fe20c00
+20407cce
+58000f00
+67e1433b
+6fe14337
+1fe0fe04
+68494339
+98467c00
+2022fdbc
+20207dbe
+6fe143e8
+20207d7b
+4734402d
+684a0184
+2040233a
+98461600
+19627e00
+68490196
+18520400
+18438400
+98467e00
+20600000
+2040233a
+67e20184
+20600000
+4734c02d
+1a208c50
+efe08006
+204025c0
+1a208c02
+efe10006
+984ffe00
+68490044
+984ffe00
+d84f4240
+9846fc00
+d8400682
+6fe0c148
+984f8400
+1a208c2b
+efe08006
+984ffe00
+9840fe00
+67e2431f
+6fe1409a
+20407d64
+18078400
+9840fe00
+1a208a0e
+e7e10005
+20600000
+4735402d
+20402934
+20202948
+70069302
+d8402a00
+60490694
+20402cbe
+207a0000
+efe08006
+18c20a00
+6848c26d
+18427200
+98467c00
+24212945
+98460400
+d8c0426e
+20407cce
+18427200
+2442a980
+20600000
+1fe27200
+d8c0426e
+20207cce
+da60436c
+da20434d
+20402955
+58000000
+79347e00
+67e0864e
+da60438c
+da20436d
+20402955
+20740000
+6fe0864e
+203a233e
+20600000
+4735c02d
+20407dbc
+20407ca8
+da400000
+d8a00680
+2040296f
+6fe0c26d
+1fe08401
+9a40a200
+1a20a202
+1a267c1f
+2421296d
+e0408005
+d8400009
+e0408005
+98007200
+20407cce
+1a222400
+1a427e00
+67e0867f
+d8c0067f
+5fffffe0
+9a608a00
+20207c8f
+20407dbe
+20202967
+efe08011
+207a0000
+1fe0fe01
+e8408006
+18467c09
+2022a97e
+9a40a400
+1a220c00
+98007200
+20407cce
+18c22200
+1a227e00
+9a667c00
+20610000
+2020296f
+9a20a200
+2020297a
+58000020
+e7e08005
+c2002980
+20600000
+4736402d
+7855fc00
+20372988
+2436a997
+204024a9
+6fe1409a
+67e10176
+6fe0c323
+c282a4b7
+c507a4b7
+6fe0804d
+243a24b7
+6fe0c16c
+243a24b7
+6fe08168
+c282a4b7
+c283a4b7
+c28324b7
+2020249f
+6fe0c0a8
+1fe67c1e
+242124ae
+6849409a
+18430400
+6fe10176
+9840fe00
+67e10176
+202024ae
+d8e00000
+202029b5
+d8e00000
+202029ba
+d8e00001
+202029b5
+d8e00001
+202029ba
+d8e00002
+202029b5
+d8e00002
+202029ba
+d8e00003
+202029b5
+d8e00003
+202029ba
+d8e00004
+202029b5
+d8e00004
+202029ba
+d8e00005
+6fe0c323
+f9207e00
+67e0c323
+20600000
+d8e00005
+6fe0c323
+f93ffe00
+67e0c323
+20600000
+58112233
+67e1c324
+58445566
+e7e18005
+58778899
+e7e18005
+58001122
+e7e18005
+58334455
+e7e18005
+58000066
+20207dce
+59000302
+67e242c6
+58010010
+67e1c2ca
+70430001
+20600000
+da200000
+d8200001
+202029e3
+4736c02d
+d8200003
+204029e3
+1a427e00
+e7e08005
+20600000
+4737402d
+18000202
+1a20a204
+204029e3
+1a20a3fc
+1a227e00
+e7e10005
+1a427e00
+e7e10005
+20600000
+4737c02d
+1a20a205
+204068e5
+1a20a3fb
+1a227e00
+e7e10005
+58000000
+e7e10005
+18227e00
+e7e08005
+20600000
+4738402e
+2040691f
+1fe20c00
+20600000
+6fe14460
+20600000
+204029f7
+1fe20c00
+20600000
+6fe14463
+20600000
+204029ee
+18c08c05
+20600000
+204029ee
+18c08c09
+20600000
+204029f4
+18c08c09
+20600000
+204029f4
+18c08c05
+20600000
+20206935
+20206938
+2020693b
+20206924
+67e443c4
+20202a1a
+184122ff
+20402a10
+184ca200
+6220c3bb
+20202a11
+6220c3ba
+2a2ffe01
+2040aa16
+2a2ffe02
+2040aa18
+20600000
+d8e00008
+20202a1b
+d8e0000b
+20202a1b
+d8e00005
+6fe443b2
+f9207e00
+67e443b2
+20600000
+204029a4
+204029ca
+204029be
+202029ac
+70019d01
+70019e01
+793f8030
+79200010
+793f8032
+2040258d
+20402a2d
+20402aad
+793f8010
+20202591
+4738c02e
+6fe0c347
+c1808000
+d8e00002
+20407cf1
+247a0000
+6fe14348
+6849434a
+98467e00
+d8e00002
+20407ce3
+7854fc00
+20402ada
+20402a4c
+24768000
+4739402e
+6fe3004e
+67e30178
+6fe08002
+1fe0fe01
+67e08002
+20402a53
+20748000
+20402b01
+24768000
+6fe08004
+1fe0fe01
+67e08004
+6fe48054
+67e4867f
+20600000
+4739c02e
+20402b4d
+20402623
+6fe08001
+1fe0fe01
+67e08001
+20600000
+473a402e
+6fe0c33e
+c18d8000
+6fe30178
+684b42ce
+98467c00
+24628000
+20402056
+24628000
+20402a66
+204024f0
+204030cb
+70064d14
+20407819
+70411400
+7001b800
+70434700
+70433e00
+20202041
+473ac02e
+18007fff
+38080001
+67e28198
+da200168
+204025f9
+18007204
+d8a0018c
+20407dee
+6fe142db
+67e10196
+180a7e00
+1fe17e0f
+1fe67c04
+20212a71
+67e08181
+473b402e
+68494167
+6049016a
+18422600
+1c40fe07
+9a66fc00
+20407d64
+18072200
+9a267e00
+9a60fe00
+68494165
+9840fe00
+67e2016c
+9c462200
+1a20a3fa
+da402205
+6fe0c2d4
+7d3a2406
+6fe0c2cd
+7d3a2407
+1a427e00
+67e1416b
+6fe342dd
+e7e30005
+6fe30178
+e7e30005
+6fe2018c
+e7e20005
+180a7e00
+e7e10005
+180a7e00
+e7e08005
+18007e02
+e7e08005
+1a2b7e00
+e7e10005
+1a6b7e00
+e7e10005
+473bc02e
+58000000
+e7e10005
+6fe142db
+e7e10005
+6fe28198
+e7e28005
+6fe08181
+d84000a0
+9841fe00
+e7e08005
+2040271c
+5800416b
+1fe08c12
+efe18006
+67e18190
+20600000
+70000724
+70067f00
+20402ad4
+20402ab2
+20202ad7
+473c402f
+6fe0c38c
+207a0000
+d8e00000
+20407cf1
+247a0000
+78287c00
+20402ada
+20402b4d
+20402ae3
+2436aac4
+6fe08003
+1fe0fe01
+67e08003
+6fe0804c
+1fe17e0f
+c001ab12
+c002ab25
+473cc02f
+6fe0867f
+6848c397
+98467c00
+2422aab2
+6fe0c3cf
+1fe67c0e
+2022bad9
+180a7e00
+d84001ff
+98417e00
+1fe0fefa
+20407c93
+d8e00000
+6fe1438d
+20207ce3
+d8a0068f
+d8c0416b
+20207c8e
+d8c0068f
+d8a0416b
+20207c8e
+473d402f
+7854fc00
+588e89be
+1fed7e00
+1fe1fed6
+98001200
+58555555
+67e18190
+20600000
+473dc02f
+6fe0c38f
+6848c390
+18520400
+184b8400
+98408400
+6048c16b
+c000aaf4
+6848c34c
+1840fe06
+67e0c16c
+6fe342dd
+67e3416d
+18427200
+d8c0434d
+20407cce
+20202afa
+5800000c
+67e0c16c
+6fe342dd
+67e3416d
+6fe34116
+e7e30005
+473e402f
+6fe08000
+1fe0fe01
+67e08000
+db600708
+7856fc00
+20202707
+473ec02f
+6fe0c398
+c1808000
+6fe08000
+1fe0fe01
+67e08000
+d8400c03
+6fe0c399
+7d3a0406
+1a227e00
+7d3a0407
+6049416b
+6fe342dd
+e7e30005
+6fe30178
+e7e30005
+20202707
+473f402f
+6fe30054
+684b42dd
+98467c00
+24628000
+d8400004
+6fe0c390
+7d3a0406
+6048c16b
+6848c36c
+1840fe06
+67e0c16c
+6fe342dd
+67e3416d
+d8c0436d
+18427200
+20407cce
+2040271c
+20202ac4
+6fe30054
+684b42dd
+98467c00
+24628000
+20402846
+6220c2cd
+6fe3004e
+67e30178
+6fe4005a
+67e4018c
+68490062
+473fc02f
+184b8400
+6fe10064
+1febfe00
+67e1016a
+67e2016c
+98467e00
+1fe0d1fe
+6fe48066
+67e48194
+6fe0806f
+1fe1041f
+60488181
+1ff18400
+18430400
+604881b8
+da200168
+20402917
+da200168
+204025f9
+204024fc
+20402056
+24628000
+47404030
+204020f7
+20402e85
+70064d14
+20407819
+20202041
+4740c030
+6fe08007
+c012ab5c
+c0132b65
+c013ab52
+6848c397
+284ffe00
+2020ab61
+284ffe01
+2020ab6a
+70000727
+6fe0867f
+79207e02
+67e0867f
+20600000
+6848c397
+284ffe01
+2020ab6a
+284ffe02
+2020ab57
+70000725
+6fe0867f
+79207e00
+20202b5a
+6848c397
+284ffe02
+2020ab57
+284ffe00
+2020ab61
+70000726
+6fe0867f
+79207e01
+20202b5a
+18c22200
+6fe0c3cf
+c0036558
+c007c90b
+c0045469
+1a220c00
+efe18006
+67e1c39b
+c0012b8b
+c001ab90
+c0022b93
+c0032bd5
+c0042c22
+c0052cf7
+c0062d2a
+c0082d41
+c0092d86
+c00b2dac
+c00c2dbf
+c00f2dc4
+c0292dc8
+20600000
+18002203
+20402dee
+58000002
+e7e08005
+6fe142e3
+e7e10005
+20600000
+20402b90
+18002203
+20402dee
+58000003
+20202b87
+1fecfe00
+67e142e5
+20600000
+20402e1f
+20407dbc
+20202ba1
+efe10006
+1fe17eff
+207a0000
+9a467c00
+20628000
+24610000
+9a667c00
+20628000
+20217dcc
+18007c01
+20600000
+d9600003
+20402ca5
+20402b96
+203a2bd3
+24212bd1
+18c08dfe
+20407c6f
+20407c66
+24342bc1
+20407c53
+6162065e
+1800221e
+20402dee
+6962065e
+20407c62
+20407dbe
+58000005
+e7e08005
+20407c69
+efe10006
+ea208006
+1a267c10
+2022abbd
+1a267c02
+2422ade1
+58000001
+e7e08005
+20202bc6
+58000002
+e7e08005
+d9600001
+20202bc6
+20407c69
+efe10006
+efe08006
+9a267c00
+2422abd3
+20407c69
+efe10006
+1fe17eff
+e7e10005
+ef208006
+20407cdc
+20407c6c
+196097ff
+2022abd3
+20402cbb
+20202ba3
+20402cbb
+20202bcf
+20342de1
+20202e12
+20402e1f
+efe10006
+67e143a2
+20407c6f
+d8a00693
+6fe14337
+1fe0fff9
+20402e2d
+20202be8
+78547c00
+6849068f
+6fe10691
+98467c00
+24212be5
+18427e00
+c1800000
+78347c00
+7001b901
+20202de3
+20402bde
+20740000
+684943a2
+58002800
+98467c00
+2022abef
+20202de1
+70439e00
+6849068f
+60490656
+20402ce2
+243a2de1
+68490656
+20402ce2
+243a2c08
+18c22200
+6fe086a4
+1fe27200
+68488693
+98467c00
+2422ac04
+da400694
+20407d66
+2022ac0b
+6fe106ac
+684943a2
+98467c00
+2022ac13
+6fe10656
+1fe0fe01
+67e10656
+20202bf4
+6fe0c39e
+c000ac13
+20202de1
+6fe106ac
+684943a2
+98467c00
+2422ac04
+70439e01
+68490656
+604906a7
+20202c04
+6fe0c39e
+c0002c04
+70439e02
+68490656
+184085ff
+604906a9
+da200005
+20402dee
+58000007
+e7e08005
+6fe106a7
+e7e10005
+6fe106a9
+e7e10005
+20600000
+20402e1f
+20402e28
+20202c25
+6849068f
+60490656
+20402ca5
+20402cb0
+18c08dfe
+18c27e00
+67e106a5
+68490694
+58002a00
+98467c00
+2022ac90
+58002803
+98467c00
+2422ac7a
+d9600002
+20402df5
+24212c57
+68490656
+20402ce0
+243a2c57
+20402df9
+2422ac55
+24342c59
+78547c00
+20402e24
+1fe22200
+20402dee
+58000009
+e7e08005
+18a26000
+18a08a01
+20402c67
+20402df1
+20402ce0
+20402c6e
+6fe086ab
+1fe0a205
+e2208030
+1a267c07
+2442fdc0
+2042fdc2
+20402e24
+1fe0fffe
+9a26fc00
+20407d64
+18079600
+196097ff
+2022ac57
+20402df1
+20202c34
+20342de1
+20202e12
+20402e02
+20402df1
+20402ce0
+20402d74
+243a2c57
+20407c66
+6fe10656
+1fe0ffff
+e7e10005
+20402e0e
+20402c6e
+196097ff
+2022ac57
+20202c55
+6fe10656
+e7e10005
+6fe086a4
+1fe27200
+20407c69
+20407cce
+20207c6c
+20407c66
+6fe10656
+e7e10005
+20407c6c
+6fe086ab
+1fe27200
+20407c66
+20407c69
+9f260c00
+18c08dff
+20407cce
+20207c6c
+47414030
+20402cbe
+203a2de1
+18c22600
+20402e24
+1a620c00
+e8408006
+18408404
+20407db2
+1fe22600
+1fe22200
+20407c6f
+20402dee
+58000009
+e7e08005
+1a60fffe
+1fe0f3fe
+e7e08005
+6fe106bc
+e7e10005
+20407c69
+20207cce
+20402cbe
+203a2de1
+18c08dfb
+efe10006
+67e10656
+20402e24
+6848c26d
+18408404
+20407db2
+1fe22600
+1fe22200
+20402dee
+58000009
+e7e08005
+1a60fffe
+1fe0f3fe
+e7e08005
+6fe10656
+e7e10005
+d8c0426e
+20207cce
+4741c030
+6fe1068f
+98002400
+6fe10691
+98002600
+6fe142f9
+98000c00
+20207dbc
+20402cb0
+2022acbb
+20600000
+47424030
+6fe142f9
+98000c00
+efe10006
+1fe17eff
+207a0000
+98467c00
+20628000
+20402cbb
+20402cbb
+20202cb3
+efe08006
+98c08c00
+20600000
+4742c030
+6fe142f9
+98000c00
+efe10006
+1fe17eff
+207a0000
+67e106bc
+efe08006
+18c20a00
+98c08c00
+68488693
+98467c00
+2422acd1
+1fe27200
+18a22400
+da200694
+20407d66
+20628000
+6fe08693
+98a08c00
+20402cbb
+20202cc1
+d8400001
+6fe142f9
+98000c00
+18c20a00
+efe10006
+1fe17eff
+207a0000
+1fe08401
+20402cbb
+20402cbb
+18c20a00
+20202cd8
+6fe106a5
+20202ce4
+47434030
+6fe142f9
+98000c00
+efe10006
+1fe17eff
+203a2ced
+98467c00
+2022acee
+20402cbb
+20402cbb
+20202ce5
+20207dca
+efe08006
+67e086ab
+1fe27200
+d8a006ac
+20407cce
+efe08006
+67e086a4
+20407c6f
+20207dcc
+20402da5
+6849439c
+6fe0c323
+c281ad20
+20402cb0
+2422ade1
+20542d26
+20740000
+20402cbb
+18c08dfe
+efe10006
+d8402a00
+98467c00
+2022ad14
+18c22600
+20402e24
+1a620c00
+e8408006
+18408401
+20407db2
+1fe22600
+1fe22200
+20407c6f
+20402dee
+5800000b
+e7e08005
+1a60f3ff
+20407c69
+20207cdc
+20402e24
+6848c26d
+18408401
+20407db2
+1fe22600
+1fe22200
+20402dee
+5800000b
+e7e08005
+1a60f3ff
+d8c0426e
+20207cdc
+6fe14334
+98467c00
+2422acfb
+24342cfb
+7001b905
+20202de3
+18c08dfe
+efe10006
+c2872d24
+20207dbe
+efe10006
+67e10693
+98002200
+6849439c
+20402cad
+203a2de1
+efe08006
+9a267200
+24212de1
+20407c6f
+20402e24
+1f208401
+20407db2
+1fe22200
+1fe22600
+20402dee
+5800000d
+e7e08005
+1a60f3ff
+68490693
+20407c69
+98408c00
+20207cce
+20402e1f
+20402e28
+20202d44
+d9600002
+6849068f
+60490656
+20402cb0
+18c08dfe
+18c27e00
+67e106a5
+20402df5
+24212d7c
+68490656
+20402ce0
+243a2d7f
+20402df9
+2422ad72
+19627e00
+c0002d7f
+24342d68
+78547c00
+20402e24
+1fe22200
+20402dee
+58000011
+e7e08005
+6fe086a4
+1fe0a204
+e2208005
+20407c6c
+1a267c06
+2442fdc0
+2042fdc2
+20402e24
+1fe0fffe
+9a26fc00
+20407d64
+18079600
+20202d6e
+20402d76
+243a2d7f
+6fe10656
+1fe0ffff
+67e106a9
+20402e08
+6fe10656
+67e106a7
+20402e02
+196097ff
+20402df1
+20202d4b
+6fe086ab
+20202d77
+6fe086a4
+20362d7a
+1fe0fffe
+20600000
+1fe0fff0
+20600000
+6fe10656
+67e106a9
+20202d83
+6fe10656
+1fe0ffff
+67e106a9
+20202d83
+20342de1
+20402e08
+20202e12
+18c22200
+6fe14337
+1fe0a5fd
+20402908
+4743c030
+20402da5
+6849439c
+20402cb0
+2422ada3
+20542d9f
+20740000
+6fe0c323
+c3022d9a
+6849439c
+6fe14334
+98467c00
+2422ad9a
+20402da5
+24342d9a
+20202d24
+18002201
+20402dee
+58000013
+e7e08005
+20600000
+18c08dfe
+efe10006
+c287ad24
+20207dbe
+7001b901
+20202de3
+47444031
+20407dbe
+6fe0c300
+c1000000
+6fe0c040
+c3820000
+20207dbc
+18c0a202
+6fe14337
+1fe0a5fb
+20402908
+20202db1
+6fe14337
+1fe22200
+20402dee
+58000017
+e7e08005
+6fe1439c
+e7e10005
+6fe14337
+1fe0f3fb
+6fe1433b
+1fe08c07
+efe10006
+e7e10005
+20207cce
+18002201
+20402dee
+58000019
+e7e08005
+20600000
+6fe0c39a
+793ffe00
+67e0c39a
+20600000
+18c22200
+6fe14337
+1fe0a5fd
+20202908
+18422600
+1a20a203
+20402dee
+1a20a3fd
+5800001b
+e7e08005
+1a620400
+e0410005
+20600000
+6fe0c39a
+79207e00
+67e0c39a
+18422600
+1a20a203
+20402dee
+1a20a3fd
+5800001d
+e7e08005
+1a620400
+e0410005
+20600000
+4744c031
+7001b90a
+18002205
+20402dee
+58000001
+e7e08005
+6fe0c39b
+e7e08005
+6fe1439c
+e7e10005
+6fe081b9
+e7e08005
+20600000
+47454031
+18002404
+202029d9
+68490656
+18408401
+60490656
+20600000
+68490656
+6fe10691
+98467c00
+20600000
+4745c031
+68488693
+da200694
+6fe086ab
+1fe27200
+98467c00
+24628000
+da4006ac
+20207d66
+47464031
+6fe086a4
+67e0867f
+1fe27200
+20407c69
+20207cce
+4746c031
+20407c66
+6fe106a7
+e7e10005
+6fe106a9
+e7e10005
+6fe0867f
+1fe27200
+20407cce
+20207c6c
+47474031
+20407c66
+204029ff
+18a27e00
+98c62200
+20402a02
+1a227e00
+e7e10006
+1a20a204
+204029f4
+1a227e00
+e7e08006
+20600000
+1fecfe00
+67e1068f
+efe10006
+67e10691
+20600000
+4747c031
+6fe142e5
+684942e3
+20207db2
+47484032
+20407c6f
+d8a00693
+6fe14337
+1fe0fffb
+e7e08005
+1fe27200
+20407c69
+20207cce
+6fe10050
+c1820000
+6fe0c39a
+79207e01
+67e0c39a
+6fe18052
+67e1c39b
+7920000f
+c0092e4c
+c0292e51
+c00c2dbf
+c0012b8b
+c00f2dc4
+793f800f
+6fe0c39a
+793ffe01
+67e0c39a
+20600000
+6fe0c39a
+c4008000
+7920000f
+20402e5c
+20402e62
+20542e3f
+6fe0c39b
+c0092d8a
+20600000
+20402e51
+20202e4e
+20402e62
+24740000
+20202d8a
+4748c032
+20402e55
+da200055
+20202908
+6fe0804d
+1fe0a5f9
+1fe0fffc
+67e14339
+6849004e
+60494337
+20600000
+6a40804d
+6fe14339
+9a408400
+60494339
+da20004e
+20202908
+20407dbe
+6fe14339
+68494337
+98467c00
+24628000
+20207dbc
+efe08006
+e8408006
+e8410006
+c009ae6d
+20600000
+efe10006
+67e14340
+70064d40
+20207819
+da20000c
+da600012
+20402e79
+58000008
+e7e10005
+6fe442d5
+e7e40005
+20600000
+20402e81
+da400005
+204029d9
+1a627e00
+e7e08005
+6fe0c33f
+e7e08005
+20600000
+6fe0c33f
+1fe0fe01
+67e0c33f
+c1800000
+70433f01
+20600000
+6fe0c300
+c0002e96
+c000ae99
+c0012e9b
+c040ae8f
+c0412e91
+c041ae94
+20600000
+7042c90d
+20202e97
+7042c90d
+7042c701
+20600000
+7042c90d
+20202e9c
+7042c900
+7042c703
+20600000
+7042c905
+20202e97
+7042c905
+7042c700
+20600000
+6fe0c483
+79207e00
+67e0c483
+20600000
+6fe0c483
+793ffe00
+67e0c483
+20600000
+efe08006
+c000aeba
+c001aee1
+c0022f02
+c002af0f
+c003af78
+c0042f64
+c004af74
+c0052f78
+c005af78
+c0062f79
+c006af7e
+20600000
+18002202
+20403025
+5800000b
+e7e08005
+6fe0c2c9
+e7e08005
+20600000
+67e0c2bf
+efe30006
+e7e30005
+6fe0c300
+c0002f15
+20402edc
+6fe0c481
+203a2ec6
+6fe0c2c2
+c301b794
+6fe0c300
+c303b794
+7042fe03
+6fe0c2c0
+c0002ece
+c000aece
+c001aece
+6fe0c300
+c0012ed1
+c1418000
+dfe00000
+67e24301
+20600000
+6fe0c323
+c2802eda
+da204301
+1a220a00
+df200003
+20407dee
+6fe14303
+1fe17e07
+67e14303
+70064d34
+20207819
+18002207
+20403025
+6fe3c2c6
+e7e38005
+20600000
+7042fe05
+d8a0429d
+20407c91
+6fe0c300
+c0022ee9
+c041aeeb
+c0422eee
+20202ef1
+70064d43
+20207819
+7042fb02
+7042fc08
+20600000
+6fe24301
+203a2ee9
+20202eeb
+7042fe06
+6fe0c300
+c283aefa
+20407244
+18002211
+20403025
+58000003
+e7e08005
+20207363
+d8a042ad
+20407ded
+204071a4
+18002211
+20403025
+58000003
+e7e08005
+202071e0
+18c22200
+6fe0c300
+c283af17
+1a220c00
+2040723c
+2022af2c
+7001ba04
+18002202
+20403025
+58000005
+e7e08005
+6fe081ba
+e7e08005
+47494032
+18000e07
+20407ce2
+7042fe00
+70064d30
+20207819
+7001ba05
+20202f09
+d8a00158
+1a220c00
+20407c91
+6fe0c300
+c041af23
+c0422f23
+2040712e
+20402f31
+6fe0c300
+c1c10000
+70064d3b
+20207819
+20407199
+d8a006af
+204071e0
+da2006af
+da40429d
+df200010
+20407d66
+2422af08
+20202f31
+20407238
+70064d31
+20407819
+70429c01
+7042fe09
+18002211
+20403025
+58000004
+e7e08005
+d8c042ad
+20207c91
+18002211
+20403025
+58000006
+e7e08005
+6fe0c323
+c280af3f
+d8c0428c
+20207c91
+d8c04324
+20207c91
+d8a04305
+1800720a
+20407dee
+1800220b
+20403025
+58000007
+e7e08005
+6fe14305
+e7e10005
+6fe44307
+e7e40005
+20600000
+18002211
+20403025
+58000008
+e7e08005
+58000000
+e7e40005
+e7e40005
+20600000
+18002208
+20403025
+58000009
+e7e08005
+6fe0c2d4
+e7e08005
+6fe342dd
+e7e30005
+20600000
+7001ba08
+20202f09
+6fe0c2cb
+6848c2cb
+98417e00
+20600000
+d8a0430f
+20407c91
+20402f60
+2fec0001
+2020af5e
+6fe0c3cf
+c1850000
+20402f6e
+24740000
+2020379e
+20407dbe
+6fe0c2cd
+c1000000
+6fe0c2c4
+c4008000
+20207dbc
+20402f60
+2fec0001
+2020af5e
+20600000
+20600000
+d8a005dc
+20407c83
+7042fb02
+7042fc01
+20600000
+d8a0063c
+20407c91
+7042fc06
+7042fb02
+20600000
+18002241
+20403025
+5800000c
+e7e08005
+d8c044a6
+20207c83
+20407145
+18002211
+20403025
+5800000d
+e7e08005
+202071e0
+6fe0c2fe
+c17f8000
+d8400003
+98467c00
+24610000
+d8e00007
+20407cf1
+247a0000
+20202f5e
+4749c032
+20402a06
+247a0000
+6fe0c2fe
+c0002fa5
+c000afab
+c0012fa5
+c001afad
+c004afb1
+c005afc1
+c0062fc3
+c006afca
+20600000
+6fe0c2ff
+c1820000
+7042ffff
+7042feff
+70064d3f
+20207819
+7042fe02
+20202eb3
+7042fe04
+58017700
+d8e00007
+20207ce3
+6fe0c2ff
+c0022fb4
+20600000
+6fe0c300
+c283afbf
+7042fe0b
+20402f37
+70064d29
+20407819
+6fe0c3cf
+c1850000
+20402f6e
+20740000
+2020379e
+7042fe0c
+20202fb8
+7042fe0c
+20202f41
+6fe0c2c5
+6848c2cc
+98417e00
+2fec0001
+2020afcc
+7042fe0d
+20202f4d
+20402f55
+20202fcc
+474a4032
+18000e07
+20407ce2
+7042ffff
+7042feff
+70064d3e
+20207819
+474ac032
+6fe0c300
+c4038000
+6fe0c2fb
+c1810000
+7042fb00
+6fe0c2fc
+c000b01b
+c0013022
+c001b013
+c0032ff8
+c003afef
+c0042fe5
+20600000
+7042fb00
+7042fc00
+7042fd00
+20600000
+6fe0c4e6
+1fe20e00
+1fe0fe01
+67e0c4e6
+6fe24301
+afefffff
+58000080
+7920fe00
+67e0c4e7
+20203017
+6fe0c2fd
+7042fd00
+c000aff4
+7042fb02
+20600000
+70064d31
+20407819
+7042fe09
+20202f89
+6fe085d7
+c001affc
+7042fb02
+20600000
+2040716c
+6fe0c300
+c041b001
+c0423001
+20402ece
+20407159
+da2006af
+da40063c
+df200010
+20407d66
+2022b009
+7001ba0b
+20202f09
+20407449
+2422b007
+70429c01
+6fe0c300
+c040aff4
+c041aff4
+c0422ff4
+7042fb02
+7042fc07
+20600000
+6fe0c300
+c041b018
+c0423018
+7044e700
+20202ef1
+7044e600
+c1420000
+20202ed1
+7042fb02
+6fe0c485
+c001b01f
+20600000
+7042fc02
+7005d700
+2020752a
+7042fb02
+7042fc03
+20202f83
+474b4032
+18002406
+202029d9
+6fe0804e
+c000303f
+c000b047
+c001304f
+c001b053
+c0023071
+c002b076
+c003307a
+c003b07f
+c0043080
+c004b081
+c0053082
+c005b086
+c0063087
+c006b089
+c009308a
+c009b08b
+c00a308c
+c00ab08e
+c00b3099
+c00c309a
+6a60804e
+202030bd
+efe48006
+67e4819f
+efe10006
+67e10188
+6fe08168
+79207e05
+67e08168
+20600000
+efe28006
+67e2819f
+efe10006
+67e10188
+6fe08168
+79207e06
+67e08168
+20600000
+58000014
+67e10196
+67e142f7
+20600000
+efe40006
+67e44307
+efe10006
+67e14305
+efe40006
+67e442e7
+efe20006
+67e24475
+204030aa
+474bc032
+6fe0c2fe
+c004b065
+6fe0c323
+c280b068
+6fe0c403
+245a6e88
+6fe0c29c
+c000306d
+7042ff01
+204030b8
+2020724a
+70429c01
+d8c04324
+d8a0428c
+20407c91
+20203065
+7042ff00
+7042fe00
+70064d41
+20207819
+efe40006
+67e442ef
+efe20006
+67e24479
+2020724a
+6fe08168
+79207e04
+67e08168
+20600000
+20748000
+70064d32
+20407819
+7042ff04
+202030bb
+20600000
+202030c2
+20600000
+7042ff02
+204030c9
+70064d33
+20207819
+20600000
+20748000
+202030cb
+20600000
+202030d7
+20600000
+2040308e
+202030db
+efe40006
+67e443bc
+6fe143bc
+684943c8
+20407db2
+67e143bc
+6fe143c0
+684943c4
+20407db2
+67e143c0
+20600000
+202030e1
+efe10006
+67e1019f
+efe10006
+67e10188
+207a0000
+6fe08168
+79207e07
+67e08168
+20600000
+da600013
+da200002
+da400002
+204029d3
+1a627e00
+e7e08005
+20600000
+d8a042ef
+18007208
+20407dee
+d8a04479
+18007204
+20407dee
+da20000d
+da400004
+204029d3
+6fe442ef
+e7e40005
+6fe24479
+e7e20005
+20600000
+7042ff05
+da400005
+202030eb
+da400006
+202030eb
+da200002
+da400007
+204029d3
+e2608005
+20600000
+da200009
+da400009
+204029d3
+6fe443b2
+1fe1fe01
+e7e40005
+20600000
+da40000b
+202030eb
+da200006
+da40000c
+204029d3
+6fe2c160
+e7e28005
+20600000
+da200002
+da40000d
+204029d3
+58000006
+e7e08005
+20600000
+da400013
+202030eb
+da400014
+202030dc
+da400015
+da200009
+204029d3
+6fe443c4
+e7e40005
+20600000
+da200003
+da400017
+204029d3
+6fe0c3ba
+1fe17e07
+e7e08005
+6fe0c3bb
+1fe17e07
+e7e08005
+20600000
+da200001
+202029d3
+474c4033
+c513b37c
+c6930000
+202035db
+474cc033
+7844fc00
+7843fc00
+58555555
+98001e00
+6fe0c5a4
+2020259d
+474d4033
+6fe0c5ce
+20402579
+6fe245a6
+98001200
+20402164
+6848c5a4
+204025a2
+204030f1
+c597b105
+783cfc00
+2000001e
+204030f1
+7857fc00
+7826fc00
+7830fc00
+78507c00
+78287c00
+6fe145a2
+98003600
+37c18400
+242c315f
+204066e7
+c517b114
+6fe0c5e1
+243a3114
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+2040315c
+67e0c5c4
+6848c5c3
+98467c00
+2422b167
+474dc033
+7858fc00
+280ffe2f
+2040b14e
+2038b169
+2040315c
+67e0c50e
+c513b127
+6fe0c50e
+6848c5a0
+a8400e00
+2420b16b
+2040315c
+280ffe2f
+2040b157
+e7e08005
+1fe97e00
+1fe67c1f
+2421316d
+1fe27200
+2022b133
+2040315c
+e7e08005
+c2003130
+c513b138
+18a22200
+2040315c
+67e0c5ea
+1a220a00
+09800018
+1fef7e00
+1ff17e00
+e7e18005
+6fe0c5e1
+243a314c
+7845fc00
+280ffe27
+2040b5a0
+2023316f
+204066e6
+474e4033
+7837fc00
+2040268f
+c6138000
+6fe0c5ea
+6848c641
+98467c00
+20417db4
+202035a3
+7846fc00
+2020313f
+2040315c
+1fe67c01
+20217dc4
+1fe0fffe
+c513b155
+203a7dc4
+1fe0ffff
+67e08656
+20600000
+1fe17e07
+68488656
+18498400
+9841fe00
+20600000
+09800008
+19897e00
+20600000
+7045e201
+280ffe27
+2040b5bb
+474ec033
+20402591
+784dfc00
+7845fc00
+202020cf
+7045e202
+20203162
+7045e203
+20203162
+7045e204
+20203162
+7045e205
+20203162
+7045e206
+20203162
+20402164
+6848c5a4
+202021ff
+474f4033
+6fe0c5cf
+20402579
+6fe245a6
+98001200
+204030f1
+20403171
+79202a00
+782efc00
+78307c00
+7850fc00
+204066ed
+785d7c00
+c517b1a6
+c516b1b8
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+474fc033
+c517b18d
+6fe0c5e1
+243a318d
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6fe0c5a1
+98007200
+d8c04550
+efe08006
+08008608
+c2003192
+78247c00
+08008618
+78447c00
+c597b19c
+7843fc00
+58000000
+08008603
+37d38200
+20000064
+785d7c00
+784efc00
+6fe0c5e1
+243a31a3
+784dfc00
+785c7c00
+20402164
+202066eb
+df20000a
+5800003c
+08008608
+c20031a7
+784efc00
+783c7c00
+19317e00
+1ff17e00
+1ff1fe00
+08008620
+c51731b5
+58000001
+08008605
+783d7c00
+20203187
+58000000
+08008605
+20203187
+6fe0c148
+1fe37200
+20000002
+c20031ba
+19317e00
+1fecfe00
+1ff18400
+18427e00
+08008608
+18427e00
+08008628
+20203187
+47504034
+6fe0c5cf
+c28131e5
+6fe0c59f
+1fe0fe03
+67e0c5a1
+6fe0c5c3
+67e0c550
+6fe0c5a0
+e7e08005
+6fe0c59f
+1fe9fe00
+6848c595
+18410403
+18438400
+9841fe00
+6848c596
+9840fe00
+e7e08005
+6fe0c59f
+98007200
+d8c04530
+20407cdc
+4750c034
+c6938000
+6fe08035
+e7e08005
+6fe0c5cf
+c3810000
+6fe0c5a1
+1fe0fe01
+67e0c5a1
+20600000
+6fe0c59f
+1fe0fe04
+c593b1e9
+1fe0fe01
+67e0c5a1
+6fe0c5c3
+67e0c550
+6fe0c5a1
+1fe0fffe
+e7e08005
+6fe0c5a0
+e7e08005
+58000000
+202031cf
+47514034
+6fe0c50f
+1fe97e00
+67e0c594
+1fe0fe01
+d8c0450f
+98c08c00
+efe18006
+67e1c597
+6fe0c50f
+1fe37e00
+1fe17e03
+67e0c59d
+20600000
+4751c034
+6848c5a5
+20403206
+6048c5a5
+20600000
+47524034
+2040320b
+18408401
+18410403
+20600000
+4752c034
+6fe0c5a6
+1fe17e03
+1fefa204
+580045aa
+9a20fe00
+98408c00
+efe08006
+67e0c5a4
+20600000
+67e245a6
+47534034
+da200000
+df200004
+d8c045a6
+efe08006
+9a20a200
+c200321a
+1a227e00
+67e145c1
+6fe0c5c1
+6848c5c2
+9840fe00
+67e0c5c3
+20600000
+4753c034
+20407dbe
+684a45ba
+1c427e00
+98467c00
+24413234
+1fe22400
+6fe245ba
+6848c5be
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+67e245ba
+20207dbc
+20628000
+79207e1c
+20600000
+58000000
+67e245ba
+20600000
+47544035
+38001300
+3805908b
+380b6150
+380c3d20
+67e4c5aa
+38003a1a
+3804c453
+3808d312
+380c0001
+e7e38005
+6fe0c5d0
+207a0000
+d8c045d1
+d8a045aa
+20207c91
+4754c035
+584e001e
+67e1c5d2
+58032303
+e7e18005
+58250642
+e7e18005
+58094c06
+e7e18005
+583c0927
+e7e18005
+7045d001
+20600000
+47554035
+d8406978
+c513b25e
+d84012c0
+6fe0c5ce
+c301325e
+d8402ee0
+604945a2
+20600000
+7045ce01
+7045cf01
+20600000
+7045ce02
+7045cf02
+20600000
+4755c035
+7045e74e
+58101520
+67e1c5e3
+58000005
+20207dce
+da6045ef
+da403653
+2020375c
+79200026
+6fe0c613
+793ffe02
+79207e01
+67e0c613
+58000000
+67e145f5
+6fe145ed
+67e145ef
+7045ec00
+204032b4
+70459500
+6fe0c5e7
+67e0c5a4
+6fe0c5e8
+67e0c141
+6fe245e3
+20203215
+47564035
+7045f900
+6fe145f1
+1fe0fe01
+67e145f1
+6fe0c5f1
+1fe17eff
+247a0000
+6fe0c5eb
+c07fb2d6
+c000b290
+c0013292
+c001b298
+c002329e
+20600000
+704530ff
+2020329f
+6fe0c5c5
+203a3296
+6fe2461b
+20403215
+704530aa
+2020329f
+70453055
+6fe0c5c5
+203a329f
+6fe245ff
+67e24532
+202032a1
+70453022
+6fe2461b
+67e24532
+6fe0c5a0
+1fe17e07
+67e0c531
+70453600
+70459f07
+204031c4
+2040362a
+246c0000
+24778000
+20403553
+20403647
+4756c035
+6fe0c5eb
+c17f8000
+c000b2b9
+c00132bb
+c001b2c1
+c00232c9
+20600000
+7045eb02
+6fe0c5c5
+207a0000
+7045eb01
+20600000
+7045eb02
+20203625
+6fe0c5c5
+203a32bf
+6fe24576
+67e245ff
+7045eb03
+20203625
+6fe0c5c5
+203a32c7
+6fe24576
+684a461b
+98467c00
+24628000
+7045eb04
+20203625
+6fe0c5c5
+203a32cf
+6fe24576
+684a45ff
+98467c00
+24628000
+7045ebff
+70064d39
+20407819
+58000000
+67e145ef
+6fe24576
+20403215
+6fe0c613
+793ffe01
+67e0c613
+20203625
+70462d01
+70462c00
+20600000
+6fe0c62c
+c3808000
+79207e01
+67e0c62c
+58000000
+67e1c5ea
+67e0c5f5
+67e0c5f6
+67e24643
+70462801
+2020327a
+70459f08
+d8c045ed
+d8a04530
+20207c8b
+47574035
+20403397
+204030f8
+2437b397
+204032fb
+204033ca
+20403372
+20403e80
+6fe0c5c5
+207a0000
+6fe24643
+207a0000
+20203215
+20403397
+20203162
+70463905
+d8c0450e
+d8a045ff
+20407c8b
+4757c035
+6fe0c601
+c0553306
+c02ab317
+c0113338
+c07fb573
+20600000
+6fe0c602
+c000b30a
+c0013312
+20600000
+6fe0c5f5
+247a0000
+7045ea01
+7045ed01
+7045ee80
+6fe34508
+67e345ef
+20600000
+6fe0c5f6
+247a0000
+7045eb01
+7045ed02
+2020330e
+6fe0c5c5
+203a331d
+6fe24603
+684a4508
+98467c00
+24628000
+6fe0c602
+c000b321
+c001332e
+20600000
+6fe0c5f5
+247a0000
+6fe0c5ea
+c000b326
+20600000
+7045ea02
+6fe0c5c5
+203a330d
+7045ed01
+7045ee80
+6fe24643
+67e245ef
+20207dbc
+6fe0c5f6
+247a0000
+6fe0c5eb
+c000b333
+20600000
+7045eb02
+6fe0c5c5
+203a3315
+7045ed02
+2020332a
+6fe0c5c5
+203a333e
+6fe24603
+684a4643
+98467c00
+24628000
+6fe0c602
+c000b342
+c001334f
+20600000
+6fe0c5f5
+247a0000
+6fe0c5ea
+c0013347
+20600000
+7045f501
+2040330d
+6fe0c5ec
+1fe1fe01
+67e0c5ec
+58000000
+67e145ea
+20600000
+6fe0c5f6
+247a0000
+6fe0c5eb
+c0803354
+20600000
+7045f601
+20403315
+6fe0c5ec
+1fe1fe02
+67e0c5ec
+2040334c
+20203e7a
+6fe0c511
+c000b35f
+c0013363
+20600000
+6fe0c642
+c4000000
+7857fc00
+20600000
+6fe0c642
+c4008000
+20203361
+6fe0c627
+247a0000
+6fe0c642
+1fe1fe01
+67e0c642
+20600000
+6fe0c627
+247a0000
+6fe0c642
+1fe1fe02
+67e0c642
+20600000
+6fe0c5ec
+207a0000
+6fe0c602
+c000b366
+c001336c
+20600000
+79200027
+6fe0c141
+67e0c63a
+202035ae
+6fe145f7
+20207d7b
+47584036
+70459f00
+6fe0c628
+207a0000
+6fe145f9
+20207d7b
+204033c7
+2437b397
+204033b9
+24343397
+6fe0c594
+203a3397
+1fe0fe02
+98007200
+d8c0450e
+d8a045ff
+20407cdc
+70462a00
+6fe0c627
+205a33d4
+4758c036
+6fe0c601
+c000b39d
+c00133ac
+c07fb39b
+47594036
+d8a0450e
+df200042
+20207ca3
+20403374
+20203573
+20403366
+20403504
+6fe0c621
+6848c5ff
+284ffe03
+7920fe00
+67e0c621
+c000b3b2
+6fe0c629
+6848c5ff
+284ffe04
+7920fe00
+67e0c629
+6fe145fb
+20207d7b
+2040336c
+6848c5ff
+284ffe03
+2020b3b7
+6fe145fd
+20207d7b
+6fe0c5f5
+247a0000
+7045f501
+6fe24609
+2020357b
+6fe24609
+20203581
+20407dbe
+6fe0c59d
+6848c59e
+98467c00
+2442fdbc
+6fe0c59d
+67e0c59e
+6fe1c597
+6849c59a
+98467c00
+2442fdbc
+6fe1c597
+67e1c59a
+20600000
+20403397
+204030f8
+24778000
+6fe0c50e
+67e0c5a0
+204031f3
+6fe0c50f
+2feffe00
+2020b3d3
+2040337e
+204031c4
+20403174
+20203162
+70462b01
+58000280
+d8e00008
+20207ce3
+4759c036
+70462a01
+70462e00
+7045beff
+20203237
+475a4036
+6fe0c62a
+207a0000
+20403224
+24740000
+204033ea
+6fe0c62e
+1fe0fe01
+1fe17e01
+67e0c62e
+c00033ef
+c000b3f2
+20600000
+6fe0c639
+207a0000
+1fe0ffff
+67e0c639
+20600000
+6fe0c639
+247a0000
+20203436
+6fe0c639
+247a0000
+202032da
+6fe0c641
+247a0000
+6fe0c63f
+205a3425
+6fe0c63c
+c3800000
+79207e00
+67e0c63c
+70463b01
+70464000
+58000000
+67e1463d
+7045be60
+20203237
+475ac036
+6fe0c62d
+c1000000
+6fe0c641
+247a0000
+6fe0c63f
+247a0000
+6fe0c63b
+207a0000
+6fe0c642
+2fe00603
+2020b421
+20403224
+24740000
+6fe1463d
+1fe0fe01
+67e1463d
+d84007d0
+98467c00
+20213421
+6fe0c640
+1fe0fe01
+1fe17e01
+67e0c640
+c00034ea
+c000b2da
+20600000
+6fe0c639
+243a32da
+202034ea
+70463f01
+202034ea
+70463b00
+20600000
+70463b01
+20600000
+475b4036
+6fe0c62c
+c3800000
+79207e00
+67e0c62c
+6fe0c63a
+67e0c141
+70462800
+7008eb00
+70462101
+70459500
+6fe24508
+20403215
+20403201
+20203397
+70462800
+70462d00
+70462c00
+20600000
+6fe0c62d
+c1800000
+20403427
+204034ee
+20203384
+475bc036
+6fe0c62d
+c1808000
+204032dd
+204032ec
+6fe0c627
+247a0000
+6fe0c5ec
+207a0000
+70462a00
+20403436
+204033d4
+20203237
+6fe0c62c
+c3838000
+79207e07
+67e0c62c
+6fe0c63a
+67e0c141
+70462e00
+70462801
+58000000
+67e1c654
+67e3c631
+204034dc
+24628000
+6fe0c5a5
+67e0c630
+6fe0c5a4
+67e0c62f
+20600000
+475c4037
+6fe0c62d
+c1838000
+2040344c
+20403484
+204033c7
+2437b397
+204034dc
+2042b386
+6fe0c621
+205a3423
+70462d00
+6fe0c62c
+79207e00
+67e0c62c
+6fe0c628
+1fe67c02
+2442b4da
+20403397
+204033d4
+204034dc
+2022b47d
+6fe245a6
+684a464b
+98467c00
+2022b480
+6fe245a6
+684a4647
+98467c00
+2022b482
+20600000
+6fe0c630
+67e0c5a5
+20600000
+6fe0c636
+2020347e
+6fe0c633
+2020347e
+475cc037
+6fe0c62e
+1fe0fe01
+1fe17e03
+67e0c62e
+c00034a8
+c000b4c2
+c001348e
+c001b4c2
+20600000
+2040330d
+6fe24647
+203a3484
+20403215
+6fe0c634
+205a34a3
+6fe0c632
+67e0c5a4
+6848c655
+6a21465b
+20403583
+6048c655
+2040358c
+6048c652
+18467c50
+24610000
+6848c633
+20403206
+6048c633
+67e0c632
+20600000
+70463401
+d8400000
+2040320b
+67e0c632
+20600000
+20403315
+6fe2464b
+203a3484
+20403215
+6fe0c637
+205a34bd
+6fe0c635
+67e0c5a4
+6848c656
+6a21465d
+20403583
+6048c656
+2040358c
+6048c653
+18467c50
+24610000
+6848c636
+20403206
+6048c636
+67e0c635
+20600000
+70463701
+d8400000
+2040320b
+67e0c635
+20600000
+2040330d
+6fe24508
+20403215
+6fe0c631
+205a34d6
+6fe0c62f
+67e0c5a4
+6848c654
+6a214659
+20403583
+6048c654
+2040358c
+6048c651
+18467c50
+24610000
+6848c630
+20403206
+6048c630
+67e0c62f
+20600000
+70463101
+6fe0c62f
+67e0c5a4
+20600000
+70462800
+20600000
+6fe245a6
+684a4508
+98467c00
+20600000
+6fe0c628
+c1010000
+6fe0c62b
+207a0000
+d8e00008
+20407cf1
+247a0000
+70462b00
+70463900
+204033f5
+475d4037
+70462d07
+70462c00
+20203397
+475dc037
+6fe0c621
+c000b5c2
+6fe0c629
+c000b502
+684a4622
+1c427e00
+98467c00
+24413234
+1fe22400
+6fe24622
+6848c626
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+67e24622
+70462101
+20203201
+70462900
+20203201
+1c427e00
+67e24622
+20600000
+da6045f5
+da403653
+2020375c
+475e4037
+79200026
+6fe0c613
+793ffe01
+79207e02
+67e0c613
+6fe0c5fa
+203a351f
+6fe0c5f9
+c000b517
+c0013517
+c001b526
+c0023526
+6fe0c5e8
+67e0c141
+6848c603
+6048c5a5
+6fe245fb
+20403530
+6048c603
+20600000
+70414103
+6848c604
+6048c5a5
+6fe245ff
+20403530
+6048c604
+20600000
+70414103
+6848c605
+6048c5a5
+6fe2461b
+20403530
+6048c605
+20600000
+6fe24576
+207a0000
+67e245ff
+20403215
+20203201
+475ec037
+6fe145f7
+d84001f8
+98417e00
+203a353b
+6fe145f7
+1fe0fe01
+67e145f7
+20600000
+20403557
+2040362a
+242c355e
+2437b55e
+20403647
+6fe0c3cf
+c0044d5d
+6fe245e3
+684a45a6
+98467c00
+2022b26f
+6fe2461b
+684a45a6
+98467c00
+2042b52d
+6fe0c613
+793ffe02
+67e0c613
+58000000
+67e145ef
+67e145f7
+67e145f5
+70064d3c
+20407819
+475f4037
+df200020
+d8a04530
+20207ca5
+704530ff
+6fe0c5a0
+67e0c531
+6fe2461b
+67e24532
+70459f06
+202031c4
+475fc037
+6fe0c5fa
+203a3201
+6fe145f7
+1fe0fe01
+67e145f7
+2feffe09
+6fe0c5f9
+c000b56b
+c001356d
+c001b56f
+c0023571
+2020351f
+2020b51f
+20203517
+2020b526
+20203517
+2020b526
+2020351f
+2020b526
+2020327a
+6fe0c602
+c000b577
+c001357d
+20600000
+6fe0c5f5
+247a0000
+6fe24603
+67e24643
+67e24647
+20600000
+6fe0c5f6
+247a0000
+6fe24603
+67e24643
+67e2464b
+20600000
+47604038
+1a227e00
+98408a00
+6fe08009
+e7e08005
+18408401
+6fe0c5e9
+98410400
+20600000
+4760c038
+6fe0c5e9
+1fe0fe01
+67e10679
+1fe27200
+1a220c00
+dfe00000
+e8408006
+9840fe00
+c2003593
+68490679
+9846fc00
+20407d64
+18078400
+c6138000
+18427e00
+c6930000
+204022ec
+1fe20400
+20600000
+202022cd
+6fe14607
+202035b5
+1fe22200
+6848c606
+6fe14607
+98408a00
+1a227e00
+e7e08005
+18408401
+6fe0c5e9
+98410400
+6048c606
+20600000
+6fe14657
+204035b5
+6fe14659
+204035b5
+6fe1465b
+204035b5
+6fe1465d
+207a0000
+1fe20a00
+6fe0c5e9
+1fe0fe01
+1fe27200
+20207ca3
+204035a0
+207a0000
+6848c650
+6a214657
+20403583
+6048c650
+20600000
+6a214657
+2040358c
+6048c64f
+18467c50
+24610000
+20203201
+6fe24508
+67e2461b
+202035a1
+58002fb2
+67e1c61f
+58100c0c
+67e1c5be
+5800bb80
+67e1c622
+70463805
+20600000
+5800f80c
+67e1c61f
+581c1919
+67e1c5be
+58017700
+67e1c622
+7046380b
+20600000
+6fe0c613
+c280b281
+c2813532
+6fe0c62f
+c000b6a0
+47614038
+204035fd
+2434367e
+4761c038
+20403612
+204036c8
+6fe0c3cf
+c0045923
+6fe44622
+67e445c6
+6fe14634
+67e14636
+6fe1460f
+20207d7b
+47624038
+20403694
+24740000
+2040369e
+20407de6
+6fe1c61f
+202035fa
+4762c038
+20403694
+24740000
+2040369e
+6fe445c6
+20407d27
+604a40a9
+20202406
+20403600
+24740000
+202031c4
+6fe14609
+20407d7b
+20343606
+6fe3c531
+207a0000
+20207dbc
+70461900
+1a20fe01
+67e0c59f
+2040360e
+67e0c530
+1a420c00
+1a227200
+20207cdc
+6fe0c5a0
+1fe17e07
+67e0c5a0
+20600000
+58000000
+67e0c618
+67e14639
+47634038
+2040362a
+6fe0c596
+c000b61f
+242c3638
+2437b638
+20403647
+6fe0c3cf
+1fe67c08
+2042db33
+204036fc
+20403553
+6fe0c595
+1fe0fe01
+67e0c595
+2040366d
+4763c038
+58000000
+67e0c614
+67e14615
+20600000
+47644039
+7857fc00
+20403174
+6fe0c596
+c000b162
+18002a00
+6fe245a6
+98001200
+68488008
+20402173
+204021aa
+20403100
+2057b162
+20600000
+4764c039
+6fe0c3cf
+c00459df
+6fe0c619
+247a0000
+6fe14615
+1fe0fe01
+67e14615
+6fe0c616
+c282364f
+20403655
+6fe14639
+1fe0fe01
+67e14639
+20203615
+47654039
+204031f3
+6fe0c594
+207a0000
+98007200
+d8c04510
+d8a04574
+20207cdc
+4765c039
+58000000
+67e14615
+70461701
+70064d3a
+20207819
+47664039
+6fe0c3cf
+c0044d70
+6848c618
+6fe0c638
+98467c00
+24213675
+18408401
+6048c618
+6fe0c638
+c002b664
+6fe0c618
+c003366f
+c006366f
+20600000
+6fe0c618
+c001b66f
+c003366f
+20600000
+c517b66b
+67e0c551
+20600000
+67e0c552
+20600000
+6fe0c5a0
+c4020000
+6fe0c5a0
+793ffe04
+67e0c5a0
+20403668
+20403700
+20203201
+6fe245a6
+684a45fb
+98467c00
+2022b201
+204036ee
+20403700
+20203201
+6fe1460b
+20207d7b
+6fe0c619
+205a3685
+6fe0c62f
+c1008000
+2040367c
+6fe14611
+20207d7b
+4766c039
+70461901
+7045a001
+2040360e
+67e0c530
+58000000
+67e3c531
+6fe2461b
+67e24538
+70459f0c
+6fe0c5a0
+79207e03
+67e0c5a0
+204031c4
+202035e3
+47674039
+78347c00
+204023f0
+6fe1c0bd
+203a7dbe
+6fe0c094
+203a7dbe
+6fe0c62f
+c000fdbe
+20600000
+6fe1460d
+20207d7b
+20403224
+24740000
+204036b5
+6fe14630
+1fe0fe01
+67e14630
+68494632
+98467c00
+2042b6aa
+202035e0
+70462f00
+58000000
+67e14630
+58000064
+67e14632
+70462e00
+6fe0c5bf
+67e0c5be
+20600000
+6fe0c5c0
+202036b1
+6fe0c62e
+1fe0fe01
+67e0c62e
+c00236b3
+c002b6af
+20600000
+70462f01
+58000000
+67e14630
+20600000
+df200002
+d8c045a6
+20407dbc
+5800ffff
+e8410006
+98467c00
+2442fdbe
+c20036c3
+20600000
+4767c039
+6fe0c44e
+247a0000
+6fe14500
+c3858000
+6a214607
+2040358c
+6048c63b
+6fe0c640
+c51336d3
+6fe0c643
+98467c00
+242136ed
+6fe0c63d
+1fe67c02
+242136db
+6fe0c63d
+c00036ee
+20600000
+6fe0c63d
+6848c63e
+98467c00
+24628000
+70463d00
+6848c63b
+6fe0c63f
+c51336e4
+6fe0c642
+98467c00
+24610000
+6fe0c63c
+c00036fa
+1fe0ffff
+67e0c63c
+c00136f6
+c000b6f8
+202036fa
+70463d00
+6fe0c63c
+c001b6f4
+1fe0fe01
+67e0c63c
+c000b6f8
+c00136f6
+70414105
+20600000
+70414103
+20600000
+70414100
+20600000
+70414185
+20600000
+6fe0c63d
+1fe0fe01
+67e0c63d
+20600000
+6fe0c63d
+1fe67c02
+24413708
+6fe0c63d
+c1000000
+1fe0ffff
+67e0c63d
+20600000
+70463d03
+20600000
+44e7c019
+6fe0c3cf
+203a370a
+c0023cd1
+c004e0c8
+c0054a31
+c00737c1
+c0036286
+c006badf
+c007beae
+c00666f2
+c0044d11
+20600000
+20758000
+20406f7c
+6fe0c3cf
+c004e1f3
+c00361f3
+c0023cdc
+c0044d82
+c007bea1
+c006baee
+c00737d3
+20600000
+20407762
+20407831
+20403729
+6fe143e4
+20207d7b
+6fe143e2
+20207d7b
+44e8401a
+da2044ea
+20407d99
+207a0000
+1fe22600
+20403732
+20203736
+da600000
+20600000
+c0083745
+c00a373c
+c00ab740
+20600000
+6fe143e6
+20207d7b
+6fe143dc
+20207d7b
+6fe143e0
+20207d7b
+6fe14500
+79207e09
+67e14500
+20600000
+70439a00
+6fe14500
+793ffe09
+67e14500
+202037a2
+6fe143fa
+79207e00
+67e143fa
+20600000
+67e081fb
+44e8c01a
+6fe081fb
+207a0000
+1fe0ffff
+67e081fb
+2040776e
+20403783
+20406be1
+6fe143ec
+20407d7b
+2020374a
+efe08013
+207a0000
+1fe0ffff
+e7e08013
+247a0000
+1a427e00
+20207d7b
+efe10013
+207a0000
+1fe0ffff
+e7e10013
+247a0000
+1a427e00
+20207d7b
+68494447
+1840a601
+da403767
+20203755
+204037b8
+c000b76a
+2020379c
+58000002
+e7e08013
+1840a408
+efe10012
+20207d7b
+20403771
+2020379c
+58000000
+67e143f8
+20600000
+58000000
+67e143fa
+20600000
+6fe143fa
+79207e07
+67e143f8
+58000000
+67e143fa
+20600000
+d8e00009
+202024be
+d8e00009
+202024c2
+7043f605
+2020377d
+da6043f6
+da40377f
+20203755
+70064d0f
+20207824
+70064d10
+20207824
+70064d0e
+20207824
+70064d0d
+20207824
+70064d17
+20207824
+70064d18
+20207824
+70064d16
+20207824
+70064d11
+20207824
+70064d15
+20207824
+70064d14
+20207824
+70064d13
+20207824
+70064d19
+20207824
+70064d1f
+20207824
+7920000d
+20600000
+793f800d
+20600000
+204037b8
+c00137ae
+58000001
+e7e08013
+1840a203
+1840a406
+e8408011
+1a60a601
+e0408013
+2020376d
+58000000
+e7e08013
+6fe14500
+c304b7b4
+204030a3
+20403794
+68494447
+1840a202
+1840a404
+202037aa
+68494447
+1840a600
+efe08013
+20600000
+204037b8
+c08037bf
+2020379c
+1840a40a
+2020376d
+20407384
+20758000
+5800398b
+67e143e4
+58003a9c
+67e143ec
+580039be
+67e145f9
+58003933
+67e143e8
+58003924
+67e143e6
+44974005
+204038f3
+20403904
+20402931
+2040391d
+2020789d
+7041410a
+7045cf84
+7045ce84
+58ffffff
+67e1c680
+704683ff
+58000000
+67e1c2dd
+58220101
+67e1c2e0
+58ffffff
+67e1c68c
+70468fff
+70469b01
+58241404
+67e1c5aa
+7045ad34
+70469010
+70469a01
+70439707
+70438c01
+580000f0
+67e1438d
+58000801
+67e143b2
+7043ba84
+7043bb84
+58504708
+67e1c26d
+58435734
+67e1c270
+585f5241
+67e1c273
+70434c1f
+58050102
+67e1c34d
+58000008
+67e142d5
+58000010
+67e142d7
+58000000
+67e142d9
+5800012c
+67e142db
+5800469d
+67e14404
+58000414
+67e2c69d
+580046fd
+67e142f9
+38020001
+38060000
+38081022
+380c0060
+67e4c6fd
+38020002
+380600c0
+380a0012
+380c000c
+67e4c705
+38020502
+3804004a
+38080040
+380c0808
+67e4c70e
+38010229
+38054000
+38082000
+380ca000
+67e4c717
+38000002
+38040186
+38083020
+380c04a0
+67e4c720
+3800074e
+38040080
+380932a0
+380dcd04
+67e4c729
+38002074
+38041153
+380af4d2
+380dcdd5
+67e4c732
+38002065
+38040808
+380a0202
+380c2080
+67e4c73b
+38030200
+38044a00
+380894e0
+380c0800
+67e4c744
+38022a01
+38040000
+380800a0
+380c0c08
+67e4c74d
+38020128
+380402c0
+38084020
+380c20a8
+67e4c756
+38000010
+38054008
+380ac000
+380c3004
+67e4c75f
+38000200
+38048a00
+380bff00
+380c0037
+67e4c768
+38000302
+3804804a
+380800e1
+380fc408
+67e4c771
+380004ff
+38040000
+3808f000
+380c0800
+67e4c77a
+38022902
+38040000
+38080100
+380c0c08
+67e4c783
+38000128
+38040442
+380b2020
+380c07ff
+67e4c78c
+58000000
+67e1c795
+7041480c
+58643f35
+67e1c0c3
+583b2f8f
+67e1c0c6
+7040a720
+7040c900
+7040ca08
+7040cbb4
+70409918
+70411c3e
+58050e08
+67e1c160
+58000003
+67e14163
+70416a20
+704143ff
+58000c00
+67e1409a
+58000004
+67e1c144
+70414708
+70444fa0
+580002bc
+67e14452
+58000190
+67e14450
+70445403
+70445509
+704149ff
+58004149
+67e1409c
+20406b28
+da20488d
+da401f00
+df20003c
+20406b62
+20406b25
+6fe0c88d
+245a38b9
+6fe1c88e
+245a38bb
+6fe1c891
+245a38bd
+6fe0c894
+245a38bf
+6fe0c895
+245a38c1
+6fe0c896
+245a38c3
+6fe0c897
+245a38c5
+6fe0c898
+245a38c7
+6fe0c899
+245a38c9
+6fe2c89a
+245a38cb
+6fe0c89f
+245a38cd
+6fe0c8a0
+245a38cf
+6fe148a1
+245a38d1
+6fe1c8a3
+245a38d3
+6fe0c8a6
+245a38d5
+6fe0c8a7
+245a38d7
+6fe148a8
+245a38d9
+6fe148aa
+245a38db
+6fe0c8ac
+245a38dd
+6fe0c8ad
+245a38df
+6fe0c8b2
+245a38e1
+6fe0c8b3
+245a38e3
+6fe0c8b4
+245a38e5
+6fe248b5
+245a38e7
+6fe0c8b9
+245a38ea
+6fe248bb
+245a38ef
+6fe248bf
+245a38f1
+20600000
+67e0c148
+20600000
+67e1c0c3
+20600000
+67e1c0c6
+20600000
+67e0c0a7
+20600000
+67e0c0c9
+20600000
+67e0c0ca
+20600000
+67e0c0cb
+20600000
+67e0c099
+20600000
+67e0c11c
+20600000
+67e2c160
+20600000
+67e0c16a
+20600000
+67e0c143
+20600000
+67e1409a
+20600000
+67e1c144
+20600000
+67e0c147
+20600000
+67e0c44f
+20600000
+67e14452
+20600000
+67e14450
+20600000
+67e0c454
+20600000
+67e0c455
+20600000
+67e0c141
+20600000
+67e0c5cf
+20600000
+67e0c5ce
+20600000
+67e2468c
+70469c01
+20600000
+6fe0c69c
+247a0000
+6fe0c8b9
+67e0c690
+20600000
+67e245a6
+20600000
+67e245aa
+20600000
+5800000f
+67e14684
+5800012c
+67e14686
+2040394f
+20403963
+204038fb
+20203981
+da2042dd
+da404680
+df200004
+20407d66
+24628000
+6fe0c2dd
+1fe0ffff
+67e0c2dd
+20600000
+6fe0c26d
+d8a0426e
+98a0a400
+1fe0fe10
+67e0c26d
+df200006
+da2042e2
+1a420a00
+e8408011
+18417ef0
+1ff1fe00
+20403917
+e7e08005
+18417e0f
+20403917
+e7e08005
+1a20a3ff
+c200390c
+20600000
+1fe67c09
+2021391b
+1fe0fe37
+20600000
+1fe0fe30
+20600000
+7042e317
+5800001b
+67e14334
+204029a4
+204029be
+204029ca
+202029ac
+1a627e00
+c00a3930
+c00ab928
+20600000
+70467f00
+2040394b
+70468900
+70469a01
+58000000
+67e1c6f2
+2040789d
+2020378c
+70467f01
+20403adc
+202037a0
+6fe1439c
+c008b936
+20600000
+4497c005
+1a427200
+1a220c00
+d8a046f2
+20407cdc
+6fe0c6f2
+207a0000
+2040394b
+70468904
+6fe0c6f4
+c1810000
+6fe0c6fa
+c000ba60
+c0013a65
+c001ba6f
+c0023a6a
+c050ba74
+c0513a71
+c051ba7a
+c0523a77
+20600000
+6fe0c69c
+207a0000
+20403acd
+20203ac1
+df200004
+da6045a6
+da4000ae
+20403956
+1a60a601
+c2003952
+20600000
+da200001
+1a43a400
+2a4ffe07
+2040b95e
+1a23a200
+1a227e00
+c3840000
+20203957
+efe08013
+9a22fe00
+e7e08013
+1a42a411
+20600000
+20406b28
+da204691
+da401fda
+df200006
+20406b62
+20406b25
+6fe34691
+207a0000
+6fe14691
+67e142dd
+6fe0c694
+67e0c2df
+6fe0c696
+67e0c2e0
+6fe0c692
+1fe67c1a
+24610000
+6fe0c693
+207a0000
+180a7e00
+1fe17e07
+1fe3fe00
+1ff27e00
+6848c692
+9840fe00
+67e0c2de
+da2042de
+da401fdb
+df200001
+20206b33
+6fe0c69c
+247a0000
+da200000
+204070b9
+da204650
+da401770
+dfe00000
+204070de
+6fe0c690
+20207100
+44984006
+dfe0000a
+2040710e
+204039a7
+6fe0c67f
+247a0000
+6fe14660
+1fe0fe01
+67e14660
+1ff1fe00
+204039fb
+204039ae
+20403a0f
+5800450e
+1fe0fe02
+1fe20c00
+df20000c
+dfe00000
+20407dd0
+1fe17eff
+6848c51c
+98467c00
+24628000
+6fe0c510
+4498c006
+c0553a88
+c0663a21
+20600000
+6fe0c69c
+247a0000
+204039c4
+204039e5
+204039f1
+204039d7
+20600000
+d8400004
+d8e00005
+204020dc
+20740000
+79200027
+58008ca0
+67e145a2
+70462801
+6fe0c5ce
+20402579
+20403217
+204033c7
+204031f3
+20403162
+24778000
+20600000
+70459f0b
+6fe3c666
+67e3c530
+6fe2466d
+67e24537
+20600000
+da200008
+d8e0000c
+20407cf1
+203a39cf
+9a267c00
+2022b9cb
+20610000
+d8e0000c
+20407cf1
+203a39cf
+202039cb
+6fe0c688
+c00139d5
+c001b9d3
+20600000
+70468801
+20600000
+70468800
+20600000
+6fe0c689
+207a0000
+6848c688
+2841fe01
+24608000
+70468802
+da201770
+da401770
+dfe00000
+204070de
+6fe0c68a
+d8e0000c
+20407ce3
+20600000
+6848c688
+2841fe00
+24608000
+70468803
+da204650
+da401770
+dfe00000
+204070de
+5800000c
+d8e0000c
+20407ce3
+20600000
+6fe0c689
+d84003e8
+984ffe00
+d8400271
+9846fc00
+20407d64
+1807fe00
+1fe0fe01
+67e0c68a
+20600000
+c0003a00
+c000ba03
+c0013a06
+c001ba09
+20203a0c
+6fe0c5aa
+67e0c5a4
+20600000
+6fe0c5ab
+67e0c5a4
+20600000
+6fe0c5ac
+67e0c5a4
+20600000
+6fe0c5ad
+67e0c5a4
+20600000
+58000000
+67e14660
+20600000
+6fe0c65f
+207a0000
+6fe0c67e
+d840000f
+98467c00
+24610000
+70467e00
+58000000
+67e1467b
+2040394b
+70468904
+70438c00
+70469901
+6fe0c69a
+207a0000
+70468900
+70438c01
+20600000
+44994006
+6fe3c510
+67e3c672
+6fe2c517
+67e2c679
+da204673
+6fe24662
+203a3a7d
+da404662
+df200004
+20407d66
+24628000
+da204677
+da404680
+df200004
+20407d66
+2022ba3c
+da204677
+da4042dd
+df200004
+20407d66
+2422ba38
+20203a40
+70465f00
+58000000
+67e24662
+20600000
+6fe0c69b
+c0003a38
+c000ba40
+20600000
+70467e00
+6fe1467b
+203a3a18
+20403a47
+20403a50
+20403a55
+20203a59
+6fe0c69c
+247a0000
+70438c01
+70439701
+70469a00
+70469900
+5800000f
+67e14684
+20600000
+6fe0c69b
+207a0000
+5800012c
+67e14686
+20600000
+6fe0c67c
+c000ba62
+c0013a5d
+20600000
+6fe0c67b
+c000ba67
+c0013a6c
+20600000
+6fe0c67b
+c000ba71
+c0013a74
+7046890a
+20203ac9
+6fe0c67b
+c000ba77
+c0013a7a
+70468928
+20203ac5
+6fe0c67c
+c000ba77
+c0013a71
+7046893a
+20203ad5
+6fe0c67c
+c000ba7a
+c0013a74
+70468940
+20203ad1
+7046891c
+20403ac9
+20203ad5
+70468922
+20403ac9
+20203ad1
+70468934
+20403ac5
+20203ad5
+7046892e
+20403ac5
+20203ad1
+da204677
+da404680
+df200004
+20407d66
+2022ba88
+da204677
+da4042dd
+df200004
+20407d66
+24628000
+20203a88
+6fe3c510
+67e3c672
+6fe0c65f
+c0003a8e
+c000ba97
+20600000
+20403adc
+70465f01
+704666bb
+6fe24673
+67e24662
+67e2466b
+6fe242dd
+67e24667
+20600000
+da204673
+da404662
+df200004
+20407d66
+2022ba8e
+6fe0c67e
+1fe0fe01
+67e0c67e
+20403aa1
+20203aae
+6fe0c69c
+247a0000
+6fe0c699
+207a0000
+da604684
+da403aa8
+2020375c
+5800000f
+67e14684
+70439707
+70469900
+70469a01
+20600000
+6fe0c69b
+207a0000
+da604686
+da403ab3
+2020375c
+5800012c
+67e14686
+70469b00
+20600000
+efe08006
+c0003ac1
+c000bac5
+c0013ac9
+20600000
+efe08006
+c0003acd
+c0013ad1
+c000bad5
+20600000
+6848c68c
+20406eed
+6848c68d
+20206eed
+6848c68c
+20406ef1
+6848c68d
+20206eed
+6848c68c
+20406eed
+6848c68d
+20206ef1
+6848c68e
+20406eed
+6848c68f
+20206eed
+6848c68e
+20406ef1
+6848c68f
+20206eed
+6848c68e
+20406eed
+6848c68f
+20206ef1
+6fe0c69a
+203a2ad1
+20202acc
+6fe0c69c
+207a0000
+202023a5
+20407384
+4499c006
+6fe0c666
+205a23a9
+20403b97
+20758000
+2040711d
+58003bec
+67e143e4
+58003ca4
+67e143ec
+20403ba5
+20403bc3
+20403bcc
+20203be0
+7041410a
+7045cf84
+7045ce84
+58ffffff
+67e1c655
+704658ff
+58000000
+67e1c2dd
+58220101
+67e1c2e0
+58858c0c
+67e1c659
+70465c05
+7046490d
+70466112
+58241404
+67e1c5aa
+7045ad34
+7041480c
+58643f35
+67e1c0c3
+583b2f8f
+67e1c0c6
+7040a720
+7040c900
+7040ca08
+7040cbb4
+70409918
+70411c3e
+58050e08
+67e1c160
+58000003
+67e14163
+70416a20
+704143ff
+58000c00
+67e1409a
+58000004
+67e1c144
+70414708
+70444fa0
+580002bc
+67e14452
+58000190
+67e14450
+70445403
+70445509
+704149ff
+58004149
+67e1409c
+20406b28
+da20488d
+da401f00
+df20003c
+20406b62
+20406b25
+6fe0c88d
+245a3b5f
+6fe1c88e
+245a3b61
+6fe1c891
+245a3b63
+6fe0c894
+245a3b65
+6fe0c895
+245a3b67
+6fe0c896
+245a3b69
+6fe0c897
+245a3b6b
+6fe0c898
+245a3b6d
+6fe0c899
+245a3b6f
+6fe2c89a
+245a3b71
+6fe0c89f
+245a3b73
+6fe0c8a0
+245a3b75
+6fe148a1
+245a3b77
+6fe1c8a3
+245a3b79
+6fe0c8a6
+245a3b7b
+6fe0c8a7
+245a3b7d
+6fe148a8
+245a3b7f
+6fe148aa
+245a3b81
+6fe0c8ac
+245a3b83
+6fe0c8ad
+245a3b85
+6fe0c8b2
+245a3b87
+6fe0c8b3
+245a3b89
+6fe0c8b4
+245a3b8b
+6fe248b5
+245a3b8d
+6fe0c8b9
+245a3b8f
+6fe0c8ba
+245a3b91
+6fe248bb
+245a3b93
+6fe248bf
+245a3b95
+20600000
+67e0c148
+20600000
+67e1c0c3
+20600000
+67e1c0c6
+20600000
+67e0c0a7
+20600000
+67e0c0c9
+20600000
+67e0c0ca
+20600000
+67e0c0cb
+20600000
+67e0c099
+20600000
+67e0c11c
+20600000
+67e2c160
+20600000
+67e0c16a
+20600000
+67e0c143
+20600000
+67e1409a
+20600000
+67e1c144
+20600000
+67e0c147
+20600000
+67e0c44f
+20600000
+67e14452
+20600000
+67e14450
+20600000
+67e0c454
+20600000
+67e0c455
+20600000
+67e0c141
+20600000
+67e0c5cf
+20600000
+67e0c5ce
+20600000
+67e24659
+20600000
+67e0c661
+20600000
+67e0c649
+20600000
+67e245a6
+20600000
+67e245aa
+20600000
+6fe0c666
+c0003b9b
+c000bba0
+20600000
+58000000
+67e1464b
+5800012c
+67e1464d
+20600000
+58000000
+67e1464b
+5800000f
+67e1464d
+20600000
+20406b28
+da20464f
+da401fda
+df200006
+20406b62
+20406b25
+6fe3464f
+207a0000
+6fe1464f
+67e142dd
+6fe0c652
+67e0c2df
+6fe0c654
+67e0c2e0
+6fe0c650
+1fe67c1a
+24610000
+6fe0c651
+207a0000
+180a7e00
+1fe17e07
+1fe3fe00
+1ff27e00
+6848c650
+9840fe00
+67e0c2de
+da2042de
+da401fdb
+df200001
+20206b33
+da2042dd
+da404655
+df200004
+20407d66
+24628000
+6fe0c2dd
+1fe0ffff
+67e0c2dd
+20600000
+df200004
+da6045a6
+da4000ae
+20403bd3
+1a60a601
+c2003bcf
+20600000
+da200001
+1a43a400
+2a4ffe07
+2040bbdb
+1a23a200
+1a227e00
+c3840000
+20203bd4
+efe08013
+9a22fe00
+e7e08013
+1a42a411
+20600000
+d8400000
+d8c0465a
+df200002
+efe08006
+793ffe07
+1fe20e00
+58000000
+f9207e00
+98408400
+c2003be3
+604a4644
+20600000
+449a4006
+6fe14663
+1fe0fe01
+67e14663
+1feb7e00
+20403bf7
+20403c32
+6fe0c666
+c0003c0b
+c000bc45
+20600000
+c0003bfc
+c000bbff
+c0013c02
+c001bc05
+20203c08
+6fe0c5aa
+67e0c5a4
+20600000
+6fe0c5ab
+67e0c5a4
+20600000
+6fe0c5ac
+67e0c5a4
+20600000
+6fe0c5ad
+67e0c5a4
+20600000
+58000000
+67e14663
+20600000
+70466baa
+6fe242dd
+67e2466c
+20203c0f
+793f8027
+58002ee0
+67e145a2
+6fe3c66b
+67e3c530
+6fe2c672
+67e2c537
+df20000c
+dfe00000
+d8c04530
+20407dd0
+e7e08005
+5800000c
+1fe0fe01
+67e0c59f
+20203c1f
+6fe0c5cf
+20402579
+20403217
+70003588
+204031c4
+2040362a
+20403162
+6fe0c596
+c000bc2b
+2437bc2b
+242c3c2b
+20403c30
+180a7e00
+d84001ff
+98417e00
+1fe0fefa
+20207c93
+70466001
+20600000
+6fe0c660
+207a0000
+70466000
+6fe0c510
+c05dbc38
+20600000
+6fe0c666
+247a0000
+da204515
+da4042dd
+df200004
+20407d66
+24628000
+204023a5
+70466601
+6fe24511
+67e24667
+67e24670
+20203ba0
+449ac006
+6fe0c665
+1fe0fe01
+67e0c665
+70466b00
+58000000
+67e1c674
+70466bcc
+20403c52
+20403c83
+6fe0c665
+c0643c8a
+20203c0f
+6848c661
+20406eed
+20403c66
+20403c58
+6848c661
+20206f0b
+6848c65c
+20406eed
+6848c65c
+20406ed7
+20406ee0
+2020bc7d
+6848c65c
+20406ef1
+200004b0
+6848c65b
+20406ed7
+20406ee0
+2020bc7a
+20600000
+6848c659
+20406eed
+6848c659
+20406ed7
+20406ee0
+2020bc74
+6848c659
+20406ef1
+200004b0
+6848c65a
+20406ed7
+20406ee0
+2020bc77
+20600000
+70467401
+70466500
+20600000
+70467402
+70466500
+20600000
+70467501
+70466500
+20600000
+70467502
+70466500
+20600000
+70467601
+70466500
+20600000
+6fe1c674
+203a3c99
+58000000
+67e1464b
+5800000f
+67e1464d
+20203c96
+6fe0c665
+1fe0ffff
+67e0c665
+20600000
+6fe0c666
+c1008000
+6fe0c64a
+1fe0fe01
+67e0c64a
+c0013c96
+c0023c98
+20600000
+6848c649
+20206eed
+70464a00
+6848c649
+20206ef1
+6fe1464d
+207a0000
+6849464b
+9842fe00
+205a3ca6
+6fe1464b
+1fe0fe01
+67e1464b
+20600000
+20403c8e
+20203c9b
+204023a5
+20403cab
+20403cc2
+d85fffff
+20202406
+df200018
+70464800
+6848c648
+18420e00
+6fe24644
+afefffff
+2020bcb3
+18418480
+20406ed7
+6fe0c648
+1fe0fe01
+67e0c648
+c2003cad
+20600000
+58000030
+18a20c00
+e8408006
+9840fe00
+e7e08005
+d8a00016
+d8c0465b
+c2003cc7
+20600000
+58000000
+67e60016
+d8a00016
+d8c0465a
+df200002
+efe08006
+793ffe07
+1fe6fc02
+20407d64
+1807fe00
+98a08a00
+18077e00
+243a3cb9
+58000003
+20203cba
+58003d04
+67e145f7
+58003dfe
+67e145fb
+58003e0f
+67e145fd
+58003dd0
+67e145f9
+58003d13
+67e10837
+20207902
+449b4006
+20403d09
+20403cff
+6fe0c680
+2feffe05
+2020bce5
+6fe0c680
+2feffe06
+2040b24a
+6fe0c6ad
+67e0c141
+7045e9ff
+5800097d
+67e14657
+58000a7d
+67e14659
+58000b7d
+67e1465b
+58000c7d
+67e1465d
+7045e885
+7046ab00
+70464200
+20403260
+6fe0c680
+2feffe03
+2040b263
+20403378
+20403266
+2040323a
+6fe0c68a
+67e08839
+6fe4c681
+67e4883a
+20600000
+70409918
+6fe0c680
+c4038000
+70409910
+20600000
+6fe0c627
+c0003dc0
+c000bd3d
+c007bd39
+20600000
+449bc006
+da401fdf
+da20465f
+df200001
+20206b62
+449c4007
+df200001
+da20465f
+da401fdf
+20206b33
+6fe0c680
+c2823d17
+6fe0c65f
+c0ad3d1b
+70465f5a
+6ff21404
+79207e1d
+67e20792
+449cc007
+20403d33
+20407956
+20403d20
+20203d29
+6fe0883a
+207a0000
+6fe0c65f
+c02d3d27
+6fe2083b
+67e20792
+20600000
+6fe2083f
+20203d25
+6fe0c65f
+c02d3d2f
+580092aa
+67e10785
+7007b61a
+20600000
+580092c5
+67e10785
+7007b641
+20600000
+6fe0c68b
+207a0000
+d8c0468b
+d8a007fb
+df200020
+20207cdc
+20403436
+20403dc8
+20403d8e
+20203d3a
+20403436
+20403dc8
+2040343f
+20403d8e
+20203d3e
+449d4007
+20403d48
+20403d57
+20403d67
+20403d81
+20203d74
+6fe0c67f
+207a0000
+d8e0000d
+20407cf1
+247a0000
+70467f00
+58000001
+67e088f1
+58000000
+e7e38005
+7008ea20
+6fe088eb
+79207e02
+67e088eb
+20600000
+6fe0c67c
+207a0000
+d8e0000e
+20407cf1
+247a0000
+70467c00
+d8a00901
+20407c9b
+6fe40901
+67e44668
+70090100
+7008e910
+6fe088eb
+79207e01
+67e088eb
+20600000
+6fe0c67e
+207a0000
+d8e0000a
+20407cf1
+247a0000
+70467e00
+d8a00929
+20407c9b
+70092902
+6fe10929
+67e14676
+7008ea22
+20203d53
+6fe0c67d
+207a0000
+d8e0000c
+20407cf1
+247a0000
+70467d00
+d8a00921
+20407c9b
+70092103
+6fe18921
+67e1c673
+7008ea21
+20203d53
+6fe0c6ae
+207a0000
+d8e00006
+20407cf1
+247a0000
+7046ae00
+d8a00921
+20407c9b
+70092105
+6fe20921
+67e246b3
+7008ea23
+20203d53
+449dc007
+6fe088df
+205a3dda
+204078f6
+6fe088d5
+207a0000
+7008d500
+6fe108d3
+d84002ba
+98467c00
+24628000
+6fe08853
+c1dd0000
+6fe08854
+c0503da3
+c050bda9
+c0533db5
+c053bdb7
+c054bdbd
+7008d600
+20600000
+6fe08855
+c040bda6
+20203da1
+204032da
+7008d601
+20600000
+6fe08855
+c000bdae
+c0423db1
+c053bdb3
+20203da1
+6fe0c5ec
+67e08894
+20203da7
+20403437
+20203dae
+700894a1
+20203da7
+70089415
+20203da7
+6fe0c62d
+c0003dbb
+c000bdb3
+20600000
+700894a0
+20203da7
+6fe246b7
+67e20894
+20203da7
+204033d8
+204033dd
+20403403
+20403dc8
+2040343f
+2040345e
+20403d8e
+20203dc1
+449e4007
+6fe0c62d
+c1800000
+2040343a
+20403d42
+6fe0c627
+247a0000
+202034e0
+6fe0c5a0
+c000bdd3
+c0013ddc
+6fe0c6ac
+c2803de2
+20203dde
+6fe0c3cf
+c1820000
+7046ac03
+20600000
+7046ac00
+20600000
+6fe0c6ac
+c280bde6
+6fe0c628
+c000bded
+c001bdf6
+20600000
+6fe0c6ac
+793ffe00
+67e0c6ac
+20203de9
+6fe0c6ac
+793ffe01
+67e0c6ac
+70459f01
+580000ff
+67e0c530
+20600000
+449ec007
+70462801
+6fe0c62d
+c1000000
+6fe0c627
+247a0000
+2040335b
+24778000
+202032e8
+6fe0c510
+c000b2e8
+c07fb2e8
+7008d700
+70459f01
+6fe0c638
+67e0c530
+20600000
+58000001
+67e088f1
+6fe3c602
+e7e38005
+6fe0c602
+245a3e07
+6fe0c602
+205a3e0b
+20203d52
+70467f01
+58000180
+d8e0000d
+20207ce3
+70467f00
+58000000
+d8e0000d
+20207ce3
+6fe0c602
+c0003e15
+c0013e60
+c001be30
+c002be48
+20203397
+6fe0c604
+67e0c628
+70460400
+d8a00901
+d8c04603
+df200008
+20407cdc
+6fe40901
+245a3e28
+6fe40901
+205a3e2c
+6fe40901
+67e44660
+684c4668
+98467c00
+2442bd62
+6fe44660
+67e44668
+20203397
+70467c01
+58000180
+d8e0000e
+20207ce3
+70467c00
+58000000
+d8e0000e
+20207ce3
+d8a00921
+d8c04602
+df200003
+20407cdc
+6fe10922
+245a3e40
+6fe10922
+205a3e44
+6fe18921
+67e1c670
+6849c673
+98467c00
+2442bd7f
+6fe1c670
+67e1c673
+20203397
+70467d01
+58000180
+d8e0000c
+20207ce3
+70467d00
+58000000
+d8e0000c
+20207ce3
+d8a00921
+d8c04602
+df200004
+20407cdc
+6fe18922
+245a3e58
+6fe18922
+205a3e5c
+6fe18922
+67e1c6af
+6849c6b3
+98467c00
+2442bd8c
+6fe1c6af
+67e1c6b3
+20203397
+7046ae01
+58000180
+d8e00006
+20207ce3
+7046ae00
+58000000
+d8e00006
+20207ce3
+d8a00929
+d8c04602
+df200002
+20407cdc
+6fe10929
+245a3e70
+6fe10929
+205a3e74
+6fe10929
+67e14676
+68494679
+98467c00
+2442be78
+6fe14676
+67e14679
+20203397
+70467e01
+58000180
+d8e0000a
+20207ce3
+70467e00
+58000000
+d8e0000a
+20207ce3
+7008ea22
+20203d53
+6fe0c3cf
+c1820000
+6fe0c65f
+c12d0000
+7046ab01
+20600000
+6fe0c3cf
+c1820000
+6fe0c6ab
+207a0000
+70065600
+70465f5a
+20403d0e
+20403d09
+6fe08656
+1fe0fe01
+67e08656
+c07fec99
+6fe0c65f
+c0ad3e85
+20206c99
+20403e9a
+24342002
+6fe0c88d
+203a2002
+6fe0c90f
+c17f8000
+1fe20e00
+6fe2067b
+afec0000
+2040c69b
+20202003
+78547c00
+6fe4488e
+c3044e1b
+6ff08132
+c2824e1b
+78347c00
+20204e1b
+204067ff
+20403ea5
+20403eaa
+20203266
+70409910
+6fe4488e
+c3848000
+70409918
+20600000
+20403260
+6fe4488e
+c40a0000
+20203263
+20407384
+20403ebd
+20403ef9
+204040eb
+20406f4e
+20758000
+2040404e
+6fe0c678
+c00249d7
+6fe14500
+c28648c5
+70489600
+204042e3
+70489601
+2020430e
+20758000
+204035c8
+2040323a
+20403edb
+20404161
+20404203
+204041b7
+20402a1f
+449f4007
+6fe4488e
+c287bf31
+c2873f96
+c2863fd5
+20600000
+58009000
+67e142f9
+6fe4488e
+c291e80c
+580095b8
+67e148d6
+6fe4488e
+c290680c
+c290e80c
+580094fc
+67e148d6
+6fe4488e
+c291680c
+5800944a
+67e148d6
+2020680c
+20403ef4
+20403ecb
+20404093
+6fe0cac1
+67e0cac2
+7049a000
+d8a0475f
+df200014
+20407ca3
+6fe0c26d
+1fe67c0c
+24213ef2
+5806ff06
+67e1c75f
+58000300
+e7e18005
+58000080
+e7e08005
+6fe0c26d
+1fe0fe01
+1fe27200
+d8c0436d
+20207cdc
+d8a0475f
+20203eed
+d8400000
+6fe4488e
+c287e81d
+d85fffff
+2020681d
+20407de6
+6848c90f
+20404f0a
+6fe4488e
+2feffe0a
+2040a3a5
+5800491f
+67e14948
+58004927
+67e1494a
+5800493c
+67e1494c
+20403f0f
+6fe1494a
+1fe22400
+df200014
+e8408012
+284ffe07
+2440ef0b
+1a40a401
+c2003f09
+20600000
+6fe14948
+1fe22400
+df200008
+e8408012
+18467cff
+2442bf18
+1a40a401
+c2003f12
+202023e1
+20406f0b
+e8408012
+20206ec0
+d8c08070
+df200010
+efe08006
+243a3f22
+58000040
+18c08bff
+e7e08005
+c2003f1d
+dfe080dc
+98c67c00
+20628000
+df200008
+d8c080d4
+20203f1d
+6fe0c9a0
+203a6eac
+20206ea5
+6fe14abd
+68494abf
+98467c00
+24610000
+2020233e
+6fe0c678
+c0003f35
+c000bf3f
+20600000
+db000008
+6fe14abf
+9b06fc00
+20407d64
+1807fe00
+67e1064e
+dfe01fbc
+d8400004
+dd600004
+20203f49
+db000020
+6fe14abf
+9b06fc00
+20407d64
+1807fe00
+67e1064e
+dfe01fb0
+d8400010
+dd600010
+20203f49
+67e10650
+60488656
+da204aa5
+da600000
+6fe10650
+1fe22400
+6f208656
+da204aa5
+20406b62
+6fe44aa5
+684c4aad
+9841fe00
+684c4ab5
+9841fe00
+203a3f5f
+1a60a601
+6fe1064e
+9a667c00
+6fe10650
+9b067e00
+67e10650
+20203f4d
+1a667c00
+2022bf72
+6fe10650
+9b00fe00
+9d667e00
+67e10650
+6fe10650
+1fe22400
+6f208656
+da204aa5
+20406b62
+6fe44aa5
+684c4aad
+9841fe00
+684c4ab5
+9841fe00
+203a3f74
+6fe10650
+20203f63
+6560cabd
+20600000
+58001fc0
+68490650
+98467e00
+67e14abd
+18427e00
+9d60a400
+6f208656
+da204aa5
+20406b62
+6fe0c678
+c0003f81
+c000bf87
+20600000
+6fe34aa5
+67e246a3
+6fe246a3
+67e245ff
+67e245a6
+20600000
+6fe0caa5
+1fe67c03
+24417dcc
+67e0caa1
+6fe0caa6
+67e0c679
+6fe34aa7
+67e3467a
+6fe34aad
+67e34680
+68494ab3
+180a7e00
+9840fe00
+67e146a7
+202067d5
+6fe4488e
+c31ebf9d
+6848c440
+20404f0a
+6848c440
+20406ee0
+2020bf96
+20404049
+d8400080
+da204678
+da400000
+20406cd7
+449fc007
+20403fc6
+6fe0c678
+c0003faa
+c000bfb0
+c0013fbb
+c001bfbf
+c0023fc3
+704aa100
+6fe0c6a9
+1fe67c01
+2442fdcc
+67e0ca93
+20600000
+6fe0c6aa
+20403fac
+6fe0c6ae
+1fe67c03
+24417dcc
+67e0caa1
+684946a7
+180a7e00
+9840fe00
+67e146a7
+20600000
+6fe0c6ab
+20403fac
+6fe0c6af
+20203fb5
+6fe0c6ac
+20403fac
+6fe0c6b0
+20203fb5
+704aa100
+6fe0c6ad
+20203fac
+6fe146a0
+d840aa55
+98467c00
+2022e7cf
+604946a0
+204067f8
+6fe0c717
+67e0c678
+6fe245fb
+67e245ff
+67e245a6
+6fe0caa2
+79207e00
+67e0caa2
+20203fd7
+204067b6
+20203fa2
+44a04008
+6fe4488e
+c287bfdd
+c2874004
+c28667bb
+20600000
+6fe0c678
+c0003fe1
+c000bfeb
+20600000
+68494abd
+58001fc0
+98462400
+da2046a3
+df200004
+20406b33
+68494abd
+18408404
+60494abd
+20600000
+704aa301
+6fe0caa4
+207a0000
+68494abd
+58001fc0
+98467e00
+67e1064e
+1fe22400
+da204aa1
+df200001
+20406b33
+6fe1064e
+1fe0a401
+da204679
+df20000d
+20406b33
+6fe1064e
+1fe0a40e
+da2046a7
+df200002
+20406b33
+68494abd
+18408410
+60494abd
+20600000
+6fe4488e
+c31ec00b
+6848c440
+20404f0a
+6848c440
+20406ee0
+2020c4b9
+20404049
+6fe0caa2
+c2804014
+c280c019
+c2814025
+c281c02d
+c2824035
+c282c03d
+20600000
+704aa200
+d8400080
+da204678
+da400000
+20206cc9
+6fe0caa2
+793ffe01
+67e0caa2
+d8400027
+da204679
+da400001
+20406cc9
+d8400002
+da2046a7
+da40002f
+20406cc9
+2020400c
+6fe0caa2
+793ffe02
+67e0caa2
+d8400004
+da2046a3
+da40002b
+20406cc9
+2020400c
+6fe0caa2
+793ffe03
+67e0caa2
+d8400005
+da2046a9
+da400031
+20406cc9
+2020400c
+6fe0caa2
+793ffe04
+67e0caa2
+d8400003
+da2046ae
+da400036
+20406cc9
+2020400c
+6fe0caa2
+793ffe05
+67e0caa2
+d8400004
+da2046b1
+da400039
+20406cc9
+2020400c
+d8400001
+da204678
+da400000
+20206cc9
+20406cb2
+6fe4488e
+2feffe0d
+2020ecb7
+20206cba
+44a0c008
+580068c4
+67e143f2
+58004862
+67e14609
+58004871
+67e1460b
+5800478f
+67e1460d
+58004875
+67e143e2
+580047aa
+67e143e0
+58004066
+67e143e6
+580042dd
+67e143e4
+580047ac
+67e143de
+58005420
+67e143e8
+58004075
+67e143ec
+202068cb
+44a14008
+1a627e00
+c01948b3
+c02048bb
+c00ac8a2
+c00a4893
+c00848c0
+c018d406
+c014d408
+c01f379e
+c0225428
+c01cc7b8
+c01e47ca
+c01d47e6
+20600000
+44a1c008
+204040e0
+204040cc
+204040dd
+20404100
+20404186
+204041ab
+20404131
+2040413e
+20404146
+20404267
+2040428f
+204042c4
+2040326c
+20403507
+204058f6
+204042b5
+204042bf
+20404299
+204042a4
+2040550d
+204042ad
+20405510
+204042b2
+204042a1
+20405527
+2040429e
+204042c9
+204042cc
+202042d5
+44a24008
+6fe0c8b1
+c0004098
+c000c09d
+c00140a2
+58560094
+67e1c8ab
+58006d00
+e7e18005
+20600000
+58d4012c
+67e1c8ab
+5800e600
+e7e18005
+20600000
+5ac01270
+67e1c8ab
+58014001
+e7e18005
+20600000
+204040a9
+202040e0
+6fe0c41d
+c1810000
+6fe0c41e
+204040b2
+18427e00
+67e0c64c
+79207e07
+d8400000
+20206f1c
+d8400012
+c1030000
+d840000a
+c1038000
+d8400009
+c1040000
+d840000c
+c1048000
+d8400006
+c1050000
+d8400014
+c1058000
+d8400015
+c1060000
+d8400016
+c1068000
+d840000d
+20600000
+204040a7
+20406fb2
+20406f8e
+1fe6fc0a
+20407d61
+67e1464a
+da204644
+20204ec4
+6fe4488e
+c4058000
+204040c4
+6fe0c422
+c280c7af
+c30040d6
+70464e01
+202040d4
+d8e00002
+20204a25
+d8e00002
+20404a29
+704ac60c
+6fe0c64e
+207a0000
+70464e00
+20204184
+6fe4488e
+c4058000
+20204e5e
+6fe348ab
+67e34644
+6fe0c64e
+203a40e8
+6fe148af
+1fe0fe05
+67e14648
+20600000
+6fe148af
+67e14648
+20600000
+6fe0c678
+c08040f3
+204035d3
+585d4800
+67e2462a
+6fe0c422
+c4000000
+202058fc
+580000a0
+204040f9
+6fe0c422
+c4000000
+58000050
+202040f9
+684942d5
+9846fc00
+20407d61
+67e0c88b
+6fe0c73e
+203a552a
+20600000
+704acb00
+6fe14750
+247a0000
+6fe145ef
+247a0000
+6fe145f5
+247a0000
+6fe0cac2
+247a0000
+6fe4488e
+c4058000
+c4148000
+c4010000
+c295411b
+44a2c008
+6fe0cac6
+1fe0fe01
+67e0cac6
+1fe67c14
+24414119
+c0014182
+c0024184
+c0034182
+c0044184
+20600000
+704ac601
+20204184
+6fe1471e
+68494741
+98460400
+6fe14ac7
+98467c00
+24214184
+704acb01
+6fe0cac9
+1fe0fe01
+67e0cac9
+6848caca
+18408401
+98467c00
+24214182
+20404184
+6fe0cac9
+6848caca
+184f8402
+98467c00
+24628000
+704ac900
+20600000
+6fe0cac2
+207a0000
+1fe0ffff
+67e0cac2
+6fe4488e
+c2944139
+203a4166
+2020416c
+203a413c
+6848c916
+20206ef1
+6848c916
+20206eed
+6fe14741
+207a0000
+6fe0cac5
+207a0000
+1fe0ffff
+67e0cac5
+c280416c
+20204166
+6fe0c678
+c000414b
+6fe14750
+207a0000
+2020414d
+6fe145ef
+207a0000
+6fe4488e
+2fec0028
+2040c15f
+6fe0cacc
+1fe0fe01
+67e0cacc
+6848cacd
+18408401
+98467c00
+2421416c
+20404166
+6fe0cacc
+6848cacd
+184f8402
+98467c00
+24628000
+704acc00
+20600000
+704ac200
+20600000
+44a34008
+2040413c
+20404166
+2040419d
+202041a3
+6fe0c678
+c0004172
+c000c174
+c0014176
+c001c178
+20600000
+6fe0c678
+c000417a
+c000c17c
+c001417e
+c001c180
+20600000
+6848c918
+20206eed
+6848c919
+20206eed
+6848c91a
+20206eed
+6848c91b
+20206eed
+6848c918
+20206ef1
+6848c919
+20206ef1
+6848c91a
+20206ef1
+6848c91b
+20206ef1
+6848c917
+20206ef1
+6848c917
+20206eed
+6fe0cace
+c02d4193
+6fe14741
+207a0000
+6fe1471e
+68494741
+98460400
+6fe14ac3
+98467e00
+20214196
+2040419d
+204041a9
+202041a3
+6fe0c638
+67e0c70d
+20204196
+20404199
+204041a5
+2020419f
+6fe0c70d
+c300419d
+6848c913
+20206ef1
+6848c913
+20206eed
+6fe0c70d
+c300c1a3
+6848c914
+20206ef1
+6848c914
+20206eed
+6fe0c70d
+c30141a9
+6848c915
+20206ef1
+6848c915
+20206eed
+6fe4488e
+c4158000
+6fe14741
+207a0000
+6fe1471e
+68494741
+98460400
+6fe148c2
+98467e00
+20610000
+7046b100
+20204203
+6fe4488e
+c4158000
+da200000
+204070b9
+6fe348b2
+67e3064e
+204070ca
+6fe148b2
+20207103
+6fe0c91c
+20407103
+6fe0c91d
+20407103
+6fe0c91e
+20207103
+6fe348b2
+67e3064e
+202070ca
+44a3c008
+6fe4488e
+c4158000
+6fe0c6b1
+204041de
+6fe0c6b2
+202041ef
+6fe4488e
+c4158000
+204044ca
+6fe0c9ab
+c4000000
+6fe0caa2
+79207e05
+67e0caa2
+204044b7
+7048ca00
+7048b800
+7048b70a
+6fe0c6b1
+1fe0fe01
+1fe67c02
+24417dcc
+67e0c6b1
+20600000
+6fe4488e
+c4158000
+204044ca
+6fe0c9ab
+c4000000
+6fe0c6b1
+c1808000
+6fe0caa2
+79207e05
+67e0caa2
+204044b7
+6fe0c6b2
+1fe0fe01
+1fe67c06
+24417dcc
+67e0c6b2
+20600000
+6fe4488e
+c4158000
+684a48c4
+1c427e00
+98467e00
+684948c8
+9846fc00
+20407d64
+1807fe00
+207a0000
+1c420400
+604a48c4
+6fe0c6b1
+c0014209
+c000c244
+7046b100
+44a44009
+6fe4488e
+c4158000
+204041c0
+7048b900
+2020424e
+6fe0c8b8
+203a4211
+6fe0c8b7
+1fe67c05
+2021421a
+1fe0ffff
+67e0c8b7
+20204221
+6fe0c8b7
+1fe0fe01
+67e0c8b7
+20404221
+6fe0c8b7
+1fe67c5a
+20610000
+7048b801
+20600000
+7048b800
+6fe0c8ca
+1fe0fe01
+1fe67c06
+24417dcc
+67e0c8ca
+20600000
+204041b7
+20404207
+20204224
+6fe0c8ca
+c001422c
+c000c231
+c0004236
+c001c23b
+c002c23d
+c002423f
+c0034241
+6fe0c91c
+67e0c8b2
+58000001
+67e0c8b3
+202041c6
+6fe0c91d
+67e0c8b2
+58000002
+67e0c8b3
+202041c6
+6fe0c91e
+67e0c8b2
+58000004
+67e0c8b3
+202041c6
+20404231
+20204236
+2040422c
+20204231
+2040422c
+20204236
+2040422c
+20404231
+20204236
+204041c0
+6fe0c6b2
+1fe67c06
+24417dcc
+67e0c6b2
+d8c048ba
+98c08c00
+efe08006
+67e0c8b9
+2020424e
+6fe0c8b9
+2feffe02
+2040c25b
+2440c25d
+6fe0c8b9
+2feffe01
+2040c25f
+2440c261
+6fe0c8b9
+2feffe00
+2040c263
+2440c265
+20600000
+6848c91c
+20206eed
+6848c91c
+20206ef1
+6848c91d
+20206eed
+6848c91d
+20206ef1
+6848c91e
+20206eed
+6848c91e
+20206ef1
+6fe0c8a6
+c280426d
+20404278
+6fe0c8a6
+c280c27e
+20204289
+6fe0c8a9
+1fe67c64
+24610000
+1fe0fe01
+67e0c8a9
+c18c8000
+7048a700
+6fe0c678
+c1020000
+204048e6
+20204680
+7048a900
+6fe0c8a7
+207a0000
+7048a700
+20404045
+20206c99
+6fe0c8aa
+1fe67c64
+24610000
+1fe0fe01
+67e0c8aa
+c18c8000
+7048a800
+6fe0c678
+c1020000
+20406824
+20204675
+7048aa00
+6fe0c8a8
+207a0000
+7048a800
+20404045
+20206c99
+6fe0c735
+c1808000
+da604736
+da404294
+20203755
+6fe0ca9b
+c000c680
+c0014675
+c001d3ad
+20600000
+da604750
+da40429c
+2020375c
+204048e9
+202047af
+da604705
+da403fd7
+20203755
+da60490e
+da4048fd
+20203755
+da604720
+da4042aa
+20403755
+6fe0c720
+c000b788
+20600000
+6fe4488e
+c28d48c5
+20204e35
+6fe4488e
+c38c8000
+da60477f
+da40551f
+20203755
+da60490d
+da405408
+20203755
+6fe0ca80
+207a0000
+704a8000
+6fe0c9a0
+247a0000
+6fe145ef
+247a0000
+7049a901
+204035fd
+20204828
+da604a82
+da4042c2
+20203755
+704a8100
+20600000
+da6049a3
+da4042c7
+2020375c
+7049a001
+202047af
+da604a9f
+da404547
+20203755
+6fe4488e
+c4120000
+6fe0cad0
+207a0000
+1fe0ffff
+67e0cad0
+247a0000
+70409401
+202047af
+6fe0cace
+c12d0000
+da604741
+da4042da
+2020375c
+6fe0c678
+c00047fb
+202053c6
+44a4c009
+20404330
+204041f3
+204049fa
+204049ff
+202042e3
+44a54009
+6fe4488e
+c41c0000
+c29dc2f0
+c29e42f0
+6848c665
+20404f0a
+6848c665
+20406ee0
+2020c2fd
+6fe4488e
+c29cc302
+20204308
+6848c665
+20404f06
+6848c665
+20406ee0
+2420c2f8
+6fe4488e
+c29dc302
+20204308
+6848c665
+20404f0a
+6fe4488e
+c29dc308
+20204302
+6848c665
+20404f06
+6fe4488e
+c29cc308
+20204302
+6fe0c678
+c1008000
+70467801
+6fe0c896
+243a6c99
+202048e6
+6fe0c678
+c1000000
+70467800
+6fe0c896
+243a6c99
+20204804
+44a5c009
+6fe4488e
+c305c31a
+204040c4
+6fe14646
+1fe6fc02
+20407d61
+6849464a
+98467c00
+2021430e
+6fe0c422
+c280c7af
+6fe0ca7f
+205a4670
+6fe0ca7e
+247a0000
+6fe0c678
+c000432d
+204053c1
+c000c324
+c0014329
+c001c32b
+6fe3467a
+684b46f8
+98467c00
+2022d3ad
+20204e09
+6fe34687
+20204325
+6fe34694
+20204325
+20403e9a
+20345988
+2020594d
+44a64009
+20404334
+204043b5
+202045b4
+20403ef9
+204043af
+58000000
+67e1499e
+d8c0494e
+d8a04963
+df200014
+20407cdc
+5800494e
+67e14998
+5800498d
+67e1499a
+204043ad
+204043ab
+6fe1499e
+1fe0fe01
+67e1499e
+c284c334
+6848c911
+20406ee0
+2420c342
+204043af
+6848c911
+20406ee0
+2020c34a
+20404372
+20404386
+204043ab
+204043ad
+6fe1494c
+1fe22400
+70499d00
+e8408012
+6fe1494a
+1fe22200
+1a222600
+df200014
+efe08011
+98467c00
+2022c366
+1a20a201
+c2004359
+1a40a401
+6fe0c99d
+1fe0fe01
+67e0c99d
+1fe67c0b
+20214354
+20403f1b
+20203f0f
+6fe14998
+1fe20a00
+1a227e00
+9a667e00
+98a08a00
+6fe1499a
+1fe22600
+6fe0c99d
+9a60a600
+efe08013
+e7e08005
+2020435e
+70499d00
+204043a9
+2040437a
+204043a7
+2040437a
+1fe67c0b
+20214373
+202043a9
+70499c00
+20404399
+6fe1499a
+1fe20a00
+6fe0c99d
+98a08a00
+6fe0c99c
+e7e08005
+6fe0c99d
+1fe0fe01
+67e0c99d
+20600000
+6fe1494a
+1fe22400
+70499d00
+70499c00
+e8408012
+284ffe07
+2020c393
+20406ef1
+20404399
+e8408012
+20406eed
+e8408012
+20404f0a
+1a40a401
+6fe14998
+2040437d
+1fe67c13
+20214389
+20600000
+44a6c009
+20000078
+6fe14948
+1fe22600
+df200008
+e8408013
+20406ee0
+6fe0c99c
+1fe37e00
+7920fe07
+67e0c99c
+1a60a601
+c200439e
+20600000
+6848c911
+20206eed
+6848c911
+20206ef1
+6848c911
+20206ed7
+6848c910
+20206eed
+6848c910
+20206ef1
+7049a000
+6fe149a1
+67e149a3
+20600000
+da20494e
+da404963
+df200014
+20407d66
+2422c3b1
+204043f1
+205a43b1
+204043fd
+6fe0c9a8
+247a0000
+6fe0ca9c
+c1008000
+c1010000
+c1020000
+70499d00
+da20494e
+da404978
+e8408011
+efe08012
+9842fe00
+203a43e9
+67e0c99c
+6048c9ab
+e0408012
+7049a901
+7049ac00
+6fe0c99c
+c30043de
+6fe0c99d
+1feffe08
+6848c9ac
+9840fe00
+d8c049c7
+98c08c00
+efe08006
+67e0c9aa
+44a74009
+2040442e
+20404435
+204044dc
+20404564
+6fe0c99c
+1fe37e00
+67e0c99c
+6fe0c9ab
+1fe37e00
+67e0c9ab
+6fe0c9ac
+1fe0fe01
+67e0c9ac
+1fe67c07
+202143cf
+1a20a201
+1a40a401
+6fe0c99d
+1fe0fe01
+67e0c99d
+1fe67c13
+202143c6
+20600000
+6fe4494e
+243a41c9
+6fe44956
+243a41c9
+6fe2495e
+243a41c9
+6fe0ca9f
+247a0000
+6fe0ca9c
+c1030000
+704a9c00
+20600000
+44a7c009
+7049a800
+7049a600
+da20494e
+df200014
+7049a500
+efe08011
+203a4429
+6848c9a5
+18408401
+6048c9a5
+1fe20400
+1fe0ffff
+98417e00
+2422c405
+6fe0c9a5
+6848c9a6
+98408400
+6048c9a6
+1fe67c01
+20214429
+18467c02
+20214429
+70499d00
+7049a700
+e8408011
+da40494e
+6fe0c99d
+1fe0fe01
+67e0c99d
+1fe67c13
+24214429
+efe08012
+98417c00
+2022c42c
+6fe0c9a7
+1fe0fe01
+67e0c9a7
+1fe67c01
+2021442c
+6fe4488e
+c3908000
+7049a801
+20600000
+1a20a201
+c2004402
+20600000
+1a40a401
+20204418
+6fe0c9aa
+c07341e2
+c073c1d0
+6fe0caa1
+c1000000
+c1008000
+20600000
+6fe0c9ab
+2feffe00
+2040c4f0
+6fe0ca7a
+245a445b
+6fe0c74f
+c17f8000
+6fe4488e
+c31a4440
+6fe0ca93
+20204441
+6fe0ca84
+6848ca7a
+9842fe00
+20628000
+44a8400a
+6fe0c9aa
+c014c451
+c0264459
+1fe67c45
+24610000
+d840003a
+98467e00
+24610000
+d8c04a86
+98c08c00
+efe08006
+202044aa
+6fe4488e
+c31a4457
+6fe0ca85
+6848ca94
+98467c00
+20628000
+6fe0ca85
+202044aa
+6fe0ca92
+202044aa
+44a8c00a
+20404468
+6fe0c9aa
+c029448d
+c028c491
+c0284495
+c027c499
+c070449d
+c01644a7
+c00a44ac
+c00d44bc
+c00444c3
+20600000
+6fe4488e
+c41a0000
+6fe0c9aa
+6848ca94
+98467c00
+24628000
+204044ca
+6fe0c9ab
+c4000000
+6fe0ca93
+1fe0fe01
+1fe17e01
+67e0ca93
+6fe0caa2
+79207e03
+67e0caa2
+6fe0c678
+c000447e
+c000c481
+c0014484
+c001c487
+c002448a
+6fe0ca93
+67e0c6a9
+202044b7
+6fe0ca93
+67e0c6aa
+202044b7
+6fe0ca93
+67e0c6ab
+202044b7
+6fe0ca93
+67e0c6ac
+202044b7
+6fe0ca93
+67e0c6ad
+202044b7
+6fe4488e
+c4180000
+5800004b
+202044aa
+6fe4488e
+c4180000
+5800004e
+202044aa
+6fe4488e
+c4180000
+5800004a
+202044aa
+6fe4488e
+c4180000
+5800004d
+202044aa
+6fe4488e
+c4188000
+6fe0c74f
+c17f8000
+6fe0caa1
+c00044a5
+580000f7
+202044aa
+580000aa
+202044aa
+6fe4488e
+c4190000
+580000ab
+67e0c9aa
+20600000
+6fe4488e
+c4198000
+204044ca
+6fe0c9ab
+c4000000
+704aa101
+704ac506
+204044cc
+6fe0caa2
+79207e04
+67e0caa2
+6fe4488e
+c3878000
+6fe0c706
+67e0c705
+20600000
+6fe4488e
+c4198000
+204044ca
+6fe0c9ab
+c4000000
+704aa100
+202044b2
+6fe4488e
+c4198000
+204044ca
+6fe0c9ab
+c4000000
+704aa102
+202044b2
+58000000
+202044aa
+44a9400a
+6fe0c678
+c1000000
+c1020000
+c000c4d3
+c00144d6
+c001c4d9
+6848caa1
+6048c6ae
+20600000
+6848caa1
+6048c6af
+20600000
+6848caa1
+6048c6b0
+20600000
+6fe0c9aa
+c02344f2
+c025c4f8
+c02744fe
+c0254500
+c026c502
+c052c504
+c053450b
+c053c50d
+c054450f
+c054c511
+c055451c
+c056c523
+c055c52a
+c0564535
+20600000
+6fe0c9ab
+c4000000
+704a9f0a
+20600000
+704a9f00
+20600000
+6fe0caa1
+c1000000
+c1008000
+704a9d0a
+704a9e20
+2020453e
+704a9e52
+6fe0caa1
+c1000000
+c1008000
+704a9d08
+2020453e
+704a9e51
+202044f9
+704a9e50
+202044f9
+704a9e4f
+202044f9
+704a9e04
+704a9d01
+6fe0caa1
+c000453e
+c000c53e
+704a9d08
+2020453e
+704a9e06
+20204505
+704a9e19
+20204505
+704a9e1b
+20204505
+6fe0caa1
+c0004516
+c001c519
+580000fa
+202044aa
+704a9d08
+704a9e0f
+2020453e
+704a9d09
+704a9e14
+2020453e
+6fe0caa1
+c0004520
+580000f7
+202044aa
+704a9d09
+704a9e12
+2020453e
+6fe0caa1
+c001c527
+580000f5
+202044aa
+704a9d08
+704a9e2c
+2020453e
+6fe0caa1
+c0004531
+c000c533
+704a9d01
+704a9e2c
+204044ec
+2020453e
+704a9d08
+2020452e
+704a9d02
+2020452e
+6fe0caa1
+c000453b
+c000c53b
+704a9d01
+704a9e52
+2020453e
+704a9d08
+704a9e2b
+2020453e
+7049aa00
+6fe0c9ab
+c3004545
+6fe0ca9c
+c001c551
+704a9c01
+20600000
+704a9c04
+20600000
+704a9c06
+20600000
+67e0ca70
+6048ca72
+20407dbc
+704a6f00
+202046e6
+6fe0ca9d
+d8400000
+20404549
+704a9c02
+20600000
+704a9c03
+6fe0ca9d
+6848ca9e
+20204549
+704a6f00
+6fe0ca9d
+d8400000
+20404549
+6fe0ca9f
+203a4547
+704a9c05
+20600000
+2020454b
+704a9c00
+dfe00000
+d8400000
+20204549
+6fe0c9aa
+d84000e0
+98467c00
+24214576
+1fe67ce7
+242145ad
+1fe17e07
+1fe20e00
+6fe0c9ab
+c2804572
+6fe0c9ad
+f93ffe00
+67e0c9ad
+20600000
+6fe0c9ad
+f9207e00
+67e0c9ad
+20600000
+7049b500
+6fe0c9ab
+c280458d
+6848c9aa
+df200006
+d8c049af
+efe08006
+98467c00
+2422c585
+efe08006
+18c08dfe
+e7e08006
+207a0000
+18c08c01
+e0408006
+c200457c
+6fe4488e
+c290c58a
+6fe4488e
+c4100000
+2040459f
+f93ffe00
+20207dce
+6848c9aa
+df200006
+d8c049af
+efe08006
+203a459c
+98467c00
+20628000
+c2004590
+6fe4488e
+c290c599
+6fe4488e
+c4100000
+2040459f
+f9207e00
+20207dce
+18c08dff
+e0408006
+20600000
+44a9c00a
+6fe0c9aa
+1fe67c70
+24610000
+7049b701
+7049a901
+1fe6fc08
+20407d64
+1807fe00
+18070e00
+d8a049b9
+98a08a00
+58000000
+20600000
+704aa001
+6fe0c9ab
+2fec0000
+2040c5b2
+20204576
+704aa002
+20600000
+20404660
+204045f2
+704a7a00
+704a7b00
+704a7c00
+704a7d00
+704a7e00
+6fe0c9ad
+245a468f
+d8c049af
+df200006
+efe08006
+1fe67c7f
+2042c699
+1fe67cae
+2042c69b
+c20045bf
+204045c9
+6fe0ca7f
+203a4670
+20600000
+44aa400a
+704a9b00
+6fe0c678
+c08045d7
+6fe4488e
+c4098000
+6fe149af
+68494a97
+98467c00
+2022c5e8
+18508400
+98467c00
+2022c5e8
+202054e6
+6fe149af
+68494a99
+98467c00
+2022c5ec
+18508400
+98467c00
+2022c5ec
+6fe4488e
+c30dd4e6
+6fe149af
+68494a95
+98467c00
+2022c5ea
+18508400
+98467c00
+2022c5ea
+202054e6
+704a9b01
+202045ee
+704a9b02
+202045ee
+704a9b03
+202045ee
+6fe0c735
+c1008000
+70473501
+20600000
+20407dbe
+20404600
+20404616
+20404627
+20404638
+2040464e
+203445fe
+6fe0c8a6
+793ffe00
+793ffe01
+67e0c8a6
+20600000
+7049a900
+20600000
+6fe4488e
+c4080000
+6fe0c897
+207a0000
+6fe149af
+68494898
+98467c00
+2022c60c
+18508400
+98467c00
+2022c60c
+20600000
+20407dbc
+6fe0c8a6
+79207e00
+793ffe01
+67e0c8a6
+6fe0c678
+c1000000
+70467800
+7048a701
+20600000
+6fe0c89a
+207a0000
+6fe149af
+6849489b
+98467c00
+2022c620
+18508400
+98467c00
+2022c620
+20600000
+20407dbc
+20404649
+6fe0c678
+c1008000
+70467801
+7048a801
+20600000
+6fe0c89d
+207a0000
+6fe149af
+6849489e
+98467c00
+2022c631
+18508400
+98467c00
+2022c631
+20600000
+20407dbc
+20404649
+6fe0c678
+c1010000
+70467802
+7048a801
+20600000
+6fe0c8a0
+207a0000
+6fe149af
+684948a1
+98467c00
+2022c642
+18508400
+98467c00
+2022c642
+20600000
+20407dbc
+20404649
+6fe0c678
+c1018000
+70467803
+7048a801
+20600000
+6fe0c8a6
+793ffe00
+79207e01
+67e0c8a6
+20600000
+6fe4488e
+c4120000
+6fe0c8a3
+207a0000
+6fe149af
+684948a4
+98467c00
+2022c65a
+18508400
+98467c00
+2022c65a
+20600000
+20407dbc
+6fe0c678
+c1020000
+70467804
+20404045
+20206c99
+6fe0ca7f
+247a0000
+6848c90f
+18467cff
+20628000
+20406ee0
+2420c66c
+df200008
+d8a049ad
+20407ca3
+7049afae
+20600000
+6fe0c9af
+c1d70000
+7049af00
+20600000
+44aac00a
+6fe0ca7e
+207a0000
+6fe0c678
+c0004680
+44ab400a
+20403f2c
+7049a900
+6fe0c678
+c1000000
+6fe4488e
+c3820000
+d8e00004
+20404a25
+20403745
+202048c0
+44abc00a
+20404161
+20403f2c
+7049a900
+6fe145ef
+247a0000
+58000000
+67e14741
+67e145f5
+67e0c5f9
+d8e00000
+20404a25
+204048e9
+7045a002
+2020326f
+67e0ca7b
+1fe17e44
+245a4697
+6fe0ca7b
+1fe17e22
+207a0000
+704a7d01
+20600000
+704a7c01
+20600000
+704a7a01
+20600000
+704a7e01
+20600000
+44ac400b
+78547c00
+70472b00
+70472c00
+70472d00
+6fe0ca9c
+c000c54e
+c0014553
+c001c553
+c0024557
+c0034560
+6fe0c9a9
+203a46ba
+1fe0ffff
+67e0c9a9
+204046b7
+704a820a
+20405535
+6fe0ca9c
+c002c55f
+d8a04a6f
+df20000a
+20407ca3
+204046ca
+704a7900
+20600000
+7040c003
+70473e0a
+20600000
+6fe0c678
+c1800000
+6fe0ca81
+207a0000
+6fe0ca80
+247a0000
+6848ca83
+6fe0ca82
+98467c00
+67e0ca83
+20628000
+d8a04a6f
+df20000a
+20407ca3
+20407dbc
+202046e6
+44acc00b
+6fe0caa0
+c001474b
+6fe0c9b7
+243a46ec
+d8c049af
+df200006
+efe08006
+1fe67ce7
+242146f5
+c20046d1
+6fe0c9a6
+205a46ef
+704a6f00
+44ad400b
+da2049ad
+d8a04a70
+df200008
+e8408011
+6fe0c74f
+c07fc6e3
+18467c7f
+2422c6e3
+1a20a201
+e8408011
+e0408005
+1a20a201
+c20046dc
+44adc00b
+20404756
+6fe0ca79
+c000fdbc
+2040522c
+20207dbc
+7049b700
+704a6f08
+202046e6
+d8a049b8
+df20000f
+20407ca3
+d8a049ad
+df20000a
+20207ca3
+1fe20400
+44ae400b
+18427e00
+704a6f05
+6848c9a6
+18467c00
+2022c74b
+c0744715
+c074c718
+c075471a
+c075c71c
+c076471e
+c076c720
+c0774722
+c077c724
+c0784726
+c078c728
+c079472a
+c079c72c
+c07a472e
+c07ac730
+c07b4732
+c07bc737
+c07c473d
+c07cc73f
+c07d4741
+c07dc743
+c07e4745
+c07ec747
+c07f4749
+c07fc752
+202046e6
+58000001
+67e1ca70
+202046e6
+58000002
+20204716
+58000004
+20204716
+58000008
+20204716
+58000010
+20204716
+58000020
+20204716
+58000040
+20204716
+58000080
+20204716
+58000100
+20204716
+58000200
+20204716
+58000400
+20204716
+58000800
+20204716
+58001000
+20204716
+58002000
+20204716
+6fe0caa1
+c0014726
+c001c726
+58004000
+20204716
+6fe0caa1
+c000c73b
+58010000
+20204716
+58008000
+20204716
+58020000
+20204716
+58040000
+20204716
+58080000
+20204716
+58100000
+20204716
+58200000
+20204716
+58400000
+20204716
+58800000
+20204716
+7049a902
+6fe0c9a6
+205a46ef
+704aa000
+58000005
+67e1ca6f
+202046e6
+704a6f02
+58000002
+67e0ca70
+202046e6
+6fe0c678
+c080475d
+704a8000
+6fe14a6f
+245a47e4
+6fe34a72
+245a47e4
+2040684b
+704a7900
+44aec00b
+6fe0ca6f
+c000476d
+c000c768
+c001c780
+c002c785
+c0014787
+c004478c
+20600000
+704a7901
+d8c04a70
+d8a0465c
+df200007
+20207cdc
+6fe0c678
+c0804772
+204047d9
+6fe0ca81
+67e0ca71
+6fe4488e
+c2914778
+d8c04a6f
+d8a04721
+df200009
+20207cdc
+704a7800
+6fe0ca7a
+203a477c
+704a7801
+d8c04a6f
+d8a04721
+df20000a
+20207cdc
+58000003
+67e0c721
+6fe1ca70
+67e1c722
+20600000
+58000005
+20204781
+58000002
+67e0c721
+6fe0ca70
+67e0c722
+20600000
+58000008
+67e0c721
+20600000
+44af400b
+20407de6
+6848c90f
+20406eac
+6fe1494a
+1fe22400
+df200014
+e8408012
+284ffe07
+2440eef1
+1a40a401
+c2004796
+20403f1b
+70488c00
+6fe14948
+1fe22400
+df200008
+e8408012
+18467cff
+2442bf29
+1a40a401
+c20047a0
+20406f4b
+6848c666
+20404f0a
+20404f0e
+202040dd
+c6130000
+2020478f
+44afc00b
+20407388
+202047b3
+44b0400c
+20404161
+204047b3
+2020379c
+44b0c00c
+20407de6
+20404161
+20404203
+2020478f
+204047e1
+20405535
+d8e00000
+20404a29
+58000000
+67e145ef
+67e145f5
+67e0c613
+67e0c8fd
+67e0c5f9
+6fe245a6
+67e245ff
+67e246a3
+204047d3
+6fe0caa2
+79207e02
+67e0caa2
+202044b9
+204047e1
+6fe245a6
+67e245ff
+67e246a3
+20403530
+204047d3
+70461300
+7045f900
+20205535
+6fe245a6
+684a45fb
+98467c00
+2422d3c1
+70474fff
+20600000
+df200006
+d8c04a72
+efe08006
+c029c7e1
+c01cc7e1
+c023c7e1
+c20047db
+20600000
+704a8103
+7049a901
+20600000
+704a8001
+20600000
+6fe0c617
+243a47fb
+6fe0c5f9
+c00147f3
+c000c7f3
+c001c7ed
+202047ed
+20404804
+6fe0c73f
+243a5836
+6fe0c678
+c00047af
+20600000
+6fe4488e
+c288d952
+c3095988
+6fe246a3
+684a46f8
+98467c00
+2022c680
+20205988
+44b1400c
+70461700
+20403620
+5fffffff
+67e445c6
+58000000
+67e3c65c
+70473701
+20204821
+793f8026
+70461300
+d8e00000
+20204a29
+6fe145f7
+1fe17ee0
+203a480f
+6fe145f7
+1fe0fe01
+67e145f7
+20600000
+20403557
+2040362a
+242c355e
+2437b55e
+204068bc
+20203540
+204035fd
+2434481a
+20404828
+20404855
+2020485b
+6fe4494e
+243a485b
+6fe44956
+243a485b
+6fe2495e
+243a485b
+2040367c
+20404848
+24740000
+2040369e
+6fe0c737
+245a47b3
+6fe445c6
+202035fa
+44b1c00c
+70461800
+69610040
+34730200
+2040362a
+6fe0c596
+c000b61f
+242c4834
+2437c834
+204068bc
+70473700
+2020361f
+6fe0c619
+247a0000
+6fe14615
+1fe0fe01
+67e14615
+6fe0c615
+c07fb64f
+6fe0c618
+1fe0fe01
+67e0c618
+1fe17e03
+203a4841
+2020482a
+20404330
+6fe0c8a6
+243a6c99
+6fe0ca9b
+243a361f
+20403675
+2020482a
+78347c00
+204023f0
+6fe1c0bd
+203a7dbe
+6fe0ca7a
+243a7dbe
+6fe0ca7b
+243a7dbe
+6fe0ca9f
+243a7dbe
+6fe0c62f
+c000fdbe
+20203699
+6fe245a6
+684a45fb
+98467c00
+2422b6c9
+704141aa
+20600000
+6fe44622
+67e445c6
+6fe14634
+67e14636
+44b2400c
+20404848
+202035f0
+c6930000
+2040469d
+24740000
+6fe0c72b
+243a4868
+202059c7
+7045a002
+6fe0c721
+c004486d
+da20000a
+20206852
+67e0c9b8
+da20000f
+da4049b8
+20600000
+44b2c00c
+6fe4488e
+c40a8000
+20206888
+44b3400c
+20402a06
+247a0000
+6fe0c74f
+c07fc87d
+6fe0c882
+1fe17e03
+c1818000
+6fe4488e
+c2806824
+c281e824
+c2826824
+2040469d
+24740000
+20404fd1
+2020683c
+7047730e
+6849439f
+6fe0c773
+1fe22200
+20402dcc
+6848c773
+18427200
+d8c049b9
+20207cdc
+70477309
+6fe4488e
+c2916831
+70477308
+20206831
+204041c9
+70473d00
+70475301
+20405960
+6fe0c754
+243a489a
+70475514
+6fe143fa
+793ffe00
+67e143fa
+70472000
+6fe1477d
+67e1477f
+20405535
+202048e9
+58000000
+67e1477f
+67e0c90c
+67e0c90d
+67e0c753
+70478100
+204029aa
+70429c00
+202048ab
+6fe143f8
+c283c8af
+c2803771
+202048c5
+70488200
+6fe143f8
+c2803771
+202047af
+6fe0c754
+c000c8b8
+70488314
+70490e05
+2020540f
+20405408
+70488305
+2020540f
+6fe0c90c
+247a0000
+70490c01
+70490d1e
+20600000
+280ffe26
+2040c804
+204053c6
+70488200
+202048c5
+44b3c00c
+20404163
+58000000
+67e1477f
+67e14aa3
+704aa1ff
+6fe14500
+2feffe0b
+2040d565
+204053c1
+6fe14500
+c285c8d9
+6fe4488e
+c30c48d9
+684946a7
+18408401
+604946a7
+604942de
+180a7e00
+67e0c2dd
+6fe1c756
+67e1c2e0
+204037a2
+6fe1464f
+67e14750
+58000000
+67e14741
+67e1477f
+67e0c720
+d8e00001
+20404a25
+20404a2f
+20205455
+6fe14500
+c284b794
+202048e9
+44b4400d
+58000000
+67e14750
+d8e00004
+20404a29
+20405565
+6fe0cac2
+203a4163
+20600000
+44b4c00d
+6fe4488e
+c4008000
+d8e00001
+20404a29
+204067e4
+204067c1
+6fe0caa2
+79207e01
+67e0caa2
+202044b9
+7048fe01
+da200017
+da400004
+204029d9
+58000006
+e7e08005
+58000001
+e7e10005
+5800ffff
+e7e10005
+58002800
+e7e10005
+d8c048ee
+20207c91
+44b5400d
+1a220c00
+efe18006
+67e1c39b
+c000c919
+c003c95c
+c004c938
+c005c952
+c0044971
+c0064986
+c005499f
+c00949c5
+c02949cb
+20202b76
+6fe0c8fe
+207a0000
+6fe0c8fe
+c0014962
+7048fe02
+da200009
+da400004
+204029d9
+58000006
+e7e08005
+58000001
+e7e10005
+5800ffff
+e7e10005
+58002800
+e7e10005
+df200002
+d8c048ff
+20207cdc
+da200007
+da400004
+204029d9
+58000008
+e7e08005
+6849433b
+18408405
+efe20002
+e7e20005
+58002803
+e7e10005
+20600000
+6fe0c8fe
+207a0000
+6fe14337
+1fe0fffe
+1fe6fc07
+20407d64
+1807f200
+6fe1433b
+1fe08c06
+18c08c03
+efe10006
+1fe22600
+efe10006
+d8402a29
+98467c00
+2022c94a
+c2004941
+20204962
+da200003
+da400004
+204029d9
+5800000a
+e7e08005
+1a627e00
+e7e10005
+20600000
+6fe0c8fe
+207a0000
+6fe14337
+df200009
+6fe1433b
+1fe0a205
+da404901
+20407d66
+2022c965
+20204962
+6fe0c8fe
+207a0000
+6fe0c8fe
+c001492c
+704aa102
+20204966
+6fe0c2cd
+67e0caa1
+20204966
+704aa103
+7048fe00
+6fe4488e
+c307c96d
+704aa401
+6fe0caa3
+207a0000
+20203fee
+6fe0caa2
+79207e04
+67e0caa2
+202044b9
+20402e1f
+20402e28
+6849068f
+60490656
+20402ca5
+20402cb0
+18c08dfe
+18c27e00
+67e106a5
+68490694
+58002a50
+98467c00
+2022c97f
+20202c2d
+6fe0c8ce
+203a2c2d
+20402cbe
+203a2de1
+d8c048cf
+18007e0b
+20202c83
+efe10006
+67e10693
+98002200
+6849439c
+6fe14334
+98467c00
+2422ad2e
+6fe10693
+1fe67c42
+2422c999
+58000017
+1fe22200
+1fe22600
+20402dee
+5800000d
+e7e08005
+d8c048d8
+1a60f3ff
+20207cce
+6fe4488e
+c291ad2e
+6fe148d6
+1fe20c00
+efe10006
+20202d31
+6849439c
+6fe0c323
+c281c9bf
+6fe4488e
+c305c9a5
+c30cc9a7
+6fe1439c
+c0182de1
+6fe1439c
+c002c9b7
+c00849ba
+6849439c
+6fe4488e
+c291acfb
+6fe14334
+98467c00
+2422acfb
+20402e24
+684948d6
+18420c00
+e8410006
+18408401
+20407db2
+20202d0b
+d8c0490a
+18007e03
+20202d0b
+6fe0c8ce
+203a49aa
+d8c048cf
+18007e08
+20202d0b
+6fe14334
+98467c00
+2422c9a2
+20402da5
+243449a7
+20202d24
+18c22200
+6fe14337
+1fe0a5fd
+20402908
+204049cc
+20206878
+20402dc8
+6fe0c74f
+c07fc9d1
+6fe1439c
+c012c9d4
+20600000
+6fe1439c
+c010c9d4
+20600000
+6fe08055
+67e0c70d
+20600000
+6fe4488e
+c4060000
+204049db
+202049ec
+6fe4cad1
+67e4883a
+580049e1
+67e10837
+704ace5a
+20600000
+7046775a
+70083901
+20407956
+204049e7
+6fe0c677
+20203d2a
+6fe0883a
+207a0000
+6fe0c677
+c02d3d27
+20203d24
+6fe0cace
+c02d49f1
+6fe0cace
+67e0cacf
+20600000
+204049ee
+58000000
+67e145ef
+67e145f5
+70409400
+6fe0cad0
+205a7902
+704ad032
+20600000
+6fe4488e
+c4120000
+6fe0c678
+c1820000
+202078f6
+6fe4488e
+c4120000
+6fe0c678
+c1820000
+6ff08c01
+67e0c675
+c4038000
+704ad000
+58000000
+67e14741
+20404804
+204048e6
+2040469d
+24740000
+6fe0c72b
+c000e85b
+20206856
+7008e900
+df200009
+6fe4488e
+c2917c24
+20207c22
+20403d53
+7008ea24
+58000008
+67e08911
+d8c049b9
+d8a00912
+df20000e
+20207cdc
+6fe0864d
+df200008
+d8c044ea
+e8408006
+98467c00
+20628000
+c2004a20
+2020781c
+6fe4488e
+f9207e00
+67e4488e
+20600000
+6fe4488e
+f93ffe00
+67e4488e
+20600000
+d8e00003
+20204a25
+d8e00003
+20204a29
+2035ca43
+20402931
+58004a5e
+67e143e4
+58004a61
+67e143e6
+58004a5a
+67e143dc
+58004b0a
+67e143ea
+58004ce1
+67e143e8
+58004cf2
+67e143ec
+44b6400d
+20404a43
+20404a55
+20204c6c
+6ff08060
+793ffe00
+67f08060
+6fe44517
+20406d5b
+6fe1451f
+20406d66
+20406d75
+70807708
+70807649
+7080790a
+70807a0b
+d8400081
+6fe14526
+2feffe00
+79208404
+60588060
+20600000
+6848c50c
+20406ef1
+20404a84
+6848c50a
+20206ed7
+6848c50a
+20406ee0
+2420b77f
+2020377d
+20406935
+247a0000
+20204a86
+1a627e00
+c00a4a73
+c00aca6f
+c0184ca6
+c018cca8
+c0194cb2
+c019ccb0
+c01a4ca0
+c01ecc80
+c020ca79
+c0214a7b
+c021cc9e
+c01dcc89
+20600000
+204029aa
+70452800
+20404a77
+20204c52
+20404a7e
+6fe0c515
+67e0c0c0
+20204c50
+20404ad3
+20204a7c
+204030d1
+20202eb3
+20204cc2
+6848c50c
+20206ef1
+20404a80
+20204a84
+6fe0c50f
+2feffe01
+2040b78a
+20600000
+6848c50c
+20206eed
+6ff0810b
+c3810000
+20406d89
+efe08003
+c080ca9c
+6ff10112
+1fe67c02
+20610000
+efe08003
+67e086c0
+e8408003
+18622200
+604886c1
+18408403
+6ff10112
+98460400
+24610000
+7006c201
+20404aaa
+6fe086c2
+c1000000
+20204aa5
+20407c97
+20404c8f
+20204a9f
+44b6c00d
+20406d89
+6ff10112
+207a0000
+98608600
+20204aa9
+20406d89
+18608602
+efe08003
+98608600
+20206d8f
+44b7400d
+6fe086c0
+c000cac7
+c0014acc
+c0024ada
+c004cade
+c005cb35
+c007cb36
+c0084b3e
+c0094b42
+c0134b46
+c0154b4b
+c015cb7e
+c0164b84
+c0184b8b
+c019cb90
+c01acbbd
+c01b4bc6
+c01bcbcf
+c01c4bd5
+c0204bdd
+c0214be7
+c0244bec
+c028cbf7
+c03b4bfb
+c03bcc01
+c03c4c06
+c03d4c3c
+20204c4a
+6fe086c1
+c0834c4a
+efe30003
+67e342dd
+20204c4d
+6fe086c1
+c080cc4a
+e8408003
+6048c516
+20404c4d
+6fe14500
+c3848000
+6fe0c50f
+2feffe01
+24608000
+6848c516
+284ffe02
+2020b78c
+2020378a
+dfe0001d
+d8a0426d
+20404bc0
+20202931
+6fe14500
+c304cc4a
+20404b32
+20344c4a
+7006c200
+6fe14526
+c2844b03
+6fe0c528
+247a0000
+7006c201
+efe10003
+67e14529
+6061452b
+6fe086c1
+1fe0fffe
+24214c4a
+2022cc4a
+67e0c528
+68494529
+184085ff
+20402cb0
+203a4b06
+e8420006
+59280302
+98467c00
+2422cb06
+efe08006
+67e0c52d
+1fe17e30
+203a4b06
+7006c200
+204029a8
+20404b0a
+20404b0a
+20404b0a
+6fe14526
+c4040000
+7006c201
+20404d07
+20204c4d
+70452800
+7006c201
+20404d07
+20204c4a
+6fe0c528
+207a0000
+20402a06
+247a0000
+20404b2d
+44b7c00d
+6fe142e3
+20407db2
+1fe20400
+6fe0c39a
+c3800000
+1840fffd
+d84000fb
+20407db2
+6848c528
+20407db2
+1fe22200
+18427e00
+9a267e00
+67e0c528
+20404b28
+6fe1452b
+1fe20600
+1a227200
+20406dbd
+18627e00
+67e1452b
+6fe0c528
+247a0000
+20204d05
+68494529
+6fe0c52d
+c282add5
+c2822dcc
+20600000
+d8400017
+6fe14526
+c3808000
+684942e5
+20600000
+6fe14526
+c2812da5
+20207dbe
+20204c70
+6f2086c1
+20407d35
+20406d6a
+67e1451f
+20404c4d
+20406da1
+6fe1451f
+20206d66
+da200002
+da404508
+d8400000
+20204c54
+6fe14500
+c304cc4a
+20404c4d
+20203794
+6f2086c1
+6fe14401
+1fe20a00
+20406dbd
+20204c4d
+df200040
+d8a0434c
+20407ca3
+58000000
+67e08666
+1a220600
+18627e00
+67e1066a
+20404b79
+6fe08666
+68488656
+18408401
+9840fe00
+67e08666
+1fe67c1f
+24214b65
+6848c34c
+5800434d
+9840fe00
+67e1066f
+68488656
+18408401
+6fe0c34c
+9840fe00
+67e0c34c
+20204b6e
+6848c36c
+5800436d
+9840fe00
+67e1066f
+68488656
+18408401
+6fe0c36c
+9840fe00
+67e0c36c
+6fe1066f
+1fe20a00
+6fe1066a
+1fe20600
+18427200
+20406dbd
+6fe086c1
+68488666
+98467c00
+2422cb51
+20204c4d
+efe08003
+67e08656
+efe08003
+67e08662
+20600000
+d8400000
+da200002
+6fe14523
+67e1067f
+da40067f
+20204c54
+6fe086c1
+c080cc4a
+efe08003
+67e0c521
+58000000
+67e14523
+20204c4d
+6fe086c1
+c0824c4a
+6fe14500
+c284cc3c
+20204c4a
+efe08003
+1fe20400
+c040cb9f
+c0414ba3
+c041cba8
+c0424bac
+67e0c300
+204074ed
+20402ea2
+6fe0c300
+c0004bb0
+c000cbb3
+c0014bb5
+c0024bb7
+20204c4a
+6048c300
+20402e9e
+7042c90d
+20204bb1
+6048c300
+20402e9e
+7042c90d
+7042c701
+20204c4d
+6048c300
+20402e9e
+7042c90d
+20204bbb
+6048c300
+20402e9e
+7042c90d
+20204bb9
+7042c900
+7042c703
+20204c4d
+7042c901
+20204bb1
+7042c905
+20204bbb
+7042c905
+20204bb9
+7042c702
+20204c4d
+7042c700
+20204c4d
+dfe0001f
+d8a0436c
+20204bc0
+6f2086c1
+9f267c00
+24214c4a
+e7208005
+20406dbd
+20204c4d
+6fe14500
+c304cc4a
+6fe086c1
+c0844c4a
+efe40003
+67e442d5
+70064d12
+20407824
+20204c4d
+efe10003
+67e1438d
+6048c0a6
+9840fe00
+67e140a4
+20204c4d
+6fe0c300
+203a4c4a
+6fe0c2fe
+c0804c4a
+6fe0c2ff
+c0804c4a
+20407899
+20204c4d
+6fe086c1
+c082cc4a
+efe08003
+67e0c510
+efe20003
+67e24511
+6848c510
+20406ef1
+20404cdf
+20204c4d
+6fe086c1
+c080cc4a
+efe08003
+67e0c141
+20204c4d
+efe08003
+c000cbf5
+6fe0c2fc
+c001cbf3
+c0034bf3
+c003cbf3
+20204c4a
+7042fd01
+20204c4d
+20402f08
+20204c4d
+20404c4d
+20406da1
+70801001
+2020233e
+d8400001
+20402cb0
+18c08bfe
+58000000
+e7e10005
+20204c4d
+20404c0a
+20404c38
+58000000
+e7e10005
+20204cb9
+efe08003
+20404c0e
+20404c15
+20204cb9
+20404c35
+58280002
+e7e18005
+20600000
+67e0864e
+20404c35
+59280302
+e7e20005
+6fe0864e
+e7e18005
+20600000
+20402cd4
+efe08003
+1fe1721f
+1fe22200
+2a2ffe07
+7920840f
+2a2ffe06
+7920840e
+e0410005
+1f227e00
+e7e08005
+20406dd0
+20404c38
+58000000
+e7e10005
+184104ff
+184085ff
+20402cb0
+18c08c04
+efe08006
+c2824c2d
+c282cc2d
+18408401
+20600000
+20402cd4
+2a2ffe05
+7920840f
+e0410005
+5a290202
+e7e40005
+184085ff
+20600000
+20402cd4
+e0410005
+20600000
+efe08003
+1fe27200
+e7e08005
+20206dd0
+6fe0c2fe
+c082cc4a
+6fe0c300
+c0024c48
+c0424c42
+20204c4a
+7042fb02
+7042fc08
+20204c45
+efe20003
+67e24301
+20204c4d
+20404c45
+20202ef1
+d8400001
+da200000
+20204c54
+d8400000
+da200000
+20204c54
+7006c002
+20204c6d
+7006c005
+20204c6d
+6fe086c0
+1fe22600
+7006c006
+58000002
+9a20fe00
+20404cc8
+1a627e00
+e7e08003
+e0408003
+1a227200
+1a420c00
+20406db7
+20204cd2
+7006c008
+1f20fe02
+20404cc8
+6fe106eb
+e7e10003
+6fe106e9
+1fe20c00
+20406da4
+18c27e00
+67e106e9
+20204cd2
+7006c009
+58000000
+20404cc8
+20204cd2
+7006c00a
+58000001
+20404cc8
+20404c7a
+6fe14500
+d8e00009
+afefffff
+79208405
+e0408003
+20204cd2
+d8400000
+6fe0c38c
+d8e00000
+afefffff
+79208402
+20600000
+7006c00d
+6fe0c403
+1feffe22
+1fe27200
+20404cc8
+6fe14401
+1fe20c00
+20406da4
+20204cd2
+7006c00e
+58000004
+20404cc8
+6fe205d8
+e7e20003
+20204cd2
+7006c00f
+6ff10112
+d8400040
+20407db2
+1fe22200
+1fe27200
+20406d89
+d8a0067f
+20406dbd
+1a227e00
+1a227200
+20404cc8
+d8c0067f
+20406da4
+20204cd2
+7006c010
+20204c6d
+7006c011
+58000004
+20404cc8
+6fe24301
+e7e20003
+20204cd2
+da200180
+20204caa
+da200080
+20204caa
+7006c014
+58000002
+20404cc8
+1a227e00
+e7e10003
+20204cd2
+da600000
+20204cb3
+da600001
+7006c015
+58000001
+20404cc8
+1a627e00
+e7e08003
+20204cd2
+60490656
+7006c029
+58000002
+20404cc8
+68490656
+e0410003
+20204cd2
+7006c02b
+20204c6d
+7006c040
+58000002
+20404cc8
+6fe14075
+e7e10003
+20204cd2
+7006bf02
+67e086c1
+604c0656
+44b8400e
+20404cd4
+684c0656
+20406d95
+6fe186bf
+e7e18003
+20600000
+44b8c00e
+20206d97
+20404cdd
+20608000
+20404cdb
+6fe24511
+1feb7e00
+207a0000
+20207c93
+6848c510
+20206ef1
+6848c510
+20206efc
+6848c510
+20206eed
+622106e9
+624106e7
+6fe1439c
+67e106eb
+20404b32
+20740000
+684906e7
+6fe0c525
+20407db2
+1fe27200
+18427e00
+9f267e00
+67e106e7
+20404c61
+6fe106e7
+207a0000
+20204ce7
+20600000
+6fe0c521
+207a0000
+6fe0c522
+207a0000
+1fe0ffff
+67e0c522
+247a0000
+70452205
+20406fb2
+20406f8e
+1fe6fc0a
+20407d61
+1fe6fc64
+20407d61
+18070400
+67e0c523
+6048c524
+20600000
+d8e00008
+20204d0d
+d8e00008
+20204d09
+6fe14526
+f93ffe00
+67e14526
+20600000
+6fe14526
+f9207e00
+67e14526
+20600000
+20407384
+2055cd20
+20404d40
+20404dec
+20405260
+20758000
+20405b83
+2040506b
+20405853
+20404d22
+20405303
+6fe14500
+c2865544
+204057d7
+20204df5
+20405203
+20206f4e
+44b9400e
+58005b02
+67e1460f
+58005af7
+67e14611
+580059f0
+67e143f2
+580059bc
+67e14609
+58006886
+67e1460b
+58004e75
+67e1460d
+58005438
+67e143e2
+58004e70
+67e143e0
+580053da
+67e143e6
+58005759
+67e143e4
+58004e3d
+67e143de
+58005420
+67e143e8
+58005494
+67e143ec
+58004e2d
+67e143dc
+202068cb
+20758000
+204035c8
+2040323a
+20405b7f
+20404ee5
+20404d88
+20405a4b
+20402a1f
+44b9c00e
+6fe4470e
+c288d640
+c2885650
+c2895685
+20600000
+70409910
+6fe4470e
+c3858000
+70409918
+20600000
+20403260
+7048fa00
+7045e100
+70444e00
+6fe4470e
+c41e8000
+7048fa01
+7045e101
+70444e01
+20203263
+4778403e
+6fe0c594
+203a4d65
+6fe245e3
+684a45a6
+98467c00
+2022cd6c
+20203546
+6fe245fb
+684a45a6
+98467c00
+2022cd60
+6fe24576
+207a0000
+20204d60
+6fe4470e
+c298596c
+c29f596c
+2020351f
+6fe4470e
+c31eb658
+6848c618
+6fe0c638
+98467c00
+24213675
+18408401
+6048c618
+6fe0c638
+c007cd7e
+6fe0c618
+c00a366f
+c00f366f
+20600000
+6fe0c618
+c005366f
+c007b66f
+20600000
+44ba400e
+204067ff
+20404d4e
+20404d53
+204058fc
+20203266
+44bac00e
+20404d93
+20404da5
+20404dd3
+58000a77
+67e143fe
+38001224
+38044000
+38080000
+e7e28005
+20600000
+58009000
+67e142f9
+70491700
+58000000
+67e3c65c
+6fe0c502
+67e0c731
+67e0c732
+7045a001
+7045fa01
+704ac400
+20404da0
+2020680c
+d8400000
+6fe4470e
+c289681d
+d85fffff
+2020681d
+20404dae
+6fe1c61f
+67e1c8dc
+6fe4470e
+c40d8000
+58000006
+67e142d5
+67e142d7
+20600000
+6fe4470e
+c28ccdb2
+c28c4db9
+20204dc6
+6fe0c8bf
+67e0c638
+6fe248d0
+67e248cc
+58080606
+67e1c5be
+202036bb
+6fe1c8c0
+67e1c61f
+6fe1c8c3
+67e1c622
+6fe248d4
+67e248cc
+58100c0c
+67e1c5be
+70463805
+6fe4470e
+c41e8000
+7046380f
+20600000
+6fe1c8c6
+67e1c61f
+6fe1c8c9
+67e1c622
+6fe248d8
+67e248cc
+581c1919
+67e1c5be
+7046380b
+6fe4470e
+c41e8000
+7046381e
+20600000
+44bb400e
+20404de9
+6fe0c895
+c17f8000
+6fe0c895
+20405258
+6848c895
+20406ee0
+2020cde5
+6fe0c895
+2040525c
+6848c895
+20406ee0
+2020cde9
+6fe0c895
+20405258
+6fe0c898
+20204dea
+6fe0c895
+2040525c
+6fe0c897
+20204dea
+6fe0c896
+67e0c9fb
+20600000
+44bc400f
+20758000
+6fe0ca1e
+207a0000
+1fe0f201
+d8c04a1e
+d8a0426d
+20407cdc
+20202948
+44bcc00f
+6fe4470e
+c29f594b
+6fe0c678
+c000593a
+20405a70
+204053c1
+6fe0c678
+c000ce00
+c0014e05
+20600000
+6fe3467a
+684b46f8
+98467c00
+2022d3ad
+20204e09
+6fe34687
+684b46f8
+98467c00
+2022d3ad
+44bd400f
+da204679
+6fe0c678
+1fe0ffff
+1feffe0d
+9a20a200
+efe08011
+67e0c3fc
+6fe0c3fc
+c01a4e1e
+202053ad
+44bdc00f
+78547c00
+6fe4470e
+c3054e1b
+6ff08132
+c2824e1b
+78347c00
+6fe0c740
+67e0c73f
+20600000
+70475401
+6848c719
+6fe0c74f
+c07fce23
+6848c653
+6048c720
+204037a2
+6fe1c75c
+67e1c351
+2040545e
+58000004
+e7e08006
+d8c0436d
+20405465
+20207860
+c513377d
+6fe0c9f9
+203a377d
+6fe0c781
+c000b77d
+6fe0c672
+243a377d
+2020377f
+44be400f
+58000006
+20406971
+c281ce3b
+204052f0
+20405303
+20404e42
+2020379c
+44bec00f
+20407388
+2040567d
+6848c667
+20206ecd
+44bf400f
+204053ab
+20407de6
+20404fc9
+6fe0c894
+20405254
+6848c665
+20404f02
+20404e75
+6848c666
+20404f0a
+20404f0e
+204059fc
+20405ace
+20404e5c
+20204e52
+6fe4470e
+c41e0000
+6848c668
+20406ecd
+6848c669
+20406ecd
+6848c668
+20404f06
+6848c669
+20204f06
+6fe4470e
+c4098000
+6fe0c41d
+c1810000
+6848c64c
+20206f05
+d8c08070
+df200010
+efe08006
+243a4e69
+58000080
+18c08bff
+e7e08005
+c2004e64
+dfe080dc
+98c67c00
+20628000
+df200008
+d8c080d4
+20204e64
+c6130000
+20404e75
+6fe08015
+247a0000
+20206ecd
+44bfc00f
+70488c00
+20407de6
+6848c89c
+20406ef1
+6848c89c
+20406ecd
+20404f42
+6fe0c893
+20405254
+20406968
+6848c88d
+20406eac
+6848c88f
+20406eac
+6848c88e
+20406eac
+6848c890
+20406eac
+6848c891
+20406eac
+6848c892
+20406eac
+6848c89d
+20406eac
+6848c89e
+20406eac
+20404e62
+6848c668
+20406ea5
+6848c669
+20406ea5
+6848c89a
+20406ea5
+6848c89b
+20406ea5
+6848c667
+20206eac
+6fe14500
+c4048000
+1a227e00
+243a29b4
+202029b9
+44c04010
+6fe0c41d
+c1810000
+6848c64c
+20206f0b
+44c0c010
+6fe4470e
+c4098000
+20404ea0
+20406fb2
+20406f8e
+67e1464a
+6fe0c41d
+c0814eb4
+6849464a
+184ffe08
+1fe6fc0a
+20407d61
+9840fe00
+67e1464a
+da204644
+20404ec4
+6fe0c422
+c280ce35
+c3004ebd
+70464e01
+20204ebb
+d8e00004
+2020582e
+d8e00004
+20405832
+70464d01
+6fe0c64e
+207a0000
+70464e00
+20205a43
+44c14010
+efe40011
+67e4064e
+20407057
+20407051
+6fe10654
+68490650
+98467c00
+24417054
+68490652
+98467c00
+2441704e
+6fe10654
+6849064e
+98467c00
+20214ee1
+68490650
+98467e00
+24214ee3
+203a4ee3
+1fefa264
+6fe1064e
+68490650
+98460400
+1a227e00
+9846fc00
+20407d61
+67e0c77c
+20600000
+70477c64
+20600000
+70477c00
+20600000
+6848c43e
+20406ef1
+6848c88d
+20404f0a
+6848c88f
+20404f0a
+6848c88e
+20404f0a
+6848c890
+20404f0a
+6848c891
+20404f0a
+6848c892
+20404f0a
+6848c89c
+20404f0a
+6848c89d
+20404f0a
+6848c89e
+20404f0a
+2040591f
+6848c89a
+20404f0a
+6848c89b
+20404f0a
+6848c667
+20404f0a
+6848c665
+20204f0a
+18410e7f
+6ff2011c
+afefffff
+2020cf0a
+18467cff
+20628000
+79200407
+20206ed7
+18467cff
+20628000
+793f8407
+20206ed7
+6fe1c72e
+67e1864e
+df200018
+d8400000
+6fe1864e
+2feffe00
+2040ef05
+6fe1864e
+1fe3fe00
+67e1864e
+18408401
+c2004f12
+20600000
+20404f20
+7043fe73
+20404f1f
+2020696c
+20206bbc
+6fe0c893
+d8400021
+20406f1d
+6fe0c894
+d8400023
+20206f1d
+44c1c010
+2040684e
+78547c00
+58000000
+67e3465d
+2040530c
+58000089
+20406970
+2040506b
+20404f38
+20404f3d
+204050ca
+6fe0c65c
+1fe17e1f
+67e0c65c
+24345853
+20405841
+20205535
+6fe0c671
+207a0000
+67e0c661
+70467100
+20207dbc
+6fe0c66d
+207a0000
+67e0c662
+70466d00
+20207dbc
+44c24010
+2040591f
+20404f51
+20404f8d
+6fe0c66b
+6848c66a
+67e0c66a
+98467c00
+2422b781
+6fe0c66f
+6848c66e
+67e0c66e
+98467c00
+2422b781
+20600000
+6fe0c89a
+c17f8000
+da200000
+6848c89a
+20406ee0
+7920a200
+6848c89b
+20406ee0
+7920a201
+1a227e00
+67e0c66b
+c000cf61
+c0014f65
+6fe0c66c
+c283cf71
+20600000
+6fe0c66a
+c0004f69
+c001cf6b
+20600000
+6fe0c66a
+c0004f6d
+c001cf6f
+20600000
+70466c82
+20600000
+70466c81
+20600000
+70466c80
+20600000
+70466c83
+20600000
+6fe0c66c
+793ffe07
+67e0c66c
+c0004f79
+c000cf7c
+c0014f7f
+c001cf82
+20600000
+6fe0c66b
+c001cf85
+20600000
+6fe0c66b
+c0004f85
+20600000
+6fe0c66b
+c001cf89
+20600000
+6fe0c66b
+c0004f89
+20600000
+6fe0c66d
+1fe0fe01
+67e0c66d
+20600000
+6fe0c66d
+1fe0ffff
+67e0c66d
+20600000
+6fe0c668
+c17f8000
+da200000
+6848c668
+20406ee0
+7920a200
+6848c669
+20406ee0
+7920a201
+1a227e00
+67e0c66f
+c000cf9d
+c0014fa1
+6fe0c670
+c283cfad
+20600000
+6fe0c66e
+c0004fa5
+c001cfa7
+20600000
+6fe0c66e
+c0004fa9
+c001cfab
+20600000
+70467082
+20600000
+70467081
+20600000
+70467080
+20600000
+70467083
+20600000
+6fe0c670
+793ffe07
+67e0c670
+c0004fb5
+c000cfb8
+c0014fbb
+c001cfbe
+20600000
+6fe0c66f
+c001cfc1
+20600000
+6fe0c66f
+c0004fc1
+20600000
+6fe0c66f
+c001cfc5
+20600000
+6fe0c66f
+c0004fc5
+20600000
+6fe0c671
+1fe0fe01
+67e0c671
+20600000
+6fe0c671
+1fe0ffff
+67e0c671
+20600000
+6848c668
+20404f02
+6848c669
+20404f02
+6848c89a
+20404f02
+6848c89b
+20204f02
+6fe14661
+207a0000
+70467201
+7046730a
+20600000
+da604673
+da404fd9
+20203755
+70467200
+20600000
+6fe0c892
+c17f8000
+da200000
+704a0f05
+6848c892
+20404fe8
+67e0ca0c
+6fe0c89c
+c07fcffc
+20405203
+1a227e00
+c282d004
+2020500b
+6fe4470e
+c295d002
+6fe0ca0c
+1fe22600
+6fe0c89c
+c07fcff8
+6fe0ca13
+243a4fff
+20406ee0
+6848c89c
+2020d002
+6848c89c
+20406ef1
+6848c892
+6fe0ca0c
+20205236
+6fe0c892
+20405256
+6848c892
+20205242
+6848c892
+20404f0a
+20204fe5
+70491700
+704a0c00
+20600000
+6fe0ca0c
+20205236
+6fe0c917
+c1008000
+70491701
+6fe4470e
+c3940000
+c39b0000
+2020501b
+6fe0c917
+c1000000
+70491700
+6fe4470e
+c2945012
+c29b5012
+20600000
+6fe0c918
+243a5016
+6fe0c732
+245a501b
+70491800
+6fe0c502
+67e0c732
+67e0c731
+20600000
+44c2c010
+2040504c
+20740000
+6fe0c6a2
+1fe20400
+6fe4470e
+c28ad028
+18427e00
+1fe0fe01
+1fe17e03
+67e0c6a2
+20405068
+2020557a
+6fe0ca1c
+243a5045
+6fe4470e
+c28e5039
+18427e00
+c1008000
+c0005035
+c0015033
+20600000
+58000002
+20205025
+58000000
+20205025
+58000001
+20205025
+58000003
+20205025
+18427e00
+c1008000
+c0005035
+c0015037
+c001d033
+20600000
+18427e00
+c1010000
+c0005037
+c000d033
+c001d031
+20600000
+6fe4470e
+c28e503f
+18427e00
+c1010000
+c0005031
+c000d033
+20600000
+78547c00
+6fe4470e
+c3958000
+202057b1
+6fe4470e
+c2945054
+c29b505b
+20600000
+6fe0c917
+c1808000
+da604732
+da405059
+20203755
+70491801
+202057f6
+6fe0c917
+c1808000
+da604731
+da405060
+20203755
+70491801
+202054b2
+6fe4470e
+c38e0000
+6fe0c6a2
+c1818000
+7046a200
+20600000
+44c34010
+20405062
+20405a1e
+44c3c010
+6fe0c9fa
+c006508f
+c001d0a9
+c005d0bd
+6fe0c6a2
+c0005077
+c000d075
+c0015079
+c001d07b
+6848c906
+2020507c
+6848c905
+2020507c
+6848c907
+2020507c
+6848c908
+6fe0c9fa
+c002508b
+c002d08b
+c004508d
+c003d08d
+c003508b
+6048c916
+58000006
+20406971
+1fe104f8
+6fe0c916
+9840fe00
+1fed7e00
+1fe0fe06
+20206970
+184085ff
+20205082
+18408402
+20205082
+6fe0c6a2
+c0005095
+c000d099
+c001509b
+c001d09d
+20600000
+6fe0c911
+2020509e
+6fe0c912
+2020509e
+6fe0c913
+2020509e
+6fe0c914
+2020509e
+6fe0c915
+1fe22200
+5800c309
+20406970
+1a227e00
+1fed7e00
+1fe0fe23
+20406970
+58000009
+20206970
+58005a09
+20206970
+6fe0c6a2
+c00050b0
+c000d0ae
+c00150b2
+c001d0b4
+6fe0c90a
+202050b5
+6fe0c909
+202050b5
+6fe0c90b
+202050b5
+6fe0c90c
+67e0c916
+1fed7e00
+1fe22200
+1fe0fe0d
+20406970
+1a227e00
+1fe0fe0e
+20206970
+6fe0c6a2
+c00050c4
+c000d0c2
+c00150c6
+c001d0c8
+6fe0c90e
+202050b5
+6fe0c90d
+202050b5
+6fe0c90f
+202050b5
+6fe0c910
+202050b5
+20405170
+6fe0ca19
+243a5184
+6fe0ca14
+243a5183
+204051ac
+204050e0
+20404e9b
+204050db
+1a227e00
+6848c664
+67e0c664
+67e0c65c
+9842fe00
+1fe67c00
+20628000
+20207dbc
+c6930000
+1a227e00
+207a0000
+67e0c65c
+20207dbc
+704a1100
+704a1200
+704a1300
+1fe22400
+6848c88d
+6fe0c890
+98467c00
+2022d0f0
+6fe0c891
+98467c00
+2022d0f5
+6848c88e
+6fe0c890
+98467c00
+2022d104
+20205107
+6848c88e
+6fe0c891
+98467c00
+2022d0fa
+202050fd
+6848c88e
+6fe0c890
+98467c00
+2022d0ff
+20205102
+20405113
+2040511f
+20205109
+20405113
+20205105
+2040511c
+20405116
+20205109
+2040511c
+20205108
+20405116
+20405122
+20205109
+2040511f
+20405119
+20405125
+20405128
+6fe0ca12
+207a0000
+6fe0ca11
+207a0000
+704a1301
+6fe0c664
+1fe22200
+20600000
+1a417e09
+c004d130
+20600000
+1a417e12
+c0095130
+20600000
+1a417e0a
+c0055130
+20600000
+1a417e11
+c008d130
+20600000
+1a417e14
+c00a5130
+20600000
+1a417e12
+c0095130
+20600000
+1a417e18
+c00c512e
+20600000
+18417e07
+c001d12e
+c002d12e
+c003512e
+c003d12e
+20600000
+704a1201
+20600000
+704a1101
+20600000
+6fe4470e
+c40a8000
+c316513a
+6fe0c8a0
+20405254
+20405148
+6848c8a0
+20204f0a
+6fe0c8a0
+20405256
+704a1d00
+6848c8a0
+6fe0ca1a
+20405161
+2040514c
+6848c8a0
+20204f0a
+20404f0a
+6fe0ca1b
+c1008000
+704a1b01
+2020501b
+704a1d00
+6848c8a0
+6fe0ca1a
+20405157
+67e0ca1a
+6fe0ca1c
+203a5153
+6fe0ca1b
+c1008000
+704a1b01
+2020501b
+6fe0ca1b
+c1000000
+704a1b00
+20600000
+1fe3fe00
+1fe22400
+20406ee0
+7920a400
+1a417e07
+6848ca1d
+18420e00
+c003d16c
+c000516e
+20600000
+1fe3fe00
+1fe22400
+20404f06
+20406ee0
+7920a400
+1a417e07
+6848ca1d
+18420e00
+c003d16c
+c000516e
+20600000
+704a1c01
+20600000
+704a1c00
+20600000
+da400000
+6fe0c89f
+c17f8000
+6fe4470e
+c317517d
+6848c89f
+20404f0a
+6848c89f
+20406ee0
+7920a400
+1a427e00
+67e0ca19
+20600000
+6848c89f
+20404f06
+6848c89f
+20406ee0
+7d20a400
+2020517a
+c002519c
+2040519f
+6fe24a15
+d84000a0
+98408400
+1c427e00
+98467c00
+24610000
+67e24a15
+6fe0ca14
+c0005192
+c000d195
+c0015198
+c001d19a
+20600000
+704a1401
+70465c01
+20207dbc
+704a1402
+70465c00
+20207dbc
+704a1403
+20205193
+704a1400
+20205196
+704a1400
+70465c00
+20600000
+684a4a15
+1c427e00
+98467c00
+244151a4
+20600000
+58000000
+67e24a15
+20600000
+204051b9
+204051ac
+58000000
+67e1ca07
+20600000
+44c44011
+6fe0c737
+245a51b9
+da200000
+204051bc
+204051c5
+204051ce
+204051d7
+204051f3
+20405170
+20405210
+1a227e00
+20600000
+58030303
+67e1ca07
+20600000
+6fe0c88d
+20405254
+704a0f00
+6848c88d
+6fe0ca07
+20405236
+67e0ca07
+6848c88d
+20204f0a
+6fe0c88f
+20405254
+704a0f01
+6848c88f
+6fe0ca08
+20405236
+67e0ca08
+6848c88f
+20204f0a
+6fe0c88e
+20405254
+704a0f02
+6848c88e
+6fe0ca09
+20405236
+67e0ca09
+6848c88e
+20204f0a
+6fe0c890
+c17f8000
+704a0f03
+6fe0ca0a
+1fe22600
+6848c890
+6fe0c89c
+c07fd1ec
+20406ee0
+2020d1e8
+6848c89c
+20406ef1
+6848c890
+6fe0ca0a
+20405236
+67e0ca0a
+20205203
+6848c89c
+6fe0ca0a
+20405236
+202051e6
+6fe0c890
+20405256
+6848c890
+20405242
+67e0ca0a
+6848c890
+20204f0a
+6fe0c891
+c17f8000
+704a0f04
+6fe0ca0b
+1fe22600
+6848c891
+6fe0c89c
+c07fd209
+20406ee0
+2020d205
+6848c89c
+20406ef1
+6848c891
+6fe0ca0b
+20405236
+67e0ca0b
+6848c89c
+20204f0a
+6848c89c
+6fe0ca0b
+20405236
+20205202
+6fe0c891
+20405256
+6848c891
+20405242
+67e0ca0b
+6848c891
+20204f0a
+70472b00
+6fe0c89e
+c17f8000
+6fe4470e
+c40a0000
+c297d221
+704a0f07
+6848c89e
+6fe0ca0e
+20405236
+67e0ca0e
+1a227e00
+c283d22c
+2040522f
+6fe0c72c
+67e0c72d
+20600000
+704a0f07
+6fe0ca0e
+1fe22600
+6fe0c89e
+20405256
+6848c89e
+20405242
+67e0ca0e
+2040521b
+6848c89e
+20204f0a
+70472c01
+20405232
+2020521e
+70472c00
+6fe0c72d
+207a0000
+70472b01
+20600000
+f93fa200
+20600000
+1fe3fe00
+1fe22400
+20406ee0
+7920a400
+1a417e07
+6848ca0f
+18420e00
+c003d240
+c0005234
+20600000
+f9202200
+20600000
+44c4c011
+1a627e00
+67e0ca10
+1fe3fe00
+1fe22400
+18422600
+20404f06
+1a620400
+20406ee0
+7d20a400
+2040524e
+2020523a
+6848ca10
+18410401
+1a417e01
+98467c00
+2422d3d5
+20600000
+d840003f
+20206f1d
+d840003e
+20206f1d
+67e0c8a7
+20405254
+6848c8a7
+20204f0a
+67e0c8a7
+20405256
+6848c8a7
+20204f06
+44c54011
+20404f1b
+20758000
+204052fd
+44c5c011
+2040526f
+c0185276
+c018d2dc
+c02c52e5
+2040526c
+20001af4
+20205264
+6848c893
+20406953
+20204f20
+58000001
+20406971
+67e0c8fc
+58000000
+20406971
+67e0c8fb
+20600000
+6fe0c8fc
+c02d5285
+c06c528a
+c068d27f
+c06952a2
+c00152a9
+c02a52b2
+c02852d9
+20205264
+58000049
+20406971
+c050d283
+20205299
+7049fa0c
+20600000
+7049fa05
+204052f0
+20407c97
+da604973
+20205301
+58000016
+20406971
+1fe67cbd
+2422d260
+58000019
+20406971
+1fe67c55
+2422d260
+5800001b
+20406971
+1fe67c1d
+2422d260
+7049fa06
+da6049af
+202052ab
+7049fa00
+da60492d
+204052ab
+da604937
+204052ab
+58000943
+20406970
+da604951
+202052ab
+7049fa02
+da604923
+204052ab
+da604937
+204052ab
+da604951
+202052ab
+7049fa03
+da604919
+efe10013
+d840ffff
+98467c00
+20628000
+20406970
+1a60a602
+202052ab
+204050a7
+58009a5b
+20406970
+5800000d
+20406971
+1fe67c12
+2022d2c6
+1fe67c0a
+2422d2c9
+5800000e
+20406971
+1fe67ce5
+2422d264
+58000010
+20406971
+1fe67ca5
+2022d2c6
+204052d6
+7049fa08
+20600000
+7049fa09
+da604991
+202052ab
+1fe67c10
+2422d264
+5800000e
+20406971
+1fe67cc5
+2422d264
+58000010
+20406971
+1fe67c38
+2422d264
+204052d6
+7049fa0a
+20600000
+5800005b
+20406970
+202050a5
+7049fa07
+da6049d1
+202052ab
+204052fd
+6fe0c8fc
+c03852e3
+c00052e1
+20205264
+7049fa01
+20600000
+7049fa04
+20600000
+204052fd
+6fe0c8fc
+c02bd2ed
+c02cd2ea
+20205276
+7049fa0b
+da6049bf
+202052ab
+7049fa0d
+da6049dd
+20205301
+d8408006
+6fe0c9fa
+c085d2f4
+d8409706
+18427e00
+20406970
+20002ee0
+20600000
+da6049e9
+6fe0c9fa
+c1858000
+da6049f1
+20600000
+44c64011
+20404f1b
+204052f0
+204052f8
+204052ab
+2020506b
+44c6c011
+20405260
+20404f1b
+d8400806
+6fe0c9fa
+c085d30a
+d8401f06
+18427e00
+20206970
+6fe0c437
+c1800000
+6fe0c9fa
+c0005319
+c000d319
+c0045319
+c0015319
+c001d33d
+c0025319
+c0035365
+c005d35b
+c006d35b
+20205319
+20405387
+78547c00
+6fe0c667
+c07fd320
+6848c667
+20406ee0
+24608000
+58000000
+20406971
+c0985333
+58000002
+20406971
+c4038000
+2040539e
+6fe0c65d
+20405397
+67e1465d
+6fe0c65f
+20405397
+67e1465f
+6fe0c9fb
+c0005335
+c000d337
+c0015339
+c001d33b
+20600000
+c018d323
+2020526c
+20405370
+202053a4
+20405378
+202053a4
+20405374
+202053a4
+20405380
+202053a4
+20405387
+6fe0c667
+c07fd343
+6848c667
+20406ee0
+24608000
+58000000
+20406971
+c098526c
+58000002
+20406971
+c4038000
+2040539e
+20405359
+67e0c663
+1ff1fe00
+2040539b
+67e0c65e
+6fe0c663
+1fe17e0f
+2040539b
+67e0c660
+6fe0c9fb
+c0005370
+c000d378
+c0015374
+c001d380
+20600000
+58000012
+20206971
+20405387
+6fe0c667
+c07fd361
+6848c667
+20406ee0
+24608000
+58000000
+20406971
+c0ac526c
+20205346
+20405387
+78547c00
+58000002
+20406971
+c4038000
+58000008
+20406971
+203a5326
+58000000
+67e3465d
+20600000
+6fe1465d
+1fe67e00
+67e1465d
+20207dbc
+6fe1465f
+1fe67e00
+67e1465f
+20207dbc
+6fe1465f
+1fe67e00
+67e1465f
+6fe1465d
+1fe67e00
+67e1465d
+20405382
+20207dbc
+20405382
+20207dbc
+6fe1465f
+6849465d
+67e1465d
+6049465f
+20600000
+6fe0c8fd
+205a539e
+7048fd01
+20600000
+7049f901
+204029a8
+20205260
+6fe0c667
+c1ff8000
+6fe0c73d
+207a0000
+1fe0ffff
+67e0c73d
+58000000
+67e2465d
+2020538d
+c4038000
+d840ff00
+9841fe00
+20600000
+c4018000
+d84000f0
+20205399
+dfe00003
+20406971
+67e1465d
+dfe00004
+20406971
+2020586a
+6848c894
+20406ee0
+20608000
+5800000a
+20406971
+200003e8
+202053a4
+58008100
+20206970
+70474fff
+7043fc34
+580f0f0f
+67e1c2dd
+67e1c2e0
+20204e11
+44c74011
+204067d5
+204053c1
+6fe0c678
+c000d3ba
+c00153bc
+20600000
+6fe3467a
+202053bd
+6fe34687
+684b46f8
+98467c00
+2022d544
+20204e09
+70474f5a
+20600000
+6fe14500
+c284b794
+20205562
+58000000
+67e14741
+6fe14500
+c284b794
+20600000
+6fe4470e
+c40d8000
+243453d3
+6fe0c9fc
+1fe0fe01
+1fe17e0f
+67e0c9fc
+247a0000
+7049fc00
+20207dbe
+6fe0c667
+c1ff8000
+7040c000
+70473e1e
+20600000
+44c7c011
+1a627e00
+c00a53e9
+c00ad3f9
+c008553f
+c018d406
+c014d408
+c019540a
+c01f379e
+c0205415
+c01cd9a8
+c01d5971
+c01e5997
+c0225428
+20600000
+20405a62
+70473d00
+2040538d
+70475301
+20405960
+6fe0c754
+243a53f1
+70475514
+6fe143fa
+793ffe00
+67e143fa
+70472000
+6fe1477d
+67e1477f
+20405535
+20205562
+58000000
+67e1477f
+70475300
+d8400006
+6fe4470e
+c28dd400
+d8400007
+604942d5
+604942d7
+70478100
+7049f900
+204029aa
+20205484
+d8e00002
+20205411
+70064d12
+20207824
+6fe0c754
+c000d40d
+2020540f
+20405408
+70488314
+d8e00001
+20205411
+6fe0c882
+f9207e00
+67e0c882
+20600000
+6fe14340
+c1000000
+6fe0816a
+1feb7e00
+1fe67c0c
+20610000
+58000009
+20404dab
+20405408
+70478101
+20600000
+6fe0c754
+247a0000
+6fe0c39c
+1fe67e22
+24628000
+70488300
+d8e00000
+20205411
+6fe081a2
+1fe67c0c
+2421541e
+20404dab
+6fe081a4
+203a5434
+6848c88b
+98467c00
+20215434
+6fe081a4
+67e0c0c0
+20205436
+6fe0c88b
+67e0c0c0
+70478100
+20600000
+44c84012
+20402a06
+247a0000
+6fe0c74f
+c07fd440
+6fe0c882
+1fe17e03
+c1818000
+6fe0c9f9
+205a538b
+6fe4470e
+c280e824
+c2806824
+c282e824
+c2836824
+20404f26
+204053cb
+24740000
+204053d5
+2040538e
+20404fd1
+6fe4470e
+c30a683e
+2020683c
+da200001
+6849477a
+20402dcc
+6fe0c77c
+20207dce
+70475400
+6fe1c759
+67e1c351
+2040545e
+58000005
+e7e08006
+d8c0475f
+20405465
+20207860
+da20434d
+efe08011
+207a0000
+98c0a200
+efe08006
+c1008000
+2020545f
+d8a04358
+df200013
+20407cdc
+20202948
+44c8c012
+1a220c00
+efe18006
+67e1c39b
+c0055470
+c009547f
+20202b76
+6fe4470e
+c31dacf7
+20402da5
+6849439c
+6fe0c323
+c281d47a
+6fe1439c
+c0182de1
+6849439c
+20202cfb
+6fe14334
+98467c00
+2422d476
+24345476
+20202d24
+18c22200
+6fe14337
+1fe0a5fd
+20402908
+20206878
+44c94012
+2040548a
+6fe143f8
+c283d490
+c2803771
+20205544
+58000000
+67e4466a
+e7e10005
+7048fd00
+70429c00
+20600000
+70488200
+6fe143f8
+c2803771
+20204e35
+44c9c012
+20405a29
+20404ea5
+204059f2
+20405a81
+20405a00
+20405050
+204054ab
+204054d7
+204054ba
+204054cb
+20405527
+20404fd6
+20405538
+2040552f
+204058f6
+2040326c
+20403507
+204054fa
+204054ff
+2040550d
+2040551a
+20205510
+6fe4470e
+c41b8000
+6fe0c734
+c1808000
+da604731
+da4054b2
+20203755
+6fe0c678
+c1000000
+6fe4470e
+c3830000
+d8e00006
+2040582e
+20403745
+2020553f
+6fe0cabf
+c17f8000
+6fe0cac4
+207a0000
+204051ac
+1a217e07
+6848cabf
+98467c00
+2022d4c6
+6fe0cac1
+67e0cac3
+20600000
+da604ac3
+da40501e
+20203755
+6fe0c737
+207a0000
+6fe0cac0
+c17f8000
+204051ac
+1a217e07
+6848cac0
+98467c00
+2022d4d4
+6fe0cac2
+202054c4
+da604ac3
+da4057f6
+20203755
+6fe0c678
+c00054dd
+6fe4470e
+c41a8000
+6848cabd
+202054e0
+6fe4470e
+c4190000
+6848cabe
+6048c733
+204051ac
+1a217e07
+6848c733
+98467c00
+2022d4ec
+6fe0c502
+67e0c736
+6fe0c735
+c1000000
+70473500
+20600000
+204054f1
+6fe0c735
+c1008000
+70473501
+20600000
+da405965
+da604736
+6fe0c678
+c0003755
+da4054b2
+20403755
+6fe0c736
+c000d820
+20600000
+da604750
+da4054fd
+2020375c
+20405562
+20204e35
+da604720
+da405505
+20403755
+6fe0c720
+c000b788
+20600000
+6fe0c74f
+c07fd3b3
+6fe0c73f
+243a5836
+6fe4470e
+c299d544
+c29f595d
+20204e35
+da604883
+da405426
+20203755
+6fe0c753
+207a0000
+da604755
+da405515
+20203755
+6fe0c754
+247a0000
+6fe0c2fe
+c1800000
+20202fab
+6fe4470e
+c39d8000
+da60477f
+da40551f
+20203755
+6fe1477d
+67e1477f
+20205450
+6fe0c882
+c3810000
+20405408
+d8e00000
+20205411
+da60473e
+da40552a
+20203755
+6fe0c88b
+67e0c0c0
+6fe0c73c
+67e0c73d
+20600000
+da604741
+da405532
+2020375c
+6fe0c678
+c000590a
+202053c6
+6fe1471e
+67e14741
+20600000
+da604705
+da40553b
+20203755
+20405574
+6fe0c752
+243a5801
+20600000
+280ffe26
+2040d936
+204053c6
+70488200
+20205544
+44ca4012
+20405a7a
+6fe14500
+2feffe0b
+2040d565
+204053c1
+6fe14500
+c285d554
+6fe4470e
+c3045554
+6848c6a7
+18408401
+6048c6a7
+6048c2df
+180a7e00
+67e142dd
+6fe1c756
+67e1c2e0
+204037a2
+6fe1464f
+67e14750
+58000000
+67e14741
+67e1477f
+67e0c720
+67e0c9f9
+d8e00002
+2040582e
+20405822
+20205455
+44cac012
+d8e00006
+20405832
+58000000
+67e0c720
+67e14750
+20207866
+44cb4012
+6fe4470e
+c4010000
+d8e00002
+20405832
+204067e4
+204067c1
+20205571
+6fe0c706
+67e0c705
+20600000
+44cbc012
+6fe4470e
+c288d580
+c2885588
+c289558a
+20600000
+44cc4013
+6fe4470e
+c288d584
+c2895612
+c2885588
+20600000
+d8400080
+da204678
+da400000
+20206cc9
+d8400001
+da2046a2
+da40005a
+20206cc9
+204067bb
+20204f1b
+2040558e
+20405594
+204055bb
+202055fc
+20405699
+6fe146a0
+d840aa55
+98467c00
+20628000
+2020569d
+6a414a7f
+1a422600
+204056ad
+6fe0c718
+203a55a0
+67e0ca32
+1a60a601
+6fe14a81
+9a667c00
+24610000
+1a622400
+20205596
+6fe0ca32
+1fe17ef0
+203a55aa
+6fe0c678
+204055b8
+67e0ca33
+df200001
+1a622400
+da204a33
+20206b33
+6848ca32
+6fe0c678
+204055b8
+98467c00
+20628000
+1ff27e00
+9840fe00
+67e0ca33
+1a627e00
+68494a7f
+98467c00
+2022d5a6
+1a60a7ff
+202055a6
+c1800000
+1fe0fe04
+20600000
+6fe0c678
+c00055c0
+c000d5d4
+c00155e8
+20600000
+6a414a83
+1a422600
+20405726
+6fe24a6b
+203a55cc
+67e24a67
+1a60a604
+6fe14a85
+9a667c00
+24610000
+1a622400
+202055c2
+6fe24a67
+684a46a3
+98467c00
+20628000
+df200004
+da2046a3
+1a622400
+20206b33
+6a414a87
+1a422600
+204056d3
+6fe34a3a
+203a55e0
+67e34a34
+1a60a606
+6fe14a89
+9a667c00
+24610000
+1a622400
+202055d6
+6fe34a34
+684b467a
+98467c00
+20628000
+df200006
+da20467a
+1a622400
+20206b33
+6a414a73
+1a422600
+204056fc
+6fe34a52
+203a55f4
+67e34a4c
+1a60a606
+6fe14a75
+9a667c00
+24610000
+1a622400
+202055ea
+6fe34a4c
+684b4687
+98467c00
+20628000
+df200006
+da204687
+1a622400
+20206b33
+6fe0c678
+c1000000
+6a414a8f
+1a422600
+20405738
+6fe0ca71
+203a560a
+67e0ca6f
+1a60a601
+6fe14a91
+9a667c00
+24610000
+1a622400
+20205600
+6fe0ca6f
+6848c6a7
+98467c00
+20628000
+df200001
+da2046a7
+1a622400
+20206b33
+6fe4470e
+c4070000
+6a414a7b
+1a422600
+2040574c
+6fe0ca65
+203a5620
+67e0ca64
+1a60a601
+6fe14a7d
+9a667c00
+24610000
+1a622400
+20205616
+6fe0ca64
+1fe17ef0
+203a562a
+6fe0c6a2
+20405638
+67e0ca66
+df200001
+1a622400
+da204a66
+20206b33
+6848ca64
+6fe0c6a2
+20405638
+98467c00
+20628000
+1ff27e00
+9840fe00
+67e0ca66
+1a627e00
+68494a7b
+98467c00
+2022d626
+1a60a7ff
+20205626
+c1800000
+1fe0fe07
+20600000
+6fe0c678
+1fe67c04
+20610000
+20407dcc
+202056bb
+20406cb2
+6fe4470e
+2feffe09
+2440ecba
+2040ecb7
+20405648
+2040563b
+20205689
+d8400080
+da204678
+da400000
+20206cd7
+d8400001
+da2046a2
+da40005a
+20206cd7
+204067b6
+2040563b
+20405689
+20204f1b
+580046f8
+d8404678
+98460400
+6fe1c6fe
+da204678
+20600000
+700656ab
+204070bf
+20406c1c
+da204701
+68488656
+20405663
+202070bf
+700656b9
+2020565b
+e0408011
+1ff10400
+e0408005
+1fec8400
+e0408005
+e7e08005
+1a227e00
+67f10084
+58000000
+67f10088
+70800602
+20206bd6
+6fe1c6fe
+67e1c430
+20206bf0
+1fe22600
+1a227e00
+1fe0fffc
+1fe22400
+efe20012
+67e24701
+1a627e00
+20406c32
+6fe24701
+e7e20012
+20600000
+6fe4470e
+c4080000
+20405661
+2040696c
+6848c438
+20406eed
+6848c43d
+20204f06
+2040573e
+204056a1
+2040563b
+204056bf
+44ccc013
+6fe4470e
+2feffe12
+2040d699
+6fe146a0
+d840aa55
+98467c00
+2022e7cf
+604946a0
+204067f8
+6fe0c717
+67e0c678
+67e0c6a7
+6fe0c899
+67e0c6a2
+20600000
+df200002
+6a414a93
+da2046a0
+20206b62
+df200002
+da2046a0
+6a414a93
+20206b33
+6a414a7f
+1a422600
+204056ad
+6fe0c718
+203a56b0
+67e0ca32
+1a60a601
+6fe14a81
+9a667c00
+242156b0
+1a622400
+202056a3
+df200001
+da204718
+20206b62
+6fe0ca32
+1fe20400
+1fe17ef0
+203a56b6
+1ff1fe00
+202056b7
+18427e00
+1fe67c00
+2022d6bd
+1fe67c04
+2042fdcc
+67e0c678
+20600000
+6fe0c717
+202056bb
+2040571a
+204056c3
+204056c5
+2020572c
+204056c7
+202056d9
+204056f0
+20205702
+6a414a87
+1a422600
+204056d3
+6fe34a3a
+203a56d6
+67e34a34
+1a60a606
+6fe14a89
+9a667c00
+242156d6
+1a622400
+202056c9
+df200006
+da204a3a
+20206b62
+6fe34a34
+67e3467a
+20600000
+6a414a8b
+1a422600
+204056e5
+6fe34a46
+203a56e8
+67e34a40
+1a60a606
+6fe14a8d
+9a667c00
+242156e8
+1a622400
+202056db
+df200006
+da204a46
+20206b62
+6fe34a40
+684b46f8
+98467c00
+2042d6ee
+67e34680
+20600000
+6fe342dd
+20600000
+6a414a73
+1a422600
+204056fc
+6fe34a52
+203a56ff
+67e34a4c
+1a60a606
+6fe14a75
+9a667c00
+242156ff
+1a622400
+202056f2
+df200006
+da204a52
+20206b62
+6fe34a4c
+67e34687
+20600000
+6a414a77
+1a422600
+2040570e
+6fe34a5e
+203a5711
+67e34a58
+1a60a606
+6fe14a79
+9a667c00
+24215711
+1a622400
+20205704
+df200006
+da204a5e
+20206b62
+6fe34a58
+684b46f8
+98467c00
+2042d717
+67e3468d
+20600000
+6fe342dd
+1fe0ff00
+20600000
+6a414a83
+1a422600
+20405726
+6fe24a6b
+203a5729
+67e24a67
+1a60a604
+6fe14a85
+9a667c00
+24215729
+1a622400
+2020571c
+df200004
+da204a6b
+20206b62
+6fe24a67
+67e246a3
+20600000
+6a414a8f
+1a422600
+20405738
+6fe0ca71
+203a573b
+67e0ca6f
+1a60a601
+6fe14a91
+9a667c00
+2421573b
+1a622400
+2020572e
+df200001
+da204a71
+20206b62
+6fe0ca6f
+67e0c6a7
+20600000
+6fe4470e
+c3075696
+6a414a7b
+1a422600
+2040574c
+6fe0ca65
+203a574f
+67e0ca64
+1a60a601
+6fe14a7d
+9a667c00
+2421574f
+1a622400
+20205742
+df200001
+da204a65
+20206b62
+6fe0ca64
+1fe20400
+1fe17ef0
+203a5755
+1ff1fe00
+20205756
+18427e00
+1fe67c07
+2042fdcc
+20205697
+44cd4013
+20405add
+2040789a
+20404fdb
+20405132
+20405767
+204057b8
+20405815
+20404f42
+6fe4470e
+c4060000
+44cdc013
+20405b87
+20205bb0
+6fe4470e
+c294d76b
+c29bd76b
+20600000
+2040576d
+2020577e
+44ce4013
+da200000
+704a0f06
+6848c89d
+20405781
+67e0ca0d
+6fe0c89c
+c07fd77c
+20205203
+6fe0c89d
+c17f8000
+2040576d
+1a227e00
+c28357a4
+20205797
+6848c89d
+20404f0a
+1a227e00
+c28357a2
+20205797
+6fe4470e
+c296d78d
+6fe0ca0d
+1fe22600
+6fe0c89c
+c07fd242
+6fe0ca13
+243a578a
+2020578f
+70473400
+704a0d00
+20600000
+6fe0ca0d
+20205236
+20406ee0
+6848c89c
+2020d78d
+6848c89c
+20406ef1
+6848c89d
+6fe0ca0d
+20205236
+6fe0c734
+c1000000
+70473400
+6fe4470e
+c39a0000
+6fe0c731
+1fe67c14
+244157f6
+6fe0c502
+67e0c731
+20600000
+204057ae
+20740000
+6fe0c734
+c1008000
+70473401
+6fe4470e
+c29a54b2
+6fe0c720
+207a0000
+6fe0c653
+67e0c720
+20600000
+78547c00
+6fe4470e
+c3968000
+6fe0ca07
+207a0000
+6fe0ca08
+207a0000
+6fe0ca09
+207a0000
+20207dbc
+44cec013
+6fe4470e
+c4150000
+c30b57bf
+204057c2
+6fe0c665
+20205258
+204057c8
+6fe0c665
+2020525c
+6fe0c665
+2040525c
+6848c665
+20406ee0
+2020d7ce
+202057d2
+6fe0c665
+20405258
+6848c665
+20406ee0
+2020d7d2
+202057ce
+6fe0c678
+c1008000
+70467801
+202057d5
+6fe0c678
+c1000000
+70467800
+204057f0
+20205801
+44cf4013
+6fe4470e
+c4150000
+c30b57de
+204057e1
+6fe0c665
+20205258
+204057e7
+6fe0c665
+2020525c
+6fe0c665
+2040525c
+6848c665
+20406ee0
+2020d7f2
+202057ed
+6fe0c665
+20405258
+6848c665
+20406ee0
+2020d7ed
+202057f2
+6fe0c678
+c1000000
+70467800
+20405936
+202053c3
+6fe0c678
+c1008000
+70467801
+202057f0
+44cfc013
+6fe0c716
+c1008000
+20405803
+6048c678
+20405818
+204053c3
+20403745
+2040581a
+70475201
+20205571
+20405818
+20206c99
+6848c678
+18408401
+6fe4470e
+c287d80b
+18467c02
+20610000
+d8400001
+20600000
+6fe0c716
+1fe0ffff
+98467c00
+20610000
+d8400000
+20600000
+d8400001
+da204678
+da400000
+20206cc9
+6fe4470e
+c41a0000
+2020576b
+d8e00000
+2020582e
+d8e00000
+20205832
+d8e00003
+2020582e
+d8e00003
+20205832
+d8e00005
+2020582e
+d8e00005
+20205832
+d8e00013
+2020582e
+d8e00018
+2020582e
+d8e0000d
+2020582e
+d8e0000b
+2020582e
+d8e0001c
+2020582e
+6fe4470e
+f9207e00
+67e4470e
+20600000
+6fe4470e
+f93ffe00
+67e4470e
+20600000
+44d04014
+6fe0c73f
+1fe0ffff
+67e0c73f
+6848c678
+18467c01
+2442d803
+6048c678
+20405811
+204067c1
+20204e09
+44d0c014
+6fe0c9fa
+c1018000
+c1058000
+6fe4470e
+c41c0000
+6fe2465d
+207a0000
+204058e6
+58000003
+204058dc
+205a58d8
+245a58da
+58000002
+204058e1
+205a58d8
+6fe0c8fe
+c000d858
+6fe4470e
+c41c0000
+df200005
+d8a048fe
+20207ca3
+2040586c
+6fe148ff
+67e106e9
+6fe1465d
+67e106eb
+204058a2
+6fe106e9
+67e148ff
+6fe106eb
+67e1465d
+6fe14901
+67e106e9
+6fe1465f
+67e106eb
+204058aa
+6fe106e9
+67e14901
+6fe106eb
+67e1465f
+20600000
+6fe4470e
+c41c8000
+44d14014
+6fe148ff
+67e106f0
+2040587f
+67e148ff
+6fe1465d
+67e106f0
+2040588d
+67e1465d
+6fe14901
+67e106f0
+2040587f
+67e14901
+6fe1465f
+67e106f0
+2040588d
+2020586a
+6fe086f1
+203a5882
+20205887
+6fe086f0
+2040589a
+67e086f0
+6fe106f0
+20600000
+6fe086f0
+204058d4
+2040589a
+205a7dca
+204058d0
+20205885
+6fe086f1
+203a5890
+20205894
+6fe086f0
+2040589d
+67e086f0
+20205885
+6fe086f0
+204058d4
+2040589d
+205a7dca
+204058d0
+20205885
+1feffe04
+1fe6fc05
+2020589f
+1feffe0c
+1fe6fc0a
+20407d64
+1807fe00
+20600000
+6fe106e9
+684906eb
+9840fe00
+6848c903
+9840fe00
+1fe10401
+6048c903
+202058b2
+6fe106e9
+684906eb
+9840fe00
+6848c904
+9840fe00
+1fe10401
+6048c904
+202058b2
+67e186ed
+2feffe10
+2020d8bc
+6fe086ee
+c07fd8c3
+6fe086ed
+1fe37e00
+67e106e9
+67e106eb
+20600000
+6fe086ee
+c00058c0
+6fe186ed
+202058b8
+7006ef00
+6fe086ed
+202058b8
+6fe086ed
+204058ce
+67e086e9
+67e086eb
+203a58cc
+580000ff
+67e086ea
+67e086ec
+20600000
+58000000
+202058c9
+204058d4
+1fe37e00
+204058d5
+1fe67e00
+67e086f0
+20600000
+1fe67e00
+67e08662
+6fe08662
+20600000
+7048fe00
+20600000
+7048fe01
+20600000
+9a267c00
+24217dca
+9a467c00
+24217dca
+20207dcc
+9a267c00
+24610000
+9a467c00
+24610000
+20207dcc
+6fe1465d
+204058ed
+1fe22200
+6fe1465f
+204058ed
+1fe22400
+20600000
+67e106eb
+6fe086ec
+c07fd8f3
+6fe086eb
+1fe17eff
+20600000
+6fe106eb
+1fe67e00
+202058f1
+da604636
+da4058f9
+20203755
+6fe2462a
+67e245c6
+2020552c
+6fe0c738
+c0005904
+c000d906
+c0015901
+c001d908
+580ea600
+67e2462a
+20600000
+5805e740
+20205902
+580927c0
+20205902
+58124f80
+20205902
+44d1c014
+704ac400
+70461700
+20403620
+5fffffff
+67e445c6
+58000000
+67e3c65c
+70473701
+20405303
+20404e42
+20205af7
+44d24014
+6fe0c737
+245a591b
+70473700
+20600000
+704ac401
+20405263
+6fe4470e
+c41e0000
+6848c668
+20404f0a
+6848c669
+20204f0a
+20405927
+6fe0c737
+243a5b02
+202035e8
+6fe245ff
+684a45fb
+98467c00
+2022d92d
+704143ff
+20600000
+70414300
+704141aa
+20600000
+6fe0c141
+67e0c656
+20600000
+6fe0c656
+67e0c141
+20600000
+793f8026
+70461300
+d8e00001
+20205832
+6fe4470e
+c307d948
+20405a69
+20404e14
+20345988
+6fe4470e
+c298594d
+c318d94d
+204051a7
+1a217e07
+6848cabe
+98467c00
+2022d965
+2020594d
+6fe0c73f
+243a5836
+20600000
+20404e14
+20345956
+70467800
+6fe1471a
+67e145f5
+7045f901
+2020350a
+6fe145ed
+67e145f5
+7045f904
+2020350a
+6fe0c678
+c0005988
+204053c1
+20405936
+70467801
+204067d5
+20204dfa
+20404e14
+20344e35
+20205544
+20404e14
+20740000
+6fe4470e
+c29f5571
+20600000
+20405a69
+7045f900
+d8e00001
+2040582e
+58000000
+67e145f5
+20405562
+7045a001
+6fe4470e
+c30a326f
+7045a002
+2020326f
+2040592b
+20405933
+6fe0c617
+243a590a
+6fe0c5f9
+c0015980
+c000d980
+c002598c
+c001d991
+20405936
+6fe0c73f
+243a5836
+6fe0c678
+c0004e35
+20600000
+6fe4470e
+c29f5952
+c2985952
+c31d5988
+6fe246a3
+684a46f8
+98467c00
+2022d965
+6fe145f3
+67e145f5
+7045f903
+2020350a
+6fe4470e
+c31f597a
+6fe0c716
+c000d97a
+20205959
+6fe4470e
+c31f597a
+c288d97a
+c288597a
+c289597a
+20205952
+6fe245a6
+67e245ff
+67e246a3
+20403530
+20405535
+20405a62
+2040538d
+70473d00
+70461300
+7045f900
+6fe245ff
+684a45fb
+98467c00
+20628000
+2040592b
+20405933
+20205960
+2040592b
+20405933
+2040538d
+2040539e
+20405a62
+20405535
+d8e00001
+20405832
+58000000
+67e145ef
+67e145f5
+67e0c613
+67e0c8fd
+67e0c5f9
+6fe245a6
+67e245ff
+67e246a3
+20205571
+20407de6
+202023e1
+44d2c014
+c6930000
+20404f26
+24740000
+6fe0c73b
+70473b00
+245a59ba
+6fe4470e
+c30a59c7
+6fe0c72b
+243a59dc
+2040538e
+6fe0c5a0
+c280d9d6
+6848c531
+6fe0c65c
+9841fe00
+67e0c65c
+6848c536
+6fe0c661
+9840fe00
+67e0c661
+6848c537
+6fe0c662
+9840fe00
+67e0c662
+7045a001
+da200007
+da40465c
+6fe14661
+207a0000
+202036bb
+7045a002
+da200009
+20206852
+6fe0c752
+247a0000
+204059e3
+2020363b
+d8e0000c
+20407cf1
+247a0000
+20405776
+204054c9
+204059ed
+20405050
+d8e0000c
+580000a0
+20207ce3
+6fe4470e
+c4140000
+20204fdb
+20406f4b
+202068c4
+6fe0c8a1
+c17f8000
+6fe14741
+207a0000
+6fe1471e
+68494741
+98460400
+6fe148bb
+98467e00
+202159fe
+6848c8a1
+20205ab6
+6848c8a1
+20205ab5
+da6048bd
+da405a03
+20203755
+44d34014
+6fe4470e
+c28e5a0b
+6fe0c6a2
+c0005a13
+c000da15
+c0015a11
+20600000
+6fe0c6a2
+c0005a15
+c000da17
+c0015a11
+c001da13
+20600000
+58000002
+20205a19
+58000004
+20205a19
+58000006
+20205a19
+58000008
+20205a19
+67e0c8b8
+7048ab04
+20405a59
+7048a901
+20205a66
+6fe0cac4
+207a0000
+6fe0c8be
+203a5a03
+67e0c8bd
+20600000
+78547c00
+6fe0c8ab
+1fe67c04
+24628000
+20207dbc
+6fe4470e
+c4118000
+c4020000
+6fe0cac4
+207a0000
+20405a24
+20740000
+6fe0c8ba
+203a5a47
+6848c64d
+18408401
+6048c64d
+6fe0c8b4
+98467c00
+24415a3f
+6fe0c8b5
+98467c00
+24215a43
+6fe4470e
+c2925aaa
+6848c8a5
+20205ab5
+70464d01
+6fe0c8ba
+1fe0ffff
+67e0c8ba
+6fe4470e
+c2925abc
+6848c8a5
+20205ab6
+6fe4470e
+c2915a43
+20405a52
+20205a32
+7048a800
+20405ace
+7048ab00
+6fe0c8b4
+1fe37e00
+67e0c8b5
+20600000
+6fe0c8b9
+67e0c8ba
+20600000
+6fe0c8ab
+c000da5c
+c0015a5e
+c001da60
+6fe0c8b2
+67e0c8b3
+20600000
+6fe0c8af
+20205a5a
+6fe0c8b0
+20205a5a
+6fe0c8b1
+20205a5a
+44d3c014
+6fe0c8ad
+67e0c8ae
+7048a900
+7048aa00
+7048a801
+20600000
+44d44015
+20405a7c
+7048ab01
+6fe0c8ac
+207a0000
+6fe0c8b6
+20205a78
+4769c03a
+6fe4470e
+c4108000
+20405a7c
+7048ab03
+6fe0c8ac
+207a0000
+6fe0c8b7
+67e0c8b8
+20600000
+7048ac00
+7048ab02
+476a403a
+7048b30a
+7048a801
+7048a901
+20205aa9
+6fe0c8a8
+207a0000
+6fe0c8a9
+c000da8e
+6fe0c8ae
+203a5a8a
+1fe0ffff
+67e0c8ae
+20205aaa
+7048a800
+704ac401
+20405a52
+20205abc
+44d4c015
+6fe0c8ab
+207a0000
+c0025a96
+20205a93
+6fe0c8ac
+c000da96
+20205a98
+6fe0c8b8
+203a5ab7
+da6048b3
+da405a9b
+20203755
+6fe0c8ab
+c0025aa3
+6fe0c8ac
+c000daa3
+20405a55
+6fe0c8aa
+c000dab9
+20205aa7
+6fe0c8b8
+1fe0ffff
+67e0c8b8
+20205a9f
+6fe0c8ab
+c0025ad8
+7048aa01
+44d54015
+6fe0c678
+c0005ab0
+c000dab2
+c0015ab4
+20600000
+6848c8a2
+20205ab5
+6848c8a3
+20205ab5
+6848c8a4
+20206ef1
+20206eed
+7048a800
+7048ab00
+6fe0c8ab
+c0025ad3
+7048aa00
+44d5c015
+6fe0c678
+c0005ac2
+c000dac6
+c0015aca
+20600000
+6848c8a2
+6fe4470e
+c3105ab6
+20206f05
+6848c8a3
+6fe4470e
+c3105ab6
+20206f05
+6848c8a4
+6fe4470e
+c3105ab6
+20206f05
+20405ac2
+20405ac6
+20405aca
+20405a43
+20205ad3
+7048aa00
+6fe4470e
+c292dabb
+6848c8a6
+20205ab6
+7048aa01
+6fe4470e
+c292daa9
+6848c8a6
+20205ab5
+6fe4470e
+c4020000
+6fe0c64d
+6848c8b5
+1fe67c02
+20215ae9
+6fe0c678
+c0005ae6
+20206820
+6fe4470e
+c38c0000
+202036aa
+6fe0c678
+c00036bb
+20206822
+6fe08009
+202035a3
+20405aec
+202036c8
+6fe14500
+c4048000
+6fe0c882
+2fe00603
+2420fdca
+204037a0
+20207dcc
+44d64015
+20403694
+24740000
+70473b01
+2040369e
+7048f100
+20405b7f
+6fe0c737
+245a4e42
+6fe445c6
+202035fa
+6fe0c8fa
+203a35ee
+20403694
+24740000
+6fe0c8f1
+7048f100
+1fe67c00
+2422db0f
+68494639
+18467c00
+2022db22
+6fe248e6
+203a5b22
+684a48f6
+284ffe1f
+2020db2e
+6fe248e6
+9840fe00
+684a48cc
+98460400
+604a48f6
+24215b25
+6fe1c61f
+98467e00
+24215b2c
+d8400600
+98467c00
+24215b2c
+7048f0fa
+20407d27
+604a40a9
+20202406
+20405b29
+6fe1c61f
+20205b1e
+18460400
+6fe1c61f
+9840fe00
+20205b1e
+58000000
+67e248f6
+20600000
+7048f101
+20600000
+dfffffff
+98465e00
+6fe248e6
+9de67e00
+20205b14
+20405b35
+20205916
+6fe0c8fa
+207a0000
+6fe0c62f
+c000db7b
+6fe0c8df
+203a5b7b
+1b227e00
+684b48e0
+67e348e0
+20407d12
+67e248e6
+6fe0c8f1
+247a0000
+6fe14639
+247a0000
+6fe248f6
+247a0000
+6fe248e6
+684a48cc
+18438400
+98467c00
+20215b7f
+684ac8ea
+9840fe00
+67e2c8ea
+6848c8df
+6fe0c8ef
+98467c00
+2022db55
+18408401
+6048c8df
+20600000
+7048df01
+d8400000
+6fe2c8ea
+604ac8ea
+6848c8ef
+9846fc00
+20407d64
+1807a200
+6fe248cc
+6848c8f0
+98460400
+1a227e00
+98467e00
+20215b6f
+1fe67e00
+1feb7e00
+6849c61f
+98408400
+44d6c015
+6fe1c8dc
+da201800
+9a20fe00
+98467c00
+24215b79
+6049c61f
+20600000
+1feb0400
+6fe1c61f
+98460400
+44d74015
+6fe1c8dc
+da201800
+9a267e00
+98467c00
+20215b79
+20205b6d
+67e1c61f
+20600000
+7048df01
+1b227e00
+67e348e0
+20600000
+58000000
+67e0c8df
+67e2c8ea
+20600000
+6fe4470e
+c4060000
+704676a5
+20600000
+20405b8b
+6fe0c676
+c1ad0000
+202078f6
+44d7c015
+6848884a
+20406ee0
+2420dba4
+6fe0c676
+c12d0000
+7046765a
+58000000
+67e145ef
+67e145f5
+70409400
+2040712c
+20405936
+204053c3
+7855fc00
+2040538d
+58005bd7
+67e10837
+6fe0ca95
+67e08839
+d8c04a96
+d8a0083a
+df200009
+20407cdc
+20207902
+6fe0c677
+c1528000
+704676a5
+7008ec00
+7006e700
+7008de00
+6ff10050
+79207e0a
+67f10050
+70409401
+2040712c
+20205801
+6ff08c01
+67e0c675
+c4038000
+20405bc2
+24740000
+20404f26
+24740000
+6ff08c25
+c3810000
+20205bba
+6ff08c01
+c4038000
+44d84016
+6fe4470e
+c30a6856
+6fe0c72b
+c000e85b
+20206856
+20407dbe
+684a474b
+1c427e00
+98467c00
+24415bd1
+1fe22400
+6fe2474b
+6848c674
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+67e2474b
+20207dbc
+20628000
+79207e1c
+20600000
+58000000
+67e2474b
+20600000
+44d8c016
+20405be1
+20405bea
+20405be6
+6fe0ca9f
+207a0000
+d8c04a9f
+d8a007fb
+df20001e
+20207cdc
+704677c0
+6fe4470e
+c40a0000
+7046775a
+20600000
+20407956
+20403d20
+6fe0c677
+20203d2a
+20405bd4
+6fe4470e
+c28edbf1
+c28f5bf3
+c28fdbf5
+70467420
+20600000
+70467410
+20600000
+70467408
+20600000
+70467404
+20600000
+58005bfa
+67e143e4
+20600000
+20405bfc
+20600000
+44d94016
+da200000
+684a49f2
+1c422400
+1a427e00
+98467c00
+244177f4
+1a427e00
+18408408
+98467c00
+24215c0e
+1a20a201
+1a217e0f
+243a5c03
+da200000
+20405c13
+644249f2
+20600000
+1a227e00
+207a0000
+184085f8
+793f841c
+604a49f2
+67e0c9f6
+6fe0c9f6
+207a0000
+1fe0ffff
+67e0c9f6
+6fe149f7
+20407d7b
+20205c14
+44d9c016
+6fe0c9fb
+207a0000
+704a0000
+704a1700
+20405d0a
+20405ca3
+6fe0ca22
+247a0000
+20405d1b
+204023e1
+44da4016
+20405c2c
+20405c32
+20405c3f
+20405c77
+20205c7a
+da204a0d
+6fe0ca00
+9a20a200
+622149fd
+e8408011
+20206ef1
+6fe0c9fb
+207a0000
+6848ca00
+98467e00
+98007200
+da204a03
+6fe0ca00
+9a20a200
+efe08011
+20405cf3
+1a20a201
+c2005c3a
+20600000
+7049ff00
+6fe0c9fb
+6848ca00
+98467e00
+67e0ca19
+da204a03
+6fe0ca00
+9a20a200
+e8408011
+6048ca6d
+20405ce4
+24740000
+2040dc5c
+1a20a201
+6fe0c9ff
+1fe0fe01
+67e0c9ff
+6848ca17
+18408401
+6048ca17
+6848ca19
+98467c00
+24215c47
+6fe14a01
+207a0000
+67e14a67
+58000000
+67e14a01
+20600000
+62214a65
+6fe0c9ff
+1fe20e00
+6848ca01
+f9200400
+6048ca01
+6fe0ca00
+1fe20e00
+6848ca02
+f9200400
+6048ca02
+20405c6a
+6a214a65
+20600000
+68494a01
+da204a23
+efe10011
+207a0000
+98467c00
+2042dc72
+1a20a202
+20205c6c
+68e0ca17
+6fe44a55
+f9207e00
+67e44a55
+20600000
+6fe149fd
+efe0803f
+20205cf3
+6fe0ca00
+1fe0fe01
+67e0ca00
+6848c9fc
+98467c00
+24215c26
+6fe14a67
+203a5c8e
+67e14a1c
+6fe0ca1e
+243a5ca0
+6fe0ca1b
+c1008000
+704a1b01
+704a1e01
+44dac016
+20405c9c
+6fe14500
+c3858000
+20205db7
+6fe0ca1b
+c1000000
+704a1b00
+6fe14500
+c285dc96
+6fe08da0
+243a5c96
+20405db9
+58000000
+67e44a55
+67e0ca1e
+704a1f00
+da604bef
+2020618e
+20405d4c
+58000000
+67e14a1c
+20600000
+58000000
+67e14a67
+20600000
+da200000
+da400000
+18007000
+6fe0ca18
+98007200
+da604a0d
+20405d0b
+20405d10
+efe08013
+20405cf3
+20405d12
+20405d0d
+e8408013
+6048ca6d
+20405ce4
+24740000
+1a420e00
+2040dcdc
+2440dcde
+1a60a601
+1a40a401
+c2005ca9
+1a227e00
+203a5cc5
+67e0ca21
+6fe0ca1a
+c1008000
+704a1a01
+704a2201
+44db4016
+20405ccf
+6fe14500
+c3858000
+20205db7
+6fe0ca1a
+c1000000
+704a1a00
+6fe14500
+c285dccd
+6fe08da0
+243a5ccd
+20405db9
+704a2200
+20205c99
+20405cd2
+704a2100
+20600000
+6848ca21
+da204a4b
+da400000
+efe08011
+207a0000
+98467c00
+2022dd3f
+1a20a201
+1a40a401
+20205cd5
+f9202200
+20600000
+f93fa200
+20600000
+704a6b01
+20600000
+704a6c01
+20600000
+20407dbe
+704a6b00
+704a6c00
+6848ca6d
+20406ee0
+2040dce0
+200004b0
+6848ca6d
+20406ee0
+2040dce2
+6fe0ca6b
+6848ca6c
+98467c00
+24628000
+20207dbc
+67e0ca6e
+20405d07
+6fe0ca6e
+da600001
+1fe6fc02
+20407d64
+18078400
+18077e00
+245a5d05
+18427e00
+d8a0814d
+37d98200
+37d98200
+98a08a00
+efe08005
+9a61fe00
+e7e08005
+202023c4
+da600010
+20600000
+1fe1fe80
+d8400000
+20206f1c
+20206f4e
+1a627e00
+20205d15
+20405d18
+1fe22600
+20600000
+1a227e00
+20205d15
+20405d18
+1fe22200
+20600000
+1f00f001
+1fe25e00
+20600000
+1de27e00
+1f00f1ff
+20600000
+20405d21
+20405d24
+20405d0a
+580000f0
+67f08141
+202023c4
+6fe0ca18
+da204a0d
+20205d28
+6a40ca20
+6fe0ca18
+da204a0d
+20205d2e
+1fe27200
+e8408011
+20406f0b
+1a20a201
+c2005d29
+20600000
+1fe27200
+e8408011
+18437e00
+d8a00016
+98a08a00
+20405d3a
+e8408005
+9841fe00
+e7e08005
+1a20a201
+c2005d2f
+20600000
+1a427e00
+284c0000
+20608000
+1ff27e00
+20600000
+44dbc016
+1a427e00
+6848cc07
+9840fe00
+da604bf2
+9a60a600
+efe08013
+67e0ca1f
+1fe0ffff
+1feffe03
+da604bb0
+9a60a600
+20205d59
+68494a1c
+da204a23
+da400000
+efe10011
+207a0000
+98467c00
+2022dd56
+1a20a202
+1a40a401
+20205d4f
+44dc4017
+1a427e00
+20205d43
+44dcc017
+6fe0cc0b
+243a5d5e
+20405d61
+2020618e
+6fe0cc09
+207a0000
+20205d5c
+efe08013
+1a60a601
+c0005d68
+c000dd6a
+c0015d6c
+c001dd6e
+20600000
+704a6f00
+20600000
+704a6f01
+20600000
+704a6f02
+20600000
+704a6f03
+20600000
+44dd4017
+204061a2
+24740000
+67e0cc08
+6fe0ca1f
+205a5e05
+6fe14500
+c304dd7e
+6fe0ca6f
+c0005d88
+c000dd9c
+c0015da9
+c001dd7e
+20600000
+6fe0ca1f
+c0005e05
+6fe0cc08
+1fe0ffff
+1feffe03
+d8404b80
+98408c00
+efe10006
+e8408006
+20205e01
+20402a06
+247a0000
+6fe0cc08
+1fe0ffff
+1feffe03
+d8404b10
+98408c00
+df200003
+d8a0064e
+20407cdc
+704c0a03
+68494c0e
+6fe0cc09
+207a0000
+6a20cc0a
+20402dcc
+6848cc0a
+18427200
+d8c0064e
+20207cdc
+20402a06
+247a0000
+6fe0cc08
+1fe0ffff
+1feffe04
+d8404b40
+98408c00
+df200004
+d8a0064e
+20407cdc
+704c0a04
+68494c12
+20205d94
+20402a06
+247a0000
+6fe0cc08
+1fe0ffff
+1feffe0a
+d8404a70
+98408c00
+efe10006
+df200008
+d8a0064e
+20407cdc
+704c0a08
+68494c0c
+20205d94
+da200000
+202077a8
+da200000
+202077ad
+67e10d96
+60488d98
+18007000
+20405dcd
+20405dd9
+6fe08d96
+20405de5
+6fe08d97
+20405de5
+6fe08d98
+20405de5
+6fe08d98
+1fe47e00
+20405de5
+5800023a
+20405dde
+58000001
+20205ddc
+58000000
+204070bc
+20407103
+20405dd3
+6fe0ce33
+20207100
+da20009d
+da40009d
+dfe00000
+204070de
+70809a00
+20600000
+58002328
+20405dde
+58001194
+70809a00
+20205de0
+70809a01
+20205de0
+207a0000
+1fe0ffff
+20000008
+243a5de1
+20600000
+df200008
+20405d15
+20405dec
+20405d18
+1fe37e00
+c2005de6
+20600000
+c3005def
+c2805df2
+20600000
+da20023a
+da400226
+20205df5
+da20023a
+da400690
+20205df5
+1a227e00
+20405dde
+1a427e00
+20205ddc
+58002328
+20405dde
+580008ca
+20405ddc
+58000230
+20405dde
+58000001
+20205ddc
+20405dbb
+20405e0c
+700d9410
+20600000
+20405e10
+20407103
+6fe0ce33
+d840003e
+20206f1d
+d840003f
+20206f1d
+5800002b
+67e08d95
+67e08d94
+20600000
+58000000
+20205e0d
+6ff10120
+68590066
+98467e00
+24215e17
+20600000
+68590120
+6ff10066
+98460400
+58000100
+98467e00
+20600000
+6ff10066
+e841803f
+60488dd2
+184c8400
+60488dd3
+184c8400
+60488dd4
+6fe08dd2
+1fe17e80
+c0c05e28
+20205e33
+6fe08dd2
+67e08dd5
+6ff10066
+68590064
+98467e00
+20215e5b
+6ff10066
+1fe0fe01
+67f10066
+700dd801
+20600000
+6fe08dd4
+1fe17e80
+c0405e46
+6fe08dd3
+1fed7e00
+1fe37e00
+68488dd2
+1841047f
+9841fe00
+67e10dd5
+6ff10066
+68590064
+98467e00
+20215e5b
+6ff10066
+1fe0fe02
+67f10066
+700dd802
+20600000
+6fe08dd4
+1fe17e7f
+1ff07e00
+1fe32200
+6fe08dd3
+1fed7e00
+1fe37e00
+68488dd2
+1841047f
+9841fe00
+9a21fe00
+67e18dd5
+6ff10066
+68590064
+98467e00
+20215e5b
+6ff10066
+1fe0fe03
+67f10066
+700dd803
+20600000
+d8400a88
+9840fe00
+67f10066
+20600000
+58000b88
+67e10dcc
+67e10dd0
+20600000
+20405e6c
+6fe08dd5
+68490ddc
+9840fe00
+67e10ddc
+58000000
+67e18dd5
+67e08dd8
+20600000
+6fe08db7
+1fe67c14
+20628000
+1fe0fe01
+67e08db7
+6fe08dd5
+68490db5
+e7e08002
+18408401
+60490db5
+20600000
+6ff20100
+684a0dde
+98467e00
+20600000
+684a0de6
+98467c00
+20600000
+6ff20100
+67e20dde
+5800026c
+67e20de6
+20600000
+6fe08d93
+207a0000
+1feffe04
+1fe0fff6
+1fe27200
+67e08c90
+d8c00b88
+18c08c06
+d8a00c93
+20207cdc
+704db528
+6fe14df2
+67e14db6
+58000a24
+67e14db8
+6fe24dad
+67e24dc0
+6fe24db1
+67e24dc4
+6fe0cdc4
+1febfe00
+d8404c49
+98408400
+efe20002
+67e24dbc
+704dd001
+20405f3c
+6fe24dd1
+684a4dc0
+98467e00
+67e24dd9
+20405ed7
+20405ede
+704dbb00
+6fe24dbc
+1fe97e00
+67e24dc8
+20405ee5
+6fe24dbc
+1fe37e00
+67e24dbc
+20405ef3
+6fe24dbc
+1fe37e00
+67e24dbc
+20405efb
+20405f03
+20405f0e
+6fe0cdbb
+6848cdba
+9841fe00
+67e0cdbb
+6fe0cdbb
+d8404c39
+98408400
+efe08002
+20405f49
+684a4dc4
+9840fe00
+67e24dc4
+20405f1b
+20405f20
+6fe24dc4
+1febfe00
+d8404c49
+98408400
+efe20002
+67e24dbc
+20405f2a
+6fe0cdd0
+d8400001
+9842fe00
+67e0cdd0
+6fe0cdb5
+1fe0ffff
+67e0cdb5
+243a5e9d
+6fe0cdd0
+205a5f3a
+6fe24dc0
+67e24dad
+6fe24dc4
+67e24db1
+20600000
+6fe24dd9
+c28fdedc
+58000000
+67e0cdba
+20600000
+58000008
+20205eda
+6fe0cdba
+243a5ee1
+20600000
+6fe24dd9
+1fe67e00
+67e24dd9
+20600000
+6fe24dd9
+684a4dbc
+98467e00
+c38f8000
+704dbb04
+6fe24dd9
+684a4dbc
+98467e00
+67e24dd9
+6fe24dc8
+684a4dbc
+9840fe00
+67e24dc8
+20600000
+6fe24dd9
+684a4dbc
+98467e00
+c38f8000
+6fe0cdbb
+1fe1fe02
+67e0cdbb
+20205eea
+6fe24dd9
+684a4dbc
+98467e00
+c38f8000
+6fe0cdbb
+1fe1fe01
+67e0cdbb
+20205eee
+6fe0cdba
+203a5f0a
+6fe24dc0
+684a4dc8
+98467e00
+67e24dc0
+20600000
+6fe24dc0
+684a4dc8
+9840fe00
+20205f08
+6fe24dc0
+d8407fff
+98467e00
+c30fdf17
+6fe24dc0
+d85f8001
+98467e00
+c28fdf19
+20600000
+58007fff
+20205f08
+5fff8001
+20205f08
+6fe24dc4
+d8400000
+98467e00
+c28fdf25
+20600000
+6fe24dc4
+d8400058
+98467e00
+c30fdf28
+20600000
+58000000
+67e24dc4
+20600000
+58000058
+20205f26
+6fe0cdd0
+203a5f30
+6fe0cdbb
+1fe17e0f
+67e24dd5
+20600000
+6fe0cdbb
+1ff27e00
+1fe17ef0
+684a4dd5
+9841fe00
+68494db8
+e7e08002
+18408401
+60494db8
+20600000
+6fe24dd5
+20205f35
+68494db6
+efe10002
+18408402
+60494db6
+20405f43
+67e24dd1
+20600000
+c287df45
+20600000
+d840ffff
+18500400
+9842fe00
+20600000
+c283df4b
+20600000
+d85fffff
+184d0400
+20205f47
+da200014
+68494df4
+20402dcc
+d8c04dde
+df200014
+20207cdc
+70064e01
+704c0a01
+68494df8
+20205d94
+70064e00
+20205f55
+da200014
+68494df6
+20205f50
+58000221
+67e1864e
+704c0a03
+68494dfa
+20205d94
+5800cccc
+20205f5e
+44ddc017
+1a220c00
+efe08006
+c1dd0000
+efe08006
+67e0ce51
+c0085f77
+c008df7f
+c00adf86
+c00b5fb2
+c00bdfbf
+c00c5fcd
+5fffffff
+67e14e35
+58000000
+67e24e43
+67e14e37
+704e5200
+20600000
+da200005
+20405fc4
+6fe14e48
+e7e10005
+704e6501
+6fe44e5c
+67e442d5
+20202e71
+da200007
+20405fc4
+6fe14e4a
+e7e10005
+6fe14e4c
+e7e10005
+20600000
+efe08006
+67e0ce47
+c0005f92
+da200004
+704e5203
+20405fc5
+6fe0ce47
+20207dce
+da200004
+20405fc4
+6fe0ce47
+20207dce
+20405f8e
+20405f70
+58000000
+67e1ce6b
+704e6601
+58000000
+d8400010
+da200c8c
+20406c43
+20405fa8
+6a21ce68
+df200009
+18007000
+2040608e
+6221c430
+2040609f
+20406bee
+204060a1
+58001000
+9a20a200
+c2005f9f
+20600000
+4778c03e
+6849ce75
+6049ce68
+6049ce40
+6fe08c8c
+c1300000
+6849ce72
+6049ce68
+6049ce40
+20600000
+68494337
+184085f8
+6fe14e37
+9840fe00
+67e14e37
+18427200
+1a220c00
+18c08c05
+20406052
+6fe14e35
+1fe0fe01
+67e14e35
+20600000
+20405fb2
+704e5200
+704e5117
+da200003
+20205fc5
+704e5200
+68494e4f
+20402dcc
+580000ab
+e7e08005
+6fe0ce52
+e7e08005
+6fe0ce51
+20207dce
+18007000
+20406097
+20405ff2
+704e6600
+58000000
+67e1ce6b
+67e24e43
+20406007
+20406099
+18c08c01
+efe20006
+67e2064e
+efe20006
+67e20652
+6fe2064e
+684a4e37
+98467c00
+2422dfee
+6fe24e43
+684a0652
+98467c00
+2422dff0
+20406070
+704e6402
+da20000c
+20405fc5
+6fe0ce47
+e7e08005
+6fe24e37
+e7e20005
+6fe24e43
+e7e20005
+20600000
+704e5205
+20205fe5
+704e5207
+20600000
+6fe0ce66
+207a0000
+20406001
+20610000
+68494e6e
+204060a7
+18427200
+d8a00c8c
+20406061
+2040608e
+204060a9
+204060a7
+20406041
+204060a9
+2020603d
+6fe14e6e
+d8400100
+98467c00
+20600000
+df200100
+20206017
+6fe14e37
+68494e6b
+98467e00
+20628000
+20405d15
+2040601d
+20405d18
+20406013
+6fe24e43
+9840fe00
+67e24e43
+20206007
+d8400100
+98467c00
+20216005
+1fe27200
+d8c00c8c
+d8400000
+efe08006
+98408400
+c2006019
+20600000
+d8400100
+98467c00
+2021602b
+20405d15
+1fe27200
+20406026
+20405d18
+1fe20400
+2020603d
+6fe1ce68
+6a41ce6b
+9a40fe00
+da200c8c
+20206c43
+d8400100
+20406026
+d8400100
+2020603d
+6fe0ce66
+245a6032
+20600000
+6fe0ce66
+207a0000
+20406001
+24610000
+df200100
+d8a00c8c
+20406061
+2040608e
+d8400100
+20406041
+d8400100
+6fe14e6b
+9840fe00
+67e14e6b
+20600000
+6fe1ce68
+6a41ce6b
+9a40fe00
+da200c8c
+20206c29
+580006ef
+68494e70
+184085ff
+1fe20a00
+18a08bf8
+e7e10005
+9840fe00
+e7e10005
+98467e00
+e7e10005
+e7e10005
+20600000
+20406097
+44de4017
+6fe14e6e
+9f20fe00
+67e14e6e
+580006ef
+204060ac
+20406099
+204060c0
+6fe14e6e
+68494e70
+98467c00
+20416060
+20600000
+20600000
+2040609b
+6fe14e6e
+9f267e00
+67e14e6e
+580006ef
+204060b6
+2040609d
+18627e00
+98467c00
+2022a33e
+efe08003
+e7e08005
+c200606b
+e0610011
+20600000
+20406079
+58000000
+20406085
+44dec017
+6fe08c8c
+c030607d
+c0786077
+6fe1ce72
+2020607e
+58000000
+d8400100
+da200c8c
+20206c43
+6fe1ce75
+1fe0fe02
+1ff0fe00
+67e10c8c
+d8400100
+da200c8c
+58000000
+20206c29
+67e1c430
+2040608e
+20406c16
+20406c1c
+da2001bc
+70808204
+6fe1c430
+d8400081
+20206c36
+580001bc
+67f10084
+580001c1
+67f10086
+70808300
+58000005
+20406bcd
+c280608e
+20600000
+18c27e00
+20205d15
+20405d18
+20207c6a
+18a27e00
+20205d15
+20405d18
+20207c67
+204060a5
+20205d10
+20405d12
+20405d18
+1fe27200
+20600000
+1f227e00
+20205d15
+18427e00
+20205d15
+20405d18
+1fe20400
+20600000
+1fe0fff8
+e941003f
+1fe0fe02
+ea01003f
+1fe0fe02
+e841003f
+1fe0fe02
+e861003f
+1fe22200
+20600000
+1fe0fff8
+e941003f
+1fe0fe02
+ea01003f
+1fe0fe02
+e861003f
+1fe22200
+1fe0fe02
+e841003f
+20600000
+efe08006
+e7e08003
+c20060c0
+e0610011
+18627e00
+98467c00
+2022a33e
+20600000
+20407384
+20758000
+58006143
+67e143e4
+580060f3
+67e143e6
+580061a7
+67e143e8
+5800612a
+67e143ec
+58006182
+67e1453b
+204060dc
+44df4017
+204061b3
+6fe0c531
+c00060ea
+6fe0c532
+67e0c503
+202061be
+58006147
+67e143de
+58006145
+67e143e0
+5800615d
+67e14536
+580061b7
+67e14538
+70416007
+20402948
+204061aa
+2040705b
+2040789d
+2020779a
+704503ff
+70453301
+2020615d
+6fe0c533
+c001377d
+20406945
+6fe0c458
+243a377d
+2020377f
+1a627e00
+c00a60fc
+c00ae100
+c01fe103
+c020610b
+c00861d3
+c0166111
+c016e11c
+20600000
+2040614a
+58000000
+67e1450f
+2020379a
+2040789d
+70450800
+2020615d
+2040789d
+70450801
+204065b3
+204037a0
+243a632b
+6fe44ecb
+67e442d5
+20202e71
+6fe14340
+c1000000
+6fe44521
+207a0000
+67e442d5
+20202e71
+6fe0c531
+c1000000
+6fe0c533
+c1808000
+20406117
+20203798
+70469c01
+df20000b
+d8a0469d
+d8c04686
+20207cdc
+6fe0c531
+c1000000
+6fe0c533
+c000e121
+202061cf
+6fe0c69c
+c1808000
+70469c00
+6fe14500
+c284b79a
+df20000b
+d8c0469d
+d8a04686
+20207cdc
+2040612d
+20406134
+2020613e
+da60452f
+da406130
+2020375c
+70453302
+2040379a
+2040616b
+202061bb
+da6046a9
+da406137
+20203755
+6fe14500
+c284e1bb
+6fe0c686
+c000e1bb
+c00261bb
+c002e1bb
+2020379c
+6fe0c533
+c1808000
+da60450f
+da40614e
+2020375c
+20406193
+2020708b
+20406f32
+2020707f
+704503ff
+20406f32
+20207388
+6fe1452b
+67e1452d
+67e1452f
+2020378a
+6fe0c533
+c1808000
+6fe14500
+c3848000
+6fe14529
+67e1452d
+67e1452f
+6fe1450b
+204061e4
+20403796
+6fe24515
+67e24689
+6fe14500
+c3858000
+2020378c
+6fe0c533
+c1808000
+6fe1450f
+6849450d
+6049450f
+247a0000
+6fe14509
+204061e4
+20403796
+6fe24511
+67e24689
+6fe14500
+c3858000
+2020378c
+6fe14500
+c284b794
+2020614a
+20407dbe
+6fe14500
+c284e172
+20600000
+6fe0c508
+207a0000
+20207dbc
+20407dbe
+6fe14500
+c3848000
+20207dbc
+2020615d
+78567c00
+6fe1452d
+67e1452f
+20406175
+20346179
+2040616e
+24740000
+20207dc0
+2040617a
+24760000
+1a227e00
+203a6189
+20403798
+da60453f
+2020618b
+2040379a
+da60454e
+dfe00005
+98effe00
+9a60a600
+efe08013
+207a0000
+2040619f
+1a60a601
+2020618e
+6fe14500
+c284e196
+20600000
+20402a06
+247a0000
+204061a2
+24740000
+1fe0ffff
+1feffe05
+d840455d
+98408c00
+202061e8
+67e0864e
+da20064e
+202078a2
+da20064e
+204078ba
+24740000
+6fe0864e
+20600000
+6fe1439c
+c00c6103
+20600000
+7046a802
+58200008
+67e24519
+592c0005
+e7e20005
+7042e317
+5800001b
+67e14334
+20202a1f
+df200028
+d8a0455d
+d8c097bd
+20207cce
+da200000
+da604691
+204077b8
+2040616b
+6fe0c6a8
+67e0c6a9
+20600000
+58000000
+204061ca
+7044fb01
+20407764
+2040776e
+6fe0c6af
+203a61c7
+6ff08132
+c28261d6
+6fe14500
+c3860000
+2020379c
+68494447
+e7e08002
+efe08005
+67e0c502
+20600000
+6fe14447
+efe0803f
+c1800000
+2020379c
+68494447
+efe08002
+c000e1de
+58000001
+68494447
+e7e08002
+18408c02
+efe08006
+e7e08002
+efe10006
+20207d7b
+58000002
+204061ca
+18408c05
+efe10006
+203a379c
+20207d7b
+67e140a4
+1fe0fffc
+67e1438d
+20600000
+efe08006
+1fe22200
+e8410006
+20407c6f
+20402dcc
+1a227200
+20407c69
+20207cdc
+58009684
+67e142f9
+20600000
+6fe146aa
+67e1453d
+6fe0c6ac
+67e0c688
+67e0c693
+6fe0c6ad
+67e0c531
+6fe0c6ae
+67e0c532
+58000002
+67e1453f
+58000001
+67e14544
+58000006
+67e1454e
+67e14553
+58004533
+67e14447
+58201400
+67e1c533
+70409401
+58000100
+67e140a4
+7040a608
+7040c005
+7040c102
+58000096
+67e14511
+e7e10005
+58000296
+67e14515
+e7e10005
+38000010
+38048008
+380ac000
+380c0004
+67e44521
+70450501
+58004686
+67e14506
+58000000
+67e14686
+380001a0
+38040068
+38080000
+380c0000
+67e44689
+58000301
+67e14691
+380001a0
+380400e8
+38080000
+380c0000
+67e44694
+5800000e
+67e14509
+58000140
+67e1450b
+67e1438d
+58000050
+67e1450d
+70439707
+70438c00
+380000fb
+3806c212
+3808800f
+380c0021
+67e443c4
+38000bb8
+380402ee
+67e24529
+580045b7
+67e14404
+58002001
+67e145b7
+70434c1f
+38010102
+380480c1
+38098120
+380c640c
+67e4c34d
+380003c1
+e7e10005
+70436c1f
+3802090d
+38074c15
+380a8532
+380dd1d5
+67e4c36d
+38026574
+3804001c
+e7e18005
+5800453a
+67e14443
+70453a02
+580045dc
+67e14401
+70440305
+6fe0c6b0
+c00061f0
+c000e283
+20600000
+6fe34eab
+67e3453d
+70453a06
+5800453a
+67e14443
+20600000
+6fe3ceab
+67e3c53d
+70453a07
+5800453a
+67e14443
+20600000
+6fe44eab
+67e4453d
+70453a08
+5800453a
+67e14443
+20600000
+6fe0ceaa
+c0036259
+c003e25f
+c0046265
+20600000
+44dfc017
+6fe44edb
+67e44529
+58000096
+67e1450d
+6fe3cee5
+67e3c686
+6fe3ceec
+67e3c691
+6fe24ef3
+67e24511
+6fe24ef7
+67e24515
+5800000e
+67e14509
+58000140
+67e1450b
+67e1438d
+20600000
+580047a7
+67e142f9
+20600000
+20407384
+20758000
+2040626b
+20406270
+580062c1
+67e143e4
+5800631a
+67e143e6
+58006548
+67e143e8
+580062f2
+67e143ec
+5800634d
+67e1453b
+580062ab
+67e143de
+580062a9
+67e143e0
+5800615d
+67e14536
+580061b7
+67e14538
+70416007
+20402948
+204061aa
+2040705b
+2040789d
+2040779a
+6fe14f12
+67e14334
+6fe44521
+67e44519
+204062cb
+44e04018
+202060d7
+20406f32
+2020707f
+704503ff
+20406f32
+204062af
+20207388
+6fe0c6ad
+207a0000
+6fe0ceaa
+1fe27200
+da20453d
+efe08011
+6848c6ae
+98467c00
+2022e2bc
+1fe67cff
+2022e2bc
+1fe20400
+204062bf
+1a20a201
+c20062b4
+20600000
+79200407
+20206ed7
+204062d8
+d8e00009
+20407cf1
+247a0000
+58000020
+d8e00009
+20407ce3
+78547c00
+2040707f
+202063b7
+5800002b
+1feffe0a
+d8404c4b
+9840a200
+1a20a203
+d8400fff
+e0408011
+1a20a20b
+dfe00fff
+98467e00
+1ff27e00
+e7e10011
+20600000
+6fe14500
+c284e2dd
+d8a045b9
+df200023
+20207ca3
+20402a06
+247a0000
+204078ea
+207a0000
+684a4959
+1c427e00
+98460400
+20628000
+242162e9
+6fe0c958
+98467c00
+20610000
+1c427e00
+67e24959
+204061a2
+24740000
+1fe0ffff
+1feffe0a
+d8404c4b
+98408c00
+202061e8
+204066d9
+204065ef
+204065dd
+204062f9
+2040630e
+2040612d
+20206314
+da604e88
+da4062fc
+20203755
+204078ea
+247a0000
+6fe146bf
+247a0000
+204065b3
+207a0000
+18e27e00
+2fe00e04
+2020e30a
+18e27e00
+2fe00e01
+2020e30c
+da604e7d
+2020618e
+da604e96
+2020618e
+da604ea0
+2020618e
+da604c48
+da406311
+20203755
+df20000a
+d8a04967
+20207ca3
+da6046a9
+da406317
+20203755
+6fe14500
+c284e1bb
+2020379c
+1a627e00
+c00a633c
+c00ae337
+c018e32e
+c0206322
+c1200000
+c019654b
+202060f3
+6fe14340
+c1000000
+6fe44521
+207a0000
+204065b3
+243a632b
+6fe44ecb
+67e442d5
+20202e71
+6fe44ed3
+67e442d5
+20202e71
+704e8901
+20406606
+6fe14eff
+67e14e75
+68494f01
+58000fff
+98467e00
+67e14e77
+20600000
+704e7200
+704e8900
+204063f6
+20406348
+20206100
+1c427e00
+67e24959
+204065ac
+202060fc
+78567c00
+6fe1452d
+67e1452f
+20406175
+20346179
+2040616e
+24740000
+20207dc0
+704e8c00
+20600000
+18e27e00
+c1808000
+20206354
+20406340
+24760000
+1a227e00
+203a637f
+44e0c018
+6fe0cf2a
+243a634a
+704c4901
+20403798
+20406374
+204063a9
+20216348
+18e27e00
+6848ce8c
+98467c00
+2442e36e
+18e27e00
+67e0ce8c
+6848ce8f
+98467c00
+2022e36c
+6fe0ce90
+243a6367
+204065b5
+dfe0000a
+202063a2
+20406602
+18e27e00
+c000e364
+2040648c
+2020643d
+704e8d01
+2020643d
+44e14018
+6fe0ce90
+203a6300
+18e27e00
+c000e300
+20600000
+dfe0000a
+98effe00
+da60495d
+9a60a600
+1c427e00
+e7e20013
+1a60a604
+efe08013
+1fe0fe01
+e7e08013
+20600000
+44e1c018
+6fe0ce90
+205a6393
+dfe0000a
+98effe00
+da60495d
+9a60a600
+e8420013
+18467c00
+20628000
+1c427e00
+98460400
+244177f4
+1a608c09
+efe08006
+243a63ae
+1a60a605
+1c427e00
+e7e20013
+20600000
+6fe0cf2a
+243a3798
+2020379a
+1a608c04
+efe08006
+20206399
+204063b4
+6fe0ce90
+243a63a5
+204063a9
+20216348
+204065bb
+18e27e00
+c001e5c3
+dfe0000f
+98effe00
+9a60a600
+2020618e
+18e27e00
+c000e39c
+c001e39c
+20600000
+204078f2
+e8408006
+98467e00
+1fe67c0a
+20600000
+704e8701
+204063b4
+204065ec
+da604ab3
+dfe00003
+202063a2
+df20000a
+1a620a00
+20207ca3
+6fe146bf
+67e14445
+20406407
+6fe14445
+67e146bf
+d8e00000
+6fe0c53a
+1fe27200
+da60495d
+1f227e00
+67e10656
+1a627e00
+67e1066a
+18e27e00
+67e10658
+204063fd
+6fe1066a
+1fe22600
+6fe10658
+1fe20e00
+204063d4
+6fe10658
+1fe08e01
+6fe1066a
+1fe0a60a
+6fe10656
+1fe27200
+c20063c0
+20600000
+efe20013
+207a0000
+1fe20400
+1c427e00
+98460400
+24610000
+580009c4
+98467c00
+20610000
+1c427e00
+e7e20013
+1a60a609
+58000001
+e7e08013
+6fe0ce87
+207a0000
+704e8700
+44e24018
+204065d8
+6fe0ce8e
+c00063eb
+c000e3ee
+20600000
+204063f8
+dfe00003
+202063a2
+18e27e00
+6848ce8f
+98467c00
+2422e3eb
+6fe0ce90
+79407e00
+67e0ce90
+247a0000
+704e9000
+2020379a
+da604a98
+204065b3
+207a0000
+da604bfd
+20600000
+1a60a405
+efe20012
+207a0000
+1fe20400
+1c427e00
+98460400
+244177f4
+580003e8
+98467c00
+20206396
+6fe14443
+efe0803f
+207a0000
+58000000
+67e106cf
+20407067
+24347793
+20407791
+78547c00
+6fe0c38c
+247a0000
+44e2c018
+6fe0ce8e
+c000e418
+20406472
+20406425
+20740000
+2040641e
+6fe106cf
+67e106d6
+7006d800
+18000e00
+2020709f
+6fe0ce8c
+6848ce8f
+98467c00
+2022b798
+6fe0ce90
+243a379a
+20600000
+d8e00000
+da404ace
+dfe00002
+98effe00
+9a40a400
+efe10012
+207a0000
+684906cf
+9842fc00
+2022e431
+18e08e01
+20206426
+67e14ada
+20403798
+da604adc
+dfe0000a
+98effe00
+9a60a600
+20406439
+2020647d
+20406602
+efe08013
+207a0000
+2040648c
+20406602
+204065b3
+243a6444
+dfe0001c
+2040619f
+dfe0001d
+2020619f
+20406453
+2040645e
+20406468
+dfe00029
+2020619f
+6848ce71
+204065b3
+207a0000
+6848ce74
+18408401
+6fe0ce8d
+207a0000
+6848ce71
+704e8d00
+20600000
+20406449
+18427e00
+207a0000
+67e0ce7a
+dfe0002b
+2040619f
+6fe0ce7a
+1fe0ffff
+67e0ce7a
+207a0000
+20206457
+6fe0ce73
+207a0000
+67e0ce7b
+dfe0002c
+2040619f
+6fe0ce7b
+1fe0ffff
+67e0ce7b
+207a0000
+20206461
+6fe0ce74
+207a0000
+67e0ce7c
+dfe0002d
+2040619f
+6fe0ce7c
+1fe0ffff
+67e0ce7c
+207a0000
+2020646b
+6fe14ada
+207a0000
+684906cf
+18467c00
+2022e480
+98467c00
+20628000
+60494ada
+6fe14e8a
+98467c00
+2042b79a
+6fe106cf
+67e14445
+20207dbc
+704e8701
+2040379a
+da604b18
+20406439
+58000000
+67e14ada
+7046b132
+2040647d
+6fe0c53a
+1feff20a
+d8a0495d
+20207ca3
+44e34018
+6fe0ce8e
+c000e491
+c0006497
+20600000
+18e27e00
+c002e4c0
+c0006507
+c002650f
+c0016539
+20600000
+efe08013
+c000e4c0
+c0016507
+c001e50f
+c0026539
+c002e49e
+20600000
+204065b3
+243a64a8
+5800001b
+1feffe0a
+d8404c4b
+98408a00
+18a08a05
+6fe24b22
+e7e20005
+20600000
+58000029
+1feffe0a
+d8404c4b
+98408a00
+18a08a03
+6fe14e75
+e7e18005
+18a08a07
+6fe14e77
+1ff27e00
+1fed7e00
+e7e18005
+20600000
+6fe0ce73
+207a0000
+1fe0ffff
+67e0ce73
+dfe00fff
+20600000
+d8400055
+204065b3
+207a0000
+d8400007
+20600000
+204064bb
+6fe14e75
+98467c00
+244164b5
+24610000
+98467e00
+67e14e75
+44e3c018
+204065b3
+203a64e2
+6fe14e75
+68494e77
+184d0400
+18520400
+9840fe00
+67e1cb22
+204064d2
+202064da
+58000028
+1feffe0a
+d8404c4b
+98408a00
+18a08a03
+6fe1cb22
+e7e18005
+20600000
+58000029
+1feffe0a
+d8404c4b
+98408a00
+18a08a03
+6fe1cb22
+e7e18005
+20600000
+6fe14e75
+68494e77
+18500400
+9840fe00
+67e24b22
+204064e9
+202064f1
+5800001b
+1feffe0a
+d8404c4b
+98408a00
+18a08a05
+6fe24b22
+e7e20005
+20600000
+5800001c
+1feffe0a
+d8404c4b
+98408a00
+18a08a05
+6fe24b22
+e7e20005
+20600000
+6fe14e75
+d8400fff
+98460400
+24610000
+18427e00
+6848ce73
+18467c03
+2022e504
+18408401
+6048ce73
+202064c6
+704e7300
+dfe00000
+202064c6
+204065b3
+245a64f9
+204064bb
+6fe14e75
+9840fe00
+d8400fff
+20407d6e
+202064c6
+204065b3
+203a6523
+204064bb
+6fe14e77
+98467e00
+67e14e77
+68494e77
+58000fff
+98467e00
+d8400fff
+98460400
+242164c7
+58000fff
+98467e00
+6848ce74
+18467c05
+2022e52a
+18408401
+6048ce74
+20206537
+204064bb
+6fe14e77
+98467c00
+24610000
+98467e00
+67e14e77
+202064c7
+704e7400
+58000fff
+20206537
+204065b3
+203a652b
+6fe0ce74
+203a652b
+1fe0ffff
+67e0ce74
+5800ffff
+d8400fff
+98467e00
+9a20fe00
+67e14e77
+202064c7
+204065b3
+203a6542
+204064bb
+6fe14e77
+9840fe00
+d8400fff
+98462200
+2041652d
+20206537
+204064bb
+6fe14e77
+9840fe00
+d8400fff
+20407d6e
+20206537
+6fe1439c
+c0126103
+20600000
+da200017
+da400004
+204029d9
+58000006
+e7e08005
+58000001
+e7e10005
+5800ffff
+e7e10005
+58002800
+e7e10005
+d8c04947
+20207c91
+44e44019
+1a220c00
+efe18006
+67e1c39b
+c003e587
+c000e5a8
+c0056577
+c0066561
+20202b76
+efe10006
+67e10693
+98002200
+6849439c
+6fe14334
+98467c00
+2422ad2e
+204065b3
+243a656c
+68494943
+2020656d
+68494945
+d8c046c1
+20407c6f
+18427e00
+9a267e00
+24212de1
+1fe0fe01
+1fe67c17
+20212d37
+18007e17
+20202d37
+6849439c
+6fe0c323
+c281e57b
+20202cfb
+6fe14334
+98467c00
+2422acfb
+20402da5
+24346581
+20202d24
+6fe14334
+98467c00
+2422acfb
+d8c046c1
+18007e17
+20202d0b
+44e4c019
+704e7105
+70495701
+704e7901
+704958f0
+704e880a
+704e8d01
+20406642
+6fe0ce89
+207a0000
+20406606
+d8400fff
+6fe14f03
+da204e75
+da404e73
+204065a1
+d8400fff
+6fe14f05
+da204e77
+da404e74
+204065a1
+58000fff
+68494e77
+98467e00
+67e14e77
+20600000
+9846fc00
+20407d64
+1807fe00
+18070400
+e7e08012
+e0410011
+20600000
+18c08dfe
+efe08006
+c00365b1
+20600000
+704e7101
+70495700
+704e7900
+7049580a
+20600000
+204065ac
+20206642
+6fe0c957
+20600000
+da6049b7
+204065b3
+207a0000
+70495878
+da604b26
+20600000
+da604a11
+204065b3
+207a0000
+da604b76
+7049580c
+18e27e00
+c1008000
+20600000
+44e54019
+6fe0cc47
+79407e00
+67e0cc47
+c00065cc
+c000e5ca
+20600000
+204065d3
+2020618e
+204065ce
+2020618e
+da604a3e
+204065b3
+207a0000
+da604ba3
+20600000
+da604c33
+204065b3
+207a0000
+da604c3d
+20600000
+18e27e00
+c000e5fa
+c00165e8
+c00265e4
+20600000
+da604f18
+da4065e0
+20203755
+704f1804
+6fe0cc47
+203a65e4
+202065e8
+704c4700
+704f1804
+da604aa4
+2020618e
+704c4701
+704f1804
+da604a9e
+2020618e
+704c4700
+704f1800
+20600000
+da604f19
+da4065f2
+20203755
+704f1902
+204065f5
+2020618e
+da604f1a
+204065b3
+207a0000
+da604f22
+20600000
+6fe0cf2a
+243a65ff
+704f2a01
+704f1902
+20600000
+704f2a00
+704f1900
+20600000
+6fe0ce72
+247a0000
+704e7201
+202064c7
+58000000
+67e3ce73
+20600000
+204065b3
+c000e611
+c0006623
+20600000
+6fe0cf0b
+c000e62a
+c000663c
+20600000
+6fe0ce73
+1fefffff
+1fe20400
+6fe14e75
+9840fe00
+67e14f07
+6fe0ce74
+1fefffff
+1fe20400
+6fe14e77
+1fe22200
+58000fff
+9a267e00
+9840fe00
+67e14f09
+204065b3
+67e0cf0b
+20600000
+6fe14e75
+67e14f07
+6fe14e77
+67e14f09
+204065b3
+67e0cf0b
+20600000
+6fe14f07
+1fe6fdff
+20407d64
+1807fe00
+18070400
+67e0ce73
+18427e00
+67e14e75
+6fe14f09
+1fe6fdff
+20407d64
+1807fe00
+18070400
+67e0ce74
+58000fff
+98467e00
+67e14e77
+20600000
+6fe14f07
+67e14e75
+6fe14f09
+67e14e77
+20600000
+202066bd
+202066a4
+20406665
+6fe14f0e
+204066d0
+704f1600
+6fe2cf07
+704f1700
+704f1400
+20406669
+6fe0cf14
+c1000000
+20206643
+6fe14efb
+1fe0fffb
+67e14f0e
+20600000
+6fe14f0e
+1fe0fffb
+67e14f0e
+20600000
+6fe14f0e
+1fe0fe05
+67e14f0e
+20600000
+6fe14f10
+1fe0fe05
+67e14f10
+6fe14f10
+1fe20400
+6fe14efb
+98467e00
+d8400005
+98467c00
+24216689
+20600000
+6fe0cf16
+c000e64e
+c0006652
+20600000
+da400000
+1a420400
+6fe14f07
+a843fe00
+2440e679
+da400000
+1a420400
+6fe14f09
+a843fe00
+2440e679
+da400000
+1a420400
+6fe0cf0b
+a841fe00
+2440e679
+20600000
+6fe0cf14
+1fe0fe01
+67e0cf14
+20600000
+704f1401
+2040665a
+6fe14f10
+204066d0
+204065b3
+1fe20400
+6fe0cf0b
+a841fe00
+2040e6a2
+6fe0cf14
+c1000000
+2020667d
+44e5c019
+204066a2
+204065b3
+203a668e
+20206693
+6fe14eff
+67e14e75
+6fe14f01
+67e14e77
+20206641
+d8400fff
+6fe14f03
+da204e75
+da404e73
+204065a1
+d8400fff
+6fe14f05
+da204e77
+da404e74
+204065a1
+58000fff
+68494e77
+98467e00
+67e14e77
+20206641
+704f1400
+20600000
+44e64019
+704f1601
+20406643
+6fe14efd
+1fe20400
+6fe14f0e
+98467e00
+d8400000
+98467c00
+24610000
+6fe14f0e
+1fe20400
+6fe14efb
+1fe0fffb
+98467e00
+6fe14f0e
+67e14f10
+2040667d
+6fe14f10
+2442e6d0
+704f1400
+20406669
+6fe0cf14
+c1000000
+2020660d
+44e6c019
+704f1601
+20406643
+68494efd
+6fe14f0e
+98467e00
+d8400000
+98467c00
+24610000
+68494f0e
+6fe14efb
+98467e00
+d8400000
+98467c00
+24610000
+6fe14f0e
+67e14f0c
+20406609
+202066d5
+1fe22400
+44e74019
+df200005
+da204f07
+20206b62
+df200005
+da204f07
+6a414f0c
+20206b33
+da6046b1
+da406641
+20203755
+6fe0c456
+d840003e
+20206f1c
+6fe0c456
+d840003f
+20206f1c
+204066df
+204066dc
+202066df
+204066e3
+202066dc
+202066e3
+204066e3
+202066e5
+202066dc
+6fe0c457
+202066dd
+6fe0c457
+202066e0
+204066eb
+204066ed
+202066eb
+20800000
+2040711d
+204066fd
+204066ff
+20406713
+2040672f
+20406733
+7006ed01
+7006ea04
+2040673e
+202066fb
+70804204
+20600000
+20406703
+20406707
+2040670b
+2020670f
+6fe0c508
+247a0000
+70450807
+20600000
+6fe0c509
+247a0000
+70450906
+20600000
+6fe0c50a
+247a0000
+70450a09
+20600000
+6fe0c50b
+247a0000
+70450b0a
+20600000
+58000c00
+67e1064e
+58000eff
+e7e10005
+58000f00
+e7e10005
+58000fff
+e7e10005
+6fe4064e
+20406d5b
+20406d75
+d841c200
+20406d68
+6fe0c508
+d8400008
+20406f1d
+6fe0c509
+d8400049
+20406f1d
+6fe0c50a
+d840000a
+20406f1d
+6fe0c50b
+d840000b
+20406f1d
+d8400081
+60588060
+20207d78
+6fe0c50c
+247a0000
+70450c0c
+20600000
+6fe0c50c
+d8400010
+20406f1d
+da200040
+204070b9
+da200000
+da400000
+58000000
+204070de
+d8e00000
+20207106
+6ff10112
+1fe0a3fc
+24610000
+20406d89
+efe08003
+c000e746
+20407c97
+20206d91
+efe10003
+67e106ee
+d84003ff
+98410400
+604906e7
+1feb7e00
+1fecfe00
+67e086e9
+efe08003
+1fe0ffff
+9a267c00
+20610000
+20406754
+202067af
+6fe086e9
+c01fe757
+2020679b
+44e9401a
+6fe086e7
+c000679a
+c000e762
+c0016767
+c001e775
+c002677f
+c002e79a
+c0086790
+c00a6796
+2020679a
+7006f000
+6ff10000
+67e106f1
+df200003
+202067a2
+efe10003
+67f10052
+20600000
+efe08003
+1fe20400
+67f08024
+efe08003
+98408400
+79207e07
+67f08023
+efe08003
+98408400
+1fe27200
+20600000
+2040676a
+efe08003
+67f08025
+98408400
+c2006776
+184104ff
+efe08003
+98467c00
+2422e78e
+2020679a
+df200020
+d8a04000
+d8400000
+efe08003
+e7e08005
+98408400
+c2006782
+184104ff
+efe08003
+98467c00
+2422e78e
+70802300
+2040679a
+20406da1
+20202001
+70802300
+2020679b
+efe08003
+1fe27200
+efe10003
+1fe20a00
+20406dd0
+2020679a
+6ff08060
+79207e04
+67f08060
+2020679a
+2020679f
+7006f001
+202067a0
+7006f00c
+202067a0
+7006f000
+df200001
+202067a2
+7006eb0e
+1f20fe03
+67e086ec
+204067ab
+6fe186ed
+e7e18003
+d8c006f0
+20406db7
+20206d97
+20406d95
+6fe186ea
+e7e18003
+20600000
+20406d89
+18608603
+efe08003
+98608600
+20206d8f
+70411400
+20600000
+20406c16
+2040565a
+20405654
+20406c43
+20205661
+20406c16
+2040565a
+2040566f
+20405654
+20405672
+20205661
+da204679
+6fe0c678
+1fe0ffff
+1feffe0d
+9a20a200
+6fe08032
+e7e08011
+c01a67ca
+20600000
+6fe30178
+e7e30005
+6fe342dd
+e7e30005
+20600000
+44e9c01a
+204067d5
+6fe246a3
+67e245ff
+67e245a6
+20600000
+44ea401a
+da204679
+6fe0c678
+c1000000
+1fe0ffff
+1feffe0d
+9a20a200
+efe08011
+67e0c3fc
+c19a0000
+efe30006
+67e34116
+efe30006
+67e342dd
+20600000
+6fe08032
+c19a0000
+67e0c884
+6fe30178
+67e34885
+6fe3c884
+d8c04679
+df200003
+e8438006
+98467c00
+2022e7f2
+18c08c07
+c20067ec
+20600000
+18c08dfa
+18c20a00
+684b4885
+18408403
+e0430005
+20600000
+6fe342dd
+67e34680
+1fe0ff00
+67e3468d
+1fe0ff00
+67e3469a
+20600000
+704503ff
+70450500
+6fe14651
+67e145ed
+6fe0c654
+67e145f3
+6fe2c657
+67e2c63f
+6fe0c655
+67e0c5e8
+6fe0c5d0
+245a324a
+20600000
+7040c103
+7040a608
+70473400
+70473500
+58000200
+67e140a4
+7042e317
+7042e517
+6fe0c678
+67e0c717
+6fe1c2e0
+67e1c756
+58004782
+67e14343
+58000020
+67e14345
+20205930
+6049c6f8
+6049c6fb
+20600000
+70409401
+20600000
+70409400
+20600000
+70472c00
+44eac01a
+6fe0c72c
+205a684b
+6fe0c721
+c000682e
+c002e833
+c001e836
+c0016839
+c0044885
+6fe0c3cf
+c007c88e
+70477308
+68494774
+20206843
+70477304
+68494776
+20206843
+70477303
+68494776
+20206843
+70477302
+68494778
+20206843
+6fe0c72b
+c000e825
+70477307
+6fe3c65c
+67e3c722
+6849439f
+20206843
+44eb401a
+6fe0c773
+1fe22200
+20402dcc
+6848c773
+18427200
+d8c04722
+20207cdc
+df200009
+d8a04722
+20207ca3
+df20000a
+d8c049fd
+d8a04721
+20207cdc
+6fe0c72c
+205a684b
+da404721
+20600000
+58000001
+67e088f1
+6fe3c65c
+e7e38005
+20203d52
+6fe0c72c
+205a684b
+44b5c00d
+6fe0c721
+c0006864
+c0016869
+c001e86f
+c002e875
+c0044a15
+20403d61
+d8c04722
+d8a00901
+df200009
+20207cdc
+7008ea22
+58000002
+67e08929
+6fe0c722
+e7e08005
+20203d53
+7008ea21
+58000003
+67e08921
+6fe1c722
+e7e18005
+20203d53
+7008ea23
+58000005
+20206871
+6fe0c74f
+c07fad8a
+6fe0c74f
+203a2d8a
+6fe0c882
+c280ad8a
+5800001a
+6849439c
+98467c00
+2422ad8a
+20202d24
+58000000
+67e1c70a
+20600000
+6fe4470e
+c4068000
+6fe0c73d
+207a0000
+6fe0c619
+207a0000
+6fe0c707
+1fe0fe01
+1fe17e03
+67e0c707
+247a0000
+70470800
+44ebc01a
+6fe0c708
+1fe0fe01
+67e0c708
+1fe67c08
+2421689e
+20403557
+2040362a
+242c68a4
+2437e8a4
+204068bc
+204068b1
+20403553
+6fe0c709
+1fe0fe01
+67e0c709
+c00868a6
+20600000
+20403201
+20206892
+44ec401b
+70470900
+6fe0c70a
+c3800000
+79207e00
+67e0c70a
+6fe1471c
+67e14741
+6fe0c3cf
+c0045303
+20600000
+6fe0c619
+203a6883
+70470900
+6fe0c70a
+c4000000
+793ffe00
+67e0c70a
+20405535
+6fe0c3cf
+c0045263
+20600000
+20403647
+6fe0c50f
+2fe1f008
+24608000
+6fe0c510
+c07fd90a
+67e0c70d
+20600000
+6fe0c678
+c1800000
+6fe0c5e1
+207a0000
+70804202
+708130f8
+20600000
+58004f1f
+67e143f0
+58005aee
+67e143ea
+58005af0
+67e143ee
+20600000
+2035e8d7
+58004467
+d8a04458
+98a67200
+20407ca3
+20600000
+d8e00000
+da400000
+18e67c07
+24610000
+aa2fffff
+2020e8df
+202068e3
+18427e00
+203a68e3
+f9202400
+184085ff
+18e08e01
+202068da
+6b014343
+6d614345
+20407dbe
+202068e9
+44ed401b
+20406935
+243a233e
+20406945
+df200008
+6848c458
+1f260e08
+a84fffff
+2020e8f6
+204068fd
+242168f6
+20406913
+202068fa
+1d627e00
+9b00b000
+c20068ee
+2020233e
+1b027e00
+1b020a00
+20600000
+44edc01b
+1f260e08
+d8400000
+d9600000
+18e27e00
+c004690e
+6fe0c458
+afefffff
+2020e90e
+f9201600
+1d627e00
+98408400
+18e08e01
+1a227e00
+98467c00
+2022e90e
+20216901
+18427e00
+9a267c00
+24628000
+f9201600
+20600000
+44ee401b
+20406935
+243a233e
+2040693b
+203a691c
+6fe4c45c
+67e4c459
+58000000
+e7e18005
+6160c462
+63014463
+20600000
+44eec01b
+2040693e
+18c08c01
+efe10006
+20600000
+44ef401b
+2040693e
+18c20a00
+18c20400
+58000000
+e7e18005
+20600000
+44efc01b
+2040693b
+203a233e
+6fe1c45f
+67e1c462
+6fe1c45c
+67e1c45f
+6fe1c459
+67e1c45c
+20600000
+44f0401c
+6fe1c459
+20600000
+44f0c01c
+6fe1c45c
+20600000
+44f1401c
+6fe1c462
+20600000
+2040693b
+203a6943
+d8c04459
+efe18006
+203a6941
+18c08dfd
+20600000
+44f1c01c
+df200004
+d8c04459
+d8400000
+efe18006
+1fe17eff
+98418400
+c2006949
+6048c458
+20600000
+d8e0000c
+202024be
+d8e0000c
+202024c2
+44f2c01c
+18467cff
+20628000
+18427e00
+1fe17eff
+1fe67c0f
+24216965
+d8a08070
+98a08a00
+18a22200
+d840003e
+e0408005
+20406968
+2000001e
+1a220a00
+d840003f
+e0408005
+2020696c
+d8a080d4
+1fe0fff0
+2020695b
+6ff08081
+1fe17e7f
+67f08081
+20600000
+6ff08081
+1fe1fe80
+67f08081
+20600000
+20206bc6
+20206bcd
+6ff0806f
+793ffe07
+67f0806f
+20600000
+2434697a
+6ff0806f
+79207e07
+67f0806f
+18427c00
+2022e97d
+1a627a00
+2fcc0000
+20206ae9
+18000404
+da2001c5
+20406972
+2040697a
+da2055aa
+6fe101c5
+e8410006
+9a267c00
+20600000
+2054699a
+d8400002
+da2043cc
+2040697a
+6fe143cc
+67e101be
+20546990
+20600000
+d8400010
+da2001cb
+20406972
+2040697a
+d8c001cb
+df200010
+20407341
+204072c8
+2040735d
+202072c2
+70802300
+20406972
+2020735d
+58000000
+67e10677
+7856fc00
+2040697f
+24628000
+7836fc00
+58008000
+67f18022
+da208025
+20406976
+70802300
+6fe081bb
+c4000000
+d8400006
+20406980
+2422e9ba
+ea210006
+2040697a
+204069b1
+202069aa
+6fe10677
+df200006
+d8c001c5
+20407dd0
+6f2101c7
+1a220c00
+20407dd0
+67e10677
+20600000
+6fe081fa
+c02d69c8
+da20aa55
+6fe101c5
+9a267c00
+2422e9ca
+da2055aa
+6fe101c7
+9a267c00
+2422e9ca
+6fe101c9
+68490677
+98467c00
+2422e9ca
+7920220f
+2020697d
+7001bb00
+20600000
+1fe17eff
+1ff1fe00
+67e0c3cf
+20206a11
+6ff10143
+243a69cc
+20406a11
+6fe143cf
+207a0000
+204069d7
+2020239c
+6fe0c3cf
+207a0000
+1fe1040f
+6048c3cf
+1ff1fe00
+9842fe00
+c087ebb8
+20206b7b
+6fe081f7
+245a23c2
+6fe081f8
+207a0000
+202023c7
+44f3401c
+24758000
+6fe1415d
+207a0000
+67e101ed
+202069fb
+204069df
+6fe201eb
+207a0000
+37d98200
+6ff08136
+1fe17ef0
+684881eb
+9841fe00
+67f08136
+37d98200
+6ff08138
+1fe17e07
+684881ec
+18498400
+9841fe00
+67f08138
+37d98200
+6ff08acb
+1fe17ef0
+684881ed
+6048c15d
+9841fe00
+67f08acb
+6fe081ee
+67e0c15e
+2feffe03
+6ff08a06
+7920fe07
+67f08a06
+6fe081ee
+1fe10407
+18520400
+18438400
+6048c44f
+6ff08a02
+1fe17e1f
+9841fe00
+67f08a02
+20600000
+78547c00
+6fe0c3ce
+c4018000
+20406a67
+dfe00ff0
+9a40a400
+18007210
+da2001cb
+20406b62
+70800608
+d8c001cb
+2040734d
+d8a001cb
+20407c9b
+20207dbc
+70805025
+20406b28
+da400000
+1800720b
+da2043cc
+20406b63
+6ee2c3cc
+6d6343d1
+6fe0c3ce
+c3026a31
+70806f07
+6ff0815e
+c083ea2b
+6ff08160
+1ff27e00
+67f0806f
+20206a34
+20406adc
+20407d78
+20407d76
+66e2c3cc
+656343d1
+20406a67
+dfe00fd0
+9a40a400
+df200020
+da2001db
+20406b62
+204069ea
+204069d0
+6fe0c3ce
+c301ea49
+6848c3d0
+dfe00000
+79207e06
+79207e07
+98412200
+1a267c00
+2022eaab
+9a267c00
+2022eaab
+70003000
+da606b0c
+20406a9f
+24216aab
+6fe143cc
+203a6a56
+2040698d
+2040699d
+2436ea56
+6fe081bb
+2fe00603
+2420ea4b
+20406a64
+20406b25
+70003000
+20406a9f
+24216aab
+6fe0c3ce
+c2816a77
+20406a91
+20406cba
+20406a99
+2436ea6e
+6fe081bb
+2fe00603
+2420ea58
+20206a77
+580001ff
+dfa00000
+20600000
+da401000
+6ff08144
+c283ea6c
+6fe0c3d0
+c4038000
+da400000
+20600000
+20406cb7
+6fe0c3ce
+c2816a77
+20406a99
+2436ea77
+6fe081bb
+2fe00603
+2420ea58
+20206a87
+70003000
+20406a9f
+24216aab
+6fe0c3ce
+c280ea87
+20406c16
+200000c8
+20406c25
+20000064
+da606c62
+20406988
+2040699d
+2436ea87
+6fe081bb
+2fe00603
+2420ea78
+20406a8b
+6fe0c3ce
+c4000000
+202066f2
+d8a001cb
+20407c9b
+18007004
+2040735e
+70805021
+20600000
+6fe0c440
+6848c43f
+98467c00
+2422ecb2
+70443e04
+70443f08
+70444007
+20206cb2
+58000000
+67e101be
+da606cdd
+20406c9b
+20406988
+2020699d
+20406aa5
+6fe08030
+1fe0fe01
+1fe67c03
+67e08030
+20600000
+6fe08030
+207a0000
+6fe081f9
+207a0000
+1fe27200
+20207c98
+20406a8b
+20406972
+20407d7e
+20600000
+20406adc
+20406ab7
+6ff0806f
+c4030000
+20406ad1
+df200004
+d8c043d8
+20206b07
+6ff0806f
+c4028000
+684943d3
+18490400
+dfe04000
+98408a00
+6fe0c3d7
+20207dce
+4779403e
+6ff0806f
+c4028000
+6a2143d3
+1a292200
+dfe04000
+9a208c00
+efe08006
+67e0c3d7
+20600000
+20758000
+6ff0806f
+c4030000
+20406ad1
+2000000a
+df200004
+d8a043d8
+20206afa
+70802200
+6fe143d5
+1ff1fe00
+1fe37e00
+1ff18400
+184b0400
+79200407
+60588023
+1febfe00
+67f08024
+20600000
+6fe0c3ce
+1fe17ee0
+207a0000
+1fe37e00
+67f0806f
+58000001
+d8c043d1
+e8410006
+6059004c
+67f08020
+1fe3fe00
+c301eae3
+20600000
+6fe081bb
+1fe3fe00
+7920fe00
+2a2c000f
+20608000
+67e081bb
+20600000
+6ff0806f
+c4038000
+20206af6
+6ff08128
+afefffff
+20608000
+6ff08108
+c300eaf3
+204072c2
+20206af3
+6ff08025
+e7e08005
+c2006afa
+70802300
+20600000
+6fe140f0
+207a0000
+70802380
+70802200
+70802400
+684940f2
+184bf200
+98000c00
+efe08006
+67f08025
+c2006b07
+70802300
+20600000
+18427200
+6fe101be
+98408400
+604901be
+98002400
+1a225c00
+70800610
+20406b62
+1dc22200
+2a2c000f
+20608000
+205a7dc8
+20206ae9
+708ac801
+2000012c
+708ac805
+20000064
+708ac825
+200003e8
+708ac827
+2000012c
+20600000
+20406b19
+708ac83f
+20600000
+70804783
+708ac800
+20600000
+20406b19
+70804782
+2000000c
+70804780
+70804782
+20000096
+20600000
+1a49a400
+62510044
+70804600
+20600000
+44f4c01d
+20406b22
+20406b2f
+20406b29
+e8408011
+1a20a201
+18000e00
+a84c0000
+2020eb5a
+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
+2020eb3a
+6ff10044
+1fe0fe01
+67f10044
+18e08e01
+28e01e08
+2420eb3a
+c2006b37
+20206b26
+44f5401d
+20406b2f
+708047a2
+1a40a408
+d8e00000
+5fffffff
+68588007
+e0408011
+984c7e00
+70800620
+62510044
+2a2ffe0f
+2020eb71
+1a20a201
+20206b77
+24346b77
+18e08e01
+28e01e00
+2420eb77
+204072c2
+70800610
+1a40a408
+c2006b68
+70804782
+20600000
+6fe0c3cf
+c0056b8c
+c0026b90
+c0046b96
+c004eba0
+c0036ba0
+c0066b8c
+c006eba7
+c0076ba4
+c007eb89
+c000ebb0
+c0016bb5
+c003eb9c
+20206bb8
+dfe04a31
+d84066d9
+20206bad
+dfe037c1
+d8404a2f
+20406bad
+20206bb5
+dfe03e8f
+d84066d9
+20406bad
+dfe037c1
+d8403cc7
+20206bb2
+dfe037c1
+d8404d0d
+20406bad
+dfe05bf7
+d84066d9
+20206bb2
+dfe037c1
+d8404d0d
+20406bad
+20206bb0
+dfe037c1
+d84060c0
+20406bad
+20206bb5
+dfe03cd1
+d84066d9
+20206bad
+dfe03cd1
+d84066d9
+20406bad
+dfe02ae3
+d84030eb
+20206bb2
+18500400
+9841fe00
+202023b1
+dfe02b6e
+d84030eb
+18500400
+9841fe00
+202023b8
+dfe030f1
+d84036bf
+20206bb2
+20406bb5
+dfe02b6e
+d84030eb
+20206bad
+44f5c01d
+6fe0c3fe
+67f08080
+6fe0c3ff
+67f08081
+580001bc
+67f10084
+580001c1
+67f10086
+20206968
+79207e07
+67e101bc
+44f6401d
+70808202
+70808800
+70800602
+20206bd6
+18000401
+67e081bc
+44f6c01d
+70808201
+60590088
+70800602
+20406bd6
+6fe081c1
+20600000
+20000005
+6ff08128
+c301ebd6
+20600000
+78547c00
+1fe22400
+6fe0c437
+c1800000
+78347c00
+1a427e00
+20206be8
+6fe0c437
+c000ebe8
+c0016bee
+c001ebf6
+c0026bfa
+c002ec01
+20600000
+67e1c430
+1a227e00
+67e14433
+60494435
+70443702
+20206c16
+20406c16
+70443703
+20406c1c
+da2001bc
+70808204
+6fe1c430
+d8400020
+20206c36
+20406c16
+20406c59
+70443704
+20600000
+44f7401d
+20406c16
+70443705
+20406c1c
+20406c0e
+20406c32
+20206c09
+20406c16
+20406c1c
+58000005
+20406bcd
+c3800000
+70443700
+6fe143f0
+20207d7b
+6fe20656
+68494433
+184085fc
+e7e20002
+20600000
+68494433
+18422200
+184085fc
+efe20002
+67e20656
+68494435
+6fe1c430
+20600000
+44f7c01d
+20406c81
+20406968
+58000000
+67e201bc
+20600000
+7001bc06
+58000000
+67f10088
+58000001
+67f10082
+580001bc
+67f10084
+70800602
+20206bd6
+7001bcab
+20206c1d
+7001bcb9
+20206c1d
+67e1864e
+60490656
+62210662
+44f8401e
+20406c1c
+6fe1864e
+68490656
+6a210662
+20206c32
+18408404
+60590082
+d8400002
+1a20a3fc
+e0408011
+1ff10400
+e0408005
+1fec8400
+e0408005
+e7e08005
+1a227e00
+67f10084
+58000000
+67f10088
+70800602
+20406bd6
+20206c59
+60590088
+1ff10400
+604881bd
+1fec8400
+604881be
+67e081bf
+58000004
+67f10082
+7001bc03
+580001bc
+67f10084
+1a227e00
+67f10086
+6ff08080
+2a2c000f
+7920fe06
+67f08080
+70800602
+6ff08128
+c283ec55
+d8e00003
+20206bd6
+580007d0
+20402340
+20406c1c
+580001c1
+67f10086
+58000005
+20406bcd
+c2806c59
+20600000
+60590088
+58000004
+67f10082
+7001bc03
+580001bc
+67f10084
+1a227e00
+67f10086
+6ff08080
+2a2c000f
+7920fe06
+67f08080
+70800602
+6ff08128
+c283ec6f
+d8e00003
+20406af0
+20406bd6
+2feffe02
+20406ae9
+6fe081bd
+1ff02400
+6fe101be
+1ff0fe00
+9a41fe00
+9840fe00
+67e081bf
+1fecfe00
+1ff0fe00
+67e101bd
+20600000
+6fe0c438
+6848c43a
+98467c00
+2422ec86
+20406c92
+6fe0c438
+d8400020
+20406f1d
+6fe0c43b
+d8400021
+20406f1d
+6fe0c439
+d8400022
+20406f1d
+6fe0c43a
+d840001f
+20206f1d
+70443801
+70443903
+70443a00
+70443b02
+70443c0b
+70443d0a
+20600000
+70801001
+20600000
+70808b05
+70808c07
+70808d07
+70808e07
+70808f07
+70809005
+70809100
+20600000
+70808b0c
+70808c0d
+70808d0d
+70808e0d
+70808f0d
+7080900c
+70809100
+20600000
+20406cce
+6fe0c43f
+d840006c
+20406f1d
+6fe0c440
+d840006d
+20206f1d
+20406cd5
+20206cac
+6ff08128
+c302ecb4
+20600000
+79200028
+7043fd08
+20600000
+793f8028
+7043fd20
+20600000
+6fe0c3f4
+9a40fe00
+67e081be
+20206cc4
+6fe101be
+1ff0fe00
+67e081be
+58000003
+67f10092
+7001bda0
+7001bfa1
+20206ce3
+60490656
+20406cce
+68490656
+20406cfa
+20206cd5
+6fe0c43e
+c17f8000
+c3036cd3
+580249f0
+20402340
+6848c43e
+20206ef1
+6848c43e
+20206eed
+44f8c01e
+c5146cbd
+6fe143f4
+9a40fe00
+1ff0fe00
+67e101be
+44f9401e
+c5146cc1
+58000004
+67f10092
+7001bda0
+7001c0a1
+580001bd
+67f10094
+60590098
+62310096
+58000002
+2a2c000f
+7920fe00
+67f0808a
+70800604
+d8e00005
+20406af0
+20406cb4
+2feffe04
+20406ae9
+c5146cf5
+6fe101be
+1ff0fe00
+20206cf6
+6fe081be
+9840fe00
+1ff0fe00
+67e101be
+20600000
+6fe143f4
+9a40fe00
+67e1064e
+44f9c01e
+60490656
+6221066d
+20406d0f
+68490666
+6a21066d
+6fe1064e
+20406d30
+6fe10666
+6849066d
+98408400
+6049066d
+6849064e
+98408400
+6049064e
+6fe10656
+243a6d00
+20600000
+44fa401e
+6fe0c3fd
+1fe0ffff
+6849064e
+9841fe00
+1fe0fe01
+67e1866a
+6fe10656
+9840fe00
+6849866a
+98467e00
+24216d21
+67e10656
+6fe1866a
+6849064e
+98467e00
+67e10666
+20600000
+6fe10656
+67e10666
+58000000
+67e10656
+20600000
+1a427e00
+18408402
+60590092
+1a20a3fe
+e8418011
+18422400
+d84000a0
+e0408011
+e7e08005
+20206d3d
+1fe22400
+44fac01e
+c5146d26
+1a427e00
+18408403
+60590092
+1a20a3fd
+e8418011
+18422400
+d84000a0
+e0408011
+1ff0fe00
+e7e10005
+62310094
+58000000
+67f10098
+70808a01
+70800604
+20406cb4
+e2418011
+44fb401e
+7001c000
+58000001
+67f10092
+7001bda0
+580001bd
+67f10094
+58000000
+67f10098
+67f10096
+58000003
+67f0808a
+70800604
+20406cb4
+6ff08128
+c4030000
+200005dc
+6fe081c0
+1fe0fe01
+67e081c0
+1fe67c28
+24610000
+20206d46
+20407dbc
+20206d5d
+1ff10400
+20546d81
+1fef7e00
+1ff10400
+20546d7d
+6ff10050
+793ffe0f
+67f10050
+20600000
+67f10052
+20600000
+20406d6a
+20206d66
+20406d6f
+9846fc00
+20407d64
+1807fe00
+20600000
+6ff08043
+c3006d73
+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
+20406d89
+6ff10112
+98608600
+20206d8f
+20406d99
+20206d85
+20406d8d
+20206d9d
+60610675
+61410673
+62010671
+20600000
+68610675
+69410673
+6a010671
+20600000
+6ff1010e
+243a6da1
+20600000
+1f227e00
+207a0000
+1f20f3f8
+20416db1
+20628000
+20216da6
+1f20f208
+1f20f3fc
+20416db4
+20628000
+20216dab
+1f20f204
+20206db7
+efe40006
+e7e40003
+20600000
+efe20006
+e7e20003
+20600000
+1f227e00
+207a0000
+efe08006
+e7e08003
+c2006db9
+20600000
+1f227e00
+207a0000
+1f20f3f8
+20416dca
+20628000
+20216dbf
+1f20f208
+1f20f3fc
+20416dcd
+20628000
+20216dc4
+1f20f204
+20206dd0
+efe40003
+e7e40005
+20600000
+efe20003
+e7e20005
+20600000
+1f227e00
+207a0000
+efe08003
+e7e08005
+c2006dd2
+20600000
+70064d3d
+20207819
+44fbc01e
+6fe0c403
+207a0000
+20406e79
+2042ee7f
+20407dc2
+20406e0b
+6fe0c403
+1fe22600
+68494401
+60490033
+1a627e00
+203a6dd6
+1a60a7ff
+18422200
+efe08011
+68488031
+98467c00
+2042edf3
+20216def
+efe08011
+1fe0fe01
+e7e08011
+68490033
+18408422
+60490033
+20206de3
+58000000
+e7e08011
+6fe08032
+e7e08005
+c099ee00
+efe30006
+e7e40005
+58000000
+e7e40005
+1a420c00
+20407c91
+18007c01
+20600000
+c01b6e04
+c01bee08
+da40428c
+20206df8
+d8c0430f
+20407c91
+d8c0428c
+20206dfd
+d8c04307
+20407c91
+20206e06
+44fc401f
+20407dbe
+6fe0c403
+207a0000
+6fe14500
+c4048000
+6fe0c2cd
+c0006e26
+6fe0817d
+2fe180c0
+2020ee19
+2fe18040
+2020ee2b
+20206e20
+20366e1d
+6fe0c2c4
+c300ee26
+20206e20
+20406e26
+20740000
+20206e20
+6fe0c300
+c283ee23
+20206e29
+6fe30178
+67e44307
+20206e29
+70003235
+6fe30178
+20206e2d
+70003237
+20206e2d
+70003236
+20206e2d
+44fcc01f
+6fe14401
+e840803f
+1fe0fe01
+67e10033
+60488031
+6fe0c403
+1fe22600
+6fe10033
+1fe22200
+20406e45
+20740000
+68490033
+18408422
+60490033
+184085ff
+efe08002
+67e08031
+1a60a7ff
+2422ee35
+6fe0c403
+1fe0ffff
+67e08031
+20600000
+6fe08032
+c099ee4c
+da400032
+df200007
+20407d66
+2022fdbc
+20600000
+c01b6e4f
+c01bee6a
+20206e47
+e8408011
+98467c00
+24628000
+d8a0067f
+df200010
+20407ca3
+6fe1817b
+67e1867f
+20406e61
+6fe1069c
+1ff0fe00
+1fed0400
+efe08006
+9840fe00
+68498178
+98467c00
+2022fdbc
+20600000
+d8c0067f
+2040734f
+efe08011
+20407350
+18006c38
+18006c00
+204072bd
+d8a0068f
+20207363
+e8408011
+98467c00
+24628000
+18c22200
+18c0a608
+da404307
+df200008
+20407d66
+2022fdbc
+1a622200
+da40430f
+df200008
+20407d66
+2022fdbc
+20600000
+6fe14401
+e840803f
+1fe0fe22
+efe0803f
+98467c00
+20600000
+6fe0c403
+1fe27200
+68494401
+58000000
+e7e08002
+18408422
+1fe0fe01
+c2006e83
+20600000
+20407dc0
+20406e0b
+24346e93
+6fe10033
+1fe08c01
+d8a0430f
+20407c91
+d8a0428c
+20407c91
+70429c01
+20600000
+70429c00
+20600000
+70003234
+20206e97
+6fe0c3cf
+c0056dd8
+c0045569
+c007c8f2
+20600000
+18417e1f
+1fe37e00
+d8a00016
+98a08a00
+de0000f0
+284c0000
+20608000
+de00000f
+20600000
+44fd401f
+18467cff
+20628000
+79200407
+20406ee0
+2420eebc
+7d208407
+44fdc01f
+18467cff
+20628000
+d9000004
+284ffe07
+2020eeb3
+d9000002
+20406e9c
+284c0000
+2020eeb7
+19121000
+efe08005
+9e017e00
+9901fe00
+e7e08005
+20600000
+70488c01
+20406f0b
+d9000006
+20206eb3
+44fe401f
+18467cff
+20628000
+d9000001
+20406e9c
+284c0000
+2020eec8
+19121000
+efe08005
+9e017e00
+9901fe00
+e7e08005
+20600000
+44fec01f
+18467cff
+20628000
+20406e9c
+efe08005
+9e017e00
+e7e08005
+20600000
+20406ecd
+20206eda
+18467cff
+20628000
+2455eeac
+20406f10
+58000000
+284ffe07
+7d20fe06
+7920fe07
+20206f09
+44ff401f
+d8a0811c
+18410e07
+18497e00
+1fe17e03
+98a08a00
+efe08005
+284ffe07
+2020eeeb
+afec0000
+20600000
+afefffff
+20600000
+18467cff
+20628000
+2fcffe07
+20206ef4
+18467cff
+20628000
+2fcc0007
+58000000
+7d20fe07
+98428400
+20406f10
+5800003f
+284ffe07
+7920fe00
+20206f09
+18467cff
+2022fdc6
+20406f10
+efe08005
+c2806f03
+284c0007
+20600000
+284ffe07
+20600000
+18467cff
+20628000
+20406f10
+580000c0
+e7e08005
+20600000
+18467cff
+20628000
+20406f10
+58000000
+20206f09
+18417e3f
+1fe67c0f
+24216f16
+d8a08070
+98a08a00
+20600000
+d8a080d4
+1fe0fff0
+20206f14
+1fe104ff
+1fecfe00
+20206f1d
+c4038000
+c17f8000
+1fe17e3f
+1fe67c0f
+24216f25
+d8a08070
+98a08a00
+e0408005
+20600000
+d8a080d4
+1fe0fff0
+20206f22
+1841043f
+18467c0f
+24216f2f
+58008070
+98408c00
+efe08006
+20600000
+580080d4
+184085f0
+20206f2c
+df200010
+d8c08070
+18c20a00
+efe08006
+c00fef45
+c0106f45
+c010ef45
+c0116f45
+c011ef45
+c0166f45
+c016ef45
+c0006f45
+c2006f34
+dfe080dc
+98c67c00
+20628000
+df200008
+d8c080d4
+20206f34
+58000040
+e7e08005
+20206f3e
+58000080
+e7e08005
+20206f3e
+6fe0c88c
+203a6f4e
+20206f51
+58000010
+67f08141
+202023c4
+58000080
+20206f4f
+44ffc01f
+20758000
+708a0777
+708a08c9
+708a0b01
+6fe0c41f
+67f080cd
+7080cc03
+2040700e
+68590164
+7080cc00
+708a08c1
+df200008
+da204428
+708a0a05
+6ff08a0c
+e7e08011
+1a20a201
+6ff08a0a
+1fe0fe20
+67f08a0a
+c2006f62
+708a0700
+20600000
+6ff080cc
+79207e01
+67f080cc
+df200008
+da204428
+708a0a15
+efe08011
+67f08a09
+1a20a201
+6ff08a0a
+1fe0fe20
+67f08a0a
+c2006f71
+6ff080cc
+793ffe01
+67f080cc
+20600000
+47004020
+6fe401db
+207a0000
+67e44406
+20406b28
+20406a67
+dfe00fc0
+9a40a400
+df20000a
+da2001db
+20406b62
+20406b25
+6fe401db
+207a0000
+67e4440e
+efe10006
+e7e10005
+20600000
+4700c020
+6fe0c41a
+c000ef93
+c0016fd1
+20206f93
+6fe0c41d
+c000ef97
+c0016f9e
+20600000
+580003e8
+67e1441b
+68494412
+6fe14414
+da600e10
+2040702a
+20206fa4
+580003e8
+67e1441b
+6849440e
+6fe14410
+da6003e8
+2040702a
+68494416
+984ffe00
+68494418
+9846fc00
+20207d61
+20406f6b
+6ff08a09
+793ffe07
+67f08a09
+708a0777
+708a08c1
+708a0d61
+708a0b00
+20600000
+47014020
+6fe0c41a
+c000efb7
+c0016fee
+20206fb7
+20406fa9
+20407007
+6fe0c41f
+67f080cd
+20407011
+708a0d60
+7080cd00
+20406fa9
+6fe0c41f
+67f080cd
+708a0b50
+708a0ec0
+df00000b
+6de14420
+7080cc03
+2040700e
+68590164
+60494418
+7080cc06
+20407017
+df00000b
+65e14420
+708a0d60
+7080cd00
+7080cc00
+20600000
+6fe0c41d
+c000efd5
+c0016fdb
+20600000
+580007d0
+67e1441b
+68494408
+6fe1440c
+da600a28
+2020702a
+580003e8
+67e1441b
+68494406
+6fe1440a
+da6007d0
+98462200
+6fe14420
+98467e00
+24216fe8
+20407039
+9a467e00
+24217dcc
+20207030
+18427e00
+68494420
+98467e00
+20407039
+9a40fe00
+20207030
+6fe0c41d
+c000eff8
+20406f6b
+6ff08a09
+793ffe07
+67f08a09
+708a0777
+708a0841
+708ac614
+20206fff
+20406f6b
+6ff08a09
+793ffe07
+67f08a09
+708a0777
+708a0841
+708ac610
+708a0b00
+20407007
+6fe0c41f
+67f080cd
+20407011
+7080cd00
+708ac600
+20600000
+6fe0c41e
+1ff27e00
+68588a0b
+1841040f
+98418400
+60588a0b
+20600000
+6ff08129
+c302f00e
+20600000
+4701c020
+7080cc03
+2040700e
+68590164
+60494420
+7080cc06
+6ff08129
+c282f017
+7080cc00
+20600000
+6fe0c427
+207a0000
+6ff08a09
+79207e07
+67f08a09
+6fe0c41f
+67f080cd
+6fe14423
+67f100ce
+6fe14425
+67f100d0
+7080cc0b
+200003e8
+7080cc03
+20600000
+98462200
+6fe14420
+98467e00
+24217032
+20407039
+9a40fe00
+9a26fc00
+20207d61
+18427e00
+68494420
+98467e00
+20407039
+9a467e00
+24217dcc
+20207030
+6849441b
+984fa400
+1a627e00
+9a2ffe00
+20600000
+efe40011
+67e4064e
+6fe1064e
+68490650
+98462200
+6fe10654
+98462400
+68490652
+98467c00
+2441704e
+1a4ffe64
+9a26fc00
+20407d64
+1807fe00
+205a7054
+20600000
+6fe0c422
+79207e00
+20207059
+6fe0c422
+793ffe00
+20207059
+6848c422
+79200401
+20207059
+6848c422
+793f8401
+6048c422
+20600000
+6fe14443
+efe0803f
+207a0000
+1fe27200
+6fe14443
+1fe0fe03
+1fe22200
+e8408011
+20406ed7
+1a20a201
+c2007062
+20600000
+6fe14443
+1fe0fe03
+1fe22200
+18002400
+58000000
+67e106cf
+e8408011
+20406ee0
+47024020
+6fe106cf
+1a420e00
+f920fe00
+67e106cf
+1a20a201
+1a40a401
+6fe14443
+efe0803f
+9a42fc00
+2422f06d
+6fe106cf
+68494445
+9842fc00
+20628000
+20207dbc
+6fe14443
+efe0803f
+207a0000
+1fe27200
+6fe14443
+1fe0fe03
+1fe22200
+e8408011
+20406ea5
+1a20a201
+c2007086
+20600000
+d8e00009
+20407cf1
+247a0000
+58000020
+d8e00009
+20407ce3
+78547c00
+2040707f
+4702c020
+6fe14443
+efe0803f
+207a0000
+20407067
+24347793
+20407791
+78547c00
+6fe106cf
+67e106d6
+7006d800
+18000e00
+6fe14445
+1fe30400
+60494445
+1fe17e01
+684906d6
+18412201
+18430400
+604906d6
+9a22fc00
+2442f0b4
+6fe14443
+efe0803f
+684886d8
+18408401
+604886d8
+18420e00
+98e2fc00
+2422f09f
+6fe106cf
+67e14445
+20600000
+47034020
+6fe14443
+1fe0fe01
+efe1003f
+20207d7b
+6ff08042
+9a21fe00
+67f08042
+6ff10050
+793ffe0d
+67f10050
+20000064
+20600000
+6ff08042
+c28370c6
+c283f0c8
+58b71b00
+20600000
+596e3600
+20600000
+580080e8
+20600000
+68498650
+204070c1
+9846fc00
+20407d64
+18078400
+6fe08653
+984ffe00
+1fe6fc64
+20407d64
+1807a200
+18427e00
+9a262400
+6fe0864f
+204070de
+6fe0864e
+6848864f
+1841040f
+184d0400
+9841fe00
+20207100
+98000e00
+204070ec
+202070e1
+6ff080be
+f9207e00
+67f080be
+68588042
+284ffe07
+2040f0ea
+f93ffe00
+67f080be
+20600000
+200001e0
+20600000
+1fe17e0f
+d8a0809c
+1feffe04
+98a08a00
+1a227e00
+e7e10005
+1a427e00
+e7e10005
+20600000
+28effe06
+18e10e0f
+6ff0809b
+f920fe00
+67f0809b
+20600000
+2040710b
+1fed7e00
+18e08410
+9841fe00
+20206f19
+78347c00
+204070fb
+20207106
+78547c00
+2040710b
+20207106
+18e10e0f
+6ff0809a
+f9347e00
+67f0809a
+20600000
+1fec8e00
+18e10e0f
+20600000
+1fe20400
+4703c020
+2040711b
+58000800
+98467e00
+1fe20400
+18518400
+60588004
+20000578
+1fe20400
+1841040f
+6058800b
+20600000
+78367c00
+2020711f
+47044021
+78567c00
+6ff08043
+79367e03
+67f08043
+20600000
+67f20062
+67f10066
+60588061
+20600000
+70804204
+7041480c
+58000ea5
+67f10040
+20600000
+70804205
+20207128
+4704c021
+70020e50
+d8a0020f
+d8c042ad
+20407c91
+d8c044a6
+20407c8f
+d8c005dc
+20407c8f
+204071e9
+d8c00158
+204071e4
+204071af
+d8a006af
+204071e0
+580f4240
+1fe22200
+6fe206af
+9a26fc00
+20407d64
+18077e00
+67e205d8
+20600000
+70020e41
+d8a0020f
+20407194
+2040718f
+6fe1c2c7
+e7e18005
+20407155
+d8c00158
+20407c91
+d8c042ad
+20407c91
+204071e9
+d8c006cf
+d8a0067f
+20407c91
+202071af
+6fe24301
+e7e20005
+20407c9d
+20207c9c
+47054021
+70020e41
+d8a0020f
+2040718f
+20407194
+6fe1c2c0
+e7e18005
+20407155
+d8c042ad
+20407c91
+d8c00158
+20407c91
+204071e9
+d8c006cf
+d8a0067f
+20407c91
+204071af
+d8a006af
+202071e0
+70020e20
+d8c0061c
+d8a0020f
+20407c8f
+204071e9
+d8c005c7
+204071e4
+204071af
+d8a0067f
+20407363
+d8400001
+2040717e
+d8a0428c
+204071e0
+d8400000
+2040717e
+d8a006cf
+20207363
+4705c021
+70020e35
+58000100
+67e1020f
+2040718f
+20407194
+d8c042ad
+20407c91
+d8c00158
+20407c91
+58006c65
+e7e10005
+58006274
+e7e10005
+e0408005
+204071e9
+202071af
+6fe342dd
+e7e30005
+6fe0c2d4
+e7e08005
+20600000
+6fe30178
+e7e30005
+6fe0c2cd
+e7e08005
+20600000
+70020e41
+6fe0c4e7
+67e0820f
+d8c044a6
+20407c8f
+d8c005dc
+20407c8f
+204071e9
+d8c00158
+204071e4
+202071af
+70020e41
+6fe0c4e7
+67e0820f
+d8c005dc
+20407c8f
+d8c044a6
+20407c8f
+204071e9
+d8c042ad
+204071e4
+202071af
+47064021
+204071fe
+6fe0820e
+1fe20400
+1fe0fe0f
+1ff1fe00
+1fe22400
+203a71c1
+18417e0f
+243a71c4
+da60068f
+dfe0020f
+1fe0fff0
+9840a200
+d8a006bf
+df200004
+20407cab
+202071cf
+da400001
+da200000
+202071c5
+1841220f
+dfe0020f
+9840fe00
+9a260c00
+d8a006af
+20407224
+da60069f
+da2006af
+d8a006bf
+df200004
+20407cab
+2040735d
+204072c8
+d8c0020f
+1a40a5ff
+1a427e00
+203a71d8
+2040734f
+204072c2
+202071d2
+d8a006af
+20407363
+d8c006bf
+2040734f
+204072c8
+d8c006af
+2040734f
+202072c2
+18a22200
+20407363
+df200010
+20207cb3
+d8a0067f
+20407c91
+df200010
+da20067f
+20207cb3
+6fe0820e
+1fe27200
+da20020f
+20207cb3
+efe08011
+1fe3fe00
+2a6ffe00
+7920fe00
+2feffe08
+7920a600
+e7e08011
+1a20a3ff
+c20071ed
+20600000
+da20068f
+1a20a20f
+18007210
+18002600
+202071ed
+da20069f
+202071f8
+d8c0067f
+2040734d
+18007008
+2040735e
+2040735d
+204072bf
+d8a0068f
+20407363
+4706c021
+6fe0868f
+2feffe07
+2420f20f
+204071f7
+da60068f
+d8a0068f
+20407219
+20207210
+204071f7
+d8c0068f
+d8a0069f
+20407c91
+6fe0869f
+2feffe07
+2420f1fc
+204071fc
+da60069f
+d8a0069f
+df200003
+d8400000
+20407220
+1a60a604
+c200721a
+d8408700
+18500400
+efe20013
+9842fe00
+e7e20005
+20600000
+47074021
+df200010
+dfe00000
+9a267c00
+2022f22f
+20217232
+e8408006
+e0408005
+1fe0fe01
+c2007227
+20600000
+d8400080
+e0408005
+2020722c
+d8400000
+20207230
+184d0400
+18500400
+98418400
+20600000
+4707c021
+204072f4
+d8a0428c
+20207363
+d8a042ad
+2034f23f
+d8a00158
+18c22200
+20407c91
+20407309
+d8c0429d
+2020737c
+da200158
+2034f247
+da2042ad
+1a220a00
+20407ded
+20207309
+d8c042e7
+2040734f
+d8c0428c
+20407350
+18006c38
+18006c00
+204072bd
+d8a001a8
+20207363
+18007008
+18007e49
+2020725a
+18007e49
+20207259
+18007e01
+18007000
+184d5e00
+9de1de00
+1f00f001
+184cde00
+1df15e00
+6fe14475
+1ff07e00
+9de1de00
+1f00f001
+ede20006
+1f00f001
+efe10006
+1a30de00
+1df05e00
+9de1de00
+1f00f001
+20600000
+1a608c01
+efe08006
+98002200
+20407256
+204072bf
+18007000
+efe08013
+1fe17e03
+1ff05e00
+79205e08
+20407358
+204072c2
+1a227200
+1a608c02
+20407337
+20407341
+204072c2
+1f227e00
+203a727f
+2020727a
+1800700c
+1de27e00
+67e20150
+20600000
+1a20a201
+20407258
+1a620c00
+2040734b
+204072c5
+2040736a
+1a60a610
+1a40a5f0
+20217283
+20600000
+204072b2
+47084022
+70806c00
+70806d01
+6fe0c16b
+1fe17e03
+67f0806e
+6fe1066d
+67f10068
+5800416d
+67f1006a
+6a20c16c
+684ac467
+20407253
+70800a02
+70800a03
+6fe0c16c
+67f100c0
+1fe0fe04
+67e0c16c
+6fe2c467
+1fe0fe01
+793ffe27
+67e2c467
+20600000
+6ff1011a
+98467c00
+20628000
+247a0000
+202072a6
+6ff08108
+c303233e
+5800416d
+98408a00
+df00000c
+e5e20005
+202072bb
+4708c022
+1800700c
+2040735e
+2040735d
+58000000
+67f100c0
+20600000
+6ff08108
+c30372b9
+70800a00
+20600000
+243bf2bd
+20600000
+18006c30
+18006c00
+202072bd
+18006c32
+18006c02
+202072bd
+18006c34
+18006c04
+202072bd
+18006c01
+18006c00
+20600000
+6ff08155
+c30172cb
+20600000
+67f100d2
+18006cc0
+18006c80
+202072cb
+18007000
+1a420c00
+18007204
+204072e1
+18006d80
+18006c80
+204072bd
+1800700c
+1a620a00
+18007204
+1de27e00
+e7e20005
+1f00f001
+c20072dc
+20600000
+efe10006
+e8410006
+18500400
+9841de00
+1f00f001
+c20072e1
+20600000
+18007008
+1a220c00
+18007204
+204072e1
+18007000
+1a420c00
+18007204
+204072e1
+18006d82
+18006c82
+204072bd
+202072d9
+18007000
+6fe20158
+98005e00
+1f00f001
+efe20006
+98005e00
+1f00f001
+6fe242ad
+98005e00
+1f00f001
+efe20006
+98005e00
+1f00f001
+2040735e
+1f00f1fc
+6fe24301
+1fe25e00
+1f00f004
+18006c38
+18006c08
+202072bd
+47094022
+6fe342dd
+684b0178
+2034f30f
+6fe30178
+684b42dd
+18007008
+18425e00
+1f00f001
+184f5e00
+1ff07e00
+9de1de00
+1f00f001
+1fef5e00
+1f00f001
+18005e00
+18007e00
+6fe0c2cd
+6848c390
+2434f31f
+6fe0c2d4
+6848c2cd
+67e0c2bd
+6048c2be
+18007000
+da4042bd
+18007204
+efe20011
+e8420012
+9842de00
+1f00f001
+1a20a204
+1a40a404
+c2007324
+2040735e
+1f00f1fc
+6fe24301
+1fe25e00
+1f00f004
+18006c38
+18006c0c
+204072bd
+2040735d
+18006c3a
+18006c08
+202072bd
+2f200600
+20608000
+18c27e00
+9f208a00
+18007e00
+e7e08005
+1f20f201
+2f200600
+20608000
+2020733c
+18007000
+1f227e00
+203a7346
+efe20006
+1f20f3fc
+98005e00
+1f00f001
+2f001e04
+20608000
+20207342
+18007008
+20207350
+18007004
+20207350
+18007000
+18007204
+efe20006
+98005e00
+1f00f001
+c2007351
+20600000
+d8c001a8
+2020734d
+18007204
+20207360
+18007000
+18007210
+2020735f
+18007000
+18007204
+18005e00
+1f00f001
+c200735f
+20600000
+1800700c
+18007204
+1de27e00
+e7e20005
+1f00f001
+c2007365
+20600000
+1800700c
+1a620a00
+1a40f201
+1f267c0f
+20217370
+18007210
+1de27e00
+1f267c03
+20217378
+e7e20005
+1f20f3fc
+20628000
+1f00f001
+20207370
+e7e08005
+1fecfe00
+c2007378
+20600000
+1800700c
+18007204
+efe20006
+9de67c00
+24628000
+1f00f001
+c200737e
+20207dba
+6ff08050
+793ffe00
+67f08050
+20600000
+6ff08050
+79207e00
+67f08050
+20600000
+d8a004af
+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
+d8a00547
+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
+202074ea
+4709c022
+6fe0c483
+207a0000
+6fe0c485
+c1018000
+6fe0c484
+c00074ea
+20600000
+70448400
+20600000
+470a4022
+580005dc
+d8a005d7
+98a67200
+20407ca3
+580044e8
+d8a044e6
+98a67200
+20207ca3
+20407464
+da2005fc
+d8a0048f
+2040770a
+da2005dc
+d8a0044f
+2040770a
+da20044f
+da4005dc
+d8a0044f
+20407672
+da200567
+da4005dc
+d8a0046f
+20407672
+da20046f
+da40044f
+d8a0044f
+2040770e
+da20042f
+da40044f
+d8a0042f
+2040770e
+df200020
+da20048f
+da40042f
+20207d66
+da2005a7
+d8a0042f
+2040770a
+da200587
+d8a0044f
+2040770a
+da20044f
+da400587
+d8a0044f
+20407672
+da200567
+da400587
+d8a0046f
+20407672
+da20046f
+da40044f
+d8a0044f
+2040770e
+da20042f
+da40044f
+d8a0042f
+20207727
+18e08fff
+24610000
+180a7e00
+e7e10005
+2020747a
+18e08fff
+2421748a
+efe20011
+1fe20400
+efe20012
+9842fe00
+2422f489
+1a20a204
+1a40a404
+2020747f
+20207dc6
+20207dc8
+1fe10e07
+1fe97e00
+98c08c00
+efe08006
+afec0000
+20600000
+efe40006
+247a0000
+efe40006
+247a0000
+efe40006
+20600000
+efe20011
+98000400
+efe20012
+98467c00
+24628000
+1a20a204
+1a40a404
+c2007497
+20600000
+18007206
+1a20a214
+1a40a414
+efe20012
+98000400
+efe20011
+98467e00
+24610000
+247a0000
+1a20a3fc
+1a40a5fc
+c20074a3
+20600000
+18007206
+18002600
+efe20011
+98000400
+efe20012
+9840fe00
+9a60fe00
+e7e20005
+2feffe20
+7920a600
+1a20a204
+1a40a404
+c20074af
+20600000
+18007206
+18002600
+efe20012
+98000400
+efe20011
+98467e00
+9a667e00
+e7e20005
+2feffe20
+7920a600
+1a20a204
+1a40a404
+c20074bd
+20600000
+18007206
+1a20a214
+18002600
+efe20011
+2feffe00
+7920a601
+1fe37e00
+2a6ffe00
+7920fe1f
+e7e20011
+1a20a3fc
+1a632600
+c20074cc
+20600000
+18007206
+18002600
+efe20011
+2feffe1f
+7920a601
+1fe3fe00
+2a6ffe00
+7920fe00
+e7e20011
+1a20a204
+1a632600
+c20074d9
+20600000
+18007206
+efe20006
+98005e00
+1f00f001
+c20074e5
+20600000
+470ac022
+6fe0c483
+243a750b
+70448400
+70448500
+20600000
+6fe0c483
+207a0000
+6fe0c485
+c1018000
+20407540
+202074f0
+d8a04486
+38001abd
+3805b34f
+38099b8a
+380e6562
+e7e48005
+380340b7
+38041efa
+3808aff6
+380cfd41
+e7e48005
+3803d210
+38066cf8
+380b874c
+380f157c
+e7e48005
+3802d4a3
+3807d27d
+38080003
+e7e28005
+20600000
+6fe0c485
+c1800000
+6fe0c484
+c1800000
+204073e3
+d8a04486
+18000e0f
+2040747a
+180a7e00
+1fe37e00
+e7e10005
+6fe0c482
+245a74f6
+d8a0038f
+d8c04486
+20407c8f
+d8a0026f
+d8c00587
+20407c83
+d8a002af
+20407c9f
+7002af01
+20407558
+70448403
+20600000
+d8a044a6
+d8c002cf
+20407c83
+70448503
+70448400
+20600000
+6fe085d7
+c1800000
+6fe0c484
+c1800000
+d8a0038f
+d8c04486
+20407c8f
+d8a0026f
+d8c005dc
+20407c83
+d8a002af
+20407c9f
+7002af01
+20407558
+70448404
+20600000
+d8a0061c
+d8c002cf
+20407c8f
+7005d703
+70448400
+20600000
+6fe0c483
+207a0000
+6fe0c484
+207a0000
+1fe0fe80
+67e0c484
+c3838000
+6fe1020c
+203a754a
+20207550
+470b4022
+20407565
+6fe0c484
+c001f524
+c002753a
+20600000
+20407577
+6fe1020c
+1fe0ffff
+67e1020c
+d8c0038f
+2040748b
+20608000
+202075c8
+470bc022
+58000100
+67e1020c
+6fe1020c
+207a0000
+1fe0ffff
+67e1020c
+d8c0038f
+2040748b
+2020f55b
+d8c0026f
+d8a0032f
+20207c82
+da20036f
+d8a0046f
+20407634
+da20046f
+d8a0040f
+2040770a
+da20032f
+da40040f
+d8a002cf
+20407672
+da20046f
+da40040f
+d8a0044f
+20407672
+da20034f
+da40044f
+d8a002ef
+20207672
+da20036f
+d8a0044f
+2040770a
+da20044f
+d8a0046f
+2040770a
+da200567
+da40046f
+d8a0046f
+20407672
+da20032f
+d8a0044f
+2040770a
+d8c0044f
+d8a0040f
+20407c8f
+da20040f
+20407711
+da20044f
+da40040f
+d8a0044f
+2040770e
+da20044f
+da40046f
+d8a0044f
+2040770e
+d8c0032f
+d8a0040f
+20407c8f
+da20034f
+d8a0046f
+2040770a
+da20040f
+20407711
+da20040f
+20407711
+da20040f
+da40046f
+d8a0040f
+20407672
+da20046f
+d8a0042f
+2040770a
+da20042f
+20407711
+da20042f
+20407711
+da20042f
+20407711
+d8c0034f
+d8a0046f
+20407c8f
+da20046f
+20407711
+da20046f
+da40036f
+d8a0036f
+20407672
+da20044f
+d8a0046f
+2040770a
+da20046f
+da40040f
+d8a0046f
+20407727
+da20046f
+da40040f
+d8a0032f
+20407727
+da20040f
+da40032f
+d8a0046f
+20407727
+da20046f
+da40044f
+d8a0046f
+20407672
+da20046f
+da40042f
+d8a0034f
+20207727
+da2002af
+d8a0048f
+2040770a
+da20032f
+da40048f
+d8a0042f
+20407672
+da2002af
+da40048f
+d8a0048f
+20407672
+da20034f
+da40048f
+d8a0040f
+20407672
+da20036f
+d8a0048f
+2040770a
+da20026f
+da40048f
+d8a0044f
+20407672
+da20036f
+da40048f
+d8a0048f
+20407672
+da20028f
+da40048f
+d8a0046f
+20407672
+da40042f
+da20044f
+d8a0048f
+20407727
+da20042f
+da40044f
+d8a0042f
+2040770e
+da40040f
+da20046f
+d8a0044f
+20407727
+da20040f
+da40046f
+d8a0040f
+2040770e
+da20040f
+da40048f
+d8a0040f
+20407672
+da20036f
+da4002af
+d8a0046f
+20407672
+da20046f
+da40048f
+d8a0036f
+20407672
+da20048f
+d8a0048f
+2040770a
+da20048f
+da40042f
+d8a0046f
+20407672
+da20048f
+da40040f
+d8a0040f
+20407672
+da20044f
+d8a0032f
+2040770a
+da20032f
+da40046f
+d8a0032f
+20407727
+d8c0032f
+d8a0048f
+20407c8f
+da20048f
+20407711
+da20046f
+da40048f
+d8a0046f
+20407727
+da20046f
+da40044f
+d8a0044f
+20407672
+da20044f
+da40040f
+d8a0034f
+20407727
+da20034f
+da400547
+d8a0034f
+18002600
+6fe0834f
+2feffe00
+2040f70c
+1a626000
+da20034f
+2040773c
+6fe0836e
+2e0ffe00
+7920fe07
+67e0836e
+20600000
+18a21600
+d8a0042f
+20407c9f
+18007e00
+67e2044f
+70042f01
+d8a003af
+20407ca1
+d8c00547
+d8a003ef
+20407c8f
+1a220c00
+d8a0040f
+20407c8f
+d8c0040f
+20407746
+203a766b
+da20040f
+da40042f
+20407749
+da2003ef
+da4003af
+20407749
+da20040f
+da4003ef
+20407742
+2021765d
+da2003ef
+da40040f
+1a220a00
+2040773a
+da20042f
+da4003af
+1a420a00
+2040770c
+efe08011
+9a60a600
+efe08012
+9a60fe00
+e7e08012
+20207642
+da20040f
+da4003ef
+1a220a00
+2040773a
+da2003af
+da40042f
+1a420a00
+2040770c
+efe08011
+9a60a600
+efe08012
+9a60fe00
+e7e08012
+20207642
+da2003af
+19620a00
+2040769b
+da200547
+19622400
+19620a00
+20207727
+18a21600
+18007000
+d8a003af
+20407ca1
+d8a0068f
+20407ca1
+1a220c00
+70068f00
+58000000
+20407704
+1a420c00
+20407708
+18000e00
+d8a003af
+d840068f
+18e22400
+1a4bfe00
+9840a400
+18000400
+18002600
+efe20005
+98002200
+efe20012
+1a627000
+9deffe00
+9a20fe00
+9840fe00
+e7e20005
+1fef0400
+1a60a601
+2a61fe08
+2420f686
+18427e00
+e7e20005
+18a08be0
+18e08e01
+28e1fe08
+2420f680
+da2003af
+19620a00
+2020769b
+470c4023
+18a21600
+1a226000
+da4003ef
+1a420a00
+20407c9d
+e7e40005
+1a208c2c
+20407c8b
+20407c85
+1a422200
+20407711
+da4003ef
+1e022200
+19620a00
+2040770e
+da4003ef
+1a420a00
+20407c9d
+e7e40005
+1e008c30
+20407c91
+20407c9d
+1a422200
+20407711
+da4003ef
+19622200
+1a220a00
+2040770e
+da4003ef
+1a420a00
+1e008c20
+20407c85
+20407c9d
+e7e40005
+1e008c38
+20407c8b
+19622200
+1a220a00
+2040770e
+da4003ef
+1a420a00
+1e008c24
+20407c85
+1e008c34
+20407c85
+1e008c34
+20407c86
+1e008c20
+20407c86
+19622200
+1a220a00
+2040770e
+da4003ef
+1a420a00
+1e008c2c
+20407c85
+20407c9d
+e7e40005
+1e008c20
+20407c86
+1e008c28
+20407c86
+19622200
+1a220a00
+20407727
+da4003ef
+1a420a00
+1e008c30
+20407c8b
+20407c8b
+18007e00
+e7e40005
+1e008c24
+20407c86
+1e008c2c
+20407c86
+19622200
+1a220a00
+20407727
+da4003ef
+1a420a00
+1e008c34
+20407c85
+1e008c20
+20407c85
+20407c9d
+1e008c30
+20407c86
+19622200
+1a220a00
+20407727
+da4003ef
+1a420a00
+1e008c38
+20407c8b
+20407c9d
+1e008c24
+20407c85
+20407c9d
+1e008c34
+20407c86
+19622200
+1a220a00
+20207727
+18007220
+d8a0068f
+98a08a00
+20207cdc
+18007208
+202074e5
+1a222400
+20207672
+18007208
+202074ae
+2040770c
+18a22200
+20207712
+2040773f
+2a6ffe00
+2020f71b
+da400547
+1a222600
+1a20a3e0
+20407742
+24610000
+1a622200
+20207723
+20407723
+1a222600
+1a20a3e0
+da400547
+20407742
+24610000
+1a622200
+20207723
+1a20a3e0
+da400547
+1a220a00
+2020773a
+2040773a
+2020f731
+18a0a3e0
+da400547
+20407742
+24610000
+da400547
+18a0a3e0
+1a220a00
+2020773a
+18a0a3e0
+da400547
+1a220a00
+2040770c
+20608000
+18a0a3e0
+da400547
+1a220a00
+2020770c
+18007208
+202074bc
+18007208
+1a20a21c
+202074cb
+18007208
+18002600
+202074d9
+18007208
+1a20a21c
+1a40a41c
+202074a3
+efe40006
+247a0000
+20207491
+1a226000
+1e022200
+efe08011
+2feffe00
+20608000
+2040773c
+efe08012
+2fec0000
+2020f759
+da200547
+1a420a00
+2040770c
+efe08012
+9a60fe00
+e7e08012
+1a40a5e0
+1a40a220
+18007209
+204074cb
+2020774a
+20758000
+204023ba
+20407764
+20407809
+2020779a
+204077bd
+202077f8
+6fe0c503
+c17f8000
+98000400
+20406ef1
+6848c503
+20406eed
+20000064
+6848c503
+20406ed7
+2020776e
+470cc023
+6fe0c503
+c17f8000
+1fe20400
+20406ee0
+2420f780
+2040778a
+6fe14500
+79207e0c
+67e14500
+6fe0c4fb
+c1000000
+7044fb00
+6fe0c502
+67e0c4fa
+20407791
+70064d2c
+20207819
+6fe14500
+793ffe0c
+67e14500
+6fe0c4fb
+c1008000
+7044fb01
+7044fa00
+20407793
+70064d2d
+20207819
+6fe0c4fa
+207a0000
+1fe0ffff
+67e0c4fa
+247a0000
+70064d10
+20207819
+d8e00007
+202024be
+d8e00007
+202024c2
+470d4023
+6fe14506
+1a2fa40b
+9a40a400
+20600000
+6fe0c505
+207a0000
+1fe27200
+6fe14506
+1fe22400
+1a40a602
+e8408013
+204077a5
+1a40a40b
+c200779f
+20600000
+6fe0c504
+203a6eed
+20206ef1
+20407795
+58000002
+e7e08012
+204077f2
+202077c9
+20407795
+58000003
+e7e08012
+204077f2
+202077c6
+20407795
+58000001
+e7e08012
+580000ff
+e7e08005
+202077c6
+20407795
+df20000b
+1a620c00
+1a420a00
+20207cce
+6fe0c505
+207a0000
+da200000
+204077cc
+1a20a201
+6fe0c505
+9a267c00
+20628000
+202077c0
+1a40a602
+e8408013
+20206eed
+1a40a602
+e8408013
+20206ef1
+1a208e0b
+20407cf1
+247a0000
+20407795
+efe08012
+c00177c9
+c001f7c6
+c00077c6
+c002f7e0
+204077c9
+1a40a607
+20407c4b
+efe10013
+20407d7b
+20407c57
+58000005
+e7e08012
+1a40a603
+efe10013
+202077f0
+204077c6
+1a40a609
+20407c4b
+efe10013
+20407d7b
+20407c57
+1a40a601
+efe08013
+c07ff7ec
+1fe0ffff
+e7e08013
+203a77ad
+58000004
+e7e08012
+1a40a605
+efe10013
+1a208e0b
+20207ce3
+58000000
+202077f0
+58001000
+1ff07e00
+9a40a400
+20600000
+470dc023
+da200000
+684a44fc
+1c422400
+1a427e00
+98467c00
+244177f4
+1a427e00
+184084a0
+184084a0
+98467c00
+2421780c
+1a20a201
+1a217e0f
+243a77ff
+da200000
+20407812
+1c427e00
+67e244fc
+20600000
+1a227e00
+207a0000
+18408560
+18408560
+793f841c
+604a44fc
+20203749
+7044e801
+6fe0c4e9
+243a7814
+20600000
+7044e800
+20600000
+470e4023
+6fe0c3cf
+c007ca1d
+20407813
+1a227e00
+67e20662
+da2044ea
+20407d8d
+6fe20662
+1fe22200
+20207817
+470ec023
+20407813
+1a227e00
+67e20662
+da2044f2
+20407d8d
+6fe20662
+1fe22200
+20207817
+58000000
+67e444f2
+67e444ea
+20600000
+470f4023
+6fe0c114
+247a0000
+da2044f2
+20407da5
+207a0000
+70064c00
+2040783c
+6fe0864c
+203a7831
+20600000
+20407813
+da2044f2
+20407d99
+1fe20400
+20407817
+470fc023
+18427e00
+207a0000
+c006f860
+c0077866
+c007f86b
+c0087871
+c009f87b
+c00a787d
+c00af87f
+c00b7889
+c00bf88c
+c00c788e
+c00cf891
+67e0864d
+6fe0864d
+c584f859
+47104024
+6fe0864d
+c008f876
+c00df899
+c009787a
+c00fee95
+20600000
+67e0864d
+2040205d
+2022f85e
+20402062
+24628000
+70064c01
+20207824
+70438c01
+70438f00
+6fe14500
+79207e0b
+67e14500
+20600000
+6fe14500
+793ffe0b
+67e14500
+70438c00
+20600000
+70438c01
+70438f01
+6fe14500
+79207e0b
+67e14500
+20600000
+6fe14500
+793ffe0b
+67e14500
+70438c00
+20600000
+58000014
+67e10196
+67e142f7
+202030a3
+20202e71
+da200000
+202077ad
+da200000
+202077a8
+da200000
+20407795
+efe08012
+c000f886
+c0027886
+c002f886
+202077b2
+efe08006
+c17f8000
+202077b2
+70434701
+7041141b
+20600000
+70434701
+20600000
+70434700
+70411400
+20600000
+6fe143de
+20407d7b
+6fe0c503
+c07ff897
+1fe20400
+20406ed7
+2040782d
+202023ff
+20202eb3
+6fe0c500
+c4060000
+20600000
+6fe14404
+1fe08a02
+58000000
+e7e18005
+20600000
+4710c024
+20407dbe
+204078ee
+207a0000
+6fe14404
+1fe0a402
+e8408012
+18408401
+e0408012
+e840803f
+18427200
+1fe0a404
+efe08012
+984ffe00
+98c08a00
+1a220c00
+20407cdc
+204078f2
+1fe0ffff
+e8408012
+18408401
+98410400
+e0408012
+20207dbc
+47114024
+20407dbe
+204078ea
+207a0000
+6fe14404
+1fe0a402
+e8408012
+184085ff
+e0408012
+e840803f
+18427200
+1fe0a403
+efe08012
+984ffe00
+98c08c00
+18c08c01
+1a220a00
+202078b2
+20407dbe
+204078ea
+207a0000
+6fe14404
+e840803f
+18427200
+1fe0a403
+efe08012
+984ffe00
+98c08c00
+18c08c01
+18c22400
+1a220a00
+20407cdc
+20207dbc
+20407dbe
+204078ea
+207a0000
+6fe14404
+e840803f
+18427200
+1fe0a403
+efe08012
+984ffe00
+98c08c00
+18c08a02
+1a220c00
+1f20f3ff
+20407cdc
+20207dbc
+6fe14404
+1fe08c02
+efe08006
+20600000
+204078f2
+e8408006
+98467e00
+20600000
+6fe14404
+1fe08c01
+efe08006
+20600000
+4711c024
+6ff08c22
+2feffe03
+2040f905
+6ff10c22
+67f10c22
+67e106e7
+20407963
+20407994
+20407b8a
+20407bd3
+2020795b
+47124024
+20407384
+20407922
+708c0000
+20002710
+708c1200
+6ff10050
+793ffe0a
+67f10050
+708c1021
+708c119d
+708c003c
+58000741
+67f10c02
+67f10c06
+58000781
+67f10c04
+708c1280
+708c0100
+708c22ff
+5800093d
+d8a0084b
+98a67200
+20207ca3
+6848884a
+20206ed7
+6fe088ec
+207a0000
+6848884a
+20406ee0
+2020f905
+20600000
+70084902
+58000000
+67e08784
+67e10843
+1fe0fe01
+67e10845
+1fe0fe01
+67e10847
+d8a007d8
+58030404
+e7e18005
+58000409
+e7e10005
+d8a007dd
+38015906
+380610d2
+38090494
+380c0001
+e7e48005
+d8a007fb
+3801570f
+38055c9a
+380a56c6
+380dcdcd
+e7e48005
+38014420
+38065d99
+380a5636
+380c0001
+e7e38005
+d8a00819
+3801620a
+38040c8c
+380b0333
+380cc0c0
+e7e48005
+38003130
+e7e10005
+580092aa
+67e10785
+58009307
+67e10787
+d8c093fb
+d8a00789
+df200013
+20407cdc
+d8c0940e
+d8a0079c
+df20003c
+20407cdc
+6fe10837
+20207d7b
+6fe08839
+207a0000
+67e087be
+67e087d7
+20600000
+d8e00001
+20407cf1
+247a0000
+6fe088ed
+247a0000
+6fe088ec
+245a7c3a
+20600000
+6fe086e7
+c2817966
+20600000
+2040796b
+20407cf0
+58000280
+d8e00001
+20207ce3
+6fe088de
+c0817970
+7008ed00
+7008ee00
+20600000
+6fe088f0
+207a0000
+7008f000
+7008de02
+7008ec01
+20600000
+6fe086e7
+c28079a1
+20600000
+69510c02
+6a110c04
+68710c06
+efe10003
+1fec8400
+18518400
+d8c00fff
+98c17200
+672106ea
+20600000
+6ff08c25
+c3830000
+20407979
+efe08003
+e7e08005
+c2007986
+60710c06
+20600000
+d8a0093d
+20407986
+d8400941
+60590c0e
+6fe0893e
+1fe0fe06
+e7e08002
+708c1808
+20600000
+4712c024
+6fe086e7
+c4028000
+20407979
+2841fe0d
+2020f98b
+d8a0084b
+20407986
+6fe086ea
+c0007976
+c000f9a8
+1fe67c07
+20610000
+47134024
+793f8023
+6fe0884b
+1fe17e80
+c04079ac
+c00079b4
+2020233e
+6fe0884b
+c3838000
+20407b5e
+202079db
+6fe0884b
+1ff1fe00
+1fe37e00
+1fe17e03
+c00079bc
+c000f9c2
+c00179c7
+2020233e
+6fe0884b
+1ff1fe00
+1fe37e00
+1fe17e03
+c00079c8
+c000f9d0
+c00179d5
+2020233e
+6fe0884c
+c00479dd
+c00379f3
+c0057a38
+c0007a4a
+202079d6
+6fe0884c
+c0017a7f
+c000fa83
+c001fa95
+202079d6
+202079d6
+6fe0884c
+c000fa9f
+c001facf
+c002fafb
+c004fb14
+c005fb2f
+c003f9d6
+202079d6
+6fe0884c
+c0057b40
+c004fb52
+c005fb70
+202079d6
+202079d6
+4713c024
+6ff08c19
+79207e00
+67f08c19
+202079db
+708c1b01
+20600000
+6fe0884b
+c0c079d6
+6fe0884f
+c08079d6
+6fe08850
+c08079d6
+6fe08851
+c080f9d6
+6fe08852
+c08079d6
+6fe0884d
+c08079d6
+6fe0884e
+c08079d6
+6fe08849
+c00279ef
+c001f9f1
+202079d6
+da400001
+20207a64
+da400001
+20207a62
+47144025
+6fe0884e
+c000fa06
+c0017a1f
+c001fa22
+c010f9fb
+c0117a30
+202079d6
+7008db00
+6fe0884f
+c0007a00
+c000fa03
+202079d6
+6a4087af
+da2007af
+20207b7f
+6a4087c8
+da2007c8
+20207b7f
+6fe088ef
+245a7a17
+58000789
+68488789
+67e108e6
+604888e8
+6fe08851
+98467c00
+24217a15
+6fe088e8
+98002400
+6fe108e6
+1fe0fe01
+98002200
+20207b7f
+6fe08851
+20207a10
+6ff08c01
+245a7a1b
+7008ef00
+20600000
+6ff08c01
+79207e07
+67f08c01
+20600000
+5800079c
+6848879c
+20207a0a
+6fe0884d
+1fe67c03
+242179d6
+6fe0884d
+da2007d8
+c0007b7d
+79200023
+da2007dd
+c000fb7d
+da2007fb
+c0017b7d
+da200819
+c001fb7d
+20600000
+6fe1084f
+c000fa34
+6a210785
+20207b7d
+7008ec01
+7008de01
+6a210787
+20207b7d
+6fe08849
+c08279d6
+6fe0884b
+c0c0f9d6
+6fe0884d
+c08079d6
+6fe0884e
+c08079d6
+6fe08851
+c080f9d6
+6fe08852
+c08079d6
+6fe0884f
+c08079d6
+6fe08850
+c08079d6
+da400001
+20207a62
+6fe08849
+c00179d6
+6fe0884d
+c08079d6
+6fe0884e
+c08079d6
+6fe08851
+c08179d6
+6fe08852
+c08079d6
+6fe08850
+c08079d6
+6fe0884b
+c0407a5d
+c040fa68
+c0417a6c
+202079d6
+7008e101
+20207a66
+6fe0884f
+c08079d6
+da400002
+6fe088df
+c000fa5b
+da200843
+20207b7f
+da200845
+20207b7f
+da200847
+20207b7f
+6fe08849
+c08279d6
+da400002
+20207a62
+6fe08849
+c08279d6
+6fe0884f
+c040fa79
+c0417a7b
+c041fa7d
+1fe17e7f
+c0007a75
+202079d6
+6fe088e2
+da400002
+c000fa64
+20207a62
+6fe088e3
+20207a76
+6fe088e4
+20207a76
+6fe088e5
+20207a76
+7008d901
+da2008da
+da400001
+20207b7f
+4714c025
+6fe1084d
+d84001ba
+98467c00
+2422f9d6
+6fe088d6
+243a7a92
+70089300
+6fe08851
+98002400
+da200893
+20407b7f
+d8a00893
+df200040
+20207ca5
+7008d600
+70089301
+20207a8b
+6fe08851
+c080f9d6
+7008db01
+da400001
+6fe088dd
+c0007a9d
+c000fa9e
+20207a62
+20207a64
+20207a62
+6fe08849
+c08279d6
+6fe08851
+c08079d6
+6fe08852
+c08079d6
+6fe0884e
+c08079d6
+6fe08850
+c08079d6
+6fe0884b
+c0007aae
+c000fabc
+c0017abd
+202079d6
+47154025
+6fe0884d
+c080f9d6
+6ff08c00
+793ffe07
+67f08c00
+7008df00
+7008e001
+6fe088e1
+203a79db
+7008e100
+7008e000
+7008de02
+202079db
+202079d6
+6fe0884d
+c08079d6
+6fe0884f
+c040fac8
+c0417acb
+c041facd
+1fe17e7f
+c0007ac6
+202079d6
+7008e200
+202079db
+7008e300
+7008f001
+202079db
+7008e400
+20207ac9
+7008e500
+20207ac9
+6fe08851
+c08079d6
+6fe08852
+c08079d6
+6fe0884b
+c0007ad8
+c000fae7
+c0017ae8
+202079d6
+4715c025
+6fe0884d
+c080f9d6
+20403dd6
+6ff08c00
+79207e07
+67f08c00
+7008df01
+7008de03
+7008d700
+204079db
+20407cf0
+58001388
+d8e0000f
+20207ce3
+202079d6
+6fe0884d
+c08079d6
+6fe0884e
+c08079d6
+6fe0884f
+c040faf5
+c0417af7
+c041faf9
+1fe17e7f
+c0007af3
+202079d6
+7008e201
+202079db
+7008e301
+202079db
+7008e401
+202079db
+7008e501
+202079db
+6fe0884b
+c08079d6
+6fe0884f
+c08079d6
+6fe08850
+c08079d6
+6fe08851
+c08079d6
+6fe08852
+c08079d6
+6fe0884e
+c08079d6
+6fe0884d
+1fe17e80
+c08079d6
+6fe0884d
+c0807b12
+70084902
+6fe0884d
+67f08c01
+204079db
+7008ef01
+20600000
+70084903
+20207b0d
+6fe08849
+c00179d6
+6fe0884b
+c08079d6
+6fe0884f
+c08079d6
+6fe08850
+c08079d6
+6fe08851
+c08079d6
+6fe08852
+c08079d6
+6fe0884e
+c08079d6
+6fe0884d
+1fe67c01
+242179d6
+6fe08849
+c001fb29
+c0027b29
+202079d6
+6fe0884d
+c0007b2d
+70084904
+202079db
+70084903
+202079db
+6fe08849
+c08279d6
+6fe0884b
+c080f9d6
+6fe0884d
+c08079d6
+6fe0884e
+c08079d6
+6fe08851
+c08079d6
+6fe08852
+c08079d6
+6fe0884f
+c08079d6
+6fe08850
+c08079d6
+202079db
+47164025
+7008d901
+6fe0884e
+67e088da
+6fe0884f
+1fe67c01
+2042fb4e
+6fe088de
+c08279db
+7008de02
+204079db
+20007530
+20007530
+20600000
+7008ec01
+7008e000
+7008de04
+20600000
+4716c025
+20003a98
+d8a00853
+20407983
+7008d501
+20407b62
+6fe1084d
+67e108d3
+708c1b02
+6fe088d7
+207a0000
+6fe08853
+67e0c638
+7008d700
+70462803
+20600000
+6fe1084d
+d8400200
+98467c00
+24628000
+6fe1084f
+d8400000
+98467c00
+24628000
+6fe10851
+d8400001
+98467c00
+24628000
+7008d701
+20600000
+6fe08851
+c08079d6
+6fe0884d
+c0007b76
+c000fb79
+202079d6
+7008dc00
+7008dd01
+202079db
+7008d801
+7008dc01
+7008dd00
+202079db
+ea408011
+1a20a201
+47174025
+7920000e
+c591fb84
+1a40a401
+1a43a400
+62210782
+62408784
+20207b8a
+20600000
+d8e00000
+20207bcb
+4717c025
+6ff08c25
+c3800000
+6fe08784
+207a0000
+1fe27200
+98000400
+6fe10851
+1fe67c40
+20217b98
+1f267c40
+20217b9c
+18007240
+20207b9c
+9f267c00
+20217b9c
+98007200
+67e08784
+6fe08784
+9f267e00
+67e08784
+1f20ffff
+67e086ec
+c591fbae
+1fe37e00
+1f20ffff
+67e086ec
+c5877bae
+793f800e
+e0408005
+58000003
+e7e08005
+1f20f3ff
+1f227e00
+2422fbae
+1f20f201
+6fe10782
+1fe20c00
+efe08006
+e7e08005
+c591fbb5
+58000000
+e7e08005
+c2007bb0
+18c27e00
+67e10782
+580006ec
+67f10c08
+d8e00000
+20407bcb
+6fe08784
+247a0000
+708c1b02
+6fe088de
+c1808000
+7008de02
+20600000
+da20072d
+d8e00001
+62310c0a
+1f20ffff
+e7e08011
+efe08006
+e7e08005
+c2007bc8
+58000000
+f9207e00
+67f08c18
+20600000
+d8e00002
+da200737
+62310c0c
+20207bc6
+47184026
+6fe088eb
+207a0000
+6ff08c25
+1fe17e0f
+243a7c32
+6fe088ec
+203a7bfe
+6fe088de
+c001fc42
+c0817bfe
+6fe088e0
+243a7bfe
+20407be2
+20207bee
+6ff08c25
+c3808000
+6fe088eb
+c4008000
+6fe088eb
+793ffe01
+67e088eb
+4718c026
+6fe088e9
+207a0000
+c0087c20
+2020233e
+6ff08c25
+c3810000
+6fe088eb
+c4010000
+6fe088eb
+793ffe02
+67e088eb
+47194026
+6fe088ea
+207a0000
+c0107c01
+c010fc1c
+c0117c26
+c011fc2a
+c0127c2e
+2020233e
+d8a008f1
+df200040
+20207ca5
+6fe088d9
+684888db
+98417e00
+203a7c18
+684888dc
+9840fe00
+c000fc09
+20207c18
+7008ea00
+6fe088f2
+c0017c19
+c001fc19
+6fe088f2
+67e088f1
+6fe088f3
+e7e08005
+6fe088f5
+e7e08005
+6fe088f7
+e7e08005
+df200004
+d8c008f1
+20207bcf
+7008ea00
+df200008
+d8c008f1
+20207bcf
+7008ea00
+df200003
+d8c00921
+20207bcf
+6fe0c3cf
+c007ca10
+7008e900
+df200008
+d8c00901
+20207bc3
+7008ea00
+df200002
+d8c00929
+20207bcf
+7008ea00
+df200004
+d8c00921
+20207bcf
+7008ea00
+df20000f
+d8c00911
+20207bcf
+6fe088de
+c0017c35
+20600000
+6ff08c00
+79207e07
+67f08c00
+7008ee01
+20600000
+6fe088de
+c1018000
+c0017c3e
+20600000
+6fe088ee
+207a0000
+7008ed01
+20207c45
+d8e0000f
+20407cf1
+247a0000
+6ff08c00
+c4038000
+708c00fc
+20007530
+708c003c
+20600000
+60a1066f
+604c0656
+6162065e
+20407c53
+60c1066d
+67210679
+60e10677
+20600000
+62220662
+62420666
+6261866a
+20600000
+4719c026
+6fe1066f
+98000a00
+684c0656
+6962065e
+20407c62
+6f210679
+68e10677
+6fe1066d
+98000c00
+20600000
+6a220662
+6a420666
+6a61866a
+20600000
+6fe1066f
+1fe20a00
+20600000
+6fe1066d
+1fe20c00
+20600000
+18a27e00
+67e1066f
+20600000
+18c27e00
+67e1066d
+20600000
+18a27e00
+67e1066f
+18c27e00
+67e1066d
+20600000
+6fe1066f
+1fe20a00
+6fe1066d
+1fe20c00
+20600000
+98462200
+20610000
+da200100
+9a20fe00
+98462200
+20600000
+20407c8f
+20407c8f
+20207c8f
+20407c8b
+efe08006
+e7e08005
+efe18006
+e7e18005
+20600000
+efe40006
+e7e40005
+20600000
+20407c91
+20407c8b
+20407c8b
+20407c8b
+20207c8b
+1fe0ffff
+20000026
+243a7c93
+20600000
+df20000a
+20002ee0
+c2007c98
+20600000
+20407c9c
+20407c9d
+18007204
+20207ca5
+18007220
+20207ca5
+18007240
+20207ca5
+1f227e00
+207a0000
+18007e00
+e7e00005
+20600000
+df200020
+d8a0067f
+20207ca3
+efe20013
+e8420011
+9842fe00
+e7e20005
+1a20a204
+1a60a604
+c2007cab
+20600000
+471a4026
+1f227e00
+1fe67c01
+20610000
+9a20a400
+1a40a5ff
+1f237200
+e8408011
+efe08012
+e7e08011
+e0408012
+1a40a5ff
+1a20a201
+c2007cba
+20600000
+1fef0400
+20407cc8
+18508400
+1ff07e00
+9841fe00
+20600000
+1ff10c00
+18d08c00
+1ff0fe00
+1ff07e00
+98c1fe00
+20600000
+471ac026
+1f227e00
+207a0000
+1f20f3f8
+20417c8b
+20628000
+20217cd1
+1f20f208
+1f20f3fc
+20417c86
+20628000
+20217cd6
+1f20f204
+20207cdc
+1f227e00
+207a0000
+efe08006
+e7e08005
+c2007cde
+20600000
+58000000
+67e1064e
+471b4026
+20407cf1
+6849064e
+d8a040f4
+18e3fe00
+98a08a00
+e0410005
+20600000
+d9600800
+19701600
+9960fe00
+20600000
+d8e00000
+471bc026
+684a4095
+1c437e00
+67e24095
+98467c00
+24417cec
+98461600
+19620400
+d8c040f4
+18c20a00
+df200010
+efe10006
+98467e00
+20217d00
+18007e00
+e7e10005
+c2007cfc
+d8c040f4
+18e3fe00
+98c08c00
+efe10006
+20600000
+98408400
+18427200
+6fe10044
+9f267e00
+20610000
+1fe67e00
+18510400
+18408401
+18500400
+98418400
+20600000
+20407d14
+20207d21
+78547c00
+98467e00
+20217d19
+78347c00
+1fe67e00
+c4078000
+1fe22800
+d8410000
+6fe10044
+98467e00
+9a80fe00
+793ffe40
+20600000
+68490044
+98000c00
+1ff17e00
+984ffe00
+98c0fe00
+20600000
+1fed7e00
+1ff27e00
+6849c0bd
+9846fc00
+20407d64
+18078400
+20600000
+68490044
+9846fc00
+20407d61
+1ff07e00
+18070400
+98418400
+20600000
+d8400000
+18422800
+efe08003
+20407d41
+1a820400
+20407d72
+da40000a
+9a4ffe00
+9840fe00
+1fe20400
+c2007d36
+20600000
+d840003a
+98467c00
+24217d4a
+d8400061
+98467c00
+20217d4d
+d8400037
+98467e00
+20600000
+d8400030
+98467e00
+20600000
+d8400057
+98467e00
+20600000
+1f267c00
+20628000
+1fe37e00
+c2007d52
+20600000
+18007e01
+1f267c00
+20628000
+1fe3fe00
+c2007d58
+20600000
+58000000
+1f222200
+e8410006
+9840fe00
+c2007d5d
+9a26fc00
+20407d64
+1807fe00
+20600000
+207a8000
+20207d64
+efe08011
+e8408012
+98467c00
+24628000
+1a20a201
+1a40a401
+c2007d66
+20207dba
+98467c00
+24610000
+18427e00
+20600000
+9840fe00
+98460400
+98467e00
+20600000
+d8a00000
+20207d79
+d8a04000
+df201000
+20207ca5
+207a0000
+1fe27a00
+2040711d
+70820301
+20600000
+67f10205
+6ff08203
+79207e04
+67f08203
+20600000
+67f10207
+6ff08203
+79207e06
+67f08203
+20600000
+67f10205
+70820330
+20600000
+471c4027
+e8440011
+18417eff
+243a7d93
+184cfe00
+e7e40011
+1a20a207
+efe08011
+243a233e
+6fe0864d
+e7e08011
+20600000
+471cc027
+df200008
+efe40011
+207a0000
+efe08011
+243a7da2
+1a20a201
+c2007d9d
+2020233e
+d8400000
+e0408011
+20600000
+efe40011
+20600000
+efe08011
+20600000
+efe10011
+20600000
+d8400000
+6fe08006
+c2007dac
+18408401
+c2007dac
+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
+e7e08005
+20600000
+1f267c00
+20628000
+e8408006
+9840fe00
+c2007dd2
+20600000
+1f227e00
+207a0000
+18c27e00
+9f20fe00
+1fe0ffff
+1fe20c00
+efe08006
+18c08dfe
+e7e08005
+c2007ddc
+20600000
+1ff07e00
+1feb7e00
+20600000
+1fed7e00
+20207de2
+471d4027
+58000000
+79207e15
+67e40016
+58000000
+e7e20005
+20600000
+df200010
+180a7e00
+e7e08005
+c2007dee
+20600000
+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
+0c05f52a
+01a10109
+00150585
+01750125
+830a1895
+09ea0901
+09e209e9
+09b509b6
+0ab709cd
+8a0a0223
+01940a01
+0a022a0a
+210a0192
+02240a02
+0a03070a
+700901ae
+30096f09
+250ab809
+02260a02
+8102270a
+0105c002
+01a10609
+01750285
+07050895
+e729e019
+01250015
+01950281
+03810875
+01750595
+01190805
+02910529
+03750195
+06950391
+00150875
+0500ff26
+2a001907
+008100ff
+090105c0
+8501a102
+a1010901
+19090500
+15082901
+75012500
+81089501
+09010502
+16310930
+ff26f801
+95107507
+09068102
+25811538
+9508757f
+05068101
+02380a0c
+06810195
+0105c0c0
+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
+010541c0
+01a10609
+08950175
+e0190705
+0015e729
+02810125
+08750195
+05950381
+08050175
+05290119
+01950291
+03910375
+08750695
+ff260015
+19070500
+00ff2a00
+f3c00081
+02090105
+018501a1
+00a10109
+01190905
+00150529
+05950125
+02810175
+03750195
+01050181
+31093009
+26F80116
+107507FF
+06810295
+81153809
+08757f25
+06810195
+380a0c05
+81019502
+05c0c006
+a1800901
+05028501
+29811901
+25001588
+75089501
+c0068101
+09ff0006
+8501a10e
+751f95BA
+00ff2608
+01090015
+BA850291
+08751f95
+1500ff26
+81010900
+0c05C002
+01a10109
+00150585
+01750125
+830a1895
+09ea0901
+09e209e9
+09b509b6
+0ab709cd
+8a0a0223
+01940a01
+0a022a0a
+210a0192
+02240a02
+0a03070a
+700901ae
+30096f09
+250ab809
+02260a02
+8102270a
+0c05c002
+01a10109
+00150385
+19038026
+03802a00
+01951075
+12c00081
+02000112
+40000000
+10203151
+02010002
+093b0100
+02003b02
+32a00001
+00000409
+01010301
+00210900
+22010002
+0507001a
+00400381
+01040902
+01030100
+21090002
+01000200
+0700f322
+40038205
+00010200
+02280002
+00021801
+01280302
+02000320
+00012a05
+02020004
+00000229
+00020005
+18000228
+03020006
+07020128
+2a000200
+69684313
+61657370
+454c422d
+20202020
+20202020
+03020008
+09020128
+2a010200
+0a03c102
+28030200
+000b0201
+082a0402
+00060006
+012c0064
+0002000c
+180a0228
+0302000d
+0e020128
+2a500200
+248a0207
+00018266
+0002000f
+18120228
+03020010
+11060128
+2a4e0200
+00120101
+01280302
+02001312
+00022a4d
+02001400
+00022902
+02001500
+02022908
+02001601
+12012803
+4d020017
+0000022a
+02020018
+00000229
+08020019
+01030229
+0302001a
+1b020128
+2a4b0200
+090c051b
+8501a101
+09e90902
+09e209ea
+25011530
+9510750c
+c0008101
+0302001c
+1d020128
+2a4a0200
+00011104
+02001e01
+04012803
+4c02001f
+2000012a
+28000200
+21180f02
+28030200
+00221201
+012a1902
+02000063
+00020013
+01001302
+00130200
+13020004
+02000600
+00050013
+00001302
+00170200
+17022800
+01000000
+28000200
+02180102
+28030200
+00032001
+012a0502
+02000400
+00022902
+02000500
+00022800
+02000618
+02012803
+00020007
+4355112a
+204e4f48
+20203130
+20202020
+08202020
+28030200
+00090201
+022a0102
+000a00c8
+01280302
+02000b02
+06082a04
+64000600
+0c012c00
+28000200
+0d180a02
+28030200
+000e0201
+072a5002
+66248a02
+0f000182
+28000200
+10fff002
+28030200
+00111201
+0efff102
+00000000
+00000000
+00000000
+00120000
+02290202
+00130000
+01280302
+02001408
+000efff2
+00000000
+00000000
+00000000
+98000000
+91428a2f
+cf713744
+a5b5c0fb
+5be9b5db
+f13956c2
+a459f111
+d5923f82
+98ab1c5e
+01d807aa
+be12835b
+c3243185
+74550c7d
+fe72be5d
+a780deb1
+749bdc06
+c1c19bf1
+86e49b69
+c6efbe47
+cc0fc19d
+6f240ca1
+aa2de92c
+dc4a7484
+da5cb0a9
+5276f988
+6d983e51
+c8a831c6
+c7b00327
+f3bf597f
+47c6e00b
+51d5a791
+6706ca63
+85142929
+3827b70a
+fc2e1b21
+134d2c6d
+5453380d
+bb650a73
+2e766a0a
+8581c2c9
+a192722c
+4ba2bfe8
+70a81a66
+a3c24b8b
+19c76c51
+24d192e8
+85d69906
+70f40e35
+16106aa0
+0819a4c1
+4c1e376c
+b5274877
+b334b0bc
+4a391c0c
+4f4ed8aa
+f35b9cca
+ee682e6f
+6f748f82
+1478a563
+0884c878
+fa8cc702
+eb90beff
+f7a4506c
+f2bef9a3
+00c67178
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+0000ca6d
\ No newline at end of file
Index: GK308_keyboard_only_24g/output/sched.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/sched.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/output/sched.rom	(working copy)
@@ -0,0 +1,896 @@
+mem_patch00:
+00   #mem_patch00
+00   #mem_patch01
+00   #mem_patch02
+04   #mem_patch03
+00   #mem_patch04
+01   #mem_patch05
+00   #mem_patch06
+40   #mem_patch07
+19   #mem_patch08
+12   #mem_patch09
+50   #mem_patch0a
+12   #mem_patch0b
+00   #mem_patch0c
+04   #mem_patch0d
+00   #mem_patch0e
+10   #mem_patch0f
+04   #mem_patch10
+00   #mem_patch11
+00   #mem_patch12
+00   #mem_patch13
+08   #mem_patch14
+00   #mem_patch15
+00   #mem_patch16
+00   #mem_patch17
+00   #mem_patch18
+80   #mem_patch19
+00   #mem_patch1a
+00   #mem_patch1b
+00   #mem_patch1c
+06   #mem_patch1d
+00   #mem_patch1e
+04   #mem_patch1f
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+00   #mem_patch23
+00   #mem_patch24
+00   #mem_patch25
+00   #mem_patch26
+00   #mem_patch27
+00   #mem_patch28
+00   #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
+20   #mem_patch35
+00   #mem_patch36
+20   #mem_patch37
+04   #mem_patch38
+00   #mem_patch39
+00   #mem_patch3a
+00   #mem_patch3b
+00   #mem_patch3c
+00   #mem_patch3d
+08   #mem_patch3e
+00   #mem_patch3f
+
+
+mem_keyboard_flag:
+#byte 0
+#bit0 KEYBOARD_24G_PAIRING_FLAG
+#bit1 KEYBOARD_STORE_MEMORY_FLAG
+#bit2 KEYBOARD_LOW_VOLTAGE_FLAG
+#bit3 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit4 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+04
+
+#byte 1
+#bit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+#bit1 KEYBOARD_ENABLE_16M
+#bit2 KEYBOARD_DISABLE_ICE
+#bit3 KEYBOARD_ENABLE_ADC
+#bit4 KEYBOARD_ENABLE_FLASH
+#bit5 KEYBOARD_ENABLE_2K_EEPROM
+#bit6 KEYBOARD_ENABLE_EEPROM
+#bit7 KEYBOARD_ENABLE_OTP
+89
+
+#byte 2
+#bit0 KEYBOARD_ENABLE_24G
+#bit1 KEYBOARD_ENABLE_AUTO_24G_PARING
+#bit2 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit4 KEYBOARD_ENABLE_24G_2M_PHY
+#bit5 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+0d
+
+#byte 3
+#bit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+#bit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit2 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+00
+
+#byte 4
+#bit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+#bit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+#bit2 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+#bit3 KEYBOARD_ENABLE_MOUSE
+#bit4 KEYBOARD_ENABLE_USB
+00
+
+#byte 5
+#bit0 KEYBOARD_ENABLE_030_POWER_LED
+#bit1 KEYBOARD_ENABLE_LOW_LED
+#bit2 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+#bit3 KEYBOARD_ENABLE_BACKLIGHT
+06
+
+#byte 6
+#bit0 KEYBOARD_ENABLE_FN_ARROW
+#bit1 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+#bit2 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+#bit3 KEYBOARD_ENABLE_FN_OS_SWITCH
+#bit4 KEYBOARD_ENABLE_FN_LOCK
+1f
+
+#byte 7
+#bit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+#bit2 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+#bit3 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+#bit4 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+00
+
+
+mem_device_option:0f
+mem_power_on_flag:01
+mem_keyboard_recognition_code:35 0e
+
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+
+# #comb press time
+# mem_keyboard_bt_combin_press_timeout:01
+
+#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_keyboard_usb_vid_pid:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+# mem_keyboard_usb_checkin_gpio:ff
+
+#2.4g
+mem_24g_lap: 03 11 36 55 51 61
+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_device_24g_pair_tx_power:94 #-15dBm
+
+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_device_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:10
+mem_lpm_mult_init:10
+
+
+#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_keyboard_hid_fix_handle:05 01
+
+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:
+08 00 #min interval
+08 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03
+
+mem_keyboard_le_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+mem_keyboard_blob_response_consumer_customize:
+09 b8 		#bit4  MAC EJECT
+0a 25 02 		#bit5  AC Forward
+0a 26 02 		#bit6  AC Stop
+0a 24 02 		#bit6  AC Back
+
+81 02
+c0
+05 01
+09 06
+a1 01
+85 02
+
+#adc
+
+#adc config
+#hook adc,3V 1v8 , 2v1 ,娉ㄦ剰灏忕搴忚缃瀛楄妭鍒濆
+mem_keyboard_vdd_full_vol: ac 01 
+mem_keyboard_vdd_empty_vol:B4 00 
+mem_keyboard_vdd_low_vol:  D2 00 
+mem_keyboard_power_type:01 #00 1v5; 01 3v0; 02 4v2
+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
+
+#led
+mem_keyboard_device_poweron_timer_init:1e
+
+#system
+mem_device_24g_power_on_fast_conn_timer:02 00	#1s
+mem_device_24g_reconn_timeout_init:00 #10s
+mem_device_24g_pair_timeout_init:58 02  #1min
+mem_device_fast_direct_timeout:00 #10s
+mem_device_direct_timeout:00  #10s
+mem_device_discovery_timeout:58 02  #1min
+mem_device_no_data_timeout:64 00   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+mem_keyboard_pair_led_blink_count:05	#500ms
+mem_keyboard_low_volatage_led_blink_count:02		#200ms
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+
+mem_device_flag:00	#00--24g 01--ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+
+mem_device_number:01
+mem_keyboard_switch_device_to_g24:00 7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:00 7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:00 7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:00 7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:00 7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_num_caps_scoll_led_on_timer:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:01					#                 00                                    00                                 01
+# mem_config_select_device_button_gpio:ff			#              00~16			               ff					ff
+mem_keyboard_commbination_key_bt:ff ff			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:29 0e		#		 not care				   not care			     Esc+K
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:ff
+mem_eeprom_sda_gpio:ff
+mem_eeprom_base:01 00
+mem_flash_base:00 50 00
+mem_otp_read_retention_max_size:20 03
+
+
+#姝uf鐩存帴浼犲叆gpio_out_active bsp-
+#temp [5:0]=GPIO number, 0-39, [7]=0, low active. set gpio to inactive state
+#PP High active 
+mem_keyboard_caps_led_gpio:81
+mem_keyboard_num_led_gpio:80
+mem_keyboard_power_led_gpio:80
+mem_keyboard_low_voltage_alarm_gpio:80
+mem_keyboard_scroll_led_gpio:ff
+mem_keyboard_24g_led_gpio:80
+mem_keyboard_bt1_led_gpio:ff
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+#mem_rf_debug_rx_gpio:96
+#mem_rf_debug_tx_gpio:89
+
+
+
+
+mem_mcu_stb_gpio:07
+mem_mcu_clk_gpio:06
+
+mem_mcu_rstb_gpio:ff
+
+mem_keyboard_pb_button_gpio:ff
+mem_device_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c3 c4 c5 c6 c7 80 81 82 83 84 85
+
+#gpio00~16 锛坔ex16 =22?锛
+mem_key_row_gpio:
+10		#r0
+11 		#r1
+12		#r2
+13 		#r3
+14 		#r4
+15 		#r5
+0c 		#r6
+09		#r7
+
+
+# 瀵逛簬鎺ュ湪master涓婄殑gpio,濉啓浣庝簲浣嶇殑gpio鍙00~16   锛沠f =unused
+# 瀵逛簬鎺ュ湪extmcu涓婄殑portA:8x,portB:cx  杩欓噷鐨刾ort 鏄痚xt FX0010鐨刬o鍙
+# so yeach case : atx001
+mem_key_col_gpio:
+0D		#c0 //pa3
+03		#c1 //pb2
+04		#c2
+c6		#c3  pb6
+c5		#c4  pb5
+c4		#c5  pb4
+c3		#c6
+
+80		#c7  pa0
+0a		#c8
+0b		#c9
+85		#c10
+83		#c11c
+82		#c12
+81		#c13
+c7		#c14
+84		#c15
+
+0e		#c16
+0f		#c17
+ff		#c18
+ff		#c19
+
+
+mem_keyboard_keyvalue_map:
+#r0 ~ r7
+48 66 00 00 e4 00 e0 3E 				#c0  $3:娆у厓绗﹀彿
+14 2b 04 29 1d 00 35 1e 				#c1
+1a 39 16 64 1b 00 3a 1f 					#c2
+08 3c 07 3d 06 00 3b 20 				#c3
+15 17 09 0a 19 05 22 21 				#c4
+18 1c 0d 0b 10 11 23 24					#c5
+0c 30 0e 3f 36 87 2e 25 					#c6
+12 40 0f 00 37 65 41 26 					#c7
+13 2f 33 34 32 38 2d 27 					#c8
+47 B1 7f e2 00 e6 B0 46					#c9
+89 2A 00 44 28 45 42 43				#c10
+5f 5c 59 2c 53 51 4c 66 					#c11
+60 5d 5a 62 54 4f 49 00 					#c12
+61 5e 5b 63 55 56 4b 4e 				#c13
+57 6B 58 52 00 50 4a 4d					#c14
+00 e1 e5 00 00 00 00 00 				#c15
+00 e3 00 00 00 00 00 00					#c16
+00 00 e7 00 00 00 00 00					#c17
+00 00 00 00 00 00 00 00					#c18
+
+
+
+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: e8			#f1
+mem_keyboard_fn_f2:	e9			#f2
+mem_keyboard_fn_f3:	ea			#f3
+mem_keyboard_fn_f4:	eb			#f4
+mem_keyboard_fn_f5:	ec			#f5
+mem_keyboard_fn_f6:	ed			#f6
+mem_keyboard_fn_f7:	ee			#f7
+mem_keyboard_fn_f8:	ef			#f8
+mem_keyboard_fn_f9:	f0			#f9
+mem_keyboard_fn_f10:	f1			#f10
+mem_keyboard_fn_f11:	f2			#f11
+mem_keyboard_fn_f12:	45			#f12
+mem_keyboard_fn_del:	4c			#delete
+mem_keyboard_fn_lock_keyvalue:29
+
+mem_keyboard_le_table:
+#att table
+# 01 00 02 00 28  # Primary Service Declaration
+# 02 00 18        # Generic Access Service (UUID: 0x1800)
+# 02 00 02 03 28  # Characteristic Declaration
+# 01 0a           # Properties: Read, Write
+# 03 00 02 00 2a  # Device Name Characteristic (UUID: 0x2A00)
+# 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  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 05 00 02 01 2a  # Appearance Characteristic (UUID: 0x2A01)
+# 02 c1 03        # Value: 0x03C2 (Generic Keyboard)
+
+# 06 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 07 00 02 04 2a  # Peripheral Preferred Connection Parameters (UUID: 0x2A04)
+# 08 06 00 06 00  # Minimum Connection Interval: 0x0006 (7.5ms)
+# 64 00           # Maximum Connection Interval: 0x0064 (100ms)
+# 2c 01           # Slave Latency: 0x012C (300)
+
+# 08 00 02 00 28  # Primary Service Declaration
+# 02 01 18        # Generic Attribute Service (UUID: 0x1801)
+# 09 00 02 03 28  # Characteristic Declaration
+# 01 20           # Properties: Indicate
+# 0a 00 02 05 2a 01 00 # Service Changed Characteristic (UUID: 0x2A05)
+# 0b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+
+# 0c 00 02 00 28  # Primary Service Declaration
+# 02 0a 18        # Battery Service (UUID: 0x180F)
+# 0d 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 0e 00 02 29 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 06 59 69 43 68 69 70  # Value: Battery Level Data
+
+# 0f 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 10 00 02 50 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 07 02 e8 04 21 70 01 00  # Value: HID Information Data
+
+# 11 00 02 00 28  # Primary Service Declaration
+# 02 12 18        # HID Service (UUID: 0x1812)
+# 12 00 02 03 28  # Characteristic Declaration
+# 01 06           # Properties: Read, Write Without Response
+# 13 00 02 4e 2a  # Report Map Characteristic (UUID: 0x2A4B)
+# 01 01           # Value: Report Map Data
+
+# 14 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 15 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+# 16 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 17 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 01        # Value: Report ID and Type
+
+# 18 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 19 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 07 00 00 00 00 00 00 00  # Value: Report Data
+# 1a 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 1b 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 01 01        # Value: Report ID and Type
+
+# 1c 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 1d 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 1e 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 1f 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 05 01        # Value: Report ID and Type
+
+# 20 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 21 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 22 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 23 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 04 01        # Value: Report ID and Type
+
+# 24 00 02 03 28  # Characteristic Declaration
+# 01 0e           # Properties: Read, Write
+# 25 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 26 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 02        # Value: Report ID and Type
+
+# 27 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 28 00 02 4b 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# f5 05 0c 09 01 a1 01 85 05  # Value: HID Control Point Data
+# 15 00 25 01 75 01 95 18
+# 0a 83 01 09 ea 09 e9 09 e2
+# 09 b6 09 b5 09 cd 09 b7
+# 0a 23 02 0a 8a 01 0a 94 01
+# 0a 2a 02 0a 92 01 0a 21 02
+# 0a 24 02 0a 07 03 0a ae 01
+# 09 70 09 6f 09 30 09 b8
+# 0a 25 02 0a 26 02 0a 27 02
+# 81 02 c0
+
+# 05 01 09 06 a1 01 85 02  # HID Keyboard Input Report
+# 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 2a ff 00 81 00
+# c0
+
+# 05 01 09 02 a1 01 85 01  # HID Mouse Input Report
+# 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 80 a1 01 85 04  # HID System Control Input Report
+# 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  # Characteristic Declaration
+# 01 1a           # Properties: Read, Notify
+# 2a 00 02 33 2a  # Report Characteristic (UUID: 0x2A33)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+
+# 2b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 01 00        # Value: 0x0001 (Notifications Enabled)
+
+# 2c 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 2d 00 02 4a 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 04 01 01 00 03  # Value: HID Information Data
+
+# 2e 00 02 00 28  # Primary Service Declaration
+# 02 0f 18        # Battery Service (UUID: 0x180F)
+
+# 2f 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 30 00 02 19 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 01 64           # Value: Battery Level (100%)
+
+# 31 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 32 00 02 03 28  # Characteristic Declaration
+# 01 04           # Properties: Write Without Response
+# 33 00 02 4c 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# 00 00 00        # Value: HID Control Point Data
+
+#se map
+af 00              # Feature
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 06        # Usage (Keyboard)
+A1 01        # Collection (Application)
+85 02        #   Report ID (2)
+75 01        #   Report Size (1)
+95 08        #   Report Count (8)
+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)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 08        #   Report Size (8)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 05        #   Report Count (5)
+75 01        #   Report Size (1)
+05 08        #   Usage Page (LEDs)
+19 01        #   Usage Minimum (Num Lock)
+29 05        #   Usage Maximum (Kana)
+91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 01        #   Report Count (1)
+75 03        #   Report Size (3)
+91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 06        #   Report Count (6)
+75 08        #   Report Size (8)
+15 00        #   Logical Minimum (0)
+26 FF 00  #   Logical Maximum (255)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 00        #   Usage Minimum (0x00)
+29 FF        #   Usage Maximum (0xFF)
+81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+05 0C        # Usage Page (Consumer)
+09 01        # Usage (Consumer Control)
+A1 01        # Collection (Application)
+85 03        #   Report ID (3)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 18        #   Report Count (24)
+0A 83 01  #   Usage (AL Consumer Control Configuration)
+09 EA        #   Usage (Volume Decrement)
+09 E9        #   Usage (Volume Increment)
+09 E2        #   Usage (Mute)
+09 B6        #   Usage (Scan Previous Track)
+09 B5        #   Usage (Scan Next Track)
+09 CD        #   Usage (Play/Pause)
+09 B7        #   Usage (Stop)
+0A 23 02  #   Usage (AC Home)
+0A 8A 01  #   Usage (AL Email Reader)
+0A 94 01  #   Usage (AL Local Machine Browser)
+0A 2A 02  #   Usage (AC Bookmarks)
+0A 92 01  #   Usage (AL Calculator)
+0A 21 02  #   Usage (AC Search)
+0A 24 02  #   Usage (AC Back)
+0A 07 03  #   Usage (0x0307)
+0A AE 01  #   Usage (AL Keyboard Layout)
+09 70        #   Usage (0x70)
+09 6F        #   Usage (0x6F)
+09 30        #   Usage (Power)
+09 B8        #   Usage (Eject)
+0A 25 02  #   Usage (AC Forward)
+0A 26 02  #   Usage (AC Stop)
+0A 27 02  #   Usage (AC Refresh)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#af 00             # Feature
+
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 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)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF  #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 80        # Usage (Sys Control)
+A1 01        # Collection (Application)
+85 04        #   Report ID (4)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 03        #   Report Count (3)
+19 81        #   Usage Minimum (Sys Power Down)
+29 83        #   Usage Maximum (Sys Wake Up)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 05        #   Report Size (5)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#sb map
+# af 00             # Feature
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 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)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF        #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# 05 0C        # Usage Page (Consumer)
+# 09 01        # Usage (Consumer Control)
+# A1 01        # Collection (Application)
+# 85 03        #   Report ID (3)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 18        #   Report Count (24)
+# 0A 83 01  #   Usage (AL Consumer Control Configuration)
+# 09 EA        #   Usage (Volume Decrement)
+# 09 E9        #   Usage (Volume Increment)
+# 09 E2        #   Usage (Mute)
+# 09 B6        #   Usage (Scan Previous Track)
+# 09 B5        #   Usage (Scan Next Track)
+# 09 CD        #   Usage (Play/Pause)
+# 09 B7        #   Usage (Stop)
+# 0A 23 02  #   Usage (AC Home)
+# 0A 8A 01  #   Usage (AL Email Reader)
+# 0A 94 01  #   Usage (AL Local Machine Browser)
+# 0A 2A 02  #   Usage (AC Bookmarks)
+# 0A 92 01  #   Usage (AL Calculator)
+# 0A 21 02  #   Usage (AC Search)
+# 0A 24 02  #   Usage (AC Back)
+# 0A 07 03  #   Usage (0x0307)
+# 0A AE 01  #   Usage (AL Keyboard Layout)
+# 09 70        #   Usage (0x70)
+# 09 6F        #   Usage (0x6F)
+# 09 30        #   Usage (Power)
+# 09 B8        #   Usage (Eject)
+# 0A 25 02  #   Usage (AC Forward)
+# 0A 26 02  #   Usage (AC Stop)
+# 0A 27 02  #   Usage (AC Refresh)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# # 05 0C        # Usage Page (Consumer)
+# # 09 01        # Usage (Consumer Control)
+# # A1 01        # Collection (Application)
+# # 85 03        #   Report ID (3)
+# # 19 00        #   Usage Minimum (Unassigned)
+# # 2A FF 03  #   Usage Maximum (0x03FF)
+# # 15 00        #   Logical Minimum (0)
+# # 26 FF 03  #   Logical Maximum (1023)
+# # 95 01        #   Report Count (1)
+# # 75 10        #   Report Size (16)
+# # 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# # C0              # End Collection
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 80        # Usage (Sys Control)
+# A1 01        # Collection (Application)
+# 85 04        #   Report ID (4)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 03        #   Report Count (3)
+# 19 81        #   Usage Minimum (Sys Power Down)
+# 29 83        #   Usage Maximum (Sys Wake Up)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 05        #   Report Size (5)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+# 120 bytes
+
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:7f
+mem_gpio_wakeup_cfg:00 00 00 00 00 00 00 00 00 00 00 02
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 10
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+
+mem_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: GK308_keyboard_only_24g/program/app.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app.prog	(working copy)
@@ -0,0 +1,331 @@
+app_init:
+	bpatch patch19_7,mem_patch19
+	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
+	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,keyboard_default_init
+	beq DVC_OP_REMOTE_CAR,remote_car_default_init
+	beq DVC_OP_CAR,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 patch1a_0,mem_patch1a
+	//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 patch1a_1,mem_patch1a
+	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: GK308_keyboard_only_24g/program/app_adpcm.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_adpcm.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/program/app_car.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_car.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_car.prog	(working copy)
@@ -0,0 +1,1051 @@
+ifdef COMPILE_CAR
+
+car_init:
+	call enable_authrom
+	rtn wake
+	setarg car_idle_process
+	store 2,mem_cb_idle_process
+
+	setarg car_cb_event_timer
+	store 2,mem_cb_event_timer
+	
+	setarg car_cb_24g_ackpayload
+	store 2, mem_cb_24g_ackpayload
+
+	setarg car_ble_receive_data
+	store 2,mem_cb_att_write
+
+	setarg car_process_bb_event 
+	store 2,mem_cb_bb_event_process
+	
+	bpatch patch05_6,mem_patch05
+	call car_init_environment
+	call car_add_mac_to_local_name
+	call le_modified_name
+	call car_le_param_init
+	branch queue_init
+	
+car_default_init:	
+	
+	jam 0x0a,mem_tx_power
+	jam 0x84,mem_24g_tx_phy
+	jam 0x84,mem_24g_rx_phy
+	setarg 0xffffff
+	store 3,mem_car_full_control_remote_lap
+	jam 0xff,mem_car_full_control_remote_lap+3
+	setarg 0
+	store 3,mem_le_lap
+	setarg 0x220101
+	store 3,mem_le_lap+3
+	setarg 0xffffff
+	store 3,mem_car_motor_gpio_map
+	jam 0xff,mem_car_motor_gpio_map+3
+	jam 0x01,mem_factory_control_flag
+	setarg 0x241404
+	store 3,mem_24g_ch_map1
+	jam 0x34,mem_24g_ch_map1+3
+	jam 0x10,mem_car_pwm_gpio
+	jam 0x01,mem_stop_4w1_flag
+	jam 0x07,mem_le_adv_channel_map
+	jam 0x01,mem_le_adv_enable
+	setarg 0xf0
+	store 2,mem_le_adv_interval
+	setarg 0x801
+	store 2,mem_le_local_feature
+	jam 0x84,mem_le_tx_phys
+	jam 0x84,mem_le_rx_phys
+	
+
+	setarg 0x504708
+	store 3,mem_le_name_len
+	setarg 0x435734
+	store 3,mem_le_name_len+3
+	setarg 0x5f5241
+	store 3,mem_le_name_len+6
+	jam 0x1f,mem_le_adv_data_len
+	setarg 0x50102
+	store 3,mem_le_adv_data
+	setarg 0x08
+	store 2,mem_le_interval_min
+	setarg 0x10
+	store 2,mem_le_interval_max
+	setarg 0
+	store 2,mem_le_latency
+	setarg 0x12c
+	store 2,mem_le_timeout
+	setarg mem_car_le_queue_each_size
+	store 2,mem_queue_ptr
+	setarg 0x414
+	store 5,mem_car_le_queue_each_size
+	setarg mem_car_ble_att_list
+	store 2,mem_ui_le_uuid_table
+
+//att list
+	setsect 0,0x20001
+	setsect 1,0x20000
+	setsect 2,0x1022
+	setsect 3,0x60
+	store 9,mem_car_ble_att_list
+	setsect 0,0x20002
+	setsect 1,0x200c0
+	setsect 2,0x20012
+	setsect 3,0xc
+	store 9,mem_car_ble_att_list+8
+
+	setsect 0,0x20502
+	setsect 1,0x4a
+	setsect 2,0x40
+	setsect 3,0x808
+	store 9,mem_car_ble_att_list+17
+
+	setsect 0,0x10229
+	setsect 1,0x14000
+	setsect 2,0x2000
+	setsect 3,0xa000
+	store 9,mem_car_ble_att_list+26
+
+	setsect 0,0x02
+	setsect 1,0x186
+	setsect 2,0x3020
+	setsect 3,0x4a0
+	store 9,mem_car_ble_att_list+35
+
+	setsect 0,0x74e
+	setsect 1,0x80
+	setsect 2,0x132a0
+	setsect 3,0x1cd04
+	store 9,mem_car_ble_att_list+44
+
+	setsect 0,0x2074
+	setsect 1,0x1153
+	setsect 2,0x2f4d2
+	setsect 3,0x1cdd5
+	store 9,mem_car_ble_att_list+53
+
+	setsect 0,0x2065
+	setsect 1,0x808
+	setsect 2,0x20202
+	setsect 3,0x2080
+	store 9,mem_car_ble_att_list+62
+
+	setsect 0,0x30200
+	setsect 1,0x4a00
+	setsect 2,0x94e0
+	setsect 3,0x800
+	store 9,mem_car_ble_att_list+71
+
+	setsect 0,0x22a01
+	setsect 1,0x0
+	setsect 2,0xa0
+	setsect 3,0xc08
+	store 9,mem_car_ble_att_list+80
+
+	setsect 0,0x20128
+	setsect 1,0x2c0
+	setsect 2,0x4020
+	setsect 3,0x20a8
+	store 9,mem_car_ble_att_list+89
+
+	setsect 0,0x10
+	setsect 1,0x14008
+	setsect 2,0x2c000
+	setsect 3,0x3004
+	store 9,mem_car_ble_att_list+98
+
+	setsect 0,0x200
+	setsect 1,0x8a00
+	setsect 2,0x3ff00
+	setsect 3,0x37 
+	store 9,mem_car_ble_att_list+107
+
+	setsect 0,0x302
+	setsect 1,0x804a
+	setsect 2,0xe1
+	setsect 3,0x3c408
+	store 9,mem_car_ble_att_list+116
+
+	setsect 0,0x4ff
+	setsect 1,0x0
+	setsect 2,0xf000
+	setsect 3,0x800
+	store 9,mem_car_ble_att_list+125
+
+	setsect 0,0x22902
+	setsect 1,0x0
+	setsect 2,0x100
+	setsect 3,0xc08
+	store 9,mem_car_ble_att_list+134
+
+	setsect 0,0x128
+	setsect 1,0x442
+	setsect 2,0x32020
+	setsect 3,0x7ff
+	store 9,mem_car_ble_att_list+143
+	setarg 0
+	store 3,mem_car_ble_att_list+152
+	
+	jam 0x0c,mem_system_clk
+	setarg 0x643f35
+	store 3,mem_lpm_xtalcnt
+	setarg 0x3b2f8f
+	store 3,mem_lpm_isogate
+	jam 0x20,mem_lpm_hibernate_switch
+	jam 0x00,mem_lpm_ldo_sel
+	jam 0x08,mem_lpm_sysctl
+	jam 0xb4,mem_lpm_hv_sel
+	jam 0x18,mem_fcomp_div
+	jam 0x3e,mem_xtal_c_sel
+	setarg 0x50e08
+	store 3,mem_version
+	setarg 0x3
+	store 2,mem_version+3
+	jam 0x20,mem_le_tx2m_delay
+	jam 0xff,mem_gain_fix
+	setarg 0xc00
+	store 2,mem_rx_window_sniff
+	setarg 0x4
+	store 3,mem_gain_table
+	jam 0x08,mem_gain_second_agc_en
+	jam 0xa0,mem_ring_ibias_trim
+	setarg 0x2bc
+	store 2,mem_ring_ibias_vtune_high
+	setarg 0x190
+	store 2,mem_ring_ibias_vtune_low
+	jam 0x03,mem_ring_ibias_calc_adc_gpio
+	jam 0x09,mem_ring_ibias_calc_adc_channel
+	jam 0xff,mem_rf_init_data
+	setarg mem_rf_init_data
+	store 2,mem_rf_init_ptr
+
+	
+	call enable_otp_read
+	arg mem_otp_sys_cfg_temp,rega
+	arg OTP_SYS_PARAM_CFG,regb
+	arg 60,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 1,mem_otp_sys_cfg_temp
+	ncall car_system_clk,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+1
+	ncall car_lpm_xtalcnt,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+4
+	ncall car_lpm_isogate,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+7
+	ncall car_lpm_hibernate_switch,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+8
+	ncall car_lpm_ldo_sel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+9
+	ncall car_lpm_sysctl,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+10
+	ncall car_lpm_hv_sel,blank	
+
+	fetch 1,mem_otp_sys_cfg_temp+11
+	ncall car_fcomp_div,blank	
+	
+	fetch 1,mem_otp_sys_cfg_temp+12
+	ncall car_xtal_c_sel,blank
+
+	fetch 5,mem_otp_sys_cfg_temp+13
+	ncall car_version,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+18
+	ncall car_le_tx2m_delay,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+19
+	ncall car_gain_fix,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+20
+	ncall car_rx_window_sniff,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+22
+	ncall car_gain_table,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+25
+	ncall car_gain_second_agc_en,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+26
+	ncall car_ring_ibias_trim,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+27
+	ncall car_ring_ibias_vtune_high,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+29
+	ncall car_ring_ibias_vtune_low,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+31
+	ncall car_ring_ibias_calc_adc_gpio,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+32
+	ncall car_ring_ibias_calc_adc_channel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+37
+	ncall car_tx_power,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+38
+	ncall car_24g_tx_phy,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+39
+	ncall car_24g_rx_phy,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+40
+	ncall car_motor_gpio_map,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+44
+	ncall car_pwm_gpio,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+46
+	ncall car_24g_addr,blank
+	
+	fetch 4,mem_otp_sys_cfg_temp+50
+	ncall car_24g_ch_map1,blank
+	rtn
+	
+car_system_clk:
+	store 1,mem_system_clk
+	rtn
+car_lpm_xtalcnt:
+	store 3,mem_lpm_xtalcnt
+	rtn
+car_lpm_isogate:
+	store 3,mem_lpm_isogate
+	rtn
+car_lpm_hibernate_switch:
+	store 1,mem_lpm_hibernate_switch
+	rtn
+car_lpm_ldo_sel:
+	store 1,mem_lpm_ldo_sel
+	rtn
+car_lpm_sysctl:
+	store 1,mem_lpm_sysctl	
+	rtn
+car_lpm_hv_sel:	
+	store 1,mem_lpm_hv_sel	
+	rtn
+car_fcomp_div:
+	store 1,mem_fcomp_div
+	rtn
+car_xtal_c_sel:
+	store 1,mem_xtal_c_sel
+	rtn
+car_version:
+	store 5,mem_version
+	rtn	
+car_le_tx2m_delay:
+	store 1,mem_le_tx2m_delay
+	rtn
+car_gain_fix:
+	store 1,mem_gain_fix
+	rtn
+car_rx_window_sniff:
+	store 2,mem_rx_window_sniff
+	rtn
+car_gain_table:
+	store 3,mem_gain_table
+	rtn
+car_gain_second_agc_en:
+	store 1,mem_gain_second_agc_en
+	rtn
+car_ring_ibias_trim:
+	store 1,mem_ring_ibias_trim
+	rtn
+car_ring_ibias_vtune_high:
+	store 2,mem_ring_ibias_vtune_high
+	rtn
+car_ring_ibias_vtune_low:
+	store 2,mem_ring_ibias_vtune_low
+	rtn
+car_ring_ibias_calc_adc_gpio:
+	store 1,mem_ring_ibias_calc_adc_gpio
+	rtn
+car_ring_ibias_calc_adc_channel:
+	store 1,mem_ring_ibias_calc_adc_channel
+	rtn
+car_tx_power:
+	store 1,mem_tx_power
+	rtn
+car_24g_tx_phy:
+	store 1,mem_24g_tx_phy
+	rtn
+car_24g_rx_phy:
+	store 1,mem_24g_rx_phy
+	rtn
+car_motor_gpio_map:
+	store 4,mem_car_motor_gpio_map
+	jam 1,mem_car_gpio_control_mode  //pwm con:0  h&l output:1
+	rtn
+car_pwm_gpio:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	fetch 1,mem_otp_sys_cfg_temp+44
+	store 1,mem_car_pwm_gpio
+	rtn
+
+car_24g_addr:
+	store 4,mem_24g_addr
+	rtn
+car_24g_ch_map1:
+	store 4,mem_24g_ch_map1
+	rtn
+
+
+car_init_environment:
+	setarg 15
+	store 2, mem_100ms_adv_control_timer
+	setarg 300
+	store 2, mem_100ms_factory_test_control_timer
+	call car_whitening_24g_addr
+	call car_get_rxid
+	call car_rxid_check
+	branch car_pwm_control_init
+	
+car_rxid_check:
+	arg mem_le_lap,rega
+	arg mem_car_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	fetch 1,mem_le_lap
+	pincrease -1
+	store 1,mem_le_lap
+	rtn
+	
+car_add_mac_to_local_name:
+	fetch 1, mem_le_name_len
+	arg mem_le_name_len+1, contw
+	iadd contw, regb
+	add pdata, 16, pdata
+	store 1, mem_le_name_len
+
+	arg 6, loopcnt
+	arg mem_le_lap+5, rega   //big endian
+	copy regb, contw
+car_add_mac_to_local_name_loop:
+	ifetcht 1, rega
+	and temp, 0xf0, pdata
+	rshift4 pdata, pdata
+	call car_convert_hex_to_ascii
+	
+	istore 1, contw
+	and temp, 0x0f, pdata
+	call car_convert_hex_to_ascii
+	istore 1, contw
+	increase -1, rega
+	loop car_add_mac_to_local_name_loop
+	rtn
+car_convert_hex_to_ascii:
+	sub pdata, 9, null
+	branch car_convert_hex_to_ascii_0_9, positive
+car_convert_hex_to_ascii_a_f:
+	add pdata, 0x37, pdata    
+	rtn
+car_convert_hex_to_ascii_0_9:
+	add pdata, 0x30, pdata  
+	rtn	
+
+
+	
+car_le_param_init:
+	jam 0x17,mem_le_local_mtu
+	setarg 0x1b
+ 	store 2,mem_le_pairing_handle
+ 	call le_set_config_fixed_ltk
+	call le_set_fixed_ltk
+	call le_set_justwork
+	branch le_set_config_read_authentication
+
+
+car_process_bb_event:
+	deposit regc
+	beq BT_EVT_LE_CONNECTED, car_ble_connted
+	beq BT_EVT_LE_DISCONNECTED, car_ble_disconnted
+	rtn
+
+car_ble_disconnted:
+	jam 0,mem_car_ble_connted_flag
+	call car_gpio_control_stop
+	jam 0x0,mem_period_count
+	jam 1,mem_stop_4w1_flag
+	setarg 0
+	store 3,mem_car_ble_write_data
+	call queue_init
+	branch app_ble_start_adv
+
+car_ble_connted:
+	jam 1,mem_car_ble_connted_flag
+	call car_check_close_ice
+	branch app_lpm_mult_enable
+
+
+car_ble_receive_data:
+	fetch 2,mem_le_att_handle
+	beq HANDLE_OF_WRITE,car_ble_receive_writeatt
+	rtn
+	
+
+car_ble_receive_writeatt:
+	bpatch patch05_7,mem_patch05
+	copy regb, loopcnt
+	copy rega, contr
+	arg mem_car_ble_write_data, contw   
+	call memcpy
+	fetch 1,mem_car_ble_write_data
+	rtn blank	
+car_ble_receive_writeatt_parse:
+	call car_gpio_control_stop
+	jam 0x4,mem_period_count
+	fetch 1,mem_car_ble_write_data+2
+	rtnne 0x02
+	fetch 1,mem_car_ble_write_data+8
+	beq 0x01,car_f+3
+	beq 0x02,car_b+3	 
+	beq 0x03,car_r+3	
+	beq 0x04,car_l+3	
+	beq 0xa1,car_fr
+	beq 0xa2,car_fl
+	beq 0xa3,car_br
+	beq 0xa4,car_bl
+	rtn
+
+car_gpio_control_stop:
+	fetch 1,mem_car_gpio_control_mode
+	rtn blank
+	call car_fb_motor_stop
+	branch car_lr_motor_stop
+
+car_whitening_24g_addr:
+	arg 4,loopcnt
+	arg mem_24g_addr,regc
+	arg 0xae,regb
+//	call car_24g_whitening_loop
+//	rtn
+car_24g_whitening_loop:
+	call car_24g_whitening_byte
+	increase 1, regc
+	loop car_24g_whitening_loop
+	rtn
+car_24g_whitening_byte:
+	arg 1, rega     //rega is m
+car_24g_whitening_byte_loop:
+	lshift regb, regb    //regb is seed
+	isolate1 7, regb
+	call car_24g_whitening_byte_xor, true
+	lshift rega, rega
+	deposit rega
+	rtnbit1 8
+	branch car_24g_whitening_byte_loop
+car_24g_whitening_byte_xor:	
+	ifetch 1,regc
+	ixor rega, pdata
+	istore 1, regc
+	xor regb, 0x11, regb
+	rtn
+
+
+
+car_get_rxid:
+	call enable_otp_read
+	arg mem_otp_lot_xy_temp,rega
+	arg OTP_MAC_ADDR,regb
+	arg 6,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 6,mem_otp_lot_xy_temp
+	rtn blank
+	fetch 2,mem_otp_lot_xy_temp
+	store 2,mem_le_lap
+	fetch 1,mem_otp_lot_xy_temp+3
+	store 1,mem_le_lap+2
+	fetch 1,mem_otp_lot_xy_temp+5
+	store 1,mem_le_lap+3
+
+	fetch 1,mem_otp_lot_xy_temp+1
+	sub pdata,26,null  //	piece num max is 25
+	nrtn positive
+	
+	fetch 1,mem_otp_lot_xy_temp+2
+	rtn blank
+	random pdata
+	and_into 0x07,pdata
+	lshift pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 1,mem_otp_lot_xy_temp+1
+	iadd temp,pdata
+	store 1,mem_le_lap+1
+	arg mem_le_lap+1,rega
+	arg OTP_MAC_ADDR_PIECENUM,regb
+	arg 1,loopcnt
+	branch otp_write	
+
+
+
+car_pwm_control_init:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	arg 0, rega
+	call pwm_init
+	
+	arg 18000,rega
+	arg 6000, regb
+	arg 0, pdata
+	call pwm_duty_cycle_set
+	fetch 1,mem_car_pwm_gpio
+	branch pwm_enable	
+
+
+car_idle_process:
+//call ice_break
+	bpatch patch06_0,mem_patch06
+	arg 10, pdata //约96ms
+	call wdt_init_config 
+
+	call car_pwm_io_control
+	fetch 1,mem_car_ble_connted_flag
+	nrtn blank
+	fetch 2,mem_car_le_24g_ch_count
+	increase 1,pdata
+	store 2,mem_car_le_24g_ch_count
+	rshift4 pdata,pdata
+	call car_set_24g_ch
+	
+	call car_g24_sim_rx
+	call car_stop_run			
+	setarg mem_24g_rxbuf
+	increase 2,pdata
+	copy pdata,contr
+	arg LEN_OF_24G_PAYLOAD,loopcnt
+	arg 0,pdata	
+	call cal_sum
+	and pdata ,0xff,pdata
+	fetcht 1,mem_24g_rxbuf+14
+	isub temp,null
+	nrtn zero
+
+	fetch 1,mem_24g_rxbuf+2
+	bpatch patch06_1,mem_patch06
+	beq G24_TX_PAIR_REQUEST,car_recive_pair_request
+	beq G24_TX_REMOTE_CONTROL,car_set_motor
+	rtn
+car_pwm_io_control:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	call car_soft_timer_process	
+	call car_pwm_change_500hz
+	call car_period_change_timer	
+	call car_pwm_change_1khz
+	rtn
+
+car_g24_sim_rx:
+	arg 4,temp
+	arg 5,queue
+	call sniff_check_window
+	rtn user
+	set1 mark_24g_rxmode,mark
+	setarg 0x8ca0   //2.5ms
+	store 2, mem_24g_rx_window
+	jam 1,mem_24g_ackpayload_enable
+	fetch 1,mem_24g_rx_phy
+	call le_enable_phy_by_pdata
+	call g24_syncword_crc8
+	call g24_receive_transmit_ack
+	call g24_read_len_pid_crc
+	call g24_end_of_packet	
+	nrtn user3
+	rtn
+
+car_cb_24g_ackpayload:
+	jam LEN_OF_ACK_PAYLOAD, mem_24g_datalen
+	fetch 7,mem_car_24g_tx_payload_temp
+	store 7, mem_24g_txbuf
+	fetch 4,mem_car_24g_tx_payload_temp+7
+	store 4, mem_24g_txbuf+7	
+	rtn
+	
+car_soft_timer_process:	
+	arg 8, rega
+car_soft_timer_process_check_timer:
+	arg 12,queue
+	call timer_check
+	branch car_soft_timer_timeout,blank
+	isub rega, null
+	branch car_soft_timer_process_wait_timeout,zero
+	rtn positive
+car_soft_timer_process_wait_timeout:
+	arg 12,queue
+	call timer_check
+	branch car_soft_timer_timeout,blank
+	branch car_soft_timer_process_wait_timeout
+	
+car_soft_timer_timeout:
+	fetch 1,mem_pwm_flag
+	beq 2,car_timer_500hz_enable	
+	beq 3,car_timer_1khz_enable
+	rtn	
+car_timer_1khz_enable:
+	jam 1,mem_pwm_flag
+	rtn
+car_timer_500hz_enable:
+	jam 0,mem_pwm_flag
+	rtn
+
+car_pwm_change_1khz:
+	fetch 1,mem_period_count
+	rtn blank
+	fetcht 1,mem_pwm_flag
+	compare 1,temp,0xff
+	nrtn true
+	jam 2,mem_pwm_flag
+	arg 6000,rega
+	arg 6000, regb
+	arg 0, pdata
+	call pwm_duty_cycle_set	
+	fetch 1,mem_timer_count
+	arg 12,queue
+	call timer_init
+	rtn
+car_pwm_change_500hz:
+	fetcht 1,mem_pwm_flag
+	compare 0,temp,0xff
+	nrtn true
+	jam 3,mem_pwm_flag
+	arg 18000,rega
+	arg 6000, regb
+	arg 0, pdata
+	call pwm_duty_cycle_set
+	setarg 12
+	arg 12,queue
+	call timer_init
+	rtn
+car_period_change_timer:
+	fetch 1,mem_period_count
+	arg 0x3e8,temp
+	imul32 temp,pdata
+	arg 0x271,temp
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	pincrease 1
+	store 1,mem_timer_count
+	rtn
+
+
+
+car_set_24g_ch:
+	beq 0,car_set_ch0
+	beq 1,car_set_ch1
+	beq 2,car_set_ch2
+	beq 3,car_set_ch3
+	branch car_set_ch_reset
+car_set_ch0:
+	fetch 1,mem_24g_ch_map1
+	store 1,mem_24g_ch
+	rtn
+car_set_ch1:
+	fetch 1,mem_24g_ch_map1+1
+	store 1,mem_24g_ch
+	rtn
+car_set_ch2:
+	fetch 1,mem_24g_ch_map1+2
+	store 1,mem_24g_ch
+	rtn
+car_set_ch3:
+	fetch 1,mem_24g_ch_map1+3
+	store 1,mem_24g_ch
+	rtn        
+car_set_ch_reset:
+	setarg 0
+	store 2,mem_car_le_24g_ch_count
+	rtn
+
+
+
+car_stop_run:
+	fetch 1,mem_car_le_24g_tx_pair_mode
+	rtn blank
+	fetch 1,mem_car_24g_loselink_count
+	arg 15,temp
+	isub temp,null
+	nrtn positive
+	jam 0,mem_car_24g_loselink_count
+	setarg 0
+	store 2,mem_car_24g_rx_payload_temp+9
+	call car_gpio_control_stop
+
+	jam 0x4,mem_period_count
+	jam 0,mem_le_adv_enable
+	jam 1,mem_adv_control_start_flag
+	fetch 1,mem_stop_4w1_flag
+	rtn blank
+	jam 0x0,mem_period_count
+	jam 1,mem_le_adv_enable
+	rtn
+
+
+car_set_motor:
+	bpatch patch06_2,mem_patch06
+	fetch 7,mem_24g_rxbuf+2
+	store 7,mem_car_24g_rx_payload_temp
+	fetch 5,mem_24g_rxbuf+9
+	store 5,mem_car_24g_rx_payload_temp+7        
+	arg mem_car_24g_rx_payload_temp+1,rega
+	fetch 4,mem_car_24g_addr_other
+	branch car_reconnect,blank
+ifndef FULL_CONTROL
+	arg mem_car_24g_addr_other,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+endif
+	arg mem_car_24g_rx_payload_temp+5,rega	
+	arg mem_car_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	branch car_run_factory_mode_select,zero	
+
+	arg mem_car_24g_rx_payload_temp+5,rega
+	arg mem_le_lap,regb
+	arg 4,loopcnt
+	call string_compare  
+	nbranch car_set_unconnect, zero
+	branch car_run_mode_select
+	
+car_set_unconnect:
+	jam G24_UNCONNECT,mem_car_le_24g_tx_pair_mode
+	setarg 0
+	store 4,mem_car_24g_addr_other       
+	rtn
+
+car_run_factory_mode_select:
+	fetch 1,mem_factory_control_flag
+	beq 0,car_set_unconnect
+	beq 1,car_run_mode_select
+	rtn
+	
+car_run_mode_select:
+	jam 0,mem_car_24g_loselink_count
+	fetch 2,mem_car_24g_rx_payload_temp+9
+	branch car_stop_run+9,blank
+	call car_pwm_mode_adv_flag_init
+	call car_factory_mode_time
+	call car_motor_mode_1
+	branch car_motor_mode_2
+
+car_pwm_mode_adv_flag_init:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	jam 1,mem_le_adv_enable
+	jam 1,mem_le_adv_channel_map
+	jam 0,mem_stop_4w1_flag
+	jam 0,mem_adv_control_start_flag
+	setarg 15
+	store 2, mem_100ms_adv_control_timer
+	rtn
+	
+car_factory_mode_time:
+	fetch 1,mem_factory_control_flag
+	rtn blank
+	setarg 300
+	store 2, mem_100ms_factory_test_control_timer
+	rtn
+	
+car_motor_mode_1:
+	fetch 1,mem_car_24g_rx_payload_temp+10
+	beq 1,car_b
+	beq 2,car_f
+	rtn
+car_motor_mode_2:
+	fetch 1,mem_car_24g_rx_payload_temp+9
+	beq 1,car_l
+	beq 2,car_r
+	rtn
+
+car_f:
+	fetch 1,mem_car_24g_rx_payload_temp+9
+	beq 1,car_fl
+	beq 2,car_fr
+	jam 0x0a,mem_period_count
+	branch car_lr_motor_right
+	
+car_b:
+	fetch 1,mem_car_24g_rx_payload_temp+9
+	beq 1,car_bl
+	beq 2,car_br
+	jam 0x28,mem_period_count
+	branch car_lr_motor_left
+
+car_l:
+	fetch 1,mem_car_24g_rx_payload_temp+10
+	beq 1,car_bl
+	beq 2,car_fl
+	jam 0x3a,mem_period_count
+	branch car_fb_motor_back
+	
+car_r:
+	fetch 1,mem_car_24g_rx_payload_temp+10
+	beq 1,car_br
+	beq 2,car_fr
+	jam 0x40,mem_period_count
+	branch car_fb_motor_front
+
+car_fl:
+	jam 0x1c,mem_period_count
+	call car_lr_motor_right
+	branch car_fb_motor_back
+car_fr:
+	jam 0x22,mem_period_count
+	call car_lr_motor_right
+	branch car_fb_motor_front
+car_bl:
+	jam 0x34,mem_period_count
+	call car_lr_motor_left
+	branch car_fb_motor_back
+car_br:
+	jam 0x2e,mem_period_count
+	call car_lr_motor_left
+	branch car_fb_motor_front	
+
+
+car_reconnect:
+	arg mem_car_24g_rx_payload_temp+5,rega	
+	arg mem_car_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare 
+	branch car_recive_pair_request,zero
+
+	arg mem_car_24g_rx_payload_temp+5,rega
+	arg mem_le_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	branch car_recive_pair_request
+car_recive_pair_request:
+	fetch 7,mem_24g_rxbuf+2
+	store 7,mem_car_24g_rx_payload_temp
+	fetch 1,mem_car_le_24g_tx_pair_mode
+	beq G24_UNCONNECT,car_send_pair_response
+	beq G24_CONNECTED, car_send_pair_response_juge
+	rtn
+car_send_pair_response:
+	call car_check_close_ice
+	
+	jam G24_CONNECTED,mem_car_le_24g_tx_pair_mode
+	jam G24_RX_PAIR_RESPONES,mem_car_24g_tx_payload_temp
+	fetch 4,mem_car_24g_rx_payload_temp+1
+	store 4,mem_car_24g_addr_other
+	store 4,mem_car_24g_tx_payload_temp+5
+	fetch 4,mem_le_lap
+	store 4,mem_car_24g_tx_payload_temp+1
+	rtn
+
+car_send_pair_response_juge:
+ifndef FULL_CONTROL
+	arg mem_car_24g_rx_payload_temp+1,rega
+	arg mem_car_24g_addr_other,regb
+	arg 4,loopcnt
+	call string_compare        
+	branch car_send_pair_response,zero
+endif
+
+ifdef FULL_CONTROL
+	branch car_send_pair_response
+endif
+
+car_cb_event_timer:
+	fetch 1,mem_car_24g_loselink_count		
+	increase 1,pdata
+	store 1,mem_car_24g_loselink_count
+	call car_100ms_timer_adv_control
+	branch car_100ms_timer_factory_test_control
+	
+
+car_100ms_timer_adv_control:
+	fetch 1,mem_car_gpio_control_mode
+	nrtn blank
+	fetch 1,mem_adv_control_start_flag
+	rtn blank
+	arg mem_100ms_adv_control_timer,regc
+	arg car_100ms_timer_adv_control_timeout, regb
+	branch timer_single_step_2B
+car_100ms_timer_adv_control_timeout:
+	setarg 15
+	store 2, mem_100ms_adv_control_timer
+	jam 7,mem_le_adv_channel_map
+	jam 0,mem_adv_control_start_flag
+	jam 1,mem_stop_4w1_flag
+	rtn		
+
+car_100ms_timer_factory_test_control:
+	fetch 1,mem_factory_control_flag
+	rtn blank
+	arg mem_100ms_factory_test_control_timer,regc
+	arg car_100ms_timer_factory_test_timeout, regb
+	branch timer_single_step_2B
+car_100ms_timer_factory_test_timeout:
+	setarg 300
+	store 2, mem_100ms_factory_test_control_timer
+	jam 0,mem_factory_control_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_le_stop_random_delay_check:
+	fetch 1,mem_stop_4w1_flag
+	branch le_adv_not_match+13,blank
+	branch le_adv_not_match+8
+
+car_check_close_ice:
+	fetch 1,mem_car_gpio_control_mode
+	rtn blank
+	branch lpm_write_ice_disable
+	
+endif
+
+
+
Index: GK308_keyboard_only_24g/program/app_car_remote.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_car_remote.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_car_remote.prog	(working copy)
@@ -0,0 +1,712 @@
+ifdef COMPILE_REMOTE_CAR
+//define REMOTE_TEST_FUNCTION
+remote_car_init:
+	call enable_authrom
+	bpatch patch06_3,mem_patch06
+
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	call lpm_write_ice_enable,blank
+	call remote_car_set__lpm_timer_set
+	rtn wake
+	call wdt_set_disable
+	setarg remote_car_idle_process
+	store 2,mem_cb_idle_process
+
+	setarg remote_car_cb_event_timer
+	store 2,mem_cb_event_timer
+	call remote_car_get_txid
+	call remote_car_txid_check
+	call remote_car_whitening_24g_addr
+	branch remote_car_lpm_gpio_config_flag_init
+
+
+remote_car_default_init:
+	jam 0x0a,mem_tx_power
+	jam 0x84,mem_24g_tx_phy
+	jam 0x84,mem_24g_rx_phy
+	setarg 0xffffff
+	store 3,mem_remote_full_control_remote_lap
+	jam 0xff,mem_remote_full_control_remote_lap+3
+	setarg 0
+	store 3,mem_le_lap
+	setarg 0x220101
+	store 3,mem_le_lap+3
+	setarg 0x858c0c
+	store 3,mem_remote_car_key_conf0
+	jam 0x05,mem_remote_car_key_conf0+3
+	jam 0x0d,mem_24g_tx_led_map
+	jam 0x12,mem_key_public_gpio
+	setarg 0x241404
+	store 3,mem_24g_ch_map1
+	jam 0x34,mem_24g_ch_map1+3
+
+	jam 0x0c,mem_system_clk
+	setarg 0x643f35
+	store 3,mem_lpm_xtalcnt
+	setarg 0x3b2f8f
+	store 3,mem_lpm_isogate
+	jam 0x20,mem_lpm_hibernate_switch
+	jam 0x00,mem_lpm_ldo_sel
+	jam 0x08,mem_lpm_sysctl
+	jam 0xb4,mem_lpm_hv_sel
+	jam 0x18,mem_fcomp_div
+	jam 0x3e,mem_xtal_c_sel
+	setarg 0x50e08
+	store 3,mem_version
+	setarg 0x3
+	store 2,mem_version+3
+	jam 0x20,mem_le_tx2m_delay
+	jam 0xff,mem_gain_fix
+	setarg 0xc00
+	store 2,mem_rx_window_sniff
+	setarg 0x4
+	store 3,mem_gain_table
+	jam 0x08,mem_gain_second_agc_en
+	jam 0xa0,mem_ring_ibias_trim
+	setarg 0x2bc
+	store 2,mem_ring_ibias_vtune_high
+	setarg 0x190
+	store 2,mem_ring_ibias_vtune_low
+	jam 0x03,mem_ring_ibias_calc_adc_gpio
+	jam 0x09,mem_ring_ibias_calc_adc_channel
+	jam 0xff,mem_rf_init_data
+	setarg mem_rf_init_data
+	store 2,mem_rf_init_ptr
+	
+	call enable_otp_read
+	arg mem_otp_sys_cfg_temp,rega
+	arg OTP_SYS_PARAM_CFG,regb
+	arg 60,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 1,mem_otp_sys_cfg_temp
+	ncall remote_car_system_clk,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+1
+	ncall remote_car_lpm_xtalcnt,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+4
+	ncall remote_car_lpm_isogate,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+7
+	ncall remote_car_lpm_hibernate_switch,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+8
+	ncall remote_car_lpm_ldo_sel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+9
+	ncall remote_car_lpm_sysctl,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+10
+	ncall remote_car_lpm_hv_sel,blank	
+
+	fetch 1,mem_otp_sys_cfg_temp+11
+	ncall remote_car_fcomp_div,blank	
+	
+	fetch 1,mem_otp_sys_cfg_temp+12
+	ncall remote_car_xtal_c_sel,blank
+
+	fetch 5,mem_otp_sys_cfg_temp+13
+	ncall remote_car_version,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+18
+	ncall remote_car_le_tx2m_delay,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+19
+	ncall remote_car_gain_fix,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+20
+	ncall remote_car_rx_window_sniff,blank
+
+	fetch 3,mem_otp_sys_cfg_temp+22
+	ncall remote_car_gain_table,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+25
+	ncall remote_car_gain_second_agc_en,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+26
+	ncall remote_car_ring_ibias_trim,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+27
+	ncall remote_car_ring_ibias_vtune_high,blank
+
+	fetch 2,mem_otp_sys_cfg_temp+29
+	ncall remote_car_ring_ibias_vtune_low,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+31
+	ncall remote_car_ring_ibias_calc_adc_gpio,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+32
+	ncall remote_car_ring_ibias_calc_adc_channel,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+37
+	ncall remote_car_tx_power,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+38
+	ncall remote_car_24g_tx_phy,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+39
+	ncall remote_car_24g_rx_phy,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+40
+	ncall remote_car_key_conf0,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+44
+	ncall remote_car_key_public_gpio,blank
+
+	fetch 1,mem_otp_sys_cfg_temp+45
+	ncall remote_car_24g_tx_led_map,blank
+
+	fetch 4,mem_otp_sys_cfg_temp+46
+	ncall remote_car_24g_addr,blank
+	
+	fetch 4,mem_otp_sys_cfg_temp+50
+	ncall remote_car_24g_ch_map1,blank
+	rtn
+	
+remote_car_system_clk:
+	store 1,mem_system_clk
+	rtn
+remote_car_lpm_xtalcnt:
+	store 3,mem_lpm_xtalcnt
+	rtn
+remote_car_lpm_isogate:
+	store 3,mem_lpm_isogate
+	rtn
+remote_car_lpm_hibernate_switch:
+	store 1,mem_lpm_hibernate_switch
+	rtn
+remote_car_lpm_ldo_sel:
+	store 1,mem_lpm_ldo_sel
+	rtn
+remote_car_lpm_sysctl:
+	store 1,mem_lpm_sysctl	
+	rtn
+remote_car_lpm_hv_sel:	
+	store 1,mem_lpm_hv_sel	
+	rtn
+remote_car_fcomp_div:
+	store 1,mem_fcomp_div
+	rtn
+remote_car_xtal_c_sel:
+	store 1,mem_xtal_c_sel
+	rtn
+remote_car_version:
+	store 5,mem_version
+	rtn	
+remote_car_le_tx2m_delay:
+	store 1,mem_le_tx2m_delay
+	rtn
+remote_car_gain_fix:
+	store 1,mem_gain_fix
+	rtn
+remote_car_rx_window_sniff:
+	store 2,mem_rx_window_sniff
+	rtn
+remote_car_gain_table:
+	store 3,mem_gain_table
+	rtn
+remote_car_gain_second_agc_en:
+	store 1,mem_gain_second_agc_en
+	rtn
+remote_car_ring_ibias_trim:
+	store 1,mem_ring_ibias_trim
+	rtn
+remote_car_ring_ibias_vtune_high:
+	store 2,mem_ring_ibias_vtune_high
+	rtn
+remote_car_ring_ibias_vtune_low:
+	store 2,mem_ring_ibias_vtune_low
+	rtn
+remote_car_ring_ibias_calc_adc_gpio:
+	store 1,mem_ring_ibias_calc_adc_gpio
+	rtn
+remote_car_ring_ibias_calc_adc_channel:
+	store 1,mem_ring_ibias_calc_adc_channel
+	rtn
+remote_car_tx_power:
+	store 1,mem_tx_power
+	rtn
+remote_car_24g_tx_phy:
+	store 1,mem_24g_tx_phy
+	rtn
+remote_car_24g_rx_phy:
+	store 1,mem_24g_rx_phy
+	rtn
+remote_car_key_conf0:
+	store 4,mem_remote_car_key_conf0
+	rtn
+remote_car_key_public_gpio:
+	store 1,mem_key_public_gpio
+	rtn
+remote_car_24g_tx_led_map:
+	store 1,mem_24g_tx_led_map
+	rtn
+remote_car_24g_addr:
+	store 4,mem_24g_addr
+	rtn
+remote_car_24g_ch_map1:
+	store 4,mem_24g_ch_map1
+	rtn
+
+
+
+
+	
+remote_car_set__lpm_timer_set:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	beq G24_UNCONNECT,remote_car_set_uconnect_lpm_time
+	beq G24_CONNECTED, remote_car_set_connected_lpm_time      
+	rtn
+remote_car_set_uconnect_lpm_time:
+	setarg 0
+	store 2,mem_24g_lpm_timer_count
+	setarg 300
+	store 2,mem_24g_lpm_enter_count     
+	rtn
+remote_car_set_connected_lpm_time:
+	setarg 0
+	store 2,mem_24g_lpm_timer_count
+	setarg 15
+	store 2,mem_24g_lpm_enter_count     
+	rtn
+
+
+remote_car_get_txid:
+ifdef FULL_CONTROL
+	jam 0x94,mem_tx_power
+	setarg 0xffffff
+	store 3,mem_le_lap
+	jam 0xff,mem_le_lap+3
+	rtn
+endif
+	call enable_otp_read
+	arg mem_remote_otp_lot_xy_temp,rega
+	arg OTP_MAC_ADDR,regb
+	arg 6,loopcnt
+	call otp_read_data
+	call disable_otp
+	fetch 6,mem_remote_otp_lot_xy_temp
+	rtn blank
+	fetch 2,mem_remote_otp_lot_xy_temp
+	store 2,mem_le_lap
+	fetch 1,mem_remote_otp_lot_xy_temp+3
+	store 1,mem_le_lap+2
+	fetch 1,mem_remote_otp_lot_xy_temp+5
+	store 1,mem_le_lap+3
+
+	fetch 1,mem_remote_otp_lot_xy_temp+1
+	sub pdata,26,null  //	piece num max is 25
+	nrtn positive
+	
+	fetch 1,mem_remote_otp_lot_xy_temp+2
+	rtn blank
+	random pdata
+	and_into 0x07,pdata
+	lshift pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 1,mem_remote_otp_lot_xy_temp+1
+	iadd temp,pdata
+	store 1,mem_le_lap+1
+	arg mem_le_lap+1,rega
+	arg OTP_MAC_ADDR_PIECENUM,regb
+	arg 1,loopcnt
+	branch otp_write	
+
+remote_car_txid_check:
+ifdef FULL_CONTROL
+	rtn
+endif
+	arg mem_le_lap,rega
+	arg mem_remote_full_control_remote_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	fetch 1,mem_le_lap
+	pincrease -1
+	store 1,mem_le_lap
+	rtn
+
+remote_car_whitening_24g_addr:
+	arg 4,loopcnt
+	arg mem_24g_addr,regc
+	arg 0xae,regb
+remote_car_24g_whitening_loop:
+	call remote_car_24g_whitening_byte
+	increase 1, regc
+	loop remote_car_24g_whitening_loop
+	rtn
+
+remote_car_24g_whitening_byte:
+	arg 1, rega     //rega is m
+remote_car_24g_whitening_byte_loop:
+	lshift regb, regb    //regb is seed
+	isolate1 7, regb
+	call remote_car_24g_whitening_byte_xor, true
+	lshift rega, rega
+	deposit rega
+	rtnbit1 8
+	branch remote_car_24g_whitening_byte_loop
+	
+remote_car_24g_whitening_byte_xor:	
+	ifetch 1,regc
+	ixor rega, pdata
+	istore 1, regc
+	xor regb, 0x11, regb
+	rtn
+
+	
+remote_car_lpm_gpio_config_flag_init:
+	arg 0,temp
+	arg mem_remote_car_key_conf0+1,contr
+	arg 2,loopcnt	
+remote_car_iocfg_pullup_loop:
+	ifetch 1,contr
+	set0 7,pdata
+	copy pdata,queue
+	setarg 0
+	qset1 pdata
+	iadd temp,temp
+	loop remote_car_iocfg_pullup_loop
+	storet 4,mem_remote_lpm_gpio_config_flag
+	rtn
+
+
+remote_car_idle_process:	
+	bpatch patch06_4,mem_patch06
+	fetch 2,mem_remote_le_24g_ch_count
+	increase 1,pdata
+	store 2,mem_remote_le_24g_ch_count
+	rshift2 pdata,pdata
+	call remote_car_set_24g_ch
+	call remote_car_g24_recved_ack_parse
+remote_car_24g_matching_process:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	beq G24_UNCONNECT,remote_car_send_pair_request
+	beq G24_CONNECTED, remote_car_send_remote_control
+	rtn
+
+
+remote_car_set_24g_ch:
+	beq 0,remote_car_set_ch0
+	beq 1,remote_car_set_ch1
+	beq 2,remote_car_set_ch2
+	beq 3,remote_car_set_ch3
+	branch remote_car_set_ch_reset
+	
+remote_car_set_ch0:
+	fetch 1,mem_24g_ch_map1
+	store 1,mem_24g_ch
+	rtn
+remote_car_set_ch1:
+	fetch 1,mem_24g_ch_map1+1
+	store 1,mem_24g_ch
+	rtn
+remote_car_set_ch2:
+	fetch 1,mem_24g_ch_map1+2
+	store 1,mem_24g_ch
+	rtn
+remote_car_set_ch3:
+	fetch 1,mem_24g_ch_map1+3
+	store 1,mem_24g_ch
+	rtn    
+remote_car_set_ch_reset:
+	setarg 0
+	store 2,mem_remote_le_24g_ch_count
+	rtn
+
+        
+remote_car_send_pair_request:
+	jam G24_TX_PAIR_REQUEST,mem_remote_24g_tx_payload_temp
+	fetch 4,mem_le_lap
+	store 4,mem_remote_24g_tx_payload_temp+1
+	branch remote_car_g24_sim_tx_with_datalen_set
+
+
+remote_car_g24_sim_tx_with_datalen_set:	
+	set0 mark_24g_rxmode,mark
+	setarg 0x2ee0    
+	store 2, mem_24g_rx_window //unit:1/12us
+	fetch 7,mem_remote_24g_tx_payload_temp
+	store 7,mem_24g_txbuf
+	fetch 5,mem_remote_24g_tx_payload_temp+7
+	store 5,mem_24g_txbuf+7	
+	arg LEN_OF_24G_PAYLOAD,loopcnt
+	arg 0,pdata
+	arg mem_24g_txbuf,contr
+	call cal_sum	
+	istore 1,contw
+	setarg LEN_OF_24G_PAYLOAD
+	increase 1,pdata
+	store 1,mem_24g_datalen
+	branch remote_car_g24_sim_tx
+
+
+
+remote_car_g24_sim_tx:
+	fetch 1,mem_24g_tx_phy
+	call le_enable_phy_by_pdata
+	call g24_syncword_crc8
+	jam 0x88,mem_rssi_hex
+//	call ice_break
+	call g24_transmit_prep
+	call g24_transmit_receive_ack
+	call g24_end_of_packet
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,remote_car_g24_transmit_no_ack
+	nbranch remote_car_g24_transmit_no_ack, user3    //if(user3 == 0) means a invaild packet.
+	nbranch remote_car_g24_transmit_no_ack,sync
+	call remote_car_24g_recved_ack
+remote_car_g24_transmit_no_ack:	
+	random pdata 
+	arg 0x1ff,temp
+	iand temp,pdata
+	add pdata,250,pdata
+	branch delay
+
+
+remote_car_24g_recved_ack:
+	jam 1, mem_remote_le_24g_recv_ack_flag
+	rtn
+
+remote_car_g24_recved_ack_parse:
+	fetch 1, mem_remote_le_24g_recv_ack_flag
+	rtn blank
+	jam 0, mem_remote_le_24g_recv_ack_flag
+	fetch 1,mem_24g_rxbuf+2
+	beq G24_RX_PAIR_RESPONES,remote_car_g24_tx_connected
+	rtn
+
+
+remote_car_g24_tx_connected:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	nrtn blank
+	arg mem_24g_rxbuf+7,rega
+	arg mem_le_lap,regb
+	arg 4,loopcnt
+	call string_compare
+	nrtn zero
+	call lpm_write_ice_disable
+	jam G24_CONNECTED,mem_remote_le_24g_tx_pair_mode
+	fetch 4,mem_24g_rxbuf+3
+	store 4,mem_remote_24g_addr_other
+	store 4,mem_remote_24g_tx_payload_temp+5
+	
+ifdef FULL_CONTROL
+	fetch 4,mem_remote_full_control_remote_lap
+	store 4,mem_remote_24g_addr_other
+	store 4,mem_remote_24g_tx_payload_temp+5
+endif
+	branch remote_car_set_connected_lpm_time
+		
+
+
+remote_car_send_remote_control:
+	bpatch patch06_5,mem_patch06
+	fetch 1,mem_le_24g_tx_send_flag
+	increase 1,pdata
+	store 1,mem_le_24g_tx_send_flag
+	jam 0,mem_remote_24g_tx_payload_temp
+	setarg 0
+	store 3,mem_remote_24g_tx_payload_temp+9
+	jam G24_TX_REMOTE_CONTROL,mem_remote_24g_tx_payload_temp
+	call remote_car_scan_key
+	call remote_car_set_tx_key_led
+	fetch 1,mem_le_24g_tx_send_flag
+	beq 200,remote_car_24g_tx_send_none
+	branch remote_car_g24_sim_tx_with_datalen_set
+
+
+remote_car_scan_key:
+	fetcht 1,mem_key_public_gpio
+	call gpio_out_inactive
+	call remote_car_key_scan_fb
+	call remote_car_key_scan_lr
+	//call remote_car_key_scan_mult
+	fetcht 1,mem_key_public_gpio
+	branch gpio_set_high_impedance
+		
+
+remote_car_key_scan_lr:
+	fetcht 1,mem_remote_car_key_conf3
+	call gpio_out_inactive
+
+	fetcht 1,mem_remote_car_key_conf3
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyR,true
+	
+	fetcht 1,mem_remote_car_key_conf3
+	call gpio_out_active
+	nop 1200
+	fetcht 1,mem_remote_car_key_conf2
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyL,true
+	rtn
+remote_car_key_scan_fb:
+	fetcht 1,mem_remote_car_key_conf0
+	call gpio_out_inactive
+
+	fetcht 1,mem_remote_car_key_conf0 
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyF,true
+	
+	fetcht 1,mem_remote_car_key_conf0
+	call gpio_out_active
+	nop 1200
+	fetcht 1,mem_remote_car_key_conf1
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyB,true
+	rtn
+/*remote_car_key_scan_mult:
+	fetcht 1,mem_key_public_gpio
+	call gpio_out_active	
+	fetcht 1,mem_remote_mult_key
+	call gpio_config_input
+	call gpio_get_bit
+	branch remote_car_set_keyM,true
+	rtn	*/
+
+remote_car_set_keyF:
+	jam 1,mem_remote_24g_tx_payload_temp+9
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+	
+remote_car_set_keyB:
+	jam 2,mem_remote_24g_tx_payload_temp+9
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+	
+remote_car_set_keyL:
+	jam 1,mem_remote_24g_tx_payload_temp+10
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+	
+remote_car_set_keyR:
+	jam 2,mem_remote_24g_tx_payload_temp+10
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+
+remote_car_set_keyM:
+	jam 1,mem_remote_24g_tx_payload_temp+11
+	jam 0,mem_le_24g_tx_send_flag
+	rtn
+
+remote_car_set_tx_key_led:
+	fetch 3,mem_remote_24g_tx_payload_temp+9
+	branch remote_car_24g_led_off+1,blank
+	setarg 0
+	store 2,mem_24g_lpm_timer_count
+	setarg 15
+	store 2,mem_24g_lpm_enter_count        
+	branch remote_car_24g_led_on
+
+remote_car_24g_tx_send_none:
+	fetch 1,mem_le_24g_tx_send_flag
+	increase -1,pdata
+	store 1,mem_le_24g_tx_send_flag
+	rtn
+
+
+remote_car_24g_set_led:
+	fetch 1,mem_remote_le_24g_tx_pair_mode
+	rtneq G24_CONNECTED
+	fetch 1,mem_24g_led_count
+	increase 1,pdata
+	store 1,mem_24g_led_count
+	beq 2,remote_car_24g_led_on
+	beq 4,remote_car_24g_led_off
+	rtn	
+	
+remote_car_24g_led_on:
+	fetcht 1,mem_24g_tx_led_map
+	branch gpio_out_inactive
+        
+remote_car_24g_led_off:
+	jam 0,mem_24g_led_count
+	fetcht 1,mem_24g_tx_led_map
+	branch gpio_out_active	
+
+	
+remote_car_lpm_timeout_set:
+	fetch 2,mem_24g_lpm_enter_count
+	rtn blank
+	fetcht 2,mem_24g_lpm_timer_count
+	ixor temp,pdata
+	call remote_car_enter_lpm,blank
+	fetch 2,mem_24g_lpm_timer_count
+	increase 1,pdata
+	store 2,mem_24g_lpm_timer_count
+	rtn
+        
+remote_car_cb_event_timer:
+	call remote_car_24g_set_led
+	branch remote_car_lpm_timeout_set
+
+
+remote_car_enter_lpm:	
+	call lpm_write_ice_disable
+	call remote_car_enter_lpm_gpio_config
+	call remote_car_wakeup_config	
+	arg -1,temp
+	branch lpm_sleep
+
+
+remote_car_enter_lpm_gpio_config:
+	arg 24, loopcnt
+	jam 0, mem_remote_lpm_gpio_config_io_temp   
+remote_car_enter_lpm_gpio_config_loopcnt:
+	fetcht 1, mem_remote_lpm_gpio_config_io_temp
+	copy temp, queue
+	fetch 4, mem_remote_lpm_gpio_config_flag    
+	qisolate1 pdata
+	branch remote_car_enter_lpm_gpio_config_pull_up, true
+	or temp, 0x80, temp
+  
+remote_car_enter_lpm_gpio_config_pull_up: 
+	call gpio_config_input
+	fetch 1, mem_remote_lpm_gpio_config_io_temp
+	pincrease 1
+	store 1, mem_remote_lpm_gpio_config_io_temp
+	loop remote_car_enter_lpm_gpio_config_loopcnt
+	rtn
+
+remote_car_set_value:
+	setarg 0x30
+remote_car_gpio_wakeup_cfg:	
+	copy contw,contr
+	ifetcht 1,contr
+	iadd temp,pdata
+	istore 1,contw
+	arg mem_gpio_wakeup_cfg,contw
+	arg mem_remote_car_key_conf0+2,contr
+	loop remote_car_wakeup_config_loop
+	rtn
+
+remote_car_wakeup_config:
+	setarg 0
+	store 0x0c,mem_gpio_wakeup_cfg
+	arg mem_gpio_wakeup_cfg,contw
+	arg mem_remote_car_key_conf0+1,contr
+	arg 2,loopcnt
+remote_car_wakeup_config_loop:
+	ifetch 1,contr
+	set0 7,pdata
+	div pdata,2
+	call wait_div_end
+	quotient pdata	
+	iadd contw,contw
+	remainder pdata
+	nbranch remote_car_set_value,blank
+	setarg 0x03
+	branch remote_car_gpio_wakeup_cfg
+
+	
+	
+	
+endif
+
+
Index: GK308_keyboard_only_24g/program/app_dongle.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_dongle.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_dongle.prog	(working copy)
@@ -0,0 +1,605 @@
+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_6,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 patch06_7,mem_patch06
+	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_0,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:
+	bpatch patch07_1,mem_patch07
+	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 0x41,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 32,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:
+	bpatch patch07_2,mem_patch07
+	call dongle_g24_ms_blank_data
+	call dongle_g24_kb_blank_data
+	call dongle_g24_kb_sys_ctrl_blank_data
+	call dongle_g24_kb_bit_consumer_blank_data
+	branch dongle_g24_kb_mul_blank_data
+
+dongle_g24_ms_blank_data:
+	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:
+	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:
+	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_g24_kb_bit_consumer_blank_data:
+	fetch 1,mem_dg_kb_bit_consumer_blank_data_enable
+	rtn blank
+	arg G24_TIMER_KB_BIT_CONSUMER_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_bit_consumer_blank_data_enable
+	arg mem_usb_kb_multikey,contw
+	call memset0_16
+	jam KB_BIT_CONSUMER_REPORT_ID,mem_usb_kb_multikey
+	fetch 4,mem_usb_kb_multikey
+	store 4,mem_dg_kb_bit_consumer_last_data	
+dongle_usb_tx_bit_consumer_data:
+	jam USB_EP2_BIT_CONSUMER,mem_usb_ep2_data
+	branch dongle_usb_tx_enable_ep2
+
+
+dongle_usb_dispatch:
+	bpatch patch07_3,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:
+	fetch 4,mem_dg_device_version
+	store 4,mem_usb0_get_report_data+1
+	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_4,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:
+	bpatch patch07_5,mem_patch07
+	jam 1,mem_24g_ackpayload_enable
+	fetch 1,mem_24g_work_mode
+	rtneq DONGLE_WORK
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	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,g24_bind_ackpayload_prep
+	beq DATATYPE_ATTEMP,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
+	beq 5,dongle_g24_kb_type_bit_consumer
+	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_type_bit_consumer:
+	arg mem_usb_kb_multikey,contw
+	arg mem_24g_rxdata_temp+3,contr
+	arg 4,loopcnt
+	call memcpy
+	fetch 3,mem_usb_kb_multikey+1
+	ncall dongle_g24_kb_bit_consumer_enable_blank_data_forcibly,blank//get multikey data
+	fetch 3,mem_usb_kb_multikey+1
+	call dongle_g24_kb_bit_consumer_disable_blank_data_forcibly,blank
+	fetch 3,mem_usb_kb_multikey+1
+	store 3,mem_dg_kb_bit_consumer_sta_data
+	fetcht 3,mem_dg_kb_bit_consumer_last_data
+	isub temp,null
+	ncall dongle_usb_tx_bit_consumer_data,zero
+	fetch 3,mem_dg_kb_bit_consumer_sta_data
+	store 3,mem_dg_kb_bit_consumer_last_data
+	branch g24_rx_interrupt_clear
+
+dongle_g24_kb_bit_consumer_enable_blank_data_forcibly:
+	jam 1,mem_dg_kb_bit_consumer_blank_data_enable
+	setarg TIMER_KB_MUL_BLANK_DELAY
+	arg G24_TIMER_KB_BIT_CONSUMER_BLANK,queue
+	branch timer_init
+
+dongle_g24_kb_bit_consumer_disable_blank_data_forcibly:
+	jam 0,mem_dg_kb_bit_consumer_blank_data_enable
+	setarg 0
+	arg G24_TIMER_KB_BIT_CONSUMER_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: GK308_keyboard_only_24g/program/app_kb.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_kb.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_kb.prog	(working copy)
@@ -0,0 +1,3926 @@
+
+keyboard_softreset_process:
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_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_wakeup_from_power_check:
+	disable user
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_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
+	branch mouse_wakeup_from_poweron
+
+keyboard_default_init:
+	call hid_device_default_parm_init
+	call keyboard_xtal_init
+	call keyboard_24g_phy_select
+	branch g24_pair_param_init
+
+keyboard_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+keyboard_24g_phy_select:
+	call g24_enable_1M
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_2M_PHY
+	branch g24_enable_2M
+
+
+keyboard_init:
+	call enable_authrom
+	call keyboard_setting_config
+
+	call keyboard_gpio_init
+	call keyboard_low_vol_mult_set
+	call lpm_config_puchk_disable
+	rtn wake
+	call keyboard_cb_fuction
+	fetch 1,mem_device_flag
+	beq MODE_USB_DEVICE,keyboard_usb_mode_start
+keyboard_init_wireless:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,keyboard_start_discovery
+	jam 0,mem_keyboard_switch_count_temp
+	call keyboard_check_select_device_by_switch
+	jam 1,mem_keyboard_switch_count_temp
+	branch keyboard_start_work
+
+keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call keyboard_param_init
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	call keyboard_pwm_init
+	call le_set_fixed_ltk_justwork
+	bpatch patch07_6,mem_patch07
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_load_eeprom_info
+	bbit1 KEYBOARD_ENABLE_FLASH,keyboard_load_flash_info
+	rtn
+
+keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+
+keyboard_param_init:
+	call keyboard_compare_addr_init
+	call keyboard_param_common_init
+	call keyboard_adc_vol_init
+	fetch 1,mem_keyboard_device_poweron_timer_init
+	store 1,mem_keyboard_device_poweron_timer
+	jam 0,mem_same_keyvalue_timerout_flag
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	call clear_mem
+
+	fetch 1,mem_le_name_len
+	sub pdata,12,null
+	nbranch keyboard_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
+keyboard_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
+
+keyboard_ble_name_set_no_swift_pair:
+	arg mem_le_adv_swift_pair,contw
+	branch keyboard_ble_store_le_name
+
+keyboard_compare_addr_init:
+	arg 0,temp
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+
+/////////////////////////////////////////////////////////------gpio------///////////////////////////////////////////////////////////
+keyboard_gpio_init:
+	call clear_wake
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call device_gpio_config_input_pu
+
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_DISABLE_ICE,pdata
+	call lpm_write_ice_disable,true
+
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+	call keyboard_key_row_init
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,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
+
+keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_gpio_set_low_pullup,zero
+	increase 1,regb
+	loop keyboard_key_row_init_loop
+	branch lpm_write_gpio_wakeup
+
+keyboard_gpio_set_low_pullup:
+	call gpio_set_high_impedance
+	ifetcht 1,regb
+	branch gpio_set_low_pullup
+
+keyboard_gpio_pu_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+keyboard_gpio_pu_idle_loop:
+	ifetch 1,contr
+	nbranch keyboard_gpio_pu_idle_configured,blank
+	setarg gpcfg_pullup
+	add contr,-1,contw
+	istore 1,contw
+keyboard_gpio_pu_idle_configured:
+	loop keyboard_gpio_pu_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch keyboard_gpio_pu_idle_loop
+
+keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////otp  eeprom flash/////////////////////////////////////////////////////////////
+keyboard_pairing_check_otp_offset:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	nrtn positive
+	branch assert
+
+//  otp process
+keyboard_load_otp_info:
+	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 8,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fbc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info_ble_init:
+	arg 32,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fb0,pdata
+	arg 16,temp
+	arg 16,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+keyboard_load_otp_info_check_page_loop:
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+	branch keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	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:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+keyboard_load_otp_info_check_first_time_loop:
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+	branch keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	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	//4
+	rtn
+keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fc0
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,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_device_24g_addr
+	fetch 4,mem_device_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	fetcht 2,mem_otp_read_retention_memory+14
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	branch hid_device_select_reconn_device
+
+
+keyboard_load_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_load_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_load_eeprom_info,true
+keyboard_load_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+keyboard_load_info_check:
+	bpatch patch07_7,mem_patch07
+	call keyboard_app_initflag_check
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_info_24g
+	beq MODE_BT_DEVICE1,keyboard_load_info_bt1
+	beq MODE_BT_DEVICE2,keyboard_load_info_bt2
+	beq MODE_BT_DEVICE3,keyboard_load_info_bt3
+	beq MODE_USB_DEVICE,keyboard_load_info_usb
+keyboard_load_info_24g:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_24g_fn_lock
+keyboard_load_info_fn_lock:
+	sub pdata,1,null
+	ncall set_pdata_0,zero
+	store 1,mem_keyboard_fn_lock_flag
+	rtn
+keyboard_load_info_bt1:
+	fetch 1,mem_keyboard_bt1_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt1_computer_system
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+keyboard_load_info_bt:
+	store 1,mem_kb_computer_system
+	fetcht 2,mem_random_addr_increase_count
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	rtn
+keyboard_load_info_bt2:
+	fetch 1,mem_keyboard_bt2_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt2_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_bt3:
+	fetch 1,mem_keyboard_bt3_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt3_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_usb:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_usb_fn_lock
+	branch keyboard_load_info_fn_lock
+
+keyboard_app_initflag_check:
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+	storet 2,mem_store_flag
+	call hid_device_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
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info
+
+keyboard_load_flash_info:
+	call hid_device_load_flash_info_check
+	branch keyboard_load_info_check
+
+keyboard_store_device_info:
+	bpatch patch08_0,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_store_otp_device_info
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_eeprom_device_info
+	bbit1 KEYBOARD_ENABLE_FLASH,hid_device_store_flash_device_info
+	rtn
+
+keyboard_store_otp_device_info:
+	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 0x1fc0
+	isub temp,regb
+	arg mem_device_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:
+	jam 1,mem_otp_store_device_info_flag
+	fetch 1,mem_otp_store_system_flag
+	rtn blank
+keyboard_wirte_otp_ble:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,pdata
+	store 2,mem_pdatatemp
+
+	copy pdata,regb
+	arg mem_kb_computer_system,rega
+	arg 1,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */
+
+	fetch 2,mem_pdatatemp
+	add pdata,1,regb
+	arg mem_device1_type,rega
+	arg 13,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */
+
+	fetch 2,mem_pdatatemp
+	add pdata,14,regb
+	arg mem_random_addr_increase_count,rega
+	arg 2,loopcnt
+	call otp_write  /* regb = otp address, rega pointers data, loopcnt is count */
+
+	fetcht 2,mem_otp_read_retention_offset
+	increase 16,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+keyboard_store_eeprom_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_store_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_store_device_info_delay,true
+keyboard_store_eeprom_device_info_next:
+	call keyboard_eeprom_init
+keyboard_store_eeprom_device_info_typer_check:
+	fetch 1,mem_keyboard_device_info_store_flag
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,keyboard_store_eeprom_device_all_info
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,keyboard_store_eeprom_device_info_ble_addr
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,keyboard_store_eeprom_device_info_g24_addr
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,keyboard_store_eeprom_device_info_fn_lock
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,keyboard_store_eeprom_device_info_device_os
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,keyboard_store_eeprom_device_info_rgb_tpye
+	rtn
+keyboard_store_eeprom_device_all_info:
+	jam 0,mem_keyboard_device_info_store_flag
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+keyboard_store_eeprom_device_info_ble_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 39,temp
+	arg mem_device1_type,rega
+	arg KEYBOARD_BLE_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_g24_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_device_24g_addr,rega
+	arg KEYBOARD_G24_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_fn_lock:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 5,temp
+	arg mem_keyboard_24g_fn_lock,rega
+	arg KEYBOARD_FN_FLAG_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_device_os:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 3,temp
+	arg mem_keyboard_bt1_computer_system,rega
+	arg KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_rgb_tpye:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_backlight_on_flag,rega
+	arg KEYBOARD_RGB_TPYE_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+
+keyboard_store_device_number:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+keyboard_eeprom_init:
+	call iicd_read_init_pin
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_ENABLE_2K_EEPROM,pdata
+	branch set_eeprom_size_2k,true
+	branch clear_eeprom_size_2k
+////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////cb_function//////////////////////////////////////////////////////
+keyboard_cb_fuction:
+	bpatch patch08_1,mem_patch08
+	setarg hid_device_before_lpm_set
+	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
+	branch hid_device_cb_fuction
+
+/////////////////////////////////////keyboard event/////////////////////////////////////////////////////////////////////
+
+keyboard_priority_bb_event:
+	bpatch patch08_2,mem_patch08
+	copy regc,pdata
+
+	beq BT_EVT_LE_START_ENC,keyboard_le_ll_start_encryt
+	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 timer/////////////////////////////////////////////////////////////////////
+
+keyboard_bb_event_timer:
+	bpatch patch08_3,mem_patch08
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call keyboard_device_pair_led_timer
+
+	//key
+	call keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	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
+
+	//le
+	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 keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+////////////////////////////////////////////////////////////////adc/////////////////////////////////////////////
+keyboard_adc_vol_init:
+	bpatch patch08_4,mem_patch08
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_1V5,keyboard_adc_vol_1v5_init
+	beq KEYBOARD_BATTARY_3V0,keyboard_adc_vol_3v0_init
+	beq KEYBOARD_BATTARY_4V2,keyboard_adc_vol_4v2_init
+keyboard_adc_vol_1v5_init:
+	setarg 0x560094		// 0x0094--1.5V  0x0056--0.9V  0x0060--1.0V  0x006d--1.1V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x006d00
+	istore 3,contw
+	rtn
+keyboard_adc_vol_3v0_init:
+	setarg 0xd4012c		// 0x0094--3.0V  0x00d4--2.1V  0x00dc--2.2V  0x00e6--2.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x00e600
+	istore 3,contw
+	rtn
+keyboard_adc_vol_4v2_init:
+	setarg 0x2c01270		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014001
+	istore 3,contw
+	rtn
+
+keyboard_adc_init:
+	call keyboard_adc_gpio_set
+	branch keyboard_low_voltage_param_set
+
+keyboard_adc_gpio_set:
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel
+	call keyboard_channel_set_gpio
+	copy temp,pdata
+	store 1,mem_adc_channel_gpio
+	set1 GPIO_ACTIVE_BIT,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function
+
+keyboard_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
+	rtn
+
+keyboard_adc_read_start:
+	call keyboard_adc_init
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_device_vdd_now_vol
+	arg mem_device_vdd_calculate_set,rega
+	branch mouse_adc_bat_percent_lowpower_out
+
+keyboard_adc_read:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	call keyboard_adc_read_start
+keyboard_adc_data_process:
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+	bbit0 0,keyboard_adc_no_low_voltage
+	jam 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_adc_low_voltage
+
+keyboard_adc_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_adc_no_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	call keyboard_disable_function_flag
+	jam 12,mem_keyboard_adc_low_volatage_led_timer_count
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_led_off
+
+keyboard_adc_gpio_set_before_hibernate:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	branch mouse_adc_gpio_set_before_hibernate+2
+
+keyboard_low_voltage_param_set:
+	fetch 6,mem_keyboard_vdd_full_vol
+	store 6,mem_device_vdd_full_vol
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_param_reset,blank
+	fetch 2,mem_keyboard_vdd_low_vol
+	increase 5,pdata
+	store 2,mem_device_vdd_low_vol
+	rtn
+keyboard_low_voltage_param_reset:
+	fetch 2,mem_keyboard_vdd_low_vol
+	store 2,mem_device_vdd_low_vol
+	rtn
+
+keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	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:
+	setarg 160			// 320ms
+	call keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch keyboard_mult_auto_get
+
+keyboard_mult_auto_get:
+	fetcht 2,mem_le_interval_min
+	idiv temp
+	call get_div_result
+	store 1,mem_lpm_mult_init
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+
+
+////////////////////////////////////////////////////adc end///////////////////////////////////////////////
+
+///////////////////////////////////////////////////led///////////////////////////////////////////////////////
+keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	rtnbit0 KEYBOARD_ENABLE_LOW_LED
+	rtnbit0 KEYBOARD_LOW_VOLTAGE_FLAG
+	bbit1 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,keyboard_low_voltage_led_blink_new_data
+	bpatch patch08_5,mem_patch08
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall keyboard_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,keyboard_low_voltage_led_on
+	beq 4,keyboard_low_voltage_led_off
+	beq 6,keyboard_low_voltage_led_on
+	beq 8,keyboard_low_voltage_led_off
+	rtn
+keyboard_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_keyboard_adc_low_volatage_led_timer_count
+	branch keyboard_low_voltage_led_off
+
+keyboard_low_voltage_led_blink_new_data:
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_adc_low_volatage_led_blink_timer
+	isub temp,null
+	nbranch keyboard_low_voltage_led_off,positive
+	jam 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_low_voltage_led_on,positive
+	call keyboard_low_voltage_led_off
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_low_volatage_led_flag
+	rtn
+
+
+keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,keyboard_device_poweron_030_led
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+keyboard_device_poweron_030_led:
+	branch keyboard_power_led_off,blank
+keyboard_power_led_on:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_active
+keyboard_power_led_off:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_inactive
+
+keyboard_mode_led_timer:
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_mode_led_on_timer
+	bbit1 0,keyboard_device_led_on
+	branch keyboard_device_led_off
+
+
+keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_pair_led
+	fetch 2,mem_device_discovery_timer
+	rtn blank
+	branch keyboard_device_pair_led
+
+keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	rtn blank
+keyboard_device_pair_led:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate0 KEYBOARD_ENABLE_030_POWER_LED,pdata
+	call keyboard_device_clear_power_timer,true
+	fetch 1,mem_keyboard_pair_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_device_led_on,positive
+	call keyboard_device_led_off
+	fetch 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_pair_led_flag
+	rtn
+
+keyboard_device_clear_power_timer:
+	jam 0,mem_keyboard_device_poweron_timer
+	rtn
+
+keyboard_device_led_all_off:
+	bpatch patch08_6,mem_patch08
+	call keyboard_power_led_off
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_device_led_off:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_off
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_off
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_off
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_off
+	rtn
+
+keyboard_device_led_on:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_on
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_on
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_on
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_on
+	rtn
+
+keyboard_device_24g_led_off:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt1_led_off:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt2_led_off:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt3_led_off:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_24g_led_on:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt1_led_on:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt2_led_on:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt3_led_on:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_active
+
+keyboard_low_voltage_led_on:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_active
+
+keyboard_low_voltage_led_off:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_inactive
+
+
+keyboard_num_capslock_led_on_timer:
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_led_check
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_num_caps_scoll_led_on_timer
+	isub temp,pdata
+	branch keyboard_num_cap_scoll_led_check,positive
+	call keyboard_numlock_led_off
+	call keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_usb_led_check:
+	fetch 1,mem_24g_led_status
+	store 1,mem_keyboard_led_status
+	branch keyboard_num_cap_scoll_led_check
+
+keyboard_num_cap_scoll_led_check:
+	call keyboard_numlock_led_check_on
+	call keyboard_scrolllock_led_check_on
+	branch keyboard_capslock_led_check_on
+
+keyboard_numlock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_NUMLOCK,keyboard_numlock_led_off
+keyboard_numlock_led_on:
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_active
+keyboard_numlock_led_off:
+	fetcht 1,mem_keyboard_num_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_capslock_led_off:
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_inactive
+
+keyboard_scrolllock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_SCROLLLOCK,keyboard_scrolllock_led_off
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_active
+keyboard_scrolllock_led_off:
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_on_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_rgb_on_timer
+	isub temp,pdata
+	rtn positive
+	jam 0,mem_backlight_on_flag
+	branch keyboard_rgb_off
+
+////////////////////////////////////////backlight pwm//////////////////////////////////////////////////////////
+keyboard_pwm_init:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	arg 0,rega 	//sys clk 12mhz
+	call pwm_init
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	call pwm_out_set
+	fetch 2,mem_rgb_pwm_conf
+	branch pwm_disable
+
+keyboard_rgb_pwm_disable:
+	fetch 1,mem_keyboard_led_r_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_g_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_b_gpio
+	branch pwm_disable
+
+keyboard_rgb_pwm_set:
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	branch pwm_out_set
+
+keyboard_load_rgb:
+	bpatch patch08_7,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 1,mem_backlight_on_flag
+	call keyboard_rgb_mode_switch_next
+	fetch 1,mem_backlight_on_type
+	branch keyboard_rgb_on_type_switch_next
+
+keyboard_rgb_mode_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	call keyboard_store_eeprom_or_flash
+	jam 0,mem_backlight_breathe_type
+	jam 0,mem_rgb_pwm_breathe_flag
+	jam 10,mem_rgb_pwm_conf+5
+	fetch 1,mem_backlight_on_flag
+	increase 1,pdata
+keyboard_rgb_mode_switch_next:
+	sub pdata,RGB_BACKLIGHT_STATUS_BREATHE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_flag
+	rtn
+
+keyboard_rgb_on_type_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_backlight_on_flag
+	rtnne RGB_BACKLIGHT_STATUS_ON
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	call keyboard_store_eeprom_or_flash
+	fetch 1,mem_backlight_on_type
+	increase 1,pdata
+keyboard_rgb_on_type_switch_next:
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	rtn
+
+keyboard_rgb_process:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetcht 4,mem_ui_check_timer_setup
+	copy clkn_bt,pdata
+	isub temp,pdata
+	fetcht 2,mem_customize_timer_setup		// * 0.3125ms
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn blank
+	copy clkn_bt,temp
+	storet 4,mem_ui_check_timer_setup
+	fetch 1,mem_backlight_on_flag
+	beq RGB_BACKLIGHT_STATUS_BREATHE,keyboard_rbg_breathe_process
+	beq RGB_BACKLIGHT_STATUS_ON,keyboard_rgb_on_process
+	jam 0,mem_backlight_on_flag
+keyboard_rgb_off:
+	bpatch patch09_0,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_rgb_pwm_disable
+	jam 0,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+keyboard_rbg_breathe_process:
+	fetch 1,mem_rgb_pwm_breathe_flag
+	branch keyboard_rbg_breathe_up,blank
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,5,null
+	branch keyboard_rbg_breathe_color_switch,positive
+	increase -1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	branch keyboard_rgb_pwm
+
+keyboard_rbg_breathe_up:
+	fetch 1,mem_rgb_pwm_conf+5
+	increase 1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	call keyboard_rgb_pwm
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,90,null
+	rtn positive
+	jam 1,mem_rgb_pwm_breathe_flag
+	rtn
+
+keyboard_rbg_breathe_color_switch:
+	jam 0,mem_rgb_pwm_breathe_flag
+	fetch 1,mem_backlight_breathe_type
+	increase 1,pdata
+	sub pdata,RGB_BACKLIGHT_BREATHE_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_breathe_type
+	rtn
+
+keyboard_rgb_pwm:
+	call keyboard_pwm_init
+	call keyboard_rgb_off+4
+	branch keyboard_breathe_tpye_select
+
+keyboard_breathe_tpye_select:
+	fetch 1,mem_backlight_breathe_type
+	beq RGB_BACKLIGHT_BREATHE_TPYE_RED,keyboard_breathe_tpye_red
+	beq RGB_BACKLIGHT_BREATHE_TPYE_GREEN,keyboard_breathe_tpye_green
+	beq RGB_BACKLIGHT_BREATHE_TPYE_BLUE,keyboard_breathe_tpye_blue
+	beq RGB_BACKLIGHT_BREATHE_TPYE_CYAN,keyboard_breathe_tpye_cyan
+	beq RGB_BACKLIGHT_BREATHE_TPYE_ORANGE,keyboard_breathe_tpye_orange
+	beq RGB_BACKLIGHT_BREATHE_TPYE_PURPLE,keyboard_breathe_tpye_purple
+	beq RGB_BACKLIGHT_BREATHE_TPYE_WHITE,keyboard_breathe_tpye_white
+keyboard_breathe_tpye_red:
+	fetch 1,mem_keyboard_led_r_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x01
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_green:
+	fetch 1,mem_keyboard_led_g_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x02
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_blue:
+	fetch 1,mem_keyboard_led_b_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x04
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_cyan:
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_orange:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_green
+
+keyboard_breathe_tpye_purple:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_white:
+	call keyboard_breathe_tpye_red
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_rgb_on_process:
+	call keyboard_rgb_pwm_disable
+	fetch 1,mem_backlight_on_type
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	arg mem_rgb_on_color,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+
+keyboard_rgb_led_control:
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_RED_STATUS,pdata
+	call keyboard_rgb_red_led_on,true
+	ncall keyboard_rgb_red_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_GREEN_STATUS,pdata
+	call keyboard_rgb_green_led_on,true
+	ncall keyboard_rgb_green_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_BLUE_STATUS,pdata
+	call keyboard_rgb_blue_led_on,true
+	ncall keyboard_rgb_blue_led_off,true
+	rtn
+
+keyboard_rgb_red_led_on:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_red_led_off:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_active
+
+keyboard_rgb_green_led_on:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_green_led_off:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_active
+
+keyboard_rgb_blue_led_on:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_blue_led_off:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_active
+
+////////////////////////////////////////////////////led end////////////////////////////////////////////////////////
+
+///////////////////////////event timer///////////////////////////////////////////////////////////////////////////
+keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,keyboard_device_select_g24_press_timer
+	call keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,keyboard_device_select_bt_press_timer
+	branch keyboard_device_select_bt_nopress_timer
+
+keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_commbination_key_process:
+	fetch 1,mem_commbination_key_statue
+	rtnne COMMBINATION_KEY_STATE_DOWN
+	arg mem_combination_ui_button_count,regc
+	arg keyboard_commbination_key_press_type_check,regb
+	branch timer_single_step
+
+keyboard_commbination_key_press_type_check:
+	fetch 1,mem_keyboard_commbination_press_type
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,keyboard_24g_start_pair_mode
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,keyboard_long_button_bt_discovery
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mouse_bluetooth_fast_conn_init
+	rtn
+
+
+keyboard_check_discovery_timeout_timer:
+	arg mem_device_discovery_timer,regc
+	arg keyboard_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_discovery_timeout:
+	call keyboard_stop_discovery
+	branch keyboard_power_down
+
+keyboard_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg keyboard_store_device_info,regb
+	branch timer_single_step
+
+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_device_direct_timer,regc
+	arg keyboard_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+keyboard_check_direct_timeout:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,keyboard_start_discovery
+	branch mouse_app_enter_hibernate
+
+
+keyboard_le_battery_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+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
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	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_same_key_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 keyboard_power_down
+
+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_usb_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_usb_wait_updata_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_usb_wait_updata_timer
+	nrtn blank
+	jam 1,mem_lpm_mode
+	branch keyboard_power_down
+
+keyboard_check_no_data_timeout_timer:
+	fetch 1,mem_usb_vdd_status_current
+	rtneq USB_INTERFACE_INSERT
+	arg mem_device_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 process///////////////////////////////////////////////////////////////////////////////
+keyboard_idle:
+	bpatch patch09_1,mem_patch09
+	call kscan_dispatch
+	call keyboard_rgb_process
+	call keyboard_usb_isr
+	call keyboard_usb_mode
+	branch keyboard_check_select_device_by_switch
+
+keyboard_check_select_device_by_switch:
+	bpatch patch09_2,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch keyboard_check_select_device_by_switch_gnd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd_check:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	nbranch keyboard_check_select_device_by_switch_vdd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_check_select_device_by_switch_gnd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_stop_bluetooth_mode
+keyboard_check_select_24g_device:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_24g_stop
+
+keyboard_start_work:
+	bpatch patch09_3,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_start_work_next
+	call keyboard_adc_read_start
+	fetch 2,mem_device_vdd_empty_vol
+	div pdata,2
+	call get_div_result
+	fetcht 2,mem_device_vdd_now_vol
+	isub temp,null
+	branch keyboard_start_work,positive 	// now vol < empty vol/2  check again
+	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,keyboard_24g_start_mode
+	call mouse_bluetooth_fast_conn_disable
+	beq MODE_BT_DEVICE1,keyboard_start_ble1_reconnect
+	beq MODE_BT_DEVICE2,keyboard_start_ble2_reconnect
+	beq MODE_BT_DEVICE3,keyboard_start_ble3_reconnect
+keyboard_start_ble1_reconnect:
+	fetch 6,mem_device1_addr
+keyboard_start_ble_reconnect:
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+
+keyboard_start_ble2_reconnect:
+	fetch 6,mem_device2_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_start_ble3_reconnect:
+	fetch 6,mem_device3_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_24g_start_mode:
+	call keyboard_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	branch mouse_24g_reconn_general_dongle
+
+/***********************************kscan and value process***********************************************/
+kscan_dispatch:
+	bpatch patch09_4,mem_patch09
+	call keyboard_keyscan
+	call keyboard_key_process
+	branch keyboard_special_key_check
+
+keyboard_keyscan:
+	call keyboard_gpio_init
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+keyboard_keyscan_wait_wake_next:
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch keyboard_keyscan_wait_wake_next,true
+
+	call keyboard_keyscan_get_exmcu_value
+	call keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	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 12 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,11,null
+	branch keyboard_compare_col_excol_gpio_loop,positive
+	call keyboard_gpio_pu_idle
+	branch keyboard_key_row_init
+
+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*12 times
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	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,11,null
+	branch keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+
+
+keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	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:
+	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
+	call gpio_out_active
+	call keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_out_inactive
+	ifetcht 1,regb
+	call device_gpio_config_input_pu
+keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch keyboard_keyscan_mcu_start,positive
+	rtn
+
+
+keyboard_keyscan_get_col_value:
+	bpatch patch09_5,mem_patch09
+	nop 120
+	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_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_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
+	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_keyboard_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
+	bpatch patch09_6,mem_patch09
+	call keyboard_keyvalue_normal_replace
+	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
+	sub pdata,7,null
+	branch keyboard_keyvalue_change,positive
+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
+	nbranch keyboard_load_rgb,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_load_rgb,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_load_rgb,blank
+
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_NULL
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+/************************************ghost key ******************************************/
+//**input:mem_keyscan_value_current   **output:mem_keyboard_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 patch09_7,mem_patch09
+	jam 0,mem_keyboard_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
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+	jam 1,mem_keyboard_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_normal_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_RIGHT_ALT,keyboard_rgb_on_type_switch
+	beq HID_KEY_RIGHT_GUI,keyboard_rgb_mode_switch
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	rtn
+
+keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_fn_lock_check
+	fetch 1,mem_keyboard_fn_lock_flag
+	branch keyboard_fn_lock_check+1
+keyboard_fn_lock_check:
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	rtn zero
+	bpatch patch0a_0,mem_patch0a
+	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_esc:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_keyvalue_fn_esc_next
+	fetch 1,mem_keyboard_fn_esc
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	rtn zero
+keyboard_keyvalue_fn_esc_next:
+	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_replace_press:
+	bpatch patch0a_1,mem_patch0a
+	call keyboard_keyvalue_fn_lock_replace
+	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
+	beq HID_KEY_Q,keyboard_keyvalue_os_android
+	beq HID_KEY_W,keyboard_keyvalue_os_windows
+	beq HID_KEY_E,keyboard_keyvalue_os_ios
+	rtn
+
+keyboard_keyvalue_fn_lock_replace:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LOCK
+	fetch 1,mem_keyboard_keyvalue_temp
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	nrtn zero
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_fn_lock_flag
+	increase 1,pdata
+	and_into 0x01,pdata
+	store 1,mem_keyboard_fn_lock_flag
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_keyvalue_fn_lock_24g
+	beq MODE_BT_DEVICE1,keyboard_keyvalue_fn_lock_bt1
+	beq MODE_BT_DEVICE2,keyboard_keyvalue_fn_lock_bt2
+	beq MODE_BT_DEVICE3,keyboard_keyvalue_fn_lock_bt3
+	beq MODE_USB_DEVICE,keyboard_keyvalue_fn_lock_usb
+keyboard_keyvalue_fn_lock_24g:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_24g_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt1:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt1_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt2:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt2_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt3:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt3_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_usb:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_usb_fn_lock
+	branch keyboard_store_eeprom_or_flash
+
+keyboard_keyvalue_fn_up_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_UP
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_down_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_DOWN
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_HOME
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_right_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_END
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_ctrl:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	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 KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+	setarg HID_KEY_LANGUAGE
+keyboard_keyvalue_store_temp:
+	store 1,mem_keyboard_keyvalue_temp
+	rtn
+
+keyboard_keyvalue_os_android:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_ANDROID,mem_kb_computer_system
+keyboard_keyvalue_os_switch_end:
+	jam 6,mem_keyboard_mode_led_on_timer
+	call keyboard_store_computer_system
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+keyboard_store_eeprom_or_flash:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_OTP
+keyboard_store_device_info_delay:
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+keyboard_keyvalue_os_windows:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_os_ios:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_clear_temp:
+	setarg 0
+	branch keyboard_keyvalue_store_temp
+
+keyboard_store_computer_system:
+	bpatch patch0a_2,mem_patch0a
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	rtneq MODE_USB_DEVICE
+	beq MODE_BT_DEVICE1,keyboard_store_computer_system_bt1
+	beq MODE_BT_DEVICE2,keyboard_store_computer_system_bt2
+	beq MODE_BT_DEVICE3,keyboard_store_computer_system_bt3
+keyboard_store_computer_system_bt1:
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt1_computer_system
+	rtn
+keyboard_store_computer_system_bt2:
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt2_computer_system
+	rtn
+keyboard_store_computer_system_bt3:
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt3_computer_system
+	rtn
+/**********************************key value process*******************************/
+
+
+
+/*******************************commbine keyvalue *************************************/
+keyboard_keyvalue_commbination_replace:
+	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_SEARCH,keyboard_commbination_search
+	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
+	rtnbit0 0
+	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_ANDROID
+	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_ANDROID
+	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_ANDROID,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_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,keyboard_commbination_mac_search
+	setarg HID_KEY_AC_SEARCH
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_mac_search:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_language:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_language_windows
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_language_android
+	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_android:
+	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_ANDROID,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:
+	fetch 1,mem_keyboard_keyvalue_temp
+	arg HID_KEY_LEFT_CTRL,temp
+	isub temp,null
+	nbranch keyboard_keyvalue_standard,positive		// value < 0xe0
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_keyvalue_consumer,positive		// value  > 0xe7
+	and_into 0x07,pdata
+	copy pdata,queue
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_control_key_in
+keyboard_keyvalue_control_key_out:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+keyboard_keyvalue_control_key_in:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+
+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
+	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
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_out_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_out_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset0 pdata
+	branch istore_1_contw_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
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_in_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_in_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset1 pdata
+	branch istore_1_contw_rtn
+
+keyboard_keyvalue_standard_in_data:
+	increase -1,contr
+	istoret 1,contr
+	rtn
+
+keyboard_keyvalue_n_key_rollover_data_in_out:
+	bpatch patch0a_3,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	sub pdata,0x70,null
+	nrtn positive		// keyboard value 14byte
+	jam 1,mem_keboard_n_key_rollover_send_flag
+	jam 1,mem_keyboard_data_change_flag
+	div pdata,8
+	call wait_div_end
+	quotient pdata
+	remainder queue
+	arg mem_keyboard_n_key_rollover_data+1,contw
+	iadd contw,contw
+	setarg 0
+	rtn
+
+keyboard_keyvalue_consumer:
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate0 0,pdata
+	call keyboard_consumer_key_release_status,true
+	branch keyboard_keyvalue_standard
+
+keyboard_consumer_key_release_status:
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+	rtn
+
+/******************************** special key ****************************************************/
+// check Fn,pairing button,control key
+keyboard_special_key_check:
+	call keyboard_pairing_button_check
+	call keyboard_device_select
+	jam 0,mem_keyboard_fn_flag
+	jam 0,mem_keyboard_control_key_flag
+	jam 0,mem_keyboard_alt_flag
+	jam 0,mem_keyboard_shift_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
+
+	call keyboard_commbination_key_press_check
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	rtn
+
+keyboard_commbination_key_press_check:
+	bpatch patch0a_4,mem_patch0a
+	jam 0,mem_keyboard_commbination_press_type
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_commbination_key_press_check_bt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_press_check_bt:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_fast_conn_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY,mouse_commbination_key_up
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_down_24g:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt_fast_conn:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+
+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_device_select:
+	call disable_user
+	call keyboard_device_select_g24
+	call keyboard_device_select_bt1
+	call keyboard_device_select_bt2
+	call keyboard_device_select_bt3
+	call keyboard_device_select_usb
+	branch keyboard_clear_change_flag,user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+
+keyboard_clear_change_flag:
+	jam 0,mem_keyboard_data_change_flag
+	rtn
+
+keyboard_device_select_g24:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G
+	fetch 1,mem_keyboard_switch_device_to_g24
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_g24+1
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	rtn
+
+keyboard_device_select_g24_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	jam 1,mem_keyboard_switch_g24_enable
+	rtn
+
+keyboard_device_select_bt1:
+	fetch 1,mem_keyboard_switch_device_to_bt1
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt1+1
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	rtn
+
+keyboard_device_select_bt1_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt2:
+	fetch 1,mem_keyboard_switch_device_to_bt2
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt2+1
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	rtn
+
+keyboard_device_select_bt2_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE2
+	jam MODE_BT_DEVICE2,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt3:
+	fetch 1,mem_keyboard_switch_device_to_bt3
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt3+1
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	rtn
+
+keyboard_device_select_bt3_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE3
+	jam MODE_BT_DEVICE3,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt_set_press_flag:
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+
+keyboard_device_select_usb:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_keyboard_switch_device_to_usb
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_usb+1
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	rtn
+
+keyboard_device_select_usb_press:
+	call enable_user
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	jam MODE_USB_DEVICE,mem_device_flag
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_pairing_button_check:
+	fetch 1,mem_keyboard_pairing_type
+	nrtn blank
+	fetcht 1,mem_keyboard_pb_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_5,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:
+	bpatch patch0a_6,mem_patch0a
+	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_enable_function_flag
+	call app_evt_button_long_pressed
+	branch keyboard_bb_event_discovery_btn
+
+keyboard_24g_start_pair_mode:
+	bpatch patch0a_7,mem_patch0a
+	call keyboard_device_led_all_off
+	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_device_no_data_timer
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_reconn_type
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_stop_discovery
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+
+keyborad_control_key_set:
+	store 1,mem_keyboard_control_key_flag
+	and_into 0x44,pdata
+	ncall keyboard_alt_flag_set,blank
+	fetch 1,mem_keyboard_control_key_flag
+	and_into 0x22,pdata
+	rtn blank
+	jam 1,mem_keyboard_shift_flag
+	rtn
+keyboard_alt_flag_set:
+	jam 1,mem_keyboard_alt_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 patch0b_0,mem_patch0b
+	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
+	rtnne MODE_24G_DEVICE
+	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:
+	bpatch patch0b_1,mem_patch0b
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,keyboard_value_consumer_release
+	fetch 1,mem_keboard_n_key_rollover_send_flag
+	nbranch keyboard_motion_data_check_n_key_rollover_key,blank
+	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
+	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
+	bpatch patch0b_2,mem_patch0b
+	arg mem_keyboard_keyvalue_buffer,rega
+	arg mem_keyboard_tx_data+1,contw
+	arg 8,loopcnt
+keyboard_tx_data_store:
+	ifetcht 1,rega
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_tx_data_store_loop
+	sub temp,HID_KEY_FN,null
+	nbranch keyboard_tx_data_store_loop,zero
+	increase 1,rega
+	ifetcht 1,rega
+keyboard_tx_data_store_loop:
+	istoret 1,contw
+	increase 1,rega
+	loop keyboard_tx_data_store
+keyboard_motion_data_check_next:
+	bpatch patch0b_3,mem_patch0b
+	call keyboard_device_data_tpye_check
+
+	fetch 1,mem_keyboard_data_send_flag
+	beq DEVICE_DATA_TPYE_MOUSE,enable_user
+device_send_keyboard_data:
+	call mouse_customerkey_press
+	branch enable_user
+
+keyboard_motion_data_check_n_key_rollover_key:
+	jam 0,mem_keboard_n_key_rollover_send_flag
+	jam HID_REPORTID_N_KEY_ROLLOVER,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+keyboard_value_release_all_key:
+	arg mem_keyboard_n_key_rollover_data,contw
+	arg 15,loopcnt
+	call clear_mem
+	arg mem_keyboard_keyvalue_buffer,contw
+	arg 10,loopcnt
+	branch clear_mem
+////////////////////////////////////////////////////---fn---//////////////////////////////////////////////////////////
+keyboard_value_tpye_consumer_set:
+	copy pdata,temp
+	bpatch patch0b_4,mem_patch0b
+	copy temp,pdata
+	jam HID_REPORTID_BIT_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_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_MULTIKEY_PRE_TRACK,keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+keyboard_value_media:
+	setarg 0x000001
+keyboard_consumer_value_store:
+	store 3,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_vol_down:
+	setarg 0x000002
+	branch keyboard_consumer_value_store
+keyboard_value_vol_up:
+	setarg 0x000004
+	branch keyboard_consumer_value_store
+keyboard_value_mute:
+	setarg 0x000008
+	branch keyboard_consumer_value_store
+keyboard_value_pre_track:
+	setarg 0x000010
+	branch keyboard_consumer_value_store
+keyboard_value_next_track:
+	setarg 0x000020
+	branch keyboard_consumer_value_store
+keyboard_value_play:
+	setarg 0x000040
+	branch keyboard_consumer_value_store
+keyboard_value_stop:
+	setarg 0x000080
+	branch keyboard_consumer_value_store
+
+keyboard_value_ac_home:
+	setarg 0x000100
+	branch keyboard_consumer_value_store
+keyboard_value_mail:
+	setarg 0x000200
+	branch keyboard_consumer_value_store
+keyboard_value_my_computer:
+	setarg 0x000400
+	branch keyboard_consumer_value_store
+keyboard_value_ac_favorites:
+	setarg 0x000800
+	branch keyboard_consumer_value_store
+keyboard_value_calculator:
+	setarg 0x001000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_search:
+	setarg 0x002000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_back:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,keyboard_value_ac_home
+	setarg 0x004000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,keyboard_value_os_soft_kb_android
+	setarg 0x010000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb_android:
+	setarg 0x008000
+	branch keyboard_consumer_value_store
+
+keyboard_value_light_down:
+	setarg 0x020000
+	branch keyboard_consumer_value_store
+keyboard_value_light_up:
+	setarg 0x040000
+	branch keyboard_consumer_value_store
+keyboard_value_os_lock:
+	setarg 0x080000
+	branch keyboard_consumer_value_store
+
+keyboard_value_mac_eject:
+	setarg 0x100000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_forward:
+	setarg 0x200000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_stop:
+	setarg 0x400000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_refresh:
+	setarg 0x800000
+	branch keyboard_consumer_value_store
+
+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 HID_REPORTID_BIT_CONSUMER_KEY
+	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:
+	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:
+	call hid_device_clear_key_data
+	jam DEVICE_DATA_TPYE_KEYBOARD,mem_keyboard_data_send_flag
+	bpatch patch0b_5,mem_patch0b
+	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_BIT_CONSUMER_KEY,keyboard_bit_consumer_data_send
+	beq HID_REPORTID_SYSTEM_CTRL,keyboard_system_control_data_send
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_n_key_rollover_send
+	rtn
+
+keyboard_mouse_data_send:
+	jam DEVICE_DATA_TPYE_MOUSE,mem_keyboard_data_send_flag
+	arg mem_keyboard_tx_data+1,contr
+	arg mem_mouse_key,contw
+	arg 7,loopcnt
+	branch memcpy
+
+keyboard_standard_data_send:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,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:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyboard_magic_data_send
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 9,loopcnt
+	branch memcpy
+
+keyboard_magic_data_send:
+	jam 0,mem_keyboard_tx_data+9
+	fetch 1,mem_keyboard_fn_flag
+	branch keyboard_magic_data_send_end,blank
+	jam 1,mem_keyboard_tx_data+9
+keyboard_magic_data_send_end:
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 10,loopcnt
+	branch memcpy
+
+keyboard_consumer_data_send:
+	setarg HID_REPORTID_CONSUMER_KEY
+keyboard_consumer_data_store:
+	store 1,mem_customer_key_press
+	fetch 3,mem_keyboard_tx_data+1
+	store 3,mem_customer_key_press+1
+	rtn
+
+keyboard_bit_consumer_data_send:
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	branch keyboard_consumer_data_store
+
+keyboard_system_control_data_send:
+	setarg HID_REPORTID_SYSTEM_CTRL
+	store 1,mem_customer_key_press
+	fetch 1,mem_keyboard_tx_data+1
+	store 1,mem_customer_key_press+1
+	rtn
+
+keyboard_n_key_rollover_send:
+	setarg HID_REPORTID_N_KEY_ROLLOVER
+	store 1,mem_customer_key_press
+	rtn
+
+////////////////////////////////////////lpm/////////////////////////////////////////////////////////////////////////
+
+keyboard_lpm_before_common:
+	bpatch patch0b_6,mem_patch0b
+	call clear_wake
+
+	fetcht 1,mem_keyboard_pb_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
+
+	call keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+
+	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 keyboard_key_row_wake_set,zero
+	increase 1,regb
+	loop keyboard_key_row_wake_init
+
+	call lpm_puchk_set_check
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	branch keyboard_adc_gpio_set_before_hibernate
+
+keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	branch keyboard_lpm_before_common
+
+keyboard_before_hibernate:
+	bpatch patch0b_7,mem_patch0b
+	call disable_authrom
+	branch keyboard_setgpio_hibernate
+
+
+keyboard_power_down:
+	bpatch patch0c_0,mem_patch0c
+	call keyboard_device_led_all_off
+keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+keyboard_setgpio_hibernate:
+	bpatch patch0c_1,mem_patch0c
+	call clear_wake
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	branch keyboard_lpm_before_common
+
+////////////////////////////////////////24g/////////////////////////////////////////////////////////////////////////
+keyboard_24g_pairing_complete:
+	call keyboard_get_24g_led_enable
+	call mouse_no_data_timer_init
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_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_device_24g_addr
+	call keyboard_24g_fast_conn_check
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_24g_attempt_success:
+	call keyboard_get_24g_led_enable
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call keyboard_24g_fast_conn_check
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	branch mouse_no_data_timer_init
+
+keyboard_24g_fast_conn_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch mouse_bluetooth_fast_conn_disable,zero
+	jam 0xff,mem_device_fast_conn_flag
+	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 FAST_CONN_AND_RECEIVER,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 keyboard_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_power_down
+	rtn
+
+keyboard_24g_fast_conn_attempt_fail:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_compare_addr
+	isub temp,null
+	branch keyboard_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_dongle_start
+
+keyboard_24g_hibernate_set:
+	bpatch patch0c_2,mem_patch0c
+	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_24g_shutdown_flag
+	branch keyboard_g24_long_sleep
+
+
+keyboard_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	branch keyboard_disable_function_flag
+
+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 hid_device_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_next,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_g24_transmit_start_next,blank
+	call g24_search_receiver
+keyboard_g24_long_sleep:
+	call keyboard_g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 1,mem_24g_shutdown_flag
+	ncall keyboard_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+keyboard_g24_transmit_process:
+	bpatch patch0c_3,mem_patch0c
+	jam 0,mem_24g_retry
+keyboard_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	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 hid_device_g24_ackpayload_parse
+	jam 0,mem_24g_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
+	fetch 1,mem_24g_retry
+	increase 1,pdata
+	store 1,mem_24g_retry
+	and_into 0x03,pdata
+	branch keyboard_g24_tx_fast_hop,blank		//each 4 times change channel
+	branch keyboard_g24_transmit_loop
+
+keyboard_g24_tx_fast_hop:
+	call kscan_dispatch
+	fetch 1,mem_keyboard_switch_device_flag
+	nbranch soft_reset_chip,blank
+	fetch 1,mem_keyboard_commbination_press_type
+	nbranch g24_transmit_no_ack,blank
+	call g24_tx_fast_hop
+	branch keyboard_g24_transmit_loop
+
+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_FACTORY,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 patch0c_4,mem_patch0c
+	call keyboard_g24_lpm_wait
+	branch g24_short_sleep+2
+
+keyboard_24g_package_data:
+	rtnmark0 mark_24g
+	call keyboard_motion
+	nrtn user
+	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
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_24g_keyboard_package_n_key_rollover_data
+	arg 10,rega	//length
+	branch hid_device_24g_keyboard_package_data_set
+
+keyboard_24g_keyboard_package_n_key_rollover_data:
+	store 1,mem_keyboard_n_key_rollover_data
+	arg 15,rega
+	arg mem_keyboard_n_key_rollover_data,regb
+	rtn
+
+/**************************************g24 search receiver*****************************************/
+keyboard_24g_search_dongle:
+	bpatch patch0c_5,mem_patch0c
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+	branch hid_device_24g_search_dongle
+
+/////////////////////////////////////////////////////// ble ////////////////////////////////////////////////////////////
+keyboard_le:
+	bpatch patch0c_6,mem_patch0c
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_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 KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+	call mouse_wheel_trigger
+	branch hid_device_send_package_data_check
+
+keyboard_le_fill_n_key_rollover_key_data:
+	jam 14,mem_le_data_len
+	fetcht 2,mem_le_notify_handle
+	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_keyboard_n_key_rollover_data+1,contr
+	branch memcpy
+
+keyboard_le_fill_standard_key_data:
+	jam 9,mem_le_data_len
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyoard_le_fill_standard_key_data_send
+	jam 8,mem_le_data_len
+	branch keyoard_le_fill_standard_key_data_send
+
+keyboard_le_bb_event_connected:
+	call keyboard_load_rgb
+	jam 0,mem_mouse_long_mult_flag
+	jam 1,mem_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch keyboard_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_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_device_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_device_le_bb_connected_flag
+keyboard_le_bb_disconnected_next:
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	call le_clr_config_more_data
+	jam 0,mem_ltk_exists
+	branch keyboard_bb_disconnected
+keyboard_bb_disconnected:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,keyboard_le_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+keyboard_le_event_bb_disconn:
+	jam 0,mem_le_connect_status_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_power_down
+
+keyboard_le_ll_start_encryt:
+	fetch 1,mem_device_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_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_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call keyboard_24g_stop,true
+	call mouse_disconnect
+	jam 0,mem_le_connect_status_flag
+	branch keyboard_start_discovery
+
+keyboard_start_discovery:
+	bpatch patch0c_7,mem_patch0c
+	call keyboard_device_led_all_off+2
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 2,mem_otp_store_device_info_flag
+	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 KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_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_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+keyboard_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch keyboard_stop_discovery
+
+keyboard_stop_discovery:
+	bpatch patch0d_0,mem_patch0d
+	setarg 0
+	store 2,mem_device_discovery_timer
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_disable_function_flag
+	call mouse_stop_le_adv
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_all_off+2,blank
+	rtn
+
+keyboard_store_remote_bdaddr:
+	bpatch patch0d_1,mem_patch0d
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_STORE_MEMORY_FLAG
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_disable_function_flag
+	call hid_device_check_device_addr
+	call hid_device_before_store_reconn_info
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+/////////////////////////////////////////////////////// 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_parse_att:
+	bpatch patch0d_2,mem_patch0d
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+// 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
+	rtn blank
+	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 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	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
+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 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	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
+
+keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	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_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_store_computer_system_ble
+keyboard_le_parse_att_find_mac_report:
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+keyboard_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_OTP,keyboard_store_computer_system_info
+	jam 1,mem_otp_store_system_flag
+	fetch 1,mem_otp_store_device_info_flag
+	rtn blank
+	branch keyboard_wirte_otp_ble
+
+keyboard_store_computer_system_info:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+keyboard_le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_att_type
+	setarg UUID_CHRCTR_PNP_ID
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_res_pnp_id,zero
+	branch le_send_att_read_by_type_response+8
+keyboard_le_send_att_read_by_type_res_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch le_send_att_read_by_type_response+8,blank
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 11,pdata		// length +1
+	branch le_send_att_read_by_type_res_not_characteristic+9
+
+keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	fetch 2,mem_le_att_offset
+	sub pdata,66,null
+	nbranch keyboard_le_send_att_read_blob_response,zero
+
+	setarg 23
+	copy pdata,rega
+	copy pdata,regc
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BLOB_RESPONSE
+	istore 1,contw
+	arg mem_keyboard_blob_response_consumer_customize,contr
+	add regc,-1,loopcnt
+	branch memcpy_fast
+
+keyboard_le_send_att_read_blob_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_blob_response
+	fetch 2,mem_keyboard_le_hid_map
+	copy pdata,contr
+	ifetch 2,contr
+	branch le_send_att_read_blob_response+3
+
+keyboard_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,keyboard_le_send_att_read_response_check_auth
+//input:temp is handle
+keyboard_le_send_att_read_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_le_send_att_read_response+3
+	bbit0 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL,keyboard_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+keyboard_le_send_att_read_response_next:
+	fetch 2,mem_le_att_handle
+	beq 0x05,keyboard_le_send_att_appearance
+	beq 0x10,keyboard_le_send_att_pnp_id
+keyboard_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_response
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_hid_map
+	copy temp,contr
+	ifetcht 2,contr
+	increase 1,temp
+	call not_greater_than
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_appearance:
+	arg mem_keybord_appearance,contr
+	force 3,pdata		// length +1
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch keyboard_le_send_att_read_response_next_1,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 8,pdata		// length +1
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch keyboard_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch keyboard_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+keyboard_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	call keyboard_le_parse_att_write_command+1		//MAC  CAPS
+	branch hid_device_le_parse_att_write_request
+
+keyboard_le_parse_att_write_command:
+	call le_parse_att_write_command
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_le_fast_conn_led_get
+	fetch 2,mem_le_att_handle
+	beq 0x25,keyboard_le_led_get
+	rtn
+keyboard_le_fast_conn_led_get:
+	fetch 2,mem_le_att_handle
+	beq 0x21,keyboard_le_led_get
+	rtn
+
+keyboard_le_led_get:
+	fetch 1,mem_le_rxbuf+9
+	store 1,mem_keyboard_led_status
+	rtn
+
+///////////////////////////////usb ///////////////////////////////////////////////////////////////////////
+keyboard_usb_mode_start:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call keyboard_usb_check_enable
+	branch keyboard_usb_interface_check_power_on
+
+keyboard_usb_check_enable:
+	fetch 9,mem_keyboard_usb_vid_pid
+	store 9,mem_usb_vid_pid
+	setarg keyboard_usb_config_param
+	store 2,mem_cb_usb_config
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status_current
+	rtn
+
+keyboard_usb_config_param:
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	jam 0x01,mem_usb_tx_interval
+	call usb_tx_interval_config
+	call keyboard_usb_vid_pid_config
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+keyboard_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_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_interface_check_power_on:	// last=0, current = insert
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_insert
+keyboard_usb_vdd_status_store:
+	fetch 1,mem_usb_vdd_status_current
+	store 1,mem_usb_vdd_status_last
+	rtn
+keyboard_usb_insert:
+	call keyboard_usb_vdd_status_store
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	fetch 1,mem_usb_wait_updata_timer
+	call usb_init,blank
+	jam 50,mem_usb_wait_updata_timer
+	rtn
+
+keyboard_usb_isr:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	branch usb_isr
+
+keyboard_usb_mode:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	jam 0,mem_usb_wait_updata_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	call keyboard_24g_stop
+	call keyboard_stop_bluetooth_mode
+	call keyboard_motion
+	nrtn user
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb
+	branch hid_device_push_mouse_data_to_usb
+
+keyboard_usb_tx_kb_normal_data:
+	jam 0,mem_usb_ep1_data
+	arg 9,loopcnt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,usb_tx_kb_normal_data+4
+	branch usb_tx_kb_normal_data+2
+
+keyboard_push_n_key_rollover_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_N_KEY_ROLLOVER,mem_usb_ep2_data
+	setarg KB_N_KEY_ROLLOVER_REPORT_ID
+	store 1,mem_usb_kb_n_key_rollvoer_data
+	arg mem_keyboard_n_key_rollover_data+1,contr
+	arg mem_usb_kb_n_key_rollvoer_data+1,contw
+	arg 14,loopcnt
+	branch memcpy
+
+////////////////////////////////public////////////////////////////////////
+keyboard_ui_ipc_send_event:
+	fetch 1,mem_fifo_temp
+	arg 8,loopcnt
+	arg mem_ipc_fifo_bt2c51,contr
+ui_ipc_fifo_check:
+	ifetcht 1,contr
+	isub temp,null
+	rtn zero
+	loop ui_ipc_fifo_check
+	branch ui_ipc_send_event+3
+
+keyboard_enable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset1 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+keyboard_disable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset0 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+
+keyboard_bt_discovery_button_down_enable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_bt_discovery_button_down_disable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_disable_function_flag
+
+
Index: GK308_keyboard_only_24g/program/app_module.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_module.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_module.prog	(working copy)
@@ -0,0 +1,1390 @@
+
+ifdef COMPILE_MODULE
+
+module_init:	
+	branch module_lpm_uart_init,wake
+//	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 patch0d_4,mem_patch0d
+	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 patch0d_5,mem_patch0d
+	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 patch0d_6,mem_patch0d
+	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 patch0d_7,mem_patch0d
+	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 patch0e_0,mem_patch0e
+	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 patch0e_1,mem_patch0e
+	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: GK308_keyboard_only_24g/program/app_mouse.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_mouse.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_mouse.prog	(working copy)
@@ -0,0 +1,5593 @@
+
+ifdef COMPILE_MOUSE
+mouse_init:
+	call enable_authrom
+	call mouse_wake_gpio_set,wake
+	call mouse_setting_config
+	call mouse_le_name_modify
+	call mouse_init_sunt
+	rtn wake
+	call mouse_usb_check_enable
+	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_once
+	branch mouse_start_work
+
+mouse_wake_gpio_set:
+	call mouse_matrix_public_gpio_reset
+	branch lpm_config_puchk_disable
+
+mouse_cb_fuction:
+	bpatch patch0e_2,mem_patch0e
+	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_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	branch hid_device_cb_fuction
+
+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_param_info_init
+//	call mouse_sensor_parm_init
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+mouse_load_device_info_check:
+	bpatch patch0e_3,mem_patch0e
+	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
+	jam 0,mem_mouse_sleep_deal_type
+	jam 0,mem_24g_disable_fec1
+	jam 0,mem_power_ctrl_disable
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 1,mem_mouse_sleep_deal_type
+	jam 1,mem_24g_disable_fec1
+	jam 1,mem_power_ctrl_disable
+	branch g24_enable_2M
+
+//*******************************recon dispatch set*************************//
+
+mouse_g24_reconn_dispatch_set:
+	bpatchx patch3e_0,mem_patch3e
+	fetch 1,mem_24g_rxdata_length	//ack payload length
+	branch mouse_receiver_addr_check,blank
+mouse_g24_reconn_dispatch:
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_mode_judge,zero
+	branch g24_reconn_dispatch_success
+
+mouse_receiver_addr_check:
+	fetch 4,mem_24g_fast_conn_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_dispatch,zero
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch mouse_g24_reconn_dispatch
+
+mouse_g24_reconn_mode_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_pair_mode_check
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_pair_mode_check
+	branch g24_reconn_receiver_addr
+
+mouse_g24_transmit_hop_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_2M_PHY,g24_transmit_hop_process_next
+mouse_g24_transmit_hop_process_new:
+	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 15,mouse_g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 20,g24_hop_ch_disable
+	beq 30,g24_hop_ch_disable
+	rtn
+
+mouse_g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 10,g24_hop_ch_disable
+	beq 15,g24_hop_ch_disable
+	rtn
+
+//**********************default parm init start********************//
+
+mouse_default_init:
+	bpatch patch0e_4,mem_patch0e
+	call hid_device_default_parm_init
+	call mouse_xtal_init
+	call mouse_24g_phy_select
+	call mouse_24g_long_sleep_set
+	branch g24_pair_param_init
+
+//**********************default parm init end********************//
+
+
+
+//**********************mouse parm init start********************//
+
+mouse_param_info_init:
+	bpatch patch0e_5,mem_patch0e
+	call mouse_param_common_init
+	call mouse_report_rate_parm_init
+	call mouse_sensor_set_angle
+mouse_spi_parm_init:
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+	rtn
+
+mouse_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	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
+
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_fast_conn_enable
+	jam 0,mem_mouse_pair_flag
+
+	call mouse_compare_addr_init
+	branch hid_device_param_common_init
+
+mouse_compare_addr_init:
+	arg 0,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+//==========set report start=========/
+
+mouse_report_rate_parm_init:
+	call mouse_24g_report_rate_parm_init
+	fetch 3,mem_24g_short_sleep_set
+	store 3,mem_mouse_24g_short_sleep_set_init
+mouse_le_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+	setarg LE_INTERVAL_7_5MS
+mouse_le_interval_store:
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	rtn
+
+mouse_24g_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_500Hz,mouse_g24_interval_param_2ms
+	bbit1 MOUSE_ENABLE_24G_250Hz,mouse_g24_interval_param_4ms
+	branch mouse_g24_interval_param_8ms
+
+mouse_g24_interval_param_2ms:
+	fetch 1,mem_mouse_24g_fast_hop_count_2ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_2ms
+	store 4,mem_mouse_24g_tsniff
+mouse_report_rate_set_500hz:
+	setarg 0x080606
+	store 3,mem_24g_interval
+	branch g24_transmit_by_interrupt_enable
+
+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 4,mem_mouse_24g_tsniff_4ms
+	store 4,mem_mouse_24g_tsniff
+
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+
+	jam 0x05,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x0f,mem_24g_fast_hop_count
+	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 4,mem_mouse_24g_tsniff_8ms
+	store 4,mem_mouse_24g_tsniff
+
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+
+	jam 0x0b,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x1e,mem_24g_fast_hop_count
+	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
+
+//==========set report end=========/
+
+
+//==========select sensor angle start=========/
+
+mouse_sensor_set_angle:
+	bpatch patch0e_6,mem_patch0e
+	call mouse_set_sensor_angle_float
+	fetch 1,mem_select_sensor_angle_gpio
+	rtneq GPIO_DISABLE
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_gnd,true
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_float,true
+mouse_set_sensor_angle_vin:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+	fetch 1,mem_sensor_angle_vin
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_gnd:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+	fetch 1,mem_sensor_angle_gnd
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_float:
+	fetch 1,mem_sensor_angle_default
+mouse_store_sensor_angle:
+	store 1,mem_config_sensor_angle
+	rtn
+
+//==========select sensor angle end=========/
+
+
+
+//**********************mouse parm init end********************//
+
+/***********************sensor parm init start*****************************/		//8650+S201 +ka8g2
+/*
+mouse_sensor_parm_init:
+	bpatch patch0e_7,mem_patch0e
+	call mouse_sensor_8650_parm_init
+	call mouse_sensor_ka8g2_parm_init
+	call mouse_sensor_3212_parm_init
+	call mouse_sensor_3205_parm_init
+	call mouse_sensor_3204_parm_init
+	call mouse_sensor_32xx_parm_init
+	call mouse_sensor_32xx_parm_init1
+	call mouse_sensor_p6520_parm_init
+	call mouse_sensor_ka8ul_parm_init
+	branch mem_sensor_8009_parm_init
+
+mouse_sensor_8650_parm_init:
+	setsect 0,0x35a09
+	setsect 1,0x2c9ff
+	setsect 2,0x3e40a
+	setsect 3,0x28346
+	store 9,mem_sensor_8650_init
+
+	setsect 0,0x2a141
+	setsect 1,0x3e9c4
+	setsect 2,0x00b6f
+	setsect 3,0x322d4
+	store 9,mem_sensor_8650_init+9
+
+	setsect 0,0x3afa5
+	setsect 1,0x2403f
+	setsect 2,0x3f000
+	setsect 3,0x3ff
+	store 8,mem_sensor_8650_init+18
+	rtn
+
+mouse_sensor_ka8g2_parm_init:
+	setsect 0,0x2a509
+	setsect 1,0x24d09
+	setsect 2,0x20041
+	setsect 3,0x1a41d
+	store 9,mem_sensor_ka8g2_init
+
+	setsect 0,0x07d04
+	setsect 1,0x01f88
+	setsect 2,0x00090
+	setsect 3,0x3fffc
+	store 9,mem_sensor_ka8g2_init+9
+	rtn
+
+mouse_sensor_3212_parm_init:
+	setsect 0,0x25a09
+	setsect 1,0x24d09
+	setsect 2,0x09041
+	setsect 3,0x3fc00
+	store 9,mem_sensor_3212_init
+mouse_sensor_parm_init_end1:
+	setarg 0xff
+	istore 1,contw
+	rtn
+
+mouse_sensor_3205_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x34403
+	setsect 2,0x3ded1
+	setsect 3,0x3fe01
+	store 9,mem_sensor_3205_init
+	branch mouse_sensor_parm_init_end1
+
+mouse_sensor_3204_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x37c03
+	setsect 2,0x3de31
+	setsect 3,0x3ff49
+	store 9,mem_sensor_3204_init
+	branch mouse_sensor_parm_init_end1
+
+mouse_sensor_32xx_parm_init:
+	setsect 0,0x0351b
+	setsect 1,0x26d0a
+	setsect 2,0x2a462
+	setsect 3,0xae58
+	store 9,mem_sensor_32xx_init
+
+	setsect 0,0x22c8c
+	setsect 1,0x10b5b
+	setsect 2,0x1f386
+	setsect 3,0x3ce5
+	store 9,mem_sensor_32xx_init+9
+
+	setsect 0,0x3323a
+	setsect 1,0x091ce
+	setsect 2,0x3f104
+	setsect 3,0x3ff
+	store 8,mem_sensor_32xx_init+18
+	rtn
+
+mouse_sensor_32xx_parm_init1:
+	setsect 0,0x12e54
+	setsect 1,0x07c95
+	setsect 2,0x23f46
+	setsect 3,0x1d5c1
+	store 9,mem_sensor_32xx_init_1
+
+	setsect 0,0x17652
+	setsect 1,0x35dd0
+	setsect 2,0x2378e
+	setsect 3,0x119e4
+	store 9,mem_sensor_32xx_init_1+9
+
+	setsect 0,0x0e57a
+	setsect 1,0x3921f
+	setsect 2,0x3f777
+	setsect 3,0x2c05
+	store 9,mem_sensor_32xx_init_1+18
+
+	setsect 0,0x07f00
+	setsect 1,0x00240
+	setsect 2,0x3fff0
+	setsect 3,0x3
+	store 7,mem_sensor_32xx_init_1+27
+	rtn
+
+
+mouse_sensor_p6520_parm_init:
+	setsect 0,0x1b905
+	setsect 1,0x2d682
+	setsect 2,0x0c720
+	setsect 3,0x2548
+	store 9,mem_sensor_p6520_init
+mouse_sensor_parm_init_end2:
+	setarg 0xffff00
+	istore 3,contw
+	rtn
+
+mouse_sensor_ka8ul_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x38403
+	setsect 2,0x1bc50
+	setsect 3,0x4269
+	store 9,mem_sensor_ka8ul_init
+
+	setsect 0,0x21138
+	setsect 1,0x20a10
+	setsect 2,0x23412
+	setsect 3,0xe524
+	store 9,mem_sensor_ka8ul_init+9
+
+	setsect 0,0x3b04a
+	setsect 1,0x32812
+	setsect 2,0x0d904
+	setsect 3,0x25c1
+	store 9,mem_sensor_ka8ul_init+18
+	branch mouse_sensor_parm_init_end2
+
+mem_sensor_8009_parm_init:
+	setsect 0,0x25a09
+	setsect 1,0x24081
+	setsect 2,0x0d690
+	setsect 3,0x3920
+	store 9,mem_sensor_8009_init
+
+	setsect 0,0x20f9f
+	setsect 1,0x0026e
+	setsect 2,0x3fff0
+	setsect 3,0x3
+	store 7,mem_sensor_8009_init+9
+	rtn
+*/
+/***********************le device info modify*****************************/
+mouse_le_name_modify:
+	bpatch patch0f_0,mem_patch0f
+	rtn wake
+	fetch 1,mem_le_name_patch_len
+	rtn blank
+	add pdata,1,loopcnt
+	arg mem_le_name_patch_len,contr
+	arg mem_le_name_len,contw
+	call memcpy
+	branch le_modified_name_adv
+
+/***********************sensor parm init end*****************************/
+
+mouse_start_work:
+	bpatch patch0f_1,mem_patch0f
+	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_device_le_reconn_led_config
+	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_device_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_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+mouse_start_reconnect_device:
+	bpatch patch0f_2,mem_patch0f
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,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 patch0f_3,mem_patch0f
+	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_device_le_reconnect_flag
+	fetcht 1,mem_device_fast_direct_timeout
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse4_0_check_reconn_target_next
+	fetcht 1,mem_device_direct_timeout
+mouse4_0_check_reconn_target_next:
+	storet 1,mem_device_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_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_app_enter_hibernate:
+	bpatch patch0f_4,mem_patch0f
+	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 patch0f_5,mem_patch0f
+	call disable_authrom
+//	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+
+mouse_setgpio_hibernate:
+	bpatch patch0f_6,mem_patch0f
+	call mouse_set_sdio_high
+	call clear_wake
+	call mouse_before_hibernate_wheel_gpio_set
+	fetch 1,mem_mouse_sensor_sdio_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_set_pupd_by_input
+	call mouse_lpm_before_common
+//	call mouse_gpio_pd_idle
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	call mouse_logo_led_off
+	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 device_gpio_config_input_pd
+	fetcht 1,mem_whee_b_data_gpio
+	branch device_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
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_analog
+
+
+//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 patch0f_7,mem_patch0f
+	jam 0,mem_qdec_set_flag
+	call clear_wake
+	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
+	call gpio_out_active
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_clr_wake
+
+	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
+
+	call mouse_gpio_pd_idle
+
+	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 patch10_0,mem_patch10
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_high_impedance
+
+mouse_adc_read:
+	bpatch patch10_1,mem_patch10
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call mouse_adc_gpio_set
+mouse_adc_read_start:
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_device_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, mouse_adc_data_process
+	fetcht 2,mem_device_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_device_vdd_now_vol
+mouse_adc_data_process:
+	arg mem_device_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_device_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_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+
+
+mouse_adc_bat_percent_lowpower_out:
+	bpatch patch10_2,mem_patch10
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+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
+
+/****************************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 device_gpio_config_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_bk_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_fw_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_dpi_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_matrix_public_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_customer_key_gpio
+	call device_gpio_config_input_pu
+
+	call mouse_wheel_gpio_init
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_tb_data_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_sensor_motion_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_device_switch_gpio
+	branch device_gpio_config_input_pu
+
+mouse_gpio_set_pupd_by_input:
+	and temp,0x7f,queue
+	fetch 4,core_gpio_in
+	qisolate1 pdata
+	branch device_gpio_config_input_pu,true
+device_gpio_config_input_pd:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+device_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_analog:
+	fetch 3,mem_device_set_analog_bit_set
+	store 3,mem_pdatatemp
+	arg 24,loopcnt
+	arg 0,temp
+mouse_gpio_set_analog_bit_loop:
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_analog,true
+//	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	lshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop mouse_gpio_set_analog_bit_loop
+	rtn
+
+/****************************gpio 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 patch10_3,mem_patch10
+	call hid_device_copy_key_data
+	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:
+	bpatch patch10_4,mem_patch10
+	call mouse_wheel_gpio_init
+	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 device_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
+	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_dpi_3io6key_check
+	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_dpi_3io6key_check:
+	fetch 1,mem_dpi_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_dpi_button_gpio
+	branch mouse_3io6key_check
+
+
+mouse_3io6key_dpi_check_end:
+	fetcht 1,mem_dpi_button_gpio
+	call device_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 patch10_5,mem_patch10
+	call mouse_dpi_ghost_check
+	rtn user
+mouse_dpi_process_skip_ghost:
+	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 patch10_6,mem_patch10
+	call mouse_setting_dpi_4_level
+	call mouse_dpi_led_blink_delay
+mouse_setting_sensor_type:
+	bpatch patch10_7,mem_patch10
+	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
+	beq MOUSE_DPI_LEVEL4,mouse_set_S201_dpi_4	//800
+	rtn
+mouse_set_S201_dpi_0:	//1200
+	fetch 1,mem_sensor_s201_dpi_0
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_1:	//1600
+	fetch 1,mem_sensor_s201_dpi_1
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_4:	//800
+	fetch 1,mem_sensor_s201_dpi_4
+mouse_dpi_s201_store:
+	copy pdata,rega
+	setarg 0xc309
+	call twspi_write
+	copy rega,pdata
+	lshift8 pdata,pdata
+	add pdata,0x23,pdata
+	call twspi_write
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	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_M_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_R_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_FW_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_R_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 device_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 device_gpio_config_input_pu
+
+mouse_dpi_another_down_new:
+	call device_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 device_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 device_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 device_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 patch11_0,mem_patch11
+	fetch 1,mem_24g_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 device_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 device_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 device_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 device_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 device_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 device_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,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_state:
+	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
+	fetch 1,mem_customer_key_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_customer_key_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_customerkey_press_status
+	call mouse_check_customerkey_state
+	fetcht 1,mem_customer_key_gpio
+	branch device_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_next:
+	and regb,0x07,pdata
+	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 patch11_1,mem_patch11
+	copy regc,pdata
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	call device_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:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_pu_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pu
+
+//input:pdata gpio number
+mouse_gpio_config_pd_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pd
+
+/*************************key***************************************/
+
+/**********************sensor******************************/
+mouse_init_sunt:
+	bpatch patch11_2,mem_patch11
+	call mouse_sensor_spi_init
+	rtn wake
+mouse_init_sensor_wakeup:
+	call mouse_sensor_poweron
+mouse_init_sensor:
+	bpatch patch11_3,mem_patch11
+	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
+	branch mouse_sensor_poweron_end
+
+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 KA5857_ID2,mouse_ka5857_init_param
+	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_ka5857_init_param:
+	jam KA5857,mem_config_sensor_type
+	arg mem_sensor_ka5857_init,regc
+	branch mouse_sensor_poweron_end
+
+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 patch11_4,mem_patch11
+	call mouse_sensor_spi_init
+	call mouse_sensor_reset
+	call mouse_sensor_poweron_init
+mouse_sensor_poweron_end:
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_sensor_powerdown:
+	bpatch patch11_5,mem_patch11
+	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
+	beq KA5857,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:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne PKA8G2_ID1,mouse_twspi_reset
+	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
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_long_mult_flag
+	setarg 0
+	store 4,mem_mouse_x
+	branch mouse_init_sensor_reset
+
+mouse_data_extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+mouse_data_ior:
+	ior temp,pdata
+	rtn
+
+mouse_data_extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	branch mouse_data_ior
+
+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
+	branch mouse_data_y_store
+
+	/* 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_device_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 patch11_6,mem_patch11
+	call hid_device_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_device_compare_addr
+	isub temp,null
+	branch mouse_start_discovery ,zero
+	branch mouse_start_reconnect_device
+
+mouse_bluetooth_fast_conn_disable:
+	jam 0x5a,mem_device_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_device_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 patch11_7,mem_patch11
+	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_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_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_device_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_device_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_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_device_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
+	call mouse_le_interval_store
+	call mouse_updata_le_param
+mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_le_conn_param_reject
+	rtn
+
+mouse_le_bb_event_connect_complete:
+	fetch 1,mem_device_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
+	call mouse_le_interval_store
+	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_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_device_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 patch12_0,mem_patch12
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_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,hid_device_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_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,hid_device_le_send_mouse_data
+	branch hid_device_send_package_data_check
+
+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
+	branch   istore_1_contw_rtn
+
+
+mouse_check_51cmd_adv:
+	jam 0,mem_device_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_le_parse_att:
+	bpatch patch12_1,mem_patch12
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_REQUEST,mouse_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,mouse_le_parse_att_write_request
+	branch le_parse_att2
+
+mouse_le_parse_att_read_request:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,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,mouse_le_send_att_read_response_check_auth
+//input:temp is handle
+mouse_le_send_att_read_response:
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+	fetcht 2,mem_le_att_handle
+	branch le_send_att_read_response
+
+mouse_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch mouse_le_send_att_read_response,zero
+	nbranch mouse_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+mouse_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	branch hid_device_le_parse_att_write_request
+
+mouse_bb_disconnected:
+	bpatch patch12_2,mem_patch12
+	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 2,contw             //clean wheel statue
+	jam 0,mem_mouse_move_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse4_0_event_bb_disconn:
+	jam 0,mem_le_connect_status_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 patch12_3,mem_patch12
+	//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
+	//key
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call mouse_commbination_key_process
+	call mouse_commbination_dpi_check_timer
+	call mouse_commbination_key_select_device_timer
+
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call mouse_store_information_delay_timer
+	call mouse_check_no_data_timeout_timer
+
+	//24g
+	call mouse_24g_long_sleep_param_update_timer
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+
+	//ble
+	call mouse_check_discovery_timeout_timer
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call mouse_le_battery_updata_timer
+	branch mouse_le_send_smp_security_request_timer
+
+/***********************************100MS TIMER******************************************/
+
+mouse_bt_discovery_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+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_dpi_check_timer:
+	fetch 1,mem_mouse_commbination_key_dpi
+	rtneq GPIO_DISABLE
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_dpi
+	isub temp,null
+	branch mouse_commbination_dpi_check,zero
+	fetch 1,mem_mouse_commbination_dpi_timer
+mouse_commbination_key_count_init:
+	store 1,mem_mouse_commbination_key_count
+	rtn
+
+mouse_commbination_dpi_check:
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_dpi_process_skip_ghost,regb
+	branch timer_single_step
+
+
+mouse_retransmit_commbination_key_check:
+	fetch 1,mem_24g_shutdown_flag
+	rtn blank
+mouse_commbination_key_select_device_timer:
+	fetch 1,mem_mouse_commbination_key_select_device
+	rtneq GPIO_DISABLE
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_select_device
+	isub temp,null
+	branch p_mouse_check_mouse_key_select_device_set,zero
+	fetch 1,mem_mouse_commbination_select_device_timer
+	branch mouse_commbination_key_count_init
+
+p_mouse_check_mouse_key_select_device_set:
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_ready_reconnection_by_button,regb
+	branch timer_single_step
+
+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 rega,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_device_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_device_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+mouse_check_direct_timeout:
+	fetch 1,mem_device_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_device_le_bb_connected_flag
+	rtn blank
+	arg mem_device_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_device_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_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
+mouse_long_mult_init:
+	fetch 1,mem_mouse_long_mult_count
+	store 1,mem_mouse_long_mult_flag
+	rtn
+
+mouse_check_no_data_timeout_timer:
+	arg mem_device_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_device_no_data_timeout
+	store 2,mem_device_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_device_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+/***********************************100MS TIMER END******************************************/
+
+mouse_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	jam 0,mem_le_connect_status_flag
+	branch mouse_start_discovery
+
+mouse_start_discovery:
+	bpatch patch12_4,mem_patch12
+	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 1,mem_random_addr_increase_count
+	increase 1,temp
+	storet 1,mem_random_addr_increase_count
+	storet 1,mem_le_lap+2
+	random pdata					//random ble addr
+	store 2,mem_le_lap
+mouse_start_discovery_norandom:
+	fetch 3,mem_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	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 patch12_5,mem_patch12
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+mouse_stop_le_adv:
+	setarg 0
+	store 1,mem_device_direct_timer
+	store 2,mem_device_discovery_timer
+	branch check_51cmd_stop_adv
+
+mouse_store_remote_bdaddr:
+	bpatch patch12_6,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call hid_device_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call hid_device_before_store_reconn_info
+	branch mouse_store_device_info_delay
+
+/******************************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 patch12_7,mem_patch12
+	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 patch13_0,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_dpi
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	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 	hid_device_store_flash_device_info
+	branch mouse_sensor_spi_init
+
+
+
+/******************otp data store****************/
+mouse_store_otp_device_info:
+	call mouse_write_otp_app_initflag
+	call mouse_write_otp_device_flag
+	call mouse_write_otp_device_info
+	branch mouse_write_otp_le_addr_increase_count_info
+
+mouse_write_otp_app_initflag:
+	call mouse_otp_load_app_initflag
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	rtn zero
+	branch mouse_otp_store_app_initflag
+
+/**********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_otp_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
+	call mouse_device_flag_otp_store_judge			// add device_flag check
+	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:
+	fetcht 1,mem_device_flag_last
+	fetch 1,mem_device_flag
+	call mouse_device_flag_otp_store_judge
+
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	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_device_flag_otp_store_judge:
+	rtnne MODE_24G_DEVICE
+	increase 4,pdata
+	rtn
+
+/**********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_device_24g_addr
+	isub temp,null
+	rtn zero
+	arg 4,loopcnt
+	arg mem_device_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 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_store,blank
+	store 1,mem_random_addr_increase_count_last
+	increase 1,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 1,mem_random_addr_increase_count_last
+	fetcht 1,mem_random_addr_increase_count
+	isub temp,null
+	rtn zero
+	arg 1,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_check,blank
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge	//add dpi check
+	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_check:
+	fetcht 1,mem_mouse_dpi_last
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	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_dpi_otp_store_judge:
+	rtnne MOUSE_DPI_LEVEL1
+	increase 7,pdata
+	rtn
+
+/******************************store info end**************************************/
+
+
+
+/******************************load info start**************************************/
+
+mouse_device_flag_check:
+	fetch 1,mem_device_flag
+	sub pdata,4,null
+	rtn positive
+	call set_pdata_0
+	branch mouse_store_device_flag
+
+/******************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 set_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+	call mouse_device_flag_check
+	branch mouse_app_initflag_load_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 hid_device_load_flash_info_check
+	call mouse_device_flag_check
+	call mouse_app_initflag_load_check
+	branch mouse_sensor_spi_init
+
+mouse_information_flash_parameters:
+	setarg mem_device_information_end
+	arg mem_device_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_device_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 device_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_device_flag_check
+	call mouse_read_otp_device_info
+mouse_app_initflag_load_check:
+	bpatch patch13_1,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_OTP,pdata
+	call mouse_otp_load_app_initflag,true
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+mouse_app_initflag_load:
+	storet 2,mem_store_flag
+	call hid_device_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	store 1,mem_random_addr_increase_count
+mouse_load_default_dpi:
+	fetch 1,mem_config_sensor_dpi
+mouse_temp_store_dpi:
+	store 1,mem_mouse_dpi
+	rtn
+
+mouse_otp_load_app_initflag:
+	arg 2,loopcnt
+	fetchr regb,2,mem_otp_offset_app_initflag
+	arg mem_store_flag,rega
+	branch otp_read_data
+
+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_otp_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_otp_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:
+	sub pdata,0,null
+	branch mouse_device_flag_temp_load,zero
+	sub pdata,4,null
+	call set_pdata_0,zero
+mouse_store_device_flag:
+	store 1,mem_device_flag
+	rtn
+
+mouse_device_flag_temp_load:
+	fetch 1,mem_device_flag_temp
+	branch mouse_store_device_flag
+
+/****************otp load addr*************/
+mouse_read_otp_device_info:
+	call mouse_read_otp_24g_addr
+	call mouse_read_otp_le_device1
+	call mouse_read_otp_le_device2
+	branch mouse_read_otp_le_addr_increase_count_info
+
+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
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr1_init,zero
+	store 6,mem_device1_locall_addr
+	rtn
+
+mouse_device_le_locall_addr1_init:
+	fetch 6,mem_le_lap
+	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
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr2_init,zero
+	store 6,mem_device2_locall_addr
+	rtn
+
+mouse_device_le_locall_addr2_init:
+	fetch 6,mem_le_lap
+	add pdata,0x0100,pdata
+	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_device_24g_addr
+	rtn
+
+/**************load le addr increase count**********/
+mouse_read_otp_le_addr_increase_count_info:
+	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 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_load,blank
+	store 1,mem_random_addr_increase_count_last
+	increase 1,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 1,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 1,mem_random_addr_increase_count_last
+	store 1,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:
+	sub pdata,7,null
+	call set_pdata_0,zero
+	branch mouse_temp_store_dpi
+
+/******************************load info end**************************************/
+
+
+mouse_idle:
+	bpatch patch13_2,mem_patch13
+	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
+	call mouse_wheel_check
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	bpatch patch13_3,mem_patch13
+	call mouse_usb_isr
+	branch mouse_usb_mode
+
+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:
+	call mouse_select_device_by_pb_button_check
+	branch mouse_select_device_by_pb_button_exit
+
+mouse_select_device_by_pb_button_check:
+	bpatch patch13_4,mem_patch13
+	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:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	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 device_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_device_direct_timer
+	rtn blank
+	fetch 1,mem_device_direct_timeout
+	store 1,mem_device_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
+	fetch 1,mem_mouse_mkey_press_status
+	rtn blank
+	branch enable_user
+
+//===========================select device by switch start==================================//
+
+mouse_check_select_device_by_switch:
+	bpatch patch13_5,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check
+mouse_switch_gpio_connect_vin_check:
+	call mouse_switch_gpio_connect_vin
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check:
+	call mouse_switch_gpio_connect_gnd
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+
+mouse_switch_gpio_connect_vin:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_btdevice,true
+	branch mouse_select_24gdevice
+
+mouse_switch_gpio_connect_gnd:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_24gdevice,true
+	branch mouse_select_btdevice
+
+mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_set
+
+mouse_select_24gdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_set:
+	call mouse_select_device_stop_set
+	branch mouse_soft_reset
+
+//=========================================================//
+
+mouse_check_select_device_by_switch_once:
+	bpatch patch13_6,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check_once
+mouse_switch_gpio_connect_vin_check_once:
+	call mouse_switch_gpio_connect_vin_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check_once:
+	call mouse_switch_gpio_connect_gnd_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+
+
+mouse_switch_gpio_connect_vin_once:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_btdevice,true
+	branch mouse_check_select_24g_device
+
+mouse_switch_gpio_connect_gnd_once:
+
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_24g_device,true
+	branch mouse_check_select_btdevice
+
+mouse_check_select_24g_device:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_stop_set:
+	call mouse_24g_stop
+	branch mouse_stop_bluetooth_mode
+
+mouse_check_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_stop_set
+
+//===========================select device by switch end==================================//
+
+
+mouse_ready_reconnection_by_button:
+	bpatch patch13_7,mem_patch13
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+mouse_store_device_number_before_reset:
+	call mouse_select_device_enable
+	call mouse_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	call mouse_select_device_disable
+	jam 1,mem_device_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
+	rtn positive
+mouse_select_device_count_clean_bt:
+	arg 1,temp
+	rtn
+
+mouse_select_device_number_24g:
+	fetch 1,mem_device_number
+	increase -1,pdata
+	isub temp,null
+	rtn positive
+mouse_select_device_count_clean_24g:
+	arg 0,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_polling_device:
+	bpatch patch14_0,mem_patch14
+	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 hid_device_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 patch14_1,mem_patch14
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	rtneq KA8G2
+	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
+mouse_data_y_store:
+	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 patch14_2,mem_patch14
+	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
+	branch mouse_data_y_store
+
+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
+	branch mouse_div_end
+
+mouse_current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+mouse_div_end:
+	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
+	branch mouse_long_mult_init
+
+
+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 patch14_3,mem_patch14
+	jam 0,mem_mouse_pair_flag
+	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_24g_shutdown_flag
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch mouse_24g_long_sleep
+
+mouse_wakeup_24g:
+	bpatch patch14_4,mem_patch14
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_24g_shutdown_flag
+	rtn
+
+mouse_wakeup_24g_from_long_sleep:
+	jam 1,mem_mouse_pair_flag
+	call mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_init:
+	fetcht 1,mem_whee_a_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_b_data_gpio
+ 	branch device_gpio_config_input_pu
+
+mouse_24g_transmit_start:
+	call mouse_24g_fast_conn_mode_check
+	fetch 1,mem_24g_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
+mouse_soft_agc_disable:
+	jam 0xff,mem_gain_fix
+	rtn
+
+mouse_soft_agc_enable:
+	jam 0,mem_gain_fix
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+
+device_store_normal_tx_power:
+	fetch 1,mem_tx_power
+	store 1,mem_device_normal_tx_power
+	rtn
+
+device_fetch_normal_tx_power:
+	fetch 1,mem_device_normal_tx_power
+	store 1,mem_tx_power
+	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_device_24g_power_on_fast_conn_timer
+	store 2,mem_24g_reconn_timeout
+	jam FAST_CONN_AND_RECEIVER,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 hid_device_select_reconn_device
+	branch mouse_le_fast_conn_judge
+
+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
+mouse_24g_pair_mode_check:
+	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:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	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 FAST_CONN_AND_RECEIVER,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_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_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
+	bbit1 MOUSE_ENABLE_OTP,mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair
+
+mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_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
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	branch mouse_24g_first_store_reconn_info
+
+mouse_24g_pairing_complete:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	call mouse_init_sensor_reset
+	call mouse_read_sensor_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_device_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 patch14_5,mem_patch14
+	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
+	branch hid_device_24g_keyboard_package_data_set
+
+mouse_g24_retransmit:
+	fetch 1,mem_device_need_soft_reset
+	nrtn blank
+	call mouse_g24_retransmit_100ms_timer
+	branch g24_retransmit0
+
+mouse_g24_retransmit_100ms_timer:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	call mouse_retransmit_select_device_by_pb_button
+	call mouse_retransmit_commbination_key_check
+	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
+	branch mouse_dpi_check
+
+/**************************************g24 new process start********************************************/
+mouse_24g_before_lpm_sleep:
+	call lpm_puchk_set_check
+	branch hid_device_before_lpm_set
+
+/**************************************g24 new process end********************************************/
+
+/*******************logo led*******************/
+mouse_logo_led_on_timer:
+	fetch 1,mem_mouse_logo_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_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 patch14_6,mem_patch14
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_led_blink_set_4_level
+mouse_dpi_led_blink_set_3_level:			//800-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_2_blink	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_3_blink	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink	//800
+	rtn
+
+mouse_dpi_led_blink_set_4_level:			//800-1000-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3_blink		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_4_blink		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink		//800
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2_blink		//1000
+	rtn
+
+mouse_dpi_level_1_blink:
+	setarg 2
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_2_blink:
+	setarg 4
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_3_blink:
+	setarg 6
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_4_blink:
+	setarg 8
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_multi_dpi_led_blink_enable:
+	store 1,mem_mouse_multi_led_blink_count
+	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_delay:
+//	fetch 2,mem_device_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_pair_flag
+	rtn 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_device_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_pair_flag
+	rtn 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
+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
+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 patch14_7,mem_patch14
+	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 patch15_0,mem_patch15
+//	call mouse_device_24g_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 1,mem_mouse_multi_led_blink_type
+	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
+	bpatchx patch3a_3,mem_patch3a
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+//	call mouse_device_le_reconn_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 3,mem_mouse_multi_led_blink_type
+	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
+//	call mouse_device_le_discovery_led_blink_timer_init
+	jam 0,mem_mouse_le_reconn_blink_limit
+	jam 2,mem_mouse_multi_led_blink_type
+mouse_multi_led_blink_enable_init:
+	bpatchx patch3a_4,mem_patch3a
+	jam 0x0a,mem_mouse_multi_led_blink_timer
+	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,pdata
+	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
+ 	jam 1,mem_mouse_pair_flag
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_device_led_off
+
+mouse_multi_led_type_blink:
+	bpatch patch15_1,mem_patch15
+	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,pdata
+	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 patch15_2,mem_patch15
+	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 patch15_3,mem_patch15
+	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_analog
+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_analog
+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_analog
+
+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
+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
+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
+	branch hid_device_enable_lpm
+
+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
+	branch hid_device_disable_lpm
+
+
+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_set_lpm_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+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_24g_long_sleep:
+	bpatch patch15_4,mem_patch15
+	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_24g_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 8,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_last_miss:
+	fetcht 4,mem_mouse_24g_sleep_miss_temp
+	isolate1 31,temp
+	branch mouse_24g_sub_miss_temp,true
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	iadd temp,pdata
+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:
+	jam 250,mem_mouse_24g_tx_time_offset
+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_2:
+	jam 1,mem_mouse_24g_sleep_miss
+	rtn
+
+mouse_24g_sub_miss_temp:
+	arg -1,pdata
+	isub temp,regext
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	isub regext,pdata
+	branch mouse_24g_short_sleep_notify
+
+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_sleep_miss_temp
+	nrtn blank
+
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	fetcht 4,mem_mouse_24g_tsniff
+	lshift temp,temp
+	isub temp,null
+	branch mouse_24g_send_time_long_wake,positive
+
+	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
+
+	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 patch15_5,mem_patch15
+	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
+mouse_24g_short_sleep_storet:
+	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 patch15_6,mem_patch15
+	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
+	branch mouse_24g_short_sleep_storet
+
+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
+
+/******************************************USB MODE*******************************************/
+mouse_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	rtn
+
+mouse_usb_isr:
+	call mouse_usb_interface_check
+	fetch 1,mem_usb_vdd_status
+	rtnne USB_INTERFACE_INSERT
+	branch usb_isr
+
+mouse_usb_interface_check:
+	bpatch patch15_7,mem_patch15
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	nbranch mouse_usb_mode_disable,true
+mouse_usb_mode_enable:
+	fetch 1,mem_usb_vdd_status
+	rtneq USB_INTERFACE_INSERT
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	disable wake
+	call mouse_init_sensor_reset
+
+	setarg mouse_usb_config_param
+	store 2,mem_cb_usb_config
+	fetch 1,mem_usb_tx_interval_retention
+	store 1,mem_usb_tx_interval
+	arg mem_usb_vid_pid_retention,contr
+	arg mem_usb_vid_pid,contw
+	arg 9,loopcnt
+	call memcpy
+	branch usb_init
+
+mouse_usb_mode_disable:
+	fetch 1,mem_usb_keyboard_flag
+	rtneq USB_INTERFACE_REMOVE
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	fetch 2,core_clkoff
+	set1 CLOCK_OFF_USB,pdata
+	store 2,core_clkoff
+	jam 1,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	branch mouse_soft_reset
+
+mouse_usb_mode:
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	call mouse_usb_timer_check
+	nrtn user
+	call mouse_motion
+	nrtn user
+	fetch 1,core_usb_txbusy
+	rtnbit1 2
+	branch mouse_push_data_to_usb
+
+mouse_push_data_to_usb:
+	fetch 1,core_usb_addr
+	rtnbit0 7
+	bpatch patch16_0,mem_patch16
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_push_mouse_data_to_usb
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb
+	branch hid_device_push_mouse_data_to_usb
+
+mouse_usb_timer_check:
+	call disable_user
+	fetcht 4,mem_btclk_sensor
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall mouse_usb_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_btclk_sensor
+	fetcht 1,mem_wire_usb_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_btclk_sensor
+	branch enable_user
+
+mouse_usb_timer_timeout:
+	rtn zero
+	set1 28,pdata
+	rtn
+
+mouse_usb_timer_init:
+	setarg 0
+	store 4,mem_btclk_sensor
+	rtn
+
+mouse_usb_config_param:
+	bpatch patch16_1,mem_patch16
+	call mouse_usb_config_kb_check
+	call mouse_usb_report_rate_set
+	call mouse_usb_config_param_setup
+mouse_usb_device_name_config:
+	fetch 1,mem_usb_device_name_retention
+	rtn blank
+	arg mem_usb_device_name_retention,contr
+	arg mem_string2,contw
+	arg 30,loopcnt
+	branch memcpy
+
+mouse_usb_config_kb_check:
+	jam DONGLE_KB_BIND_OTP_OFFECT,mem_usb_keyboard_flag
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	rtn
+
+mouse_usb_config_param_setup:
+	call usb_tx_interval_config
+	call dongle_usb_vid_pid_config
+mouse_usb_hid_icon_config:
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+mouse_usb_report_rate_set:
+	call mouse_usb_timer_init
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_USB_250,mouse_usb_report_rate_set_250hz
+	bbit1 MOUSE_ENABLE_USB_500,mouse_usb_report_rate_set_500hz
+	bbit1 MOUSE_ENABLE_USB_1000,mouse_usb_report_rate_set_1000hz
+mouse_usb_report_rate_set_125hz:
+	jam 32,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_250hz:
+	jam 16,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_500hz:
+	jam 8,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_1000hz:
+	jam 4,mem_wire_usb_interval
+	rtn
+
+
+/*****************close define  COMPILE_MOUSE**********/
+else
+
+endif
+
+
+
Index: GK308_keyboard_only_24g/program/app_rec.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_rec.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_rec.prog	(working copy)
@@ -0,0 +1,2084 @@
+
+
+ifdef COMPILE_REMOTE_CONTROL
+rec_cb_function:
+	setarg rec_process_idle
+	store 2,mem_cb_idle_process
+
+//	setarg rec_2_5ms_timer
+//	store 2,mem_rec_cb_timer
+	rtn
+
+
+rec_process_idle:
+	call rec_ui_timer_check
+	rtn
+
+rec_ui_timer_check:
+	bpatch patch16_2,mem_patch16
+	arg 0,rega
+	fetcht 4,mem_rec_ui_timer_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+rec_ui_timer_check_loop:
+	copy regb,pdata
+	increase 8,temp    //8btclk = 2.5ms
+	isub temp,null
+	nbranch rec_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch rec_ui_timer_check_loop,blank
+	arg 0,rega  	//reset timer if it's longer than 1.5s between 2 checks
+	call rec_ui_timer_check_send_evt
+rec_ui_timer_init:
+	storer clkn_bt,4,mem_rec_ui_timer_btclk
+	rtn
+rec_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -8,temp    //8btclk = 2.5ms
+	set0 28,temp
+	storet 4,mem_rec_ui_timer_btclk
+rec_ui_timer_check_send_evt:
+	store 1,mem_rec_ui_timer_count
+rec_evt_timer_loop:
+	fetch 1,mem_rec_ui_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_rec_ui_timer_count
+	fetch 2,mem_rec_cb_timer
+	call callback_func
+	branch rec_evt_timer_loop
+
+/*
+rec_2_5ms_timer:
+	call rec_tscan_key_check_2_5ms_timer
+	rtn
+
+rec_tscan_key_check_2_5ms_timer:
+	arg mem_rec_tscan_timer,regc
+	arg rec_tscan_key_start,regb
+	branch timer_single_step
+rec_tscan_key_start:
+	call rec_set_tscan_timeout
+	call rec_tscan
+	branch rec_tscan_key_send	
+	
+rec_set_tscan_timeout:
+	fetch 1,mem_rec_tscan_timeout
+	store 1,mem_rec_tscan_timer
+	rtn
+*/
+
+
+////////////////////////////////////////////////////////////////TSACN START///////////////////////////////////////////////////////	
+
+rec_tscan:
+	bpatch patch16_3,mem_patch16
+	fetch 1,mem_rec_tscan_row_nums
+	rtn blank
+	jam 0,mem_rec_tscan_col_scanned
+	jam 0,mem_rec_tscan_sequence
+	call rec_gpio_wakeup_disable
+rec_tscan_gnd_process:
+	call rec_tscan_get_gndkey_state	
+	fetch 1,mem_rec_tscan_gndkey_need_send_flag
+	nrtn blank
+	call rec_tscan_gpio_set_before_lpm
+	call lpm_write_gpio_wakeup
+rec_tscan_process:
+	bpatch patch16_4,mem_patch16
+	call rec_tscan_col_state_init
+	call rec_tscan_row_state_init
+	call rec_tscan_get_row_state
+	call rec_tscan_pull_up_current_col_gpio
+	branch rec_tscan_col_state_next_gpio_check
+
+/*
+ * @brief: gpio config output low
+ * @param: none
+ * @return: none
+ */
+rec_tscan_col_state_init:	
+	arg mem_rec_tscan_col_gpio,rega
+	fetch 1,mem_rec_tscan_col_scanned
+	iadd rega,rega
+	storer rega,2,mem_rec_tscan_col_gpio_ptr
+	ifetcht 1,rega
+	branch gpio_config_output
+
+/*
+ * @brief: gpio config input pull up
+ * @param: none
+ * @return: none
+ */
+rec_tscan_row_state_init:	
+	fetch 1,mem_rec_tscan_row_nums
+	rtn blank
+	fetcht 1,mem_rec_tscan_col_scanned
+	isub temp,pdata
+	iforce loopcnt
+	arg mem_rec_tscan_row_gpio,rega
+	fetch 1,mem_rec_tscan_col_scanned
+	iadd rega,rega
+rec_tscan_row_gpio_config_input_pull_up:
+	ifetch 1,rega
+	call rec_gpio_weak_pullup
+	increase 1,rega
+	loop rec_tscan_row_gpio_config_input_pull_up
+	rtn
+
+
+rec_tscan_get_row_state:
+	jam 0,mem_rec_tscan_row_scanned
+	fetch 1,mem_rec_tscan_row_nums
+	fetcht 1,mem_rec_tscan_col_scanned
+	isub temp,pdata
+	store 1,mem_rec_tscan_row_scan_loop_count
+
+	arg mem_rec_tscan_row_gpio,rega
+	fetch 1,mem_rec_tscan_col_scanned
+	iadd rega,rega
+rec_tscan_get_row_state_loop:
+	ifetcht 1,rega
+	storet 1,mem_rec_gpio_bit_check
+	call rec_tscan_debounce
+	nrtn user
+
+	call rec_tscan_record_key_coord,true
+	increase 1,rega
+	fetch 1,mem_rec_tscan_row_scanned
+	increase 1,pdata
+	store 1,mem_rec_tscan_row_scanned
+	
+	fetcht 1,mem_rec_tscan_sequence
+	increase 1,temp
+	storet 1,mem_rec_tscan_sequence
+	
+	fetcht 1,mem_rec_tscan_row_scan_loop_count
+	isub temp,null
+	nbranch rec_tscan_get_row_state_loop,positive
+
+	fetch 2,mem_rec_tscan_record_row
+	rtn blank
+	store 2,mem_rec_tscan_record_now
+	
+	setarg 0
+	store 2,mem_rec_tscan_record_row
+	rtn
+
+rec_tscan_record_key_coord:
+	storer rega,2,mem_rec_tscan_current_gpio_ptr
+	
+//	call rec_tscan_get_gndkey_state	//check ghost key
+//	fetch 1,mem_rec_tscan_gndkey_need_send_flag
+//	nrtn blank
+
+	fetch 1,mem_rec_tscan_row_scanned
+	copy pdata,queue
+	fetcht 1,mem_rec_tscan_record_row
+	qset1 temp
+	storet 1,mem_rec_tscan_record_row
+
+	fetch 1,mem_rec_tscan_col_scanned
+	copy pdata,queue
+	fetcht 1,mem_rec_tscan_record_col
+	qset1 temp
+	storet 1,mem_rec_tscan_record_col
+
+	call rec_tscan_combin_key_num_output
+
+	fetchr rega,2,mem_rec_tscan_current_gpio_ptr
+	rtn
+
+rec_tscan_combin_key_num_output:
+	fetcht 2,mem_rec_tscan_record_row
+	arg mem_rec_tscan_key_nums_list,rega
+rec_tscan_combin_key_num_loop:
+	ifetch 2,rega
+	rtn blank
+	isub temp,null
+	call rec_tscan_output_combin_key_num,zero
+	increase 2,rega
+	branch rec_tscan_combin_key_num_loop
+
+rec_tscan_output_combin_key_num:
+	fetchr queue,1,mem_rec_tscan_sequence
+	fetch 8,mem_rec_tscan_key_num_bit
+	qset1 pdata
+	store 8,mem_rec_tscan_key_num_bit	
+	rtn
+
+rec_tscan_pull_up_current_col_gpio:
+	fetch 2,mem_rec_tscan_col_gpio_ptr
+	ifetch 1,pdata
+	branch rec_gpio_weak_pullup
+
+rec_tscan_col_state_next_gpio_check:
+	fetch 1,mem_rec_tscan_col_scanned
+	increase 1,pdata
+	store 1,mem_rec_tscan_col_scanned
+	fetcht 1,mem_rec_tscan_col_nums
+	isub temp,null
+	nbranch rec_tscan_process,positive
+	fetch 2,mem_rec_tscan_record_now
+	branch rec_tscan_key_up,blank
+rec_tscan_key_down:
+	store 2,mem_rec_tscan_record_temp
+	fetch 1,mem_rec_tscan_key_need_send_flag
+	nbranch rec_tscan_key_value_clear,blank
+	fetch 1,mem_rec_tscan_key_state
+	rtneq KEY_DOWN
+	jam KEY_DOWN,mem_rec_tscan_key_state	
+	jam 1,mem_rec_tscan_key_need_send_flag
+	bpatch patch16_5,mem_patch16
+	call rec_tscan_key_num_output
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch rec_led_start_on
+
+rec_tscan_key_up:
+	fetch 1,mem_rec_tscan_key_state
+	rtneq KEY_UP
+	jam KEY_UP,mem_rec_tscan_key_state
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,rec_tscan_key_up_send
+	fetch 1,mem_rec_nec_learn_state
+	nbranch rec_tscan_key_up_send,blank
+	call rec_led_start_off
+rec_tscan_key_up_send:
+	setarg 0
+	store 8,mem_rec_tscan_key_num_bit
+	store 1,mem_rec_tscan_key_need_send_flag
+rec_tscan_key_up_config:
+	jam 0,mem_rec_tscan_current_key_num
+	arg mem_rec_key_release_le,regc
+	branch push_buffer_in_queue
+
+rec_tscan_key_num_output:
+	call rec_tscan_key_num_check
+rec_tscan_record_init:
+	setarg 0
+	store 2,mem_rec_tscan_record_temp
+	rtn
+
+rec_tscan_key_value_clear:
+	setarg 0
+	store 2,mem_rec_tscan_record_now
+	rtn
+
+rec_tscan_get_gndkey_state:
+	arg 0,rega
+	arg 0,regb
+	force 0,regext_index
+	fetch 1,mem_rec_tscan_gpio_nums
+	iforce loopcnt
+	arg mem_rec_tscan_col_gpio,regc
+rec_tscan_get_gndkey_loop:
+	call rec_save_regc
+	call rec_save_rega
+	ifetch 1,regc
+	call rec_gpio_weak_pullup
+	call rec_rescue_rega
+	call rec_rescue_regc
+	ifetcht 1,regc
+	storet 1,mem_rec_gpio_bit_check
+	call rec_tscan_debounce
+	nrtn user
+
+	copy regb,queue
+	call rec_tscan_store_gndkey_press_state,true
+	ncall rec_tscan_store_gndkey_release_state,true
+	increase 1,regc
+	increase 1,regb
+	loop rec_tscan_get_gndkey_loop
+	copy rega,pdata
+	branch rec_tscan_gndkey_up,blank
+rec_tscan_gndkey_down:
+	store 1,mem_rec_tscan_gndkey_record_temp
+	fetch 1,mem_rec_tscan_gndkey_state
+	rtneq KEY_DOWN
+	jam KEY_DOWN,mem_rec_tscan_gndkey_state
+	jam 1,mem_rec_tscan_gndkey_need_send_flag
+	bpatch patch16_6,mem_patch16
+	call rec_tscan_gndkey_num_output
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	branch rec_led_start_on
+
+rec_tscan_gndkey_up:
+	fetch 1,mem_rec_tscan_gndkey_state
+	rtneq KEY_UP
+	jam KEY_UP,mem_rec_tscan_gndkey_state
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,rec_tscan_gndkey_up_send
+	fetch 1,mem_rec_nec_learn_state
+	nbranch rec_tscan_gndkey_up_send,blank
+	call rec_led_start_off
+rec_tscan_gndkey_up_send:
+	jam 0,mem_rec_tscan_gndkey_need_send_flag
+	branch rec_tscan_key_up_config
+
+rec_tscan_gndkey_num_output:
+	call rec_tscan_gndkey_num_check
+rec_tscan_gndkey_record_param_init:
+	jam 0,mem_rec_tscan_gndkey_record_temp
+	rtn
+
+rec_tscan_gndkey_num_check:
+	fetcht 1,mem_rec_tscan_gndkey_record_temp
+	arg mem_rec_tscan_gndkey_nums_list,rega
+	arg 0,regb
+rec_tscan_gndkey_num_loop:
+	ifetch 1,rega
+	rtn blank
+	isub temp,null
+	branch rec_tscan_output_gndkey_num,zero
+	increase 1,rega
+	increase 1,regb
+	branch rec_tscan_gndkey_num_loop
+
+rec_tscan_store_gndkey_press_state:
+	qset1 rega
+	rtn
+
+rec_tscan_store_gndkey_release_state:
+	qset0 rega
+	rtn
+
+
+rec_gpio_bit_first_set:
+	jam 1,mem_rec_gpio_bit_first
+	rtn
+rec_gpio_bit_second_set:
+	jam 1,mem_rec_gpio_bit_second
+	rtn
+rec_tscan_debounce:
+	call disable_user
+	jam 0,mem_rec_gpio_bit_first
+	jam 0,mem_rec_gpio_bit_second
+	fetcht 1,mem_rec_gpio_bit_check
+	call gpio_get_bit
+	call rec_gpio_bit_first_set,true
+	nop 1200
+	fetcht 1,mem_rec_gpio_bit_check
+	call gpio_get_bit
+	call rec_gpio_bit_second_set,true
+	fetch 1,mem_rec_gpio_bit_first
+	fetcht 1,mem_rec_gpio_bit_second
+	isub temp,null
+	nrtn zero
+	branch enable_user
+	
+
+//pdata: gpio number 
+rec_gpio_weak_pullup:	
+	store 1,mem_rec_gpio_for_wake_pullup
+	call rec_gpio_set_input
+	fetch 1,mem_rec_gpio_for_wake_pullup	
+rec_gpio_set_lpm_weak_pullup:
+	arg 0x01,regc
+	div pdata,2
+	call wait_div_end
+	quotient temp
+	remainder pdata
+	ncall rec_gpio_set_0x10_regc,blank	
+	copy temp,pdata
+	arg core_gpio_wakeup_cfg,contw
+	until null,lpo_edge
+	until null,lpo_edge
+	iadd contw,contw
+	ifetch 1,contw
+	ior regc,pdata
+	istore 1,contw
+	branch lpm_write_wait
+	
+rec_gpio_set_0x10_regc:
+	arg 0x10,regc
+	rtn
+
+//pdata: gpio number
+rec_gpio_set_input:
+	or pdata,0x80,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function
+	
+rec_gpio_wakeup_disable:
+	branch lpm_config_puchk_disable
+
+rec_save_regc:
+	copy regc,pdata
+	branch rec_save_reg
+
+rec_rescue_regc:
+	call rec_rescue_reg
+	copy pdata,regc
+	rtn
+
+rec_save_rega:
+	copy rega,pdata
+	branch rec_save_reg
+
+rec_rescue_rega:
+	call rec_rescue_reg
+	copy pdata,rega
+	rtn
+
+rec_save_reg:
+ 	increase 1,regext_index
+ 	copy pdata,regext
+ 	rtn
+
+rec_rescue_reg:
+ 	copy regext,pdata
+ 	increase -1,regext_index
+ 	rtn	
+
+rec_tscan_gpio_set_before_lpm:
+	call rec_tscan_gpio_config_high_impedance
+	call rec_tscan_gpio_config_tri_angle_wakeup
+	call rec_gpio_wakeup_disable
+rec_gpio_wakeup_enable:
+	setarg 0xf0
+	store 1,core_puwakeup
+	branch lpm_write_wait
+
+rec_tscan_gpio_config_high_impedance:
+	fetch 1,mem_rec_tscan_gpio_nums
+	arg mem_rec_tscan_col_gpio,rega
+	branch rec_gpio_config_high_impedance	
+
+rec_tscan_gpio_config_tri_angle_wakeup:
+	fetchr regb,1,mem_rec_gpio_wakeup_source
+	fetch 1,mem_rec_tscan_gpio_nums
+	arg mem_rec_tscan_col_gpio,rega
+	branch rec_gpio_wakeup_config
+
+/*
+ * @brief: gpio config high-impedance
+ * @param: rega: gpio buff ptr, pdata: buff length
+ * @return: none
+ */
+rec_gpio_config_high_impedance:	
+	copy pdata,loopcnt
+rec_high_impedance_loop:
+	ifetcht 1,rega
+	call gpio_set_high_impedance
+	increase 1,rega
+	loop rec_high_impedance_loop
+	rtn
+
+
+/*
+ * @brief: gpio wakeup config
+ * @param: rega: gpio buff ptr, pdata: buff length, regb: wakeup source
+ * @return: none
+ */
+rec_gpio_wakeup_config:
+	copy pdata,loopcnt
+rec_gpio_wakeup_config_loop:
+	ifetcht 1,rega
+	rshift temp,pdata
+	arg mem_gpio_wakeup_cfg,contw
+	iadd contw,contw
+	call rec_gpio_wakeup_addr_search
+	ifetcht 1,contw
+	ior temp,pdata
+	istore 1,contw
+	increase 1,rega
+	loop rec_gpio_wakeup_config_loop
+	rtn
+
+rec_gpio_wakeup_addr_search:
+	copy regb,pdata
+	isolate0 0,temp
+	rtn true
+	lshift4 pdata,pdata
+	rtn
+
+rec_tscan_output_gndkey_num:
+	bpatch patch16_7,mem_patch16
+	copy regb,pdata
+	fetcht 1,mem_rec_gnd_key_offset
+	iadd temp,pdata
+rec_tscan_output_key_map:
+	arg mem_rec_key_map,regc
+	iadd regc,regc
+	ifetch 1,regc
+	store 1,mem_rec_tscan_current_key_num
+	increase -1,pdata
+	mul32 pdata,MAX_QUEUE_UNIT,pdata
+	arg mem_rec_key_press_le,regc
+	iadd regc,regc
+	branch rec_push_buffer_in_queue
+
+rec_tscan_key_num_check:
+	fetcht 2,mem_rec_tscan_record_temp
+	arg mem_rec_tscan_key_nums_list,rega
+	arg 0,regb
+rec_tscan_key_num_loop:
+	ifetch 2,rega
+	rtn blank
+	isub temp,null
+	branch rec_tscan_output_key_num,zero
+	increase 2,rega
+	increase 1,regb
+	branch rec_tscan_key_num_loop
+
+rec_tscan_output_key_num:
+	bpatch patch17_0,mem_patch17
+	copy regb,pdata
+	branch rec_tscan_output_key_map
+
+rec_push_buffer_in_queue:
+	bpatch patch17_1,mem_patch17
+	fetch 1,mem_rec_le_connect_state
+	nbranch rec_puch_buffer_in_queue_check,blank
+rec_push_buffer_in_queue_end:
+	call rec_key_type_select
+	branch push_buffer_in_queue
+
+rec_puch_buffer_in_queue_check:
+	fetch 1,mem_rec_le_enable_notify
+	rtn blank
+	branch rec_push_buffer_in_queue_end
+
+rec_key_type_select:
+	ifetch 1,regc
+	increase 1,regc
+	beq KEYPAD_TYPE_CONSUMER,rec_set_key_type_consumer
+	beq KEYPAD_TYPE_MOUSE,rec_set_key_type_mouse
+	beq KEYPAD_TYPE_KEYPAD,rec_set_key_type_keypad
+	beq KEYPAD_TYPE_NEC,rec_set_key_type_nec
+	rtn
+rec_set_key_type_consumer:
+	jam KEYPAD_TYPE_CONSUMER,mem_rec_keypad_type
+	rtn
+rec_set_key_type_mouse:
+	jam KEYPAD_TYPE_MOUSE,mem_rec_keypad_type
+	rtn
+rec_set_key_type_keypad:
+	jam KEYPAD_TYPE_KEYPAD,mem_rec_keypad_type
+	rtn
+rec_set_key_type_nec:
+	jam KEYPAD_TYPE_NEC,mem_rec_keypad_type
+	rtn
+
+rec_tscan_key_send:
+	bpatch patch17_2,mem_patch17
+	call queue_pop_one_byte
+	nrtn user
+	store 1,mem_rec_keypad_fun
+	fetch 1,mem_rec_tscan_current_key_num
+	call rec_nec_disable,blank
+rec_tscan_send_keypad:	
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,rec_send_nec_keypad
+	fetch 1,mem_rec_keypad_type
+	beq KEYPAD_TYPE_CONSUMER,rec_le_send_consumer
+	beq KEYPAD_TYPE_MOUSE,rec_le_send_mouse
+	beq KEYPAD_TYPE_KEYPAD,rec_le_send_keyboard
+	beq KEYPAD_TYPE_NEC,rec_send_nec_keypad
+	rtn
+
+rec_send_nec_keypad:	
+	fetch 1,mem_rec_tscan_current_key_num
+	beq 0x00,rec_nec_disable
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,3,pdata
+	arg mem_rec_key_nec_value_list,temp
+	iadd temp,contr
+	ifetch 2,contr
+	ifetcht 1,contr
+	branch rec_nec_6122_start
+
+rec_le_send_consumer:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,3,pdata
+	arg mem_rec_key_consumer_value_list,temp
+	iadd temp,contr
+	arg 3,loopcnt
+	arg mem_pdatatemp,contw	
+	call memcpy
+	jam 3,mem_rec_le_data_len
+	fetcht 2,mem_rec_report_id2_handle
+rec_le_send_data:
+	fetch 1,mem_rec_le_enable_notify
+	rtn blank
+	fetchr rega,1,mem_rec_le_data_len
+	call le_att_malloc_tx_notify
+	fetcht 1,mem_rec_le_data_len
+	copy temp,loopcnt
+	arg mem_pdatatemp,contr
+	branch memcpy
+
+
+rec_le_send_mouse:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,4,pdata
+	arg mem_rec_key_mouse_value_list,temp
+	iadd temp,contr
+	arg 4,loopcnt
+	arg mem_pdatatemp,contw	
+	call memcpy
+	jam 4,mem_rec_le_data_len
+	fetcht 2,mem_rec_report_id4_handle
+	branch rec_le_send_data
+
+rec_le_send_keyboard:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_rec_keypad_fun
+	pincrease -1
+	mul32 pdata,10,pdata
+	arg mem_rec_key_keyboard_value_list,temp
+	iadd temp,contr
+	ifetch 2,contr
+rec_le_fill_standard_key_data:	
+	arg 8,loopcnt
+	arg mem_pdatatemp,contw	
+	call memcpy
+	jam 8,mem_rec_le_data_len
+	fetcht 2,mem_rec_report_id1_handle
+	branch rec_le_send_data
+
+
+////////////////////////////////////////////////////////////////TSACN END///////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////LED START///////////////////////////////////////////////////////
+
+rec_led_start_on:
+	arg 0,rega
+	branch ui_led_on_global
+
+rec_led_start_off:
+	arg 0,rega
+	branch ui_led_off_global
+
+/*
+rec_led_le_pair:
+	arg mem_rec_le_pair_led_style,regc
+	branch rec_led_style_config
+
+rec_led_le_reconn:
+	arg mem_rec_le_reconn_led_style,regc
+	branch rec_led_style_config
+
+rec_led_adc_low:
+	arg mem_rec_adc_low_led_style,regc
+rec_led_style_config:
+	arg 0,rega
+	call calc_curr_struct_prt
+	arg 7,loopcnt
+	branch ui_led_set_style_global+2
+
+rec_led_stop_blink:
+	arg 0,rega
+	branch ui_led_blink_stop_global
+
+rec_led2_start_blink:
+	arg mem_rec_led2_style,regc
+	arg 1,rega
+	branch rec_led_style_config+1
+
+rec_led2_stop_blink:
+	arg 1,rega
+	branch ui_led_blink_stop_global
+
+rec_led2_start_on:
+	arg 1,rega
+	branch ui_led_on_global
+
+rec_led2_start_off:
+	arg 1,rega
+	branch ui_led_off_global
+*/
+////////////////////////////////////////////////////////////////LED END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////NEC SEND START///////////////////////////////////////////////////////
+
+  /*
+ * @brief: send nec data
+ * @param: pdata: usercode, temp: datacode
+ * @return: none
+ */
+rec_nec_send_userdata_6122:
+	store 2,mem_rec_nec_usercode
+	storet 1,mem_rec_nec_datacode
+	force 0,regext_index
+	call rec_nec_init_6122
+	call rec_nec_send_boot_6122
+	fetch 1,mem_rec_nec_usercode
+	call rec_nec_send_byte_6122
+	fetch 1,mem_rec_nec_usercode+1
+	call rec_nec_send_byte_6122
+	fetch 1,mem_rec_nec_datacode
+	call rec_nec_send_byte_6122
+	fetch 1,mem_rec_nec_datacode
+	invert pdata,pdata
+	call rec_nec_send_byte_6122
+	setarg 570
+	call rec_nec_carrier
+	setarg 1
+	branch rec_nec_empty
+
+rec_nec_init_6122:
+	setarg 0
+	call pwm_init+3
+	call pwm_disable
+	call rec_pwm_duty_cycle_set
+	fetch 1,mem_rec_nec_send_gpio
+	branch pwm_enable	
+
+
+  /*
+ * @brief: pwm duty config
+ * @param: rega: pcnt, regb: ncnt, pdata: pwm channel select
+ * @return: none
+ */
+rec_pwm_duty_cycle_set:
+	arg 157,rega
+	arg 157,regb
+	arg 0,pdata	
+	call pwm_duty_cycle_set
+	jam 0,core_pwm_en
+	rtn
+
+
+  /*
+ * @brief: send nec bootdata
+ * @param: none
+ * @return: none
+ */
+rec_nec_send_boot_6122:
+	setarg 9000
+	call rec_nec_carrier
+	setarg 4500
+rec_nec_empty:	
+	jam 0,core_pwm_en
+	branch rec_nec_delay_us
+
+
+  /*
+ * @brief: nec carrier time
+ * @param: pdata: time, unit 1us
+ * @return: none
+ */
+rec_nec_carrier:	
+	jam 1,core_pwm_en
+	branch rec_nec_delay_us
+
+
+  /*
+ * @brief: delay timer
+ * @param: pdata: delay time
+ * @return: none
+ */
+rec_nec_delay_us:
+	rtn blank	
+rec_nec_delay_us_loop:
+	increase -1,pdata
+	nop 8
+	nbranch rec_nec_delay_us_loop,blank
+	rtn	
+
+
+  /*
+ * @brief: send nec one byte
+ * @param: pdata: nec data
+ * @return: none
+ */
+rec_nec_send_byte_6122:
+	arg 8,loopcnt
+rec_nec_send_byte_loop_6122:
+	call rec_save_reg
+	call rec_nec_send_bit_6122
+	call rec_rescue_reg
+	rshift pdata,pdata
+	loop rec_nec_send_byte_loop_6122
+	rtn
+
+  /*
+ * @brief: send nec bit check
+ * @param: pdata: nec data
+ * @return: none
+ */
+rec_nec_send_bit_6122:
+	bbit0 0,rec_nec_send_bit0_6122
+	bbit1 0,rec_nec_send_bit1_6122	
+	rtn
+
+rec_nec_send_bit0_6122:
+	arg 570,rega
+	arg 550,regb
+	branch rec_nec_send_bit
+
+rec_nec_send_bit1_6122:
+	arg 570,rega
+	arg 1680,regb
+	branch rec_nec_send_bit
+
+
+  /*
+ * @brief: send nec one bit
+ * @param: rega: carrier time, regb: empty time
+ * @return: none
+ */
+rec_nec_send_bit:
+	copy rega,pdata
+	call rec_nec_carrier
+	copy regb,pdata
+	branch rec_nec_empty
+
+
+  /*
+ * @brief: send nec repeat code
+ * @param: none
+ * @return: none
+ */
+rec_nec_send_repeat_6122:
+	setarg 9000
+	call rec_nec_carrier
+	setarg 2250
+	call rec_nec_empty
+	setarg 560
+	call rec_nec_carrier
+	setarg 1
+	branch rec_nec_empty
+
+
+/*
+ * @brief: nec data send
+ * @param: pdata:boot data, temp:user data
+ * @return: key state
+ */
+rec_nec_6122_start:
+	call rec_nec_send_userdata_6122
+	call rec_nec_send_repeat_6122_timer_init
+	jam 16,mem_rec_nec_timer	//first package need about 40ms	
+	rtn
+	
+rec_nec_disable:
+	call rec_nec_send_repeat_6122_timer_clear
+rec_nec_6122_stop:
+	call pwm_disable
+rec_nec_io_disable:
+	fetch 1,mem_rec_nec_send_gpio
+rec_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int
+
+rec_gpio_config_output_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+rec_nec_send_repeat_6122_timer_init:
+	setarg 43		//107.5ms, unit 2.5ms
+rec_nec_timer_set:
+	store 1,mem_rec_nec_timeout
+	store 1,mem_rec_nec_timer
+	rtn
+
+rec_nec_send_repeat_6122_timer_clear:
+	setarg 0
+	branch rec_nec_timer_set
+	
+
+///////////////////////////////////////////////////////////////NEC SEND END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////NEC RECEIVE START///////////////////////////////////////////////////////
+/*
+rec_nec_learn_init: 
+	arg mem_rec_nec_rx_start,contw
+	arg 768,loopcnt
+	call clear_mem	
+	
+	jam gpcfg_no_ie,core_gpio_conf+3	//gpio3
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_NEC,pdata
+	store 2,core_clkoff	
+
+	setarg mem_rec_nec_rx_start
+	store 2,mem_pdatatemp
+	setarg mem_rec_nec_rx_end
+	istore 2,contw
+	fetch 4,mem_pdatatemp
+	jam 0x00,core_nec_ctrl	
+	arg FUN_NEC_ENABLE|0x37,temp						//1M
+//	arg FUN_NEC_ENABLE|0x35,temp							//2M
+//	arg FUN_NEC_ENABLE|0x33,temp							//6M
+//	arg FUN_NEC_ENABLE|FUN_NEC_CLK_DIVIDE_24,temp		//12M
+	call nec_init_config
+	fetch 1,core_lpm_sysctl	
+	or pdata,0xe0,pdata		//bit5: ir rx en, bit6-7: ir rx gain control
+	store 1,core_lpm_sysctl
+	until null,lpo_edge
+	fetch 1,core_nec_ctrl	//nec analogue function enable
+	set1 6,pdata
+	store 1,core_nec_ctrl
+	setarg mem_rec_nec_rx_store_start
+	store 2,mem_rec_nec_store_sptr
+	store 2,mem_rec_nec_store_wptr
+	setarg mem_rec_nec_rx_store_end
+	store 2,mem_rec_nec_store_eptr	
+
+	fetch 4,core_clkn
+	store 4,mem_rec_nec_learn_stime		
+	fetch 4,mem_rec_nec_learn_timeout	//nec learn timeout
+	store 4,mem_rec_nec_learn_outtime
+	setarg mem_rec_period_cal
+	store 2,mem_rec_period_cal_ptr
+	jam 0,mem_rec_period_cal_count
+	jam 1,mem_rec_nec_learn_state
+	rtn
+
+rec_nec_receive_data2buff:
+	call rec_nec_rx_num_big_3	
+	call rec_nec_receive_data,user
+	branch rec_nec_receiver_data_save	
+
+rec_nec_rx_num_big_3:
+	disable user
+	call rec_nec_rx_num
+	sub pdata,3,null
+	rtn positive
+	enable user
+	rtn	
+*/
+
+//pdata:rx num
+rec_nec_rx_num:
+	fetch 2,core_nec_wptr
+	fetcht 2,core_nec_rptr
+	isub temp,pdata
+	nbranch rec_nec_rptr_big_wptr,positive	
+	rtn
+rec_nec_rptr_big_wptr:
+	fetcht 2,core_nec_wptr
+	fetch 2,core_nec_rptr
+	isub temp,temp
+	setarg NEC_STORE_BUF_SIZE
+	isub temp,pdata	
+	rtn
+
+rec_nec_receive_data:
+	fetch 2,core_nec_rptr
+	ifetcht 3,pdata
+	storet 1,mem_rec_nec_receive_data0
+	rshift8 temp,temp
+	storet 1,mem_rec_nec_receive_data1
+	rshift8 temp,temp
+	storet 1,mem_rec_nec_receive_data2
+	
+	fetch 1,mem_rec_nec_receive_data0
+	and_into 0x80,pdata
+	bne 0x80, rec_nec_receive_one_data
+	branch rec_nec_receive_two_data
+
+rec_nec_receive_one_data:
+	fetch 1,mem_rec_nec_receive_data0
+	store 1,mem_rec_nec_receive_data
+	fetch 2,core_nec_rptr
+	fetcht 2,core_nec_end_addr
+	isub temp,pdata
+	branch rec_nec_rptr_reset,positive
+	fetch 2,core_nec_rptr
+	increase 1,pdata
+	store 2,core_nec_rptr
+	jam 1,mem_rec_nec_data
+	rtn	
+
+rec_nec_receive_two_data:
+	fetch 1,mem_rec_nec_receive_data2
+	and_into 0x80,pdata
+	beq 0x80,rec_nec_receive_three_data
+	fetch 1,mem_rec_nec_receive_data1
+	lshift8 pdata,pdata
+	rshift pdata,pdata
+	fetcht 1,mem_rec_nec_receive_data0
+	and_into 0x7f,temp
+	ior temp,pdata
+	store 2,mem_rec_nec_receive_data
+	fetch 2,core_nec_rptr
+	fetcht 2,core_nec_end_addr
+	isub temp,pdata
+	branch rec_nec_rptr_reset,positive
+	fetch 2,core_nec_rptr
+	increase 2,pdata
+	store 2,core_nec_rptr
+	jam 2,mem_rec_nec_data
+	rtn
+
+rec_nec_receive_three_data:
+	fetch 1,mem_rec_nec_receive_data2
+	and_into 0x7f,pdata
+	lshift16 pdata,pdata
+	rshift pdata,rega
+	fetch 1,mem_rec_nec_receive_data1
+	lshift8 pdata,pdata
+	rshift pdata,pdata
+	fetcht 1,mem_rec_nec_receive_data0
+	and_into 0x7f,temp
+	ior temp,pdata
+	ior rega,pdata
+	store 3,mem_rec_nec_receive_data
+
+	fetch 2,core_nec_rptr
+	fetcht 2,core_nec_end_addr
+	isub temp,pdata
+	branch rec_nec_rptr_reset,positive
+	
+	fetch 2,core_nec_rptr
+	increase 3,pdata
+	store 2,core_nec_rptr
+	jam 3,mem_rec_nec_data
+	rtn
+
+rec_nec_rptr_reset:
+	arg mem_rec_nec_rx_start,temp
+	iadd temp,pdata
+	store 2,core_nec_rptr
+	rtn
+/*
+rec_nec_receiver_data_save:
+	fetch 3,mem_rec_nec_receive_data
+	rtn blank
+	fetch 1,mem_rec_nec_data
+	rtn blank
+	beq 1,rec_nec_carry_time
+	fetch 1,mem_rec_nec_rx_count
+	call rec_nec_update_timeout,blank
+	fetch 1,mem_rec_nec_rx_count
+	increase 1,pdata
+	store 1,mem_rec_nec_rx_count
+	fetch 2,mem_rec_nec_store_wptr
+	fetcht 2,mem_rec_nec_store_eptr
+	isub temp,null
+	branch rec_nec_receiver_init_wtr,positive
+	fetchr loopcnt,1,mem_rec_nec_data
+	fetch 2,mem_rec_nec_store_wptr
+	copy pdata,contw
+	fetch 2,mem_rec_nec_carry_time
+	istore 2,contw
+	arg mem_rec_nec_receive_data,contr
+rec_nec_receiver_data_save_loop:
+	ifetch 1,contr
+	istore 1,contw
+	loop rec_nec_receiver_data_save_loop	
+	copy contw,pdata
+	store 2,mem_rec_nec_store_wptr
+	setarg 0
+	store 3,mem_rec_nec_receive_data
+	store 3,mem_rec_nec_carry_time
+	rtn
+*/
+rec_nec_receiver_init_wtr:
+	setarg mem_rec_nec_rx_store_start
+	store 2,mem_rec_nec_store_sptr
+	store 2,mem_rec_nec_store_wptr
+	rtn
+
+rec_nec_carry_time:
+	call rec_nec_carry_store
+	fetch 1,mem_rec_nec_receive_data
+	fetcht 2,mem_rec_nec_carry_time
+	iadd temp,pdata
+	store 2,mem_rec_nec_carry_time
+	setarg 0
+	store 3,mem_rec_nec_receive_data
+	store 1,mem_rec_nec_data
+	rtn
+
+rec_nec_carry_store:
+	fetch 1,mem_rec_period_cal_count
+	sub pdata,20,null
+	rtn zero
+	increase 1,pdata
+	store 1,mem_rec_period_cal_count
+	fetch 1,mem_rec_nec_receive_data
+	fetcht 2,mem_rec_period_cal_ptr
+	istore 1,temp
+	increase 1,temp
+	storet 2,mem_rec_period_cal_ptr	
+	rtn	
+
+//pdata:run time
+rec_nec_receive_run_time:	
+	fetch 4,core_clkn
+	fetcht 4,mem_rec_nec_learn_stime
+	isub temp,pdata	
+	rtn
+
+//positive: timeout positive is 1
+rec_nec_receive_timeout:
+	fetcht 4,mem_rec_nec_learn_outtime
+	isub temp,null
+	rtn
+	
+rec_nec_update_timeout:
+	fetch 4,core_clkn	
+	store 4,mem_rec_nec_learn_stime	
+	setarg 620
+	store 4,mem_rec_nec_learn_outtime
+	rtn
+
+rec_nec_learn_analysis:
+	fetch 1,mem_rec_nec_rx_count
+	rtn blank
+	mul32 pdata,4,pdata
+	increase -10,pdata
+	copy pdata,loopcnt
+	store 1,mem_rec_nec_rx_len
+	arg mem_rec_nec_rx_store_start,contr
+	increase 6,contr
+	arg mem_rec_nec_rx_data,contw
+	branch memcpy
+	
+
+///////////////////////////////////////////////////////////////NEC RECEIVE START///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////ADPCM ENCODE START///////////////////////////////////////////////////////
+
+  /*
+ * @brief: adpcm encode
+ * @param: mem_ad_in_numSamples1, mem_ad_in_ptr1, mem_ad_out_ptr1
+ * @return: none
+ */
+rec_audio_adpcm_encode:
+	jam 40,mem_rec_ad_in_numSamples1
+	fetch 2,mem_rec_adc_dma_rptr
+	store 2,mem_rec_ad_in_ptr1
+	setarg mem_rec_adpcm
+	store 2,mem_rec_ad_out_ptr1
+rec_adpcm_encode:
+	fetch 4,mem_rec_ad_state_valpred1
+	store 4,mem_rec_ad_valpred1
+	
+	fetch 4,mem_rec_ad_state_index1
+	store 4,mem_rec_ad_index1
+	
+	fetch 1,mem_rec_ad_index1		// step = stepsizeTable[index];  
+	lshift2 pdata,pdata
+	arg mem_rec_ad_stepsizeTable1,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_rec_ad_step1
+	
+	jam 1,mem_rec_ad_bufferstep1
+rec_adpcm_encode_loop:
+	call rec_adpcm_get_val_from_inp 	// val = *inp++;
+
+	fetch 4,mem_rec_ad_val1			// diff = val - valpred;
+	fetcht 4,mem_rec_ad_valpred1
+	isub temp,pdata
+	store 4,mem_rec_ad_diff1
+	
+	call rec_adpcm_encode_cal_delta	//sign = (diff < 0) ? 8 : 0;
+	call rec_adpcm_set_diff_by_sign	//if ( sign ) diff = (-diff);
+
+	jam 0,mem_rec_ad_delta1			//delta = 0;
+
+	fetch 4,mem_rec_ad_step1 			//vpdiff = (step >> 3);
+	rshift3 pdata,pdata
+	store 4,mem_rec_ad_vpdiff1
+
+	call rec_check_diff_big_step1  		//if ( diff >= step ) {  delta = 4;
+
+	fetch 4,mem_rec_ad_step1			//step >>= 1;
+	rshift pdata,pdata
+	store 4,mem_rec_ad_step1
+
+	call rec_check_diff_big_step2		//if ( diff >= step  ) {    delta |= 2;
+
+	fetch 4,mem_rec_ad_step1			//step >>= 1;
+	rshift pdata,pdata
+	store 4,mem_rec_ad_step1
+
+	call rec_check_diff_big_step3		//if ( diff >= step ) {delta |= 1;
+
+	call rec_check_sign_deal1			//	if ( sign )
+
+	call rec_adpcm_check_valpred_more_32767 //if ( valpred > 32767 )
+
+	fetch 1,mem_rec_ad_delta1			//delta |= sign;
+	fetcht 1,mem_rec_ad_sign1
+	ior temp,pdata
+	store 1,mem_rec_ad_delta1
+
+	fetch 1,mem_rec_ad_delta1			//index += indexTable[delta];
+	arg mem_rec_ad_indexTable1,temp
+	iadd temp,temp
+	ifetch 1,temp
+	call rec_char_2_int32
+	fetcht 4,mem_rec_ad_index1
+	iadd temp,pdata
+	store 4,mem_rec_ad_index1
+
+	call rec_adpcm_check_index_less_0		//if ( index < 0 ) index = 0;
+	call rec_adpcm_check_index_big_88		//if ( index > 88 ) index = 88;
+
+	fetch 4,mem_rec_ad_index1			// step = stepsizeTable[index];  
+	lshift2 pdata,pdata
+	arg mem_rec_ad_stepsizeTable1,temp
+	iadd temp,temp
+	ifetch 4,temp
+	store 4,mem_rec_ad_step1
+
+	call rec_adpcm_check_bufferstep		//if(bufferstep){
+
+	fetch 1,mem_rec_ad_bufferstep1		//bufferstep = !bufferstep;
+	arg 0x01,temp
+	ixor temp,pdata
+	store 1,mem_rec_ad_bufferstep1
+
+	fetch 1,mem_rec_ad_in_numSamples1
+	increase -1,pdata
+	store 1,mem_rec_ad_in_numSamples1
+	nbranch rec_adpcm_encode_loop, blank
+
+
+	fetch 1,mem_rec_ad_bufferstep1
+	call rec_adpcm_set_bufferstep_to_outp,blank
+
+	fetch 4,mem_rec_ad_valpred1
+	store 4,mem_rec_ad_state_valpred1
+
+	fetch 4,mem_rec_ad_index1
+	store 4,mem_rec_ad_state_index1
+	rtn
+
+//pdata :diff
+rec_adpcm_encode_cal_delta:
+	fetch 4,mem_rec_ad_diff1
+	bbit1 31,rec_adpcm_encode_cal_smaller_zero
+	setarg 0
+rec_adpcm_encode_store_sign1:
+	store 1,mem_rec_ad_sign1
+	rtn
+
+rec_adpcm_encode_cal_smaller_zero:
+	setarg 8
+	branch rec_adpcm_encode_store_sign1
+
+rec_adpcm_set_diff_by_sign:
+	fetch 1,mem_rec_ad_sign1
+	nbranch rec_adpcm_diff_negation,blank
+	rtn
+
+rec_adpcm_diff_negation:
+	fetch 4,mem_rec_ad_diff1
+	sub pdata,0,pdata
+	store 4,mem_rec_ad_diff1
+	rtn
+
+rec_check_diff_big_step1:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	rtnbit1 31
+	jam 4,mem_rec_ad_delta1
+rec_check_diff_big_common:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	store 4,mem_rec_ad_diff1
+rec_check_diff_big_common_next:
+	fetch 4,mem_rec_ad_vpdiff1
+	fetcht 4,mem_rec_ad_step1
+	iadd temp,pdata
+	store 4,mem_rec_ad_vpdiff1
+	rtn
+
+rec_check_diff_big_step2:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	rtnbit1 31
+	fetch 1,mem_rec_ad_delta1
+	or pdata,2,pdata
+	store 1,mem_rec_ad_delta1
+	branch rec_check_diff_big_common
+
+rec_check_diff_big_step3:
+	fetch 4,mem_rec_ad_diff1
+	fetcht 4,mem_rec_ad_step1
+	isub temp,pdata
+	rtnbit1 31
+	fetch 1,mem_rec_ad_delta1
+	or pdata,1,pdata
+	store 1,mem_rec_ad_delta1
+	branch rec_check_diff_big_common_next
+
+rec_check_sign_deal1:
+	fetch 1,mem_rec_ad_sign1
+	branch rec_valpred_add_vpdiff,blank
+rec_valpred_sub_vpdiff:
+	fetch 4,mem_rec_ad_valpred1
+	fetcht 4,mem_rec_ad_vpdiff1
+	isub temp,pdata
+rec_valpred1_store:
+	store 4,mem_rec_ad_valpred1
+	rtn
+
+rec_valpred_add_vpdiff:
+	fetch 4,mem_rec_ad_valpred1
+	fetcht 4,mem_rec_ad_vpdiff1
+	iadd temp,pdata
+	branch rec_valpred1_store
+	
+rec_adpcm_check_valpred_more_32767:
+	fetch 4,mem_rec_ad_valpred1
+	arg 32767,temp
+	isub temp,pdata
+	bbit0 31,rec_adpcm_valpred_more_32767
+rec_adpcm_check_valpred_less_f32767:	
+	fetch 4,mem_rec_ad_valpred1
+	arg -32767,temp
+	isub temp,pdata
+	bbit1 31,rec_adpcm_valpred_less_f32767
+	rtn
+
+rec_adpcm_valpred_more_32767:
+	setarg 32767
+	branch rec_valpred1_store
+	
+rec_adpcm_valpred_less_f32767:
+	setarg -32767
+	branch rec_valpred1_store
+	
+rec_adpcm_check_index_less_0:
+	fetch 4,mem_rec_ad_index1
+	arg 0,temp
+	isub temp,pdata
+	bbit1 31,rec_adpcm_set_0_index
+	rtn
+
+rec_adpcm_check_index_big_88:
+	fetch 4,mem_rec_ad_index1
+	arg 88,temp
+	isub temp,pdata
+	bbit0 31,rec_adpcm_set_88_index
+	rtn
+
+rec_adpcm_set_0_index:
+	setarg 0
+rec_adpcm_store_index1:
+	store 4,mem_rec_ad_index1
+	rtn
+
+rec_adpcm_set_88_index:
+	setarg 88
+	branch rec_adpcm_store_index1
+
+rec_adpcm_check_bufferstep:
+	fetch 1,mem_rec_ad_bufferstep1
+	branch rec_adpcm_bufferstep_eque_0,blank
+rec_adpcm_bufferstep_neque_0:
+	fetch 1,mem_rec_ad_delta1
+	and pdata,0x0f,pdata
+	store 4,mem_rec_ad_outputbuffer1	
+	rtn
+
+//*outp++=((delta<<4)&0xf0)|outputbuffer
+rec_adpcm_bufferstep_eque_0:
+	fetch 1,mem_rec_ad_delta1
+	lshift4,pdata,pdata
+	and pdata,0xf0,pdata
+	fetcht 4,mem_rec_ad_outputbuffer1
+	ior temp,pdata
+rec_adpcm_bufferstep_increase_out_ptr1:
+	fetcht 2,mem_rec_ad_out_ptr1
+	istore 1,temp	
+	increase 1,temp
+	storet 2,mem_rec_ad_out_ptr1
+	rtn
+
+rec_adpcm_set_bufferstep_to_outp:
+	fetch 4,mem_rec_ad_outputbuffer1
+	branch rec_adpcm_bufferstep_increase_out_ptr1
+	
+
+//val = *inp++;
+//val: int ,4 byte
+//inp:shourt int ,2byte
+rec_adpcm_get_val_from_inp:	
+	fetcht 2,mem_rec_ad_in_ptr1
+	ifetch 2,temp
+	increase 2,temp
+	storet 2,mem_rec_ad_in_ptr1
+	call rec_int16_2_int32
+	store 4,mem_rec_ad_val1
+	rtn
+
+/*
+pdata: intput,int16 data
+pdata:output int data
+*/
+rec_int16_2_int32:
+	bbit1 15,rec_int16_2_int32_less_0
+	rtn
+
+rec_int16_2_int32_less_0:
+	arg 0xffff,temp
+	lshift16 temp,temp
+rec_calca_ixor:
+	ixor temp,pdata
+	rtn
+
+
+/*
+pdata: intput,char data
+pdata:output int data
+*/
+rec_char_2_int32:
+	bbit1 7,rec_char_2_int32_less_0
+	rtn
+rec_char_2_int32_less_0:
+	arg 0xffffff,temp
+	lshift8 temp,temp
+	branch rec_calca_ixor
+	
+///////////////////////////////////////////////////////////////ADPCM ENCODE END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////AUDIO START///////////////////////////////////////////////////////
+
+rec_voice_notify_apk:
+	arg 20,rega
+	fetcht 2,mem_rec_voice_notify_apk_handle
+rec_le_notify_data:
+	call le_att_malloc_tx_notify
+	arg mem_rec_voice_notify,contr
+	arg 20,loopcnt
+	branch memcpy
+	
+rec_voice_start_apk:
+	jam 0x01,mem_pdatatemp
+rec_voice_notify_apk_data:
+	jam 1,mem_rec_le_data_len
+	fetcht 2,mem_rec_control_notify_apk_handle
+	branch rec_le_send_data
+
+rec_voice_end_apk:
+	jam 0x00,mem_pdatatemp
+	branch rec_voice_notify_apk_data
+
+
+rec_voice_notify_box:
+	arg 20,rega
+	fetcht 2,mem_rec_voice_notify_box_handle
+	branch rec_le_notify_data
+
+rec_voice_start_box:
+	setarg 0x221
+rec_voice_notify_box_data:
+	store 3,mem_pdatatemp
+	jam 3,mem_rec_le_data_len
+	fetcht 2,mem_rec_control_notify_box_handle
+	branch rec_le_send_data 
+
+rec_voice_end_box:
+	setarg 0xcccc
+	branch rec_voice_notify_box_data
+
+
+///////////////////////////////////////////////////////////////AUDIO END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////FILTER POLICY START///////////////////////////////////////////////////////
+/*
+rec_le_adv_loop:
+	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
+	store 1,mem_rec_le_req_type
+	beq SCAN_REQ,rec_le_send_scan_response
+	beq CONNECT_REQ,rec_le_parse_connect_req
+	branch le_adv_not_match
+
+rec_le_parse_connect_req:
+rec_le_send_scan_response:
+rec_le_white_list_filter_check:
+	fetch 1,mem_rec_white_list_num
+	beq 0,rec_scan_filter_pass
+	fetch 1,mem_rec_le_scan_filter_policy
+	beq NONE_FILTER,rec_scan_filter_pass
+	beq WHITE_LIST_SCAN_FILTER,rec_white_filter_scan_check
+	beq WHITE_LIST_CONNECT_FILTER,rec_scan_filter_pass
+	beq WHITE_LIST_CONN_SCAN_FILTER,rec_white_filter_scan_check
+rec_white_filter_scan_check:
+	fetch 1,mem_rec_white_list_num
+	branch end_of_packet,blank
+	call rec_check_addr_in_white_list
+	nbranch end_of_packet,blank
+rec_scan_filter_pass:
+	fetch 1,mem_rec_le_req_type
+	beq SCAN_REQ,le_send_scan_response+1
+	beq CONNECT_REQ,le_parse_connect_req
+	rtn
+
+rec_check_addr_in_white_list:
+	fetchr loopcnt,1,mem_rec_white_list_num
+	increase -1,loopcnt
+	fetcht 6, mem_le_rxbuf+2
+	setarg mem_rec_white_list
+	copy pdata,contr
+rec_addr_compare:
+	ifetch 6,contr
+	isub temp,pdata
+	rtn blank
+	loop rec_addr_compare
+	rtn
+
+rec_le_add_white_list:
+	fetch 1,mem_rec_white_list_num
+	sub pdata,7,null
+	nrtn positive
+	setarg mem_rec_white_list
+	fetcht 1,mem_rec_white_list_num
+	mul32 temp,6,temp
+	iadd temp,contw
+	fetch 6,mem_le_plap
+	istore 6,contw
+	
+	fetch 1,mem_rec_white_list_num
+	increase 1,pdata
+	store 1,mem_rec_white_list_num
+	rtn
+
+rec_le_clear_white_list:
+	jam 0,mem_rec_white_list_num
+	rtn
+*/
+
+///////////////////////////////////////////////////////////////FILTER POLICY END///////////////////////////////////////////////////////
+
+
+
+///////////////////////////////////////////////////////////////OTA START///////////////////////////////////////////////////////
+
+rec_ota_process:
+	bpatch patch17_3,mem_patch17
+	copy rega,contr
+	ifetch 1,contr
+	rtnne OTA_COMMAND
+	ifetch 1,contr
+	store 1,mem_rec_ota_notify_opcode
+	beq OTA_PORTOCOL_VERSION_REQUEST,rec_ota_parse_protocol_version_req
+	beq OTA_BUCK_SIZE_REQUEST,rec_ota_parse_buck_size_req
+	beq OTA_START_REQUEST,rec_ota_parse_start_req
+	beq OTA_DATA_WRITE_CMD,rec_ota_parse_data_write_cmd
+	beq OTA_DATA_WRITE_REQUEST,rec_ota_prep_data_write_rsp
+	beq OTA_END_REQUEST,rec_ota_parse_end_req
+rec_ota_init:
+	setarg -1
+	store 2,mem_rec_ota_write_index
+	setarg 0
+	store 4,mem_rec_ota_total_sum
+	store 2,mem_rec_ota_write_length
+	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
+	rtn
+
+rec_ota_parse_protocol_version_req:
+	arg 5,rega
+	call rec_ota_tx_notify_success
+	fetch 2,mem_rec_ota_version
+	istore 2,contw
+	jam OTA_LE_CONN_PARAM_UPDATE_ENABLE,mem_rec_ota_le_conn_param_update
+	fetch 8,mem_rec_ota_le_conn_update_param
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+rec_ota_parse_buck_size_req:
+	arg 7,rega
+	call rec_ota_tx_notify_success
+	fetch 2,mem_rec_ota_buck_size
+	istore 2,contw
+	fetch 2,mem_rec_ota_packet_max_len
+	istore 2,contw
+	rtn
+
+rec_ota_parse_start_req:
+	ifetch 1,contr
+	store 1,mem_rec_ota_update_flash_mode
+	beq OTA_UPDATE_FLASH_NORMAL,rec_ota_parse_start_req_update_normal
+rec_ota_tx_flashmode_not_support:
+	arg 4,rega
+	jam OTA_RESULT_FLASHMODE_NOT_SUPPORT,mem_rec_ota_notify_result
+	call rec_ota_tx_notify_common
+	fetch 1,mem_rec_ota_update_flash_mode
+	branch  istore_1_contw_rtn
+
+
+rec_ota_tx_start_req_success:
+	arg 4,rega
+	call rec_ota_tx_notify_success
+	fetch 1,mem_rec_ota_update_flash_mode
+	branch  istore_1_contw_rtn
+
+
+rec_ota_parse_start_req_update_normal:
+	call rec_ota_tx_start_req_success
+	call rec_ota_init
+	setarg 0
+	store 3,mem_rec_ota_flash_offset_addr
+	jam 1,mem_rec_ota_enable
+	setarg 0
+	arg 0x10,temp
+	arg mem_rec_ota_flash_buf,rega
+	call spid_read_flash
+	call rec_ota_set_flash_start_addr
+	fetchr rega,3,mem_rec_ota_flash_base_addr
+	arg 9,loopcnt
+rec_erase_num_sector_flash:
+	force 0,regext_index
+rec_erase_num_sector_flash_loop:
+	call rec_spi_wait_flash
+	storer rega,3,mem_spi_write_addr
+	call rec_save_loopcnt_rega
+	call spid_flash_erase_sector
+	call rec_rescue_rega_loopcnt
+	setarg 4096
+	iadd rega,rega
+	loop rec_erase_num_sector_flash_loop
+	rtn
+
+rec_ota_set_flash_start_addr:
+	bpatchx patch3e_1,mem_patch3e
+	fetcht 3,mem_rec_code_b_flash_addr
+	storet 3,mem_rec_ota_flash_base_addr
+	storet 3,mem_rec_ota_write_flash_addr_start
+	fetch 1,mem_rec_ota_flash_buf
+	rtneq 0x60	//0x6000
+	fetcht 3,mem_rec_code_a_flash_addr
+	storet 3,mem_rec_ota_flash_base_addr
+	storet 3,mem_rec_ota_write_flash_addr_start
+	rtn
+
+rec_ota_parse_data_write_cmd:
+rec_ota_parse_data_write_req:
+rec_ota_parse_data_write_data_store:
+	fetcht 2,mem_le_l2cap_size
+	increase -8,temp
+	fetch 2,mem_rec_ota_write_length
+	iadd temp,pdata
+	store 2,mem_rec_ota_write_length
+	copy temp,loopcnt
+	copy rega,contr
+	increase 5,contr
+	call rec_queue_ota_push
+	fetch 2,mem_rec_ota_write_index
+	increase 1,pdata
+	store 2,mem_rec_ota_write_index
+	rtn
+
+rec_ota_prep_data_write_rsp:
+	call rec_ota_parse_data_write_req
+	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
+	jam OTA_DATA_WRITE_REQUEST,mem_rec_ota_notify_opcode
+	arg 3,rega
+	branch rec_ota_tx_notify_common
+
+rec_ota_tx_notify_success:
+	jam OTA_RESULT_SUCCESS,mem_rec_ota_notify_result
+//input rega:length
+rec_ota_tx_notify_common:
+	fetcht 2,mem_rec_ota_notify_handle
+	call le_att_malloc_tx_notify
+	setarg OTA_EVENT
+	istore 1,contw
+	fetch 1,mem_rec_ota_notify_result
+	istore 1,contw
+	fetch 1,mem_rec_ota_notify_opcode
+	branch istore_1_contw_rtn
+
+rec_ota_parse_end_req:
+	force 0,regext_index
+	call rec_save_contr
+	call rec_ota_data2flash_remain
+	jam 0,mem_rec_ota_enable
+	setarg 0
+	store 3,mem_rec_ota_flash_offset_addr
+	store 4,mem_rec_ota_total_sum
+	call rec_ota_sum_all
+	call rec_rescue_contr
+	increase 1,contr
+	ifetch 4,contr	//length
+	store 4,mem_pdatatemp
+	ifetch 4,contr	//checksum
+	store 4,mem_pdatatemp+4
+
+	fetch 4,mem_pdatatemp
+	fetcht 4,mem_rec_ota_write_length
+	isub temp,null
+	nbranch rec_ota_tx_length_error,zero
+
+	fetch 4,mem_rec_ota_total_sum
+	fetcht 4,mem_pdatatemp+4
+	isub temp,null
+	nbranch rec_ota_result_error_write_flash,zero
+	call rec_ota_updata_head	
+	jam 2,mem_rec_ota_reset_timeout
+rec_ota_tx_end_req_return:
+	arg 0x0c,rega
+	call rec_ota_tx_notify_common
+	fetch 1,mem_rec_ota_update_flash_mode
+	istore 1,contw
+	fetch 4,mem_rec_ota_write_length
+	istore 4,contw
+	fetch 4,mem_rec_ota_total_sum
+	istore 4,contw
+	rtn
+
+rec_ota_tx_length_error:
+	jam OTA_RESULT_LENGTH_ERROR,mem_rec_ota_notify_result
+	branch rec_ota_tx_end_req_return
+
+rec_ota_result_error_write_flash:
+	jam OTA_RESULT_WRITE_FLASH_ERROR,mem_rec_ota_notify_result
+	rtn
+
+rec_ota_data2flash_remain:
+	fetch 1,mem_rec_ota_enable
+	rtn blank
+	call rec_ota_queue_count_256
+	rtn positive
+	fetcht 2,mem_rec_queue_ota_count
+	call rec_save_temp
+	copy temp,loopcnt
+	arg mem_rec_ota_flash_buf,contw
+	call rec_queue_ota_pop
+	call rec_spi_wait_flash
+	call rec_rescue_temp
+	call rec_save_temp
+	call rec_ota_data2flash
+	call rec_rescue_temp
+	branch rec_ota_increase_flash_offset_addr
+
+rec_ota_queue_count_256:
+	fetch 2,mem_rec_queue_ota_count
+	arg 256,temp
+	isub temp,null
+	rtn	
+
+//temp : out page sum
+rec_ota_sum_page:
+	arg 0x100,loopcnt
+	branch rec_ota_sum
+
+rec_ota_sum_all:
+	fetch 2,mem_rec_ota_write_length
+	fetcht 2,mem_rec_ota_flash_offset_addr
+	isub temp,pdata
+	rtn zero
+	call rec_save_reg
+	call rec_ota_data_from_flash_len
+	call rec_rescue_reg
+	call rec_ota_sum_len
+	fetch 4,mem_rec_ota_total_sum
+	iadd temp,pdata
+	store 4,mem_rec_ota_total_sum
+	branch rec_ota_sum_all
+
+rec_ota_sum_len:
+	arg 0x100,temp
+	isub temp,null
+	branch rec_ota_sum_page,positive
+	copy pdata,loopcnt
+rec_ota_sum:
+	arg mem_rec_ota_flash_buf,contr
+	arg 0,temp
+rec_ota_sum_loop:
+	ifetch 1,contr
+	iadd temp,temp
+	loop rec_ota_sum_loop
+	rtn
+
+rec_ota_data_from_flash_len:
+	arg 0x100,temp
+	isub temp,null
+	branch rec_ota_data_from_flash_page,positive
+	call rec_save_reg
+	copy pdata,loopcnt
+	call rec_ota_data_from_flash
+	call rec_rescue_reg
+	copy pdata,temp
+	branch rec_ota_increase_flash_offset_addr
+
+rec_ota_data_from_flash:
+	fetch 3,mem_rec_ota_flash_base_addr
+	fetchr regb,3,mem_rec_ota_flash_offset_addr
+	iadd regb,pdata
+	arg mem_rec_ota_flash_buf,rega
+	branch spid_read_flash
+
+rec_ota_data_from_flash_page:
+	arg 0x100,temp
+	call rec_ota_data_from_flash
+	arg 0x100,temp
+	branch rec_ota_increase_flash_offset_addr
+
+
+rec_ota_polling:
+	fetch 1,mem_rec_ota_enable
+	ncall rec_ota_data2flash_page,blank
+	rtn
+
+rec_ota_data2flash_page:
+	fetch 1,mem_rec_ota_enable
+	rtn blank
+	call rec_ota_queue_count_256
+	nrtn positive
+	arg 256,loopcnt
+	arg mem_rec_ota_flash_buf,contw
+	call rec_queue_ota_pop
+	call rec_spi_wait_flash
+	arg 256,temp
+	call rec_ota_data2flash
+	arg 256,temp
+rec_ota_increase_flash_offset_addr:
+	fetch 2,mem_rec_ota_flash_offset_addr
+	iadd temp,pdata
+	store 2,mem_rec_ota_flash_offset_addr
+	rtn
+
+rec_ota_data2flash:
+	fetch 3,mem_rec_ota_flash_base_addr
+	fetchr regb,3,mem_rec_ota_flash_offset_addr
+	iadd regb,pdata
+	arg mem_rec_ota_flash_buf,rega
+	branch spid_write_flash_data
+	
+
+rec_queue_ota_init:
+	setarg mem_rec_queue_ota_buf
+	fetcht 2,mem_rec_ota_queue_size
+rec_queue_init_config:
+	increase -1,temp
+	copy pdata,contw
+	increase -8,contw
+	istore 2,contw
+	iadd temp,pdata
+	istore 2,contw
+	isub temp,pdata
+	istore 2,contw
+	istore 2,contw
+	rtn
+
+rec_queue_ota_push:
+	call rec_save_contr
+	bpatch patch17_4,mem_patch17
+	fetch 2,mem_rec_queue_ota_count
+	iadd loopcnt,pdata
+	store 2,mem_rec_queue_ota_count
+	setarg mem_rec_queue_ota_buf
+	call rec_queue_enter_config
+	call rec_rescue_contr
+	call rec_enter_queue
+	fetch 2,mem_rec_queue_ota_count
+	fetcht 2,mem_rec_ota_queue_size
+	isub temp,null
+	call rec_queue_ota_data_loss,positive
+	rtn
+rec_queue_ota_data_loss:
+	rtn
+
+rec_queue_ota_pop:
+	call rec_save_contw
+	fetch 2,mem_rec_queue_ota_count
+	isub loopcnt,pdata
+	store 2,mem_rec_queue_ota_count
+	setarg mem_rec_queue_ota_buf
+	call rec_queue_out_config
+	call rec_rescue_contw
+rec_out_queue:
+	copy contu,pdata
+	isub temp,null
+	branch assert,zero
+rec_out_queue_loop:
+	ifetch 1,contru
+	istore 1,contw
+	loop rec_out_queue_loop	
+	istorer contru,2,rega
+	rtn
+
+rec_ota_updata_head:
+	call rec_ota_read_head
+	setarg 0
+	call rec_spid_flash_erase_page
+rec_ota_write_head_check:
+	bpatch patch17_5,mem_patch17
+	fetch 1,mem_rec_ota_flash_buf
+	beq 0x60,rec_ota_write_head_B
+	beq 0xf0,rec_ota_write_head_A
+rec_ota_write_head_A:
+	fetch 3,mem_rec_code_a_flash_addr
+	branch rec_ota_write_head
+
+rec_ota_read_head:
+	setarg 0
+	arg 0x100,temp
+	arg mem_rec_ota_flash_buf,rega
+	branch spid_read_flash
+
+rec_ota_write_head_B:
+	fetch 3,mem_rec_code_b_flash_addr
+rec_ota_write_head:	
+	increase 2,pdata
+	byteswap pdata,pdata
+	store 2,mem_rec_ota_flash_buf
+	arg 0x100,temp
+	arg mem_rec_ota_flash_buf,rega
+	setarg 0	
+	branch spid_write_flash_data
+
+
+rec_spid_flash_erase_page:
+	store 3,mem_spi_write_addr
+	call rec_spi_wait_flash
+	call spid_init_flash
+	call spid_unlock_flash
+	arg mem_spid_tbuf,rega
+	jam 4,core_spid_txlen
+	fetch 3,mem_spi_write_addr
+	arg FLASH_COMMAND_PAGE_ERASE,temp
+	branch spid_write_flash_common
+
+rec_spi_wait_flash:
+	setarg mem_spid_tbuf
+	store 2,core_spid_txaddr
+	setarg mem_spid_rbuf
+	store 2,core_spid_rxaddr
+	jam 0,core_spid_txlen+1
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	bbit1 FLASH_STATUS_WIP,rec_spi_wait_flash
+	rtn
+	
+rec_save_contr:
+	copy contr,pdata
+	branch rec_save_reg
+
+rec_rescue_contr:
+	call rec_rescue_reg
+	branch get_contr_end
+	
+rec_save_contw:
+	copy contw,pdata
+	branch rec_save_reg
+
+rec_rescue_contw:
+	call rec_rescue_reg
+	branch get_contw_end
+
+rec_save_loopcnt_rega:
+	call rec_save_loopcnt
+	branch rec_save_rega
+
+rec_rescue_rega_loopcnt:
+	call rec_rescue_rega
+rec_rescue_loopcnt:
+	call rec_rescue_reg
+	copy pdata,loopcnt
+	rtn
+
+rec_save_loopcnt:
+	copy loopcnt,pdata
+	branch rec_save_reg
+
+rec_save_temp:
+	copy temp,pdata
+	branch rec_save_reg
+
+rec_rescue_temp:
+	call rec_rescue_reg
+	copy pdata,temp
+	rtn
+
+///////////////////////////////////////////////////////////////OTA END///////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////QUEUE START///////////////////////////////////////////////////////
+/*
+ * @brief: config push queue addr
+ * @param: none
+ * @return: pdata: adpcm data buff start addr
+ */
+rec_queue_enter_config:
+	increase -8,pdata
+	ifetchr contus,2,pdata
+	increase 2,pdata	
+	ifetchr contue,2,pdata
+	increase 2,pdata	
+	ifetchr temp,2,pdata
+	increase 2,pdata
+	ifetchr contu,2,pdata
+	copy pdata,rega
+	rtn
+
+
+/*
+ * @brief: config pop queue addr
+ * @param: none
+ * @return: pdata: adpcm data buff start addr
+ */
+rec_queue_out_config:
+	increase -8,pdata
+	ifetchr contus,2,pdata
+	increase 2,pdata	
+	ifetchr contue,2,pdata
+	increase 2,pdata
+	ifetchr contu,2,pdata
+	copy pdata,rega
+	increase 2,pdata	
+	ifetchr temp,2,pdata
+	rtn
+
+
+/*
+ * @brief: data push queue
+ * @param: contr: queue read ptr value, contwu:queue write ptr value, rega: queue write ptr
+ * @param: loopcnt: length, temp: queue read ptr value
+ * @return: none
+ */
+rec_enter_queue:
+rec_enter_queue_loop:
+	ifetch 1,contr
+	istore 1,contwu
+	loop rec_enter_queue_loop	
+	istorer contwu,2,rega
+	copy contwu,pdata	
+	isub temp,null
+	branch assert,zero
+	rtn
+
+///////////////////////////////////////////////////////////////QUEUE END///////////////////////////////////////////////////////
+
+endif
+
+
Index: GK308_keyboard_only_24g/program/app_shutter.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_shutter.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_shutter.prog	(working copy)
@@ -0,0 +1,624 @@
+
+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 patch17_6,mem_patch17
+	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
+	call shutter_dy_check_iphone
+	call app_lpm_mult_enable
+	nbranch ble_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_android
+	store 8,mem_le_interval_min
+	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_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:
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	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_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 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
+
+	setarg 0x0002
+	store 2,mem_key0_press
+	setarg 0x0001
+	store 2,mem_key1_press
+	setarg 0x0006
+	store 2,mem_key0_release
+	store 2,mem_key1_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: GK308_keyboard_only_24g/program/app_shutter_dy.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_shutter_dy.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/app_shutter_dy.prog	(working copy)
@@ -0,0 +1,1555 @@
+
+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 patch17_7,mem_patch17
+	//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
+	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_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
+
+	setarg shutter_dy_le_before_hibernate
+	store 2,mem_cb_before_hibernate
+
+	setarg shutter_dy_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
+	call ui_led_init_global
+
+	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 patch18_0,mem_patch18
+	branch shutter_power_switch
+
+shutter_dy_process_lpm_before:
+	call gpio_set_before_lpm
+	branch keyscan_process_lpm_before
+
+shutter_dy_le_before_hibernate:
+	jam UI_BUTTON_GPIO_DISABLE,mem_ui_button_gpio
+	call gpio_set_before_lpm
+	call dy_set_key_gpio_before_hiernate
+	branch disable_authrom
+
+dy_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
+dy_set_key_gpio_loop:
+	ifetch 1,rega
+	fetcht 1,mem_shutter_soft_switch_button_gpio_temp
+	isub temp,null
+	branch dy_set_key_gpio_loop_end,zero
+	sub pdata,0xff,null
+	branch dy_set_key_gpio_loop_end,zero
+	copy pdata,temp
+	call dy_shutter_gpio_config_input_pd
+dy_set_key_gpio_loop_end:
+	increase 1,rega
+	loop dy_set_key_gpio_loop
+	rtn
+
+dy_shutter_gpio_config_input_pd:
+	set1 gpio_active_bit,temp
+	branch gpio_config_input
+
+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 0x2b
+	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
+	rtn 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_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
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,ble_dy_shutter_process_parse_connect_parameter_update_response
+	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_dy_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 ble_parameter_updata_response_ios,blank
+	fetch 8,mem_ble_shutter_dy_interval_min_android
+	store 8,mem_le_interval_min
+	branch le_l2cap_tx_update_req
+
+ble_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
+
+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 patch18_1,mem_patch18
+	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 patch18_2,mem_patch18
+	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 patch18_3,mem_patch18
+	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
+	call shutter_dy_clear_volume_timer
+	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 patch18_4,mem_patch18
+	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 patch18_5,mem_patch18
+	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_check_iphone
+	nbranch shutter_dy_move_ios_to_specify_location,blank
+	arg 0x1c,pdata
+	call queue_push_one_byte
+	arg 0x1d,pdata
+	branch queue_push_one_byte
+
+shutter_dy_move_ios_to_specify_location:
+	call shutter_dy_move_down_left_corner
+	call shutter_dy_move_x_max
+	call shutter_dy_move_y_max
+	arg 0x29,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 0x2b,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 0x2c,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 0x2d,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 patch18_6,mem_patch18
+	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 0x1b
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 5,contw
+	fetch 4,mem_shutter_move_data
+	istore 4,contw
+	rtn
+
+shutter_dy_get_move_data_iphone:
+	setarg 0x29
+	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 patch18_7,mem_patch18
+	call shutter_dy_check_iphone
+	branch shutter_dy_move_android_data_store,blank	//android
+	//ios
+	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
+	call shutter_dy_get_ios_move_data
+	branch shutter_dy_move_ios_release_data
+
+shutter_dy_get_ios_move_data:
+	setarg 0x28
+	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_move_ios_release_data:
+	setarg 0x29
+	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_move_android_data_store:
+	fetch 2,mem_shutter_move_data_x
+	fetcht 2,mem_shutter_move_data_y
+	lshift16 temp,temp
+	iadd temp,pdata
+	store 4,mem_shutter_move_data
+	call shutter_dy_move_android_release_data
+	branch shutter_dy_data_android_xy_data
+
+shutter_dy_move_android_release_data:
+	setarg 0x1b
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 5,contw
+	fetch 4,mem_shutter_move_data
+	istore 4,contw
+	rtn
+
+shutter_dy_data_android_xy_data:
+	setarg 0x1c
+	mul32 pdata,EVERY_PAYLOAD_LEN,pdata
+	arg mem_shutter_mousekey_value_list,temp
+	iadd temp,contw
+	increase 5,contw
+	fetch 4,mem_shutter_move_data
+	istore 4,contw
+	rtn
+
+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_check_iphone
+	branch shutter_dy_dnroid_up_check_y,blank
+shutter_dy_move_y_check_max:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	fetcht 2,mem_shutter_move_data_y
+	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_dnroid_up_check_y:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	isub temp,null
+	nrtn positive
+	isub temp,pdata
+	store 2,mem_shutter_move_data_y
+	branch shutter_dy_move_data_store
+
+
+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 0xffff
+	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_check_iphone
+	branch shutter_dy_move_android_down,blank
+shutter_dy_move_down_next:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	iadd temp,pdata
+	arg 0xfff,temp
+	isub temp,rega
+	call shutter_dy_move_y_empty_check,positive
+	branch shutter_dy_move_store_y
+
+shutter_dy_move_android_down:
+	call shutter_dy_every_move_size_set
+	fetch 2,mem_shutter_move_data_y
+	iadd temp,pdata
+	arg 0xfff,temp
+	call ceiling
+	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 patch19_0,mem_patch19
+	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 patch19_1,mem_patch19
+	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 patch19_2,mem_patch19
+	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 patch19_3,mem_patch19
+	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:
+	fetch 2,mem_android_initial_move_x
+	store 2, mem_shutter_move_data_x
+	fetch 2,mem_android_initial_move_y
+	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 patch19_4,mem_patch19
+	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 patch19_5,mem_patch19
+	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:
+	copy pdata,regb
+	bpatch patch19_6,mem_patch19
+	arg SHUTTER_PARA_TOTAL_NUM,loopcnt
+	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: GK308_keyboard_only_24g/program/ble_protocol_stack/le.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le.prog	(working copy)
@@ -0,0 +1,1881 @@
+ifdef COMPILE_LE
+//******************************************//
+//*************LE INIT ****************//
+//******************************************//
+
+le_init_conn:
+	bpatchx patch27_3,mem_patch27
+	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 patch27_4,mem_patch27
+	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 patch27_5,mem_patch27
+	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 patch27_6,mem_patch27
+	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 patch27_7,mem_patch27
+	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
+	branch le_disable_master
+	
+le_master_disconn:
+	call le_disconnect
+le_disable_master:
+	disable master
+	rtn
+	
+//******************************************//
+//***********LE slave process***********//
+//******************************************//
+le_slave_dispatch:
+	bpatchx patch28_0,mem_patch28
+	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 patch28_1,mem_patch28
+	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 patch28_2,mem_patch28
+	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 patch28_3,mem_patch28
+	call end_of_packet
+	call le_lpm_set_mult
+	branch calc_clke_offset
+
+
+le_check_md:
+	bmark1 mark_ble_rx_md,enable_user
+	bmark1 mark_ble_tx_md,enable_user
+	bmark1 mark_ble_crc_fail,enable_user
+	branch disable_user
+
+
+le_slave_more_data:
+	bpatchx patch28_4,mem_patch28
+	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 patch28_5,mem_patch28
+	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 patch28_6,mem_patch28
+	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 patch28_7,mem_patch28
+	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 patch29_0,mem_patch29
+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 patch29_1,mem_patch29
+	set0 mark_ble_2M,mark
+	set0 mark_ble_lr,mark
+	rtn
+
+
+le_disable:
+	bpatchx patch29_2,mem_patch29
+	set0 mark_ble_encryption,mark
+	jam 0x01,0x8901
+	jam 0x80,0x8920
+	jam 0x03,0x8930
+	rtn
+	
+le_prep:
+	bpatchx patch29_3,mem_patch29
+	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 patch29_4,mem_patch29
+	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 patch29_5,mem_patch29
+	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 patch29_6,mem_patch29
+	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 patch29_7,mem_patch29
+	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 patch2a_0,mem_patch2a
+ 	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 patch2a_1,mem_patch2a
+	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
+	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 patch2a_2,mem_patch2a
+	call le_check_retransmit	
+//	bmark1 mark_old_packet,le_retransmit_end_of_packet
+	fetchr rega, 1,mem_le_rxbuf_data_length
+	increase -4,rega
+	nbranch le_crc_fail_consecutive,positive
+//	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 patch2a_3,mem_patch2a
+	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
+le_rx_match:
+	call rf_debug_rx_crc_line	//L
+	enable match
+	set0 mark_ble_crc_fail,mark
+le_crc_fail_tx:
+	bpatchx patch2a_4,mem_patch2a
+	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 patch2a_5,mem_patch2a
+	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 patch2a_6,mem_patch2a
+	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_adv,le_crc_fail_consecutive
+	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 patch2a_7,mem_patch2a
+	call ccm_ctrl_clr
+	branch end_of_packet
+
+calc_clke_all_modem:
+	fetcht  6,mem_sync_clke
+	copy clke,pdata
+	call clk_diff
+	copy pdata,temp
+	call calc_clke_all_modem_1
+	copy clke,rege
+	copy clke_rt,pdata
+	iadd temp,pdata
+//	add pdata,8,pdata
+	copy pdata,clke_rt	
+	rtn
+	
+calc_clke_all_modem_1:
+	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 patch2b_0,mem_patch2b
+	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 patch2b_1,mem_patch2b
+	call le_transmit
+	branch end_of_packet
+	
+le_transmit:
+	bpatchx patch2b_2,mem_patch2b
+	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 patch2b_3,mem_patch2b
+	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 patch2b_4,mem_patch2b
+	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 patch2b_5,mem_patch2b
+	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 patch2b_6,mem_patch2b
+	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 patch2b_7,mem_patch2b
+	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 patch2c_0,mem_patch2c
+	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 patch2c_1,mem_patch2c
+	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 patch2c_2,mem_patch2c
+	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 patch2c_3,mem_patch2c
+	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 patch2c_4,mem_patch2c
+	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 patch2c_5,mem_patch2c
+	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 patch2c_6,mem_patch2c
+	fetch 1,mem_le_packet_llid
+	rtneq LLID_RESERVED
+	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 patch2c_7,mem_patch2c
+	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 patch2d_0,mem_patch2d
+	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 patch2d_1,mem_patch2d
+	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 patch2d_2,mem_patch2d
+	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 patch2d_3,mem_patch2d
+	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 patch2d_4,mem_patch2d
+	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
+	branch 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 patch2d_5,mem_patch2d
+	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 patch2d_6,mem_patch2d
+	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 patch2d_7,mem_patch2d
+	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 patch2e_0,mem_patch2e
+	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: GK308_keyboard_only_24g/program/ble_protocol_stack/le_advertising.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le_advertising.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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
+	set0 mark_ble_crc_fail,mark	
+	set1 mark_adv,mark	
+	set0 mark_ble_encryption,mark
+	call le_enable
+	call le_scan
+	call le_adv
+	set0 mark_adv,mark	
+	branch le_disable
+
+le_scan:
+	bpatchx patch2e_1,mem_patch2e
+	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 patch2e_2,mem_patch2e
+	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 patch2e_3,mem_patch2e
+	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 patch2e_4,mem_patch2e
+	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 patch2e_5,mem_patch2e
+	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 patch2e_6,mem_patch2e
+	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 patch2e_7,mem_patch2e
+	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 patch2f_0,mem_patch2f
+	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 patch2f_1,mem_patch2f
+	fetch 1,mem_le_adv_channel_map_temp
+	fetcht 1,mem_le_adv_channel_map
+	isub temp,null
+	nbranch le_adv_loop,zero
+	fetch 1,mem_device_option
+	sub pdata,DVC_OP_CAR,null
+	branch car_le_stop_random_delay_check,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 patch2f_2,mem_patch2f
+	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 patch2f_3,mem_patch2f
+	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 patch2f_4,mem_patch2f
+	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 patch2f_5,mem_patch2f
+	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 patch2f_6,mem_patch2f
+	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 patch2f_7,mem_patch2f
+	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 patch30_0,mem_patch30
+	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 patch30_1,mem_patch30
+	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_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_39:
+	jam 39,mem_le_ch_mapped
+	fetch 1,mem_le_adv_channel_map_temp
+	set1 BIT_ADV_CHANNEL_MAP_39,pdata
+set_le_adv_channel_map_temp:
+	store 1,mem_le_adv_channel_map_temp
+	rtn
+
+
+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
+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
+	branch set_le_adv_channel_map_temp
+
+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
+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
+	branch set_le_adv_channel_map_temp
+
Index: GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_att.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_att.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_att.prog	(working copy)
@@ -0,0 +1,1050 @@
+
+
+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_parse_att
+	beq DVC_OP_MOUSE,mouse_le_parse_att
+	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 enable_blank,positive
+	force 1,null
+	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 patch30_2,mem_patch30
+	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 patch30_3,mem_patch30
+	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 patch30_4,mem_patch30
+	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 patch30_5,mem_patch30
+	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 patch30_6,mem_patch30
+	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 patch30_7,mem_patch30
+	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 patch31_0,mem_patch31
+	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 patch31_1,mem_patch31
+	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 patch31_2,mem_patch31
+	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 patch31_3,mem_patch31
+	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 patch31_4,mem_patch31
+	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 patch31_5,mem_patch31
+	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 patch31_6,mem_patch31
+	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 patch31_7,mem_patch31
+	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 patch32_0,mem_patch32
+	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 patch32_1,mem_patch32
+	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: GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_att_wechat.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_att_wechat.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_signalling.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_signalling.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_smp.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le_l2cap_smp.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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 patch32_2,mem_patch32
+	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 patch32_3,mem_patch32
+	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 patch32_4,mem_patch32
+	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 patch32_5,mem_patch32
+	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 patch32_6,mem_patch32
+	force LE_L2CAP_CID_SMP,regb
+	branch le_fifo_malloc_tx_l2cap
+
+
Index: GK308_keyboard_only_24g/program/ble_protocol_stack/le_ll.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ble_protocol_stack/le_ll.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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 patch32_7,mem_patch32
+	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: GK308_keyboard_only_24g/program/bt.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/bt.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/bt.prog	(working copy)
@@ -0,0 +1,1801 @@
+//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_REMOTE_CAR
+define COMPILE_REMOTE_CONTROL
+//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 load_otp_set_init
+	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
+	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
+	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
+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
+	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 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
+	jam 0,0x8900 
+	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 0xf5,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 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,set_lemode_1m_16m
+	setarg 0x2bb1
+	store 2,0x8907
+set_lemode_1m:
+	rtnmark0 mark_ble_lr
+	jam 0x24,0x8930
+	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 0xfe,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
+	rshift8 pdata,queue
+	storer queue, 1,0x890a
+	store 1,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 0xf6,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
+	jam 0x1f,0x8a63 
+	rtn
+	
+
+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
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	
+	jam 0xcd,0x8a13
+	jam 0x10,0x8a06
+	jam 0x4a,0x8a84
+	jam 0x40,0x8a85
+	jam 0xfe,0x8a16
+//	call set_otp_config
+	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
+	bpatchx patch3e_3,mem_patch3e
+	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
+	call set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	call sadc_calibration
+	call dpll_ring_ibias_calc
+	branch set_bistfix_save_patchram
+
+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
+
+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
+	
+
+rfpll_aac_ghpc:
+	bpatch patch03_3,mem_patch03
+	rtn wake
+	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 0xd8,0x8a00
+	nop 60
+	jam 0xa0,0x8a01
+	jam 0xdf,0x8a00
+	jam 0xfa,0x8a01
+	nop 20
+	jam 0x9f,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
+	rtn	
+/*	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
+	until null,lpo_edge
+	fetch 1,core_lpm_isogate
+	set0 gpio_latch,pdata			// enable gpio normal function after load gpio configuration
+	store 1,core_lpm_isogate		
+	until null,lpo_edge
+	nbranch boot_load,wake		// wakeup from hibernate
+	call set_bistfix_wake
+	storer alarm,4,mem_saved_gpio_in
+	jam OTP_KEY_LOCK,core_misc_ctrl	// disable further read/write of key
+	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
+
+
+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
+	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
+	copy temp,regb
+	branch lpm_write_gpio_wakeup
+	
+lpm_write_gpio_wakeup:
+	arg 12,loopcnt
+	arg mem_gpio_wakeup_cfg,rega
+	arg core_gpio_wakeup_cfg,regc
+	until null,lpo_edge
+lpm_write_gpio_loop:
+	ifetch 1,rega
+	ifetcht 1,regc
+	isub temp,null
+	branch lpm_write_gpio_loop_next,zero
+	istore 1,regc
+	until null,lpo_edge
+lpm_write_gpio_loop_next:	
+	increase 1,rega
+	increase 1,regc
+	loop lpm_write_gpio_loop
+	copy regb,temp
+	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
+	call set_bistfix_save_xram
+	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
+	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
+	copy rega,temp
+	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: GK308_keyboard_only_24g/program/debug.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/debug.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/program/g24_protocol_stack/24g.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g.prog	(working copy)
@@ -0,0 +1,567 @@
+
+
+g24_dispatch:
+	bpatchx patch33_0,mem_patch33
+	bmark1 mark_24g_rxmode,g24_receive_dispatch
+	rtnmark0 mark_24g
+	branch g24_transmit_dispatch
+
+
+/****************************g24 base transceiver start********************************/
+
+g24_prep:
+	bpatchx patch33_1,mem_patch33
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	branch le_prep_next
+
+g24_receive_packet:
+	bpatchx patch33_2,mem_patch33
+	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 patch33_3,mem_patch33
+	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 patch33_4,mem_patch33
+	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 patch33_5,mem_patch33
+	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 patch33_6,mem_patch33
+	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 patch33_7,mem_patch33
+	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 patch34_0,mem_patch34
+	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 patch34_1,mem_patch34
+//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 patch34_2,mem_patch34
+//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 patch34_3,mem_patch34
+	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 patch34_4,mem_patch34
+	call g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	rtn
+	
+g24_ch_calc:
+	bpatchx patch34_5,mem_patch34
+	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 patch34_6,mem_patch34
+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 patch34_7,mem_patch34
+	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 patch35_0,mem_patch35
+	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 patch35_1,mem_patch35
+	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 patch35_2,mem_patch35
+	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: GK308_keyboard_only_24g/program/g24_protocol_stack/24g_pair.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_pair.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_pair.prog	(working copy)
@@ -0,0 +1,418 @@
+
+
+g24_pair_param_init:
+	bpatchx patch35_3,mem_patch35
+	jam 0x4e,mem_24g_pair_ch
+	setarg 0x101520
+	store 3,mem_24g_pair_addr
+	setarg 0x05
+	branch  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 patch35_4,mem_patch35
+	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 patch35_5,mem_patch35
+	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 0x08,mem_24g_datalen
+	arg mem_24g_bind_payload,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy8
+
+
+g24_bind_data_process:
+	bpatchx patch35_6,mem_patch35
+	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 patch35_7,mem_patch35
+	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_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: GK308_keyboard_only_24g/program/g24_protocol_stack/24g_receiver.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_receiver.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_receiver.prog	(working copy)
@@ -0,0 +1,568 @@
+
+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 patch36_0,mem_patch36
+	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 patch36_1,mem_patch36
+	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 patch36_2,mem_patch36
+	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_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 patch36_3,mem_patch36
+	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 patch36_4,mem_patch36
+	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 patch36_5,mem_patch36
+	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 patch36_6,mem_patch36
+	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 patch36_7,mem_patch36
+	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 patch37_0,mem_patch37
+	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 patch37_1,mem_patch37
+	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 patch37_2,mem_patch37
+	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 patch37_3,mem_patch37
+	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: GK308_keyboard_only_24g/program/g24_protocol_stack/24g_reconn.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_reconn.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_reconn.prog	(working copy)
@@ -0,0 +1,179 @@
+
+/****************************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 patch37_4,mem_patch37
+	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 patch37_5,mem_patch37
+	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 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_g24_reconn_dispatch_set
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch g24_pair_start,zero
+g24_reconn_dispatch_success:
+	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 patch37_6,mem_patch37
+	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 patch37_7,mem_patch37
+	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: GK308_keyboard_only_24g/program/g24_protocol_stack/24g_rssi.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_rssi.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_rssi.prog	(working copy)
@@ -0,0 +1,112 @@
+
+/****************************g24 rssi general start********************************/
+
+rssi_store:
+	bpatchx patch38_0,mem_patch38
+	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 patch38_1,mem_patch38
+	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: GK308_keyboard_only_24g/program/g24_protocol_stack/24g_transmitter.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_transmitter.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_transmitter.prog	(working copy)
@@ -0,0 +1,407 @@
+
+
+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:
+	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 patch38_2,mem_patch38
+	call g24_txdata_prep
+	nbranch g24_nodata_transmit,user
+g24_transmit_start:
+	bpatchx patch38_3,mem_patch38
+	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 patch38_4,mem_patch38
+	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 patch38_5,mem_patch38
+	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:
+	bpatchx patch38_6,mem_patch38
+	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 patch38_7,mem_patch38
+	setarg 0
+	store 1,mem_24g_ensure
+	store 2,mem_24g_txfail_cnt
+	rtn
+
+g24_transmit_receive_ack:
+	bpatchx patch39_0,mem_patch39
+	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 patch39_1,mem_patch39
+	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 patch39_2,mem_patch39
+	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 patch39_3,mem_patch39
+	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 patch39_4,mem_patch39
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_g24_transmit_hop_process
+g24_transmit_hop_process_next:
+	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:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch g24_ch,zero		//fast conn->power no chage
+	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:
+	bpatchx patch39_5,mem_patch39
+	jam 1,mem_24g_abort_pac
+	jam TYPE_MS,mem_24g_data_type
+	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 patch39_6,mem_patch39
+	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: GK308_keyboard_only_24g/program/g24_protocol_stack/24g_txpower_ctrl.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_txpower_ctrl.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/g24_protocol_stack/24g_txpower_ctrl.prog	(working copy)
@@ -0,0 +1,104 @@
+
+/****************************g24 transmitter tx power start********************************/
+
+power_ctrl_start:
+	bpatchx patch39_7,mem_patch39
+	fetch 1,mem_power_ctrl_disable
+	nrtn blank
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	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 2,power_ctrl_decrs_level2	//3db     //3-->0-->-5
+	beq 1,power_ctrl_decrs_level1	//0db
+	branch power_ctrl_decrs_level0 //-5dBm
+
+power_ctrl_txpower_incrs_force:	//0-->3-->5
+	jam 0,mem_power_ctrl_pac_succ_cnt
+power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 3,power_ctrl_incrs_level3
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1	//0db
+	beq 2,power_ctrl_incrs_level2	//3db
+power_ctrl_incrs_level3:	//5dBm
+	jam TX_POWER_5DB,mem_tx_power
+	rtn
+
+power_ctrl_decrs_level2:	
+power_ctrl_incrs_level2:	//+3dBm
+	jam TX_POWER_3DB,mem_tx_power
+	rtn
+
+power_ctrl_decrs_level1:
+power_ctrl_incrs_level1:	//0dBm
+	jam TX_POWER_0DB,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: GK308_keyboard_only_24g/program/hci_main.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/hci_main.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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 patch1a_2,mem_patch1a
+	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: GK308_keyboard_only_24g/program/hid.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/hid.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/hid.prog	(working copy)
@@ -0,0 +1,395 @@
+
+
+/////////////////////////////////////////////mouse & keyboard  public functions/////////////////////////
+hid_device_load_flash_info_check:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_information_flash_parameters
+	call spid_read_flash
+	branch mouse_spid_flash_powerdown
+
+hid_device_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
+	branch mouse_spid_flash_powerdown	
+
+hid_device_before_store_reconn_info:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,hid_device_store_le_device
+	rtn
+
+hid_device_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	fetch 6,mem_le_lap
+	istore 6,contw
+	rtn
+
+
+hid_device_load_device_info:
+	bpatch patch1a_3,mem_patch1a
+	call hid_device_select_reconn_device
+	fetch 4,mem_device_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+hid_device_select_reconn_device:
+	bpatch patch1a_4,mem_patch1a
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	rtnne REC_4_MODE
+hid_device_load_le_device:
+	ifetch 6,contr
+	store 6,mem_hci_plap
+	ifetch 6,contr
+	store 6,mem_le_lap
+	rtn
+
+hid_device_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	rtnne REC_4_MODE
+hid_device_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+hid_device_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
+hid_device_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch hid_device_clean_addr,zero
+	increase 7,contr
+	loop hid_device_check_device_addr_end
+	rtn
+
+hid_device_clean_addr:
+	increase -6,contr
+	copy contr,contw
+	fetcht 6,mem_device_addr_temp+1
+	increase 3,temp
+	istoret 6,contw
+	rtn	
+
+hid_device_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
+	
+hid_device_default_parm_init:
+	jam 0xff,mem_ui_button_gpio
+	jam 0,mem_ui_led_struct_num
+	
+	fetch 2,mem_device_24g_pair_timeout_init
+	store 2,mem_24g_pair_timeout_init
+
+	fetch 1,mem_device_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_device_24g_pair_tx_power
+	store 1,mem_24g_pair_tx_power
+
+	fetch 1,mem_24g_ch_map_update
+	ncall g24_chamap_param_update,blank
+	rtn
+
+hid_device_param_common_init:
+	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
+
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_temp
+	fetch 3,mem_le_lap+3
+	store 3,mem_device_le_lap_temp
+
+	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 device_store_normal_tx_power
+
+hid_device_compare_addr_store:	
+	storet 3,mem_device_compare_addr
+	storet 3,mem_device_compare_addr+3
+	rtn
+
+hid_device_enable_lpm:
+	jam 1,mem_lpm_mode
+	rtn
+
+hid_device_disable_lpm:
+	jam 0,mem_lpm_mode
+	rtn
+
+/**************************************HID LE Package*****************************************/
+hid_device_le_send_empty_packet:
+	jam 0,mem_customer_data_trigger
+hid_device_le_send_package_data:
+	bpatch patch1a_5,mem_patch1a
+	fetch 1,mem_customer_data_trigger
+	call hid_device_clear_key_data,blank
+hid_device_le_fill_package_data:
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_KEY_STANDARD,hid_device_le_fill_standard_key_data
+	beq HID_REPORTID_BIT_CONSUMER_KEY,hid_device_le_fill_bit_consumer_key_data
+	beq HID_REPORTID_CONSUMER_KEY,hid_device_le_fill_multimedia_key_data
+	beq HID_REPORTID_SYSTEM_CTRL,hid_device_le_fill_systemctrl_key_data
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_le_fill_n_key_rollover_key_data	//only keyboard
+hid_device_le_fill_standard_key_data:
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_le_fill_standard_key_data	
+mouse_le_fill_standard_key_data:
+	jam 8,mem_le_data_len
+keyoard_le_fill_standard_key_data_send:	
+	fetcht 2,mem_le_keyboard_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_bit_consumer_key_data:
+	jam 4,mem_le_data_len
+	fetcht 2,mem_le_multimedia_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_multimedia_key_data:
+	jam 3,mem_le_data_len
+	fetcht 2,mem_le_multimedia_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_systemctrl_key_data:
+	jam 2,mem_le_data_len
+	fetcht 2,mem_le_systemctrl_handle
+	branch hid_device_le_fill_data
+
+hid_device_send_package_data_check:	
+	fetch 1,mem_customer_key
+	beq 1,hid_device_le_send_package_data	
+hid_device_le_send_mouse_data:
+	jam 7,mem_le_data_len
+	fetch 7,mem_mouse_key
+	store 7,mem_customer_key_press+1
+	fetcht 2,mem_le_notify_handle
+	branch hid_device_le_fill_data
+
+hid_device_le_fill_data:
+	bpatch patch1a_6,mem_patch1a
+	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_customer_key_press+1,contr
+	branch memcpy
+		
+hid_device_clear_key_data:
+	arg 9,loopcnt
+	arg mem_customer_key_press+1,contw
+	branch clear_mem	
+
+hid_device_copy_key_data:
+	arg 10,loopcnt
+	arg mem_customer_key_press_init,contr
+	arg mem_customer_key_press,contw
+	branch memcpy	
+
+hid_device_24g_keyboard_package_data_set:
+	fetch 1,mem_customer_data_trigger
+	call hid_device_clear_key_data,blank
+	arg mem_customer_key_press,regb
+	rtn
+
+
+/**************************************HID USB Package*****************************************/
+
+hid_device_push_mouse_data_to_usb:
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	branch dongle_usb_tx_ms_data
+
+hid_device_push_keyboard_data_to_usb:
+	fetch 1,mem_customer_data_trigger
+	call hid_device_clear_key_data,blank
+hid_device_push_keyboard_package_data_to_usb:
+	bpatch patch0d_3,mem_patch0d
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_KEY_STANDARD,hid_device_push_standard_keyboard_data_to_usb
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,hid_device_push_systemctrl_key_data_to_usb
+	beq KB_MULTIKEY_REPORT_ID,hid_device_push_multimedia_key_data_to_usb
+	beq HID_REPORTID_BIT_CONSUMER_KEY,hid_device_push_bit_consumer_key_data_to_usb
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_push_n_key_rollover_key_data_to_usb
+hid_device_push_standard_keyboard_data_to_usb:
+	call dongle_usb_tx_kb_data
+	arg mem_customer_key_press+1,contr
+	arg mem_usb_kb_data,contw
+	arg 9,loopcnt
+	branch memcpy
+
+hid_device_push_systemctrl_key_data_to_usb:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	setarg KB_SYSTEM_CONCTRL_REPORT_ID
+	store 1,mem_usb_kb_system
+	fetch 1,mem_customer_key_press+1
+	istore 1,contw
+	branch dongle_usb_tx_enable_ep2
+
+hid_device_push_multimedia_key_data_to_usb:
+	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
+	setarg KB_MULTIKEY_REPORT_ID
+	store 1,mem_usb_kb_multikey
+	fetch 3,mem_customer_key_press+1
+	istore 3,contw
+	branch dongle_usb_tx_enable_ep2
+
+hid_device_push_bit_consumer_key_data_to_usb:
+	jam USB_EP2_BIT_CONSUMER,mem_usb_ep2_data
+	setarg KB_BIT_CONSUMER_REPORT_ID
+	branch hid_device_push_multimedia_key_data_to_usb+2
+
+/**************************************HID LE Service*****************************************/
+
+hid_device_le_parse_att_write_request:	
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,le_send_att_write_response_check_auth	
+	fetch 1,mem_device_fast_conn_flag
+	branch le_send_att_write_response_check_auth,blank
+	fetch 1,mem_le_connect_status_flag
+	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
+	setarg 0x001a		
+	fetcht 2,mem_le_att_handle
+	isub temp,null
+	nbranch le_send_att_write_response_check_auth,zero
+	branch le_send_att_read_response_error_insufficient_auth
+
+	
+/**************************************g24 search receiver*****************************************/
+hid_device_24g_search_dongle_init:
+	setarg 0
+	store 3,mem_device_search_dongle_action
+	rtn
+
+mouse_24g_search_dongle:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+hid_device_24g_search_dongle:	
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_device_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_device_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_device_search_dongle_ch
+hid_device_24g_search_dongle_loop:
+	bpatch patch1a_7,mem_patch1a
+	fetch 1,mem_device_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_device_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch hid_device_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch hid_device_24g_search_dongle_loop_retry,sync
+	nbranch hid_device_24g_search_dongle_loop_retry,user3
+	call hid_device_g24_ackpayload_parse
+	call hid_device_24g_search_dongle_success
+hid_device_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_device_search_dongle_count
+	increase 1,pdata
+	store 1,mem_device_search_dongle_count
+	beq G24_CH_POLL_COUNT,hid_device_24g_search_dongle_check
+	rtn
+
+hid_device_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch hid_device_24g_search_dongle_loop
+
+hid_device_24g_search_dongle_check:
+	bpatch patch1b_0,mem_patch1b
+	jam 0,mem_device_search_dongle_count
+	fetch 1,mem_device_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_device_search_dongle_action
+	fetch 2,mem_device_24g_search_dongle_time_init		//3min
+	store 2,mem_device_no_data_timer
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_sensor_powerdown
+	rtn 
+	
+hid_device_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch hid_device_24g_search_dongle_init,blank
+	jam 0,mem_device_search_dongle_count
+	fetch 1,mem_device_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_device_search_dongle_action
+	call mouse_no_data_timer_init
+	fetch 1,mem_device_option
+	beq DVC_OP_MOUSE,mouse_init_sensor_wakeup
+	rtn
+
+hid_device_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
+	store 1,mem_keyboard_led_status
+	rtn
+
+hid_device_before_lpm_set:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	fetch 1,mem_24g_disable_fec1
+	rtn blank
+hid_device_peripheral_clock_off:
+	jam 2,core_clksel			//use rc clock
+	jam 0xf8,core_lpm_ctrl
+	rtn
+
+hid_device_cb_fuction:
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+/**************************************g24 search receiver*****************************************/
Index: GK308_keyboard_only_24g/program/l2cap.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/l2cap.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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 patch1b_1,mem_patch1b
+	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 patch1b_2,mem_patch1b
+	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 patch1b_3,mem_patch1b
+	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 patch1b_4,mem_patch1b
+	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 patch1b_5,mem_patch1b
+	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 patch1b_6,mem_patch1b
+	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 patch1b_7,mem_patch1b
+	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 patch1c_0,mem_patch1c
+	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 patch1c_1,mem_patch1c
+	fetch 3,mem_tx_fifo1
+	rtn
+
+
+/*********************************************************/
+//bool fifo_is_empty(void)
+//blank == 1: empty
+//blank == 0: not empty
+/*********************************************************/
+l2cap_malloc_is_fifo_empty:
+	bpatch patch1c_2,mem_patch1c
+	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 patch1c_3,mem_patch1c
+	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 patch1c_4,mem_patch1c
+	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: GK308_keyboard_only_24g/program/patch.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/patch.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/patch.prog	(working copy)
@@ -0,0 +1,1022 @@
+
+
+	bbit1 8,pf_patch_ext
+	// beq patch00_0,p_soft_reset	
+	beq patch03_2,p_initialize_radio_cont
+	beq patch05_0,p_lpm_dispatch
+	beq patch07_6,p_keyboard_setting_config_next
+	beq patch08_0,p_keyboard_store_device_info
+	beq patch08_3,p_keyboard_bb_event_timer
+	beq patch08_4,p_keyboard_adc_vol_init
+	beq patch09_1,p_keyboard_idle
+	beq patch09_4,p_kscan_dispatch
+	beq patch0a_4,p_keyboard_commbination_key_press_check
+	beq patch0a_6,p_keyboard_long_button_bt_discovery
+	beq patch0b_1,p_keyboard_motion_data_check
+	beq patch0b_4,p_keyboard_value_tpye_consumer_set
+	beq patch0d_2,p_keyboard_le_parse_att
+	beq patch0f_4,p_keyboard_app_enter_hibernate
+	beq patch10_2,p_mouse_adc_bat_percent_lowpower_out
+	beq patch14_3,keyboard_24g_hibernate_set
+	beq patch1d_1,p_otp_write
+	beq patch1d_2,p_otp_read_data
+	beq patch19_7,p_keyboard_init
+	beq patch1f_2,p_gpio_set_wake_by_current_state
+	branch assert
+pf_patch_ext:
+	beq patch35_5,p_g24_pair_sm_common
+	beq patch37_5,p_g24_reconn_dispatch_next
+	beq patch38_2,p_g24_transmit_no_interrupt
+	beq patch3e_3,p_initialize_radio2
+	rtneq patch3f_7
+	branch assert
+
+p_initialize_radio2:
+//	bpatchx patch3e_3,mem_patch3e
+	until null,lpo_edge
+	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
+	call set_xtal_cap
+	jam SYSTEM_CLK_12M,mem_system_clk
+	jam 0x06,0x8a30
+	jam 0xdd,0x8a32
+	jam 0xe0,0x8a88
+	jam 0x2d,0x8a8c
+	jam 0x78,0x8a31
+	call sadc_calibration
+	call dpll_ring_ibias_calc
+	branch set_bistfix_save_patchram
+
+p_soft_reset:
+	nbranch p_soft_reset_next,wake
+	until null,lpo_edge
+	until null,lpo_edge
+p_soft_reset_next:	
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_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+1
+/////////////////////////////
+p_g24_pair_sm_common:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch g24_pair_sm_common+12
+	
+p_g24_reconn_dispatch_next:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch p_keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+
+p_keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call p_keyboard_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+p_keyboard_g24_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
+	store 1,mem_keyboard_led_status
+	rtn
+
+p_initialize_radio_cont:
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+//	jam 0x10,0x8a06
+	fetch 1,0x8a06
+	and pdata,0xfc,pdata
+	store 1,0x8a06
+	branch initialize_radio_cont+6
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data1
+	branch otp_disable_chgpump
+
+/* regb = otp address, rega pointers data, loopcnt is count */
+p_otp_write:
+	//bpatch patch1d_1,mem_patch1d
+	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_gpio_set_wake_by_current_state:
+	set1 gpio_active_bit,temp
+	call gpio_get_bit
+	nsetflag true,gpio_active_bit,temp
+	branch gpio_set_wake
+
+//**************************APP INIT*******************************//
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_device_direct_timer
+	nrtn blank
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+p_keyboard_init:
+	//jam 0x0a,mem_lpm_overhead
+	//jam 0x3e,0x80db
+	//jam 0x3e,0x807c
+	call app_param_init
+	call enable_authrom
+	call p_keyboard_setting_config
+	call p_keyboard_led_reuse_judge
+	branch keyboard_init+2
+
+p_keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call p_keyboard_param_init
+	jam 0x0a,mem_lpm_overhead
+	branch keyboard_setting_config+4
+
+p_keyboard_param_init:
+	call keyboard_compare_addr_init
+	call p_keyboard_param_common_init
+	branch	keyboard_param_init+2
+
+p_keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg mem_keyboard_le_table
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+p_keyboard_led_reuse_judge:
+	fetch 1,mem_keyboard_low_voltage_alarm_gpio
+	fetcht 1,mem_keyboard_caps_led_gpio
+	isub temp,null
+	call p_keyboard_caps_led_reuse,zero
+	fetch 1,mem_keyboard_low_voltage_alarm_gpio
+	fetcht 1,mem_keyboard_num_led_gpio
+	isub temp,null
+	call p_keyboard_num_led_reuse,zero
+	fetch 1,mem_keyboard_low_voltage_alarm_gpio
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	isub temp,null
+	branch p_keyboard_scroll_led_reuse,zero
+	rtn
+
+p_keyboard_caps_led_reuse:
+	fetch 1,mem_keyboard_reuse_led_bit
+	set1 KB_PC_KEYSEL_CAPSLOCK,pdata
+	store 1,mem_keyboard_reuse_led_bit
+	rtn
+p_keyboard_num_led_reuse:
+	fetch 1,mem_keyboard_reuse_led_bit
+	set1 KB_PC_KEYSEL_NUMLOCK,pdata
+	store 1,mem_keyboard_reuse_led_bit
+	rtn
+p_keyboard_scroll_led_reuse:
+	fetch 1,mem_keyboard_reuse_led_bit
+	set1 KB_PC_KEYSEL_SCROLLLOCK,pdata
+	store 1,mem_keyboard_reuse_led_bit
+	rtn
+p_keyboard_store_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_store_otp_device_info
+	branch keyboard_store_device_info+1
+
+p_keyboard_store_otp_device_info:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	rtn positive
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+	
+p_keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fb0
+	// fetch 2,mem_keyboard_otp_storage_start_address
+	// branch keyboard_store_otp_device_info_g24+2
+	isub temp,regb
+	arg mem_device_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
+
+p_keyboard_device_led_all_off:
+	call keyboard_power_led_off
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	call keyboard_capslock_led_off
+	branch keyboard_scrolllock_led_off
+
+p_kscan_dispatch:
+	call p_keyboard_keyscan
+	call p_keyboard_key_process
+	branch kscan_dispatch+3
+
+p_keyboard_keyscan:
+	call keyboard_gpio_init
+	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
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+	branch keyboard_keyscan_wait_wake_next
+
+p_keyboard_bb_event_timer:
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	
+	//key
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	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
+
+	//le
+	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 keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+
+	
+	//led
+	call p_keyboard_led_dispatch_timer
+
+	branch keyboard_check_no_data_timeout_timer
+
+p_keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,p_keyboard_device_select_g24_press_timer
+	call p_keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+
+p_keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+p_keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+
+p_keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call p_keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_store_device_number:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,mouse_write_otp_device_flag
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_device_number
+	rtn
+
+p_keyboard_long_button_bt_discovery:
+	branch keyboard_long_button_bt_discovery+2
+
+/////////////////////////////////////store otp///////////////////////////////////////
+p_keyboard_setting_config_next:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	//bbit1 KEYBOARD_ENABLE_2K_EEPROM,p_keyboard_load_2k_eeprom_info
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_load_otp_info
+	branch keyboard_setting_config+11
+
+p_keyboard_load_2k_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,p_keyboard_load_2k_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch p_keyboard_load_2k_eeprom_info,true
+p_keyboard_load_2k_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+	branch keyboard_load_info_check
+p_keyboard_load_otp_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_load_otp_device_info_g24_init
+	branch keyboard_load_otp_info+2
+
+p_keyboard_load_otp_device_info_g24_init:
+	arg 8,regd
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fac,pdata
+	// fetch 2,mem_keyboard_otp_storage_start_address
+	arg 4,temp
+	arg 4,rege
+	branch p_keyboard_load_otp_device_info
+
+p_keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp	//4
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+p_keyboard_load_otp_info_check_page_loop:
+
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp //4
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+
+	branch p_keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_page_loop
+
+p_keyboard_load_otp_info_check_first_time:
+	sub regc,0,null
+	branch p_keyboard_load_otp_info_check_first_time_process,zero
+p_keyboard_load_otp_info_check_first_time_loop_init:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+p_keyboard_load_otp_info_check_first_time_loop:
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata
+	branch p_keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	branch p_keyboard_load_otp_info_check_first_time_loop
+
+p_keyboard_load_otp_info_check_first_time_process:
+	storer rege,1,mem_otp_read_retention_offset
+	rtn
+p_keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fb0
+	// fetch 2,mem_keyboard_otp_storage_start_address
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,keyboard_load_otp_info_check_offset_process_ble
+	rtn
+///////////////////////////ATT fix//////////////////////
+p_keyboard_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,p_keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2	
+
+p_keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	// fetch 2,mem_le_att_offset
+	// sub pdata,66,null
+	//nbranch keyboard_le_send_att_read_blob_response,zero
+	branch keyboard_le_send_att_read_blob_response
+//////////////////////////////////////motion/////////////////////////////////////
+p_keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,p_keyboard_value_consumer_release
+	branch keyboard_motion_data_check+3
+
+//////////////////////////////////////media/////////////////////////////////////
+p_keyboard_value_tpye_consumer_set:
+	copy temp,pdata
+	jam HID_REPORTID_BIT_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,p_keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,p_keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,p_keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,p_keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,p_keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,p_keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,p_keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,p_keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,p_keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,p_keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,p_keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,p_keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,p_keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,p_keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,p_keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,p_keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,p_keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,p_keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,p_keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,p_keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,p_keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,p_keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,p_keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,p_keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+	
+p_keyboard_value_consumer_all_key_release:
+p_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
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_24g_consumer_release
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_24g_consumer_release:
+	setarg HID_REPORTID_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_media:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_media
+	setarg 0x0183
+
+p_keyboard_24g_standard_data_send:
+	store 2,mem_keyboard_tx_data+1
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_vol_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_down
+	setarg 0x00ea
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_vol_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_up
+	setarg 0x00e9
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mute:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mute
+	setarg 0x00e2
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_pre_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_pre_track
+	setarg 0x00b6
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_next_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_next_track
+	setarg 0x00b5
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_play:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_play
+	setarg 0x00cd
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_stop
+	setarg 0x00b7
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_home:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_home
+	setarg 0x0223
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mail:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mail
+	setarg 0x018a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_my_computer:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_my_computer
+	setarg 0x0194
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_favorites:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_favorites
+	setarg 0x022a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_calculator:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_calculator
+	setarg 0x0192
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_search:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_search
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,p_keyboard_value_ac_home
+	setarg 0x0221
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_back:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_back
+	setarg 0x0224
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_soft_kb
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,p_keyboard_value_os_soft_kb_android
+	setarg 0x01ae
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb_android:
+	setarg 0x0307
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_down
+	setarg 0x0070
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_up
+	setarg 0x006f
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_lock:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_lock
+	setarg 0x0030
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mac_eject:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mac_eject
+	setarg 0x00b8
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_forward:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_forward
+	setarg 0x0225
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_stop
+	setarg 0x0226
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_refresh:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_refresh
+	setarg 0x0227
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_system_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,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
+	beq HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+	
+/////////////////////////////////////////////////////////////////////////
+p_keyboard_app_enter_hibernate:
+	branch app_enter_hibernate
+
+//***************************adc***********************//
+p_mouse_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp	
+p_mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call p_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 p_adc_set_low_power_flag,positive
+	branch mouse_adc_bat_level_set
+
+p_adc_clear_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 0,temp
+	branch adc_set_power_flag
+
+p_adc_set_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 0,temp
+	branch adc_set_power_flag
+
+p_keyboard_adc_vol_init:
+	fetch 2,mem_keyboard_vdd_full_vol
+	store 2,mem_device_vdd_full_vol
+	fetch 2,mem_keyboard_vdd_empty_vol
+	store 2,mem_device_vdd_empty_vol
+	fetch 2,mem_keyboard_vdd_low_vol
+	store 2,mem_device_vdd_low_vol
+	rtn //#rtn to keyboard_param_init
+
+///*****only fix romcode for keyboard_adc_vol_init
+p_keyboard_adc_vol_4v2_init:
+	setarg 0x2c1270		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014001
+	istore 3,contw
+	rtn
+
+/////////////////////////////scan///////////////////////////
+p_keyboard_key_process:
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch p_keyboard_press_change_or_no_key,zero
+	branch keyboard_key_process+5
+
+p_keyboard_idle:
+	call p_keyboard_evt_ui_timer_check
+	branch keyboard_idle+1
+
+p_keyboard_evt_ui_timer_check:
+	arg 0,rega
+	fetcht 4,mem_keyboard_evt_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+p_keyboard_evt_ui_timer_check_loop:
+	copy regb,pdata
+	increase 40,temp    //40clk = 12.5ms
+	isub temp,null
+	nbranch p_keyboard_evt_ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch p_keyboard_evt_ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call p_keyboard_evt_ui_timer_check_send_evt
+p_keyboard_evt_ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_keyboard_evt_btclk
+	rtn
+
+
+p_keyboard_evt_ui_timer_check_end:
+	copy rega,pdata
+	rtn blank
+	increase -40,temp    //160btclk = 50ms
+	set0 28,temp
+	storet 4,mem_keyboard_evt_btclk
+p_keyboard_evt_ui_timer_check_send_evt:
+	store 1,mem_keyboard_evt_timer_count
+p_keyboard_evt_50ms_loop:
+	fetch 1,mem_keyboard_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_evt_timer_count
+	call p_keyboard_delay_lpm_timer
+	branch p_keyboard_evt_50ms_loop
+
+p_keyboard_delay_lpm_timer:
+	fetch 1,mem_keyboard_delay_lpm_flag
+	rtn blank
+	jam 1,mem_lpm_mode
+	jam 0,mem_keyboard_delay_lpm_flag
+	rtn
+	
+p_keyboard_press_change_or_no_key:
+	jam 0,mem_lpm_mode
+	jam 1,mem_keyboard_delay_lpm_flag
+	branch keyboard_press_change_or_no_key
+
+
+p_keyboard_led_dispatch_timer:
+    call keyboard_rgb_on_timer
+	call p_keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call p_keyboard_check_system_is_mac_timer
+
+	call keyboard_num_capslock_led_on_timer
+	call p_keyboard_device_pair_led_timer
+
+	call p_keyboard_low_voltage_led_timer
+	
+    rtn
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,p_keyboard_device_poweron_030_led
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+p_keyboard_device_poweron_030_led:
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_power_led_off,blank
+	branch keyboard_power_led_on
+
+p_keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	//# pair sucessed 锛岋紙BT_EVT_ATTEMP_SUCESSS , 浼氬皢timeout 缃0锛
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag //64 bit flag ,and byte 0 bit2 holds low power
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	rtnbit0 KEYBOARD_ENABLE_LOW_LED
+	rtnbit0 KEYBOARD_LOW_VOLTAGE_FLAG
+	bbit1 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,keyboard_low_voltage_led_blink_new_data
+	bpatch patch08_5,mem_patch08
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+
+    //600ms period 闂儊
+	sub pdata,6,null                                              //# null = imm -pdata
+	ncall keyboard_adc_low_volatage_led_timer_count_clean,positive //# pdata > imm ---> pdata = 0
+	sub pdata,3,null
+	ncall keyboard_low_voltage_led_off,positive 
+	call keyboard_low_voltage_led_on
+	// call ice_break #wip2/6 : ft low voltage led blink pass.
+	rtn
+
+p_keyboard_device_pair_led_timer:
+	//conn = 4 => START Reconn ; 
+
+    fetch 1,mem_24g_conn_sm
+	rtneq 4
+	fetch 1,mem_device_flag
+	
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_pair_led
+	branch keyboard_device_pair_led_timer+2
+
+p_keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	branch p_keyboard_pair_success_led_remove,blank
+	branch keyboard_device_pair_led
+
+p_keyboard_pair_success_led_remove:
+	fetch 1,mem_adc_power_flag
+	bbit1 0,p_keyboard_pair_sucess_led_move_next
+	fetch 1,mem_keyboard_led_status
+	bbit1 KB_PC_KEYSEL_NUMLOCK,p_keyboard_pair_sucess_led_move_next
+	fetch 2,mem_24g_reconn_timeout
+	nbranch keyboard_device_24g_pair_led,blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	branch keyboard_device_24g_led_off
+p_keyboard_pair_sucess_led_move_next:
+	rtn
+p_keyboard_check_system_is_mac_timer:
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+	fetch 1,mem_keyboard_led_status
+	rtnbit1 7
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	rtn
+
+
+p_g24_transmit_no_interrupt:
+	branch keyboard_g24_transmit_no_interrupt
+
+p_keyboard_commbination_key_press_check:
+	jam 0,mem_keyboard_commbination_press_type
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_commbination_key_press_check_bt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch p_keyboard_commbination_key_down_24g,zero
+	byteswap temp,temp
+	isub temp,null
+	branch p_keyboard_commbination_key_down_24g,zero
+	branch mouse_commbination_key_up
+p_keyboard_commbination_key_down_24g:
+	branch keyboard_24g_start_pair_mode
Index: GK308_keyboard_only_24g/program/peripherals.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/peripherals.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/peripherals.prog	(working copy)
@@ -0,0 +1,3250 @@
+
+
+
+/* ===================== two wire SPI gpio ======================= */
+
+//pdata:gpio number
+twspi_reset:
+	bpatch patch1c_5,mem_patch1c
+	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
+	branch lpm_write_io_vsel
+
+
+load_otp_set_init:
+	bpatch patch1c_6,mem_patch1c
+	nrtn wake
+	fetch 2,mem_otp_charge_pump_x
+	rtn blank
+	store 2,mem_otp_charge_pump
+	branch set_otp_config2
+
+set_otp_config:
+	call load_otp_hv_vsel
+	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	
+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	
+	
+
+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
+	fetchr rege,6,mem_bistfix_val
+	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
+	storer rege,6,mem_bistfix_val
+	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 set_otp_config	
+	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	
+	fetch 1,mem_ucode_flag
+	bbit1 OTP_UFLAG_SKIP_EEP,loadcode_spi
+	call iicd_load_gpio_init
+	call clear_eeprom_size_2k
+	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 8,mem_eeprom_scl_gpio  
+	jam 7,mem_eeprom_sda_gpio 
+	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_wake:
+	call set_bistfix
+	call set_bistfix_wake_xram
+
+set_bistfix_wake_patchram:
+	fetch 1,core_bist_ctrl
+	rtnbit0 BIST_CTRL_FIX_PATCH_RAM
+//	jam 0x80, core_ucode_ctrl
+	call set_bistfix_set_patchram_addr
+	arg 4,loopcnt
+	arg mem_bistfix_val_patchram,contr
+	branch load_ucode_loop
+
+
+set_bistfix_wake_xram:
+	fetch 1,core_bist_ctrl
+	rtnbit0 BIST_CTRL_FIX_XRAM
+	fetcht 2,mem_bistfix_addr_x
+	rshift3 temp,temp
+	arg 0x4000,pdata //add offset
+	iadd temp,contw
+	fetch 1,mem_bistfix_val_xram	
+	branch istore_1_contw_rtn
+
+
+set_bistfix_save_xram:
+	bpatchx patch3e_2,mem_patch3e
+	fetch 1,core_bist_ctrl
+	rtnbit0 BIST_CTRL_FIX_XRAM
+	fetchr rega, 2,mem_bistfix_addr_x
+	rshift3 rega,rega
+	arg 0x4000,pdata //add offset
+	iadd rega,contr
+	ifetch 1,contr
+	store 1,mem_bistfix_val_xram
+	rtn
+	
+set_bistfix_save_patchram:
+	rtn wake
+	fetch 1,core_bist_ctrl
+	rtnbit0  BIST_CTRL_FIX_PATCH_RAM 
+	call set_bistfix_set_patchram_addr
+	nop 10
+	arg 4,loopcnt
+	arg mem_bistfix_val_patchram,contw
+	branch save_ucode_loop
+	
+set_bistfix_set_patchram_addr:
+	jam 0,core_ucode_hi	
+	fetch 2,mem_bistfix_addr_patch
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	rshift4 pdata,temp
+	rshift2 temp,temp
+	set1 7,temp
+	storet 1,core_ucode_ctrl
+	lshift2 pdata,pdata
+	store 1,core_ucode_low
+	rtn
+	
+	
+set_bistfix:
+	fetch 1,mem_ucode_flag
+	and_into 0xe0,pdata
+	rtn blank
+	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 patch1c_7,mem_patch1c
+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 patch1d_0,mem_patch1d
+	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 patch1d_1,mem_patch1d
+	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 patch1d_2,mem_patch1d
+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_KEYBOARD,app_lpm_kb_lock
+	beq DVC_OP_2G4,app_lpm_mpu_lock_ble 
+	beq DVC_OP_BLE,app_lpm_mpu_lock_24g
+	beq DVC_OP_MOUSE_2G4,app_lpm_mouse_lock_24g
+	branch app_lpm_mpu_lock_24g_ble
+
+
+app_lpm_kb_lock:
+	arg module_init,pdata  //module
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	branch app_mpu_s0_lock
+	
+app_lpm_module_lock:
+app_lpm_hciboot_lock:
+	arg car_init,pdata  //module
+	arg keyboard_bt_discovery_button_down_disable,temp //kb
+	call app_mpu_s0_lock
+	branch app_lpm_mpu_lock_24g	
+	
+app_lpm_dongle_lock:
+	arg keyboard_softreset_process,pdata //kb
+	arg shutter_dy_shutter_1s_timer,temp  //shutter dy
+	call app_mpu_s0_lock
+	arg car_init,pdata  //car
+	arg remote_car_wakeup_config_loop,temp //remote car 
+	branch app_mpu_s1_lock
+	
+	
+app_lpm_mouse_lock:
+	arg car_init,pdata //
+	arg module_set_state,temp  //module
+	call app_mpu_s0_lock
+	arg rec_cb_function,pdata  //rec
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	branch app_mpu_s1_lock
+
+app_lpm_mouse_lock_24g:
+	arg car_init,pdata //
+	arg module_set_state,temp  //module
+	call app_mpu_s0_lock
+	branch app_lpm_mpu_lock_ble
+	
+app_lpm_shutter_lock:
+	arg car_init,pdata  //
+	arg rec_enter_queue,temp // rec
+	call app_mpu_s0_lock
+	branch app_lpm_mpu_lock_24g
+	
+app_lpm_car_lock:
+	arg dongle_init,pdata  //dongle
+	arg shutter_dy_shutter_1s_timer,temp //shutter dy
+	branch app_mpu_s0_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_send_adv_ind,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 patch1d_3,mem_patch1d
+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 patch1d_4,mem_patch1d
+	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 patch1d_5,mem_patch1d
+	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 patch1d_6,mem_patch1d
+	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 patch1d_7,mem_patch1d
+	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
+	bpatch patch1e_0,mem_patch1e
+	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 patch1e_1,mem_patch1e
+	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 patch1e_2,mem_patch1e
+	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
+	branch iicd_set_addr
+
+iicd_read_eep_load_code_size_2k:
+	fetch 1,mem_addr_mi
+iicd_set_addr:
+	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 patch1e_3,mem_patch1e
+	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 patch1e_4,mem_patch1e
+	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 patch1e_5,mem_patch1e
+	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 patch1e_6,mem_patch1e
+	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 patch1e_7,mem_patch1e
+	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 patch1f_0,mem_patch1f
+	call disable_user
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	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 patch1f_1,mem_patch1f
+//	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
+	beq DVC_OP_KEYBOARD,keyboard_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 patch1f_2,mem_patch1f
+	sub temp,GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	call gpio_get_bit
+	nbranch gpio_set_qdec_mode,true
+	nsetflag true,GPIO_ACTIVE_BIT,temp
+	
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_wake:
+	bpatch patch1f_3,mem_patch1f
+	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
+
+gpio_set_qdec_mode:
+	jam 1,mem_qdec_set_flag
+	call gpio_set_high_impedance
+	arg 6,debug
+	branch gpio_set_wake_high
+
+//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_low_pullup:
+	bpatch patch1f_4,mem_patch1f
+	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 patch1f_5,mem_patch1f
+	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 patch1f_6,mem_patch1f
+	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:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	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:
+	rtneq GPIO_DISABLE 
+	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
+
+/***********************************qdec**************************************/
+
+lpm_puchk_set_check:
+	fetch 1,mem_qdec_set_flag
+	branch lpm_config_puchk_disable,blank
+	branch lpm_config_puchk_enable
+
+lpm_config_puchk_disable:
+	setarg 0x10			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+lpm_config_puchk_set:
+	store 1,core_puwakeup
+	branch lpm_write_wait
+
+lpm_config_puchk_enable:
+	setarg 0x80			//bit0-1:key_delay	bit2-3:pu_delay		bit4-6:interval	bit7:enable 
+	branch lpm_config_puchk_set
+
+/*************************************ADC*************************************/
+
+sadc_calibration:
+	bpatch patch1f_7,mem_patch1f
+	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
+	jam 0x03,core_sadc_ctrl
+	call sar_adc_read_wait
+	fetcht 2,core_sadc_data
+//	storet 2,mem_adc_current_value
+	jam 0x00,core_sadc_ctrl
+	jam 0xc1,core_gpadc_cfg0	
+sadc_cal_read:
+	arg 8,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 8,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:
+	bpatchx patch20_0,mem_patch20
+	fetch 8,mem_otp_adc
+	rtn 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	
+	rtn
+	
+
+vdd_calculate_by_mode:
+	bpatchx patch20_1,mem_patch20
+	fetch 1,mem_adc_reference_mode
+	beq SADC_REFERENCE_INTER3V,vdd_reference_inter3V_calculate
+	beq SADC_REFERENCE_INTER1P8V_DIV2,vdd_reference_inter1p8V_calculate
+	branch vdd_reference_inter3V_calculate
+
+vdd_reference_inter3V_calculate:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,vdd_reference_inter3V_calculate_by_mode_vdcdc
+	beq ADC_CONFIG_GPIO,vdd_reference_inter3V_calculate_by_mode_gpio
+	rtn
+	
+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 mul1V_div1V_to_cal
+	
+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
+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
+
+enable_adc_init_config:
+	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 0x61,core_vtest_ctrl0
+	jam 0x00,core_gpadc_cfg3
+	rtn	
+
+	
+enable_adc:
+	bpatchx patch20_2,mem_patch20
+	fetch 1,mem_adc_reference_mode
+	beq SADC_REFERENCE_INTER3V,enable_adc_reference_source_inter3V
+	beq SADC_REFERENCE_INTER1P8V_DIV2,enable_adc_reference_source_inter1p8V
+	branch enable_adc_reference_source_inter3V
+	
+enable_adc_reference_source_inter3V:
+	call 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
+	
+read_adc_inter1V:
+	call 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 sar_adc_read_wait
+	fetcht 2,core_sadc_data
+	storet 2,mem_adc_reference3v_inter1v_now_data 
+//	call sadc_read_wait+4
+	jam 0x06,core_sadc_ctrl
+	call sadc_read_wait2
+	
+	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
+	
+
+vdd_reference_inter1p8V_calculate:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,vdd_reference_inter1p8V_calculate_by_mode_vdcdc
+	beq ADC_CONFIG_GPIO,vdd_reference_inter1p8V_div2_calculate_by_mode_gpio
+	rtn
+	
+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
+
+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 vdd_calculate00
+	
+vdd_calculate00:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate11,positive
+	call vdd_calculate_common
+	isub regb,pdata
+	nbranch set_pdata_0,positive
+	branch vdd_calculate2
+	
+vdd_calculate11:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	call vdd_calculate_common
+	iadd regb,pdata
+	branch vdd_calculate2
+
+
+enable_adc_reference_source_inter1p8V:	
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_HVIN,enable_adc_reference_source_inter1p8V_vdcdc
+enable_adc_reference_source_inter1p8V_div2_gpio:	
+	call 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
+	branch enable_adc_reference_source_inter1p8V_common
+	
+enable_adc_reference_source_inter1p8V_vdcdc:
+	call 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
+enable_adc_reference_source_inter1p8V_common:
+	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
+
+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
+
+sar_adc_read_wait:
+	fetch 1,core_perf_status
+	bbit0 SARADC_DONE,sar_adc_read_wait
+	rtn
+
+	
+sadc_read:
+	bpatchx patch20_3,mem_patch20
+	jam 0x03,core_sadc_ctrl
+	call sar_adc_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:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate1,positive
+	call vdd_calculate_common
+	iadd regb,pdata
+vdd_calculate2:
+	idiv rega
+	branch get_div_result
+
+vdd_calculate1:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	call vdd_calculate_common
+	isub regb,pdata
+	nbranch set_pdata_0,positive
+	branch vdd_calculate2
+
+
+vdd_calculate_common:
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	rtn
+	
+
+
+/*	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
+	branch adc_set_power_flag
+
+adc_clear_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set0 0,pdata
+	branch adc_set_power_flag
+	
+adc_set_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 1,temp
+	branch adc_set_power_flag
+
+adc_clear_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 1,temp
+adc_set_power_flag:
+	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
+	bpatchx patch20_4,mem_patch20
+	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
+	bpatchx patch20_5,mem_patch20
+	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:
+	bpatchx patch20_6,mem_patch20
+	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
+	bpatchx patch20_7,mem_patch20
+	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:
+	bpatchx patch21_0,mem_patch21
+	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
+*/
+nec_init_config:
+	store 4,core_nec_start_addr
+	store 2,core_nec_rptr
+	storet 1,core_nec_ctrl
+	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: GK308_keyboard_only_24g/program/security.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/security.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/security.prog	(working copy)
@@ -0,0 +1,1203 @@
+
+
+ifdef SECURE_CONNECTION
+	
+function_g2:
+	bpatchx patch21_1,mem_patch21
+	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:
+	bpatchx patch21_2,mem_patch21
+	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:
+	bpatchx patch21_3,mem_patch21
+	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:
+	bpatchx patch21_4,mem_patch21
+	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:
+	bpatchx patch21_5,mem_patch21
+	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:
+	bpatchx patch21_6,mem_patch21
+	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:
+	bpatchx patch21_7,mem_patch21
+	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
+	bpatchx patch22_0,mem_patch22
+	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:
+	bpatchx patch22_1,mem_patch22
+	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:
+	bpatchx patch22_2,mem_patch22
+	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: GK308_keyboard_only_24g/program/sim.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/sim.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/program/simple_pairing.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/simple_pairing.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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:
+	bpatchx patch22_3,mem_patch22
+//	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:
+	bpatchx patch22_4,mem_patch22
+	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:	
+	bpatchx patch22_5,mem_patch22
+	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:    
+	bpatchx patch22_6,mem_patch22
+	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:
+	bpatchx patch22_7,mem_patch22
+	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:
+	bpatchx patch23_0,mem_patch23
+	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: GK308_keyboard_only_24g/program/ui.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ui.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/ui.prog	(working copy)
@@ -0,0 +1,655 @@
+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:
+	bpatchx patch23_1,mem_patch23
+	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:
+	bpatchx patch23_2,mem_patch23
+	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:
+	bpatchx patch23_3,mem_patch23
+	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:
+	bpatchx patch23_4,mem_patch23
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_ui_ipc_send_event
+	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:
+	bpatchx patch23_5,mem_patch23
+	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:
+	bpatchx patch23_6,mem_patch23
+	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
+	bpatchx patch23_7,mem_patch23
+	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
+	bpatchx patch24_0,mem_patch24
+	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:
+	bpatchx patch24_1,mem_patch24
+	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:
+	bpatchx patch24_2,mem_patch24
+	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: GK308_keyboard_only_24g/program/usb.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/usb.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/usb.prog	(working copy)
@@ -0,0 +1,1123 @@
+ ifdef COMPILE_USB
+
+usb_isr:
+	bpatchx patch24_3,mem_patch24
+	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:
+	bpatchx patch24_4,mem_patch24
+	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:
+	fetch 1,core_usb_txbusy
+	rtnbit1 USB_STATUS_RXFULL
+	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:
+	bpatchx patch24_5,mem_patch24
+	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 patch24_6,mem_patch24
+	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 patch24_7,mem_patch24
+	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 patch25_0,mem_patch25
+//	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:
+	bpatchx patch25_1,mem_patch25
+	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:
+	bpatchx patch25_2,mem_patch25
+	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:
+	bpatchx patch25_3,mem_patch25
+	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 patch25_4,mem_patch25
+	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:
+	bpatchx patch25_5,mem_patch25
+	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
+	jam 0x02,core_usb_clear_nak
+//	call usb0_reply_zerolen
+	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 patch25_6,mem_patch25
+	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 patch25_7,mem_patch25
+	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 patch26_0,mem_patch26
+	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
+	bpatchx patch26_1,mem_patch26
+	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
+	bpatchx patch26_2,mem_patch26
+	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
+	beq USB_EP2_BIT_CONSUMER,usb_tx_kb_bit_consumer_data
+	beq USB_EP2_N_KEY_ROLLOVER,usb_tx_kb_n_key_rollover_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:
+	fetch 1,mem_device_option
+	beq DVC_OP_KEYBOARD,keyboard_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_tx_kb_bit_consumer_data:
+	jam 0,mem_usb_ep2_data
+	arg 4,loopcnt
+	arg mem_usb_kb_multikey,contr
+	branch usb_tx_ep2
+
+usb_tx_kb_n_key_rollover_data:
+	jam 0,mem_usb_ep2_data
+	arg 15,loopcnt
+	arg mem_usb_kb_n_key_rollvoer_data,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: GK308_keyboard_only_24g/program/utility.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/utility.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/program/utility.prog	(working copy)
@@ -0,0 +1,746 @@
+
+
+	
+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 patch26_3,mem_patch26
+	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
+get_contw_end:
+	copy pdata,contw
+	rtn
+get_contr:
+	fetch 2,mem_contr
+get_contr_end:
+	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 patch26_4,mem_patch26
+	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 patch26_5,mem_patch26
+	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 patch26_6,mem_patch26
+	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 patch26_7,mem_patch26
+	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 patch27_0,mem_patch27
+	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 patch27_1,mem_patch27
+	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
+
+istore_1_contw_rtn:
+	istore 1,contw
+	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:
+	bpatchx patch27_2,mem_patch27
+	setarg 0
+	set1 21,pdata				//gpio5(ice) enable wakeup
+	store 8,mem_gpio_wakeup_cfg
+	setarg 0
+	istore 4,contw
+	rtn	
+
+
+generate_random:
+	arg 16,loopcnt
+generate_random_loop:
+	random pdata
+	istore 1,contw
+	loop generate_random_loop
+	rtn
+
Index: GK308_keyboard_only_24g/sched/1.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/1.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/1.dat	(working copy)
@@ -0,0 +1,530 @@
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:61 21 20 98 07 2a
+mem_le_name_len:
+'BLE-M3
+
+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:43 08 4a 0e 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:00
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+8c		#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
+8c		#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
+
+#100ms timera
+mem_shutter_ble_discovery_time_conf:
+b8 0b #discovery_timeout
+70 17 #connect_timeout
+b8 0b #sleep_timeout
+b8 0b #sleep_timer
+
+
+#key config
+mem_shutter_key_num_conf:06
+mem_shutter_dy_key_conf:
+# #test 6key
+# 07
+# 0b
+# 13
+# 14
+# 15
+# 16
+# 0c
+
+# jxy-181
+07	#right
+12 	#like
+13 	#down
+06 	#photo
+08 	#up
+14 	#left
+
+# ff	#right
+# ff 	#like
+# 13 	#down
+# ff 	#photo
+# ff 	#up
+# ff 	#left
+
+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:
+#6key
+# 08 00
+#7key
+40 00
+
+
+mem_shutter_iphone_up_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_like_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_move_mid:
+1e 1e 1f 20 28 28 00
+
+
+mem_key0_press_i:  #right
+00
+mem_key0_release_new_i:
+27 24 24 24 28 23 23 23
+mem_key0_long_press_i:
+04 06 00
+
+mem_key1_press_i:#like
+27 00 28 00
+mem_key1_release_new_i:
+28 28 00
+
+mem_shutter_link_data_i:
+27 28 28 27 28 28 00
+
+mem_key2_press_i:#down
+00
+mem_key2_release_new_i:
+27 26 26 26 28 25 25 25
+
+#toggle between vol-inc and vol-dec
+mem_key3_press_i:#photo
+00
+mem_key3_release_new_i:#volume increment
+#7key
+01 06 00
+#6key
+# 27 01 06 28 00
+mem_key3_release_new_i_t:#volume decrement
+#7key
+02 06 00
+#6key
+# 27 02 06 28 00
+
+mem_key4_press_i:#up
+00
+mem_key4_release_new_i:
+27 25 25 25 28 26 26 26
+
+mem_key5_press_i:#left
+00
+mem_key5_release_new_i:
+27 23 23 23 28 24 24 24
+mem_key5_long_press_i: #lock
+03 06 00
+
+mem_key6_release_new_i:#move
+27 28 00 00
+mem_key6_release_new:#move
+00
+
+mem_dy_key0_press:  #right
+00
+mem_key0_release_new:
+13 14 15 16 17 18 19 1a 1b 00
+mem_key0_long_press:
+05 06 00
+
+mem_dy_key1_press:#like
+0b 11 00
+mem_key1_release_new:
+00
+
+mem_shutter_link_data:#like key loop
+0b 11 00 00 0b 11 00
+
+mem_dy_key2_press: #down
+00
+mem_key2_release_new:
+0f 0e 0d 0c 0b 0a 09 08 07 00
+mem_key2_long_press:#volume decrement
+02 06 00
+mem_key2_long_release:
+1c 1d 00
+
+#toggle between vol-inc and vol-dec
+mem_dy_key3_press:#photo
+00
+mem_key3_release_new:#volume increment
+# 1c 02 06 1d 00 #6key
+01 06 #7key
+mem_key3_release_new_t:#volume decrement
+# 1c 01 06 1d 00 #6key
+02 06 #7key
+
+
+mem_dy_key4_press:#up
+00
+mem_key4_release_new:
+08 09 0a 0b 0c 0d 0e 0f 10 00
+mem_key4_long_press:#volume increment
+01 06 00
+mem_key4_long_release:
+00
+
+
+mem_dy_key5_press:#left
+00
+mem_key5_release_new:
+1a 19 18 17 16 15 14 13 12 00
+mem_key5_long_press: #lock
+03 06 00
+
+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:03 #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 key
+02 1b 00 01 00 00 00 00 00 00 #1 volume increment
+02 1b 00 02 00 00 00 00 00 00 #2 volume decrement
+02 1b 00 04 00 00 00 00 00 00 #3 lock
+02 1b 00 08 00 00 00 00 00 00 #4 ios home
+02 1b 00 10 00 00 00 00 00 00 #5 android home
+02 1b 00 00 00 00 00 00 00 00 #6 release
+#Android Key
+#up down
+06 23 00 02 01 00 00 00 00 00 #7
+06 23 00 03 01 f4 06 20 02 00 #8
+06 23 00 03 01 f4 06 d4 02 00 #9
+06 23 00 03 01 f4 06 28 03 00 #a
+06 23 00 03 01 f4 06 3c 04 00 #b like press
+06 23 00 03 01 f4 06 20 04 00 #c
+06 23 00 03 01 f4 06 74 05 00 #d
+06 23 00 03 01 f4 06 28 06 00 #e
+06 23 00 03 01 f4 06 dc 06 00 #f
+06 23 00 02 01 f4 06 70 07 00 #10
+#like release
+06 23 00 02 01 f4 06 3c 04 00 #11
+#right left
+06 23 00 02 01 f0 08 0f 06 00#12
+06 23 00 03 01 a3 07 0f 06 00#13
+06 23 00 03 01 2c 06 0f 06 00#14
+06 23 00 03 01 2c 05 0f 06 00#15
+06 23 00 03 01 52 04 0f 06 00#16
+06 23 00 03 01 e2 03 0f 06 00#17
+06 23 00 03 01 4f 03 0f 06 00#18
+06 23 00 03 01 4f 02 0f 06 00#19
+06 23 00 03 01 ab 01 0f 06 00#1a
+06 23 00 02 01 01 01 0f 06 00#1b
+#move
+06 23 00 07 04 00 00 00 00 00#1c    //move press
+06 23 00 06 04 00 00 00 00 00#1d    //move release
+
+#ios key
+#ios localinit key
+03 1b 00 01 18 80 00 00 00 00 #1e
+03 1b 00 00 10 80 00 00 00 00 #1f
+03 1b 00 41 40 0a 00 00 00 00 #20 ios init up local
+03 1b 00 41 40 0a 00 00 00 00 #21 ios init like local
+03 1b 00 41 40 0a 00 00 00 00 #22 ios init down/right/left local
+03 1b 00 20 00 00 00 00 00 00 #23 ios left
+03 1b 00 e0 0f 00 00 00 00 00 #24 ios right
+03 1b 00 00 00 02 00 00 00 00 #25 ios up
+03 1b 00 00 00 fe 00 00 00 00 #26 ios down
+
+#mouse key
+03 17 00 01 00 00 00 00 00 00 #27   press
+03 17 00 00 00 00 00 00 00 00 #28   release
+03 1b 00 00 00 00 00 00 00 00 #29 ios move
+03 1b 00 00 00 00 00 00 00 00 #2a ios move double
+
+03 1b 00 01 f8 7f 00 00 00 00 #2b
+03 1b 00 64 00 00 00 00 00 00 #2c
+03 1b 00 00 b0 f9 00 00 00 00 #2d
+mem_shutter_move_data:
+00 00 00  #defualt
+
+mem_ble_shutter_dy_interval_min_android:
+12 00
+15 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+18 00
+1c 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 05 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:63 00 #6d 00
+mem_shutter_le_map_len_ios:b7 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)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 05 # Report Count(5)
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+81 06 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(touch screem)
+a1 01 	#Collection (Application)
+85 06	#Report Id (6)
+09 24   #Usage (Stylus)
+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)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+95 06	#Report Count (6)
+81 03 	#Input (Constant,Array,Absolute,Bit Field)
+75 08 #        Report Size (8)
+09 51 #        Usage (Contact identifier)
+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 0E #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 Controls)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 04 # Report ID(4)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+95 05 # Report Count(5)
+75 01 # Report Size(1)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 05 # Usage Maximum(5)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+81 02 #Input (Data, Variable, Absolute)
+95 01 # Report Count(1)
+75 03 # Report Size(3)
+81 01 #Input (Constant, Array, Absolute)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+05 01  #Usage Page (Generic Desktop Controls)
+09 38 #Usage (Wheel)
+15 81 # Logical Minimum(129)
+25 7f  # Logical Maximum(127)
+81 06 #Input (Data, Variable, Relative)
+05 0c #Usage page (Consumer)
+0a 38 02 	#Usage (AC Pan)
+95 01 # Report Count(1)
+81 06 #INPUT (Data, Variable, Relative)
+c0
+85 05 # Report ID(5)
+09 01 # Usage(Consumer Control)
+a1 00 # Collection(Physical)
+75 0c # Report Size(12)
+95 02 # Report Count(2)
+05 01 #Usage Page (Generic Desktop Controls)
+09 30 #Usage (x)
+09 31 #Usage (y)
+16 01 f8  # Logical Minimum(63489)
+26 ff 07 # Logical Maximum(2047)
+81 06 #Input (Data, Variable, Relative)
+c0 c0
+
+
+##############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: GK308_keyboard_only_24g/sched/1305.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/1305.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/1305.dat	(working copy)
@@ -0,0 +1,38 @@
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:7f
+mem_gpio_wakeup_cfg:00 00 00 00 00 00 00 00 00 00 00 02
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 10
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+
+mem_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: GK308_keyboard_only_24g/sched/DM_module.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/DM_module.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/adpcm.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/adpcm.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/ble_car_att_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/ble_car_att_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/ble_shutter_gatt_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/ble_shutter_gatt_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/ble_shutter_key_value_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/ble_shutter_key_value_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/car.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/car.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/car.dat	(working copy)
@@ -0,0 +1,134 @@
+mem_device_option:0e
+mem_tx_power: 0a
+#0x00 TX_POWER_0DB
+#0x03 TX_POWER_3DB
+#0x05 TX_POWER_5DB
+#0x07 TX_POWER_7DB
+#0x0a TX_POWER_10DB
+
+#0x83 TX_POWER_F3DB
+#0x85 TX_POWER_F5DB
+#0x8a TX_POWER_F10DB
+#0x94 TX_POWER_F20DB
+
+
+mem_24g_tx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_rx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_ch_map1:04 14 24 34
+mem_24g_ch:20
+#2402Mhz + mem_24g_ch
+
+mem_factory_control_flag:01
+mem_car_full_control_remote_lap:ff ff ff ff
+
+mem_car_pwm_gpio:10
+
+mem_24g_addr:00 00 00 00
+
+
+mem_le_lap:ff ff ff ff 01 21
+mem_stop_4w1_flag:01
+#mem_rf_debug_rx_gpio:8a
+
+mem_le_adv_channel_map:07
+
+
+mem_le_scan_enable:
+00   #scan enable
+0a 00  #scan interval
+08 00  #scan window
+
+mem_le_adv_enable:
+01
+mem_le_adv_interval:f0 00
+
+mem_le_local_feature:01 08
+mem_le_tx_phys:84
+mem_le_rx_phys:84
+##############BLUETOOTH CONFIG##############
+mem_lpm_mode:00
+#mem_lpm_interval:00 01    #unit: 0.625ms
+mem_lpm_overhead:08   
+mem_lpm_mult:05
+mem_lpm_mult_timeout:02
+
+mem_le_name_len:
+'GP4WCAR_
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+02 01 05
+
+mem_le_interval_min:
+08 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+
+mem_queue_ptr: mem_car_le_queue_each_size
+
+mem_car_le_queue_each_size:
+14     #queue 锟侥碉拷锟斤拷元锟截的筹拷锟斤拷
+04     #queue 锟侥讹拷锟叫筹拷锟斤拷
+00     #queue current num
+00     #queue read ptr
+00     #queue write ptr
+
+
+#####################################
+
+
+mem_ui_le_uuid_table:mem_car_ble_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_car_ble_att_list:
+#Primary service yichip transmit ------
+01 00 02 00 28 02 01 18   #0x1801 GATT Service------Generic Access<16-bit UUID Numbers Document.pdf>
+#Service Changed
+02 00 02 03 28 01 20    #0x20 properties------notify
+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
+
+#Primary service yichip transmit ------
+0c 00 02 00 28 02 f0 ff
+
+#Characteristic tx--notify&read
+0d 00 02 03 28 01 12
+0e 00 02 f1 ff 04 00 00 00 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+#Characteristic rx--write
+10 00 02 03 28 01 08
+11 00 02 f2 ff 01 00
+00 00   
+
+
Index: GK308_keyboard_only_24g/sched/dongle.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/dongle.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/ff.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/ff.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/fpga.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/fpga.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/gatt.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/gatt.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/hci_boot.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/hci_boot.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard.dat	(working copy)
@@ -0,0 +1,791 @@
+mem_keyboard_flag:
+#byte 0
+#bit0 KEYBOARD_24G_PAIRING_FLAG
+#bit1 KEYBOARD_STORE_MEMORY_FLAG
+#bit2 KEYBOARD_LOW_VOLTAGE_FLAG
+#bit3 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit4 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+04
+
+#byte 1
+#bit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+#bit1 KEYBOARD_ENABLE_16M
+#bit2 KEYBOARD_DISABLE_ICE
+#bit3 KEYBOARD_ENABLE_ADC
+#bit4 KEYBOARD_ENABLE_FLASH
+#bit5 KEYBOARD_ENABLE_2K_EEPROM
+#bit6 KEYBOARD_ENABLE_EEPROM
+#bit7 KEYBOARD_ENABLE_OTP
+89
+
+#byte 2
+#bit0 KEYBOARD_ENABLE_24G
+#bit1 KEYBOARD_ENABLE_AUTO_24G_PARING
+#bit2 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit4 KEYBOARD_ENABLE_24G_2M_PHY
+#bit5 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+0d
+
+#byte 3
+#bit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+#bit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit2 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+00
+
+#byte 4
+#bit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+#bit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+#bit2 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+#bit3 KEYBOARD_ENABLE_MOUSE
+#bit4 KEYBOARD_ENABLE_USB
+00
+
+#byte 5
+#bit0 KEYBOARD_ENABLE_030_POWER_LED
+#bit1 KEYBOARD_ENABLE_LOW_LED
+#bit2 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+#bit3 KEYBOARD_ENABLE_BACKLIGHT
+06
+
+#byte 6
+#bit0 KEYBOARD_ENABLE_FN_ARROW
+#bit1 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+#bit2 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+#bit3 KEYBOARD_ENABLE_FN_OS_SWITCH
+#bit4 KEYBOARD_ENABLE_FN_LOCK
+1f
+
+#byte 7
+#bit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+#bit2 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+#bit3 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+#bit4 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+00
+
+
+mem_device_option:0f
+mem_power_on_flag:01
+mem_keyboard_recognition_code:35 0e
+
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+
+# #comb press time
+# mem_keyboard_bt_combin_press_timeout:01
+
+#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_keyboard_usb_vid_pid:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+# mem_keyboard_usb_checkin_gpio:ff
+
+#2.4g
+mem_24g_lap: 03 11 36 55 51 61
+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_device_24g_pair_tx_power:94 #-15dBm
+
+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_device_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:10
+mem_lpm_mult_init:10
+
+
+#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_keyboard_hid_fix_handle:05 01
+
+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:
+08 00 #min interval
+08 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03
+
+mem_keyboard_le_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+mem_keyboard_blob_response_consumer_customize:
+09 b8 		#bit4  MAC EJECT
+0a 25 02 		#bit5  AC Forward
+0a 26 02 		#bit6  AC Stop
+0a 24 02 		#bit6  AC Back
+
+81 02
+c0
+05 01
+09 06
+a1 01
+85 02
+
+#adc
+
+#adc config
+#hook adc,3V 1v8 , 2v1 ,娉ㄦ剰灏忕搴忚缃瀛楄妭鍒濆
+mem_keyboard_vdd_full_vol: ac 01 
+mem_keyboard_vdd_empty_vol:B4 00 
+mem_keyboard_vdd_low_vol:  D2 00 
+mem_keyboard_power_type:01 #00 1v5; 01 3v0; 02 4v2
+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
+
+#led
+mem_keyboard_device_poweron_timer_init:1e
+
+#system
+mem_device_24g_power_on_fast_conn_timer:02 00	#1s
+mem_device_24g_reconn_timeout_init:00 #10s
+mem_device_24g_pair_timeout_init:58 02  #1min
+mem_device_fast_direct_timeout:00 #10s
+mem_device_direct_timeout:00  #10s
+mem_device_discovery_timeout:58 02  #1min
+mem_device_no_data_timeout:64 00   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+mem_keyboard_pair_led_blink_count:05	#500ms
+mem_keyboard_low_volatage_led_blink_count:02		#200ms
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+
+mem_device_flag:00	#00--24g 01--ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+
+mem_device_number:01
+mem_keyboard_switch_device_to_g24:00 7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:00 7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:00 7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:00 7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:00 7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_num_caps_scoll_led_on_timer:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:01					#                 00                                    00                                 01
+# mem_config_select_device_button_gpio:ff			#              00~16			               ff					ff
+mem_keyboard_commbination_key_bt:ff ff			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:29 0e		#		 not care				   not care			     Esc+K
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:ff
+mem_eeprom_sda_gpio:ff
+mem_eeprom_base:01 00
+mem_flash_base:00 50 00
+mem_otp_read_retention_max_size:20 03
+
+
+#姝uf鐩存帴浼犲叆gpio_out_active bsp-
+#temp [5:0]=GPIO number, 0-39, [7]=0, low active. set gpio to inactive state
+#PP High active 
+mem_keyboard_caps_led_gpio:81
+mem_keyboard_num_led_gpio:80
+mem_keyboard_power_led_gpio:80
+mem_keyboard_low_voltage_alarm_gpio:80
+mem_keyboard_scroll_led_gpio:ff
+mem_keyboard_24g_led_gpio:80
+mem_keyboard_bt1_led_gpio:ff
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+#mem_rf_debug_rx_gpio:96
+#mem_rf_debug_tx_gpio:89
+
+
+
+
+mem_mcu_stb_gpio:07
+mem_mcu_clk_gpio:06
+
+mem_mcu_rstb_gpio:ff
+
+mem_keyboard_pb_button_gpio:ff
+mem_device_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c3 c4 c5 c6 c7 80 81 82 83 84 85
+
+#gpio00~16 锛坔ex16 =22?锛
+mem_key_row_gpio:
+10		#r0
+11 		#r1
+12		#r2
+13 		#r3
+14 		#r4
+15 		#r5
+0c 		#r6
+09		#r7
+
+
+# 瀵逛簬鎺ュ湪master涓婄殑gpio,濉啓浣庝簲浣嶇殑gpio鍙00~16   锛沠f =unused
+# 瀵逛簬鎺ュ湪extmcu涓婄殑portA:8x,portB:cx  杩欓噷鐨刾ort 鏄痚xt FX0010鐨刬o鍙
+# so yeach case : atx001
+mem_key_col_gpio:
+0D		#c0 //pa3
+03		#c1 //pb2
+04		#c2
+c6		#c3  pb6
+c5		#c4  pb5
+c4		#c5  pb4
+c3		#c6
+
+80		#c7  pa0
+0a		#c8
+0b		#c9
+85		#c10
+83		#c11c
+82		#c12
+81		#c13
+c7		#c14
+84		#c15
+
+0e		#c16
+0f		#c17
+ff		#c18
+ff		#c19
+
+
+mem_keyboard_keyvalue_map:
+#r0 ~ r7
+48 66 00 00 e4 00 e0 3E 				#c0  $3:娆у厓绗﹀彿
+14 2b 04 29 1d 00 35 1e 				#c1
+1a 39 16 64 1b 00 3a 1f 					#c2
+08 3c 07 3d 06 00 3b 20 				#c3
+15 17 09 0a 19 05 22 21 				#c4
+18 1c 0d 0b 10 11 23 24					#c5
+0c 30 0e 3f 36 87 2e 25 					#c6
+12 40 0f 00 37 65 41 26 					#c7
+13 2f 33 34 32 38 2d 27 					#c8
+47 B1 7f e2 00 e6 B0 46					#c9
+89 2A 00 44 28 45 42 43				#c10
+5f 5c 59 2c 53 51 4c 66 					#c11
+60 5d 5a 62 54 4f 49 00 					#c12
+61 5e 5b 63 55 56 4b 4e 				#c13
+57 6B 58 52 00 50 4a 4d					#c14
+00 e1 e5 00 00 00 00 00 				#c15
+00 e3 00 00 00 00 00 00					#c16
+00 00 e7 00 00 00 00 00					#c17
+00 00 00 00 00 00 00 00					#c18
+
+
+
+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: e8			#f1
+mem_keyboard_fn_f2:	e9			#f2
+mem_keyboard_fn_f3:	ea			#f3
+mem_keyboard_fn_f4:	eb			#f4
+mem_keyboard_fn_f5:	ec			#f5
+mem_keyboard_fn_f6:	ed			#f6
+mem_keyboard_fn_f7:	ee			#f7
+mem_keyboard_fn_f8:	ef			#f8
+mem_keyboard_fn_f9:	f0			#f9
+mem_keyboard_fn_f10:	f1			#f10
+mem_keyboard_fn_f11:	f2			#f11
+mem_keyboard_fn_f12:	45			#f12
+mem_keyboard_fn_del:	4c			#delete
+mem_keyboard_fn_lock_keyvalue:29
+
+mem_keyboard_le_table:
+#att table
+# 01 00 02 00 28  # Primary Service Declaration
+# 02 00 18        # Generic Access Service (UUID: 0x1800)
+# 02 00 02 03 28  # Characteristic Declaration
+# 01 0a           # Properties: Read, Write
+# 03 00 02 00 2a  # Device Name Characteristic (UUID: 0x2A00)
+# 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  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 05 00 02 01 2a  # Appearance Characteristic (UUID: 0x2A01)
+# 02 c1 03        # Value: 0x03C2 (Generic Keyboard)
+
+# 06 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 07 00 02 04 2a  # Peripheral Preferred Connection Parameters (UUID: 0x2A04)
+# 08 06 00 06 00  # Minimum Connection Interval: 0x0006 (7.5ms)
+# 64 00           # Maximum Connection Interval: 0x0064 (100ms)
+# 2c 01           # Slave Latency: 0x012C (300)
+
+# 08 00 02 00 28  # Primary Service Declaration
+# 02 01 18        # Generic Attribute Service (UUID: 0x1801)
+# 09 00 02 03 28  # Characteristic Declaration
+# 01 20           # Properties: Indicate
+# 0a 00 02 05 2a 01 00 # Service Changed Characteristic (UUID: 0x2A05)
+# 0b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+
+# 0c 00 02 00 28  # Primary Service Declaration
+# 02 0a 18        # Battery Service (UUID: 0x180F)
+# 0d 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 0e 00 02 29 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 06 59 69 43 68 69 70  # Value: Battery Level Data
+
+# 0f 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 10 00 02 50 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 07 02 e8 04 21 70 01 00  # Value: HID Information Data
+
+# 11 00 02 00 28  # Primary Service Declaration
+# 02 12 18        # HID Service (UUID: 0x1812)
+# 12 00 02 03 28  # Characteristic Declaration
+# 01 06           # Properties: Read, Write Without Response
+# 13 00 02 4e 2a  # Report Map Characteristic (UUID: 0x2A4B)
+# 01 01           # Value: Report Map Data
+
+# 14 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 15 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+# 16 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 17 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 01        # Value: Report ID and Type
+
+# 18 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 19 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 07 00 00 00 00 00 00 00  # Value: Report Data
+# 1a 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 1b 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 01 01        # Value: Report ID and Type
+
+# 1c 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 1d 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 1e 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 1f 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 05 01        # Value: Report ID and Type
+
+# 20 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 21 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 22 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 23 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 04 01        # Value: Report ID and Type
+
+# 24 00 02 03 28  # Characteristic Declaration
+# 01 0e           # Properties: Read, Write
+# 25 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 26 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 02        # Value: Report ID and Type
+
+# 27 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 28 00 02 4b 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# f5 05 0c 09 01 a1 01 85 05  # Value: HID Control Point Data
+# 15 00 25 01 75 01 95 18
+# 0a 83 01 09 ea 09 e9 09 e2
+# 09 b6 09 b5 09 cd 09 b7
+# 0a 23 02 0a 8a 01 0a 94 01
+# 0a 2a 02 0a 92 01 0a 21 02
+# 0a 24 02 0a 07 03 0a ae 01
+# 09 70 09 6f 09 30 09 b8
+# 0a 25 02 0a 26 02 0a 27 02
+# 81 02 c0
+
+# 05 01 09 06 a1 01 85 02  # HID Keyboard Input Report
+# 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 2a ff 00 81 00
+# c0
+
+# 05 01 09 02 a1 01 85 01  # HID Mouse Input Report
+# 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 80 a1 01 85 04  # HID System Control Input Report
+# 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  # Characteristic Declaration
+# 01 1a           # Properties: Read, Notify
+# 2a 00 02 33 2a  # Report Characteristic (UUID: 0x2A33)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+
+# 2b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 01 00        # Value: 0x0001 (Notifications Enabled)
+
+# 2c 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 2d 00 02 4a 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 04 01 01 00 03  # Value: HID Information Data
+
+# 2e 00 02 00 28  # Primary Service Declaration
+# 02 0f 18        # Battery Service (UUID: 0x180F)
+
+# 2f 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 30 00 02 19 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 01 64           # Value: Battery Level (100%)
+
+# 31 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 32 00 02 03 28  # Characteristic Declaration
+# 01 04           # Properties: Write Without Response
+# 33 00 02 4c 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# 00 00 00        # Value: HID Control Point Data
+
+#se map
+af 00              # Feature
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 06        # Usage (Keyboard)
+A1 01        # Collection (Application)
+85 02        #   Report ID (2)
+75 01        #   Report Size (1)
+95 08        #   Report Count (8)
+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)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 08        #   Report Size (8)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 05        #   Report Count (5)
+75 01        #   Report Size (1)
+05 08        #   Usage Page (LEDs)
+19 01        #   Usage Minimum (Num Lock)
+29 05        #   Usage Maximum (Kana)
+91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 01        #   Report Count (1)
+75 03        #   Report Size (3)
+91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 06        #   Report Count (6)
+75 08        #   Report Size (8)
+15 00        #   Logical Minimum (0)
+26 FF 00  #   Logical Maximum (255)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 00        #   Usage Minimum (0x00)
+29 FF        #   Usage Maximum (0xFF)
+81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+05 0C        # Usage Page (Consumer)
+09 01        # Usage (Consumer Control)
+A1 01        # Collection (Application)
+85 03        #   Report ID (3)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 18        #   Report Count (24)
+0A 83 01  #   Usage (AL Consumer Control Configuration)
+09 EA        #   Usage (Volume Decrement)
+09 E9        #   Usage (Volume Increment)
+09 E2        #   Usage (Mute)
+09 B6        #   Usage (Scan Previous Track)
+09 B5        #   Usage (Scan Next Track)
+09 CD        #   Usage (Play/Pause)
+09 B7        #   Usage (Stop)
+0A 23 02  #   Usage (AC Home)
+0A 8A 01  #   Usage (AL Email Reader)
+0A 94 01  #   Usage (AL Local Machine Browser)
+0A 2A 02  #   Usage (AC Bookmarks)
+0A 92 01  #   Usage (AL Calculator)
+0A 21 02  #   Usage (AC Search)
+0A 24 02  #   Usage (AC Back)
+0A 07 03  #   Usage (0x0307)
+0A AE 01  #   Usage (AL Keyboard Layout)
+09 70        #   Usage (0x70)
+09 6F        #   Usage (0x6F)
+09 30        #   Usage (Power)
+09 B8        #   Usage (Eject)
+0A 25 02  #   Usage (AC Forward)
+0A 26 02  #   Usage (AC Stop)
+0A 27 02  #   Usage (AC Refresh)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#af 00             # Feature
+
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 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)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF  #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 80        # Usage (Sys Control)
+A1 01        # Collection (Application)
+85 04        #   Report ID (4)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 03        #   Report Count (3)
+19 81        #   Usage Minimum (Sys Power Down)
+29 83        #   Usage Maximum (Sys Wake Up)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 05        #   Report Size (5)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#sb map
+# af 00             # Feature
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 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)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF        #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# 05 0C        # Usage Page (Consumer)
+# 09 01        # Usage (Consumer Control)
+# A1 01        # Collection (Application)
+# 85 03        #   Report ID (3)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 18        #   Report Count (24)
+# 0A 83 01  #   Usage (AL Consumer Control Configuration)
+# 09 EA        #   Usage (Volume Decrement)
+# 09 E9        #   Usage (Volume Increment)
+# 09 E2        #   Usage (Mute)
+# 09 B6        #   Usage (Scan Previous Track)
+# 09 B5        #   Usage (Scan Next Track)
+# 09 CD        #   Usage (Play/Pause)
+# 09 B7        #   Usage (Stop)
+# 0A 23 02  #   Usage (AC Home)
+# 0A 8A 01  #   Usage (AL Email Reader)
+# 0A 94 01  #   Usage (AL Local Machine Browser)
+# 0A 2A 02  #   Usage (AC Bookmarks)
+# 0A 92 01  #   Usage (AL Calculator)
+# 0A 21 02  #   Usage (AC Search)
+# 0A 24 02  #   Usage (AC Back)
+# 0A 07 03  #   Usage (0x0307)
+# 0A AE 01  #   Usage (AL Keyboard Layout)
+# 09 70        #   Usage (0x70)
+# 09 6F        #   Usage (0x6F)
+# 09 30        #   Usage (Power)
+# 09 B8        #   Usage (Eject)
+# 0A 25 02  #   Usage (AC Forward)
+# 0A 26 02  #   Usage (AC Stop)
+# 0A 27 02  #   Usage (AC Refresh)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# # 05 0C        # Usage Page (Consumer)
+# # 09 01        # Usage (Consumer Control)
+# # A1 01        # Collection (Application)
+# # 85 03        #   Report ID (3)
+# # 19 00        #   Usage Minimum (Unassigned)
+# # 2A FF 03  #   Usage Maximum (0x03FF)
+# # 15 00        #   Logical Minimum (0)
+# # 26 FF 03  #   Logical Maximum (1023)
+# # 95 01        #   Report Count (1)
+# # 75 10        #   Report Size (16)
+# # 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# # C0              # End Collection
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 80        # Usage (Sys Control)
+# A1 01        # Collection (Application)
+# 85 04        #   Report ID (4)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 03        #   Report Count (3)
+# 19 81        #   Usage Minimum (Sys Power Down)
+# 29 83        #   Usage Maximum (Sys Wake Up)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 05        #   Report Size (5)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+# 120 bytes
+
Index: GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_magic_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_magic_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_magic_keyboard.dat	(working copy)
@@ -0,0 +1,188 @@
+ba
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+2a
+ff
+00
+81
+00
+05
+ff
+09
+03
+75
+08
+95
+01
+81
+02
+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
\ No newline at end of file
Index: GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(working copy)
@@ -0,0 +1,204 @@
+ca
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+06
+a1
+01
+85
+01
+95
+70
+75
+01
+15
+00
+25
+01
+05
+07
+19
+00
+2a
+ff
+00
+81
+02
+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
\ No newline at end of file
Index: GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_only_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_only_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/keyboard_ble_hid_map_only_keyboard.dat	(working copy)
@@ -0,0 +1,178 @@
+b0
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+2a
+ff
+00
+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
\ No newline at end of file
Index: GK308_keyboard_only_24g/sched/le_prcp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/le_prcp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/le_transmit_uuid.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/le_transmit_uuid.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/mouse.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/mouse.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/mouse.dat	(working copy)
@@ -0,0 +1,337 @@
+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
+#bit7 MOUSE_ENABLE_SPI2
+04
+
+#mouse flag byte2
+#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+#bit1 MOUSE_ENABLE_2K_EEPROM
+#bit2 MOUSE_ENABLE_WAKEUP_FROM_POWER
+#bit3 MOUSE_ENABLE_16M
+#bit4 MOUSE_ENABLE_USB
+#bit5 MOUSE_ENABLE_24G_SEARCH_DONGLE
+#bit6 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+#bit7 MOUSE_ENABLE_24G
+e5
+
+#mouse flag byte3
+#bit0 MOUSE_ENABLE_FLASH
+#bit1 MOUSE_ENABLE_EEPROM
+#bit2 MOUSE_ENABLE_OTP
+#bit3 MOUSE_ENABLE_ADC
+#bit4 MOUSE_ENABLE_KEYBOARD
+#bit5 MOUSE_ENABLE_DOUBLE_DPI_KEY
+#bit6 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+01
+
+#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
+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
+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_device_switch_gpio:ff
+mem_device_reuse_2ice_gpio:05
+mem_sensor_motion_gpio:ff
+mem_whee_a_data_gpio:ff
+mem_whee_b_data_gpio:ff
+
+mem_mouse_param_config:
+06 #mem_lbutton_gpio
+0b #mem_mbutton_gpio
+0c #mem_rbutton_gpio
+06 #mem_bk_button_gpio
+0b #mem_fw_button_gpio
+0c #mem_dpi_button_gpio
+12 #mem_mouse_sensor_sclk_gpio
+13 #mem_mouse_sensor_sdio_gpio
+ff #mem_select_sensor_angle_gpio
+00 #mem_sensor_angle_default
+00 #mem_sensor_angle_gnd
+00 #mem_sensor_angle_vin
+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_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
+
+
+#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_device_24g_pair_timeout_init:2c 01  #30s	    24g reconn timer&pair timer
+mem_device_24g_reconn_timeout_init:0a #1s
+mem_device_24g_power_on_fast_conn_timer:05 00	#500ms
+mem_device_direct_timeout:32  #05s
+mem_device_discovery_timeout:b0 04	#2min
+mem_device_fast_direct_timeout:0a #1s
+mem_device_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_set_analog_bit_set:00 00 00
+
+mem_device_flag:
+00		#00--24g 01--bt
+34
+ff ff ff ff ff ff			#eeprom need
+mem_device2_type:
+34
+ff ff ff ff ff ff			#eeprom need
+mem_device3_type:
+34
+ff ff ff ff ff ff			#eeprom need
+
+mem_customer_key_press_init:
+#05 00 01 00 00 00 00 00 00 00#AC Home
+#05 00 00 02 00 00 00 00 00 00#Volume Down
+#05 00 00 04 00 00 00 00 00 00#Volume Up
+#00 0a 00 72 00 00 00 00 00#copilot=win+shift+f23
+#00 05 00 04 00 00 00 00 00#CTRL+ALT+A
+#02 01 00 00 00 00 00 00 00 #POWERDOWN
+00 08 00 07 00 00 00 00 00#One-click desktop
+#03 ea 00 00 00 00 00 00 00 #VOL DOWN
+
+#adc
+mem_device_vdd_full_vol:dc 05		#1.5V
+84 03#mem_device_vdd_empty_vol  :0.9V
+e8 03#mem_device_vdd_low_vol   :1.0V
+#mem_device_vdd_full_vol:e4 0c		#3.3V
+#b8 0b#mem_device_vdd_empty_vol  :3.0V
+#80 0c#mem_device_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_commbination_key_dpi:ff
+mem_mouse_commbination_key_select_device:ff
+mem_mouse_commbination_dpi_timer:1e	#3s
+mem_mouse_commbination_select_device_timer:1e	#3s
+
+#ui
+mem_ui_button_timeout:1e
+
+#2.4g
+mem_24g_lap: 11 11 31 41 51 61
+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_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+
+mem_mouse_24g_fast_hop_count_2ms:09	#report 500hz
+mem_mouse_24g_tsniff_2ms:c0 5d 00 00
+
+mem_mouse_24g_short_sleep_set_4ms:ee 4d 00	#1662us
+mem_mouse_24g_long_sleep_set_4ms:80 bb 00
+mem_mouse_24g_tsniff_4ms:80 bb 00 00
+
+mem_mouse_24g_short_sleep_set_8ms:70 11 01	#SB:70 11 01	SA:60 ea 00
+mem_mouse_24g_long_sleep_set_8ms:00 77 01
+mem_mouse_24g_tsniff_8ms:00 77 01 00
+
+mem_device_24g_pair_tx_power:94 #-20dBm
+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_device_24g_search_dongle_time_init:64 00	#10s
+mem_store_information_delay_timer_init:05
+
+mem_mouse_long_mult_count:01
+
+#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:
+07 00 #min interval
+07 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+#mem_le_adv_interval:01 00
+
+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_device_flag:96 06
+mem_otp_offset_device_flag_end:bf 06
+
+mem_otp_offset_24g_addr:c0 06
+mem_otp_offset_24g_addr_end:f9 06
+
+mem_otp_offset_le_addr1:fa 06
+mem_otp_offset_le_addr1_end:53 07
+
+mem_otp_offset_le_locall_addr1:54 07
+mem_otp_offset_le_locall_addr1_end:8f 07
+
+mem_otp_offset_le_addr2:90 07
+mem_otp_offset_le_addr2_end:e9 07
+
+mem_otp_offset_le_locall_addr2:ea 07
+mem_otp_offset_le_locall_addr2_end:43 08
+
+mem_otp_offset_dpi:44 08
+mem_otp_offset_dpi_end:73 08
+
+mem_otp_offset_le_addr_increase_count:74 08
+mem_otp_offset_le_addr_increase_count_end:d8 08
+
+mem_otp_offset_app_initflag:aa 08
+
+#usb
+mem_usb_offline_check_gpio:ff
+
+#rf
+mem_tx_power:00	#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
+
+
Index: GK308_keyboard_only_24g/sched/mouse_ble_att_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/mouse_ble_att_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/mouse_ble_att_list.dat	(working copy)
@@ -0,0 +1,682 @@
+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
+f5
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+2a
+ff
+00
+81
+00
+c0
+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
+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
\ No newline at end of file
Index: GK308_keyboard_only_24g/sched/mouse_sensor.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/mouse_sensor.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/mouse_sensor.dat	(working copy)
@@ -0,0 +1,166 @@
+
+mem_mouse_dpi_seting:
+03##mem_320x_dpi_0  	1200/1300
+04##mem_320x_dpi_1  	1600
+01##mem_320x_dpi_2   800
+02##mem_320x_dpi_3  	1000
+
+20##mem_3212_dpi_0	1200
+2a##mem_3212_dpi_1	1600
+3f ##mem_3212_dpi_2	2400
+15##mem_3212_dpi_3   800
+
+14##mem_ka8g2_dpi_0	1200
+1b##mem_ka8g2_dpi_1	1600
+11##mem_ka8g2_dpi_2	1000
+0e##mem_ka8g2_dpi_3	800
+
+mem_sensor_s201_dpi:
+8a  ##1200
+8b  ##1600
+83  ##2400
+84  ##3200
+88  ##800
+
+mem_sensor_3212_init:
+09 5a
+26 34
+19 04
+09 00
+ff ff
+
+#################sensor parm init#################
+
+
+mem_sensor_3204_init:
+09 5a
+0d f0
+1d e3
+7d d2
+ff ff
+
+mem_sensor_3205_init:
+09 5a
+0d 10
+1d ed
+7d 80
+ff ff
+
+mem_sensor_32xx_init:
+1b 35
+28 b4
+29 46
+2a 96
+2b 8c
+2c 6e
+2d 64
+38 5f
+39 0f
+3a 32
+3b 47
+42 10
+ff ff
+
+mem_sensor_32xx_init_1:
+54 2e
+55 f2
+61 f4
+63 70
+75 52 
+76 41
+77 ed
+78 23
+79 46
+7a e5
+7c 48
+7e 77
+7f 01
+0b 00
+7f 00
+09 00
+ff ff
+
+mem_sensor_8650_init:
+09 5a
+ff 27
+ab 40
+be d1
+a0 41
+a1 12
+a7 ff
+b6 00
+b5 c8
+a5 af
+ff 00
+09 00
+ff ff
+
+mem_sensor_p6520_init:
+05 b9
+09 5a
+0b 72
+0c 52
+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
+
+mem_sensor_ka8g2_init:
+09 a5
+26 34
+19 04
+60 07
+69 04
+7d 20
+7e 00
+09 00
+ff ff
+
+mem_sensor_ka5857_init:
+09 a5
+46 34
+6a c0
+69 24
+09 00
+ff ff
+
+mem_sensor_poweron_init:
+09 5a
+0b f3
+09 00
+ff ff
+
+mem_ka8g2_sensor_poweron_init:
+09 a5
+0b f3
+09 00
+ff ff
+
+
+
+
Index: GK308_keyboard_only_24g/sched/otp_set.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/otp_set.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/otp_set.dat	(working copy)
@@ -0,0 +1,11 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
Index: GK308_keyboard_only_24g/sched/rec.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/rec.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/rec.dat	(working copy)
@@ -0,0 +1,501 @@
+
+mem_device_option:0b
+mem_ui_button_gpio:ff
+
+mem_tx_power:05
+
+###########################LED INITIAL##########################
+mem_ui_led_struct_num:01
+mem_ui_led_struct_ptr:mem_rec_led_style
+
+mem_rec_led_style:
+00		#type:stop blink 00---blink stop   01---blink start   02---lighting  03---darking  04---blink lighting  05---blink darking
+00		#blink count:no blink
+07		#led gpio number
+a0 01	#led blink light time, uint 0.625ms
+a0 01	#led blink dark time
+
+mem_rec_le_pair_led_style:
+01		#type:blink start
+ff		#blink count:no blink
+07		#led gpio number
+80 02	#led blink light time 400ms
+80 02	#led blink dark time		
+
+mem_rec_le_reconn_led_style:
+01		#type:blink start
+ff		#blink count:no blink
+07		#led gpio number
+60 04	#led blink light time 700ms
+60 04	#led blink dark time
+
+mem_rec_adc_low_led_style:
+01		#type:blink start
+03		#blink count:no blink
+07		#led gpio number
+40 01	#led blink light time 200ms
+40 01	#led blink dark time	
+
+mem_rec_led2_style:
+01		#type:blink start
+ff		#blink count:no blink
+ff		#led gpio number
+60 04	#led blink light time 700ms
+60 04	#led blink dark time
+
+
+###########################QUEUE INIT############################
+mem_queue_ptr:mem_rec_queue_each_size
+mem_rec_queue_each_size:01 20
+
+
+###########################TSCAN INITIAL##########################
+mem_rec_tscan_gpio_nums:06
+mem_rec_tscan_row_nums:05
+mem_rec_tscan_col_nums:05
+mem_rec_tscan_row_gpio:0d 0e 0c 0a 08
+mem_rec_tscan_col_gpio:0b 0d 0e 0c 0a 08
+
+mem_rec_gpio_wakeup_source:07	#tri-angle keyscan matrix check
+
+mem_rec_gnd_key_offset:0f
+
+mem_rec_key_map:01 02 04 07 0b 03 05 08 0c 06 09 0d 0a 0e 0f 
+
+mem_rec_tscan_key_nums_list:
+01 01 #k01
+02 01 #k02
+04 01 #k04
+08 01 #k07
+10 01 #k11
+01 02 #k03
+02 02 #k05
+04 02 #k08
+08 02 #k12
+01 04 #k06
+02 04 #k09
+04 04 #k13
+01 08 #k10
+02 08 #k14
+01 10 #k15
+00 00 #end
+
+mem_rec_tscan_gndkey_nums_list:
+01
+02
+04
+08
+10
+20
+40
+00
+
+mem_rec_combin_key_timeout:14		#2s
+mem_rec_tscan_combin_key_num_bit:42 00 00 00 00 00 00 00	#key2+key5 0x0042, key8+key13 0x0880
+
+
+###########################NEC INITIAL##########################
+mem_rec_nec_send_gpio:03
+
+
+###########################OTA INITIAL##########################
+mem_rec_code_a_flash_addr:00 60 00
+mem_rec_code_b_flash_addr:00 f0 00
+
+mem_rec_ota_notify_handle:48 00
+mem_rec_ota_queue_size:00 05 
+
+mem_rec_ota_le_conn_update_param:
+06 00
+06 00
+2b 01
+b0 04
+
+
+###########################ADPCM INITIAL##########################
+mem_rec_ad_indexTable1:ff ff ff ff 02 04 06 08 ff ff ff ff 02 04 06 08
+
+mem_rec_ad_stepsizeTable1:
+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
+
+
+
+###########################GATT INITIAL##########################
+mem_rec_voice_notify_apk_handle:42 00
+mem_rec_voice_notify_box_handle:2a 00
+mem_rec_control_notify_apk_handle:3f 00
+mem_rec_control_notify_box_handle:26 00
+
+
+mem_ui_le_uuid_table:mem_rec_le_att_list
+
+mem_rec_le_att_list:
+#Primary Service Gap	
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 02
+03 00 02 00 2a 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Appearance
+04 00 02 03 28 01 02 
+05 00 02 01 2a 02 80 01 
+
+#Primary Service: Gatt Service
+06 00 02 00 28 02 01 18
+#Service Changed
+07 00 02 03 28 01 20
+08 00 02 05 2a 01 00 	
+#Client Characteristic Configuration
+09 00 02 02 29 02 00 00
+
+#Primary Service: Battery Service
+0a 00 02 00 28 02 0f 18
+0b 00 02 03 28 01 02
+0c 00 02 19 2a 01 64
+0d 00 02 02 29 02 00 00	
+
+#Primary Service: Device Information
+0e 00 02 00 28 02 0a 18
+#Model Number
+0f 00 02 03 28 01 02
+10 00 02 24 2a 05 4d 49 20 52 43
+#Manufacture name
+11 00 02 03 28 01 02
+12 00 02 29 2a 15 43 79 70 72 65 73 73 20 53 65 6D 69 63 6F 6E 64 75 63 74 6F 72
+#Pnp id
+13 00 02 03 28 01 02 
+14 00 02 50 2a 07 02 54 2b 00 16 00 00
+
+#Primary service: HID
+15 00 02 00 28 02 12 18
+#Characteristic:Hid information
+16 00 02 03 28 01 02
+17 00 02 4a 2a 04 01 01 00 02
+#Characteristic:Report map
+18 00 02 03 28 01 02
+19 00 02 4b 2a c5
+
+#65
+05 01    #Usage Page Generic Desktop) 
+09 06    #Usage (Keyboard) 
+A1 01    #Collection (Application) 
+85 0b    #report ID (HIDAPP_KEYBOARD_REPORT_ID) 
+75 01    #Report Size (1) 
+95 08    #Report Count (8) 
+05 07    #Usage Page (Key Codes) 
+19 e0    #Usage Minimum (224) 
+29 e7    #Usage Maximum (231) 
+15 00    #Logical Minimum (0) 
+25 01    #Logical Maximum (1) 
+81 02    #Input (Data, Variable, Absolute) 
+95 01    #Report Count (1) 
+75 08    #Report Size (8) 
+81 01    #Input (Constant) reserved byte(1) 
+95 05    #Report Count (5) 
+75 01    #Report Size (1) 
+05 08    #Usage Page (Page#for LEDs) 
+19 01    #Usage Minimum (1) 
+29 05    #Usage Maximum (5) 
+91 02    #Output (Data, Variable, Absolute), Led report 
+95 01    #Report Count (1) 
+75 03    #Report Size (3) 
+91 01    #Output (Constant), Led report padding 
+95 06    #Report Count (6) 
+75 08    #Report Size (8) 
+15 00    #Logical Minimum (0) 
+25 eb    #Logical Maximum (101) 
+05 07    #Usage Page (Key codes) 
+19 00    #Usage Minimum (0) 
+29 eb    #Usage Maximum (101) 
+81 00    #Input (Data, Array) Key array(6 bytes) 
+C0   	 #End Collection (Application) 
+
+
+#Consumer Usepage #46
+05 0c    #Usage Page (Consumer Devices) 
+09 01    #Usage (Consumer Control) 
+a1 01    #Collection (Application) 
+85 01    #HIDAPP_REMOTE_REPORT_ID,    #report ID (01) 
+19 00    #USAGE_MINIMUM (0) 
+2a 9c 02 #USAGE_MINIMUM (29c) 
+15 00    #Logical Minimum (0) 
+26 9c 02 #Logical Maximum (29c) 
+95 01    #Report Count (1) 
+75 10    #Report Size (16) 
+81 00    #Input (Data, array, Absolute) 
+09 02    #Usage (Numeric Key Pad ) 
+a1 02    #Collection (Application) 
+05 09    #Usage Page (button) 
+19 01    #Usage Minimum (1) 
+29 0a    #Usage Maximum (10) 
+15 01    #Logical Minimum (1) 
+25 0a    #Logical Maximum (10) 
+95 01    #Report Count (1) 
+75 08    #Report Size (8) 
+81 40    #Input (Data, Variable, Relative) 
+c0   	 #End Collection 
+c0    	 #End Collection 
+
+#optional mouse data #54
+05 01    #Usage Page (Generic Desktop) 
+09 02    #USAGE (Mouse) 
+a1 01    #COLLECTION (Application) 
+09 01    #USAGE (Pointer) 
+a1 00    #COLLECTION (Physical) 
+85 03    #HIDAPP_MOUSE_REPORT_ID,    #report ID (HIDAPP_MOUSE_REPORT_ID) 
+05 01    #USAGE_PAGE (Generic Desktop) 
+09 30    #USAGE (X) 
+09 31    #USAGE (Y) 
+09 38    #USAGE (Wheel)
+15 80    #LOGICAL_MINIMUM (-127) 
+25 7f    #LOGICAL_MAXIMUM (127) 
+75 08    #REPORT_SIZE (8) 
+95 03    #REPORT_COUNT (3) 
+81 06    #INPUT (Data, Variable, Relative) 
+05 09    #USAGE_PAGE (Button) 
+19 01    #USAGE_MINIMUM (Button 1) 
+29 05    #USAGE_MAXIMUM (Button 5) 
+15 00    #LOGICAL_MINIMUM (0) 
+25 01    #LOGICAL_MAXIMUM (1) 
+95 05    #REPORT_COUNT (5) 
+75 01    #REPORT_SIZE (1) 
+81 02    #INPUT () 
+95 01    #REPORT_COUNT (1) 
+75 03    #REPORT_SIZE (3) 
+81 03    #INPUT () 
+c0    	 #End Collection (Physical) 
+c0       #End Collection (Application) 
+
+#end mouse data	#32
+06 01 ff
+09 01    #Usage (Consumer Control) 
+a1 02    #COLLECTION () 
+85 08    #HIDAPP_VOICE_REPORT_ID,    #report ID (HIDAPP_KEYBOARD_REPORT_ID) 
+09 14
+75 08    #Report Size (8) 
+95 14    #Report Count (20) 
+15 80    #Logical Minimum (80) 
+25 7f    #Logical Minimum (7f) 
+81 22    #Input () 
+85 04    #report ID () 
+09 04    #USAGE () 
+75 08    #Report Size (8) 
+95 01    #Report Count (1) 
+91 02    #Output 
+c0
+
+#External Report Reference
+1a 00 02 07 29 02 19 2a
+#Characteristic:control point
+1b 00 02 03 28 01 04
+1c 00 02 4c 2a 01 00
+#Characteristic:boot keyboard Input report
+1d 00 02 03 28 01 12
+1e 00 02 22 2a 08 00 00 00 00 00 00 00 00
+1f 00 02 02 29 01 13
+#Characteristic:boot keyboard output report
+20 00 02 03 28 01 0e
+21 00 02 32 2a 08 00 00 00 00 00 00 00 00
+#Characteristic:boot Mouse Input report
+22 00 02 03 28 01 12
+23 00 02 33 2a 08 00 00 00 00 00 00 00 00
+24 00 02 02 29 01 13
+
+#Characteristic: hid report
+25 00 02 03 28 01 12   
+26 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+27 00 02 02 29 01 13	
+28 00 02 08 29 02 01 01	#Report ID: 1	Report Type: Input
+
+#Characteristic: hid report
+29 00 02 03 28 01 12   
+2a 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+2b 00 02 02 29 01 13	
+2c 00 02 08 29 02 08 01	#Report ID: 8	Report Type: Input
+
+#Characteristic: hid report
+2d 00 02 03 28 01 12   
+2e 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+2f 00 02 02 29 01 13
+30 00 02 08 29 02 03 01	#Report ID: 3	Report Type: input
+
+#Characteristic: hid report
+31 00 02 03 28 01 12   
+32 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+33 00 02 02 29 01 13
+34 00 02 08 29 02 0b 01	#Report ID: 0b 	 Report Type: input
+
+#Characteristic: hid report
+35 00 02 03 28 01 0e   
+36 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+37 00 02 08 29 02 00 02	#Report ID:2     Report Type:output
+
+#Characteristic: hid report
+38 00 02 03 28 01 0a  
+39 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+3a 00 02 08 29 02 00 03   #Report ID:0    Report Type:feature	
+
+#Characteristic:Protocol mode
+3b 00 02 03 28 01 06
+3c 00 02 4e 2a 01 01
+
+#Primary service yichip transmit ------
+3d 00 02 00 28 02 f0 ff 
+#Characteristic tx--notify
+3e 00 02 03 28 01 16
+3f 00 02 f1 ff 01 00 #voice data start and end 
+#Client Characteristic Configuration
+40 00 02 02 29 02 00 00
+
+41 00 02 03 28 01 16
+42 00 02 f2 ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  #voice data
+#Client Characteristic Configuration
+43 00 02 02 29 02 00 00
+
+44 00 02 03 28 01 0a
+45 00 02 f3 ff 01 00 # voice test bit
+46 00 02 02 29 02 00 00
+
+#ota notify
+47 00 02 03 28 01 16
+48 00 02 fe ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
+49 00 02 02 29 02 01 00
+
+#ota write
+4a 00 02 03 28 01 04
+4b 00 02 ff ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Warning Attention,long 16 byte uuid must put at the last
+#Primary service: Wicentric,Inc
+4c 00 02 00 28 10 fb 34 9b 5f 80 00 00 80 00 10 00 00 f6 fe 00 00 
+#
+4d 00 02 03 28 01 18
+4e 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 02 00 5f 00 01 18
+4f 00 02  02 29 01 00
+#
+50 00 02 03 28 01 14
+51 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 03 00 5f 00 01 14
+52 00 02 02 29 01 00
+#
+53 00 02 03 28 01 14
+54 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 04 00 5f 00 01 14
+55 00 02 02 29 01 00
+#
+56 00 02 03 28 01 18
+57 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 05 00 5f 00 01 18
+58 00 02 02 29 01 00
+
+#Google atv voice
+#primary service
+59 00 02 00 28 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 01 00 5e ab
+
+#google atv write characeristic
+5a 00 02 03 28 01 08
+5b 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 02 00 5e ab 01 14
+
+#google atv read characeristic
+5c 00 02 03 28 01 12
+5d 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 03 00 5e ab 01 14
+5e 00 02 02 29 02 00 00
+
+#google atv ctrl characeristic
+5f 00 02 03 28 01 12
+60 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 04 00 5e ab 01 14
+61 00 02 02 29 02 00 00
+
+#End of Attribute list
+00 00
+
+
+
+
+
Index: GK308_keyboard_only_24g/sched/remote_car.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/remote_car.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/remote_car.dat	(working copy)
@@ -0,0 +1,53 @@
+
+mem_device_option:0d
+
+mem_tx_power: 0a
+#0x00 TX_POWER_0DB
+#0x03 TX_POWER_3DB
+#0x05 TX_POWER_5DB
+#0x07 TX_POWER_7DB
+#0x0a TX_POWER_10DB
+
+#0x83 TX_POWER_F3DB
+#0x85 TX_POWER_F5DB
+#0x8a TX_POWER_F10DB
+#0x94 TX_POWER_F20DB
+
+
+mem_24g_tx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_rx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_ch_map1:04 14 24 34
+mem_24g_ch:20
+#2402Mhz + mem_24g_ch
+
+mem_remote_full_control_remote_lap:ff ff ff ff
+mem_le_lap:0f 01 00 00 01 22
+
+mem_24g_addr:00 00 00 00
+
+mem_remote_car_key_conf0:
+#0
+0c
+#1
+8c
+#2
+85
+#3
+05
+mem_24g_tx_led_map:0d
+
+
+mem_remote_mult_key:92
+mem_key_public_gpio:12
Index: GK308_keyboard_only_24g/sched/rtrivr_uuid.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/rtrivr_uuid.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/sha256.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/sha256.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/shutter.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/shutter.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/shutter.dat	(working copy)
@@ -0,0 +1,16 @@
+mem_device_option:09
+mem_ui_button_gpio:ff
+
+mem_le_lap:20 31 20 98 07 2a
+mem_le_name_len:
+'AB Shutter3
+
+mem_shutter_key_conf0_temp:07 0b 8c 00 ff
+
+mem_shutter_soft_switch_first_power_on:00
+
+mem_tx_power:06
+
+mem_shutter_dy_conf:00
+
+
Index: GK308_keyboard_only_24g/sched/shutter_dy.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/shutter_dy.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/shutter_dy.dat	(working copy)
@@ -0,0 +1,521 @@
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:61 21 20 98 07 2a
+mem_le_name_len:
+'BLE-M3
+
+mem_tx_power:06
+
+//save otp addr
+mem_shutter_efuse_start_offset: b0 1f
+mem_shutter_efuse_end_offset: 70 19
+
+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:43 08 4a 0e 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:00
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+8c		#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
+8c		#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
+
+#100ms timer
+mem_shutter_ble_discovery_time_conf:
+b8 0b #discovery_timeout
+70 17 #connect_timeout
+b8 0b #sleep_timeout
+b8 0b #sleep_timer
+
+
+#key config
+mem_shutter_key_num_conf:06
+mem_shutter_dy_key_conf:
+#test 6key
+# 07
+# 0b
+# 13
+# 14
+# 15
+# 16
+# 0c
+
+# jxy-181
+07	#right
+12 	#like
+13 	#down
+06 	#photo
+08 	#up
+14 	#left
+
+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:
+#6key
+08 00
+#7key
+# 40 00
+
+
+mem_shutter_iphone_up_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_like_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_move_mid:
+1e 1e 1f 20 28 28 00
+
+
+mem_key0_press_i:  #right
+00
+mem_key0_release_new_i:
+27 24 24 24 28 23 23 23
+mem_key0_long_press_i:
+04 06 00
+
+mem_key1_press_i:#like
+00
+mem_key1_release_new_i:
+27 28 00
+
+mem_shutter_link_data_i:
+27 28 27 28 00
+
+mem_key2_press_i:#down
+00
+mem_key2_release_new_i:
+27 26 26 26 28 25 25 25
+
+#toggle between vol-inc and vol-dec
+mem_key3_press_i:#photo
+00
+mem_key3_release_new_i:#volume increment
+#7key
+# 01 06 00
+#6key
+27 01 06 28 00
+mem_key3_release_new_i_t:#volume decrement
+#7key
+# 02 06 00
+#6key
+27 02 06 28 00
+
+mem_key4_press_i:#up
+00
+mem_key4_release_new_i:
+27 25 25 25 28 26 26 26
+
+mem_key5_press_i:#left
+00
+mem_key5_release_new_i:
+27 23 23 23 28 24 24 24
+mem_key5_long_press_i: #lock
+03 06 00
+
+mem_key6_release_new_i:#move
+27 28 00 00
+mem_key6_release_new:#move
+00
+
+mem_dy_key0_press:  #right
+00
+mem_key0_release_new:
+13 14 15 16 17 18 19 1a 1b 00
+mem_key0_long_press:
+05 06 00
+
+mem_dy_key1_press:#like
+00
+mem_key1_release_new:
+0b 11 00
+
+mem_shutter_link_data:#like key loop
+0b 11 00 00 0b 11 00
+
+mem_dy_key2_press: #down
+00
+mem_key2_release_new:
+0f 0e 0d 0c 0b 0a 09 08 07 00
+mem_key2_long_press:#volume decrement
+02 06 00
+mem_key2_long_release:
+1c 1d 00
+
+#toggle between vol-inc and vol-dec
+mem_dy_key3_press:#photo
+00
+mem_key3_release_new:#volume increment
+1c 02 06 1d 00 #6key
+# 01 06 #7key
+mem_key3_release_new_t:#volume decrement
+1c 01 06 1d 00 #6key
+#02 06 #7key
+
+
+mem_dy_key4_press:#up
+00
+mem_key4_release_new:
+08 09 0a 0b 0c 0d 0e 0f 10 00
+mem_key4_long_press:#volume increment
+01 06 00
+mem_key4_long_release:
+00
+
+
+mem_dy_key5_press:#left
+00
+mem_key5_release_new:
+1a 19 18 17 16 15 14 13 12 00
+mem_key5_long_press: #lock
+03 06 00
+
+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:03 #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 key
+02 13 00 01 00 00 00 00 00 00 #1 volume increment
+02 13 00 02 00 00 00 00 00 00 #2 volume decrement
+02 13 00 04 00 00 00 00 00 00 #3 lock
+02 13 00 08 00 00 00 00 00 00 #4 ios home
+02 13 00 10 00 00 00 00 00 00 #5 android home
+02 13 00 00 00 00 00 00 00 00 #6 release
+#Android Key
+#up down
+06 23 00 02 01 00 00 00 00 00 #7
+06 23 00 03 01 f4 06 20 02 00 #8
+06 23 00 03 01 f4 06 d4 02 00 #9
+06 23 00 03 01 f4 06 28 03 00 #a
+06 23 00 03 01 f4 06 3c 04 00 #b like press
+06 23 00 03 01 f4 06 20 04 00 #c
+06 23 00 03 01 f4 06 74 05 00 #d
+06 23 00 03 01 f4 06 28 06 00 #e
+06 23 00 03 01 f4 06 dc 06 00 #f
+06 23 00 02 01 f4 06 70 07 00 #10
+#like release
+06 23 00 02 01 f4 06 3c 04 00 #11
+#right left
+06 23 00 02 01 f0 08 0f 09 00#12d   dd
+06 23 00 03 01 a3 07 0f 09 00#13
+06 23 00 03 01 2c 06 0f 09 00#14
+06 23 00 03 01 2c 05 0f 09 00#15
+06 23 00 03 01 52 04 0f 09 00#16
+06 23 00 03 01 e2 03 0f 09 00#17
+06 23 00 03 01 4f 03 0f 09 00#18
+06 23 00 03 01 4f 02 0f 09 00#19
+06 23 00 03 01 ab 01 0f 09 00#1a
+06 23 00 02 01 01 01 0f 09 00#1b
+#move
+06 23 00 07 04 00 00 00 00 00#1c    //move press
+06 23 00 06 04 00 00 00 00 00#1d    //move release
+
+#ios key
+#ios localinit key
+03 1b 00 01 18 80 00 00 00 00 #1e
+03 1b 00 00 10 80 00 00 00 00 #1f
+03 1b 00 41 40 0a 00 00 00 00 #20 ios init up local
+03 1b 00 41 40 0a 00 00 00 00 #21 ios init like local
+03 1b 00 41 40 0a 00 00 00 00 #22 ios init down/right/left local
+03 1b 00 20 00 00 00 00 00 00 #23 ios left
+03 1b 00 e0 0f 00 00 00 00 00 #24 ios right
+03 1b 00 00 00 02 00 00 00 00 #25 ios up
+03 1b 00 00 00 fe 00 00 00 00 #26 ios down
+
+#mouse key
+03 17 00 01 00 00 00 00 00 00 #27   press
+03 17 00 00 00 00 00 00 00 00 #28   release
+03 1b 00 00 00 00 00 00 00 00 #29 ios move
+03 1b 00 00 00 00 00 00 00 00 #2a ios move double
+
+03 1b 00 01 f8 7f 00 00 00 00 #2b
+03 1b 00 64 00 00 00 00 00 00 #2c
+03 1b 00 00 b0 f9 00 00 00 00 #2d
+mem_shutter_move_data:
+00 00 00  #defualt
+
+mem_ble_shutter_dy_interval_min_android:
+10 00
+10 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+18 00
+1c 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 02 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 03 00 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 03 00 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 05 00 00 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 2
+22 00 02 03 28 01 12
+23 00 02 4d 2a 06 00 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 02 01 # report id=2, type=1 input
+
+#Hid report id 6
+26 00 02 03 28 01 12
+27 00 02 4d 2a 07 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 06 01 # report id=6, 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:63 00 #6d 00
+mem_shutter_le_map_len_ios:b7 00
+mem_shutter_le_hid_map:
+05 0c # Usage Page(Consumer) #legth 30
+09 01 # Usage(Consumer Control)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 05 # Report Count(5)
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+81 06 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(touch screem)
+a1 01 	#Collection (Application)
+85 02	#Report Id (2)
+09 24   #Usage (Stylus)
+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)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+95 06	#Report Count (6)
+81 03 	#Input (Constant,Array,Absolute,Bit Field)
+75 08 #        Report Size (8)
+09 51 #        Usage (Contact identifier)
+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 0E #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 Controls)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 04 # Report ID(4)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+95 05 # Report Count(5)
+75 01 # Report Size(1)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 05 # Usage Maximum(5)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+81 02 #Input (Data, Variable, Absolute)
+95 01 # Report Count(1)
+75 03 # Report Size(3)
+81 01 #Input (Constant, Array, Absolute)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+05 01  #Usage Page (Generic Desktop Controls)
+09 38 #Usage (Wheel)
+15 81 # Logical Minimum(129)
+25 7f  # Logical Maximum(127)
+81 06 #Input (Data, Variable, Relative)
+05 0c #Usage page (Consumer)
+0a 38 02 	#Usage (AC Pan)
+95 01 # Report Count(1)
+81 06 #INPUT (Data, Variable, Relative)
+c0
+85 03 # Report ID(3)
+09 01 # Usage(Consumer Control)
+a1 00 # Collection(Physical)
+75 0c # Report Size(12)
+95 02 # Report Count(2)
+05 01 #Usage Page (Generic Desktop Controls)
+09 30 #Usage (x)
+09 31 #Usage (y)
+16 01 f8  # Logical Minimum(63489)
+26 ff 07 # Logical Maximum(2047)
+81 06 #Input (Data, Variable, Relative)
+c0 c0
+
+
+##############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: GK308_keyboard_only_24g/sched/sim.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/sim.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/spp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/spp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/test.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/test.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/usb_confdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/usb_confdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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
+f3
+00
+07
+05
+82
+03
+40
+00
+02
\ No newline at end of file
Index: GK308_keyboard_only_24g/sched/usb_devicedata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/usb_devicedata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/usb_kbdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/usb_kbdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/usb_kbdata.dat	(working copy)
@@ -0,0 +1,66 @@
+41
+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 
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00 
+81
+00
+c0
Index: GK308_keyboard_only_24g/sched/usb_kbdata_vendor_define.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/usb_kbdata_vendor_define.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/sched/usb_msdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/usb_msdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/sched/usb_msdata.dat	(working copy)
@@ -0,0 +1,244 @@
+f3
+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
+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
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
\ No newline at end of file
Index: GK308_keyboard_only_24g/util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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

Property changes on: GK308_keyboard_only_24g/util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: GK308_keyboard_only_24g/util/eeprom2fulleeprom.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/util/eeprom2otp.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/util/eeprom2otp.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/util/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: GK308_keyboard_only_24g/util/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: GK308_keyboard_only_24g/util/mergepatch.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/util/mergepatch.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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: GK308_keyboard_only_24g/util/romcrc.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/util/romcrc.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/ATS/GK308_keyboard_only_24g/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;
